diff --git a/dashboard/public/views/app.html b/dashboard/public/views/app.html index a32c39536..27806f94d 100644 --- a/dashboard/public/views/app.html +++ b/dashboard/public/views/app.html @@ -737,7 +737,7 @@
{{ 'app.infoTabTitle' | tr }}
{{ 'app.displayTabTitle' | tr }}
{{ 'app.locationTabTitle' | tr }}
-
Proxy
+
{{ 'app.accessControlTabTitle' | tr }}
{{ 'app.resourcesTabTitle' | tr }}
{{ 'app.servicesTabTitle' | tr }}
diff --git a/dashboard/src/components/app/Info.vue b/dashboard/src/components/app/Info.vue index 02dfa484c..5cb811500 100644 --- a/dashboard/src/components/app/Info.vue +++ b/dashboard/src/components/app/Info.vue @@ -1,16 +1,145 @@ diff --git a/dashboard/src/models/AppsModel.js b/dashboard/src/models/AppsModel.js index c6590d180..af5fefec0 100644 --- a/dashboard/src/models/AppsModel.js +++ b/dashboard/src/models/AppsModel.js @@ -188,7 +188,18 @@ function create() { await sleep(2000); } - } + }, + async configure(id, setting, data) { + let result; + try { + result = await fetcher.post(`${origin}/api/v1/apps/${id}/configure/${setting}`, data, { access_token: accessToken }); + } catch (e) { + return [e]; + } + + if (result.status !== 200 && result.status !== 202) return [result]; + return [null]; + }, }; } diff --git a/dashboard/src/views/AppConfigureView.vue b/dashboard/src/views/AppConfigureView.vue index 26af269ff..26f220330 100644 --- a/dashboard/src/views/AppConfigureView.vue +++ b/dashboard/src/views/AppConfigureView.vue @@ -6,14 +6,15 @@ import { useI18n } from 'vue-i18n'; const i18n = useI18n(); const t = i18n.t; -import { ref, onMounted } from 'vue'; +import { ref, onMounted, useTemplateRef } from 'vue'; import { Button, ButtonGroup, TabView } from 'pankow'; -import Section from '../components/Section.vue'; import Info from '../components/app/Info.vue'; import AppsModel from '../models/AppsModel.js'; import { APP_TYPES } from '../constants.js'; const appsModel = AppsModel.create(); + +const tabView = useTemplateRef('tabView'); const tabs = ref({ info: t('app.infoTabTitle'), display: t('app.displayTabTitle'), @@ -33,7 +34,6 @@ const tabs = ref({ eventlog: t('app.eventlogTabTitle'), uninstall: t('app.uninstallTabTitle'), }); -const view = ref('info'); const id = ref(''); const app = ref({}); const link = ref(''); @@ -103,22 +103,23 @@ onMounted(async () => { if (parts.length !== 2) return; id.value = parts[0]; - view.value = parts[1]; await refresh(); + + tabView.value.open(parts[1] || 'info'); });