From 40a5242168a9f8cad4984c770673883a64e73569 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 12 Apr 2021 10:20:31 +0200 Subject: Add alert modal in plugins on major upgrade --- .../plugin-list-installed.component.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'client/src') diff --git a/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts b/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts index c78b19585..cbdc379a8 100644 --- a/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts +++ b/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts @@ -128,6 +128,16 @@ export class PluginListInstalledComponent implements OnInit { const updatingKey = this.getUpdatingKey(plugin) if (this.updating[updatingKey]) return + if (this.isMajorUpgrade(plugin)) { + const res = await this.confirmService.confirm( + $localize`This is a major plugin upgrade. Please go on the plugin homepage to check potential release notes.`, + $localize`Upgrade`, + $localize`Proceed upgrade` + ) + + if (res === false) return + } + this.updating[updatingKey] = true this.pluginApiService.update(plugin.name, plugin.type) @@ -156,4 +166,13 @@ export class PluginListInstalledComponent implements OnInit { private getUpdatingKey (plugin: PeerTubePlugin) { return plugin.name + plugin.type } + + private isMajorUpgrade (plugin: PeerTubePlugin) { + if (!plugin.latestVersion) return false + + const latestMajor = plugin.latestVersion.split('.')[0] + const currentMajor = plugin.version.split('.')[0] + + return latestMajor > currentMajor + } } -- cgit v1.2.3