From 78b389e33a4632b609da5a6a01c5099d43264600 Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Thu, 29 Feb 2024 05:08:54 +0100 Subject: [PATCH] Added basic login. --- .gitignore | 3 +- assets/css/inputs.css | 4 +- assets/css/theme.css | 3 +- assets/css/tooltip.css | 258 +- components/header/header.vue | 146 +- package-lock.json | 2770 +++++++++++++++++++++- package.json | 10 +- pages/auth/login/+Page.vue | 186 ++ pages/auth/login/+route.js | 1 + pages/users/@username/+Page.vue | 43 + pages/users/@username/+onBeforeRender.js | 14 + pages/users/@username/+route.js | 1 + renderer/+config.h.js | 2 +- renderer/app.js | 2 + src/api.js | 8 +- src/argv.js | 11 + src/auth.js | 124 + src/users.js | 50 + src/web/auth.js | 49 + src/web/error.js | 26 + src/web/server.js | 31 + 21 files changed, 3553 insertions(+), 189 deletions(-) create mode 100644 pages/auth/login/+Page.vue create mode 100644 pages/auth/login/+route.js create mode 100644 pages/users/@username/+Page.vue create mode 100644 pages/users/@username/+onBeforeRender.js create mode 100644 pages/users/@username/+route.js create mode 100755 src/argv.js create mode 100755 src/auth.js create mode 100755 src/users.js create mode 100755 src/web/auth.js create mode 100755 src/web/error.js diff --git a/.gitignore b/.gitignore index 44bcc34..aef6bde 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules/ dist/ config/* !config/default.*js -log +log/ +media/ diff --git a/assets/css/inputs.css b/assets/css/inputs.css index 3fcd27a..f43e079 100644 --- a/assets/css/inputs.css +++ b/assets/css/inputs.css @@ -10,7 +10,7 @@ &:focus { outline: none; - border-color: var(--primary-faded); + border-color: var(--primary-light-10); } } @@ -52,7 +52,7 @@ } .button-submit { - background: var(--primary-light-30); + background: var(--primary-light-10); color: var(--text-light); &:hover:not(:disabled) { diff --git a/assets/css/theme.css b/assets/css/theme.css index 75e2c9f..5e78036 100644 --- a/assets/css/theme.css +++ b/assets/css/theme.css @@ -1,7 +1,6 @@ :root { --primary: #f65596; - --primary-strong: #f90071; - --primary-faded: #ffcce4; + --primary-light-10: #f075a6; --grey-dark-50: #111; --grey-dark-40: #222; diff --git a/assets/css/tooltip.css b/assets/css/tooltip.css index 6173b5c..d5d95e6 100644 --- a/assets/css/tooltip.css +++ b/assets/css/tooltip.css @@ -1,216 +1,194 @@ -.resize-observer[data-v-b329ee4c] { - position: absolute; - top: 0; - left: 0; - z-index: -1; - width: 100%; - height: 100%; - border: none; - background-color: transparent; - pointer-events: none; - display: block; - overflow: hidden; - opacity: 0 -} - -.resize-observer[data-v-b329ee4c] object { - display: block; - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; - overflow: hidden; - pointer-events: none; - z-index: -1 -} +/* Content */ .v-popper__popper { - z-index: 10000; - top: 0; - left: 0; - outline: none; - max-height: 100%; + z-index: 10000; + top: 0; + left: 0; + outline: none; } .v-popper__popper.v-popper__popper--hidden { - visibility: hidden; - opacity: 0; - transition: opacity .15s, visibility .15s; - pointer-events: none + visibility: hidden; + opacity: 0; + transition: opacity .15s, visibility .15s; + pointer-events: none; } .v-popper__popper.v-popper__popper--shown { - visibility: visible; - opacity: 1; - transition: opacity .15s + visibility: visible; + opacity: 1; + transition: opacity .15s; } .v-popper__popper.v-popper__popper--skip-transition, -.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper { - transition: none !important +.v-popper__popper.v-popper__popper--skip-transition > .v-popper__wrapper { + transition: none !important; } .v-popper__backdrop { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: none + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; } .v-popper__inner { - position: relative; - box-sizing: border-box; - overflow-y: auto + position: relative; + box-sizing: border-box; + overflow-y: auto; } -.v-popper__inner>div { - position: relative; - z-index: 1; - max-width: inherit; - max-height: inherit +.v-popper__inner > div { + position: relative; + z-index: 1; + max-width: inherit; + max-height: inherit; } .v-popper__arrow-container { - position: absolute; - width: 10px; - height: 10px + position: absolute; + width: 10px; + height: 10px; } .v-popper__popper--arrow-overflow .v-popper__arrow-container, .v-popper__popper--no-positioning .v-popper__arrow-container { - display: none + display: none; } .v-popper__arrow-inner, .v-popper__arrow-outer { - border-style: solid; - position: absolute; - top: 0; - left: 0; - width: 0; - height: 0 + border-style: solid; + position: absolute; + top: 0; + left: 0; + width: 0; + height: 0; } .v-popper__arrow-inner { - visibility: hidden; - border-width: 7px + visibility: hidden; + border-width: 7px; } .v-popper__arrow-outer { - border-width: 6px + border-width: 6px; } -.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner, -.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner { - left: -2px +.v-popper__popper[data-popper-placement^="top"] .v-popper__arrow-inner, +.v-popper__popper[data-popper-placement^="bottom"] .v-popper__arrow-inner { + left: -2px; } -.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer, -.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer { - left: -1px +.v-popper__popper[data-popper-placement^="top"] .v-popper__arrow-outer, +.v-popper__popper[data-popper-placement^="bottom"] .v-popper__arrow-outer { + left: -1px; } -.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner, -.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer { - border-bottom-width: 0; - border-left-color: transparent !important; - border-right-color: transparent !important; - border-bottom-color: transparent !important +.v-popper__popper[data-popper-placement^="top"] .v-popper__arrow-inner, +.v-popper__popper[data-popper-placement^="top"] .v-popper__arrow-outer { + border-bottom-width: 0; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; } -.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner { - top: -2px +.v-popper__popper[data-popper-placement^="top"] .v-popper__arrow-inner { + top: -2px; } -.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container { - top: 0 +.v-popper__popper[data-popper-placement^="bottom"] .v-popper__arrow-container { + top: 0; } -.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner, -.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer { - border-top-width: 0; - border-left-color: transparent !important; - border-right-color: transparent !important; - border-top-color: transparent !important +.v-popper__popper[data-popper-placement^="bottom"] .v-popper__arrow-inner, +.v-popper__popper[data-popper-placement^="bottom"] .v-popper__arrow-outer { + border-top-width: 0; + border-left-color: transparent !important; + border-right-color: transparent !important; + border-top-color: transparent !important; } -.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner { - top: -4px +.v-popper__popper[data-popper-placement^="bottom"] .v-popper__arrow-inner { + top: -4px; } -.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer { - top: -6px +.v-popper__popper[data-popper-placement^="bottom"] .v-popper__arrow-outer { + top: -6px; } -.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner, -.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner { - top: -2px +.v-popper__popper[data-popper-placement^="left"] .v-popper__arrow-inner, +.v-popper__popper[data-popper-placement^="right"] .v-popper__arrow-inner { + top: -2px; } -.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer, -.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer { - top: -1px +.v-popper__popper[data-popper-placement^="left"] .v-popper__arrow-outer, +.v-popper__popper[data-popper-placement^="right"] .v-popper__arrow-outer { + top: -1px; } -.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner, -.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer { - border-left-width: 0; - border-left-color: transparent !important; - border-top-color: transparent !important; - border-bottom-color: transparent !important +.v-popper__popper[data-popper-placement^="right"] .v-popper__arrow-inner, +.v-popper__popper[data-popper-placement^="right"] .v-popper__arrow-outer { + border-left-width: 0; + border-left-color: transparent !important; + border-top-color: transparent !important; + border-bottom-color: transparent !important; } -.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner { - left: -4px +.v-popper__popper[data-popper-placement^="right"] .v-popper__arrow-inner { + left: -4px; } -.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer { - left: -6px +.v-popper__popper[data-popper-placement^="right"] .v-popper__arrow-outer { + left: -6px; } -.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container { - right: -10px +.v-popper__popper[data-popper-placement^="left"] .v-popper__arrow-container { + right: -10px; } -.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner, -.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer { - border-right-width: 0; - border-top-color: transparent !important; - border-right-color: transparent !important; - border-bottom-color: transparent !important +.v-popper__popper[data-popper-placement^="left"] .v-popper__arrow-inner, +.v-popper__popper[data-popper-placement^="left"] .v-popper__arrow-outer { + border-right-width: 0; + border-top-color: transparent !important; + border-right-color: transparent !important; + border-bottom-color: transparent !important; } -.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner { - left: -2px +.v-popper__popper[data-popper-placement^="left"] .v-popper__arrow-inner { + left: -2px; } -.v-popper--theme-dropdown .v-popper__inner { - background: #fff; - color: #000; - border-radius: 6px; - border: 1px solid #ddd; - box-shadow: 0 6px 30px #0000001a -} - -.v-popper--theme-dropdown .v-popper__arrow-inner { - visibility: visible; - border-color: #fff -} - -.v-popper--theme-dropdown .v-popper__arrow-outer { - border-color: #ddd -} +/* Tooltip */ .v-popper--theme-tooltip .v-popper__inner { - background: rgba(0, 0, 0, .8); - color: #fff; - border-radius: 6px; - padding: 7px 12px 6px + background: rgba(0, 0, 0, .8); + color: white; + border-radius: 6px; + padding: 7px 12px 6px; } .v-popper--theme-tooltip .v-popper__arrow-outer { - border-color: #000c + border-color: rgba(0, 0, 0, .8); +} + +/* Dropdown */ + +.v-popper--theme-dropdown .v-popper__inner { + background: #fff; + color: black; + border-radius: 6px; + border: 1px solid #ddd; + box-shadow: 0 6px 30px rgba(0, 0, 0, .1); +} + +.v-popper--theme-dropdown .v-popper__arrow-inner { + visibility: visible; + border-color: #fff; +} + +.v-popper--theme-dropdown .v-popper__arrow-outer { + border-color: #ddd; } diff --git a/components/header/header.vue b/components/header/header.vue index f15ec72..313c41c 100644 --- a/components/header/header.vue +++ b/components/header/header.vue @@ -53,36 +53,85 @@ -