cleanup work and prep for testing

This commit is contained in:
2023-09-16 15:32:34 +02:00
parent 94ee69642a
commit 4d4bb81099
9 changed files with 47 additions and 40 deletions

View File

@@ -1 +1 @@
{"test4":{"name":"Test4Event","description":"Let's see what happens if I update the description, how fast it is reflected in the UI","location":"test2","date":"2023-10-30T10:00:00.000Z","categories":{"1":{"price":{"1":20,"2":30},"bg":"#ff0000","fg":"#ff0000","name":"Category 1","id":"1","ticketCount":1}},"ageGroups":{"1":{"id":1,"name":"Child","age":"0 - 15.99"},"2":{"id":2,"name":"Adult"}},"maxTickets":0,"eventID":"test4","time":"10:00:00.000","startingPrice":20,"currency":"CHF","isDraft":true,"locationName":"TestLocation2","hasSeatplan":true,"totalSeats":353}} {"test4":{"name":"Test4Event","description":"Let's see what happens if I update the description, how fast it is reflected in the UI","location":"test2","date":"2023-10-30T10:00:00.000Z","categories":{"1":{"price":{"1":20,"2":30},"bg":"#ff0000","fg":"#ff0000","name":"Category 1","id":"1","ticketCount":1}},"ageGroups":{"1":{"id":1,"name":"Child","age":"0 - 15.99"},"2":{"id":2,"name":"Adult"}},"maxTickets":0,"eventID":"test4","time":"10:00:00.000","startingPrice":20,"currency":"CHF","isDraft":true,"locationName":"TestLocation2","hasSeatplan":true,"totalSeats":353},"test3":{"name":"TestEvent3","description":"This is another test event, this time without seat plan","location":"test","date":"2023-11-25T19:00:00.000Z","categories":{"1":{"price":{"1":20,"2":25},"bg":"#FFFFFF","fg":"#000000","name":"Category 1","id":1,"ticketCount":50},"2":{"price":{"1":30,"2":35},"bg":"#FFFFFF","fg":"#000000","name":"Category 2","id":2,"ticketCount":50}},"ageGroups":{"1":{"id":1,"name":"Child","age":"0 - 15.99"},"2":{"id":2,"name":"Adult"}},"maxTickets":0,"eventID":"test3","time":"19:00:00.000","startingPrice":20,"currency":"CHF","locationName":"TestLocation","hasSeatplan":false,"totalSeats":null}}

View File

@@ -1 +1 @@
{"test4":{"name":"Test4Event","description":"Let's see what happens if I update the description, how fast it is reflected in the UI","location":"test2","date":"2023-10-30T10:00:00.000Z","categories":{"1":{"price":{"1":20,"2":30},"bg":"#ff0000","fg":"#ff0000","name":"Category 1","id":"1","ticketCount":1}},"ageGroups":{"1":{"id":1,"name":"Child","age":"0 - 15.99"},"2":{"id":2,"name":"Adult"}},"maxTickets":0,"eventID":"test4","time":"10:00:00.000","startingPrice":20,"currency":"CHF","isDraft":true,"locationName":"TestLocation2","hasSeatplan":true,"totalSeats":353}} {"test4":{"name":"Test4Event","description":"Let's see what happens if I update the description, how fast it is reflected in the UI","location":"test2","date":"2023-10-30T10:00:00.000Z","categories":{"1":{"price":{"1":20,"2":30},"bg":"#ff0000","fg":"#ff0000","name":"Category 1","id":"1","ticketCount":1}},"ageGroups":{"1":{"id":1,"name":"Child","age":"0 - 15.99"},"2":{"id":2,"name":"Adult"}},"maxTickets":0,"eventID":"test4","time":"10:00:00.000","startingPrice":20,"currency":"CHF","isDraft":true,"locationName":"TestLocation2","hasSeatplan":true,"totalSeats":353},"test3":{"name":"TestEvent3","description":"This is another test event, this time without seat plan","location":"test","date":"2023-11-25T19:00:00.000Z","categories":{"1":{"price":{"1":20,"2":25},"bg":"#FFFFFF","fg":"#000000","name":"Category 1","id":1,"ticketCount":50},"2":{"price":{"1":30,"2":35},"bg":"#FFFFFF","fg":"#000000","name":"Category 2","id":2,"ticketCount":50}},"ageGroups":{"1":{"id":1,"name":"Child","age":"0 - 15.99"},"2":{"id":2,"name":"Adult"}},"maxTickets":0,"eventID":"test3","time":"19:00:00.000","startingPrice":20,"currency":"CHF","locationName":"TestLocation","hasSeatplan":false,"totalSeats":null}}

View File

@@ -1 +1 @@
{"test2":{"locationID":"test2","name":"TestLocation2","seatplan-enabled":true,"totalSeats":352},"test":{"locationID":"test","name":"TestLocation","seatplan-enabled":true}} {"test2":{"locationID":"test2","name":"TestLocation2","seatplan-enabled":true,"totalSeats":352},"test":{"locationID":"test","name":"TestLocation","seatplan-enabled":false}}

View File

@@ -111,7 +111,6 @@
} }
} ); } );
document.getElementById( 'subject' ).value = ''; document.getElementById( 'subject' ).value = '';
document.getElementById( 'mail' ).value = '';
document.getElementsByClassName( 'ql-editor' )[0].innerHTML = ''; document.getElementsByClassName( 'ql-editor' )[0].innerHTML = '';
}; };
</script> </script>

View File

@@ -1,7 +1,7 @@
{ {
"name": "libreevent", "name": "libreevent",
"version": "0.1.0", "version": "1.0.0",
"private": true, "private": false,
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite --host",
"preview": "vite preview --host", "preview": "vite preview --host",

View File

@@ -10,11 +10,11 @@
<template> <template>
<div> <div>
<h2>Plugins</h2> <h2>Plugins</h2>
<p>Here you can manage installed plugins. If you want to install more plugins, please follow the guide <a href="https://librevent.janishutz.com/docs/plugins/install">here</a></p> <p>Here you can manage installed plugins. If you want to install more plugins, please follow the guide <a href="https://librevent.janishutz.com/docs/plugins/install">here</a>. Note that some plugins might not follow the libreevent design scheme.</p>
<div class="bigButton-container"> <div class="bigButton-container">
<a class="bigButton" v-for="plugin in allPlugins" :href="plugin.settingsURL"> <a class="bigButton" v-for="plugin in allPlugins" :href="plugin.settingsURL">
<object data="/otherAssets/libreeventLogo.png" type="image/png" class="plugin-logo"> <object data="/otherAssets/libreeventLogo.png" type="image/png" class="plugin-logo" @click="$router.push( plugin.settingsURL )">
<img :src="plugin.logo"> <img :src="plugin.logo" @click="$router.push( plugin.settingsURL )" style="cursor: pointer;">
</object> </object>
<h3 style="margin-bottom: 0;">{{ plugin.pluginName }}</h3> <h3 style="margin-bottom: 0;">{{ plugin.pluginName }}</h3>
<p>{{ plugin.pluginDescription }}</p> <p>{{ plugin.pluginDescription }}</p>

View File

@@ -32,8 +32,8 @@
<div class="admin-settings"> <div class="admin-settings">
<h2>Admin Accounts</h2> <h2>Admin Accounts</h2>
<button @click="createAccount()">Create new account</button> <button @click="createAccount()">Create new account</button>
<p style="margin-bottom: 0;">Before setting or editing permissions here, please read the corresponding section of the documentation <a href="https://libreevent.janishutz.com/docs/admin-panel/settings/admin-accounts#permissions" target="_blank">here</a>.</p> <!-- <p style="margin-bottom: 0;">Before setting or editing permissions here, please read the corresponding section of the documentation <a href="https://libreevent.janishutz.com/docs/admin-panel/settings/admin-accounts#permissions" target="_blank">here</a>.</p> -->
<p style="margin-top: 0;">Usually, the permissions automatically set by the system on account creation should be appropriate. (TIP: Right click for more options)</p> <!-- <p style="margin-top: 0;">Usually, the permissions automatically set by the system on account creation should be appropriate. (TIP: Right click for more options)</p> -->
<div v-if="Object.keys( adminAccounts ).length > 0" class="account-wrapper"> <div v-if="Object.keys( adminAccounts ).length > 0" class="account-wrapper">
<div v-for="account in adminAccounts" class="account" @click="showPasswordSettings( account.email );" title="Edit settings of this account (right click for more options)" @contextmenu="( e ) => { e.preventDefault(); openRightClickMenu( account.email, e ); }"> <div v-for="account in adminAccounts" class="account" @click="showPasswordSettings( account.email );" title="Edit settings of this account (right click for more options)" @contextmenu="( e ) => { e.preventDefault(); openRightClickMenu( account.email, e ); }">
<div class="location-name"> <div class="location-name">
@@ -223,27 +223,27 @@
createAccount() { createAccount() {
this.currentPopup = 'createAccount'; this.currentPopup = 'createAccount';
this.$refs.popup.openPopup( 'Create new admin user', { this.$refs.popup.openPopup( 'Create new admin user', {
'role': { // 'role': {
'display': 'User role', // 'display': 'User role',
'id': 'role', // 'id': 'role',
'tooltip':'With this setting you can choose one of the preset permissions for users. Account management is only allowed for the root user.', // 'tooltip':'With this setting you can choose one of the preset permissions for users. Account management is only allowed for the root user.',
'value': 'eventManager', // 'value': 'eventManager',
'type': 'select', // 'type': 'select',
'restrictions': { // 'restrictions': {
'fullAccess': { // 'fullAccess': {
'value': 'fullAccess', // 'value': 'fullAccess',
'displayName': 'Full Access' // 'displayName': 'Full Access'
}, // },
'eventManager': { // 'eventManager': {
'value': 'eventManager', // 'value': 'eventManager',
'displayName': 'Event Manager' // 'displayName': 'Event Manager'
}, // },
'entryControl': { // 'entryControl': {
'value': 'entryControl', // 'value': 'entryControl',
'displayName': 'Entry Control' // 'displayName': 'Entry Control'
} // }
} // }
}, // },
'username': { 'username': {
'display': 'Username', 'display': 'Username',
'id': 'username', 'id': 'username',
@@ -290,10 +290,11 @@
, 'settings' ); , 'settings' );
}, },
executeCommand( command ) { executeCommand( command ) {
if ( command === 'openPermissions' ) { // if ( command === 'openPermissions' ) {
this.currentPopup = 'account'; // this.currentPopup = 'account';
this.showAccountSettings( this.currentlyOpenMenu ); // this.showAccountSettings( this.currentlyOpenMenu );
} else if ( command === 'deleteUser' ) { // } else
if ( command === 'deleteUser' ) {
this.currentPopup = 'deleteUser'; this.currentPopup = 'deleteUser';
this.$refs.popup.openPopup( 'Do you really want to delete the user ' + this.currentlyOpenMenu + '?', {}, 'confirm' ); this.$refs.popup.openPopup( 'Do you really want to delete the user ' + this.currentlyOpenMenu + '?', {}, 'confirm' );
} else if ( command === 'updatePassword' ) { } else if ( command === 'updatePassword' ) {
@@ -386,7 +387,10 @@
} }
}, },
openRightClickMenu( id, event ) { openRightClickMenu( id, event ) {
this.$refs.rclk.openRightClickMenu( event, { 'permissions': { 'command': 'openPermissions', 'symbol': 'edit', 'display': 'Edit permissions' }, 'password': { 'command': 'updatePassword', 'symbol': 'password', 'display': 'Edit account settings' }, 'delete': { 'command': 'deleteUser', 'symbol': 'delete', 'display': 'Delete User' } } ) this.$refs.rclk.openRightClickMenu( event, {
// 'permissions': { 'command': 'openPermissions', 'symbol': 'edit', 'display': 'Edit permissions' },
'password': { 'command': 'updatePassword', 'symbol': 'password', 'display': 'Edit account settings' },
'delete': { 'command': 'deleteUser', 'symbol': 'delete', 'display': 'Delete User' } } )
this.currentlyOpenMenu = id; this.currentlyOpenMenu = id;
}, },
loadData() { loadData() {

View File

@@ -77,13 +77,13 @@
<div class="category-details">{{ ageGroup.name }}<div style="display: inline;" v-if="ageGroup.age"> ({{ ageGroup.age }})</div>:</div> <div class="category-details">{{ ageGroup.name }}<div style="display: inline;" v-if="ageGroup.age"> ({{ ageGroup.age }})</div>:</div>
</td> </td>
<td> <td>
<input type="number" v-model="category.price[ ageGroup.id ]"> {{ event.currency }} <input type="number" v-model="category.price[ ageGroup.id ]">
</td> </td>
</tr> </tr>
<tr> <tr>
<td><div class="category-details">Colour:</div></td> <td><div class="category-details">Colour:</div></td>
<td> <td>
<input type="text" data-coloris v-model="category.fg" onkeydown="return false;"> {{ event.currency }} <input type="text" data-coloris v-model="category.fg" onkeydown="return false;">
</td> </td>
</tr> </tr>
<tr v-if="!hasSeatPlan"> <tr v-if="!hasSeatPlan">

View File

@@ -59,7 +59,11 @@
this.$router.push( '/tickets' ); this.$router.push( '/tickets' );
} }
this.eventID = sessionStorage.getItem( 'selectedTicket' ); this.eventID = sessionStorage.getItem( 'selectedTicket' );
this.hasSeatplan = sessionStorage.getItem( 'hasSeatplan' ); if ( sessionStorage.getItem( 'hasSeatplan' ) === 'false' ) {
this.hasSeatplan = false;
} else {
this.hasSeatplan = true;
}
} }
}; };
</script> </script>