Completed
Pull Request — master (#7195)
by Jan-Christoph
17:09 queued 02:45
created
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.
apps/files/lib/Activity/Settings/FavoriteAction.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 FavoriteAction 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 'favorite';
46
-	}
40
+    /**
41
+     * @return string Lowercase a-z and underscore only identifier
42
+     * @since 11.0.0
43
+     */
44
+    public function getIdentifier() {
45
+        return 'favorite';
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 has been added to or removed from your <strong>favorites</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 has been added to or removed from your <strong>favorites</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 5;
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 5;
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/FileFavorite.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 FileFavorite 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_favorite';
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_favorite';
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('Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>');
54
-	}
48
+    /**
49
+     * @return string A translated string
50
+     * @since 11.0.0
51
+     */
52
+    public function getName() {
53
+        return $this->l->t('Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>');
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 2;
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 2;
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 false;
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 false;
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 false;
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 false;
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/Service/TagService.php 1 patch
Indentation   +86 added lines, -86 removed lines patch added patch discarded remove patch
@@ -38,99 +38,99 @@
 block discarded – undo
38 38
  */
39 39
 class TagService {
40 40
 
41
-	/** @var IUserSession */
42
-	private $userSession;
43
-	/** @var IManager */
44
-	private $activityManager;
45
-	/** @var ITags */
46
-	private $tagger;
47
-	/** @var Folder */
48
-	private $homeFolder;
41
+    /** @var IUserSession */
42
+    private $userSession;
43
+    /** @var IManager */
44
+    private $activityManager;
45
+    /** @var ITags */
46
+    private $tagger;
47
+    /** @var Folder */
48
+    private $homeFolder;
49 49
 
50
-	/**
51
-	 * @param IUserSession $userSession
52
-	 * @param IManager $activityManager
53
-	 * @param ITags $tagger
54
-	 * @param Folder $homeFolder
55
-	 */
56
-	public function __construct(
57
-		IUserSession $userSession,
58
-		IManager $activityManager,
59
-		ITags $tagger,
60
-		Folder $homeFolder
61
-	) {
62
-		$this->userSession = $userSession;
63
-		$this->activityManager = $activityManager;
64
-		$this->tagger = $tagger;
65
-		$this->homeFolder = $homeFolder;
66
-	}
50
+    /**
51
+     * @param IUserSession $userSession
52
+     * @param IManager $activityManager
53
+     * @param ITags $tagger
54
+     * @param Folder $homeFolder
55
+     */
56
+    public function __construct(
57
+        IUserSession $userSession,
58
+        IManager $activityManager,
59
+        ITags $tagger,
60
+        Folder $homeFolder
61
+    ) {
62
+        $this->userSession = $userSession;
63
+        $this->activityManager = $activityManager;
64
+        $this->tagger = $tagger;
65
+        $this->homeFolder = $homeFolder;
66
+    }
67 67
 
68
-	/**
69
-	 * Updates the tags of the specified file path.
70
-	 * The passed tags are absolute, which means they will
71
-	 * replace the actual tag selection.
72
-	 *
73
-	 * @param string $path path
74
-	 * @param array  $tags array of tags
75
-	 * @return array list of tags
76
-	 * @throws \OCP\Files\NotFoundException if the file does not exist
77
-	 */
78
-	public function updateFileTags($path, $tags) {
79
-		$fileId = $this->homeFolder->get($path)->getId();
68
+    /**
69
+     * Updates the tags of the specified file path.
70
+     * The passed tags are absolute, which means they will
71
+     * replace the actual tag selection.
72
+     *
73
+     * @param string $path path
74
+     * @param array  $tags array of tags
75
+     * @return array list of tags
76
+     * @throws \OCP\Files\NotFoundException if the file does not exist
77
+     */
78
+    public function updateFileTags($path, $tags) {
79
+        $fileId = $this->homeFolder->get($path)->getId();
80 80
 
81
-		$currentTags = $this->tagger->getTagsForObjects(array($fileId));
81
+        $currentTags = $this->tagger->getTagsForObjects(array($fileId));
82 82
 
83
-		if (!empty($currentTags)) {
84
-			$currentTags = current($currentTags);
85
-		}
83
+        if (!empty($currentTags)) {
84
+            $currentTags = current($currentTags);
85
+        }
86 86
 
87
-		$newTags = array_diff($tags, $currentTags);
88
-		foreach ($newTags as $tag) {
89
-			if ($tag === Tags::TAG_FAVORITE) {
90
-				$this->addActivity(true, $fileId, $path);
91
-			}
92
-			$this->tagger->tagAs($fileId, $tag);
93
-		}
94
-		$deletedTags = array_diff($currentTags, $tags);
95
-		foreach ($deletedTags as $tag) {
96
-			if ($tag === Tags::TAG_FAVORITE) {
97
-				$this->addActivity(false, $fileId, $path);
98
-			}
99
-			$this->tagger->unTag($fileId, $tag);
100
-		}
87
+        $newTags = array_diff($tags, $currentTags);
88
+        foreach ($newTags as $tag) {
89
+            if ($tag === Tags::TAG_FAVORITE) {
90
+                $this->addActivity(true, $fileId, $path);
91
+            }
92
+            $this->tagger->tagAs($fileId, $tag);
93
+        }
94
+        $deletedTags = array_diff($currentTags, $tags);
95
+        foreach ($deletedTags as $tag) {
96
+            if ($tag === Tags::TAG_FAVORITE) {
97
+                $this->addActivity(false, $fileId, $path);
98
+            }
99
+            $this->tagger->unTag($fileId, $tag);
100
+        }
101 101
 
102
-		// TODO: re-read from tagger to make sure the
103
-		// list is up to date, in case of concurrent changes ?
104
-		return $tags;
105
-	}
102
+        // TODO: re-read from tagger to make sure the
103
+        // list is up to date, in case of concurrent changes ?
104
+        return $tags;
105
+    }
106 106
 
107
-	/**
108
-	 * @param bool $addToFavorite
109
-	 * @param int $fileId
110
-	 * @param string $path
111
-	 */
112
-	protected function addActivity($addToFavorite, $fileId, $path) {
113
-		$user = $this->userSession->getUser();
114
-		if (!$user instanceof IUser) {
115
-			return;
116
-		}
107
+    /**
108
+     * @param bool $addToFavorite
109
+     * @param int $fileId
110
+     * @param string $path
111
+     */
112
+    protected function addActivity($addToFavorite, $fileId, $path) {
113
+        $user = $this->userSession->getUser();
114
+        if (!$user instanceof IUser) {
115
+            return;
116
+        }
117 117
 
118
-		$event = $this->activityManager->generateEvent();
119
-		try {
120
-			$event->setApp('files')
121
-				->setObject('files', $fileId, $path)
122
-				->setType('favorite')
123
-				->setAuthor($user->getUID())
124
-				->setAffectedUser($user->getUID())
125
-				->setTimestamp(time())
126
-				->setSubject(
127
-					$addToFavorite ? FavoriteProvider::SUBJECT_ADDED : FavoriteProvider::SUBJECT_REMOVED,
128
-					['id' => $fileId, 'path' => $path]
129
-				);
130
-			$this->activityManager->publish($event);
131
-		} catch (\InvalidArgumentException $e) {
132
-		} catch (\BadMethodCallException $e) {
133
-		}
134
-	}
118
+        $event = $this->activityManager->generateEvent();
119
+        try {
120
+            $event->setApp('files')
121
+                ->setObject('files', $fileId, $path)
122
+                ->setType('favorite')
123
+                ->setAuthor($user->getUID())
124
+                ->setAffectedUser($user->getUID())
125
+                ->setTimestamp(time())
126
+                ->setSubject(
127
+                    $addToFavorite ? FavoriteProvider::SUBJECT_ADDED : FavoriteProvider::SUBJECT_REMOVED,
128
+                    ['id' => $fileId, 'path' => $path]
129
+                );
130
+            $this->activityManager->publish($event);
131
+        } catch (\InvalidArgumentException $e) {
132
+        } catch (\BadMethodCallException $e) {
133
+        }
134
+    }
135 135
 }
136 136
 
Please login to merge, or discard this patch.