Completed
Pull Request — master (#5881)
by Thomas
14:22 queued 01:53
created
apps/files/templates/simplelist.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -19,14 +19,14 @@
 block discarded – undo
19 19
 		<tr>
20 20
 			<th id='headerName' class="hidden column-name">
21 21
 				<div id="headerName-container">
22
-					<a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a>
22
+					<a class="name sort columntitle" data-sort="name"><span><?php p($l->t('Name')); ?></span><span class="sort-indicator"></span></a>
23 23
 				</div>
24 24
 			</th>
25 25
 			<th id="headerSize" class="hidden column-size">
26 26
 				<a class="size sort columntitle" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
27 27
 			</th>
28 28
 			<th id="headerDate" class="hidden column-mtime">
29
-				<a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t( 'Modified' )); ?></span><span class="sort-indicator"></span></a>
29
+				<a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span class="sort-indicator"></span></a>
30 30
 					<span class="selectedActions"><a href="" class="delete-selected">
31 31
 						<?php p($l->t('Delete'))?>
32 32
 						<img class="svg" alt="<?php p($l->t('Delete'))?>"
Please login to merge, or discard this patch.
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/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   +362 added lines, -362 removed lines patch added patch discarded remove patch
@@ -33,366 +33,366 @@
 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
-			if ($this->activityManager->getRequirePNG()) {
114
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
115
-			} else {
116
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
117
-			}
118
-		} else if ($event->getSubject() === 'changed_by') {
119
-			$subject = $this->l->t('Changed by {user}');
120
-			if ($this->activityManager->getRequirePNG()) {
121
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
122
-			} else {
123
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
124
-			}
125
-		} else if ($event->getSubject() === 'deleted_by') {
126
-			$subject = $this->l->t('Deleted by {user}');
127
-			if ($this->activityManager->getRequirePNG()) {
128
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
129
-			} else {
130
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
131
-			}
132
-		} else if ($event->getSubject() === 'restored_by') {
133
-			$subject = $this->l->t('Restored by {user}');
134
-		} else if ($event->getSubject() === 'renamed_by') {
135
-			$subject = $this->l->t('Renamed by {user}');
136
-			if ($this->activityManager->getRequirePNG()) {
137
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
138
-			} else {
139
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
140
-			}
141
-		} else if ($event->getSubject() === 'moved_by') {
142
-			$subject = $this->l->t('Moved by {user}');
143
-			if ($this->activityManager->getRequirePNG()) {
144
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
145
-			} else {
146
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
147
-			}
148
-		} else {
149
-			throw new \InvalidArgumentException();
150
-		}
151
-
152
-		if (!isset($parsedParameters['user'])) {
153
-			// External user via public link share
154
-			$subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
155
-		}
156
-
157
-		$this->setSubjects($event, $subject, $parsedParameters);
158
-
159
-		return $this->eventMerger->mergeEvents('user', $event, $previousEvent);
160
-	}
161
-
162
-	/**
163
-	 * @param IEvent $event
164
-	 * @param IEvent|null $previousEvent
165
-	 * @return IEvent
166
-	 * @throws \InvalidArgumentException
167
-	 * @since 11.0.0
168
-	 */
169
-	public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) {
170
-		$parsedParameters = $this->getParameters($event);
171
-
172
-		if ($event->getSubject() === 'created_self') {
173
-			$subject = $this->l->t('You created {file}');
174
-			if ($this->activityManager->getRequirePNG()) {
175
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
176
-			} else {
177
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
178
-			}
179
-		} else if ($event->getSubject() === 'created_by') {
180
-			$subject = $this->l->t('{user} created {file}');
181
-			if ($this->activityManager->getRequirePNG()) {
182
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
183
-			} else {
184
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
185
-			}
186
-		} else if ($event->getSubject() === 'created_public') {
187
-			$subject = $this->l->t('{file} was created in a public folder');
188
-			if ($this->activityManager->getRequirePNG()) {
189
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
190
-			} else {
191
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
192
-			}
193
-		} else if ($event->getSubject() === 'changed_self') {
194
-			$subject = $this->l->t('You changed {file}');
195
-			if ($this->activityManager->getRequirePNG()) {
196
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
197
-			} else {
198
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
199
-			}
200
-		} else if ($event->getSubject() === 'changed_by') {
201
-			$subject = $this->l->t('{user} changed {file}');
202
-			if ($this->activityManager->getRequirePNG()) {
203
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
204
-			} else {
205
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
206
-			}
207
-		} else if ($event->getSubject() === 'deleted_self') {
208
-			$subject = $this->l->t('You deleted {file}');
209
-			if ($this->activityManager->getRequirePNG()) {
210
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
211
-			} else {
212
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
213
-			}
214
-		} else if ($event->getSubject() === 'deleted_by') {
215
-			$subject = $this->l->t('{user} deleted {file}');
216
-			if ($this->activityManager->getRequirePNG()) {
217
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
218
-			} else {
219
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
220
-			}
221
-		} else if ($event->getSubject() === 'restored_self') {
222
-			$subject = $this->l->t('You restored {file}');
223
-		} else if ($event->getSubject() === 'restored_by') {
224
-			$subject = $this->l->t('{user} restored {file}');
225
-		} else if ($event->getSubject() === 'renamed_self') {
226
-			$subject = $this->l->t('You renamed {oldfile} to {newfile}');
227
-			if ($this->activityManager->getRequirePNG()) {
228
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
229
-			} else {
230
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
231
-			}
232
-		} else if ($event->getSubject() === 'renamed_by') {
233
-			$subject = $this->l->t('{user} renamed {oldfile} to {newfile}');
234
-			if ($this->activityManager->getRequirePNG()) {
235
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
236
-			} else {
237
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
238
-			}
239
-		} else if ($event->getSubject() === 'moved_self') {
240
-			$subject = $this->l->t('You moved {oldfile} to {newfile}');
241
-			if ($this->activityManager->getRequirePNG()) {
242
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
243
-			} else {
244
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
245
-			}
246
-		} else if ($event->getSubject() === 'moved_by') {
247
-			$subject = $this->l->t('{user} moved {oldfile} to {newfile}');
248
-			if ($this->activityManager->getRequirePNG()) {
249
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
250
-			} else {
251
-				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
252
-			}
253
-		} else {
254
-			throw new \InvalidArgumentException();
255
-		}
256
-
257
-		if (!isset($parsedParameters['user'])) {
258
-			// External user via public link share
259
-			$subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
260
-		}
261
-
262
-		$this->setSubjects($event, $subject, $parsedParameters);
263
-
264
-		$event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
265
-
266
-		if ($event->getChildEvent() === null) {
267
-			// Couldn't group by file, maybe we can group by user
268
-			$event = $this->eventMerger->mergeEvents('user', $event, $previousEvent);
269
-		}
270
-
271
-		return $event;
272
-	}
273
-
274
-	protected function setSubjects(IEvent $event, $subject, array $parameters) {
275
-		$placeholders = $replacements = [];
276
-		foreach ($parameters as $placeholder => $parameter) {
277
-			$placeholders[] = '{' . $placeholder . '}';
278
-			if ($parameter['type'] === 'file') {
279
-				$replacements[] = $parameter['path'];
280
-			} else {
281
-				$replacements[] = $parameter['name'];
282
-			}
283
-		}
284
-
285
-		$event->setParsedSubject(str_replace($placeholders, $replacements, $subject))
286
-			->setRichSubject($subject, $parameters);
287
-	}
288
-
289
-	/**
290
-	 * @param IEvent $event
291
-	 * @return array
292
-	 * @throws \InvalidArgumentException
293
-	 */
294
-	protected function getParameters(IEvent $event) {
295
-		$parameters = $event->getSubjectParameters();
296
-		switch ($event->getSubject()) {
297
-			case 'created_self':
298
-			case 'created_public':
299
-			case 'changed_self':
300
-			case 'deleted_self':
301
-			case 'restored_self':
302
-				return [
303
-					'file' => $this->getFile($parameters[0], $event),
304
-				];
305
-			case 'created_by':
306
-			case 'changed_by':
307
-			case 'deleted_by':
308
-			case 'restored_by':
309
-				if ($parameters[1] === '') {
310
-					// External user via public link share
311
-					return [
312
-						'file' => $this->getFile($parameters[0], $event),
313
-					];
314
-				}
315
-				return [
316
-					'file' => $this->getFile($parameters[0], $event),
317
-					'user' => $this->getUser($parameters[1]),
318
-				];
319
-			case 'renamed_self':
320
-			case 'moved_self':
321
-				return [
322
-					'newfile' => $this->getFile($parameters[0]),
323
-					'oldfile' => $this->getFile($parameters[1]),
324
-				];
325
-			case 'renamed_by':
326
-			case 'moved_by':
327
-				if ($parameters[1] === '') {
328
-					// External user via public link share
329
-					return [
330
-						'newfile' => $this->getFile($parameters[0]),
331
-						'oldfile' => $this->getFile($parameters[2]),
332
-					];
333
-				}
334
-				return [
335
-					'newfile' => $this->getFile($parameters[0]),
336
-					'user' => $this->getUser($parameters[1]),
337
-					'oldfile' => $this->getFile($parameters[2]),
338
-				];
339
-		}
340
-		return [];
341
-	}
342
-
343
-	/**
344
-	 * @param array|string $parameter
345
-	 * @param IEvent|null $event
346
-	 * @return array
347
-	 * @throws \InvalidArgumentException
348
-	 */
349
-	protected function getFile($parameter, IEvent $event = null) {
350
-		if (is_array($parameter)) {
351
-			$path = reset($parameter);
352
-			$id = (string) key($parameter);
353
-		} else if ($event !== null) {
354
-			// Legacy from before ownCloud 8.2
355
-			$path = $parameter;
356
-			$id = $event->getObjectId();
357
-		} else {
358
-			throw new \InvalidArgumentException('Could not generate file parameter');
359
-		}
360
-
361
-		return [
362
-			'type' => 'file',
363
-			'id' => $id,
364
-			'name' => basename($path),
365
-			'path' => trim($path, '/'),
366
-			'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]),
367
-		];
368
-	}
369
-
370
-	/**
371
-	 * @param string $uid
372
-	 * @return array
373
-	 */
374
-	protected function getUser($uid) {
375
-		if (!isset($this->displayNames[$uid])) {
376
-			$this->displayNames[$uid] = $this->getDisplayName($uid);
377
-		}
378
-
379
-		return [
380
-			'type' => 'user',
381
-			'id' => $uid,
382
-			'name' => $this->displayNames[$uid],
383
-		];
384
-	}
385
-
386
-	/**
387
-	 * @param string $uid
388
-	 * @return string
389
-	 */
390
-	protected function getDisplayName($uid) {
391
-		$user = $this->userManager->get($uid);
392
-		if ($user instanceof IUser) {
393
-			return $user->getDisplayName();
394
-		} else {
395
-			return $uid;
396
-		}
397
-	}
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
+            if ($this->activityManager->getRequirePNG()) {
114
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
115
+            } else {
116
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
117
+            }
118
+        } else if ($event->getSubject() === 'changed_by') {
119
+            $subject = $this->l->t('Changed by {user}');
120
+            if ($this->activityManager->getRequirePNG()) {
121
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
122
+            } else {
123
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
124
+            }
125
+        } else if ($event->getSubject() === 'deleted_by') {
126
+            $subject = $this->l->t('Deleted by {user}');
127
+            if ($this->activityManager->getRequirePNG()) {
128
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
129
+            } else {
130
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
131
+            }
132
+        } else if ($event->getSubject() === 'restored_by') {
133
+            $subject = $this->l->t('Restored by {user}');
134
+        } else if ($event->getSubject() === 'renamed_by') {
135
+            $subject = $this->l->t('Renamed by {user}');
136
+            if ($this->activityManager->getRequirePNG()) {
137
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
138
+            } else {
139
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
140
+            }
141
+        } else if ($event->getSubject() === 'moved_by') {
142
+            $subject = $this->l->t('Moved by {user}');
143
+            if ($this->activityManager->getRequirePNG()) {
144
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
145
+            } else {
146
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
147
+            }
148
+        } else {
149
+            throw new \InvalidArgumentException();
150
+        }
151
+
152
+        if (!isset($parsedParameters['user'])) {
153
+            // External user via public link share
154
+            $subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
155
+        }
156
+
157
+        $this->setSubjects($event, $subject, $parsedParameters);
158
+
159
+        return $this->eventMerger->mergeEvents('user', $event, $previousEvent);
160
+    }
161
+
162
+    /**
163
+     * @param IEvent $event
164
+     * @param IEvent|null $previousEvent
165
+     * @return IEvent
166
+     * @throws \InvalidArgumentException
167
+     * @since 11.0.0
168
+     */
169
+    public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) {
170
+        $parsedParameters = $this->getParameters($event);
171
+
172
+        if ($event->getSubject() === 'created_self') {
173
+            $subject = $this->l->t('You created {file}');
174
+            if ($this->activityManager->getRequirePNG()) {
175
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
176
+            } else {
177
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
178
+            }
179
+        } else if ($event->getSubject() === 'created_by') {
180
+            $subject = $this->l->t('{user} created {file}');
181
+            if ($this->activityManager->getRequirePNG()) {
182
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
183
+            } else {
184
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
185
+            }
186
+        } else if ($event->getSubject() === 'created_public') {
187
+            $subject = $this->l->t('{file} was created in a public folder');
188
+            if ($this->activityManager->getRequirePNG()) {
189
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
190
+            } else {
191
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
192
+            }
193
+        } else if ($event->getSubject() === 'changed_self') {
194
+            $subject = $this->l->t('You changed {file}');
195
+            if ($this->activityManager->getRequirePNG()) {
196
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
197
+            } else {
198
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
199
+            }
200
+        } else if ($event->getSubject() === 'changed_by') {
201
+            $subject = $this->l->t('{user} changed {file}');
202
+            if ($this->activityManager->getRequirePNG()) {
203
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
204
+            } else {
205
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
206
+            }
207
+        } else if ($event->getSubject() === 'deleted_self') {
208
+            $subject = $this->l->t('You deleted {file}');
209
+            if ($this->activityManager->getRequirePNG()) {
210
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
211
+            } else {
212
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
213
+            }
214
+        } else if ($event->getSubject() === 'deleted_by') {
215
+            $subject = $this->l->t('{user} deleted {file}');
216
+            if ($this->activityManager->getRequirePNG()) {
217
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
218
+            } else {
219
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
220
+            }
221
+        } else if ($event->getSubject() === 'restored_self') {
222
+            $subject = $this->l->t('You restored {file}');
223
+        } else if ($event->getSubject() === 'restored_by') {
224
+            $subject = $this->l->t('{user} restored {file}');
225
+        } else if ($event->getSubject() === 'renamed_self') {
226
+            $subject = $this->l->t('You renamed {oldfile} to {newfile}');
227
+            if ($this->activityManager->getRequirePNG()) {
228
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
229
+            } else {
230
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
231
+            }
232
+        } else if ($event->getSubject() === 'renamed_by') {
233
+            $subject = $this->l->t('{user} renamed {oldfile} to {newfile}');
234
+            if ($this->activityManager->getRequirePNG()) {
235
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
236
+            } else {
237
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
238
+            }
239
+        } else if ($event->getSubject() === 'moved_self') {
240
+            $subject = $this->l->t('You moved {oldfile} to {newfile}');
241
+            if ($this->activityManager->getRequirePNG()) {
242
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
243
+            } else {
244
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
245
+            }
246
+        } else if ($event->getSubject() === 'moved_by') {
247
+            $subject = $this->l->t('{user} moved {oldfile} to {newfile}');
248
+            if ($this->activityManager->getRequirePNG()) {
249
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
250
+            } else {
251
+                $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
252
+            }
253
+        } else {
254
+            throw new \InvalidArgumentException();
255
+        }
256
+
257
+        if (!isset($parsedParameters['user'])) {
258
+            // External user via public link share
259
+            $subject = str_replace('{user}', $this->activityLang->t('"remote user"'), $subject);
260
+        }
261
+
262
+        $this->setSubjects($event, $subject, $parsedParameters);
263
+
264
+        $event = $this->eventMerger->mergeEvents('file', $event, $previousEvent);
265
+
266
+        if ($event->getChildEvent() === null) {
267
+            // Couldn't group by file, maybe we can group by user
268
+            $event = $this->eventMerger->mergeEvents('user', $event, $previousEvent);
269
+        }
270
+
271
+        return $event;
272
+    }
273
+
274
+    protected function setSubjects(IEvent $event, $subject, array $parameters) {
275
+        $placeholders = $replacements = [];
276
+        foreach ($parameters as $placeholder => $parameter) {
277
+            $placeholders[] = '{' . $placeholder . '}';
278
+            if ($parameter['type'] === 'file') {
279
+                $replacements[] = $parameter['path'];
280
+            } else {
281
+                $replacements[] = $parameter['name'];
282
+            }
283
+        }
284
+
285
+        $event->setParsedSubject(str_replace($placeholders, $replacements, $subject))
286
+            ->setRichSubject($subject, $parameters);
287
+    }
288
+
289
+    /**
290
+     * @param IEvent $event
291
+     * @return array
292
+     * @throws \InvalidArgumentException
293
+     */
294
+    protected function getParameters(IEvent $event) {
295
+        $parameters = $event->getSubjectParameters();
296
+        switch ($event->getSubject()) {
297
+            case 'created_self':
298
+            case 'created_public':
299
+            case 'changed_self':
300
+            case 'deleted_self':
301
+            case 'restored_self':
302
+                return [
303
+                    'file' => $this->getFile($parameters[0], $event),
304
+                ];
305
+            case 'created_by':
306
+            case 'changed_by':
307
+            case 'deleted_by':
308
+            case 'restored_by':
309
+                if ($parameters[1] === '') {
310
+                    // External user via public link share
311
+                    return [
312
+                        'file' => $this->getFile($parameters[0], $event),
313
+                    ];
314
+                }
315
+                return [
316
+                    'file' => $this->getFile($parameters[0], $event),
317
+                    'user' => $this->getUser($parameters[1]),
318
+                ];
319
+            case 'renamed_self':
320
+            case 'moved_self':
321
+                return [
322
+                    'newfile' => $this->getFile($parameters[0]),
323
+                    'oldfile' => $this->getFile($parameters[1]),
324
+                ];
325
+            case 'renamed_by':
326
+            case 'moved_by':
327
+                if ($parameters[1] === '') {
328
+                    // External user via public link share
329
+                    return [
330
+                        'newfile' => $this->getFile($parameters[0]),
331
+                        'oldfile' => $this->getFile($parameters[2]),
332
+                    ];
333
+                }
334
+                return [
335
+                    'newfile' => $this->getFile($parameters[0]),
336
+                    'user' => $this->getUser($parameters[1]),
337
+                    'oldfile' => $this->getFile($parameters[2]),
338
+                ];
339
+        }
340
+        return [];
341
+    }
342
+
343
+    /**
344
+     * @param array|string $parameter
345
+     * @param IEvent|null $event
346
+     * @return array
347
+     * @throws \InvalidArgumentException
348
+     */
349
+    protected function getFile($parameter, IEvent $event = null) {
350
+        if (is_array($parameter)) {
351
+            $path = reset($parameter);
352
+            $id = (string) key($parameter);
353
+        } else if ($event !== null) {
354
+            // Legacy from before ownCloud 8.2
355
+            $path = $parameter;
356
+            $id = $event->getObjectId();
357
+        } else {
358
+            throw new \InvalidArgumentException('Could not generate file parameter');
359
+        }
360
+
361
+        return [
362
+            'type' => 'file',
363
+            'id' => $id,
364
+            'name' => basename($path),
365
+            'path' => trim($path, '/'),
366
+            'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]),
367
+        ];
368
+    }
369
+
370
+    /**
371
+     * @param string $uid
372
+     * @return array
373
+     */
374
+    protected function getUser($uid) {
375
+        if (!isset($this->displayNames[$uid])) {
376
+            $this->displayNames[$uid] = $this->getDisplayName($uid);
377
+        }
378
+
379
+        return [
380
+            'type' => 'user',
381
+            'id' => $uid,
382
+            'name' => $this->displayNames[$uid],
383
+        ];
384
+    }
385
+
386
+    /**
387
+     * @param string $uid
388
+     * @return string
389
+     */
390
+    protected function getDisplayName($uid) {
391
+        $user = $this->userManager->get($uid);
392
+        if ($user instanceof IUser) {
393
+            return $user->getDisplayName();
394
+        } else {
395
+            return $uid;
396
+        }
397
+    }
398 398
 }
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/FileChanged.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 FileChanged 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_changed';
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_changed';
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 file or folder has been <strong>changed</strong> or <strong>renamed</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 file or folder has been <strong>changed</strong> or <strong>renamed</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 1;
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 1;
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/files/lib/Activity/Settings/FileCreated.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 FileCreated 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_created';
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_created';
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>created</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>created</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 0;
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 0;
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.