From abc62a9bf201393404543633bdd000e9c953886d Mon Sep 17 00:00:00 2001 From: Andrey Borysenko Date: Thu, 11 Jan 2024 16:14:08 +0300 Subject: [PATCH] disable update button for manual-install (#206) Signed-off-by: Andrey Borysenko --- src/components/Apps/AppDetails.vue | 3 ++- src/components/Apps/AppItem.vue | 3 ++- src/components/Apps/AppList.vue | 4 ++-- src/mixins/AppManagement.js | 9 +++++++++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/components/Apps/AppDetails.vue b/src/components/Apps/AppDetails.vue index 99264a22..fe7b65bf 100644 --- a/src/components/Apps/AppDetails.vue +++ b/src/components/Apps/AppDetails.vue @@ -6,7 +6,8 @@ class="update primary" type="button" :value="t('settings', 'Update to {version}', { version: app.update })" - :disabled="installing || isLoading" + :disabled="installing || isLoading || isManualInstall" + :title="updateButtonText" @click="update(app.id)"> {{ t('settings', 'Update to {update}', {update:app.update}) }} diff --git a/src/components/Apps/AppList.vue b/src/components/Apps/AppList.vue index bb5b19c2..2655e47f 100644 --- a/src/components/Apps/AppList.vue +++ b/src/components/Apps/AppList.vue @@ -148,7 +148,7 @@ export default { return this.apps.filter(app => app.update).length > 0 }, showUpdateAll() { - return this.hasPendingUpdate && this.useListView + return this.hasPendingUpdate && this.useListView && !this.apps.every(app => app?.daemon?.accepts_deploy_id !== 'manual_install') }, apps() { const apps = this.$store.getters.getAllApps @@ -219,7 +219,7 @@ export default { updateAll() { const limit = pLimit(1) this.apps - .filter(app => app.update) + .filter(app => app.update && app.daemon.accepts_deploy_id !== 'manual_install') .map(app => limit(() => this.$store.dispatch('updateApp', { appId: app.id })), ) }, diff --git a/src/mixins/AppManagement.js b/src/mixins/AppManagement.js index 087a5a5a..437d6884 100644 --- a/src/mixins/AppManagement.js +++ b/src/mixins/AppManagement.js @@ -12,6 +12,15 @@ export default { isInitializing() { return this.app && Object.hasOwn(this.app?.status, 'progress') && this.app.status.progress < 100 }, + isManualInstall() { + return this.app?.daemon?.accepts_deploy_id === 'manual-install' + }, + updateButtonText() { + if (this.app?.daemon?.accepts_deploy_id === 'manual-install') { + return t('app_api', 'manual-install apps cannot be updated') + } + return '' + }, enableButtonText() { if (this.app && Object.hasOwn(this.app?.status, 'progress')) { return t('app_api', '{progress}% Initializing', { progress: this.app.status?.progress })