Completed
Pull Request — master (#5817)
by Lukas
13:14
created
apps/files_external/lib/Lib/FrontendDefinitionTrait.php 1 patch
Indentation   +124 added lines, -124 removed lines patch added patch discarded remove patch
@@ -31,129 +31,129 @@
 block discarded – undo
31 31
  */
32 32
 trait FrontendDefinitionTrait {
33 33
 
34
-	/** @var string human-readable mechanism name */
35
-	private $text;
36
-
37
-	/** @var DefinitionParameter[] parameters for mechanism */
38
-	private $parameters = [];
39
-
40
-	/** @var string[] custom JS */
41
-	private $customJs = [];
42
-
43
-	/**
44
-	 * @return string
45
-	 */
46
-	public function getText() {
47
-		return $this->text;
48
-	}
49
-
50
-	/**
51
-	 * @param string $text
52
-	 * @return self
53
-	 */
54
-	public function setText($text) {
55
-		$this->text = $text;
56
-		return $this;
57
-	}
58
-
59
-	/**
60
-	 * @param FrontendDefinitionTrait $a
61
-	 * @param FrontendDefinitionTrait $b
62
-	 * @return int
63
-	 */
64
-	public static function lexicalCompare(FrontendDefinitionTrait $a, FrontendDefinitionTrait $b) {
65
-		return strcmp($a->getText(), $b->getText());
66
-	}
67
-
68
-	/**
69
-	 * @return DefinitionParameter[]
70
-	 */
71
-	public function getParameters() {
72
-		return $this->parameters;
73
-	}
74
-
75
-	/**
76
-	 * @param DefinitionParameter[] $parameters
77
-	 * @return self
78
-	 */
79
-	public function addParameters(array $parameters) {
80
-		foreach ($parameters as $parameter) {
81
-			$this->addParameter($parameter);
82
-		}
83
-		return $this;
84
-	}
85
-
86
-	/**
87
-	 * @param DefinitionParameter $parameter
88
-	 * @return self
89
-	 */
90
-	public function addParameter(DefinitionParameter $parameter) {
91
-		$this->parameters[$parameter->getName()] = $parameter;
92
-		return $this;
93
-	}
94
-
95
-	/**
96
-	 * @return string[]
97
-	 */
98
-	public function getCustomJs() {
99
-		return $this->customJs;
100
-	}
101
-
102
-	/**
103
-	 * @param string $custom
104
-	 * @return self
105
-	 */
106
-	public function addCustomJs($custom) {
107
-		$this->customJs[] = $custom;
108
-		return $this;
109
-	}
110
-
111
-	/**
112
-	 * @param string $custom
113
-	 * @return self
114
-	 * @deprecated 9.1.0, use addCustomJs() instead
115
-	 */
116
-	public function setCustomJs($custom) {
117
-		$this->customJs = [$custom];
118
-		return $this;
119
-	}
120
-
121
-	/**
122
-	 * Serialize into JSON for client-side JS
123
-	 *
124
-	 * @return array
125
-	 */
126
-	public function jsonSerializeDefinition() {
127
-		$configuration = [];
128
-		foreach ($this->getParameters() as $parameter) {
129
-			$configuration[$parameter->getName()] = $parameter;
130
-		}
131
-
132
-		$data = [
133
-			'name' => $this->getText(),
134
-			'configuration' => $configuration,
135
-			'custom' => $this->getCustomJs(),
136
-		];
137
-		return $data;
138
-	}
139
-
140
-	/**
141
-	 * Check if parameters are satisfied in a StorageConfig
142
-	 *
143
-	 * @param StorageConfig $storage
144
-	 * @return bool
145
-	 */
146
-	public function validateStorageDefinition(StorageConfig $storage) {
147
-		foreach ($this->getParameters() as $name => $parameter) {
148
-			$value = $storage->getBackendOption($name);
149
-			if (!is_null($value) || !$parameter->isOptional()) {
150
-				if (!$parameter->validateValue($value)) {
151
-					return false;
152
-				}
153
-				$storage->setBackendOption($name, $value);
154
-			}
155
-		}
156
-		return true;
157
-	}
34
+    /** @var string human-readable mechanism name */
35
+    private $text;
36
+
37
+    /** @var DefinitionParameter[] parameters for mechanism */
38
+    private $parameters = [];
39
+
40
+    /** @var string[] custom JS */
41
+    private $customJs = [];
42
+
43
+    /**
44
+     * @return string
45
+     */
46
+    public function getText() {
47
+        return $this->text;
48
+    }
49
+
50
+    /**
51
+     * @param string $text
52
+     * @return self
53
+     */
54
+    public function setText($text) {
55
+        $this->text = $text;
56
+        return $this;
57
+    }
58
+
59
+    /**
60
+     * @param FrontendDefinitionTrait $a
61
+     * @param FrontendDefinitionTrait $b
62
+     * @return int
63
+     */
64
+    public static function lexicalCompare(FrontendDefinitionTrait $a, FrontendDefinitionTrait $b) {
65
+        return strcmp($a->getText(), $b->getText());
66
+    }
67
+
68
+    /**
69
+     * @return DefinitionParameter[]
70
+     */
71
+    public function getParameters() {
72
+        return $this->parameters;
73
+    }
74
+
75
+    /**
76
+     * @param DefinitionParameter[] $parameters
77
+     * @return self
78
+     */
79
+    public function addParameters(array $parameters) {
80
+        foreach ($parameters as $parameter) {
81
+            $this->addParameter($parameter);
82
+        }
83
+        return $this;
84
+    }
85
+
86
+    /**
87
+     * @param DefinitionParameter $parameter
88
+     * @return self
89
+     */
90
+    public function addParameter(DefinitionParameter $parameter) {
91
+        $this->parameters[$parameter->getName()] = $parameter;
92
+        return $this;
93
+    }
94
+
95
+    /**
96
+     * @return string[]
97
+     */
98
+    public function getCustomJs() {
99
+        return $this->customJs;
100
+    }
101
+
102
+    /**
103
+     * @param string $custom
104
+     * @return self
105
+     */
106
+    public function addCustomJs($custom) {
107
+        $this->customJs[] = $custom;
108
+        return $this;
109
+    }
110
+
111
+    /**
112
+     * @param string $custom
113
+     * @return self
114
+     * @deprecated 9.1.0, use addCustomJs() instead
115
+     */
116
+    public function setCustomJs($custom) {
117
+        $this->customJs = [$custom];
118
+        return $this;
119
+    }
120
+
121
+    /**
122
+     * Serialize into JSON for client-side JS
123
+     *
124
+     * @return array
125
+     */
126
+    public function jsonSerializeDefinition() {
127
+        $configuration = [];
128
+        foreach ($this->getParameters() as $parameter) {
129
+            $configuration[$parameter->getName()] = $parameter;
130
+        }
131
+
132
+        $data = [
133
+            'name' => $this->getText(),
134
+            'configuration' => $configuration,
135
+            'custom' => $this->getCustomJs(),
136
+        ];
137
+        return $data;
138
+    }
139
+
140
+    /**
141
+     * Check if parameters are satisfied in a StorageConfig
142
+     *
143
+     * @param StorageConfig $storage
144
+     * @return bool
145
+     */
146
+    public function validateStorageDefinition(StorageConfig $storage) {
147
+        foreach ($this->getParameters() as $name => $parameter) {
148
+            $value = $storage->getBackendOption($name);
149
+            if (!is_null($value) || !$parameter->isOptional()) {
150
+                if (!$parameter->validateValue($value)) {
151
+                    return false;
152
+                }
153
+                $storage->setBackendOption($name, $value);
154
+            }
155
+        }
156
+        return true;
157
+    }
158 158
 
159 159
 }
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/MissingDependency.php 1 patch
Indentation   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -27,39 +27,39 @@
 block discarded – undo
27 27
  */
28 28
 class MissingDependency {
29 29
 
30
-	/** @var string */
31
-	private $dependency;
30
+    /** @var string */
31
+    private $dependency;
32 32
 
33
-	/** @var string|null Custom message */
34
-	private $message = null;
33
+    /** @var string|null Custom message */
34
+    private $message = null;
35 35
 
36
-	/**
37
-	 * @param string $dependency
38
-	 */
39
-	public function __construct($dependency) {
40
-		$this->dependency = $dependency;
41
-	}
36
+    /**
37
+     * @param string $dependency
38
+     */
39
+    public function __construct($dependency) {
40
+        $this->dependency = $dependency;
41
+    }
42 42
 
43
-	/**
44
-	 * @return string
45
-	 */
46
-	public function getDependency() {
47
-		return $this->dependency;
48
-	}
43
+    /**
44
+     * @return string
45
+     */
46
+    public function getDependency() {
47
+        return $this->dependency;
48
+    }
49 49
 
50
-	/**
51
-	 * @return string|null
52
-	 */
53
-	public function getMessage() {
54
-		return $this->message;
55
-	}
50
+    /**
51
+     * @return string|null
52
+     */
53
+    public function getMessage() {
54
+        return $this->message;
55
+    }
56 56
 
57
-	/**
58
-	 * @param string $message
59
-	 * @return self
60
-	 */
61
-	public function setMessage($message) {
62
-		$this->message = $message;
63
-		return $this;
64
-	}
57
+    /**
58
+     * @param string $message
59
+     * @return self
60
+     */
61
+    public function setMessage($message) {
62
+        $this->message = $message;
63
+        return $this;
64
+    }
65 65
 }
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/DependencyTrait.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -29,14 +29,14 @@
 block discarded – undo
29 29
  */
30 30
 trait DependencyTrait {
31 31
 
32
-	/**
33
-	 * Check if object is valid for use
34
-	 *
35
-	 * @return MissingDependency[] Unsatisfied dependencies
36
-	 */
37
-	public function checkDependencies() {
38
-		return []; // no dependencies by default
39
-	}
32
+    /**
33
+     * Check if object is valid for use
34
+     *
35
+     * @return MissingDependency[] Unsatisfied dependencies
36
+     */
37
+    public function checkDependencies() {
38
+        return []; // no dependencies by default
39
+    }
40 40
 
41 41
 }
42 42
 
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/Api.php 2 patches
Indentation   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -28,61 +28,61 @@
 block discarded – undo
28 28
 
29 29
 class Api {
30 30
 
31
-	/**
32
-	 * Formats the given mount config to a mount entry.
33
-	 *
34
-	 * @param string $mountPoint mount point name, relative to the data dir
35
-	 * @param array $mountConfig mount config to format
36
-	 *
37
-	 * @return array entry
38
-	 */
39
-	private static function formatMount($mountPoint, $mountConfig) {
40
-		// strip "/$user/files" from mount point
41
-		$mountPoint = explode('/', trim($mountPoint, '/'), 3);
42
-		$mountPoint = $mountPoint[2];
31
+    /**
32
+     * Formats the given mount config to a mount entry.
33
+     *
34
+     * @param string $mountPoint mount point name, relative to the data dir
35
+     * @param array $mountConfig mount config to format
36
+     *
37
+     * @return array entry
38
+     */
39
+    private static function formatMount($mountPoint, $mountConfig) {
40
+        // strip "/$user/files" from mount point
41
+        $mountPoint = explode('/', trim($mountPoint, '/'), 3);
42
+        $mountPoint = $mountPoint[2];
43 43
 
44
-		// split path from mount point
45
-		$path = dirname($mountPoint);
46
-		if ($path === '.') {
47
-			$path = '';
48
-		}
44
+        // split path from mount point
45
+        $path = dirname($mountPoint);
46
+        if ($path === '.') {
47
+            $path = '';
48
+        }
49 49
 
50
-		$isSystemMount = !$mountConfig['personal'];
50
+        $isSystemMount = !$mountConfig['personal'];
51 51
 
52
-		$permissions = \OCP\Constants::PERMISSION_READ;
53
-		// personal mounts can be deleted
54
-		if (!$isSystemMount) {
55
-			$permissions |= \OCP\Constants::PERMISSION_DELETE;
56
-		}
52
+        $permissions = \OCP\Constants::PERMISSION_READ;
53
+        // personal mounts can be deleted
54
+        if (!$isSystemMount) {
55
+            $permissions |= \OCP\Constants::PERMISSION_DELETE;
56
+        }
57 57
 
58
-		$entry = array(
59
-			'name' => basename($mountPoint),
60
-			'path' => $path,
61
-			'type' => 'dir',
62
-			'backend' => $mountConfig['backend'],
63
-			'scope' => ( $isSystemMount ? 'system' : 'personal' ),
64
-			'permissions' => $permissions,
65
-			'id' => $mountConfig['id'],
66
-			'class' => $mountConfig['class']
67
-		);
68
-		return $entry;
69
-	}
58
+        $entry = array(
59
+            'name' => basename($mountPoint),
60
+            'path' => $path,
61
+            'type' => 'dir',
62
+            'backend' => $mountConfig['backend'],
63
+            'scope' => ( $isSystemMount ? 'system' : 'personal' ),
64
+            'permissions' => $permissions,
65
+            'id' => $mountConfig['id'],
66
+            'class' => $mountConfig['class']
67
+        );
68
+        return $entry;
69
+    }
70 70
 
71
-	/**
72
-	 * Returns the mount points visible for this user.
73
-	 *
74
-	 * @param array $params
75
-	 * @return \OC_OCS_Result share information
76
-	 */
77
-	public static function getUserMounts($params) {
78
-		$entries = array();
79
-		$user = \OC::$server->getUserSession()->getUser()->getUID();
71
+    /**
72
+     * Returns the mount points visible for this user.
73
+     *
74
+     * @param array $params
75
+     * @return \OC_OCS_Result share information
76
+     */
77
+    public static function getUserMounts($params) {
78
+        $entries = array();
79
+        $user = \OC::$server->getUserSession()->getUser()->getUID();
80 80
 
81
-		$mounts = \OC_Mount_Config::getAbsoluteMountPoints($user);
82
-		foreach($mounts as $mountPoint => $mount) {
83
-			$entries[] = self::formatMount($mountPoint, $mount);
84
-		}
81
+        $mounts = \OC_Mount_Config::getAbsoluteMountPoints($user);
82
+        foreach($mounts as $mountPoint => $mount) {
83
+            $entries[] = self::formatMount($mountPoint, $mount);
84
+        }
85 85
 
86
-		return new \OC_OCS_Result($entries);
87
-	}
86
+        return new \OC_OCS_Result($entries);
87
+    }
88 88
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
 			'path' => $path,
61 61
 			'type' => 'dir',
62 62
 			'backend' => $mountConfig['backend'],
63
-			'scope' => ( $isSystemMount ? 'system' : 'personal' ),
63
+			'scope' => ($isSystemMount ? 'system' : 'personal'),
64 64
 			'permissions' => $permissions,
65 65
 			'id' => $mountConfig['id'],
66 66
 			'class' => $mountConfig['class']
@@ -79,7 +79,7 @@  discard block
 block discarded – undo
79 79
 		$user = \OC::$server->getUserSession()->getUser()->getUID();
80 80
 
81 81
 		$mounts = \OC_Mount_Config::getAbsoluteMountPoints($user);
82
-		foreach($mounts as $mountPoint => $mount) {
82
+		foreach ($mounts as $mountPoint => $mount) {
83 83
 			$entries[] = self::formatMount($mountPoint, $mount);
84 84
 		}
85 85
 
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/IdentifierTrait.php 1 patch
Indentation   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -28,76 +28,76 @@
 block discarded – undo
28 28
  */
29 29
 trait IdentifierTrait {
30 30
 
31
-	/** @var string */
32
-	protected $identifier;
31
+    /** @var string */
32
+    protected $identifier;
33 33
 
34
-	/** @var string[] */
35
-	protected $identifierAliases = [];
34
+    /** @var string[] */
35
+    protected $identifierAliases = [];
36 36
 
37
-	/** @var IdentifierTrait */
38
-	protected $deprecateTo = null;
37
+    /** @var IdentifierTrait */
38
+    protected $deprecateTo = null;
39 39
 
40
-	/**
41
-	 * @return string
42
-	 */
43
-	public function getIdentifier() {
44
-		return $this->identifier;
45
-	}
40
+    /**
41
+     * @return string
42
+     */
43
+    public function getIdentifier() {
44
+        return $this->identifier;
45
+    }
46 46
 
47
-	/**
48
-	 * @param string $identifier
49
-	 * @return self
50
-	 */
51
-	public function setIdentifier($identifier) {
52
-		$this->identifier = $identifier;
53
-		$this->identifierAliases[] = $identifier;
54
-		return $this;
55
-	}
47
+    /**
48
+     * @param string $identifier
49
+     * @return self
50
+     */
51
+    public function setIdentifier($identifier) {
52
+        $this->identifier = $identifier;
53
+        $this->identifierAliases[] = $identifier;
54
+        return $this;
55
+    }
56 56
 
57
-	/**
58
-	 * @return string[]
59
-	 */
60
-	public function getIdentifierAliases() {
61
-		return $this->identifierAliases;
62
-	}
57
+    /**
58
+     * @return string[]
59
+     */
60
+    public function getIdentifierAliases() {
61
+        return $this->identifierAliases;
62
+    }
63 63
 
64
-	/**
65
-	 * @param string $alias
66
-	 * @return self
67
-	 */
68
-	public function addIdentifierAlias($alias) {
69
-		$this->identifierAliases[] = $alias;
70
-		return $this;
71
-	}
64
+    /**
65
+     * @param string $alias
66
+     * @return self
67
+     */
68
+    public function addIdentifierAlias($alias) {
69
+        $this->identifierAliases[] = $alias;
70
+        return $this;
71
+    }
72 72
 
73
-	/**
74
-	 * @return object|null
75
-	 */
76
-	public function getDeprecateTo() {
77
-		return $this->deprecateTo;
78
-	}
73
+    /**
74
+     * @return object|null
75
+     */
76
+    public function getDeprecateTo() {
77
+        return $this->deprecateTo;
78
+    }
79 79
 
80
-	/**
81
-	 * @param object $destinationObject
82
-	 * @return self
83
-	 */
84
-	public function deprecateTo($destinationObject) {
85
-		$this->deprecateTo = $destinationObject;
86
-		return $this;
87
-	}
80
+    /**
81
+     * @param object $destinationObject
82
+     * @return self
83
+     */
84
+    public function deprecateTo($destinationObject) {
85
+        $this->deprecateTo = $destinationObject;
86
+        return $this;
87
+    }
88 88
 
89
-	/**
90
-	 * @return array
91
-	 */
92
-	public function jsonSerializeIdentifier() {
93
-		$data = [
94
-			'identifier' => $this->identifier,
95
-			'identifierAliases' => $this->identifierAliases,
96
-		];
97
-		if ($this->deprecateTo) {
98
-			$data['deprecateTo'] = $this->deprecateTo->getIdentifier();
99
-		}
100
-		return $data;
101
-	}
89
+    /**
90
+     * @return array
91
+     */
92
+    public function jsonSerializeIdentifier() {
93
+        $data = [
94
+            'identifier' => $this->identifier,
95
+            'identifierAliases' => $this->identifierAliases,
96
+        ];
97
+        if ($this->deprecateTo) {
98
+            $data['deprecateTo'] = $this->deprecateTo->getIdentifier();
99
+        }
100
+        return $data;
101
+    }
102 102
 
103 103
 }
Please login to merge, or discard this patch.
apps/files_external/appinfo/routes.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -30,40 +30,40 @@
 block discarded – undo
30 30
  * @var $this \OCP\Route\IRouter
31 31
  **/
32 32
 \OC_Mount_Config::$app->registerRoutes(
33
-	$this,
34
-	array(
35
-		'resources' => array(
36
-			'global_storages' => array('url' => '/globalstorages'),
37
-			'user_storages' => array('url' => '/userstorages'),
38
-			'user_global_storages' => array('url' => '/userglobalstorages'),
39
-		),
40
-		'routes' => array(
41
-			array(
42
-				'name' => 'Ajax#getSshKeys',
43
-				'url' => '/ajax/public_key.php',
44
-				'verb' => 'POST',
45
-				'requirements' => array()
46
-			),
47
-			[
48
-				'name' => 'Ajax#saveGlobalCredentials',
49
-				'url' => '/globalcredentials',
50
-				'verb' => 'POST',
51
-			],
52
-		)
53
-	)
33
+    $this,
34
+    array(
35
+        'resources' => array(
36
+            'global_storages' => array('url' => '/globalstorages'),
37
+            'user_storages' => array('url' => '/userstorages'),
38
+            'user_global_storages' => array('url' => '/userglobalstorages'),
39
+        ),
40
+        'routes' => array(
41
+            array(
42
+                'name' => 'Ajax#getSshKeys',
43
+                'url' => '/ajax/public_key.php',
44
+                'verb' => 'POST',
45
+                'requirements' => array()
46
+            ),
47
+            [
48
+                'name' => 'Ajax#saveGlobalCredentials',
49
+                'url' => '/globalcredentials',
50
+                'verb' => 'POST',
51
+            ],
52
+        )
53
+    )
54 54
 );
55 55
 
56 56
 $this->create('files_external_oauth1', 'ajax/oauth1.php')
57
-	->actionInclude('files_external/ajax/oauth1.php');
57
+    ->actionInclude('files_external/ajax/oauth1.php');
58 58
 $this->create('files_external_oauth2', 'ajax/oauth2.php')
59
-	->actionInclude('files_external/ajax/oauth2.php');
59
+    ->actionInclude('files_external/ajax/oauth2.php');
60 60
 
61 61
 
62 62
 $this->create('files_external_list_applicable', '/applicable')
63
-	->actionInclude('files_external/ajax/applicable.php');
63
+    ->actionInclude('files_external/ajax/applicable.php');
64 64
 
65 65
 \OCP\API::register('get',
66
-		'/apps/files_external/api/v1/mounts',
67
-		array('\OCA\Files_External\Lib\Api', 'getUserMounts'),
68
-		'files_external');
66
+        '/apps/files_external/api/v1/mounts',
67
+        array('\OCA\Files_External\Lib\Api', 'getUserMounts'),
68
+        'files_external');
69 69
 
Please login to merge, or discard this patch.
apps/systemtags/templates/admin.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -20,10 +20,10 @@
 block discarded – undo
20 20
  */
21 21
 
22 22
 script('core', [
23
-	'oc-backbone-webdav',
24
-	'systemtags/systemtags',
25
-	'systemtags/systemtagmodel',
26
-	'systemtags/systemtagscollection',
23
+    'oc-backbone-webdav',
24
+    'systemtags/systemtags',
25
+    'systemtags/systemtagmodel',
26
+    'systemtags/systemtagscollection',
27 27
 ]);
28 28
 
29 29
 script('systemtags', 'admin');
Please login to merge, or discard this patch.
apps/systemtags/templates/list.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -18,14 +18,14 @@
 block discarded – undo
18 18
 		<tr>
19 19
 			<th id='headerName' class="hidden column-name">
20 20
 				<div id="headerName-container">
21
-					<a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a>
21
+					<a class="name sort columntitle" data-sort="name"><span><?php p($l->t('Name')); ?></span><span class="sort-indicator"></span></a>
22 22
 				</div>
23 23
 			</th>
24 24
 			<th id="headerSize" class="hidden column-size">
25 25
 				<a class="size sort columntitle" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
26 26
 			</th>
27 27
 			<th id="headerDate" class="hidden column-mtime">
28
-				<a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t( 'Modified' )); ?></span><span class="sort-indicator"></span></a>
28
+				<a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span class="sort-indicator"></span></a>
29 29
 			</th>
30 30
 		</tr>
31 31
 	</thead>
Please login to merge, or discard this patch.
apps/systemtags/lib/Activity/Provider.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -279,7 +279,7 @@
 block discarded – undo
279 279
 		if ($tagData === null) {
280 280
 			list($name, $status) = explode('|||', substr($parameter, 3, -3));
281 281
 			$tagData = [
282
-				'id' => 0,// No way to recover the ID
282
+				'id' => 0, // No way to recover the ID
283 283
 				'name' => $name,
284 284
 				'assignable' => $status === 'assignable',
285 285
 				'visible' => $status !== 'invisible',
Please login to merge, or discard this patch.
Indentation   +307 added lines, -307 removed lines patch added patch discarded remove patch
@@ -32,311 +32,311 @@
 block discarded – undo
32 32
 
33 33
 class Provider implements IProvider {
34 34
 
35
-	const CREATE_TAG = 'create_tag';
36
-	const UPDATE_TAG = 'update_tag';
37
-	const DELETE_TAG = 'delete_tag';
38
-
39
-	const ASSIGN_TAG = 'assign_tag';
40
-	const UNASSIGN_TAG = 'unassign_tag';
41
-
42
-	/** @var IFactory */
43
-	protected $languageFactory;
44
-
45
-	/** @var IL10N */
46
-	protected $l;
47
-
48
-	/** @var IURLGenerator */
49
-	protected $url;
50
-
51
-	/** @var IManager */
52
-	protected $activityManager;
53
-
54
-	/** @var IUserManager */
55
-	protected $userManager;
56
-
57
-	/** @var string[] */
58
-	protected $displayNames = [];
59
-
60
-	/**
61
-	 * @param IFactory $languageFactory
62
-	 * @param IURLGenerator $url
63
-	 * @param IManager $activityManager
64
-	 * @param IUserManager $userManager
65
-	 */
66
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) {
67
-		$this->languageFactory = $languageFactory;
68
-		$this->url = $url;
69
-		$this->activityManager = $activityManager;
70
-		$this->userManager = $userManager;
71
-	}
72
-
73
-	/**
74
-	 * @param string $language
75
-	 * @param IEvent $event
76
-	 * @param IEvent|null $previousEvent
77
-	 * @return IEvent
78
-	 * @throws \InvalidArgumentException
79
-	 * @since 11.0.0
80
-	 */
81
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
82
-		if ($event->getApp() !== 'systemtags') {
83
-			throw new \InvalidArgumentException();
84
-		}
85
-
86
-		$this->l = $this->languageFactory->get('systemtags', $language);
87
-
88
-		if ($this->activityManager->isFormattingFilteredObject()) {
89
-			try {
90
-				return $this->parseShortVersion($event);
91
-			} catch (\InvalidArgumentException $e) {
92
-				// Ignore and simply use the long version...
93
-			}
94
-		}
95
-
96
-		return $this->parseLongVersion($event);
97
-	}
98
-
99
-	/**
100
-	 * @param IEvent $event
101
-	 * @return IEvent
102
-	 * @throws \InvalidArgumentException
103
-	 * @since 11.0.0
104
-	 */
105
-	public function parseShortVersion(IEvent $event) {
106
-		$parsedParameters = $this->getParameters($event);
107
-
108
-		if ($this->activityManager->getRequirePNG()) {
109
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
110
-		} else {
111
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
112
-		}
113
-
114
-		if ($event->getSubject() === self::ASSIGN_TAG) {
115
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
116
-				$event->setParsedSubject($this->l->t('Added system tag %1$s', [
117
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
118
-					]))
119
-					->setRichSubject($this->l->t('Added system tag {systemtag}'), [
120
-						'systemtag' => $parsedParameters['systemtag'],
121
-					]);
122
-			} else {
123
-				$event->setParsedSubject($this->l->t('%1$s added system tag %2$s', [
124
-						$parsedParameters['actor']['name'],
125
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
126
-					]))
127
-					->setRichSubject($this->l->t('{actor} added system tag {systemtag}'), [
128
-						'actor' => $parsedParameters['actor'],
129
-						'systemtag' => $parsedParameters['systemtag'],
130
-					]);
131
-			}
132
-		} else if ($event->getSubject() === self::UNASSIGN_TAG) {
133
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
134
-				$event->setParsedSubject($this->l->t('Removed system tag %1$s', [
135
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
136
-					]))
137
-					->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
138
-						'systemtag' => $parsedParameters['systemtag'],
139
-					]);
140
-			} else {
141
-				$event->setParsedSubject($this->l->t('%1$s removed system tag %2$s', [
142
-						$parsedParameters['actor']['name'],
143
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
144
-					]))
145
-					->setRichSubject($this->l->t('{actor} removed system tag {systemtag}'), [
146
-						'actor' => $parsedParameters['actor'],
147
-						'systemtag' => $parsedParameters['systemtag'],
148
-					]);
149
-			}
150
-		} else {
151
-			throw new \InvalidArgumentException();
152
-		}
153
-
154
-		return $event;
155
-	}
156
-
157
-	/**
158
-	 * @param IEvent $event
159
-	 * @return IEvent
160
-	 * @throws \InvalidArgumentException
161
-	 * @since 11.0.0
162
-	 */
163
-	public function parseLongVersion(IEvent $event) {
164
-		$parsedParameters = $this->getParameters($event);
165
-
166
-		if ($this->activityManager->getRequirePNG()) {
167
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
168
-		} else {
169
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
170
-		}
171
-
172
-		if ($event->getSubject() === self::CREATE_TAG) {
173
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
174
-				$event->setParsedSubject($this->l->t('You created system tag %1$s', [
175
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
176
-					]))
177
-					->setRichSubject($this->l->t('You created system tag {systemtag}'), $parsedParameters);
178
-			} else {
179
-				$event->setParsedSubject($this->l->t('%1$s created system tag %2$s', [
180
-						$parsedParameters['actor']['name'],
181
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
182
-					]))
183
-					->setRichSubject($this->l->t('{actor} created system tag {systemtag}'), $parsedParameters);
184
-			}
185
-		} else if ($event->getSubject() === self::DELETE_TAG) {
186
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
187
-				$event->setParsedSubject($this->l->t('You deleted system tag %1$s', [
188
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
189
-					]))
190
-					->setRichSubject($this->l->t('You deleted system tag {systemtag}'), $parsedParameters);
191
-			} else {
192
-				$event->setParsedSubject($this->l->t('%1$s deleted system tag %2$s', [
193
-						$parsedParameters['actor']['name'],
194
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
195
-					]))
196
-					->setRichSubject($this->l->t('{actor} deleted system tag {systemtag}'), $parsedParameters);
197
-			}
198
-		} else if ($event->getSubject() === self::UPDATE_TAG) {
199
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
200
-				$event->setParsedSubject($this->l->t('You updated system tag %2$s to %1$s', [
201
-						$this->generatePlainSystemTag($parsedParameters['newsystemtag']),
202
-						$this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
203
-					]))
204
-					->setRichSubject($this->l->t('You updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
205
-			} else {
206
-				$event->setParsedSubject($this->l->t('%1$s updated system tag %3$s to %2$s', [
207
-						$parsedParameters['actor']['name'],
208
-						$this->generatePlainSystemTag($parsedParameters['newsystemtag']),
209
-						$this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
210
-					]))
211
-					->setRichSubject($this->l->t('{actor} updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
212
-			}
213
-		} else if ($event->getSubject() === self::ASSIGN_TAG) {
214
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
215
-				$event->setParsedSubject($this->l->t('You added system tag %2$s to %1$s', [
216
-						$parsedParameters['file']['path'],
217
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
218
-					]))
219
-					->setRichSubject($this->l->t('You added system tag {systemtag} to {file}'), $parsedParameters);
220
-			} else {
221
-				$event->setParsedSubject($this->l->t('%1$s added system tag %3$s to %2$s', [
222
-						$parsedParameters['actor']['name'],
223
-						$parsedParameters['file']['path'],
224
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
225
-					]))
226
-					->setRichSubject($this->l->t('{actor} added system tag {systemtag} to {file}'), $parsedParameters);
227
-			}
228
-		} else if ($event->getSubject() === self::UNASSIGN_TAG) {
229
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
230
-				$event->setParsedSubject($this->l->t('You removed system tag %2$s from %1$s', [
231
-						$parsedParameters['file']['path'],
232
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
233
-					]))
234
-					->setRichSubject($this->l->t('You removed system tag {systemtag} from {file}'), $parsedParameters);
235
-			} else {
236
-				$event->setParsedSubject($this->l->t('%1$s removed system tag %3$s from %2$s', [
237
-						$parsedParameters['actor']['name'],
238
-						$parsedParameters['file']['path'],
239
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
240
-					]))
241
-					->setRichSubject($this->l->t('{actor} removed system tag {systemtag} from {file}'), $parsedParameters);
242
-			}
243
-		} else {
244
-			throw new \InvalidArgumentException();
245
-		}
246
-
247
-		return $event;
248
-	}
249
-
250
-	protected function getParameters(IEvent $event) {
251
-		$subject = $event->getSubject();
252
-		$parameters = $event->getSubjectParameters();
253
-
254
-		switch ($subject) {
255
-			case self::CREATE_TAG:
256
-			case self::DELETE_TAG:
257
-				return [
258
-					'actor' => $this->getUserParameter($parameters[0]),
259
-					'systemtag' => $this->getSystemTagParameter($parameters[1]),
260
-				];
261
-			case self::UPDATE_TAG:
262
-				return [
263
-					'actor' => $this->getUserParameter($parameters[0]),
264
-					'newsystemtag' => $this->getSystemTagParameter($parameters[1]),
265
-					'oldsystemtag' => $this->getSystemTagParameter($parameters[2]),
266
-				];
267
-			case self::ASSIGN_TAG:
268
-			case self::UNASSIGN_TAG:
269
-				return [
270
-					'actor' => $this->getUserParameter($parameters[0]),
271
-					'file' => $this->getFileParameter($event->getObjectId(), $parameters[1]),
272
-					'systemtag' => $this->getSystemTagParameter($parameters[2]),
273
-				];
274
-		}
275
-		return [];
276
-	}
277
-
278
-	protected function getFileParameter($id, $path) {
279
-		return [
280
-			'type' => 'file',
281
-			'id' => $id,
282
-			'name' => basename($path),
283
-			'path' => trim($path, '/'),
284
-		];
285
-	}
286
-
287
-	protected function getSystemTagParameter($parameter) {
288
-		$tagData = json_decode($parameter, true);
289
-		if ($tagData === null) {
290
-			list($name, $status) = explode('|||', substr($parameter, 3, -3));
291
-			$tagData = [
292
-				'id' => 0,// No way to recover the ID
293
-				'name' => $name,
294
-				'assignable' => $status === 'assignable',
295
-				'visible' => $status !== 'invisible',
296
-			];
297
-		}
298
-
299
-		return [
300
-			'type' => 'systemtag',
301
-			'id' => (int) $tagData['id'],
302
-			'name' => $tagData['name'],
303
-			'assignable' => $tagData['assignable'] ? '1' : '0',
304
-			'visibility' => $tagData['visible'] ? '1' : '0',
305
-		];
306
-	}
307
-
308
-	protected function getUserParameter($uid) {
309
-		if (!isset($this->displayNames[$uid])) {
310
-			$this->displayNames[$uid] = $this->getDisplayName($uid);
311
-		}
312
-
313
-		return [
314
-			'type' => 'user',
315
-			'id' => $uid,
316
-			'name' => $this->displayNames[$uid],
317
-		];
318
-	}
319
-
320
-	protected function generatePlainSystemTag(array $parameter) {
321
-		if ($parameter['assignable'] === '1') {
322
-			return $parameter['name'];
323
-		} else if ($parameter['visibility'] === '1') {
324
-			return $this->l->t('%s (restricted)', $parameter['name']);
325
-		} else {
326
-			return $this->l->t('%s (invisible)', $parameter['name']);
327
-		}
328
-	}
329
-
330
-	/**
331
-	 * @param string $uid
332
-	 * @return string
333
-	 */
334
-	protected function getDisplayName($uid) {
335
-		$user = $this->userManager->get($uid);
336
-		if ($user instanceof IUser) {
337
-			return $user->getDisplayName();
338
-		} else {
339
-			return $uid;
340
-		}
341
-	}
35
+    const CREATE_TAG = 'create_tag';
36
+    const UPDATE_TAG = 'update_tag';
37
+    const DELETE_TAG = 'delete_tag';
38
+
39
+    const ASSIGN_TAG = 'assign_tag';
40
+    const UNASSIGN_TAG = 'unassign_tag';
41
+
42
+    /** @var IFactory */
43
+    protected $languageFactory;
44
+
45
+    /** @var IL10N */
46
+    protected $l;
47
+
48
+    /** @var IURLGenerator */
49
+    protected $url;
50
+
51
+    /** @var IManager */
52
+    protected $activityManager;
53
+
54
+    /** @var IUserManager */
55
+    protected $userManager;
56
+
57
+    /** @var string[] */
58
+    protected $displayNames = [];
59
+
60
+    /**
61
+     * @param IFactory $languageFactory
62
+     * @param IURLGenerator $url
63
+     * @param IManager $activityManager
64
+     * @param IUserManager $userManager
65
+     */
66
+    public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) {
67
+        $this->languageFactory = $languageFactory;
68
+        $this->url = $url;
69
+        $this->activityManager = $activityManager;
70
+        $this->userManager = $userManager;
71
+    }
72
+
73
+    /**
74
+     * @param string $language
75
+     * @param IEvent $event
76
+     * @param IEvent|null $previousEvent
77
+     * @return IEvent
78
+     * @throws \InvalidArgumentException
79
+     * @since 11.0.0
80
+     */
81
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
82
+        if ($event->getApp() !== 'systemtags') {
83
+            throw new \InvalidArgumentException();
84
+        }
85
+
86
+        $this->l = $this->languageFactory->get('systemtags', $language);
87
+
88
+        if ($this->activityManager->isFormattingFilteredObject()) {
89
+            try {
90
+                return $this->parseShortVersion($event);
91
+            } catch (\InvalidArgumentException $e) {
92
+                // Ignore and simply use the long version...
93
+            }
94
+        }
95
+
96
+        return $this->parseLongVersion($event);
97
+    }
98
+
99
+    /**
100
+     * @param IEvent $event
101
+     * @return IEvent
102
+     * @throws \InvalidArgumentException
103
+     * @since 11.0.0
104
+     */
105
+    public function parseShortVersion(IEvent $event) {
106
+        $parsedParameters = $this->getParameters($event);
107
+
108
+        if ($this->activityManager->getRequirePNG()) {
109
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
110
+        } else {
111
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
112
+        }
113
+
114
+        if ($event->getSubject() === self::ASSIGN_TAG) {
115
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
116
+                $event->setParsedSubject($this->l->t('Added system tag %1$s', [
117
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
118
+                    ]))
119
+                    ->setRichSubject($this->l->t('Added system tag {systemtag}'), [
120
+                        'systemtag' => $parsedParameters['systemtag'],
121
+                    ]);
122
+            } else {
123
+                $event->setParsedSubject($this->l->t('%1$s added system tag %2$s', [
124
+                        $parsedParameters['actor']['name'],
125
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
126
+                    ]))
127
+                    ->setRichSubject($this->l->t('{actor} added system tag {systemtag}'), [
128
+                        'actor' => $parsedParameters['actor'],
129
+                        'systemtag' => $parsedParameters['systemtag'],
130
+                    ]);
131
+            }
132
+        } else if ($event->getSubject() === self::UNASSIGN_TAG) {
133
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
134
+                $event->setParsedSubject($this->l->t('Removed system tag %1$s', [
135
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
136
+                    ]))
137
+                    ->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
138
+                        'systemtag' => $parsedParameters['systemtag'],
139
+                    ]);
140
+            } else {
141
+                $event->setParsedSubject($this->l->t('%1$s removed system tag %2$s', [
142
+                        $parsedParameters['actor']['name'],
143
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
144
+                    ]))
145
+                    ->setRichSubject($this->l->t('{actor} removed system tag {systemtag}'), [
146
+                        'actor' => $parsedParameters['actor'],
147
+                        'systemtag' => $parsedParameters['systemtag'],
148
+                    ]);
149
+            }
150
+        } else {
151
+            throw new \InvalidArgumentException();
152
+        }
153
+
154
+        return $event;
155
+    }
156
+
157
+    /**
158
+     * @param IEvent $event
159
+     * @return IEvent
160
+     * @throws \InvalidArgumentException
161
+     * @since 11.0.0
162
+     */
163
+    public function parseLongVersion(IEvent $event) {
164
+        $parsedParameters = $this->getParameters($event);
165
+
166
+        if ($this->activityManager->getRequirePNG()) {
167
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
168
+        } else {
169
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
170
+        }
171
+
172
+        if ($event->getSubject() === self::CREATE_TAG) {
173
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
174
+                $event->setParsedSubject($this->l->t('You created system tag %1$s', [
175
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
176
+                    ]))
177
+                    ->setRichSubject($this->l->t('You created system tag {systemtag}'), $parsedParameters);
178
+            } else {
179
+                $event->setParsedSubject($this->l->t('%1$s created system tag %2$s', [
180
+                        $parsedParameters['actor']['name'],
181
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
182
+                    ]))
183
+                    ->setRichSubject($this->l->t('{actor} created system tag {systemtag}'), $parsedParameters);
184
+            }
185
+        } else if ($event->getSubject() === self::DELETE_TAG) {
186
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
187
+                $event->setParsedSubject($this->l->t('You deleted system tag %1$s', [
188
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
189
+                    ]))
190
+                    ->setRichSubject($this->l->t('You deleted system tag {systemtag}'), $parsedParameters);
191
+            } else {
192
+                $event->setParsedSubject($this->l->t('%1$s deleted system tag %2$s', [
193
+                        $parsedParameters['actor']['name'],
194
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
195
+                    ]))
196
+                    ->setRichSubject($this->l->t('{actor} deleted system tag {systemtag}'), $parsedParameters);
197
+            }
198
+        } else if ($event->getSubject() === self::UPDATE_TAG) {
199
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
200
+                $event->setParsedSubject($this->l->t('You updated system tag %2$s to %1$s', [
201
+                        $this->generatePlainSystemTag($parsedParameters['newsystemtag']),
202
+                        $this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
203
+                    ]))
204
+                    ->setRichSubject($this->l->t('You updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
205
+            } else {
206
+                $event->setParsedSubject($this->l->t('%1$s updated system tag %3$s to %2$s', [
207
+                        $parsedParameters['actor']['name'],
208
+                        $this->generatePlainSystemTag($parsedParameters['newsystemtag']),
209
+                        $this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
210
+                    ]))
211
+                    ->setRichSubject($this->l->t('{actor} updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
212
+            }
213
+        } else if ($event->getSubject() === self::ASSIGN_TAG) {
214
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
215
+                $event->setParsedSubject($this->l->t('You added system tag %2$s to %1$s', [
216
+                        $parsedParameters['file']['path'],
217
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
218
+                    ]))
219
+                    ->setRichSubject($this->l->t('You added system tag {systemtag} to {file}'), $parsedParameters);
220
+            } else {
221
+                $event->setParsedSubject($this->l->t('%1$s added system tag %3$s to %2$s', [
222
+                        $parsedParameters['actor']['name'],
223
+                        $parsedParameters['file']['path'],
224
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
225
+                    ]))
226
+                    ->setRichSubject($this->l->t('{actor} added system tag {systemtag} to {file}'), $parsedParameters);
227
+            }
228
+        } else if ($event->getSubject() === self::UNASSIGN_TAG) {
229
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
230
+                $event->setParsedSubject($this->l->t('You removed system tag %2$s from %1$s', [
231
+                        $parsedParameters['file']['path'],
232
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
233
+                    ]))
234
+                    ->setRichSubject($this->l->t('You removed system tag {systemtag} from {file}'), $parsedParameters);
235
+            } else {
236
+                $event->setParsedSubject($this->l->t('%1$s removed system tag %3$s from %2$s', [
237
+                        $parsedParameters['actor']['name'],
238
+                        $parsedParameters['file']['path'],
239
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
240
+                    ]))
241
+                    ->setRichSubject($this->l->t('{actor} removed system tag {systemtag} from {file}'), $parsedParameters);
242
+            }
243
+        } else {
244
+            throw new \InvalidArgumentException();
245
+        }
246
+
247
+        return $event;
248
+    }
249
+
250
+    protected function getParameters(IEvent $event) {
251
+        $subject = $event->getSubject();
252
+        $parameters = $event->getSubjectParameters();
253
+
254
+        switch ($subject) {
255
+            case self::CREATE_TAG:
256
+            case self::DELETE_TAG:
257
+                return [
258
+                    'actor' => $this->getUserParameter($parameters[0]),
259
+                    'systemtag' => $this->getSystemTagParameter($parameters[1]),
260
+                ];
261
+            case self::UPDATE_TAG:
262
+                return [
263
+                    'actor' => $this->getUserParameter($parameters[0]),
264
+                    'newsystemtag' => $this->getSystemTagParameter($parameters[1]),
265
+                    'oldsystemtag' => $this->getSystemTagParameter($parameters[2]),
266
+                ];
267
+            case self::ASSIGN_TAG:
268
+            case self::UNASSIGN_TAG:
269
+                return [
270
+                    'actor' => $this->getUserParameter($parameters[0]),
271
+                    'file' => $this->getFileParameter($event->getObjectId(), $parameters[1]),
272
+                    'systemtag' => $this->getSystemTagParameter($parameters[2]),
273
+                ];
274
+        }
275
+        return [];
276
+    }
277
+
278
+    protected function getFileParameter($id, $path) {
279
+        return [
280
+            'type' => 'file',
281
+            'id' => $id,
282
+            'name' => basename($path),
283
+            'path' => trim($path, '/'),
284
+        ];
285
+    }
286
+
287
+    protected function getSystemTagParameter($parameter) {
288
+        $tagData = json_decode($parameter, true);
289
+        if ($tagData === null) {
290
+            list($name, $status) = explode('|||', substr($parameter, 3, -3));
291
+            $tagData = [
292
+                'id' => 0,// No way to recover the ID
293
+                'name' => $name,
294
+                'assignable' => $status === 'assignable',
295
+                'visible' => $status !== 'invisible',
296
+            ];
297
+        }
298
+
299
+        return [
300
+            'type' => 'systemtag',
301
+            'id' => (int) $tagData['id'],
302
+            'name' => $tagData['name'],
303
+            'assignable' => $tagData['assignable'] ? '1' : '0',
304
+            'visibility' => $tagData['visible'] ? '1' : '0',
305
+        ];
306
+    }
307
+
308
+    protected function getUserParameter($uid) {
309
+        if (!isset($this->displayNames[$uid])) {
310
+            $this->displayNames[$uid] = $this->getDisplayName($uid);
311
+        }
312
+
313
+        return [
314
+            'type' => 'user',
315
+            'id' => $uid,
316
+            'name' => $this->displayNames[$uid],
317
+        ];
318
+    }
319
+
320
+    protected function generatePlainSystemTag(array $parameter) {
321
+        if ($parameter['assignable'] === '1') {
322
+            return $parameter['name'];
323
+        } else if ($parameter['visibility'] === '1') {
324
+            return $this->l->t('%s (restricted)', $parameter['name']);
325
+        } else {
326
+            return $this->l->t('%s (invisible)', $parameter['name']);
327
+        }
328
+    }
329
+
330
+    /**
331
+     * @param string $uid
332
+     * @return string
333
+     */
334
+    protected function getDisplayName($uid) {
335
+        $user = $this->userManager->get($uid);
336
+        if ($user instanceof IUser) {
337
+            return $user->getDisplayName();
338
+        } else {
339
+            return $uid;
340
+        }
341
+    }
342 342
 }
Please login to merge, or discard this patch.