From: PhiTux Date: Sat, 21 Jun 2025 22:00:54 +0000 (+0200) Subject: added feature to select timezone for 'Written at' X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=33a1a17e56c06a1716e2a96ae6c793d7b3dc9c21;p=DailyTxT.git added feature to select timezone for 'Written at' --- diff --git a/backend/server/routers/users.py b/backend/server/routers/users.py index f61bf4e..b543c6f 100644 --- a/backend/server/routers/users.py +++ b/backend/server/routers/users.py @@ -127,7 +127,9 @@ def get_default_user_settings(): "autoloadImagesByDefault": False, "setAutoloadImagesPerDevice": True, "useOnThisDay": True, - "onThisDayYears": [1,5,10] + "onThisDayYears": [1,5,10], + "useBrowserTimezone": True, + "timezone": "UTC" } @router.get("/getUserSettings") @@ -180,35 +182,3 @@ async def save_user_settings(settings: dict, cookie = Depends(isLoggedIn)): raise HTTPException(status_code=500, detail="Internal Server Error when trying to write users.json") from e else: return {"success": True} - - -""" -export const defaultSettings = writable({ - useTrianglify: true, - trianglifyOpacity: 0.4, - trianglifyColor: '', - backgroundColor: '', - autoloadImagesDefault: true, - saveAutoloadImagesPerDevice: true, -}); -""" - - - -""" -{ - "user_id": 1, - "dailytxt-version": 2, - "username": "Marco", - "password": "...", - "salt": "...", - "enc_enc_key": "...", - "LOGIN_ON_EACH_LOAD": false, - "backup_codes": [ - { - "password": "...", - "salt": "...", - "enc_orig_password": "..." - } - ] - }""" \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index db5a44d..e8ceccf 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -15,6 +15,7 @@ "dayjs": "^1.11.13", "emoji-picker-element": "^1.26.1", "marked": "^15.0.6", + "svelte-multiselect": "^11.1.1", "svelte-outside": "^0.0.3", "tiny-markdown-editor": "^0.1.31", "trianglify": "^4.1.1", @@ -45,7 +46,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -677,7 +677,6 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -692,7 +691,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -702,7 +700,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -712,14 +709,12 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1184,7 +1179,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { @@ -1410,7 +1404,6 @@ "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -1433,7 +1426,6 @@ "version": "1.4.13", "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", - "dev": true, "license": "MIT", "peerDependencies": { "acorn": ">=8.9.0" @@ -1538,7 +1530,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" @@ -1565,7 +1556,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" @@ -1731,7 +1721,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2150,7 +2139,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.1.tgz", "integrity": "sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==", - "dev": true, "license": "MIT" }, "node_modules/espree": { @@ -2188,7 +2176,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.3.2.tgz", "integrity": "sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -2680,7 +2667,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.6" @@ -2782,7 +2768,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true, "license": "MIT" }, "node_modules/locate-path": { @@ -2812,7 +2797,6 @@ "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -3759,7 +3743,6 @@ "version": "5.16.0", "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.16.0.tgz", "integrity": "sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==", - "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", @@ -3951,6 +3934,15 @@ "svelte": "^4.0.0 || ^5.0.0" } }, + "node_modules/svelte-multiselect": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/svelte-multiselect/-/svelte-multiselect-11.1.1.tgz", + "integrity": "sha512-G9rhfpMVYxnfT1XMqVsmAV91TYhUwKgAIPXxe5QSVwNGmr6po8L/Vjmqrd8nmANYdM6anmPqi3eRX9W1KrgXLw==", + "license": "MIT", + "peerDependencies": { + "svelte": "^5.8.0" + } + }, "node_modules/svelte-outside": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/svelte-outside/-/svelte-outside-0.0.3.tgz", @@ -4295,7 +4287,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", - "dev": true, "license": "MIT" } } diff --git a/frontend/package.json b/frontend/package.json index dcef1be..61ef0b5 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -39,6 +39,7 @@ "dayjs": "^1.11.13", "emoji-picker-element": "^1.26.1", "marked": "^15.0.6", + "svelte-multiselect": "^11.1.1", "svelte-outside": "^0.0.3", "tiny-markdown-editor": "^0.1.31", "trianglify": "^4.1.1", diff --git a/frontend/src/lib/SelectTimezone.svelte b/frontend/src/lib/SelectTimezone.svelte new file mode 100644 index 0000000..d644d6d --- /dev/null +++ b/frontend/src/lib/SelectTimezone.svelte @@ -0,0 +1,37 @@ + + + + + diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index 9512689..7812a3a 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -31,6 +31,7 @@ faTrash } from '@fortawesome/free-solid-svg-icons'; import Tag from '$lib/Tag.svelte'; + import SelectTimezone from '$lib/SelectTimezone.svelte'; let { children } = $props(); let inDuration = 150; @@ -720,12 +721,58 @@ blub
+ {#if $tempSettings.useBrowserTimezone !== $settings.useBrowserTimezone || ($tempSettings.timezone !== undefined && $tempSettings.timezone?.value !== $settings.timezone?.value)} +
+ {/if}
Zeitzone
- Bla
- blub
- bla
- blub
+ Stelle die Zeitzone ein, die für den Timestamp ("Geschrieben am") genutzt werden + soll. + +
+ + +
+ Aktuell: {new Intl.DateTimeFormat().resolvedOptions().timeZone} +
+
+ + +
+ + {#if !$tempSettings.useBrowserTimezone} + + Ausgewählt: {$tempSettings.timezone} + + {/if} +
+ +
+ Wenn man auf Reisen ist, kann es sinnvoll sein, die Zeitzone anhand des + Browsers zu ermitteln. Dann werden Datum und Uhrzeit am Zielort + vorraussichtlich besser erkannt.
+ Wenn man hingegen zuhause im privaten Browser teils andere Zeitzonen (z. B. immer + UTC) verwendet, kann es sinnvoll sein, hier eine bestimmte Zeitzone festzulegen. +
+
{#if $tempSettings.useOnThisDay !== $settings.useOnThisDay || JSON.stringify(onThisDayYears .trim() @@ -795,8 +842,10 @@ bla
blub
+ -

Tags

+
+

Tags

Hier können Tags bearbeitet oder auch vollständig aus DailyTxT gelöscht werden.
@@ -840,98 +889,54 @@ {/each}
+
-
-

Vorlagen

-
- {#if oldTemplateName !== templateName || oldTemplateText !== templateText} -
- {/if} +
+

Vorlagen

+
+ {#if oldTemplateName !== templateName || oldTemplateText !== templateText} +
+ {/if} -
- + + {#each $templates as template, index} + - {#each $templates as template, index} - - {/each} - -
+ {/each} + +
-
+
- {#if confirmDeleteTemplate} -
- Vorlage {$templates[selectedTemplate].name} wirklich löschen? - - -
- {/if} -
- + {#if confirmDeleteTemplate} +
+ Vorlage {$templates[selectedTemplate].name} wirklich löschen? (confirmDeleteTemplate = false)}>Abbrechen -
- -
+ {/if} +
+ + +
+ +
+
+
-
-

Daten

-
Export
-
Import
-
+
+

Daten

+
Export
+
Import
+
-
-

Sicherheit

-
Password ändern
-
Backup-Keys
-
Username ändern
-
Konto löschen
-
+
+

Sicherheit

+
Password ändern
+
Backup-Keys
+
Username ändern
+
Konto löschen
+
-
-

About

- Version:
- Changelog:
- Link zu github -
+
+

About

+ Version:
+ Changelog:
+ Link zu github
@@ -987,128 +1036,127 @@ {/if} - - -
-