From f61717fcc48fe7039cab5e183da29653e445f691 Mon Sep 17 00:00:00 2001 From: Remi <6680627+riseremi@users.noreply.github.com> Date: Mon, 7 Apr 2025 19:58:46 +0500 Subject: Ask to create admin user on fresh install (#62) * Ask to create admin user on fresh install * Implement client form submitting * minimize diff, simplify impl * Check json typing and clean stuff --------- Co-authored-by: RblSb --- res/css/des.css | 1 - res/css/setup.css | 49 ++++++++++++++++++++++++++++++++++ res/langs/en.json | 6 ++++- res/langs/ru.json | 6 ++++- res/setup.html | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 res/css/setup.css create mode 100644 res/setup.html (limited to 'res') diff --git a/res/css/des.css b/res/css/des.css index 5d90b2c..fa9a50b 100644 --- a/res/css/des.css +++ b/res/css/des.css @@ -48,7 +48,6 @@ body.swap { grid-template-areas: "chat gutter video"; } - @media only screen and (orientation: portrait) { body { display: flex; diff --git a/res/css/setup.css b/res/css/setup.css new file mode 100644 index 0000000..9755ad3 --- /dev/null +++ b/res/css/setup.css @@ -0,0 +1,49 @@ +body { + display: flex; + height: 100vh; + align-items: center; + justify-content: center; +} + +.setup { + margin: auto; + padding: 2rem; + width: 320px; + display: flex; + flex-direction: column; + align-items: center; + + /* debug */ + background-color: #1a1a1f; + border-radius: 0.375rem; + + & h1 { + font-size: 1.75rem; + } +} + +.setup-form { + display: flex; + flex-direction: column; + gap: 1rem; + width: 100%; + + & button { + margin: 0; + padding: .75rem .5rem; + justify-content: center; + background-color: var(--accent); + color: #fff; + + &:hover { + filter: brightness(1.15); + } + } +} + +.form-errors { + display: flex; + flex-direction: column; + gap: 0.5rem; + color: var(--error); +} diff --git a/res/langs/en.json b/res/langs/en.json index b7f8246..1cda8aa 100644 --- a/res/langs/en.json +++ b/res/langs/en.json @@ -17,6 +17,8 @@ "openInApp": "Open in App", "hideThisMessage": "Hide this message", "usernameError": "Username length must be from 1 to $MAX characters and don't repeat another's. Characters &^<>'\" are not allowed.", + "passwordError": "Password length must be from $MIN to $MAX characters.", + "passwordsMismatchError": "Passwords do not match.", "passwordMatchError": "Wrong password.", "accessError": "Access error", "noPermission": "No '$PERMISSION' permission.", @@ -111,5 +113,7 @@ "off": "Off", "areYouSure": "Are you sure?", - "dataWillBeLost": "The data will be lost." + "dataWillBeLost": "The data will be lost.", + + "setupTitle": "Welcome to SyncTube!" } diff --git a/res/langs/ru.json b/res/langs/ru.json index b98237d..f9c5303 100644 --- a/res/langs/ru.json +++ b/res/langs/ru.json @@ -17,6 +17,8 @@ "openInApp": "Открыть в приложении", "hideThisMessage": "Скрыть это сообщение", "usernameError": "Ник должен быть от 1 до $MAX символов и не повторять чужие. Символы &^<>'\" запрещены.", + "passwordError": "Длина пароля должна быть от $MIN до $MAX символов.", + "passwordsMismatchError": "Пароли не совпадают.", "passwordMatchError": "Неправильный пароль.", "accessError": "Ошибка доступа", "noPermission": "Нет '$PERMISSION' разрешения.", @@ -111,5 +113,7 @@ "off": "Откл.", "areYouSure": "Вы уверены?", - "dataWillBeLost": "Данные будут потеряны." + "dataWillBeLost": "Данные будут потеряны.", + + "setupTitle": "Добро пожаловать в SyncTube!" } diff --git a/res/setup.html b/res/setup.html new file mode 100644 index 0000000..5d39518 --- /dev/null +++ b/res/setup.html @@ -0,0 +1,80 @@ + + + + + + + + + + + SyncTube + + + + + + + + +
+

SyncTube

+

Create your admin account

+ +
+ + + + +
+ + +
+
+ + + + + -- cgit v1.2.3