aboutsummaryrefslogtreecommitdiff
path: root/static/pages/settings
diff options
context:
space:
mode:
Diffstat (limited to 'static/pages/settings')
-rw-r--r--static/pages/settings/index.css104
-rw-r--r--static/pages/settings/index.js112
2 files changed, 0 insertions, 216 deletions
diff --git a/static/pages/settings/index.css b/static/pages/settings/index.css
deleted file mode 100644
index dcd952f..0000000
--- a/static/pages/settings/index.css
+++ /dev/null
@@ -1,104 +0,0 @@
-
-#container {
- width: 100%;
- height: 100%;
- background: var(--page-background);
- padding: 40px;
- display: flex;
- flex-flow: column;
- gap: 20px;
- max-width: 700px;
- margin: auto;
-}
-
-#profile-image {
- width: 200px;
- height: 200px;
- position: relative;
- margin: auto;
- margin-top: 50px;
- margin-bottom: 30px;
-}
-
-#image-container {
- background: #fff;
- position: relative;
- border-radius: 100%;
- width: 100%;
- height: 100%;
- top: 0px;
- left: 0px;
- overflow: hidden;
-}
-
-#image-container img {
- visibility: hidden;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- min-width: 100%;
- min-height: 100%;
- width: 100%;
- height: 100%;
- object-fit: cover;
- user-select: none;
-}
-
-#image-container img[src] {
- visibility: visible;
-}
-
-#profile-image #edit-container {
- overflow: unset;
-}
-
-#profile-image #edit {
- position: absolute;
- top: 15px;
- right: 15px;
- background: var(--card-background);
- width: 30px;
- height: 30px;
- padding: 6px;
- border-radius: 100%;
- box-shadow: var(--shadow);
- cursor: pointer;
-}
-
-#info-box {
- width: 100%;
- text-align: center;
- color: var(--fg-disabled);
- font-weight: lighter;
- user-select: none;
-}
-
-#info-box #name {
- font-family: 'Pacifico';
-}
-
-#change-password {
- background: var(--primary);
- padding: 10px;
- border-radius: var(--border-radius);
- color: var(--fg-primary);
- box-shadow: var(--shadow);
- font-weight: bold;
- text-align: center;
- cursor: pointer;
- user-select: none;
-}
-
-#logout {
- padding: 10px;
- width: 100%;
- text-align: center;
- background: #ee5151;
- box-shadow: var(--shadow);
- color: #fff;
- font-weight: bold;
- border-radius: var(--border-radius);
- cursor: pointer;
- user-select: none;
-}
diff --git a/static/pages/settings/index.js b/static/pages/settings/index.js
deleted file mode 100644
index 5cc40be..0000000
--- a/static/pages/settings/index.js
+++ /dev/null
@@ -1,112 +0,0 @@
-import icons from 'icons';
-import * as api from 'api';
-import * as sfw from 'sfw';
-const { Div, Img } = sfw.element.native;
-
-import Editable from '../../widgets/editable/index.js';
-import PasswordDialog from '../../widgets/password-dialog/index.js';
-
-import stylesheet from './index.css';
-
-const css = await sfw.css.sheet(stylesheet);
-
-export default class SettingsView extends sfw.element.Container {
- #profile_image
- #name
- #birthday
-
- #profile
- #change_password
-
- constructor() {
- super({ css });
-
- this.onlogout = () => {};
-
- this.body.append(
- Div.new({
- id: 'container',
- children: [
- Div.new({
- id: 'profile-image',
- children: [
- Div.new({
- id: 'image-container',
- children: [
- this.#profile_image = Img.new(),
- ]
- }),
- Div.new({
- id: 'edit',
- children: [ icons.edit ],
- onclick: async () => {
- const uploader = await api.images.upload_to_profile(this.#profile.name);
- uploader.ondone = async () => {
- const blob = await fetch(
- `/api/profile/image/load/${this.#profile.name}`,
- {cache: 'reload', mode: 'no-cors'}
- ).then(r => r.blob());
-
- this.#profile_image.src = URL.createObjectURL(blob);
- };
- uploader.send()
- }
- }),
- ]
- }),
- this.#name = Editable.new({
- title: 'Name',
- value: '',
- onupdate: () => this.#update(),
- }),
- this.#birthday = Editable.new({
- title: 'Birthday',
- type: 'date',
- value: '',
- onupdate: () => this.#update(),
- }),
- Div.new({
- id: 'change-password',
- innerText: 'Change Password',
- onclick: (e) => {
- e.stopPropagation();
- this.body.append(PasswordDialog.new());
- }
- }),
- Div.new({
- id: 'logout',
- innerText: 'Logout',
- onclick: () => this.onlogout(),
- }),
- Div.new({
- id: 'info-box',
- children: [
- Div.new({ id: 'name', innerText: 'Memora' }),
- Div.new({ id: 'version', innerText: '0.0.1-unstable' }),
- ]
- }),
- ]
- })
- )
- }
-
- #update() {
- api.profile.set(this.#name.value, this.#birthday.value);
- }
-
- set profile(profile) {
- this.#profile = profile;
-
- if (this.#profile) {
- this.#profile_image.src = `/api/profile/image/load/${profile.name}`;
- this.#profile_image.onerror = () => this.#profile_image.removeAttribute('src');
-
- this.#name.value = profile.full_name;
- this.#birthday.value = profile.birthday;
- }
- }
-
- get profile() {
- return this.#profile;
- }
-}