From 6a3127a35a0449bc4234a1a90a98a3d23eeac278 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Tue, 29 Aug 2023 17:27:45 +0200 Subject: [PATCH] prepare payment gateway settings --- notes.md | 10 ++++------ src/server/app.js | 3 ++- src/server/backend/helperRoutes.js | 20 +++++++++++++++++++ src/server/backend/plugins/manager.js | 7 +++++++ src/server/backend/userAPIRoutes.js | 9 --------- src/server/config/settings.config.json | 3 ++- src/server/ui/home/active/en/index.html | 8 ++++++-- src/server/ui/home/helper.js | 0 .../ui/home/templates/default/index.html | 6 ++++-- .../templates/default/supportFiles/style.css | 12 +++++++++++ 10 files changed, 57 insertions(+), 21 deletions(-) create mode 100644 src/server/backend/helperRoutes.js create mode 100644 src/server/ui/home/helper.js create mode 100644 src/server/ui/home/templates/default/supportFiles/style.css diff --git a/notes.md b/notes.md index 300b122..a4d9168 100644 --- a/notes.md +++ b/notes.md @@ -1,8 +1,10 @@ -# Account view: - - Load all orders of customer from db when selecting tickets and save to memory to check if ticket count has been exceeded or not. +- load all available start page templates with dir crawler + + - fix ticket counting +- Seat numbering!! - Update files to import when deploying for included json files instead of secret.json files @@ -11,10 +13,6 @@ - Other optimization for seat plan editor - -- Seat numbering!! - - - FUTURE: Implement Permission system - FUTURE: Add Admin profile (page to change account settings per person like changing pwd) - FUTURE add multi-language support diff --git a/src/server/app.js b/src/server/app.js index 1df06df..5e48fc1 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -86,9 +86,10 @@ let file = path.join( __dirname + '/webapp/main/dist/index.html' ); console.log( '[ Server ] loading backend components' ); if ( settings.init ) { + require( './backend/helperRoutes.js' )( app, settings ); // Helper routes require( './admin/adminRoutes.js' )( app, settings ); // admin routes require( './admin/adminAPIRoutes.js' )( app, settings ); // admin api routes - require( './backend/userAPIRoutes.js' )( app, settings ); // admin api routes + require( './backend/userAPIRoutes.js' )( app, settings ); // user api routes require( './backend/userRoutes.js' )( app, settings ); // user routes require( './backend/payments/paymentRoutes.js' )( app, settings ); // payment routes require( './backend/plugins/pluginLoader.js' )( app, settings ); // plugin loader diff --git a/src/server/backend/helperRoutes.js b/src/server/backend/helperRoutes.js new file mode 100644 index 0000000..ff3a1d2 --- /dev/null +++ b/src/server/backend/helperRoutes.js @@ -0,0 +1,20 @@ +const path = require( 'path' ); + +module.exports = ( app, settings ) => { + app.get( '/eventAssets/:image', ( req, res ) => { + res.sendFile( path.join( __dirname + '/../assets/events/' + req.params.image ) ); + } ); + + app.get( '/otherAssets/:image', ( req, res ) => { + res.sendFile( path.join( __dirname + '/../assets/' + req.params.image ) ); + } ); + + app.get( '/supportFiles/:file', ( req, res ) => { + res.sendFile( path.join( __dirname + '/../ui/home/templates/' + settings.startPage + '/supportFiles/' + req.params.file ) ); + } ); + + // TODO: Decide if removed or not + app.get( '/startPage/helperFunction', ( req, res ) => { + res.sendFile( path.join( __dirname + '/../ui/home/helper.js' ) ); + } ); +}; \ No newline at end of file diff --git a/src/server/backend/plugins/manager.js b/src/server/backend/plugins/manager.js index c4c0a86..692cfea 100644 --- a/src/server/backend/plugins/manager.js +++ b/src/server/backend/plugins/manager.js @@ -33,6 +33,7 @@ class PluginManager { getPluginDetails ( plugin ) { return new Promise( ( resolve, reject ) => { fs.readFile( path.join( __dirname + '/others/' + plugin + '/plugin.json' ), ( err, file ) => { + if ( err ) reject( err ); resolve( file ); } ); } ); @@ -41,7 +42,9 @@ class PluginManager { loadPaymentGatewaySettings () { return new Promise( ( resolve, reject ) => { fs.readFile( path.join( __dirname + '/payments/' + this.paymentGateway + '/configOptions.json' ), ( err, options ) => { + if ( err ) reject( err ); fs.readFile( path.join( __dirname + '/payments/' + this.paymentGateway + '/config.payments.json' ), ( err, config ) => { + if ( err ) reject( err ); let f = options; for ( let s in f ) { f[ s ][ 'value' ] = config[ s ]; @@ -52,6 +55,10 @@ class PluginManager { } ); } + savePaymentGatewaySettings () { + + } + saveSettings ( plugin, settings ) { } diff --git a/src/server/backend/userAPIRoutes.js b/src/server/backend/userAPIRoutes.js index adbbae5..e8b2903 100644 --- a/src/server/backend/userAPIRoutes.js +++ b/src/server/backend/userAPIRoutes.js @@ -11,7 +11,6 @@ const posth = require( './api/postHandler.js' ); const geth = require( './api/getHandler.js' ); const postHandler = new posth(); const getHandler = new geth(); -const path = require( 'path' ); const bodyParser = require( 'body-parser' ); module.exports = ( app, settings ) => { @@ -39,12 +38,4 @@ module.exports = ( app, settings ) => { res.status( error.code ).send( error.message ); } ); } ); - - app.get( '/eventAssets/:image', ( req, res ) => { - res.sendFile( path.join( __dirname + '/../assets/events/' + req.params.image ) ); - } ); - - app.get( '/otherAssets/:image', ( req, res ) => { - res.sendFile( path.join( __dirname + '/../assets/' + req.params.image ) ); - } ); }; \ No newline at end of file diff --git a/src/server/config/settings.config.json b/src/server/config/settings.config.json index 34134b8..31587c6 100644 --- a/src/server/config/settings.config.json +++ b/src/server/config/settings.config.json @@ -11,5 +11,6 @@ "maxTickets":10, "currency":"CHF", "gcInterval":300, - "ticketTimeout":900 + "ticketTimeout":900, + "startPage": "default" } \ No newline at end of file diff --git a/src/server/ui/home/active/en/index.html b/src/server/ui/home/active/en/index.html index 3b66c4f..a33bf92 100644 --- a/src/server/ui/home/active/en/index.html +++ b/src/server/ui/home/active/en/index.html @@ -3,9 +3,13 @@ - Document + + libreevent -

Test

+ + +

Welcome to libreevent!

+

No start page has been configured yet! Please configure one either by using the configurator in the settings or by uploading your own HTML page to the correct folder as detailed here

\ No newline at end of file diff --git a/src/server/ui/home/helper.js b/src/server/ui/home/helper.js new file mode 100644 index 0000000..e69de29 diff --git a/src/server/ui/home/templates/default/index.html b/src/server/ui/home/templates/default/index.html index a953ae2..a8d61db 100644 --- a/src/server/ui/home/templates/default/index.html +++ b/src/server/ui/home/templates/default/index.html @@ -3,9 +3,11 @@ - Document + {{ pageName }} - +
+ +
\ No newline at end of file diff --git a/src/server/ui/home/templates/default/supportFiles/style.css b/src/server/ui/home/templates/default/supportFiles/style.css new file mode 100644 index 0000000..e2549c4 --- /dev/null +++ b/src/server/ui/home/templates/default/supportFiles/style.css @@ -0,0 +1,12 @@ +/* +* libreevent - style.css +* +* Created by Janis Hutz 08/29/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +.logo { + height: 50vh; +} \ No newline at end of file