diff --git a/bundles/org.openhab.ui/web/src/js/routes.js b/bundles/org.openhab.ui/web/src/js/routes.js index 37c436d24e..6380a56c2e 100644 --- a/bundles/org.openhab.ui/web/src/js/routes.js +++ b/bundles/org.openhab.ui/web/src/js/routes.js @@ -34,6 +34,8 @@ const InboxListPage = () => import(/* webpackChunkName: "admin-config" */ '../pa const TransformationsListPage = () => import(/* webpackChunkName: "admin-config" */ '../pages/settings/transformations/transformations-list.vue') const TransformationsEditPage = () => import(/* webpackChunkName: "admin-rules" */ '../pages/settings/transformations/transformation-edit.vue') +const PersistenceEditPage = () => import(/* webpackChunkName: "admin-config" */ '../pages/settings/persistence/persistence-edit.vue') + const SemanticModelPage = () => import(/* webpackChunkName: "admin-config" */ '../pages/settings/model/model.vue') const PagesListPage = () => import(/* webpackChunkName: "admin-pages" */ '../pages/settings/pages/pages-list.vue') @@ -237,6 +239,17 @@ export default [ beforeEnter: [enforceAdminForRoute], async: loadAsync(SemanticModelPage) }, + { + path: 'persistence/', + routes: [ + { + path: ':serviceId', + beforeEnter: [enforceAdminForRoute], + beforeLeave: [checkDirtyBeforeLeave], + async: loadAsync(PersistenceEditPage) + } + ] + }, { path: 'rules/', beforeEnter: [enforceAdminForRoute], diff --git a/bundles/org.openhab.ui/web/src/pages/settings/addons/addon-config.vue b/bundles/org.openhab.ui/web/src/pages/settings/addons/addon-config.vue index b3c063af37..4bcc660c92 100644 --- a/bundles/org.openhab.ui/web/src/pages/settings/addons/addon-config.vue +++ b/bundles/org.openhab.ui/web/src/pages/settings/addons/addon-config.vue @@ -8,6 +8,15 @@ + + + + + Persistence configuration + + + + @@ -74,6 +83,14 @@ export default { strippedAddonId: '' } }, + computed: { + type () { + return this.addonId.split('-')[0] + }, + name () { + return this.addonId.split('-')[1] + } + }, methods: { save () { let promises = [] diff --git a/bundles/org.openhab.ui/web/src/pages/settings/persistence/configuration-popup.vue b/bundles/org.openhab.ui/web/src/pages/settings/persistence/configuration-popup.vue new file mode 100644 index 0000000000..e15bbf98cb --- /dev/null +++ b/bundles/org.openhab.ui/web/src/pages/settings/persistence/configuration-popup.vue @@ -0,0 +1,99 @@ + + + diff --git a/bundles/org.openhab.ui/web/src/pages/settings/persistence/cron-strategy-popup.vue b/bundles/org.openhab.ui/web/src/pages/settings/persistence/cron-strategy-popup.vue new file mode 100644 index 0000000000..80d1d53d28 --- /dev/null +++ b/bundles/org.openhab.ui/web/src/pages/settings/persistence/cron-strategy-popup.vue @@ -0,0 +1,77 @@ + + + diff --git a/bundles/org.openhab.ui/web/src/pages/settings/persistence/filter-picker.vue b/bundles/org.openhab.ui/web/src/pages/settings/persistence/filter-picker.vue new file mode 100644 index 0000000000..148741bdb2 --- /dev/null +++ b/bundles/org.openhab.ui/web/src/pages/settings/persistence/filter-picker.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/bundles/org.openhab.ui/web/src/pages/settings/persistence/filter-popup.vue b/bundles/org.openhab.ui/web/src/pages/settings/persistence/filter-popup.vue new file mode 100644 index 0000000000..3384e4bdf1 --- /dev/null +++ b/bundles/org.openhab.ui/web/src/pages/settings/persistence/filter-popup.vue @@ -0,0 +1,71 @@ + + + diff --git a/bundles/org.openhab.ui/web/src/pages/settings/persistence/persistence-edit.vue b/bundles/org.openhab.ui/web/src/pages/settings/persistence/persistence-edit.vue new file mode 100644 index 0000000000..6b287fd73f --- /dev/null +++ b/bundles/org.openhab.ui/web/src/pages/settings/persistence/persistence-edit.vue @@ -0,0 +1,696 @@ + + + + + diff --git a/bundles/org.openhab.ui/web/src/pages/settings/persistence/strategy-picker.vue b/bundles/org.openhab.ui/web/src/pages/settings/persistence/strategy-picker.vue new file mode 100644 index 0000000000..e0a8f4a855 --- /dev/null +++ b/bundles/org.openhab.ui/web/src/pages/settings/persistence/strategy-picker.vue @@ -0,0 +1,50 @@ + + + + +