Completed
Pull Request — master (#5231)
by Morris
16:38
created
apps/files/ajax/getstoragestats.php 2 patches
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
 $dir = '/';
27 27
 
28 28
 if (isset($_GET['dir'])) {
29
-	$dir = (string)$_GET['dir'];
29
+    $dir = (string)$_GET['dir'];
30 30
 }
31 31
 
32 32
 OCP\JSON::checkLoggedIn();
@@ -34,7 +34,7 @@  discard block
 block discarded – undo
34 34
 
35 35
 // send back json
36 36
 try {
37
-	OCP\JSON::success(array('data' => \OCA\Files\Helper::buildFileStorageStatistics($dir)));
37
+    OCP\JSON::success(array('data' => \OCA\Files\Helper::buildFileStorageStatistics($dir)));
38 38
 } catch (\OCP\Files\NotFoundException $e) {
39
-	OCP\JSON::error(['data' => ['message' => 'Folder not found']]);
39
+    OCP\JSON::error(['data' => ['message' => 'Folder not found']]);
40 40
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@
 block discarded – undo
26 26
 $dir = '/';
27 27
 
28 28
 if (isset($_GET['dir'])) {
29
-	$dir = (string)$_GET['dir'];
29
+	$dir = (string) $_GET['dir'];
30 30
 }
31 31
 
32 32
 OCP\JSON::checkLoggedIn();
Please login to merge, or discard this patch.
apps/files/ajax/list.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
 $l = \OC::$server->getL10N('files');
29 29
 
30 30
 // Load the files
31
-$dir = isset($_GET['dir']) ? (string)$_GET['dir'] : '';
31
+$dir = isset($_GET['dir']) ? (string) $_GET['dir'] : '';
32 32
 $dir = \OC\Files\Filesystem::normalizePath($dir);
33 33
 
34 34
 try {
@@ -39,11 +39,11 @@  discard block
 block discarded – undo
39 39
 	}
40 40
 
41 41
 	$data = array();
42
-	$baseUrl = OCP\Util::linkTo('files', 'index.php') . '?dir=';
42
+	$baseUrl = OCP\Util::linkTo('files', 'index.php').'?dir=';
43 43
 
44 44
 	$permissions = $dirInfo->getPermissions();
45 45
 
46
-	$sortAttribute = isset($_GET['sort']) ? (string)$_GET['sort'] : 'name';
46
+	$sortAttribute = isset($_GET['sort']) ? (string) $_GET['sort'] : 'name';
47 47
 	$sortDirection = isset($_GET['sortdirection']) ? ($_GET['sortdirection'] === 'desc') : false;
48 48
 	$mimetypeFilters = isset($_GET['mimetypes']) ? json_decode($_GET['mimetypes']) : '';
49 49
 
Please login to merge, or discard this patch.
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -32,72 +32,72 @@
 block discarded – undo
32 32
 $dir = \OC\Files\Filesystem::normalizePath($dir);
33 33
 
34 34
 try {
35
-	$dirInfo = \OC\Files\Filesystem::getFileInfo($dir);
36
-	if (!$dirInfo || !$dirInfo->getType() === 'dir') {
37
-		header("HTTP/1.0 404 Not Found");
38
-		exit();
39
-	}
35
+    $dirInfo = \OC\Files\Filesystem::getFileInfo($dir);
36
+    if (!$dirInfo || !$dirInfo->getType() === 'dir') {
37
+        header("HTTP/1.0 404 Not Found");
38
+        exit();
39
+    }
40 40
 
41
-	$data = array();
42
-	$baseUrl = OCP\Util::linkTo('files', 'index.php') . '?dir=';
41
+    $data = array();
42
+    $baseUrl = OCP\Util::linkTo('files', 'index.php') . '?dir=';
43 43
 
44
-	$permissions = $dirInfo->getPermissions();
44
+    $permissions = $dirInfo->getPermissions();
45 45
 
46
-	$sortAttribute = isset($_GET['sort']) ? (string)$_GET['sort'] : 'name';
47
-	$sortDirection = isset($_GET['sortdirection']) ? ($_GET['sortdirection'] === 'desc') : false;
48
-	$mimetypeFilters = isset($_GET['mimetypes']) ? json_decode($_GET['mimetypes']) : '';
46
+    $sortAttribute = isset($_GET['sort']) ? (string)$_GET['sort'] : 'name';
47
+    $sortDirection = isset($_GET['sortdirection']) ? ($_GET['sortdirection'] === 'desc') : false;
48
+    $mimetypeFilters = isset($_GET['mimetypes']) ? json_decode($_GET['mimetypes']) : '';
49 49
 
50
-	$files = [];
51
-	// Clean up duplicates from array
52
-	if (is_array($mimetypeFilters) && count($mimetypeFilters)) {
53
-		$mimetypeFilters = array_unique($mimetypeFilters);
50
+    $files = [];
51
+    // Clean up duplicates from array
52
+    if (is_array($mimetypeFilters) && count($mimetypeFilters)) {
53
+        $mimetypeFilters = array_unique($mimetypeFilters);
54 54
 
55
-		if (!in_array('httpd/unix-directory', $mimetypeFilters)) {
56
-			// append folder filter to be able to browse folders
57
-			$mimetypeFilters[] = 'httpd/unix-directory';
58
-		}
55
+        if (!in_array('httpd/unix-directory', $mimetypeFilters)) {
56
+            // append folder filter to be able to browse folders
57
+            $mimetypeFilters[] = 'httpd/unix-directory';
58
+        }
59 59
 
60
-		// create filelist with mimetype filter - as getFiles only supports on
61
-		// mimetype filter at once we will filter this folder for each
62
-		// mimetypeFilter
63
-		foreach ($mimetypeFilters as $mimetypeFilter) {
64
-			$files = array_merge($files, \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection, $mimetypeFilter));
65
-		}
60
+        // create filelist with mimetype filter - as getFiles only supports on
61
+        // mimetype filter at once we will filter this folder for each
62
+        // mimetypeFilter
63
+        foreach ($mimetypeFilters as $mimetypeFilter) {
64
+            $files = array_merge($files, \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection, $mimetypeFilter));
65
+        }
66 66
 
67
-		// sort the files accordingly
68
-		$files = \OCA\Files\Helper::sortFiles($files, $sortAttribute, $sortDirection);
69
-	} else {
70
-		// create file list without mimetype filter
71
-		$files = \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection);
72
-	}
67
+        // sort the files accordingly
68
+        $files = \OCA\Files\Helper::sortFiles($files, $sortAttribute, $sortDirection);
69
+    } else {
70
+        // create file list without mimetype filter
71
+        $files = \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection);
72
+    }
73 73
 
74
-	$data['directory'] = $dir;
75
-	$data['files'] = \OCA\Files\Helper::formatFileInfos($files);
76
-	$data['permissions'] = $permissions;
74
+    $data['directory'] = $dir;
75
+    $data['files'] = \OCA\Files\Helper::formatFileInfos($files);
76
+    $data['permissions'] = $permissions;
77 77
 
78
-	OCP\JSON::success(array('data' => $data));
78
+    OCP\JSON::success(array('data' => $data));
79 79
 } catch (\OCP\Files\StorageNotAvailableException $e) {
80
-	\OCP\Util::logException('files', $e);
81
-	OCP\JSON::error([
82
-		'data' => [
83
-			'exception' => '\OCP\Files\StorageNotAvailableException',
84
-			'message' => $l->t('Storage is temporarily not available')
85
-		]
86
-	]);
80
+    \OCP\Util::logException('files', $e);
81
+    OCP\JSON::error([
82
+        'data' => [
83
+            'exception' => '\OCP\Files\StorageNotAvailableException',
84
+            'message' => $l->t('Storage is temporarily not available')
85
+        ]
86
+    ]);
87 87
 } catch (\OCP\Files\StorageInvalidException $e) {
88
-	\OCP\Util::logException('files', $e);
89
-	OCP\JSON::error(array(
90
-		'data' => array(
91
-			'exception' => '\OCP\Files\StorageInvalidException',
92
-			'message' => $l->t('Storage invalid')
93
-		)
94
-	));
88
+    \OCP\Util::logException('files', $e);
89
+    OCP\JSON::error(array(
90
+        'data' => array(
91
+            'exception' => '\OCP\Files\StorageInvalidException',
92
+            'message' => $l->t('Storage invalid')
93
+        )
94
+    ));
95 95
 } catch (\Exception $e) {
96
-	\OCP\Util::logException('files', $e);
97
-	OCP\JSON::error(array(
98
-		'data' => array(
99
-			'exception' => '\Exception',
100
-			'message' => $l->t('Unknown error')
101
-		)
102
-	));
96
+    \OCP\Util::logException('files', $e);
97
+    OCP\JSON::error(array(
98
+        'data' => array(
99
+            'exception' => '\Exception',
100
+            'message' => $l->t('Unknown error')
101
+        )
102
+    ));
103 103
 }
Please login to merge, or discard this patch.
apps/files/ajax/download.php 2 patches
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 $files_list = json_decode($files);
38 38
 // in case we get only a single file
39 39
 if (!is_array($files_list)) {
40
-	$files_list = array($files);
40
+    $files_list = array($files);
41 41
 }
42 42
 
43 43
 /**
@@ -46,9 +46,9 @@  discard block
 block discarded – undo
46 46
  * alphanumeric characters
47 47
  */
48 48
 if(isset($_GET['downloadStartSecret'])
49
-	&& !isset($_GET['downloadStartSecret'][32])
50
-	&& preg_match('!^[a-zA-Z0-9]+$!', $_GET['downloadStartSecret']) === 1) {
51
-	setcookie('ocDownloadStarted', $_GET['downloadStartSecret'], time() + 20, '/');
49
+    && !isset($_GET['downloadStartSecret'][32])
50
+    && preg_match('!^[a-zA-Z0-9]+$!', $_GET['downloadStartSecret']) === 1) {
51
+    setcookie('ocDownloadStarted', $_GET['downloadStartSecret'], time() + 20, '/');
52 52
 }
53 53
 
54 54
 $server_params = array( 'head' => \OC::$server->getRequest()->getMethod() == 'HEAD' );
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
  * Http range requests support
58 58
  */
59 59
 if (isset($_SERVER['HTTP_RANGE'])) {
60
-	$server_params['range'] = \OC::$server->getRequest()->getHeader('Range');
60
+    $server_params['range'] = \OC::$server->getRequest()->getHeader('Range');
61 61
 }
62 62
 
63 63
 OC_Files::get($dir, $files_list, $server_params);
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -31,8 +31,8 @@  discard block
 block discarded – undo
31 31
 OCP\User::checkLoggedIn();
32 32
 \OC::$server->getSession()->close();
33 33
 
34
-$files = isset($_GET['files']) ? (string)$_GET['files'] : '';
35
-$dir = isset($_GET['dir']) ? (string)$_GET['dir'] : '';
34
+$files = isset($_GET['files']) ? (string) $_GET['files'] : '';
35
+$dir = isset($_GET['dir']) ? (string) $_GET['dir'] : '';
36 36
 
37 37
 $files_list = json_decode($files);
38 38
 // in case we get only a single file
@@ -45,13 +45,13 @@  discard block
 block discarded – undo
45 45
  * the content must not be longer than 32 characters and must only contain
46 46
  * alphanumeric characters
47 47
  */
48
-if(isset($_GET['downloadStartSecret'])
48
+if (isset($_GET['downloadStartSecret'])
49 49
 	&& !isset($_GET['downloadStartSecret'][32])
50 50
 	&& preg_match('!^[a-zA-Z0-9]+$!', $_GET['downloadStartSecret']) === 1) {
51 51
 	setcookie('ocDownloadStarted', $_GET['downloadStartSecret'], time() + 20, '/');
52 52
 }
53 53
 
54
-$server_params = array( 'head' => \OC::$server->getRequest()->getMethod() == 'HEAD' );
54
+$server_params = array('head' => \OC::$server->getRequest()->getMethod() == 'HEAD');
55 55
 
56 56
 /**
57 57
  * Http range requests support
Please login to merge, or discard this patch.
apps/files/lib/Activity/Provider.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -197,7 +197,7 @@
 block discarded – undo
197 197
 	protected function setSubjects(IEvent $event, $subject, array $parameters) {
198 198
 		$placeholders = $replacements = [];
199 199
 		foreach ($parameters as $placeholder => $parameter) {
200
-			$placeholders[] = '{' . $placeholder . '}';
200
+			$placeholders[] = '{'.$placeholder.'}';
201 201
 			if ($parameter['type'] === 'file') {
202 202
 				$replacements[] = $parameter['path'];
203 203
 			} else {
Please login to merge, or discard this patch.
Indentation   +298 added lines, -298 removed lines patch added patch discarded remove patch
@@ -33,302 +33,302 @@
 block discarded – undo
33 33
 
34 34
 class Provider implements IProvider {
35 35
 
36
-	/** @var IFactory */
37
-	protected $languageFactory;
38
-
39
-	/** @var IL10N */
40
-	protected $l;
41
-	/** @var IL10N */
42
-	protected $activityLang;
43
-
44
-	/** @var IURLGenerator */
45
-	protected $url;
46
-
47
-	/** @var IManager */
48
-	protected $activityManager;
49
-
50
-	/** @var IUserManager */
51
-	protected $userManager;
52
-
53
-	/** @var IEventMerger */
54
-	protected $eventMerger;
55
-
56
-	/** @var string[] cached displayNames - key is the UID and value the displayname */
57
-	protected $displayNames = [];
58
-
59
-	/**
60
-	 * @param IFactory $languageFactory
61
-	 * @param IURLGenerator $url
62
-	 * @param IManager $activityManager
63
-	 * @param IUserManager $userManager
64
-	 * @param IEventMerger $eventMerger
65
-	 */
66
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IEventMerger $eventMerger) {
67
-		$this->languageFactory = $languageFactory;
68
-		$this->url = $url;
69
-		$this->activityManager = $activityManager;
70
-		$this->userManager = $userManager;
71
-		$this->eventMerger = $eventMerger;
72
-	}
73
-
74
-	/**
75
-	 * @param string $language
76
-	 * @param IEvent $event
77
-	 * @param IEvent|null $previousEvent
78
-	 * @return IEvent
79
-	 * @throws \InvalidArgumentException
80
-	 * @since 11.0.0
81
-	 */
82
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
83
-		if ($event->getApp() !== 'files') {
84
-			throw new \InvalidArgumentException();
85
-		}
86
-
87
-		$this->l = $this->languageFactory->get('files', $language);
88
-		$this->activityLang = $this->languageFactory->get('activity', $language);
89
-
90
-		if ($this->activityManager->isFormattingFilteredObject()) {
91
-			try {
92
-				return $this->parseShortVersion($event, $previousEvent);
93
-			} catch (\InvalidArgumentException $e) {
94
-				// Ignore and simply use the long version...
95
-			}
96
-		}
97
-
98
-		return $this->parseLongVersion($event, $previousEvent);
99
-	}
100
-
101
-	/**
102
-	 * @param IEvent $event
103
-	 * @param IEvent|null $previousEvent
104
-	 * @return IEvent
105
-	 * @throws \InvalidArgumentException
106
-	 * @since 11.0.0
107
-	 */
108
-	public function parseShortVersion(IEvent $event, IEvent $previousEvent = null) {
109
-		$parsedParameters = $this->getParameters($event);
110
-
111
-		if ($event->getSubject() === 'created_by') {
112
-			$subject = $this->l->t('Created by {user}');
113
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
114
-		} else if ($event->getSubject() === 'changed_by') {
115
-			$subject = $this->l->t('Changed by {user}');
116
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
117
-		} else if ($event->getSubject() === 'deleted_by') {
118
-			$subject = $this->l->t('Deleted by {user}');
119
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
120
-		} else if ($event->getSubject() === 'restored_by') {
121
-			$subject = $this->l->t('Restored by {user}');
122
-		} else if ($event->getSubject() === 'renamed_by') {
123
-			$subject = $this->l->t('Renamed by {user}');
124
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
125
-		} else if ($event->getSubject() === 'moved_by') {
126
-			$subject = $this->l->t('Moved by {user}');
127
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
128
-		} else {
129
-			throw new \InvalidArgumentException();
130
-		}
131
-
132
-		if (!isset($parsedParameters['user'])) {
133
-			// External user via public link share
134
-			$subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
135
-		}
136
-
137
-		$this->setSubjects($event, $subject, $parsedParameters);
138
-
139
-		return $this->eventMerger->mergeEvents('user', $event, $previousEvent);
140
-	}
141
-
142
-	/**
143
-	 * @param IEvent $event
144
-	 * @param IEvent|null $previousEvent
145
-	 * @return IEvent
146
-	 * @throws \InvalidArgumentException
147
-	 * @since 11.0.0
148
-	 */
149
-	public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) {
150
-		$parsedParameters = $this->getParameters($event);
151
-
152
-		if ($event->getSubject() === 'created_self') {
153
-			$subject = $this->l->t('You created {file}');
154
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
155
-		} else if ($event->getSubject() === 'created_by') {
156
-			$subject = $this->l->t('{user} created {file}');
157
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
158
-		} else if ($event->getSubject() === 'created_public') {
159
-			$subject = $this->l->t('{file} was created in a public folder');
160
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
161
-		} else if ($event->getSubject() === 'changed_self') {
162
-			$subject = $this->l->t('You changed {file}');
163
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
164
-		} else if ($event->getSubject() === 'changed_by') {
165
-			$subject = $this->l->t('{user} changed {file}');
166
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
167
-		} else if ($event->getSubject() === 'deleted_self') {
168
-			$subject = $this->l->t('You deleted {file}');
169
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
170
-		} else if ($event->getSubject() === 'deleted_by') {
171
-			$subject = $this->l->t('{user} deleted {file}');
172
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
173
-		} else if ($event->getSubject() === 'restored_self') {
174
-			$subject = $this->l->t('You restored {file}');
175
-		} else if ($event->getSubject() === 'restored_by') {
176
-			$subject = $this->l->t('{user} restored {file}');
177
-		} else if ($event->getSubject() === 'renamed_self') {
178
-			$subject = $this->l->t('You renamed {oldfile} to {newfile}');
179
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
180
-		} else if ($event->getSubject() === 'renamed_by') {
181
-			$subject = $this->l->t('{user} renamed {oldfile} to {newfile}');
182
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
183
-		} else if ($event->getSubject() === 'moved_self') {
184
-			$subject = $this->l->t('You moved {oldfile} to {newfile}');
185
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
186
-		} else if ($event->getSubject() === 'moved_by') {
187
-			$subject = $this->l->t('{user} moved {oldfile} to {newfile}');
188
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
189
-		} else {
190
-			throw new \InvalidArgumentException();
191
-		}
192
-
193
-		if (!isset($parsedParameters['user'])) {
194
-			// External user via public link share
195
-			$subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
196
-		}
197
-
198
-		$this->setSubjects($event, $subject, $parsedParameters);
199
-
200
-		$event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
201
-
202
-		if ($event->getChildEvent() === null) {
203
-			// Couldn't group by file, maybe we can group by user
204
-			$event = $this->eventMerger->mergeEvents('user', $event, $previousEvent);
205
-		}
206
-
207
-		return $event;
208
-	}
209
-
210
-	protected function setSubjects(IEvent $event, $subject, array $parameters) {
211
-		$placeholders = $replacements = [];
212
-		foreach ($parameters as $placeholder => $parameter) {
213
-			$placeholders[] = '{' . $placeholder . '}';
214
-			if ($parameter['type'] === 'file') {
215
-				$replacements[] = $parameter['path'];
216
-			} else {
217
-				$replacements[] = $parameter['name'];
218
-			}
219
-		}
220
-
221
-		$event->setParsedSubject(str_replace($placeholders, $replacements, $subject))
222
-			->setRichSubject($subject, $parameters);
223
-	}
224
-
225
-	/**
226
-	 * @param IEvent $event
227
-	 * @return array
228
-	 * @throws \InvalidArgumentException
229
-	 */
230
-	protected function getParameters(IEvent $event) {
231
-		$parameters = $event->getSubjectParameters();
232
-		switch ($event->getSubject()) {
233
-			case 'created_self':
234
-			case 'created_public':
235
-			case 'changed_self':
236
-			case 'deleted_self':
237
-			case 'restored_self':
238
-				return [
239
-					'file' => $this->getFile($parameters[0], $event),
240
-				];
241
-			case 'created_by':
242
-			case 'changed_by':
243
-			case 'deleted_by':
244
-			case 'restored_by':
245
-				if ($parameters[1] === '') {
246
-					// External user via public link share
247
-					return [
248
-						'file' => $this->getFile($parameters[0], $event),
249
-					];
250
-				}
251
-				return [
252
-					'file' => $this->getFile($parameters[0], $event),
253
-					'user' => $this->getUser($parameters[1]),
254
-				];
255
-			case 'renamed_self':
256
-			case 'moved_self':
257
-				return [
258
-					'newfile' => $this->getFile($parameters[0]),
259
-					'oldfile' => $this->getFile($parameters[1]),
260
-				];
261
-			case 'renamed_by':
262
-			case 'moved_by':
263
-				if ($parameters[1] === '') {
264
-					// External user via public link share
265
-					return [
266
-						'newfile' => $this->getFile($parameters[0]),
267
-						'oldfile' => $this->getFile($parameters[2]),
268
-					];
269
-				}
270
-				return [
271
-					'newfile' => $this->getFile($parameters[0]),
272
-					'user' => $this->getUser($parameters[1]),
273
-					'oldfile' => $this->getFile($parameters[2]),
274
-				];
275
-		}
276
-		return [];
277
-	}
278
-
279
-	/**
280
-	 * @param array|string $parameter
281
-	 * @param IEvent|null $event
282
-	 * @return array
283
-	 * @throws \InvalidArgumentException
284
-	 */
285
-	protected function getFile($parameter, IEvent $event = null) {
286
-		if (is_array($parameter)) {
287
-			$path = reset($parameter);
288
-			$id = (string) key($parameter);
289
-		} else if ($event !== null) {
290
-			// Legacy from before ownCloud 8.2
291
-			$path = $parameter;
292
-			$id = $event->getObjectId();
293
-		} else {
294
-			throw new \InvalidArgumentException('Could not generate file parameter');
295
-		}
296
-
297
-		return [
298
-			'type' => 'file',
299
-			'id' => $id,
300
-			'name' => basename($path),
301
-			'path' => trim($path, '/'),
302
-			'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]),
303
-		];
304
-	}
305
-
306
-	/**
307
-	 * @param string $uid
308
-	 * @return array
309
-	 */
310
-	protected function getUser($uid) {
311
-		if (!isset($this->displayNames[$uid])) {
312
-			$this->displayNames[$uid] = $this->getDisplayName($uid);
313
-		}
314
-
315
-		return [
316
-			'type' => 'user',
317
-			'id' => $uid,
318
-			'name' => $this->displayNames[$uid],
319
-		];
320
-	}
321
-
322
-	/**
323
-	 * @param string $uid
324
-	 * @return string
325
-	 */
326
-	protected function getDisplayName($uid) {
327
-		$user = $this->userManager->get($uid);
328
-		if ($user instanceof IUser) {
329
-			return $user->getDisplayName();
330
-		} else {
331
-			return $uid;
332
-		}
333
-	}
36
+    /** @var IFactory */
37
+    protected $languageFactory;
38
+
39
+    /** @var IL10N */
40
+    protected $l;
41
+    /** @var IL10N */
42
+    protected $activityLang;
43
+
44
+    /** @var IURLGenerator */
45
+    protected $url;
46
+
47
+    /** @var IManager */
48
+    protected $activityManager;
49
+
50
+    /** @var IUserManager */
51
+    protected $userManager;
52
+
53
+    /** @var IEventMerger */
54
+    protected $eventMerger;
55
+
56
+    /** @var string[] cached displayNames - key is the UID and value the displayname */
57
+    protected $displayNames = [];
58
+
59
+    /**
60
+     * @param IFactory $languageFactory
61
+     * @param IURLGenerator $url
62
+     * @param IManager $activityManager
63
+     * @param IUserManager $userManager
64
+     * @param IEventMerger $eventMerger
65
+     */
66
+    public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IEventMerger $eventMerger) {
67
+        $this->languageFactory = $languageFactory;
68
+        $this->url = $url;
69
+        $this->activityManager = $activityManager;
70
+        $this->userManager = $userManager;
71
+        $this->eventMerger = $eventMerger;
72
+    }
73
+
74
+    /**
75
+     * @param string $language
76
+     * @param IEvent $event
77
+     * @param IEvent|null $previousEvent
78
+     * @return IEvent
79
+     * @throws \InvalidArgumentException
80
+     * @since 11.0.0
81
+     */
82
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
83
+        if ($event->getApp() !== 'files') {
84
+            throw new \InvalidArgumentException();
85
+        }
86
+
87
+        $this->l = $this->languageFactory->get('files', $language);
88
+        $this->activityLang = $this->languageFactory->get('activity', $language);
89
+
90
+        if ($this->activityManager->isFormattingFilteredObject()) {
91
+            try {
92
+                return $this->parseShortVersion($event, $previousEvent);
93
+            } catch (\InvalidArgumentException $e) {
94
+                // Ignore and simply use the long version...
95
+            }
96
+        }
97
+
98
+        return $this->parseLongVersion($event, $previousEvent);
99
+    }
100
+
101
+    /**
102
+     * @param IEvent $event
103
+     * @param IEvent|null $previousEvent
104
+     * @return IEvent
105
+     * @throws \InvalidArgumentException
106
+     * @since 11.0.0
107
+     */
108
+    public function parseShortVersion(IEvent $event, IEvent $previousEvent = null) {
109
+        $parsedParameters = $this->getParameters($event);
110
+
111
+        if ($event->getSubject() === 'created_by') {
112
+            $subject = $this->l->t('Created by {user}');
113
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
114
+        } else if ($event->getSubject() === 'changed_by') {
115
+            $subject = $this->l->t('Changed by {user}');
116
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
117
+        } else if ($event->getSubject() === 'deleted_by') {
118
+            $subject = $this->l->t('Deleted by {user}');
119
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
120
+        } else if ($event->getSubject() === 'restored_by') {
121
+            $subject = $this->l->t('Restored by {user}');
122
+        } else if ($event->getSubject() === 'renamed_by') {
123
+            $subject = $this->l->t('Renamed by {user}');
124
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
125
+        } else if ($event->getSubject() === 'moved_by') {
126
+            $subject = $this->l->t('Moved by {user}');
127
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
128
+        } else {
129
+            throw new \InvalidArgumentException();
130
+        }
131
+
132
+        if (!isset($parsedParameters['user'])) {
133
+            // External user via public link share
134
+            $subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
135
+        }
136
+
137
+        $this->setSubjects($event, $subject, $parsedParameters);
138
+
139
+        return $this->eventMerger->mergeEvents('user', $event, $previousEvent);
140
+    }
141
+
142
+    /**
143
+     * @param IEvent $event
144
+     * @param IEvent|null $previousEvent
145
+     * @return IEvent
146
+     * @throws \InvalidArgumentException
147
+     * @since 11.0.0
148
+     */
149
+    public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) {
150
+        $parsedParameters = $this->getParameters($event);
151
+
152
+        if ($event->getSubject() === 'created_self') {
153
+            $subject = $this->l->t('You created {file}');
154
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
155
+        } else if ($event->getSubject() === 'created_by') {
156
+            $subject = $this->l->t('{user} created {file}');
157
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
158
+        } else if ($event->getSubject() === 'created_public') {
159
+            $subject = $this->l->t('{file} was created in a public folder');
160
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
161
+        } else if ($event->getSubject() === 'changed_self') {
162
+            $subject = $this->l->t('You changed {file}');
163
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
164
+        } else if ($event->getSubject() === 'changed_by') {
165
+            $subject = $this->l->t('{user} changed {file}');
166
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
167
+        } else if ($event->getSubject() === 'deleted_self') {
168
+            $subject = $this->l->t('You deleted {file}');
169
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
170
+        } else if ($event->getSubject() === 'deleted_by') {
171
+            $subject = $this->l->t('{user} deleted {file}');
172
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
173
+        } else if ($event->getSubject() === 'restored_self') {
174
+            $subject = $this->l->t('You restored {file}');
175
+        } else if ($event->getSubject() === 'restored_by') {
176
+            $subject = $this->l->t('{user} restored {file}');
177
+        } else if ($event->getSubject() === 'renamed_self') {
178
+            $subject = $this->l->t('You renamed {oldfile} to {newfile}');
179
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
180
+        } else if ($event->getSubject() === 'renamed_by') {
181
+            $subject = $this->l->t('{user} renamed {oldfile} to {newfile}');
182
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
183
+        } else if ($event->getSubject() === 'moved_self') {
184
+            $subject = $this->l->t('You moved {oldfile} to {newfile}');
185
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
186
+        } else if ($event->getSubject() === 'moved_by') {
187
+            $subject = $this->l->t('{user} moved {oldfile} to {newfile}');
188
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
189
+        } else {
190
+            throw new \InvalidArgumentException();
191
+        }
192
+
193
+        if (!isset($parsedParameters['user'])) {
194
+            // External user via public link share
195
+            $subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
196
+        }
197
+
198
+        $this->setSubjects($event, $subject, $parsedParameters);
199
+
200
+        $event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
201
+
202
+        if ($event->getChildEvent() === null) {
203
+            // Couldn't group by file, maybe we can group by user
204
+            $event = $this->eventMerger->mergeEvents('user', $event, $previousEvent);
205
+        }
206
+
207
+        return $event;
208
+    }
209
+
210
+    protected function setSubjects(IEvent $event, $subject, array $parameters) {
211
+        $placeholders = $replacements = [];
212
+        foreach ($parameters as $placeholder => $parameter) {
213
+            $placeholders[] = '{' . $placeholder . '}';
214
+            if ($parameter['type'] === 'file') {
215
+                $replacements[] = $parameter['path'];
216
+            } else {
217
+                $replacements[] = $parameter['name'];
218
+            }
219
+        }
220
+
221
+        $event->setParsedSubject(str_replace($placeholders, $replacements, $subject))
222
+            ->setRichSubject($subject, $parameters);
223
+    }
224
+
225
+    /**
226
+     * @param IEvent $event
227
+     * @return array
228
+     * @throws \InvalidArgumentException
229
+     */
230
+    protected function getParameters(IEvent $event) {
231
+        $parameters = $event->getSubjectParameters();
232
+        switch ($event->getSubject()) {
233
+            case 'created_self':
234
+            case 'created_public':
235
+            case 'changed_self':
236
+            case 'deleted_self':
237
+            case 'restored_self':
238
+                return [
239
+                    'file' => $this->getFile($parameters[0], $event),
240
+                ];
241
+            case 'created_by':
242
+            case 'changed_by':
243
+            case 'deleted_by':
244
+            case 'restored_by':
245
+                if ($parameters[1] === '') {
246
+                    // External user via public link share
247
+                    return [
248
+                        'file' => $this->getFile($parameters[0], $event),
249
+                    ];
250
+                }
251
+                return [
252
+                    'file' => $this->getFile($parameters[0], $event),
253
+                    'user' => $this->getUser($parameters[1]),
254
+                ];
255
+            case 'renamed_self':
256
+            case 'moved_self':
257
+                return [
258
+                    'newfile' => $this->getFile($parameters[0]),
259
+                    'oldfile' => $this->getFile($parameters[1]),
260
+                ];
261
+            case 'renamed_by':
262
+            case 'moved_by':
263
+                if ($parameters[1] === '') {
264
+                    // External user via public link share
265
+                    return [
266
+                        'newfile' => $this->getFile($parameters[0]),
267
+                        'oldfile' => $this->getFile($parameters[2]),
268
+                    ];
269
+                }
270
+                return [
271
+                    'newfile' => $this->getFile($parameters[0]),
272
+                    'user' => $this->getUser($parameters[1]),
273
+                    'oldfile' => $this->getFile($parameters[2]),
274
+                ];
275
+        }
276
+        return [];
277
+    }
278
+
279
+    /**
280
+     * @param array|string $parameter
281
+     * @param IEvent|null $event
282
+     * @return array
283
+     * @throws \InvalidArgumentException
284
+     */
285
+    protected function getFile($parameter, IEvent $event = null) {
286
+        if (is_array($parameter)) {
287
+            $path = reset($parameter);
288
+            $id = (string) key($parameter);
289
+        } else if ($event !== null) {
290
+            // Legacy from before ownCloud 8.2
291
+            $path = $parameter;
292
+            $id = $event->getObjectId();
293
+        } else {
294
+            throw new \InvalidArgumentException('Could not generate file parameter');
295
+        }
296
+
297
+        return [
298
+            'type' => 'file',
299
+            'id' => $id,
300
+            'name' => basename($path),
301
+            'path' => trim($path, '/'),
302
+            'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]),
303
+        ];
304
+    }
305
+
306
+    /**
307
+     * @param string $uid
308
+     * @return array
309
+     */
310
+    protected function getUser($uid) {
311
+        if (!isset($this->displayNames[$uid])) {
312
+            $this->displayNames[$uid] = $this->getDisplayName($uid);
313
+        }
314
+
315
+        return [
316
+            'type' => 'user',
317
+            'id' => $uid,
318
+            'name' => $this->displayNames[$uid],
319
+        ];
320
+    }
321
+
322
+    /**
323
+     * @param string $uid
324
+     * @return string
325
+     */
326
+    protected function getDisplayName($uid) {
327
+        $user = $this->userManager->get($uid);
328
+        if ($user instanceof IUser) {
329
+            return $user->getDisplayName();
330
+        } else {
331
+            return $uid;
332
+        }
333
+    }
334 334
 }
Please login to merge, or discard this patch.
apps/files/lib/Activity/FavoriteProvider.php 1 patch
Indentation   +127 added lines, -127 removed lines patch added patch discarded remove patch
@@ -31,131 +31,131 @@
 block discarded – undo
31 31
 
32 32
 class FavoriteProvider implements IProvider {
33 33
 
34
-	const SUBJECT_ADDED = 'added_favorite';
35
-	const SUBJECT_REMOVED = 'removed_favorite';
36
-
37
-	/** @var IFactory */
38
-	protected $languageFactory;
39
-
40
-	/** @var IL10N */
41
-	protected $l;
42
-
43
-	/** @var IURLGenerator */
44
-	protected $url;
45
-
46
-	/** @var IManager */
47
-	protected $activityManager;
48
-
49
-	/** @var IEventMerger */
50
-	protected $eventMerger;
51
-
52
-	/**
53
-	 * @param IFactory $languageFactory
54
-	 * @param IURLGenerator $url
55
-	 * @param IManager $activityManager
56
-	 * @param IEventMerger $eventMerger
57
-	 */
58
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IEventMerger $eventMerger) {
59
-		$this->languageFactory = $languageFactory;
60
-		$this->url = $url;
61
-		$this->activityManager = $activityManager;
62
-		$this->eventMerger = $eventMerger;
63
-	}
64
-
65
-	/**
66
-	 * @param string $language
67
-	 * @param IEvent $event
68
-	 * @param IEvent|null $previousEvent
69
-	 * @return IEvent
70
-	 * @throws \InvalidArgumentException
71
-	 * @since 11.0.0
72
-	 */
73
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
74
-		if ($event->getApp() !== 'files' || $event->getType() !== 'favorite') {
75
-			throw new \InvalidArgumentException();
76
-		}
77
-
78
-		$this->l = $this->languageFactory->get('files', $language);
79
-
80
-		if ($this->activityManager->isFormattingFilteredObject()) {
81
-			try {
82
-				return $this->parseShortVersion($event);
83
-			} catch (\InvalidArgumentException $e) {
84
-				// Ignore and simply use the long version...
85
-			}
86
-		}
87
-
88
-		return $this->parseLongVersion($event, $previousEvent);
89
-	}
90
-
91
-	/**
92
-	 * @param IEvent $event
93
-	 * @return IEvent
94
-	 * @throws \InvalidArgumentException
95
-	 * @since 11.0.0
96
-	 */
97
-	public function parseShortVersion(IEvent $event) {
98
-
99
-		if ($event->getSubject() === self::SUBJECT_ADDED) {
100
-			$event->setParsedSubject($this->l->t('Added to favorites'))
101
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
102
-		} else if ($event->getSubject() === self::SUBJECT_REMOVED) {
103
-			$event->setParsedSubject($this->l->t('Removed from favorites'))
104
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
105
-		} else {
106
-			throw new \InvalidArgumentException();
107
-		}
108
-
109
-		return $event;
110
-	}
111
-
112
-	/**
113
-	 * @param IEvent $event
114
-	 * @param IEvent|null $previousEvent
115
-	 * @return IEvent
116
-	 * @throws \InvalidArgumentException
117
-	 * @since 11.0.0
118
-	 */
119
-	public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) {
120
-
121
-		if ($event->getSubject() === self::SUBJECT_ADDED) {
122
-			$subject = $this->l->t('You added {file} to your favorites');
123
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
124
-		} else if ($event->getSubject() === self::SUBJECT_REMOVED) {
125
-			$subject = $this->l->t('You removed {file} from your favorites');
126
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
127
-		} else {
128
-			throw new \InvalidArgumentException();
129
-		}
130
-
131
-		$this->setSubjects($event, $subject);
132
-		$event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
133
-		return $event;
134
-	}
135
-
136
-	/**
137
-	 * @param IEvent $event
138
-	 * @param string $subject
139
-	 */
140
-	protected function setSubjects(IEvent $event, $subject) {
141
-		$subjectParams = $event->getSubjectParameters();
142
-		if (empty($subjectParams)) {
143
-			// Try to fall back to the old way, but this does not work for emails.
144
-			// But at least old activities still work.
145
-			$subjectParams = [
146
-				'id' => $event->getObjectId(),
147
-				'path' => $event->getObjectName(),
148
-			];
149
-		}
150
-		$parameter = [
151
-			'type' => 'file',
152
-			'id' => $subjectParams['id'],
153
-			'name' => basename($subjectParams['path']),
154
-			'path' => trim($subjectParams['path'], '/'),
155
-			'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $subjectParams['id']]),
156
-		];
157
-
158
-		$event->setParsedSubject(str_replace('{file}', $parameter['path'], $subject))
159
-			->setRichSubject($subject, ['file' => $parameter]);
160
-	}
34
+    const SUBJECT_ADDED = 'added_favorite';
35
+    const SUBJECT_REMOVED = 'removed_favorite';
36
+
37
+    /** @var IFactory */
38
+    protected $languageFactory;
39
+
40
+    /** @var IL10N */
41
+    protected $l;
42
+
43
+    /** @var IURLGenerator */
44
+    protected $url;
45
+
46
+    /** @var IManager */
47
+    protected $activityManager;
48
+
49
+    /** @var IEventMerger */
50
+    protected $eventMerger;
51
+
52
+    /**
53
+     * @param IFactory $languageFactory
54
+     * @param IURLGenerator $url
55
+     * @param IManager $activityManager
56
+     * @param IEventMerger $eventMerger
57
+     */
58
+    public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IEventMerger $eventMerger) {
59
+        $this->languageFactory = $languageFactory;
60
+        $this->url = $url;
61
+        $this->activityManager = $activityManager;
62
+        $this->eventMerger = $eventMerger;
63
+    }
64
+
65
+    /**
66
+     * @param string $language
67
+     * @param IEvent $event
68
+     * @param IEvent|null $previousEvent
69
+     * @return IEvent
70
+     * @throws \InvalidArgumentException
71
+     * @since 11.0.0
72
+     */
73
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
74
+        if ($event->getApp() !== 'files' || $event->getType() !== 'favorite') {
75
+            throw new \InvalidArgumentException();
76
+        }
77
+
78
+        $this->l = $this->languageFactory->get('files', $language);
79
+
80
+        if ($this->activityManager->isFormattingFilteredObject()) {
81
+            try {
82
+                return $this->parseShortVersion($event);
83
+            } catch (\InvalidArgumentException $e) {
84
+                // Ignore and simply use the long version...
85
+            }
86
+        }
87
+
88
+        return $this->parseLongVersion($event, $previousEvent);
89
+    }
90
+
91
+    /**
92
+     * @param IEvent $event
93
+     * @return IEvent
94
+     * @throws \InvalidArgumentException
95
+     * @since 11.0.0
96
+     */
97
+    public function parseShortVersion(IEvent $event) {
98
+
99
+        if ($event->getSubject() === self::SUBJECT_ADDED) {
100
+            $event->setParsedSubject($this->l->t('Added to favorites'))
101
+                ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
102
+        } else if ($event->getSubject() === self::SUBJECT_REMOVED) {
103
+            $event->setParsedSubject($this->l->t('Removed from favorites'))
104
+                ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
105
+        } else {
106
+            throw new \InvalidArgumentException();
107
+        }
108
+
109
+        return $event;
110
+    }
111
+
112
+    /**
113
+     * @param IEvent $event
114
+     * @param IEvent|null $previousEvent
115
+     * @return IEvent
116
+     * @throws \InvalidArgumentException
117
+     * @since 11.0.0
118
+     */
119
+    public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) {
120
+
121
+        if ($event->getSubject() === self::SUBJECT_ADDED) {
122
+            $subject = $this->l->t('You added {file} to your favorites');
123
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
124
+        } else if ($event->getSubject() === self::SUBJECT_REMOVED) {
125
+            $subject = $this->l->t('You removed {file} from your favorites');
126
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
127
+        } else {
128
+            throw new \InvalidArgumentException();
129
+        }
130
+
131
+        $this->setSubjects($event, $subject);
132
+        $event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
133
+        return $event;
134
+    }
135
+
136
+    /**
137
+     * @param IEvent $event
138
+     * @param string $subject
139
+     */
140
+    protected function setSubjects(IEvent $event, $subject) {
141
+        $subjectParams = $event->getSubjectParameters();
142
+        if (empty($subjectParams)) {
143
+            // Try to fall back to the old way, but this does not work for emails.
144
+            // But at least old activities still work.
145
+            $subjectParams = [
146
+                'id' => $event->getObjectId(),
147
+                'path' => $event->getObjectName(),
148
+            ];
149
+        }
150
+        $parameter = [
151
+            'type' => 'file',
152
+            'id' => $subjectParams['id'],
153
+            'name' => basename($subjectParams['path']),
154
+            'path' => trim($subjectParams['path'], '/'),
155
+            'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $subjectParams['id']]),
156
+        ];
157
+
158
+        $event->setParsedSubject(str_replace('{file}', $parameter['path'], $subject))
159
+            ->setRichSubject($subject, ['file' => $parameter]);
160
+    }
161 161
 }
Please login to merge, or discard this patch.
apps/files/lib/Activity/Filter/Favorites.php 2 patches
Indentation   +118 added lines, -118 removed lines patch added patch discarded remove patch
@@ -32,129 +32,129 @@
 block discarded – undo
32 32
 
33 33
 class Favorites implements IFilter {
34 34
 
35
-	/** @var IL10N */
36
-	protected $l;
37
-
38
-	/** @var IURLGenerator */
39
-	protected $url;
40
-
41
-	/** @var IManager */
42
-	protected $activityManager;
43
-
44
-	/** @var Helper */
45
-	protected $helper;
46
-
47
-	/** @var IDBConnection */
48
-	protected $db;
49
-
50
-	/**
51
-	 * @param IL10N $l
52
-	 * @param IURLGenerator $url
53
-	 * @param IManager $activityManager
54
-	 * @param Helper $helper
55
-	 * @param IDBConnection $db
56
-	 */
57
-	public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager, Helper $helper, IDBConnection $db) {
58
-		$this->l = $l;
59
-		$this->url = $url;
60
-		$this->activityManager = $activityManager;
61
-		$this->helper = $helper;
62
-		$this->db = $db;
63
-	}
64
-
65
-	/**
66
-	 * @return string Lowercase a-z only identifier
67
-	 * @since 11.0.0
68
-	 */
69
-	public function getIdentifier() {
70
-		return 'files_favorites';
71
-	}
72
-
73
-	/**
74
-	 * @return string A translated string
75
-	 * @since 11.0.0
76
-	 */
77
-	public function getName() {
78
-		return $this->l->t('Favorites');
79
-	}
80
-
81
-	/**
82
-	 * @return int
83
-	 * @since 11.0.0
84
-	 */
85
-	public function getPriority() {
86
-		return 10;
87
-	}
88
-
89
-	/**
90
-	 * @return string Full URL to an icon, empty string when none is given
91
-	 * @since 11.0.0
92
-	 */
93
-	public function getIcon() {
94
-		return $this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star-dark.svg'));
95
-	}
96
-
97
-	/**
98
-	 * @param string[] $types
99
-	 * @return string[] An array of allowed apps from which activities should be displayed
100
-	 * @since 11.0.0
101
-	 */
102
-	public function filterTypes(array $types) {
103
-		return array_intersect([
104
-			'file_created',
105
-			'file_changed',
106
-			'file_deleted',
107
-			'file_restored',
108
-		], $types);
109
-	}
110
-
111
-	/**
112
-	 * @return string[] An array of allowed apps from which activities should be displayed
113
-	 * @since 11.0.0
114
-	 */
115
-	public function allowedApps() {
116
-		return ['files'];
117
-	}
118
-
119
-	/**
120
-	 * @param IQueryBuilder $query
121
-	 */
122
-	public function filterFavorites(IQueryBuilder $query) {
123
-		try {
124
-			$user = $this->activityManager->getCurrentUserId();
125
-		} catch (\UnexpectedValueException $e) {
126
-			return;
127
-		}
128
-
129
-		try {
130
-			$favorites = $this->helper->getFavoriteFilePaths($user);
131
-		} catch (\RuntimeException $e) {
132
-			return;
133
-		}
134
-
135
-		$limitations = [];
136
-		if (!empty($favorites['items'])) {
137
-			$limitations[] = $query->expr()->in('file', $query->createNamedParameter($favorites['items'], IQueryBuilder::PARAM_STR_ARRAY));
138
-		}
139
-		foreach ($favorites['folders'] as $favorite) {
140
-			$limitations[] = $query->expr()->like('file', $query->createNamedParameter(
141
-				$this->db->escapeLikeParameter($favorite . '/') . '%'
142
-			));
143
-		}
144
-
145
-		if (empty($limitations)) {
146
-			return;
147
-		}
148
-
149
-		$function = $query->createFunction('
35
+    /** @var IL10N */
36
+    protected $l;
37
+
38
+    /** @var IURLGenerator */
39
+    protected $url;
40
+
41
+    /** @var IManager */
42
+    protected $activityManager;
43
+
44
+    /** @var Helper */
45
+    protected $helper;
46
+
47
+    /** @var IDBConnection */
48
+    protected $db;
49
+
50
+    /**
51
+     * @param IL10N $l
52
+     * @param IURLGenerator $url
53
+     * @param IManager $activityManager
54
+     * @param Helper $helper
55
+     * @param IDBConnection $db
56
+     */
57
+    public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager, Helper $helper, IDBConnection $db) {
58
+        $this->l = $l;
59
+        $this->url = $url;
60
+        $this->activityManager = $activityManager;
61
+        $this->helper = $helper;
62
+        $this->db = $db;
63
+    }
64
+
65
+    /**
66
+     * @return string Lowercase a-z only identifier
67
+     * @since 11.0.0
68
+     */
69
+    public function getIdentifier() {
70
+        return 'files_favorites';
71
+    }
72
+
73
+    /**
74
+     * @return string A translated string
75
+     * @since 11.0.0
76
+     */
77
+    public function getName() {
78
+        return $this->l->t('Favorites');
79
+    }
80
+
81
+    /**
82
+     * @return int
83
+     * @since 11.0.0
84
+     */
85
+    public function getPriority() {
86
+        return 10;
87
+    }
88
+
89
+    /**
90
+     * @return string Full URL to an icon, empty string when none is given
91
+     * @since 11.0.0
92
+     */
93
+    public function getIcon() {
94
+        return $this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star-dark.svg'));
95
+    }
96
+
97
+    /**
98
+     * @param string[] $types
99
+     * @return string[] An array of allowed apps from which activities should be displayed
100
+     * @since 11.0.0
101
+     */
102
+    public function filterTypes(array $types) {
103
+        return array_intersect([
104
+            'file_created',
105
+            'file_changed',
106
+            'file_deleted',
107
+            'file_restored',
108
+        ], $types);
109
+    }
110
+
111
+    /**
112
+     * @return string[] An array of allowed apps from which activities should be displayed
113
+     * @since 11.0.0
114
+     */
115
+    public function allowedApps() {
116
+        return ['files'];
117
+    }
118
+
119
+    /**
120
+     * @param IQueryBuilder $query
121
+     */
122
+    public function filterFavorites(IQueryBuilder $query) {
123
+        try {
124
+            $user = $this->activityManager->getCurrentUserId();
125
+        } catch (\UnexpectedValueException $e) {
126
+            return;
127
+        }
128
+
129
+        try {
130
+            $favorites = $this->helper->getFavoriteFilePaths($user);
131
+        } catch (\RuntimeException $e) {
132
+            return;
133
+        }
134
+
135
+        $limitations = [];
136
+        if (!empty($favorites['items'])) {
137
+            $limitations[] = $query->expr()->in('file', $query->createNamedParameter($favorites['items'], IQueryBuilder::PARAM_STR_ARRAY));
138
+        }
139
+        foreach ($favorites['folders'] as $favorite) {
140
+            $limitations[] = $query->expr()->like('file', $query->createNamedParameter(
141
+                $this->db->escapeLikeParameter($favorite . '/') . '%'
142
+            ));
143
+        }
144
+
145
+        if (empty($limitations)) {
146
+            return;
147
+        }
148
+
149
+        $function = $query->createFunction('
150 150
 			CASE 
151 151
 				WHEN ' . $query->getColumnName('app') . ' <> ' . $query->createNamedParameter('files') . ' THEN 1
152 152
 				WHEN ' . $query->getColumnName('app') . ' = ' . $query->createNamedParameter('files') . '
153 153
 					AND (' . implode(' OR ', $limitations) . ')
154 154
 					THEN 1 
155 155
 			END = 1'
156
-		);
156
+        );
157 157
 
158
-		$query->andWhere($function);
159
-	}
158
+        $query->andWhere($function);
159
+    }
160 160
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
 		}
139 139
 		foreach ($favorites['folders'] as $favorite) {
140 140
 			$limitations[] = $query->expr()->like('file', $query->createNamedParameter(
141
-				$this->db->escapeLikeParameter($favorite . '/') . '%'
141
+				$this->db->escapeLikeParameter($favorite.'/').'%'
142 142
 			));
143 143
 		}
144 144
 
@@ -148,9 +148,9 @@  discard block
 block discarded – undo
148 148
 
149 149
 		$function = $query->createFunction('
150 150
 			CASE 
151
-				WHEN ' . $query->getColumnName('app') . ' <> ' . $query->createNamedParameter('files') . ' THEN 1
152
-				WHEN ' . $query->getColumnName('app') . ' = ' . $query->createNamedParameter('files') . '
153
-					AND (' . implode(' OR ', $limitations) . ')
151
+				WHEN ' . $query->getColumnName('app').' <> '.$query->createNamedParameter('files').' THEN 1
152
+				WHEN ' . $query->getColumnName('app').' = '.$query->createNamedParameter('files').'
153
+					AND (' . implode(' OR ', $limitations).')
154 154
 					THEN 1 
155 155
 			END = 1'
156 156
 		);
Please login to merge, or discard this patch.
apps/files/lib/Activity/Filter/FileChanges.php 1 patch
Indentation   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -28,72 +28,72 @@
 block discarded – undo
28 28
 
29 29
 class FileChanges implements IFilter {
30 30
 
31
-	/** @var IL10N */
32
-	protected $l;
31
+    /** @var IL10N */
32
+    protected $l;
33 33
 
34
-	/** @var IURLGenerator */
35
-	protected $url;
34
+    /** @var IURLGenerator */
35
+    protected $url;
36 36
 
37
-	/**
38
-	 * @param IL10N $l
39
-	 * @param IURLGenerator $url
40
-	 */
41
-	public function __construct(IL10N $l, IURLGenerator $url) {
42
-		$this->l = $l;
43
-		$this->url = $url;
44
-	}
37
+    /**
38
+     * @param IL10N $l
39
+     * @param IURLGenerator $url
40
+     */
41
+    public function __construct(IL10N $l, IURLGenerator $url) {
42
+        $this->l = $l;
43
+        $this->url = $url;
44
+    }
45 45
 
46
-	/**
47
-	 * @return string Lowercase a-z only identifier
48
-	 * @since 11.0.0
49
-	 */
50
-	public function getIdentifier() {
51
-		return 'files';
52
-	}
46
+    /**
47
+     * @return string Lowercase a-z only identifier
48
+     * @since 11.0.0
49
+     */
50
+    public function getIdentifier() {
51
+        return 'files';
52
+    }
53 53
 
54
-	/**
55
-	 * @return string A translated string
56
-	 * @since 11.0.0
57
-	 */
58
-	public function getName() {
59
-		return $this->l->t('File changes');
60
-	}
54
+    /**
55
+     * @return string A translated string
56
+     * @since 11.0.0
57
+     */
58
+    public function getName() {
59
+        return $this->l->t('File changes');
60
+    }
61 61
 
62
-	/**
63
-	 * @return int
64
-	 * @since 11.0.0
65
-	 */
66
-	public function getPriority() {
67
-		return 30;
68
-	}
62
+    /**
63
+     * @return int
64
+     * @since 11.0.0
65
+     */
66
+    public function getPriority() {
67
+        return 30;
68
+    }
69 69
 
70
-	/**
71
-	 * @return string Full URL to an icon, empty string when none is given
72
-	 * @since 11.0.0
73
-	 */
74
-	public function getIcon() {
75
-		return $this->url->getAbsoluteURL($this->url->imagePath('core', 'places/files-dark.svg'));
76
-	}
70
+    /**
71
+     * @return string Full URL to an icon, empty string when none is given
72
+     * @since 11.0.0
73
+     */
74
+    public function getIcon() {
75
+        return $this->url->getAbsoluteURL($this->url->imagePath('core', 'places/files-dark.svg'));
76
+    }
77 77
 
78
-	/**
79
-	 * @param string[] $types
80
-	 * @return string[] An array of allowed apps from which activities should be displayed
81
-	 * @since 11.0.0
82
-	 */
83
-	public function filterTypes(array $types) {
84
-		return array_intersect([
85
-			'file_created',
86
-			'file_changed',
87
-			'file_deleted',
88
-			'file_restored',
89
-		], $types);
90
-	}
78
+    /**
79
+     * @param string[] $types
80
+     * @return string[] An array of allowed apps from which activities should be displayed
81
+     * @since 11.0.0
82
+     */
83
+    public function filterTypes(array $types) {
84
+        return array_intersect([
85
+            'file_created',
86
+            'file_changed',
87
+            'file_deleted',
88
+            'file_restored',
89
+        ], $types);
90
+    }
91 91
 
92
-	/**
93
-	 * @return string[] An array of allowed apps from which activities should be displayed
94
-	 * @since 11.0.0
95
-	 */
96
-	public function allowedApps() {
97
-		return ['files'];
98
-	}
92
+    /**
93
+     * @return string[] An array of allowed apps from which activities should be displayed
94
+     * @since 11.0.0
95
+     */
96
+    public function allowedApps() {
97
+        return ['files'];
98
+    }
99 99
 }
Please login to merge, or discard this patch.
apps/files/lib/Activity/Helper.php 2 patches
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -26,60 +26,60 @@
 block discarded – undo
26 26
 use OCP\ITagManager;
27 27
 
28 28
 class Helper {
29
-	/** If a user has a lot of favorites the query might get too slow and long */
30
-	const FAVORITE_LIMIT = 50;
29
+    /** If a user has a lot of favorites the query might get too slow and long */
30
+    const FAVORITE_LIMIT = 50;
31 31
 
32
-	/** @var ITagManager */
33
-	protected $tagManager;
32
+    /** @var ITagManager */
33
+    protected $tagManager;
34 34
 
35
-	/**
36
-	 * @param ITagManager $tagManager
37
-	 */
38
-	public function __construct(ITagManager $tagManager) {
39
-		$this->tagManager = $tagManager;
40
-	}
35
+    /**
36
+     * @param ITagManager $tagManager
37
+     */
38
+    public function __construct(ITagManager $tagManager) {
39
+        $this->tagManager = $tagManager;
40
+    }
41 41
 
42
-	/**
43
-	 * Returns an array with the favorites
44
-	 *
45
-	 * @param string $user
46
-	 * @return array
47
-	 * @throws \RuntimeException when too many or no favorites where found
48
-	 */
49
-	public function getFavoriteFilePaths($user) {
50
-		$tags = $this->tagManager->load('files', [], false, $user);
51
-		$favorites = $tags->getFavorites();
42
+    /**
43
+     * Returns an array with the favorites
44
+     *
45
+     * @param string $user
46
+     * @return array
47
+     * @throws \RuntimeException when too many or no favorites where found
48
+     */
49
+    public function getFavoriteFilePaths($user) {
50
+        $tags = $this->tagManager->load('files', [], false, $user);
51
+        $favorites = $tags->getFavorites();
52 52
 
53
-		if (empty($favorites)) {
54
-			throw new \RuntimeException('No favorites', 1);
55
-		} else if (isset($favorites[self::FAVORITE_LIMIT])) {
56
-			throw new \RuntimeException('Too many favorites', 2);
57
-		}
53
+        if (empty($favorites)) {
54
+            throw new \RuntimeException('No favorites', 1);
55
+        } else if (isset($favorites[self::FAVORITE_LIMIT])) {
56
+            throw new \RuntimeException('Too many favorites', 2);
57
+        }
58 58
 
59
-		// Can not DI because the user is not known on instantiation
60
-		$rootFolder = \OC::$server->getUserFolder($user);
61
-		$folders = $items = [];
62
-		foreach ($favorites as $favorite) {
63
-			$nodes = $rootFolder->getById($favorite);
64
-			if (!empty($nodes)) {
65
-				/** @var \OCP\Files\Node $node */
66
-				$node = array_shift($nodes);
67
-				$path = substr($node->getPath(), strlen($user . '/files/'));
59
+        // Can not DI because the user is not known on instantiation
60
+        $rootFolder = \OC::$server->getUserFolder($user);
61
+        $folders = $items = [];
62
+        foreach ($favorites as $favorite) {
63
+            $nodes = $rootFolder->getById($favorite);
64
+            if (!empty($nodes)) {
65
+                /** @var \OCP\Files\Node $node */
66
+                $node = array_shift($nodes);
67
+                $path = substr($node->getPath(), strlen($user . '/files/'));
68 68
 
69
-				$items[] = $path;
70
-				if ($node instanceof Folder) {
71
-					$folders[] = $path;
72
-				}
73
-			}
74
-		}
69
+                $items[] = $path;
70
+                if ($node instanceof Folder) {
71
+                    $folders[] = $path;
72
+                }
73
+            }
74
+        }
75 75
 
76
-		if (empty($items)) {
77
-			throw new \RuntimeException('No favorites', 1);
78
-		}
76
+        if (empty($items)) {
77
+            throw new \RuntimeException('No favorites', 1);
78
+        }
79 79
 
80
-		return [
81
-			'items' => $items,
82
-			'folders' => $folders,
83
-		];
84
-	}
80
+        return [
81
+            'items' => $items,
82
+            'folders' => $folders,
83
+        ];
84
+    }
85 85
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@
 block discarded – undo
64 64
 			if (!empty($nodes)) {
65 65
 				/** @var \OCP\Files\Node $node */
66 66
 				$node = array_shift($nodes);
67
-				$path = substr($node->getPath(), strlen($user . '/files/'));
67
+				$path = substr($node->getPath(), strlen($user.'/files/'));
68 68
 
69 69
 				$items[] = $path;
70 70
 				if ($node instanceof Folder) {
Please login to merge, or discard this patch.
apps/files/lib/Activity/Settings/FileDeleted.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 FileDeleted 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 'file_deleted';
46
-	}
40
+    /**
41
+     * @return string Lowercase a-z and underscore only identifier
42
+     * @since 11.0.0
43
+     */
44
+    public function getIdentifier() {
45
+        return 'file_deleted';
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('A new file or folder has been <strong>deleted</strong>');
54
-	}
48
+    /**
49
+     * @return string A translated string
50
+     * @since 11.0.0
51
+     */
52
+    public function getName() {
53
+        return $this->l->t('A new file or folder has been <strong>deleted</strong>');
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 3;
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 3;
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.