From 4d4116ae9846c2b758bc7800191329a6cdf49bb7 Mon Sep 17 00:00:00 2001 From: Florian Sylvain Date: Wed, 21 Dec 2022 04:19:19 +0100 Subject: [PATCH] Login page implementation --- web/admin-gui/src/App.vue | 2 +- web/admin-gui/src/assets/base.css | 76 ++++++++++++++++++++++ web/admin-gui/src/assets/main.css | 0 web/admin-gui/src/main.ts | 3 +- web/admin-gui/src/router/index.ts | 12 ++++ web/admin-gui/src/stores/AuthStore.ts | 15 +++++ web/admin-gui/src/views/Debug.vue | 63 ++++++++++++++++++ web/admin-gui/src/views/Home.vue | 68 -------------------- web/admin-gui/src/views/Login.vue | 92 +++++++++++++++++++++++++++ 9 files changed, 260 insertions(+), 71 deletions(-) create mode 100644 web/admin-gui/src/assets/base.css delete mode 100644 web/admin-gui/src/assets/main.css create mode 100644 web/admin-gui/src/stores/AuthStore.ts create mode 100644 web/admin-gui/src/views/Debug.vue create mode 100644 web/admin-gui/src/views/Login.vue diff --git a/web/admin-gui/src/App.vue b/web/admin-gui/src/App.vue index a78fb6f..873260d 100644 --- a/web/admin-gui/src/App.vue +++ b/web/admin-gui/src/App.vue @@ -3,5 +3,5 @@ import { RouterView } from 'vue-router' diff --git a/web/admin-gui/src/assets/base.css b/web/admin-gui/src/assets/base.css new file mode 100644 index 0000000..dcce1a6 --- /dev/null +++ b/web/admin-gui/src/assets/base.css @@ -0,0 +1,76 @@ +@import url('https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@500&family=Hind:wght@400;500;600;700&family=Nunito:wght@500;600;700&display=swap'); + +:root { + --regular-weight: 400; + --medium-weight: 500; + --semibold-weight: 600; + --bold-weight: 700; + + --radius: 10px; + + --primary: #2CD358; + --primary-dark: #00BA2A; + --primary-light: #97E6A2; + --secondary: #D32CA6; + --secondary-dark: #BA0094; + --secondary-light: #E88DCA; + --neutral-dark: #121212; + --neutral-light: #aaaaaa; +} + +body { + margin: 0; +} + +h1 { + font-family: 'Frank Ruhl Libre', serif; +} + +h2, h3, h4, h5, h6 { + font-family: 'Nunito', sans-serif; +} + +* { + font-family: 'Hind', sans-serif; + box-sizing: border-box; + + color: var(--neutral-dark); +} + +.label-input { + display: flex; + flex-direction: column; +} + +.label-input label { + font-weight: var(--medium-weight); +} + +.label-input input { + height: 32px; + padding: 0 8px; + + border: solid 1.25px var(--neutral-light); + border-radius: var(--radius); +} + +.button-primary { + border-radius: var(--radius); + border: none; + + height: 32px; + + background-color: var(--primary); + + font-weight: var(--medium-weight); + + cursor: pointer; +} + +.button-primary:hover { + background-color: var(--primary-light); +} + +.button-primary:active { + background-color: var(--primary-dark); +} \ No newline at end of file diff --git a/web/admin-gui/src/assets/main.css b/web/admin-gui/src/assets/main.css deleted file mode 100644 index e69de29..0000000 diff --git a/web/admin-gui/src/main.ts b/web/admin-gui/src/main.ts index 04c759b..3fc43b4 100644 --- a/web/admin-gui/src/main.ts +++ b/web/admin-gui/src/main.ts @@ -1,11 +1,10 @@ import { createApp } from 'vue' import { createPinia } from 'pinia' - import App from './App.vue' import router from './router' -import './assets/main.css' +import '@/assets/base.css' const app = createApp(App) diff --git a/web/admin-gui/src/router/index.ts b/web/admin-gui/src/router/index.ts index 174e21a..c7b76d2 100644 --- a/web/admin-gui/src/router/index.ts +++ b/web/admin-gui/src/router/index.ts @@ -1,5 +1,7 @@ import { createRouter, createWebHistory } from 'vue-router' import Home from '@/views/Home.vue' +import Debug from '@/views/Debug.vue' +import Login from '@/views/Login.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -9,6 +11,16 @@ const router = createRouter({ name: 'home', component: Home }, + { + path: '/debug', + name: 'debug', + component: Debug + }, + { + path: '/login', + name: 'login', + component: Login + }, ] }) diff --git a/web/admin-gui/src/stores/AuthStore.ts b/web/admin-gui/src/stores/AuthStore.ts new file mode 100644 index 0000000..387723d --- /dev/null +++ b/web/admin-gui/src/stores/AuthStore.ts @@ -0,0 +1,15 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; + +export interface jwtFormat { + code: number, + expire: string, + token: string +} + +export const useAuthStore = defineStore("AuthStore", () => { + const expire = ref("") + const token = ref("") + + return { expire, token } +}) \ No newline at end of file diff --git a/web/admin-gui/src/views/Debug.vue b/web/admin-gui/src/views/Debug.vue new file mode 100644 index 0000000..d4bb27b --- /dev/null +++ b/web/admin-gui/src/views/Debug.vue @@ -0,0 +1,63 @@ + + + diff --git a/web/admin-gui/src/views/Home.vue b/web/admin-gui/src/views/Home.vue index 591a6e5..96c0baf 100644 --- a/web/admin-gui/src/views/Home.vue +++ b/web/admin-gui/src/views/Home.vue @@ -1,77 +1,9 @@ \ No newline at end of file