From ed63af624dadc54b2d2d7e3ee77409ff9cf26f0e Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sat, 8 Apr 2023 21:57:28 +0200 Subject: [PATCH] design + admin panel --- src/webapp/src/components/seatplan.vue | 26 +++++-- src/webapp/src/router/index.js | 14 ++-- src/webapp/src/views/admin/AdminView.vue | 99 ++++++++++++++++++++++++ src/webapp/src/views/admin/HomeView.vue | 18 +++++ 4 files changed, 145 insertions(+), 12 deletions(-) create mode 100644 src/webapp/src/views/admin/AdminView.vue create mode 100644 src/webapp/src/views/admin/HomeView.vue diff --git a/src/webapp/src/components/seatplan.vue b/src/webapp/src/components/seatplan.vue index 048a2c8..bbfbba2 100644 --- a/src/webapp/src/components/seatplan.vue +++ b/src/webapp/src/components/seatplan.vue @@ -5,9 +5,12 @@

{{ eventInfo.date }}

{{ eventInfo.location }}

Selected tickets

- + + + + + +
{{ seating[ ticket[ 1 ] ][ 'content' ][ ticket[ 0 ] ][ 'name' ] }}{{ eventInfo[ 'currency' ] }} {{ eventInfo[ 'categories' ][ seating[ ticket[ 1 ] ][ 'content' ][ ticket[ 0 ] ][ 'category' ] ][ 'price' ] }}

Total

To cart @@ -21,7 +24,7 @@ {{ row.name }} -
+
done
@@ -50,12 +53,22 @@ export default { }, data () { return { - seating: { 'r1': { 'name': 'Row 1', 'id': 'r1', 'content':{ 'S1':{ 'name': 'Seat 1', 'id': 'S1', 'available': true, 'selected': false, 'category':'2' } } }, 'r2': { 'name': 'Row 2', 'id': 'r2', 'content':{ 'S1':{ 'name': 'S1', 'id': 'S1', 'available': false, 'selected': false, 'category':'2' } } } }, + seating: { 'r1': { 'name': 'Row 1', 'id': 'r1', 'content':{ 'S1':{ 'name': 'Seat 1', 'id': 'S1', 'available': true, 'selected': false, 'category':'2' } } }, 'r2': { 'name': 'Row 2', 'id': 'r2', 'content':{ 'S1':{ 'name': 'S1', 'id': 'S1', 'available': true, 'selected': false, 'category':'2' } } } }, eventInfo: { 'name': 'TestEvent', 'location': 'TestLocation', 'date': 'TestDate', 'RoomName': 'TestRoom', 'currency': 'CHF', 'categories': { '1': { 'price': 20, 'bg': 'black', 'fg': 'white' }, '2': { 'price': 20, 'bg': 'green', 'fg': 'white' } } }, selectedSeats: {} } }, methods: { + loadPreviouslySelected () { + let data = {}; + if ( sessionStorage.getItem( 'selectedSeats' ) ) { + data = JSON.parse( sessionStorage.getItem( 'selectedSeats' ) ); + } + for ( let i in data ) { + this.seating[ data[ i ][ 1 ] ][ 'content' ][ data[ i ][ 0 ] ][ 'selected' ] = true; + } + this.selectedSeats = data; + }, selectSeat( placeID, rowID ) { let data = {}; if ( sessionStorage.getItem( 'selectedSeats' ) ) { @@ -81,6 +94,9 @@ export default { sessionStorage.setItem( 'selectedSeats', JSON.stringify( data ) ); this.selectedSeats = data; } + }, + created() { + this.loadPreviouslySelected(); } } diff --git a/src/webapp/src/router/index.js b/src/webapp/src/router/index.js index b803b72..aabd6db 100644 --- a/src/webapp/src/router/index.js +++ b/src/webapp/src/router/index.js @@ -40,22 +40,22 @@ const routes = [ { path: '/admin', name: 'admin', - component: () => import( '../views/HomeView.vue' ), + component: () => import( '../views/admin/AdminView.vue' ), meta: { title: 'Admin - myevent' }, children: [ { - path: 'settings', - name: 'adminSettings', - component: () => import( '../views/AdminLoginView.vue' ), + path: '', + name: 'adminMain', + component: () => import( '../views/admin/HomeView.vue' ), meta: { - title: 'Admin - myevent' + title: 'Home :: Admin - myevent' } }, { - path: '', - name: 'adminMain', + path: 'settings', + name: 'adminSettings', component: () => import( '../views/AdminLoginView.vue' ), meta: { title: 'Admin - myevent' diff --git a/src/webapp/src/views/admin/AdminView.vue b/src/webapp/src/views/admin/AdminView.vue new file mode 100644 index 0000000..3582105 --- /dev/null +++ b/src/webapp/src/views/admin/AdminView.vue @@ -0,0 +1,99 @@ + + + + + + diff --git a/src/webapp/src/views/admin/HomeView.vue b/src/webapp/src/views/admin/HomeView.vue new file mode 100644 index 0000000..cb66f84 --- /dev/null +++ b/src/webapp/src/views/admin/HomeView.vue @@ -0,0 +1,18 @@ + + +