diff --git a/config.json b/config.json index 970af4c..8490de6 100644 --- a/config.json +++ b/config.json @@ -8,7 +8,7 @@ }, "jwt": { "secret": "@S2!q@@wXz$dCQ8JoVsHLpzaJ6JCfB", - "expiresIn": 3600 + "expiresIn": 36000 }, "auth": { "admin": { "password": "A-InnoHUB_2025!", "admin": true }, diff --git a/src/error.html b/src/error.html new file mode 100644 index 0000000..73d0c64 --- /dev/null +++ b/src/error.html @@ -0,0 +1,4 @@ +

Du wurdest automatisch ausgeloggt

+

Lösche deine Cookies aus dem Browser und logge dich neu ein

+

Code %sveltekit.status%

+

%sveltekit.error.message%

diff --git a/src/hooks.server.js b/src/hooks.server.js index 19b1bcc..5ef1fb4 100644 --- a/src/hooks.server.js +++ b/src/hooks.server.js @@ -12,5 +12,5 @@ export async function handle({ event, resolve }) { await event.cookies.delete('session'); event.locals.user = null; } - return resolve(event); + return await resolve(event); } diff --git a/src/lib/helper/caseNumberOccupied.js b/src/lib/helper/caseNumberOccupied.js index 50062e8..a5f3934 100644 --- a/src/lib/helper/caseNumberOccupied.js +++ b/src/lib/helper/caseNumberOccupied.js @@ -3,7 +3,7 @@ import { client } from '$lib/minio'; /** * Check if caseNumber is used * @param {string} caseNumber - * @returns {Promise} */ export default async function caseNumberOccupied(caseNumber) { const prefix = `${caseNumber}/config.json`; diff --git a/src/lib/icons/Add-Process.svelte b/src/lib/icons/Add-Process.svelte new file mode 100644 index 0000000..4a5cebc --- /dev/null +++ b/src/lib/icons/Add-Process.svelte @@ -0,0 +1,19 @@ + + + diff --git a/src/lib/icons/Cube.svelte b/src/lib/icons/Cube.svelte new file mode 100644 index 0000000..4992960 --- /dev/null +++ b/src/lib/icons/Cube.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/lib/icons/Edit.svelte b/src/lib/icons/Edit.svelte new file mode 100644 index 0000000..10f6ddc --- /dev/null +++ b/src/lib/icons/Edit.svelte @@ -0,0 +1,7 @@ + diff --git a/src/lib/icons/File-rect.svelte b/src/lib/icons/File-rect.svelte new file mode 100644 index 0000000..f31a268 --- /dev/null +++ b/src/lib/icons/File-rect.svelte @@ -0,0 +1,35 @@ + + +{#if outline} + + + +{:else} + +{/if} diff --git a/src/lib/icons/Folder.svelte b/src/lib/icons/Folder.svelte new file mode 100644 index 0000000..6d20ec4 --- /dev/null +++ b/src/lib/icons/Folder.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/lib/icons/List-icon.svelte b/src/lib/icons/List-icon.svelte new file mode 100644 index 0000000..c851e89 --- /dev/null +++ b/src/lib/icons/List-icon.svelte @@ -0,0 +1,19 @@ + + + + + diff --git a/src/lib/icons/Profile.svelte b/src/lib/icons/Profile.svelte new file mode 100644 index 0000000..b3b6762 --- /dev/null +++ b/src/lib/icons/Profile.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/routes/(angemeldet)/+layout.svelte b/src/routes/(angemeldet)/+layout.svelte index a2c875c..c42aa61 100644 --- a/src/routes/(angemeldet)/+layout.svelte +++ b/src/routes/(angemeldet)/+layout.svelte @@ -1,6 +1,7 @@ @@ -59,20 +60,9 @@ href="/" class="px-4 py-1 -mr-4 flex items-center justify-center gap-x-2.5 text-sm font-semibold leading-6 text-gray-500 hover:bg-gray-200 hover:text-gray-700" > - - - + + + {data.user.id} diff --git a/src/routes/(angemeldet)/+page.svelte b/src/routes/(angemeldet)/+page.svelte index 7693617..b9a4519 100644 --- a/src/routes/(angemeldet)/+page.svelte +++ b/src/routes/(angemeldet)/+page.svelte @@ -1,10 +1,11 @@ - -
- - - +
Liste @@ -72,20 +60,7 @@
- +
Hinzufügen @@ -98,20 +73,7 @@
- - - +
Ansicht @@ -121,3 +83,6 @@ + + diff --git a/src/routes/(angemeldet)/list/+page.svelte b/src/routes/(angemeldet)/list/+page.svelte index 3f56b0b..a6dec78 100644 --- a/src/routes/(angemeldet)/list/+page.svelte +++ b/src/routes/(angemeldet)/list/+page.svelte @@ -1,12 +1,8 @@ - - @@ -80,32 +74,19 @@
  • - - - + +
    {item.name} + style="padding: 2px" + id="del__{item.name}" + on:click|preventDefault={delete_item} + aria-label="Vorgang {item.name} löschen" + > + +
    + + diff --git a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte index e9a9fd4..0d3ef3a 100644 --- a/src/routes/(angemeldet)/list/[vorgang]/+page.svelte +++ b/src/routes/(angemeldet)/list/[vorgang]/+page.svelte @@ -1,9 +1,3 @@ - -
    @@ -169,134 +170,135 @@
      {#each list as item, i}
    • - -
      - - - -
      +
      + + + +
      + {#if data.user.admin} { - defocus_element(i); - }} - on:keydown|stopPropagation={ - // event needed to identify ID - // TO-DO: check if event is needed or if index is sufficient - async (ev) => {handle_input(ev, i)} - } - - >{item.name} + id="label__{item.name}" + class="text-sm font-semibold leading-6 text-gray-900 inline-block min-w-1" + contenteditable={!item.show_button} + role="textbox" + tabindex="0" + aria-label="Dateiname bearbeiten" + on:focusout={() => { + defocus_element(i); + }} + on:keydown|stopPropagation={// event needed to identify ID + // TO-DO: check if event is needed or if index is sufficient + async (ev) => { + handle_input(ev, i); + }}>{item.name} + + { + handle_input(ev, i); + }} + bind:value={item.name} + id="label__{item.name}" + /> + {#if item.show_button} - + {/if} -

      - {shortenFileSize(item.size)} -

      -
      -
      - - +
      +
    • {/each}
    -Umbenennen {#if inProgress}

    Vorgang läuft...

    @@ -307,5 +309,10 @@
    - + + diff --git a/src/routes/(angemeldet)/upload/+page.svelte b/src/routes/(angemeldet)/upload/+page.svelte index edd6a2d..360a95e 100644 --- a/src/routes/(angemeldet)/upload/+page.svelte +++ b/src/routes/(angemeldet)/upload/+page.svelte @@ -8,6 +8,7 @@ import ModalFooter from '$lib/components/ui/Modal/ModalFooter.svelte'; import shortenFileSize from '$lib/helper/shortenFileSize.js'; import Exclamation from '$lib/icons/Exclamation.svelte'; + import FileRect from '$lib/icons/File-rect.svelte'; export let form; @@ -15,12 +16,9 @@ let inProgress = false; let vorgang = ''; const code_len = 8; - let zugangscode = '' - let zugangscode_prev = ''; - - $: zugangscode = Math.random().toString(36).slice(2, 2+code_len); - - + let zugangscode = Math.random() + .toString(36) + .slice(2, 2 + code_len); let case_existing = undefined; $: case_existing = false; @@ -39,7 +37,7 @@ let data = new FormData(); data.append('vorgang', vorgang); data.append('name', name); - data.append('zugangscode', zugangscode) + data.append('zugangscode', zugangscode); const response = await fetch('?/validate', { method: 'POST', body: data }); /** @type {import('@sveltejs/kit').ActionResult} */ const result = deserialize(await response.text()); @@ -70,7 +68,7 @@ let data = new FormData(); data.append('vorgang', vorgang); data.append('name', name); - data.append('zugangscode', zugangscode) + data.append('zugangscode', zugangscode); if (files?.length === 1) { data.append('type', files[0].type); data.append('fileName', files[0].name); @@ -119,69 +117,58 @@ function swap_endian(val) { // from https://www.geeksforgeeks.org/bit-manipulation-swap-endianness-of-a-number/ - let leftmost_byte = (val & eval(0x000000FF)) >> 0; - let left_middle_byte = (val & eval(0x0000FF00)) >> 8; - let right_middle_byte = (val & eval(0x00FF0000)) >> 16; - let rightmost_byte = (val & eval(0xFF000000)) >> 24; + let leftmost_byte = (val & eval(0x000000ff)) >> 0; + let left_middle_byte = (val & eval(0x0000ff00)) >> 8; + let right_middle_byte = (val & eval(0x00ff0000)) >> 16; + let rightmost_byte = (val & eval(0xff000000)) >> 24; leftmost_byte <<= 24; left_middle_byte <<= 16; right_middle_byte <<= 8; rightmost_byte <<= 0; - let res = (leftmost_byte | left_middle_byte | right_middle_byte | rightmost_byte) + let res = leftmost_byte | left_middle_byte | right_middle_byte | rightmost_byte; - return res + return res; } - async function check_valid_glb_file() { // GLD Header, magic value 0x46546C67, identifies data as binary glTF, 4 bytes // little endian! - const GLD_MAGIC = 0x46546C67; + const GLD_MAGIC = 0x46546c67; // big endian! let file = files[0]; - let file_header = file.slice(0, 4) - let header_bytes = await file_header.bytes() + let file_header = file.slice(0, 4); + let header_bytes = await file_header.bytes(); let file_header_hex = '0x' + header_bytes.toHex().toString(); - if (GLD_MAGIC == swap_endian(file_header_hex)) { return true; } else { return false; } - } // return true or false async function case_exists(case_no) { + console.log('--- fired'); // ping `/(angemeldet)/view` with caseNumber in POST body - let url = '/view' + let url = '/view'; let data = new FormData(); data.append('caseNumber', case_no); - const response = await fetch(url, { - method: 'POST', - body: data, - redirect: 'error' - }) + const response = await fetch(url, { method: 'POST', body: data }); - const res_json = await response.json(); - const status = res_json.status; + const code = response.status; - // aktualisiere Zugangscode mit - if (status == 303) { - // TO-DO: check existing code + console.log(`+++ ${response.redirected}`); - console.log(`+ existiert`) - case_existing = true; - return; + if (code == 303) { + return true; } - case_existing = false; + return false; } -
    @@ -223,9 +210,9 @@ {#if formErrors?.vorgang}

    {formErrors.vorgang}

    {/if} - {#if case_existing && (vorgang.length > 0) } + {#if case_existing && vorgang.length > 0} Datei wird zum existierenden Vorgang hinzugefügt. - {:else if (vorgang.length > 0) } + {:else if vorgang.length > 0} Neuer Vorgang wird angelegt. {/if}
    @@ -295,18 +282,7 @@ class="mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 px-6 py-10" >
    - +