From a52ec14845eea7022129b1015eaed9855dc3fc87 Mon Sep 17 00:00:00 2001 From: janis Date: Mon, 4 Sep 2023 17:05:58 +0200 Subject: [PATCH] start pages settings (BROKEN) --- src/server/admin/api/getHandler.js | 6 +++ src/server/admin/startPageManager.js | 4 ++ src/server/ui/home/{templates => }/nav.html | 0 .../ui/home/{templates => }/template.html | 0 src/webapp/main/src/views/admin/PagesView.vue | 42 +++++++++++++++++-- 5 files changed, 48 insertions(+), 4 deletions(-) rename src/server/ui/home/{templates => }/nav.html (100%) rename src/server/ui/home/{templates => }/template.html (100%) diff --git a/src/server/admin/api/getHandler.js b/src/server/admin/api/getHandler.js index 0741ea1..f8d5262 100644 --- a/src/server/admin/api/getHandler.js +++ b/src/server/admin/api/getHandler.js @@ -9,6 +9,8 @@ const db = require( '../../backend/db/db.js' ); const pm = require( '../../backend/plugins/manager.js' ); +const spm = require( '../startPageManager.js' ); +const startPageManager = new spm(); class GETHandler { constructor ( settings ) { @@ -112,6 +114,10 @@ class GETHandler { resolve( this.settings ); } else if ( call === 'getAllPlugins' ) { resolve( this.pluginManager.getPlugins() ); + } else if ( call === 'getStartPageSettings' ) { + resolve( startPageManager.loadStartPagePreferences( query.name ) ); + } else if ( call === 'getAllStartPages' ) { + resolve( startPageManager.findAllStartPageTemplates() ); } else { reject( { 'code': 404, 'error': 'Route not found' } ); } diff --git a/src/server/admin/startPageManager.js b/src/server/admin/startPageManager.js index 7644f89..4608198 100644 --- a/src/server/admin/startPageManager.js +++ b/src/server/admin/startPageManager.js @@ -25,6 +25,10 @@ class StartPageManager { return JSON.parse( fs.readFileSync( path.join( __dirname + '/../ui/home/templates/' + startPageName + '/startPage.config.html' ) ) ); } + findAllStartPageTemplates() { + return fs.readdirSync( path.join( __dirname + '/../ui/home/templates/' ) ); + } + setActiveStartPage( startPageName ) { this.settings[ 'startPage' ] = startPageName; fs.writeFileSync( path.join( __dirname + '/../config/settings.config.json' ), JSON.stringify( this.settings ) ); diff --git a/src/server/ui/home/templates/nav.html b/src/server/ui/home/nav.html similarity index 100% rename from src/server/ui/home/templates/nav.html rename to src/server/ui/home/nav.html diff --git a/src/server/ui/home/templates/template.html b/src/server/ui/home/template.html similarity index 100% rename from src/server/ui/home/templates/template.html rename to src/server/ui/home/template.html diff --git a/src/webapp/main/src/views/admin/PagesView.vue b/src/webapp/main/src/views/admin/PagesView.vue index b26063e..c86d4f9 100644 --- a/src/webapp/main/src/views/admin/PagesView.vue +++ b/src/webapp/main/src/views/admin/PagesView.vue @@ -10,7 +10,10 @@ @@ -18,13 +21,44 @@ export default { data () { return { - formData: {} + startPageTemplates: [], + startPageSettings: {}, + selectedTemplate: '', } }, methods: { - setup () { - + loadPageSettings() { + fetch( '/admin/getAPI/getStartPageSettings?name=' + this.selectedTemplate ).then( res => { + if ( res.status === 200 ) { + res.json().then( json => { + this.startPageSettings = json; + } ); + } + } ); } + }, + watch: { + selectedTemplate( value ) { + this.loadPageSettings(); + } + }, + created () { + fetch( '/admin/getAPI/getAllStartPages' ).then( res => { + if ( res.status === 200 ) { + res.json().then( json => { + this.startPageTemplates = json; + } ); + } + } ); + + fetch( '/admin/getAPI/getSettings' ).then( res => { + if ( res.status === 200 ) { + res.json().then( json => { + console.log( json[ 'startPage' ] ); + this.selectedTemplate = json[ 'startPage' ]; + } ); + } + } ); } };