diff --git a/src/server/admin/startPageManager.js b/src/server/admin/startPageManager.js new file mode 100644 index 0000000..7644f89 --- /dev/null +++ b/src/server/admin/startPageManager.js @@ -0,0 +1,46 @@ +/* +* libreevent - startPageManager.js +* +* Created by Janis Hutz 09/04/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +let createSSRApp = require( 'vue' ).createSSRApp; +let renderToString = require( 'vue/server-renderer' ).renderToString; +const fs = require( 'fs' ); +const path = require( 'path' ); + +class StartPageManager { + constructor ( settings ) { + this.settings = settings; + } + + saveStartPagePreferences( startPageName, preferences ) { + fs.writeFileSync( path.join( __dirname + '/../ui/home/templates/' + startPageName + '/startPage.config.html' ), JSON.stringify( preferences ) ); + } + + loadStartPagePreferences( startPageName ) { + return JSON.parse( fs.readFileSync( path.join( __dirname + '/../ui/home/templates/' + startPageName + '/startPage.config.html' ) ) ); + } + + setActiveStartPage( startPageName ) { + this.settings[ 'startPage' ] = startPageName; + fs.writeFileSync( path.join( __dirname + '/../config/settings.config.json' ), JSON.stringify( this.settings ) ); + } + + async renderStartPage( startPageName ) { + this.setActiveStartPage( startPageName ); + const app = createSSRApp( { + data() { + return this.loadStartPagePreferences( startPageName ); + }, + template: '' + fs.readFileSync( path.join( __dirname + '/../ui/home/templates/' + startPageName + '/index.html' ) ) + } ); + + fs.writeFileSync( path.join( __dirname + '/../ui/home/active/en/index.html' ), await renderToString( app ) ); + } +} + +module.exports = StartPageManager; \ No newline at end of file diff --git a/src/server/config/settings.config.json b/src/server/config/settings.config.json index 871a7ad..f03ff5c 100644 --- a/src/server/config/settings.config.json +++ b/src/server/config/settings.config.json @@ -12,5 +12,6 @@ "currency":"CHF", "gcInterval":300, "ticketTimeout":900, - "startPage":"default" + "startPage":"default", + "version":"1.0.0" } \ No newline at end of file diff --git a/src/server/ui/home/active/nav.html b/src/server/ui/home/templates/nav.html similarity index 100% rename from src/server/ui/home/active/nav.html rename to src/server/ui/home/templates/nav.html