Passed
Push — master ( 09a284...339466 )
by Roeland
39:23 queued 10:37
created
apps/files_external/lib/Lib/Config/IAuthMechanismProvider.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -30,10 +30,10 @@
 block discarded – undo
30 30
  */
31 31
 interface IAuthMechanismProvider {
32 32
 
33
-	/**
34
-	 * @since 9.1.0
35
-	 * @return AuthMechanism[]
36
-	 */
37
-	public function getAuthMechanisms();
33
+    /**
34
+     * @since 9.1.0
35
+     * @return AuthMechanism[]
36
+     */
37
+    public function getAuthMechanisms();
38 38
 
39 39
 }
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/Storage/FTP.php 3 patches
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -93,8 +93,7 @@
 block discarded – undo
93 93
 	public function unlink($path) {
94 94
 		if ($this->is_dir($path)) {
95 95
 			return $this->rmdir($path);
96
-		}
97
-		else {
96
+		} else {
98 97
 			$url = $this->constructUrl($path);
99 98
 			$result = unlink($url);
100 99
 			clearstatcache(true, $url);
Please login to merge, or discard this patch.
Indentation   +108 added lines, -108 removed lines patch added patch discarded remove patch
@@ -38,120 +38,120 @@
 block discarded – undo
38 38
 use Icewind\Streams\RetryWrapper;
39 39
 
40 40
 class FTP extends StreamWrapper{
41
-	private $password;
42
-	private $user;
43
-	private $host;
44
-	private $secure;
45
-	private $root;
41
+    private $password;
42
+    private $user;
43
+    private $host;
44
+    private $secure;
45
+    private $root;
46 46
 
47
-	public function __construct($params) {
48
-		if (isset($params['host']) && isset($params['user']) && isset($params['password'])) {
49
-			$this->host=$params['host'];
50
-			$this->user=$params['user'];
51
-			$this->password=$params['password'];
52
-			if (isset($params['secure'])) {
53
-				$this->secure = $params['secure'];
54
-			} else {
55
-				$this->secure = false;
56
-			}
57
-			$this->root=isset($params['root'])?$params['root']:'/';
58
-			if ( ! $this->root || $this->root[0]!=='/') {
59
-				$this->root='/'.$this->root;
60
-			}
61
-			if (substr($this->root, -1) !== '/') {
62
-				$this->root .= '/';
63
-			}
64
-		} else {
65
-			throw new \Exception('Creating FTP storage failed');
66
-		}
47
+    public function __construct($params) {
48
+        if (isset($params['host']) && isset($params['user']) && isset($params['password'])) {
49
+            $this->host=$params['host'];
50
+            $this->user=$params['user'];
51
+            $this->password=$params['password'];
52
+            if (isset($params['secure'])) {
53
+                $this->secure = $params['secure'];
54
+            } else {
55
+                $this->secure = false;
56
+            }
57
+            $this->root=isset($params['root'])?$params['root']:'/';
58
+            if ( ! $this->root || $this->root[0]!=='/') {
59
+                $this->root='/'.$this->root;
60
+            }
61
+            if (substr($this->root, -1) !== '/') {
62
+                $this->root .= '/';
63
+            }
64
+        } else {
65
+            throw new \Exception('Creating FTP storage failed');
66
+        }
67 67
 		
68
-	}
68
+    }
69 69
 
70
-	public function getId(){
71
-		return 'ftp::' . $this->user . '@' . $this->host . '/' . $this->root;
72
-	}
70
+    public function getId(){
71
+        return 'ftp::' . $this->user . '@' . $this->host . '/' . $this->root;
72
+    }
73 73
 
74
-	/**
75
-	 * construct the ftp url
76
-	 * @param string $path
77
-	 * @return string
78
-	 */
79
-	public function constructUrl($path) {
80
-		$url='ftp';
81
-		if ($this->secure) {
82
-			$url.='s';
83
-		}
84
-		$url.='://'.urlencode($this->user).':'.urlencode($this->password).'@'.$this->host.$this->root.$path;
85
-		return $url;
86
-	}
74
+    /**
75
+     * construct the ftp url
76
+     * @param string $path
77
+     * @return string
78
+     */
79
+    public function constructUrl($path) {
80
+        $url='ftp';
81
+        if ($this->secure) {
82
+            $url.='s';
83
+        }
84
+        $url.='://'.urlencode($this->user).':'.urlencode($this->password).'@'.$this->host.$this->root.$path;
85
+        return $url;
86
+    }
87 87
 
88
-	/**
89
-	 * Unlinks file or directory
90
-	 * @param string $path
91
-	 */
92
-	public function unlink($path) {
93
-		if ($this->is_dir($path)) {
94
-			return $this->rmdir($path);
95
-		}
96
-		else {
97
-			$url = $this->constructUrl($path);
98
-			$result = unlink($url);
99
-			clearstatcache(true, $url);
100
-			return $result;
101
-		}
102
-	}
103
-	public function fopen($path,$mode) {
104
-		switch($mode) {
105
-			case 'r':
106
-			case 'rb':
107
-			case 'w':
108
-			case 'wb':
109
-			case 'a':
110
-			case 'ab':
111
-				//these are supported by the wrapper
112
-				$context = stream_context_create(array('ftp' => array('overwrite' => true)));
113
-				$handle = fopen($this->constructUrl($path), $mode, false, $context);
114
-				return RetryWrapper::wrap($handle);
115
-			case 'r+':
116
-			case 'w+':
117
-			case 'wb+':
118
-			case 'a+':
119
-			case 'x':
120
-			case 'x+':
121
-			case 'c':
122
-			case 'c+':
123
-				//emulate these
124
-				if (strrpos($path, '.')!==false) {
125
-					$ext=substr($path, strrpos($path, '.'));
126
-				} else {
127
-					$ext='';
128
-				}
129
-				$tmpFile = \OC::$server->getTempManager()->getTemporaryFile();
130
-				if ($this->file_exists($path)) {
131
-					$this->getFile($path, $tmpFile);
132
-				}
133
-				$handle = fopen($tmpFile, $mode);
134
-				return CallbackWrapper::wrap($handle, null, null, function () use ($path, $tmpFile) {
135
-					$this->writeBack($tmpFile, $path);
136
-				});
137
-		}
138
-		return false;
139
-	}
88
+    /**
89
+     * Unlinks file or directory
90
+     * @param string $path
91
+     */
92
+    public function unlink($path) {
93
+        if ($this->is_dir($path)) {
94
+            return $this->rmdir($path);
95
+        }
96
+        else {
97
+            $url = $this->constructUrl($path);
98
+            $result = unlink($url);
99
+            clearstatcache(true, $url);
100
+            return $result;
101
+        }
102
+    }
103
+    public function fopen($path,$mode) {
104
+        switch($mode) {
105
+            case 'r':
106
+            case 'rb':
107
+            case 'w':
108
+            case 'wb':
109
+            case 'a':
110
+            case 'ab':
111
+                //these are supported by the wrapper
112
+                $context = stream_context_create(array('ftp' => array('overwrite' => true)));
113
+                $handle = fopen($this->constructUrl($path), $mode, false, $context);
114
+                return RetryWrapper::wrap($handle);
115
+            case 'r+':
116
+            case 'w+':
117
+            case 'wb+':
118
+            case 'a+':
119
+            case 'x':
120
+            case 'x+':
121
+            case 'c':
122
+            case 'c+':
123
+                //emulate these
124
+                if (strrpos($path, '.')!==false) {
125
+                    $ext=substr($path, strrpos($path, '.'));
126
+                } else {
127
+                    $ext='';
128
+                }
129
+                $tmpFile = \OC::$server->getTempManager()->getTemporaryFile();
130
+                if ($this->file_exists($path)) {
131
+                    $this->getFile($path, $tmpFile);
132
+                }
133
+                $handle = fopen($tmpFile, $mode);
134
+                return CallbackWrapper::wrap($handle, null, null, function () use ($path, $tmpFile) {
135
+                    $this->writeBack($tmpFile, $path);
136
+                });
137
+        }
138
+        return false;
139
+    }
140 140
 
141
-	public function writeBack($tmpFile, $path) {
142
-		$this->uploadFile($tmpFile, $path);
143
-		unlink($tmpFile);
144
-	}
141
+    public function writeBack($tmpFile, $path) {
142
+        $this->uploadFile($tmpFile, $path);
143
+        unlink($tmpFile);
144
+    }
145 145
 
146
-	/**
147
-	 * check if php-ftp is installed
148
-	 */
149
-	public static function checkDependencies() {
150
-		if (function_exists('ftp_login')) {
151
-			return true;
152
-		} else {
153
-			return array('ftp');
154
-		}
155
-	}
146
+    /**
147
+     * check if php-ftp is installed
148
+     */
149
+    public static function checkDependencies() {
150
+        if (function_exists('ftp_login')) {
151
+            return true;
152
+        } else {
153
+            return array('ftp');
154
+        }
155
+    }
156 156
 
157 157
 }
Please login to merge, or discard this patch.
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 use Icewind\Streams\CallbackWrapper;
38 38
 use Icewind\Streams\RetryWrapper;
39 39
 
40
-class FTP extends StreamWrapper{
40
+class FTP extends StreamWrapper {
41 41
 	private $password;
42 42
 	private $user;
43 43
 	private $host;
@@ -46,17 +46,17 @@  discard block
 block discarded – undo
46 46
 
47 47
 	public function __construct($params) {
48 48
 		if (isset($params['host']) && isset($params['user']) && isset($params['password'])) {
49
-			$this->host=$params['host'];
50
-			$this->user=$params['user'];
51
-			$this->password=$params['password'];
49
+			$this->host = $params['host'];
50
+			$this->user = $params['user'];
51
+			$this->password = $params['password'];
52 52
 			if (isset($params['secure'])) {
53 53
 				$this->secure = $params['secure'];
54 54
 			} else {
55 55
 				$this->secure = false;
56 56
 			}
57
-			$this->root=isset($params['root'])?$params['root']:'/';
58
-			if ( ! $this->root || $this->root[0]!=='/') {
59
-				$this->root='/'.$this->root;
57
+			$this->root = isset($params['root']) ? $params['root'] : '/';
58
+			if (!$this->root || $this->root[0] !== '/') {
59
+				$this->root = '/'.$this->root;
60 60
 			}
61 61
 			if (substr($this->root, -1) !== '/') {
62 62
 				$this->root .= '/';
@@ -67,8 +67,8 @@  discard block
 block discarded – undo
67 67
 		
68 68
 	}
69 69
 
70
-	public function getId(){
71
-		return 'ftp::' . $this->user . '@' . $this->host . '/' . $this->root;
70
+	public function getId() {
71
+		return 'ftp::'.$this->user.'@'.$this->host.'/'.$this->root;
72 72
 	}
73 73
 
74 74
 	/**
@@ -77,11 +77,11 @@  discard block
 block discarded – undo
77 77
 	 * @return string
78 78
 	 */
79 79
 	public function constructUrl($path) {
80
-		$url='ftp';
80
+		$url = 'ftp';
81 81
 		if ($this->secure) {
82
-			$url.='s';
82
+			$url .= 's';
83 83
 		}
84
-		$url.='://'.urlencode($this->user).':'.urlencode($this->password).'@'.$this->host.$this->root.$path;
84
+		$url .= '://'.urlencode($this->user).':'.urlencode($this->password).'@'.$this->host.$this->root.$path;
85 85
 		return $url;
86 86
 	}
87 87
 
@@ -100,8 +100,8 @@  discard block
 block discarded – undo
100 100
 			return $result;
101 101
 		}
102 102
 	}
103
-	public function fopen($path,$mode) {
104
-		switch($mode) {
103
+	public function fopen($path, $mode) {
104
+		switch ($mode) {
105 105
 			case 'r':
106 106
 			case 'rb':
107 107
 			case 'w':
@@ -121,17 +121,17 @@  discard block
 block discarded – undo
121 121
 			case 'c':
122 122
 			case 'c+':
123 123
 				//emulate these
124
-				if (strrpos($path, '.')!==false) {
125
-					$ext=substr($path, strrpos($path, '.'));
124
+				if (strrpos($path, '.') !== false) {
125
+					$ext = substr($path, strrpos($path, '.'));
126 126
 				} else {
127
-					$ext='';
127
+					$ext = '';
128 128
 				}
129 129
 				$tmpFile = \OC::$server->getTempManager()->getTemporaryFile();
130 130
 				if ($this->file_exists($path)) {
131 131
 					$this->getFile($path, $tmpFile);
132 132
 				}
133 133
 				$handle = fopen($tmpFile, $mode);
134
-				return CallbackWrapper::wrap($handle, null, null, function () use ($path, $tmpFile) {
134
+				return CallbackWrapper::wrap($handle, null, null, function() use ($path, $tmpFile) {
135 135
 					$this->writeBack($tmpFile, $path);
136 136
 				});
137 137
 		}
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/Storage/StreamWrapper.php 2 patches
Indentation   +96 added lines, -96 removed lines patch added patch discarded remove patch
@@ -30,101 +30,101 @@
 block discarded – undo
30 30
 
31 31
 abstract class StreamWrapper extends \OC\Files\Storage\Common {
32 32
 
33
-	/**
34
-	 * @param string $path
35
-	 * @return string|null
36
-	 */
37
-	abstract public function constructUrl($path);
38
-
39
-	public function mkdir($path) {
40
-		return mkdir($this->constructUrl($path));
41
-	}
42
-
43
-	public function rmdir($path) {
44
-		if ($this->is_dir($path) && $this->isDeletable($path)) {
45
-			$dh = $this->opendir($path);
46
-			if (!is_resource($dh)) {
47
-				return false;
48
-			}
49
-			while (($file = readdir($dh)) !== false) {
50
-				if ($this->is_dir($path . '/' . $file)) {
51
-					$this->rmdir($path . '/' . $file);
52
-				} else {
53
-					$this->unlink($path . '/' . $file);
54
-				}
55
-			}
56
-			$url = $this->constructUrl($path);
57
-			$success = rmdir($url);
58
-			clearstatcache(false, $url);
59
-			return $success;
60
-		} else {
61
-			return false;
62
-		}
63
-	}
64
-
65
-	public function opendir($path) {
66
-		return opendir($this->constructUrl($path));
67
-	}
68
-
69
-	public function filetype($path) {
70
-		return @filetype($this->constructUrl($path));
71
-	}
72
-
73
-	public function file_exists($path) {
74
-		return file_exists($this->constructUrl($path));
75
-	}
76
-
77
-	public function unlink($path) {
78
-		$url = $this->constructUrl($path);
79
-		$success = unlink($url);
80
-		// normally unlink() is supposed to do this implicitly,
81
-		// but doing it anyway just to be sure
82
-		clearstatcache(false, $url);
83
-		return $success;
84
-	}
85
-
86
-	public function fopen($path, $mode) {
87
-		return fopen($this->constructUrl($path), $mode);
88
-	}
89
-
90
-	public function touch($path, $mtime = null) {
91
-		if ($this->file_exists($path)) {
92
-			if (is_null($mtime)) {
93
-				$fh = $this->fopen($path, 'a');
94
-				fwrite($fh, '');
95
-				fclose($fh);
96
-
97
-				return true;
98
-			} else {
99
-				return false; //not supported
100
-			}
101
-		} else {
102
-			$this->file_put_contents($path, '');
103
-			return true;
104
-		}
105
-	}
106
-
107
-	/**
108
-	 * @param string $path
109
-	 * @param string $target
110
-	 */
111
-	public function getFile($path, $target) {
112
-		return copy($this->constructUrl($path), $target);
113
-	}
114
-
115
-	/**
116
-	 * @param string $target
117
-	 */
118
-	public function uploadFile($path, $target) {
119
-		return copy($path, $this->constructUrl($target));
120
-	}
121
-
122
-	public function rename($path1, $path2) {
123
-		return rename($this->constructUrl($path1), $this->constructUrl($path2));
124
-	}
125
-
126
-	public function stat($path) {
127
-		return stat($this->constructUrl($path));
128
-	}
33
+    /**
34
+     * @param string $path
35
+     * @return string|null
36
+     */
37
+    abstract public function constructUrl($path);
38
+
39
+    public function mkdir($path) {
40
+        return mkdir($this->constructUrl($path));
41
+    }
42
+
43
+    public function rmdir($path) {
44
+        if ($this->is_dir($path) && $this->isDeletable($path)) {
45
+            $dh = $this->opendir($path);
46
+            if (!is_resource($dh)) {
47
+                return false;
48
+            }
49
+            while (($file = readdir($dh)) !== false) {
50
+                if ($this->is_dir($path . '/' . $file)) {
51
+                    $this->rmdir($path . '/' . $file);
52
+                } else {
53
+                    $this->unlink($path . '/' . $file);
54
+                }
55
+            }
56
+            $url = $this->constructUrl($path);
57
+            $success = rmdir($url);
58
+            clearstatcache(false, $url);
59
+            return $success;
60
+        } else {
61
+            return false;
62
+        }
63
+    }
64
+
65
+    public function opendir($path) {
66
+        return opendir($this->constructUrl($path));
67
+    }
68
+
69
+    public function filetype($path) {
70
+        return @filetype($this->constructUrl($path));
71
+    }
72
+
73
+    public function file_exists($path) {
74
+        return file_exists($this->constructUrl($path));
75
+    }
76
+
77
+    public function unlink($path) {
78
+        $url = $this->constructUrl($path);
79
+        $success = unlink($url);
80
+        // normally unlink() is supposed to do this implicitly,
81
+        // but doing it anyway just to be sure
82
+        clearstatcache(false, $url);
83
+        return $success;
84
+    }
85
+
86
+    public function fopen($path, $mode) {
87
+        return fopen($this->constructUrl($path), $mode);
88
+    }
89
+
90
+    public function touch($path, $mtime = null) {
91
+        if ($this->file_exists($path)) {
92
+            if (is_null($mtime)) {
93
+                $fh = $this->fopen($path, 'a');
94
+                fwrite($fh, '');
95
+                fclose($fh);
96
+
97
+                return true;
98
+            } else {
99
+                return false; //not supported
100
+            }
101
+        } else {
102
+            $this->file_put_contents($path, '');
103
+            return true;
104
+        }
105
+    }
106
+
107
+    /**
108
+     * @param string $path
109
+     * @param string $target
110
+     */
111
+    public function getFile($path, $target) {
112
+        return copy($this->constructUrl($path), $target);
113
+    }
114
+
115
+    /**
116
+     * @param string $target
117
+     */
118
+    public function uploadFile($path, $target) {
119
+        return copy($path, $this->constructUrl($target));
120
+    }
121
+
122
+    public function rename($path1, $path2) {
123
+        return rename($this->constructUrl($path1), $this->constructUrl($path2));
124
+    }
125
+
126
+    public function stat($path) {
127
+        return stat($this->constructUrl($path));
128
+    }
129 129
 
130 130
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -47,10 +47,10 @@
 block discarded – undo
47 47
 				return false;
48 48
 			}
49 49
 			while (($file = readdir($dh)) !== false) {
50
-				if ($this->is_dir($path . '/' . $file)) {
51
-					$this->rmdir($path . '/' . $file);
50
+				if ($this->is_dir($path.'/'.$file)) {
51
+					$this->rmdir($path.'/'.$file);
52 52
 				} else {
53
-					$this->unlink($path . '/' . $file);
53
+					$this->unlink($path.'/'.$file);
54 54
 				}
55 55
 			}
56 56
 			$url = $this->constructUrl($path);
Please login to merge, or discard this patch.
apps/files_external/lib/Lib/StorageModifierTrait.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -43,28 +43,28 @@
 block discarded – undo
43 43
  */
44 44
 trait StorageModifierTrait {
45 45
 
46
-	/**
47
-	 * Modify a StorageConfig parameters
48
-	 *
49
-	 * @param StorageConfig $storage
50
-	 * @param IUser $user User the storage is being used as
51
-	 * @throws InsufficientDataForMeaningfulAnswerException
52
-	 * @throws StorageNotAvailableException
53
-	 */
54
-	public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) {
55
-	}
46
+    /**
47
+     * Modify a StorageConfig parameters
48
+     *
49
+     * @param StorageConfig $storage
50
+     * @param IUser $user User the storage is being used as
51
+     * @throws InsufficientDataForMeaningfulAnswerException
52
+     * @throws StorageNotAvailableException
53
+     */
54
+    public function manipulateStorageConfig(StorageConfig &$storage, IUser $user = null) {
55
+    }
56 56
 
57
-	/**
58
-	 * Wrap a Storage if necessary
59
-	 *
60
-	 * @param Storage $storage
61
-	 * @return Storage
62
-	 * @throws InsufficientDataForMeaningfulAnswerException
63
-	 * @throws StorageNotAvailableException
64
-	 */
65
-	public function wrapStorage(Storage $storage) {
66
-		return $storage;
67
-	}
57
+    /**
58
+     * Wrap a Storage if necessary
59
+     *
60
+     * @param Storage $storage
61
+     * @return Storage
62
+     * @throws InsufficientDataForMeaningfulAnswerException
63
+     * @throws StorageNotAvailableException
64
+     */
65
+    public function wrapStorage(Storage $storage) {
66
+        return $storage;
67
+    }
68 68
 
69 69
 }
70 70
 
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   +335 added lines, -335 removed lines patch added patch discarded remove patch
@@ -34,339 +34,339 @@
 block discarded – undo
34 34
 
35 35
 class Provider implements IProvider {
36 36
 
37
-	const CREATE_TAG = 'create_tag';
38
-	const UPDATE_TAG = 'update_tag';
39
-	const DELETE_TAG = 'delete_tag';
40
-
41
-	const ASSIGN_TAG = 'assign_tag';
42
-	const UNASSIGN_TAG = 'unassign_tag';
43
-
44
-	/** @var IFactory */
45
-	protected $languageFactory;
46
-
47
-	/** @var IL10N */
48
-	protected $l;
49
-
50
-	/** @var IURLGenerator */
51
-	protected $url;
52
-
53
-	/** @var IManager */
54
-	protected $activityManager;
55
-
56
-	/** @var IUserManager */
57
-	protected $userManager;
58
-
59
-	/** @var string[] */
60
-	protected $displayNames = [];
61
-
62
-	/**
63
-	 * @param IFactory $languageFactory
64
-	 * @param IURLGenerator $url
65
-	 * @param IManager $activityManager
66
-	 * @param IUserManager $userManager
67
-	 */
68
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) {
69
-		$this->languageFactory = $languageFactory;
70
-		$this->url = $url;
71
-		$this->activityManager = $activityManager;
72
-		$this->userManager = $userManager;
73
-	}
74
-
75
-	/**
76
-	 * @param string $language
77
-	 * @param IEvent $event
78
-	 * @param IEvent|null $previousEvent
79
-	 * @return IEvent
80
-	 * @throws \InvalidArgumentException
81
-	 * @since 11.0.0
82
-	 */
83
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
84
-		if ($event->getApp() !== 'systemtags') {
85
-			throw new \InvalidArgumentException();
86
-		}
87
-
88
-		$this->l = $this->languageFactory->get('systemtags', $language);
89
-
90
-		if ($this->activityManager->isFormattingFilteredObject()) {
91
-			try {
92
-				return $this->parseShortVersion($event);
93
-			} catch (\InvalidArgumentException $e) {
94
-				// Ignore and simply use the long version...
95
-			}
96
-		}
97
-
98
-		return $this->parseLongVersion($event);
99
-	}
100
-
101
-	/**
102
-	 * @param IEvent $event
103
-	 * @return IEvent
104
-	 * @throws \InvalidArgumentException
105
-	 * @since 11.0.0
106
-	 */
107
-	public function parseShortVersion(IEvent $event) {
108
-		$parsedParameters = $this->getParameters($event);
109
-
110
-		if ($this->activityManager->getRequirePNG()) {
111
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
112
-		} else {
113
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
114
-		}
115
-
116
-		if ($event->getSubject() === self::ASSIGN_TAG) {
117
-			if ($parsedParameters['actor']['id'] === '') {
118
-				$event->setParsedSubject($this->l->t('System tag %1$s added by the system', [
119
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
120
-					]))
121
-					->setRichSubject($this->l->t('Added system tag {systemtag}'), [
122
-						'systemtag' => $parsedParameters['systemtag'],
123
-					]);
124
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
125
-				$event->setParsedSubject($this->l->t('Added system tag %1$s', [
126
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
127
-					]))
128
-					->setRichSubject($this->l->t('Added system tag {systemtag}'), [
129
-						'systemtag' => $parsedParameters['systemtag'],
130
-					]);
131
-			} else {
132
-				$event->setParsedSubject($this->l->t('%1$s added system tag %2$s', [
133
-						$parsedParameters['actor']['name'],
134
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
135
-					]))
136
-					->setRichSubject($this->l->t('{actor} added system tag {systemtag}'), [
137
-						'actor' => $parsedParameters['actor'],
138
-						'systemtag' => $parsedParameters['systemtag'],
139
-					]);
140
-			}
141
-		} else if ($event->getSubject() === self::UNASSIGN_TAG) {
142
-			if ($parsedParameters['actor']['id'] === '') {
143
-				$event->setParsedSubject($this->l->t('System tag %1$s removed by the system', [
144
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
145
-					]))
146
-					->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
147
-						'systemtag' => $parsedParameters['systemtag'],
148
-					]);
149
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
150
-				$event->setParsedSubject($this->l->t('Removed system tag %1$s', [
151
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
152
-					]))
153
-					->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
154
-						'systemtag' => $parsedParameters['systemtag'],
155
-					]);
156
-			} else {
157
-				$event->setParsedSubject($this->l->t('%1$s removed system tag %2$s', [
158
-						$parsedParameters['actor']['name'],
159
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
160
-					]))
161
-					->setRichSubject($this->l->t('{actor} removed system tag {systemtag}'), [
162
-						'actor' => $parsedParameters['actor'],
163
-						'systemtag' => $parsedParameters['systemtag'],
164
-					]);
165
-			}
166
-		} else {
167
-			throw new \InvalidArgumentException();
168
-		}
169
-
170
-		return $event;
171
-	}
172
-
173
-	/**
174
-	 * @param IEvent $event
175
-	 * @return IEvent
176
-	 * @throws \InvalidArgumentException
177
-	 * @since 11.0.0
178
-	 */
179
-	public function parseLongVersion(IEvent $event) {
180
-		$parsedParameters = $this->getParameters($event);
181
-
182
-		if ($this->activityManager->getRequirePNG()) {
183
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
184
-		} else {
185
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
186
-		}
187
-
188
-		if ($event->getSubject() === self::CREATE_TAG) {
189
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
190
-				$event->setParsedSubject($this->l->t('You created system tag %1$s', [
191
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
192
-					]))
193
-					->setRichSubject($this->l->t('You created system tag {systemtag}'), $parsedParameters);
194
-			} else {
195
-				$event->setParsedSubject($this->l->t('%1$s created system tag %2$s', [
196
-						$parsedParameters['actor']['name'],
197
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
198
-					]))
199
-					->setRichSubject($this->l->t('{actor} created system tag {systemtag}'), $parsedParameters);
200
-			}
201
-		} else if ($event->getSubject() === self::DELETE_TAG) {
202
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
203
-				$event->setParsedSubject($this->l->t('You deleted system tag %1$s', [
204
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
205
-					]))
206
-					->setRichSubject($this->l->t('You deleted system tag {systemtag}'), $parsedParameters);
207
-			} else {
208
-				$event->setParsedSubject($this->l->t('%1$s deleted system tag %2$s', [
209
-						$parsedParameters['actor']['name'],
210
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
211
-					]))
212
-					->setRichSubject($this->l->t('{actor} deleted system tag {systemtag}'), $parsedParameters);
213
-			}
214
-		} else if ($event->getSubject() === self::UPDATE_TAG) {
215
-			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
216
-				$event->setParsedSubject($this->l->t('You updated system tag %2$s to %1$s', [
217
-						$this->generatePlainSystemTag($parsedParameters['newsystemtag']),
218
-						$this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
219
-					]))
220
-					->setRichSubject($this->l->t('You updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
221
-			} else {
222
-				$event->setParsedSubject($this->l->t('%1$s updated system tag %3$s to %2$s', [
223
-						$parsedParameters['actor']['name'],
224
-						$this->generatePlainSystemTag($parsedParameters['newsystemtag']),
225
-						$this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
226
-					]))
227
-					->setRichSubject($this->l->t('{actor} updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
228
-			}
229
-		} else if ($event->getSubject() === self::ASSIGN_TAG) {
230
-			if ($parsedParameters['actor']['id'] === '') {
231
-				unset($parsedParameters['actor']);
232
-				$event->setParsedSubject($this->l->t('System tag %2$s was added to %1$s by the system', [
233
-						$parsedParameters['file']['path'],
234
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
235
-					]))
236
-					->setRichSubject($this->l->t('System tag {systemtag} was added to {file} by the system'), $parsedParameters);
237
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
238
-				$event->setParsedSubject($this->l->t('You added system tag %2$s to %1$s', [
239
-						$parsedParameters['file']['path'],
240
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
241
-					]))
242
-					->setRichSubject($this->l->t('You added system tag {systemtag} to {file}'), $parsedParameters);
243
-			} else {
244
-				$event->setParsedSubject($this->l->t('%1$s added system tag %3$s to %2$s', [
245
-						$parsedParameters['actor']['name'],
246
-						$parsedParameters['file']['path'],
247
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
248
-					]))
249
-					->setRichSubject($this->l->t('{actor} added system tag {systemtag} to {file}'), $parsedParameters);
250
-			}
251
-		} else if ($event->getSubject() === self::UNASSIGN_TAG) {
252
-			if ($parsedParameters['actor']['id'] === '') {
253
-				unset($parsedParameters['actor']);
254
-				$event->setParsedSubject($this->l->t('System tag %2$s was removed from %1$s by the system', [
255
-						$parsedParameters['file']['path'],
256
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
257
-					]))
258
-					->setRichSubject($this->l->t('System tag {systemtag} was removed from {file} by the system'), $parsedParameters);
259
-			} else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
260
-				$event->setParsedSubject($this->l->t('You removed system tag %2$s from %1$s', [
261
-						$parsedParameters['file']['path'],
262
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
263
-					]))
264
-					->setRichSubject($this->l->t('You removed system tag {systemtag} from {file}'), $parsedParameters);
265
-			} else {
266
-				$event->setParsedSubject($this->l->t('%1$s removed system tag %3$s from %2$s', [
267
-						$parsedParameters['actor']['name'],
268
-						$parsedParameters['file']['path'],
269
-						$this->generatePlainSystemTag($parsedParameters['systemtag']),
270
-					]))
271
-					->setRichSubject($this->l->t('{actor} removed system tag {systemtag} from {file}'), $parsedParameters);
272
-			}
273
-		} else {
274
-			throw new \InvalidArgumentException();
275
-		}
276
-
277
-		return $event;
278
-	}
279
-
280
-	protected function getParameters(IEvent $event) {
281
-		$subject = $event->getSubject();
282
-		$parameters = $event->getSubjectParameters();
283
-
284
-		switch ($subject) {
285
-			case self::CREATE_TAG:
286
-			case self::DELETE_TAG:
287
-				return [
288
-					'actor' => $this->getUserParameter((string) $parameters[0]),
289
-					'systemtag' => $this->getSystemTagParameter($parameters[1]),
290
-				];
291
-			case self::UPDATE_TAG:
292
-				return [
293
-					'actor' => $this->getUserParameter((string) $parameters[0]),
294
-					'newsystemtag' => $this->getSystemTagParameter($parameters[1]),
295
-					'oldsystemtag' => $this->getSystemTagParameter($parameters[2]),
296
-				];
297
-			case self::ASSIGN_TAG:
298
-			case self::UNASSIGN_TAG:
299
-				return [
300
-					'actor' => $this->getUserParameter((string) $parameters[0]),
301
-					'file' => $this->getFileParameter($event->getObjectId(), $parameters[1]),
302
-					'systemtag' => $this->getSystemTagParameter($parameters[2]),
303
-				];
304
-		}
305
-		return [];
306
-	}
307
-
308
-	protected function getFileParameter($id, $path) {
309
-		return [
310
-			'type' => 'file',
311
-			'id' => $id,
312
-			'name' => basename($path),
313
-			'path' => trim($path, '/'),
314
-		];
315
-	}
316
-
317
-	protected function getSystemTagParameter($parameter) {
318
-		$tagData = json_decode($parameter, true);
319
-		if ($tagData === null) {
320
-			list($name, $status) = explode('|||', substr($parameter, 3, -3));
321
-			$tagData = [
322
-				'id' => 0,// No way to recover the ID
323
-				'name' => $name,
324
-				'assignable' => $status === 'assignable',
325
-				'visible' => $status !== 'invisible',
326
-			];
327
-		}
328
-
329
-		return [
330
-			'type' => 'systemtag',
331
-			'id' => (int) $tagData['id'],
332
-			'name' => $tagData['name'],
333
-			'assignable' => $tagData['assignable'] ? '1' : '0',
334
-			'visibility' => $tagData['visible'] ? '1' : '0',
335
-		];
336
-	}
337
-
338
-	protected function getUserParameter($uid) {
339
-		if (!isset($this->displayNames[$uid])) {
340
-			$this->displayNames[$uid] = $this->getDisplayName($uid);
341
-		}
342
-
343
-		return [
344
-			'type' => 'user',
345
-			'id' => $uid,
346
-			'name' => $this->displayNames[$uid],
347
-		];
348
-	}
349
-
350
-	protected function generatePlainSystemTag(array $parameter) {
351
-		if ($parameter['assignable'] === '1') {
352
-			return $parameter['name'];
353
-		} else if ($parameter['visibility'] === '1') {
354
-			return $this->l->t('%s (restricted)', $parameter['name']);
355
-		} else {
356
-			return $this->l->t('%s (invisible)', $parameter['name']);
357
-		}
358
-	}
359
-
360
-	/**
361
-	 * @param string $uid
362
-	 * @return string
363
-	 */
364
-	protected function getDisplayName($uid) {
365
-		$user = $this->userManager->get($uid);
366
-		if ($user instanceof IUser) {
367
-			return $user->getDisplayName();
368
-		} else {
369
-			return $uid;
370
-		}
371
-	}
37
+    const CREATE_TAG = 'create_tag';
38
+    const UPDATE_TAG = 'update_tag';
39
+    const DELETE_TAG = 'delete_tag';
40
+
41
+    const ASSIGN_TAG = 'assign_tag';
42
+    const UNASSIGN_TAG = 'unassign_tag';
43
+
44
+    /** @var IFactory */
45
+    protected $languageFactory;
46
+
47
+    /** @var IL10N */
48
+    protected $l;
49
+
50
+    /** @var IURLGenerator */
51
+    protected $url;
52
+
53
+    /** @var IManager */
54
+    protected $activityManager;
55
+
56
+    /** @var IUserManager */
57
+    protected $userManager;
58
+
59
+    /** @var string[] */
60
+    protected $displayNames = [];
61
+
62
+    /**
63
+     * @param IFactory $languageFactory
64
+     * @param IURLGenerator $url
65
+     * @param IManager $activityManager
66
+     * @param IUserManager $userManager
67
+     */
68
+    public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) {
69
+        $this->languageFactory = $languageFactory;
70
+        $this->url = $url;
71
+        $this->activityManager = $activityManager;
72
+        $this->userManager = $userManager;
73
+    }
74
+
75
+    /**
76
+     * @param string $language
77
+     * @param IEvent $event
78
+     * @param IEvent|null $previousEvent
79
+     * @return IEvent
80
+     * @throws \InvalidArgumentException
81
+     * @since 11.0.0
82
+     */
83
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
84
+        if ($event->getApp() !== 'systemtags') {
85
+            throw new \InvalidArgumentException();
86
+        }
87
+
88
+        $this->l = $this->languageFactory->get('systemtags', $language);
89
+
90
+        if ($this->activityManager->isFormattingFilteredObject()) {
91
+            try {
92
+                return $this->parseShortVersion($event);
93
+            } catch (\InvalidArgumentException $e) {
94
+                // Ignore and simply use the long version...
95
+            }
96
+        }
97
+
98
+        return $this->parseLongVersion($event);
99
+    }
100
+
101
+    /**
102
+     * @param IEvent $event
103
+     * @return IEvent
104
+     * @throws \InvalidArgumentException
105
+     * @since 11.0.0
106
+     */
107
+    public function parseShortVersion(IEvent $event) {
108
+        $parsedParameters = $this->getParameters($event);
109
+
110
+        if ($this->activityManager->getRequirePNG()) {
111
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
112
+        } else {
113
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
114
+        }
115
+
116
+        if ($event->getSubject() === self::ASSIGN_TAG) {
117
+            if ($parsedParameters['actor']['id'] === '') {
118
+                $event->setParsedSubject($this->l->t('System tag %1$s added by the system', [
119
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
120
+                    ]))
121
+                    ->setRichSubject($this->l->t('Added system tag {systemtag}'), [
122
+                        'systemtag' => $parsedParameters['systemtag'],
123
+                    ]);
124
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
125
+                $event->setParsedSubject($this->l->t('Added system tag %1$s', [
126
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
127
+                    ]))
128
+                    ->setRichSubject($this->l->t('Added system tag {systemtag}'), [
129
+                        'systemtag' => $parsedParameters['systemtag'],
130
+                    ]);
131
+            } else {
132
+                $event->setParsedSubject($this->l->t('%1$s added system tag %2$s', [
133
+                        $parsedParameters['actor']['name'],
134
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
135
+                    ]))
136
+                    ->setRichSubject($this->l->t('{actor} added system tag {systemtag}'), [
137
+                        'actor' => $parsedParameters['actor'],
138
+                        'systemtag' => $parsedParameters['systemtag'],
139
+                    ]);
140
+            }
141
+        } else if ($event->getSubject() === self::UNASSIGN_TAG) {
142
+            if ($parsedParameters['actor']['id'] === '') {
143
+                $event->setParsedSubject($this->l->t('System tag %1$s removed by the system', [
144
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
145
+                    ]))
146
+                    ->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
147
+                        'systemtag' => $parsedParameters['systemtag'],
148
+                    ]);
149
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
150
+                $event->setParsedSubject($this->l->t('Removed system tag %1$s', [
151
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
152
+                    ]))
153
+                    ->setRichSubject($this->l->t('Removed system tag {systemtag}'), [
154
+                        'systemtag' => $parsedParameters['systemtag'],
155
+                    ]);
156
+            } else {
157
+                $event->setParsedSubject($this->l->t('%1$s removed system tag %2$s', [
158
+                        $parsedParameters['actor']['name'],
159
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
160
+                    ]))
161
+                    ->setRichSubject($this->l->t('{actor} removed system tag {systemtag}'), [
162
+                        'actor' => $parsedParameters['actor'],
163
+                        'systemtag' => $parsedParameters['systemtag'],
164
+                    ]);
165
+            }
166
+        } else {
167
+            throw new \InvalidArgumentException();
168
+        }
169
+
170
+        return $event;
171
+    }
172
+
173
+    /**
174
+     * @param IEvent $event
175
+     * @return IEvent
176
+     * @throws \InvalidArgumentException
177
+     * @since 11.0.0
178
+     */
179
+    public function parseLongVersion(IEvent $event) {
180
+        $parsedParameters = $this->getParameters($event);
181
+
182
+        if ($this->activityManager->getRequirePNG()) {
183
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
184
+        } else {
185
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
186
+        }
187
+
188
+        if ($event->getSubject() === self::CREATE_TAG) {
189
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
190
+                $event->setParsedSubject($this->l->t('You created system tag %1$s', [
191
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
192
+                    ]))
193
+                    ->setRichSubject($this->l->t('You created system tag {systemtag}'), $parsedParameters);
194
+            } else {
195
+                $event->setParsedSubject($this->l->t('%1$s created system tag %2$s', [
196
+                        $parsedParameters['actor']['name'],
197
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
198
+                    ]))
199
+                    ->setRichSubject($this->l->t('{actor} created system tag {systemtag}'), $parsedParameters);
200
+            }
201
+        } else if ($event->getSubject() === self::DELETE_TAG) {
202
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
203
+                $event->setParsedSubject($this->l->t('You deleted system tag %1$s', [
204
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
205
+                    ]))
206
+                    ->setRichSubject($this->l->t('You deleted system tag {systemtag}'), $parsedParameters);
207
+            } else {
208
+                $event->setParsedSubject($this->l->t('%1$s deleted system tag %2$s', [
209
+                        $parsedParameters['actor']['name'],
210
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
211
+                    ]))
212
+                    ->setRichSubject($this->l->t('{actor} deleted system tag {systemtag}'), $parsedParameters);
213
+            }
214
+        } else if ($event->getSubject() === self::UPDATE_TAG) {
215
+            if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
216
+                $event->setParsedSubject($this->l->t('You updated system tag %2$s to %1$s', [
217
+                        $this->generatePlainSystemTag($parsedParameters['newsystemtag']),
218
+                        $this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
219
+                    ]))
220
+                    ->setRichSubject($this->l->t('You updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
221
+            } else {
222
+                $event->setParsedSubject($this->l->t('%1$s updated system tag %3$s to %2$s', [
223
+                        $parsedParameters['actor']['name'],
224
+                        $this->generatePlainSystemTag($parsedParameters['newsystemtag']),
225
+                        $this->generatePlainSystemTag($parsedParameters['oldsystemtag']),
226
+                    ]))
227
+                    ->setRichSubject($this->l->t('{actor} updated system tag {oldsystemtag} to {newsystemtag}'), $parsedParameters);
228
+            }
229
+        } else if ($event->getSubject() === self::ASSIGN_TAG) {
230
+            if ($parsedParameters['actor']['id'] === '') {
231
+                unset($parsedParameters['actor']);
232
+                $event->setParsedSubject($this->l->t('System tag %2$s was added to %1$s by the system', [
233
+                        $parsedParameters['file']['path'],
234
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
235
+                    ]))
236
+                    ->setRichSubject($this->l->t('System tag {systemtag} was added to {file} by the system'), $parsedParameters);
237
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
238
+                $event->setParsedSubject($this->l->t('You added system tag %2$s to %1$s', [
239
+                        $parsedParameters['file']['path'],
240
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
241
+                    ]))
242
+                    ->setRichSubject($this->l->t('You added system tag {systemtag} to {file}'), $parsedParameters);
243
+            } else {
244
+                $event->setParsedSubject($this->l->t('%1$s added system tag %3$s to %2$s', [
245
+                        $parsedParameters['actor']['name'],
246
+                        $parsedParameters['file']['path'],
247
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
248
+                    ]))
249
+                    ->setRichSubject($this->l->t('{actor} added system tag {systemtag} to {file}'), $parsedParameters);
250
+            }
251
+        } else if ($event->getSubject() === self::UNASSIGN_TAG) {
252
+            if ($parsedParameters['actor']['id'] === '') {
253
+                unset($parsedParameters['actor']);
254
+                $event->setParsedSubject($this->l->t('System tag %2$s was removed from %1$s by the system', [
255
+                        $parsedParameters['file']['path'],
256
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
257
+                    ]))
258
+                    ->setRichSubject($this->l->t('System tag {systemtag} was removed from {file} by the system'), $parsedParameters);
259
+            } else if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
260
+                $event->setParsedSubject($this->l->t('You removed system tag %2$s from %1$s', [
261
+                        $parsedParameters['file']['path'],
262
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
263
+                    ]))
264
+                    ->setRichSubject($this->l->t('You removed system tag {systemtag} from {file}'), $parsedParameters);
265
+            } else {
266
+                $event->setParsedSubject($this->l->t('%1$s removed system tag %3$s from %2$s', [
267
+                        $parsedParameters['actor']['name'],
268
+                        $parsedParameters['file']['path'],
269
+                        $this->generatePlainSystemTag($parsedParameters['systemtag']),
270
+                    ]))
271
+                    ->setRichSubject($this->l->t('{actor} removed system tag {systemtag} from {file}'), $parsedParameters);
272
+            }
273
+        } else {
274
+            throw new \InvalidArgumentException();
275
+        }
276
+
277
+        return $event;
278
+    }
279
+
280
+    protected function getParameters(IEvent $event) {
281
+        $subject = $event->getSubject();
282
+        $parameters = $event->getSubjectParameters();
283
+
284
+        switch ($subject) {
285
+            case self::CREATE_TAG:
286
+            case self::DELETE_TAG:
287
+                return [
288
+                    'actor' => $this->getUserParameter((string) $parameters[0]),
289
+                    'systemtag' => $this->getSystemTagParameter($parameters[1]),
290
+                ];
291
+            case self::UPDATE_TAG:
292
+                return [
293
+                    'actor' => $this->getUserParameter((string) $parameters[0]),
294
+                    'newsystemtag' => $this->getSystemTagParameter($parameters[1]),
295
+                    'oldsystemtag' => $this->getSystemTagParameter($parameters[2]),
296
+                ];
297
+            case self::ASSIGN_TAG:
298
+            case self::UNASSIGN_TAG:
299
+                return [
300
+                    'actor' => $this->getUserParameter((string) $parameters[0]),
301
+                    'file' => $this->getFileParameter($event->getObjectId(), $parameters[1]),
302
+                    'systemtag' => $this->getSystemTagParameter($parameters[2]),
303
+                ];
304
+        }
305
+        return [];
306
+    }
307
+
308
+    protected function getFileParameter($id, $path) {
309
+        return [
310
+            'type' => 'file',
311
+            'id' => $id,
312
+            'name' => basename($path),
313
+            'path' => trim($path, '/'),
314
+        ];
315
+    }
316
+
317
+    protected function getSystemTagParameter($parameter) {
318
+        $tagData = json_decode($parameter, true);
319
+        if ($tagData === null) {
320
+            list($name, $status) = explode('|||', substr($parameter, 3, -3));
321
+            $tagData = [
322
+                'id' => 0,// No way to recover the ID
323
+                'name' => $name,
324
+                'assignable' => $status === 'assignable',
325
+                'visible' => $status !== 'invisible',
326
+            ];
327
+        }
328
+
329
+        return [
330
+            'type' => 'systemtag',
331
+            'id' => (int) $tagData['id'],
332
+            'name' => $tagData['name'],
333
+            'assignable' => $tagData['assignable'] ? '1' : '0',
334
+            'visibility' => $tagData['visible'] ? '1' : '0',
335
+        ];
336
+    }
337
+
338
+    protected function getUserParameter($uid) {
339
+        if (!isset($this->displayNames[$uid])) {
340
+            $this->displayNames[$uid] = $this->getDisplayName($uid);
341
+        }
342
+
343
+        return [
344
+            'type' => 'user',
345
+            'id' => $uid,
346
+            'name' => $this->displayNames[$uid],
347
+        ];
348
+    }
349
+
350
+    protected function generatePlainSystemTag(array $parameter) {
351
+        if ($parameter['assignable'] === '1') {
352
+            return $parameter['name'];
353
+        } else if ($parameter['visibility'] === '1') {
354
+            return $this->l->t('%s (restricted)', $parameter['name']);
355
+        } else {
356
+            return $this->l->t('%s (invisible)', $parameter['name']);
357
+        }
358
+    }
359
+
360
+    /**
361
+     * @param string $uid
362
+     * @return string
363
+     */
364
+    protected function getDisplayName($uid) {
365
+        $user = $this->userManager->get($uid);
366
+        if ($user instanceof IUser) {
367
+            return $user->getDisplayName();
368
+        } else {
369
+            return $uid;
370
+        }
371
+    }
372 372
 }
Please login to merge, or discard this patch.
apps/systemtags/lib/Activity/Setting.php 1 patch
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -27,72 +27,72 @@
 block discarded – undo
27 27
 
28 28
 class Setting implements ISetting {
29 29
 
30
-	/** @var IL10N */
31
-	protected $l;
30
+    /** @var IL10N */
31
+    protected $l;
32 32
 
33
-	/**
34
-	 * @param IL10N $l
35
-	 */
36
-	public function __construct(IL10N $l) {
37
-		$this->l = $l;
38
-	}
33
+    /**
34
+     * @param IL10N $l
35
+     */
36
+    public function __construct(IL10N $l) {
37
+        $this->l = $l;
38
+    }
39 39
 
40
-	/**
41
-	 * @return string Lowercase a-z and underscore only identifier
42
-	 * @since 11.0.0
43
-	 */
44
-	public function getIdentifier() {
45
-		return 'systemtags';
46
-	}
40
+    /**
41
+     * @return string Lowercase a-z and underscore only identifier
42
+     * @since 11.0.0
43
+     */
44
+    public function getIdentifier() {
45
+        return 'systemtags';
46
+    }
47 47
 
48
-	/**
49
-	 * @return string A translated string
50
-	 * @since 11.0.0
51
-	 */
52
-	public function getName() {
53
-		return $this->l->t('<strong>System tags</strong> for a file have been modified');
54
-	}
48
+    /**
49
+     * @return string A translated string
50
+     * @since 11.0.0
51
+     */
52
+    public function getName() {
53
+        return $this->l->t('<strong>System tags</strong> for a file have been modified');
54
+    }
55 55
 
56
-	/**
57
-	 * @return int whether the filter should be rather on the top or bottom of
58
-	 * the admin section. The filters are arranged in ascending order of the
59
-	 * priority values. It is required to return a value between 0 and 100.
60
-	 * @since 11.0.0
61
-	 */
62
-	public function getPriority() {
63
-		return 50;
64
-	}
56
+    /**
57
+     * @return int whether the filter should be rather on the top or bottom of
58
+     * the admin section. The filters are arranged in ascending order of the
59
+     * priority values. It is required to return a value between 0 and 100.
60
+     * @since 11.0.0
61
+     */
62
+    public function getPriority() {
63
+        return 50;
64
+    }
65 65
 
66
-	/**
67
-	 * @return bool True when the option can be changed for the stream
68
-	 * @since 11.0.0
69
-	 */
70
-	public function canChangeStream() {
71
-		return true;
72
-	}
66
+    /**
67
+     * @return bool True when the option can be changed for the stream
68
+     * @since 11.0.0
69
+     */
70
+    public function canChangeStream() {
71
+        return true;
72
+    }
73 73
 
74
-	/**
75
-	 * @return bool True when the option can be changed for the stream
76
-	 * @since 11.0.0
77
-	 */
78
-	public function isDefaultEnabledStream() {
79
-		return true;
80
-	}
74
+    /**
75
+     * @return bool True when the option can be changed for the stream
76
+     * @since 11.0.0
77
+     */
78
+    public function isDefaultEnabledStream() {
79
+        return true;
80
+    }
81 81
 
82
-	/**
83
-	 * @return bool True when the option can be changed for the mail
84
-	 * @since 11.0.0
85
-	 */
86
-	public function canChangeMail() {
87
-		return true;
88
-	}
82
+    /**
83
+     * @return bool True when the option can be changed for the mail
84
+     * @since 11.0.0
85
+     */
86
+    public function canChangeMail() {
87
+        return true;
88
+    }
89 89
 
90
-	/**
91
-	 * @return bool True when the option can be changed for the stream
92
-	 * @since 11.0.0
93
-	 */
94
-	public function isDefaultEnabledMail() {
95
-		return false;
96
-	}
90
+    /**
91
+     * @return bool True when the option can be changed for the stream
92
+     * @since 11.0.0
93
+     */
94
+    public function isDefaultEnabledMail() {
95
+        return false;
96
+    }
97 97
 }
98 98
 
Please login to merge, or discard this patch.
apps/systemtags/lib/Controller/LastUsedController.php 1 patch
Indentation   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -30,30 +30,30 @@
 block discarded – undo
30 30
 
31 31
 class LastUsedController extends Controller {
32 32
 
33
-	/** @var IConfig */
34
-	protected $config;
35
-
36
-	/** @var IUserSession */
37
-	protected $userSession;
38
-
39
-	/**
40
-	 * @param string $appName
41
-	 * @param IRequest $request
42
-	 * @param IConfig $config
43
-	 * @param IUserSession $userSession
44
-	 */
45
-	public function __construct($appName, IRequest $request, IConfig $config, IUserSession $userSession) {
46
-		parent::__construct($appName, $request);
47
-		$this->config = $config;
48
-		$this->userSession = $userSession;
49
-	}
50
-
51
-	/**
52
-	 * @NoAdminRequired
53
-	 */
54
-	public function getLastUsedTagIds() {
55
-		$lastUsed = $this->config->getUserValue($this->userSession->getUser()->getUID(), 'systemtags', 'last_used', '[]');
56
-		$tagIds = json_decode($lastUsed, true);
57
-		return new DataResponse(array_map(function($id) { return (string) $id; }, $tagIds));
58
-	}
33
+    /** @var IConfig */
34
+    protected $config;
35
+
36
+    /** @var IUserSession */
37
+    protected $userSession;
38
+
39
+    /**
40
+     * @param string $appName
41
+     * @param IRequest $request
42
+     * @param IConfig $config
43
+     * @param IUserSession $userSession
44
+     */
45
+    public function __construct($appName, IRequest $request, IConfig $config, IUserSession $userSession) {
46
+        parent::__construct($appName, $request);
47
+        $this->config = $config;
48
+        $this->userSession = $userSession;
49
+    }
50
+
51
+    /**
52
+     * @NoAdminRequired
53
+     */
54
+    public function getLastUsedTagIds() {
55
+        $lastUsed = $this->config->getUserValue($this->userSession->getUser()->getUID(), 'systemtags', 'last_used', '[]');
56
+        $tagIds = json_decode($lastUsed, true);
57
+        return new DataResponse(array_map(function($id) { return (string) $id; }, $tagIds));
58
+    }
59 59
 }
Please login to merge, or discard this patch.
apps/systemtags/lib/Settings/Admin.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -28,29 +28,29 @@
 block discarded – undo
28 28
 
29 29
 class Admin implements ISettings {
30 30
 
31
-	/**
32
-	 * @return TemplateResponse
33
-	 */
34
-	public function getForm() {
35
-		return new TemplateResponse('systemtags', 'admin', [], '');
36
-	}
31
+    /**
32
+     * @return TemplateResponse
33
+     */
34
+    public function getForm() {
35
+        return new TemplateResponse('systemtags', 'admin', [], '');
36
+    }
37 37
 
38
-	/**
39
-	 * @return string the section ID, e.g. 'sharing'
40
-	 */
41
-	public function getSection() {
42
-		return 'workflow';
43
-	}
38
+    /**
39
+     * @return string the section ID, e.g. 'sharing'
40
+     */
41
+    public function getSection() {
42
+        return 'workflow';
43
+    }
44 44
 
45
-	/**
46
-	 * @return int whether the form should be rather on the top or bottom of
47
-	 * the admin section. The forms are arranged in ascending order of the
48
-	 * priority values. It is required to return a value between 0 and 100.
49
-	 *
50
-	 * E.g.: 70
51
-	 */
52
-	public function getPriority() {
53
-		return 70;
54
-	}
45
+    /**
46
+     * @return int whether the form should be rather on the top or bottom of
47
+     * the admin section. The forms are arranged in ascending order of the
48
+     * priority values. It is required to return a value between 0 and 100.
49
+     *
50
+     * E.g.: 70
51
+     */
52
+    public function getPriority() {
53
+        return 70;
54
+    }
55 55
 
56 56
 }
Please login to merge, or discard this patch.