diff options
-rw-r--r-- | apps/updatenotification/css/admin.css | 4 | ||||
-rw-r--r-- | apps/updatenotification/js-src/app.js | 1 | ||||
-rw-r--r-- | apps/updatenotification/js-src/components/root.vue | 8 | ||||
-rw-r--r-- | apps/updatenotification/lib/Settings/Admin.php | 1 | ||||
-rw-r--r-- | apps/updatenotification/lib/UpdateChecker.php | 1 | ||||
-rw-r--r-- | apps/updatenotification/tests/Settings/AdminTest.php | 2 | ||||
-rw-r--r-- | apps/updatenotification/tests/UpdateCheckerTest.php | 4 | ||||
-rw-r--r-- | lib/private/Updater/VersionCheck.php | 1 | ||||
-rw-r--r-- | tests/lib/Updater/VersionCheckTest.php | 4 |
9 files changed, 26 insertions, 0 deletions
diff --git a/apps/updatenotification/css/admin.css b/apps/updatenotification/css/admin.css index 52cc961ae35..775e2134ba5 100644 --- a/apps/updatenotification/css/admin.css +++ b/apps/updatenotification/css/admin.css @@ -40,3 +40,7 @@ color: #555; font-weight: normal; } + +#updatenotification .warning { + color: #ce3702; +} diff --git a/apps/updatenotification/js-src/app.js b/apps/updatenotification/js-src/app.js index bf96a2ff326..0b28cabd6ac 100644 --- a/apps/updatenotification/js-src/app.js +++ b/apps/updatenotification/js-src/app.js @@ -48,6 +48,7 @@ define(function (require) { this.vm.channels = data.channels; this.vm.notifyGroups = data.notifyGroups; this.vm.isDefaultUpdateServerURL = data.isDefaultUpdateServerURL; + this.vm.versionIsEol = data.versionIsEol; } }; }); diff --git a/apps/updatenotification/js-src/components/root.vue b/apps/updatenotification/js-src/components/root.vue index 774fd6dd539..a52e1b12bd4 100644 --- a/apps/updatenotification/js-src/components/root.vue +++ b/apps/updatenotification/js-src/components/root.vue @@ -2,6 +2,13 @@ <div id="updatenotification" class="followupsection"> <div class="update"> <template v-if="isNewVersionAvailable"> + <p v-if="versionIsEol"> + <span class="warning"> + <span class="icon icon-error"></span> + {{ t('updatenotification', 'The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.') }} + </span> + </p> + <p> <span v-html="newVersionAvailableString"></span><br> <span v-if="!isListFetched" class="icon icon-loading-small"></span> @@ -83,6 +90,7 @@ lastCheckedDate: '', isUpdateChecked: false, updaterEnabled: true, + versionIsEol: false, downloadLink: '', isNewVersionAvailable: false, updateServerURL: '', diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php index 258cba35e80..5213eb905ee 100644 --- a/apps/updatenotification/lib/Settings/Admin.php +++ b/apps/updatenotification/lib/Settings/Admin.php @@ -94,6 +94,7 @@ class Admin implements ISettings { 'newVersionString' => empty($updateState['updateVersion']) ? '' : $updateState['updateVersion'], 'downloadLink' => empty($updateState['downloadLink']) ? '' : $updateState['downloadLink'], 'updaterEnabled' => empty($updateState['updaterEnabled']) ? false : $updateState['updaterEnabled'], + 'versionIsEol' => empty($updateState['versionIsEol']) ? false : $updateState['versionIsEol'], 'isDefaultUpdateServerURL' => $updateServerURL === $defaultUpdateServerURL, 'updateServerURL' => $updateServerURL, 'notifyGroups' => $this->getSelectedGroups($notifyGroups), diff --git a/apps/updatenotification/lib/UpdateChecker.php b/apps/updatenotification/lib/UpdateChecker.php index 5f2712423d2..bba1fa5d48c 100644 --- a/apps/updatenotification/lib/UpdateChecker.php +++ b/apps/updatenotification/lib/UpdateChecker.php @@ -49,6 +49,7 @@ class UpdateChecker { $result['updateAvailable'] = true; $result['updateVersion'] = $data['versionstring']; $result['updaterEnabled'] = $data['autoupdater'] === '1'; + $result['versionIsEol'] = $data['eol'] === '1'; if (strpos($data['web'], 'https://') === 0) { $result['updateLink'] = $data['web']; } diff --git a/apps/updatenotification/tests/Settings/AdminTest.php b/apps/updatenotification/tests/Settings/AdminTest.php index 440e26cfd33..4e2ac3a53d9 100644 --- a/apps/updatenotification/tests/Settings/AdminTest.php +++ b/apps/updatenotification/tests/Settings/AdminTest.php @@ -100,6 +100,7 @@ class AdminTest extends TestCase { 'updateVersion' => '8.1.2', 'downloadLink' => 'https://downloads.nextcloud.org/server', 'updaterEnabled' => true, + 'versionIsEol' => false, ]); $group = $this->createMock(IGroup::class); @@ -124,6 +125,7 @@ class AdminTest extends TestCase { 'newVersionString' => '8.1.2', 'downloadLink' => 'https://downloads.nextcloud.org/server', 'updaterEnabled' => true, + 'versionIsEol' => false, 'isDefaultUpdateServerURL' => true, 'updateServerURL' => 'https://updates.nextcloud.com/updater_server/', 'notifyGroups' => [ diff --git a/apps/updatenotification/tests/UpdateCheckerTest.php b/apps/updatenotification/tests/UpdateCheckerTest.php index 5502e1ce8ac..6f5edf0c78c 100644 --- a/apps/updatenotification/tests/UpdateCheckerTest.php +++ b/apps/updatenotification/tests/UpdateCheckerTest.php @@ -52,12 +52,14 @@ class UpdateCheckerTest extends TestCase { 'web'=> 'javascript:alert(1)', 'url'=> 'javascript:alert(2)', 'autoupdater'=> '0', + 'eol'=> '1', ]); $expected = [ 'updateAvailable' => true, 'updateVersion' => 'Nextcloud 123', 'updaterEnabled' => false, + 'versionIsEol' => true, ]; $this->assertSame($expected, $this->updateChecker->getUpdateState()); } @@ -72,12 +74,14 @@ class UpdateCheckerTest extends TestCase { 'web'=> 'https://docs.nextcloud.com/myUrl', 'url'=> 'https://downloads.nextcloud.org/server', 'autoupdater'=> '1', + 'eol'=> '0', ]); $expected = [ 'updateAvailable' => true, 'updateVersion' => 'Nextcloud 123', 'updaterEnabled' => true, + 'versionIsEol' => false, 'updateLink' => 'https://docs.nextcloud.com/myUrl', 'downloadLink' => 'https://downloads.nextcloud.org/server', ]; diff --git a/lib/private/Updater/VersionCheck.php b/lib/private/Updater/VersionCheck.php index c7b829c9ec5..5cfc3c81a14 100644 --- a/lib/private/Updater/VersionCheck.php +++ b/lib/private/Updater/VersionCheck.php @@ -98,6 +98,7 @@ class VersionCheck { $tmp['url'] = (string)$data->url; $tmp['web'] = (string)$data->web; $tmp['autoupdater'] = (string)$data->autoupdater; + $tmp['eol'] = isset($data->eol) ? (string)$data->eol : '0'; } else { libxml_clear_errors(); } diff --git a/tests/lib/Updater/VersionCheckTest.php b/tests/lib/Updater/VersionCheckTest.php index 89a335722d7..216510b6628 100644 --- a/tests/lib/Updater/VersionCheckTest.php +++ b/tests/lib/Updater/VersionCheckTest.php @@ -85,6 +85,7 @@ class VersionCheckTest extends \Test\TestCase { 'url' => 'https://download.example.org/community/owncloud-8.0.4.zip', 'web' => 'http://doc.example.org/server/8.0/admin_manual/maintenance/upgrade.html', 'autoupdater' => '0', + 'eol' => '1', ]; $this->config @@ -123,6 +124,7 @@ class VersionCheckTest extends \Test\TestCase { <url>https://download.example.org/community/owncloud-8.0.4.zip</url> <web>http://doc.example.org/server/8.0/admin_manual/maintenance/upgrade.html</web> <autoupdater>0</autoupdater> + <eol>1</eol> </owncloud>'; $this->updater ->expects($this->once()) @@ -180,6 +182,7 @@ class VersionCheckTest extends \Test\TestCase { 'url' => '', 'web' => '', 'autoupdater' => '', + 'eol' => '0', ]; $this->config @@ -273,6 +276,7 @@ class VersionCheckTest extends \Test\TestCase { 'url' => '', 'web' => '', 'autoupdater' => '', + 'eol' => '0', ]; $this->config |