From 9071886991a43a6e66dd615d53ab78d5e25f56c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=BChl?= Date: Fri, 11 Apr 2025 15:55:34 +0200 Subject: [PATCH] renamed login and home view, restructured login view and router, added logo --- app/src/assets/Bonn_Capitals_Insignia.png | Bin 0 -> 38010 bytes app/src/router/index.ts | 67 +++--- app/src/theme/variables.css | 48 +++++ app/src/views/{Home.vue => HomeView.vue} | 0 app/src/views/Login.vue | 146 ------------- app/src/views/LoginView.vue | 240 ++++++++++++++++++++++ app/src/views/SetupView.vue | 38 ++++ 7 files changed, 359 insertions(+), 180 deletions(-) create mode 100644 app/src/assets/Bonn_Capitals_Insignia.png rename app/src/views/{Home.vue => HomeView.vue} (100%) delete mode 100644 app/src/views/Login.vue create mode 100644 app/src/views/LoginView.vue create mode 100644 app/src/views/SetupView.vue diff --git a/app/src/assets/Bonn_Capitals_Insignia.png b/app/src/assets/Bonn_Capitals_Insignia.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe54f47f5ffad8d230bd184c462a53b948e9e79 GIT binary patch literal 38010 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 actQCs!`Pyi_dbJwkAaTK%@S? = [ - { - path: '/', - redirect: '/login' - }, { - path: '/login', - name: 'Login', - component: Login - }, { - path: '/home', - name: 'Home', - component: Home - }, { - path: '/pitchers', - name: 'Pitchers', - component: PitcherList - }, { - path: '/bullpen', - name: 'PreparePitch', - component: PreparePitch - }, { - path: '/prepare', - name: 'PreparePitch', - component: PreparePitch - }, { - path: '/finalize', - name: 'FinalizePitch', - component: FinalizePitch - }, { - path: '/stats', - name: 'BullpenStats', - component: BullpenStats - } + { path: '/', redirect: '/login' }, + { path: '/login', component: LoginView }, + { path: '/setup', component: SetupView }, + { path: '/home', component: HomeView }, + { path: '/pitchers', component: PitcherList }, + { path: '/bullpen', component: PreparePitch }, + { path: '/prepare', component: PreparePitch }, + { path: '/finalize', component: FinalizePitch }, + { path: '/stats', component: BullpenStats } ] const router = createRouter({ @@ -47,4 +26,24 @@ const router = createRouter({ routes }) +router.beforeEach((to, from, next) => { + const store = useStore(); + const serverAddress = localStorage.getItem('serverAddress'); + const isAuthenticated = store.state.auth.isAuthenticated; + + if (to.meta.requiresAuth && !isAuthenticated) { + return next('/login'); + } + + if (!serverAddress && to.path !== '/setup') { + return next('/setup'); + } + + if (serverAddress && to.path === '/setup') { + return next('/login'); + } + + next(); +}); + export default router diff --git a/app/src/theme/variables.css b/app/src/theme/variables.css index 131c419..65ef35b 100644 --- a/app/src/theme/variables.css +++ b/app/src/theme/variables.css @@ -1,2 +1,50 @@ /* For information on how to create your own theme, please see: http://ionicframework.com/docs/theming/ */ +/*:root {*/ +/* --ion-background-color: #7c3b6a;*/ +/* --ion-text-color: white;*/ +/* --ion-tab-bar-background: #7c3b6a;*/ +/* --ion-toolbar-background: #7c3b6a;;*/ +/* --ion-toolbar-color: white;*/ +/*}*/ + +.custom-back { + + background-color: rgba(255, 255, 255, 0.1) !important; + border-radius: 5px; + font-size: 0.8rem; + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.custom-button { + + --border-radius: 5px !important; + --background: rgb(236, 149, 35); + --background-activated: rgb(192, 125, 38); + --background-focused: rgb(192, 125, 38); + font-size: 1.2rem; + margin-top: 1rem; +} + +.custom-input { + + --background: #834e76; + --padding-bottom: 1rem; + --padding-top: 1rem; + --padding-start: 1rem; + --padding-end: 1rem; + border-radius: 10px !important; + margin-top: 0.25rem; + transition: all 0.2s linear; +} + +.ion-label { + padding-left: 0.2rem; + padding-right: 0.5rem; + color: #d3a6c7; + display: flex; + justify-content: space-between; + align-content: center; + align-items: center; +} diff --git a/app/src/views/Home.vue b/app/src/views/HomeView.vue similarity index 100% rename from app/src/views/Home.vue rename to app/src/views/HomeView.vue diff --git a/app/src/views/Login.vue b/app/src/views/Login.vue deleted file mode 100644 index 306a3da..0000000 --- a/app/src/views/Login.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - - diff --git a/app/src/views/LoginView.vue b/app/src/views/LoginView.vue new file mode 100644 index 0000000..a59657f --- /dev/null +++ b/app/src/views/LoginView.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/app/src/views/SetupView.vue b/app/src/views/SetupView.vue new file mode 100644 index 0000000..70f054b --- /dev/null +++ b/app/src/views/SetupView.vue @@ -0,0 +1,38 @@ + + + + +