diff --git a/dashboard/src/components/app/Updates.vue b/dashboard/src/components/app/Updates.vue new file mode 100644 index 000000000..7767c71d6 --- /dev/null +++ b/dashboard/src/components/app/Updates.vue @@ -0,0 +1,128 @@ + + + diff --git a/dashboard/src/models/AppsModel.js b/dashboard/src/models/AppsModel.js index 45c8de34c..f1ea120cb 100644 --- a/dashboard/src/models/AppsModel.js +++ b/dashboard/src/models/AppsModel.js @@ -253,6 +253,33 @@ function create() { if (result.status !== 200) return [result]; return [null, result.body.eventlogs]; }, + async checkForUpdates(id) { + let result; + try { + result = await fetcher.post(`${origin}/api/v1/apps/${id}/check_for_updates`, {}, { access_token: accessToken }); + } catch (e) { + return [e]; + } + + if (result.status !== 200) return [result]; + return [null, result.body.update]; + }, + async update(id, manifest, skipBackup = false) { + const data = { + appStoreId: `${manifest.id}@${manifest.version}`, + skipBackup: !!skipBackup, + }; + + let result; + try { + result = await fetcher.post(`${origin}/api/v1/apps/${id}/update`, data, { access_token: accessToken }); + } catch (e) { + return [e]; + } + + if (result.status !== 202) return [result]; + return [null]; + }, }; } diff --git a/dashboard/src/views/AppConfigureView.vue b/dashboard/src/views/AppConfigureView.vue index f80680b27..d62e2276f 100644 --- a/dashboard/src/views/AppConfigureView.vue +++ b/dashboard/src/views/AppConfigureView.vue @@ -10,6 +10,7 @@ import { ref, onMounted, onUnmounted, useTemplateRef, computed } from 'vue'; import { Button, ButtonGroup, TabView } from 'pankow'; import Info from '../components/app/Info.vue'; import Eventlog from '../components/app/Eventlog.vue'; +import Updates from '../components/app/Updates.vue'; import Uninstall from '../components/app/Uninstall.vue'; import AppsModel from '../models/AppsModel.js'; import { APP_TYPES } from '../constants.js'; @@ -179,7 +180,7 @@ onUnmounted(() => { - + diff --git a/dashboard/src/views/AppsView.vue b/dashboard/src/views/AppsView.vue index 4ccbce16e..3165a3643 100644 --- a/dashboard/src/views/AppsView.vue +++ b/dashboard/src/views/AppsView.vue @@ -102,13 +102,17 @@ const applinkDialog = useTemplateRef('applinkDialog'); // hook for applinks otherwise it is a link function openAppEdit(app, event) { + console.log('app eidt!') if (app.type === APP_TYPES.LINK) { applinkDialog.value.open(app); event.preventDefault(); } + + event.stopPropagation(); } function onOpenApp(app, event) { + console.log('on open app', event) function stopEvent() { event.stopPropagation(); event.preventDefault();