]> source.dussan.org Git - nextcloud-server.git/commitdiff
Set the link of the notification on render instead of creation
authorJoas Schilling <coding@schilljs.com>
Mon, 9 Jan 2017 10:18:59 +0000 (11:18 +0100)
committerJoas Schilling <coding@schilljs.com>
Mon, 9 Jan 2017 10:18:59 +0000 (11:18 +0100)
Signed-off-by: Joas Schilling <coding@schilljs.com>
apps/updatenotification/lib/Notification/BackgroundJob.php
apps/updatenotification/lib/Notification/Notifier.php

index 7bcc0e869050a39b3af0b896c5f3d2b936aa581c..2ee3d766ea2ec24f55d9f1d2c14d8bd9b16a605f 100644 (file)
@@ -54,7 +54,7 @@ class BackgroundJob extends TimedJob {
        /** @var IURLGenerator */
        protected $urlGenerator;
 
-       /** @var IUser[] */
+       /** @var string[] */
        protected $users;
 
        /**
@@ -97,8 +97,7 @@ class BackgroundJob extends TimedJob {
 
                $status = $updater->check();
                if (isset($status['version'])) {
-                       $url = $this->urlGenerator->linkToRouteAbsolute('settings.AdminSettings.index') . '#updater';
-                       $this->createNotifications('core', $status['version'], $url, $status['versionstring']);
+                       $this->createNotifications('core', $status['version'], $status['versionstring']);
                }
        }
 
@@ -110,8 +109,7 @@ class BackgroundJob extends TimedJob {
                foreach ($apps as $app) {
                        $update = $this->isUpdateAvailable($app);
                        if ($update !== false) {
-                               $url = $this->urlGenerator->linkToRouteAbsolute('settings.AppSettings.viewApps') . '#app-' . $app;
-                               $this->createNotifications($app, $update, $url);
+                               $this->createNotifications($app, $update);
                        }
                }
        }
@@ -121,10 +119,9 @@ class BackgroundJob extends TimedJob {
         *
         * @param string $app
         * @param string $version
-        * @param string $url
         * @param string $visibleVersion
         */
-       protected function createNotifications($app, $version, $url, $visibleVersion = '') {
+       protected function createNotifications($app, $version, $visibleVersion = '') {
                $lastNotification = $this->config->getAppValue('updatenotification', $app, false);
                if ($lastNotification === $version) {
                        // We already notified about this update
@@ -138,8 +135,7 @@ class BackgroundJob extends TimedJob {
                $notification = $this->notificationManager->createNotification();
                $notification->setApp('updatenotification')
                        ->setDateTime(new \DateTime())
-                       ->setObject($app, $version)
-                       ->setLink($url);
+                       ->setObject($app, $version);
 
                if ($visibleVersion !== '') {
                        $notification->setSubject('update_available', ['version' => $visibleVersion]);
index 00cc94095ca1def99fbabe73c90a8a9f938351fd..b23b7fe84dd79897e09d76fa309181a70d9a6fdd 100644 (file)
@@ -76,6 +76,7 @@ class Notifier implements INotifier {
 
                        $parameters = $notification->getSubjectParameters();
                        $notification->setParsedSubject($l->t('Update to %1$s is available.', [$parameters['version']]));
+                       $notification->setLink($this->url->linkToRouteAbsolute('settings.AdminSettings.index') . '#updater');
                } else {
                        $appInfo = $this->getAppInfo($notification->getObjectType());
                        $appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name'];
@@ -92,6 +93,8 @@ class Notifier implements INotifier {
                                                'name' => $appName,
                                        ]
                                ]);
+
+                       $notification->setLink($this->url->linkToRouteAbsolute('settings.AppSettings.viewApps') . '#app-' . $notification->getObjectType());
                }
 
                $notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('updatenotification', 'notification.svg')));