From 5fda34fef93f31ef976e5c36bb57a99eeae12b55 Mon Sep 17 00:00:00 2001 From: dhain Date: Mon, 26 Sep 2022 19:03:45 +0200 Subject: [PATCH 1/6] bootstrap icons dependency --- frontend/svelte/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/svelte/package.json b/frontend/svelte/package.json index 3086444..0926410 100644 --- a/frontend/svelte/package.json +++ b/frontend/svelte/package.json @@ -19,5 +19,8 @@ "typescript": "^4.7.4", "vite": "^3.1.0" }, - "type": "module" + "type": "module", + "dependencies": { + "bootstrap-icons": "^1.9.1" + } } From 1c1d758ab15b2d132417cf15621ec922e1d33871 Mon Sep 17 00:00:00 2001 From: dhain Date: Mon, 26 Sep 2022 23:07:39 +0200 Subject: [PATCH 2/6] jwt oba nix geht --- .../api/note/content-types/note/schema.json | 5 ++- frontend/svelte/src/models/PomeloUtils.ts | 14 ++++++- frontend/svelte/src/routes/+page.svelte | 41 ++++++------------- frontend/svelte/src/routes/+page.ts | 17 ++++++++ 4 files changed, 45 insertions(+), 32 deletions(-) create mode 100644 frontend/svelte/src/routes/+page.ts diff --git a/backend/strapi/src/api/note/content-types/note/schema.json b/backend/strapi/src/api/note/content-types/note/schema.json index 5c0c29b..356eed2 100644 --- a/backend/strapi/src/api/note/content-types/note/schema.json +++ b/backend/strapi/src/api/note/content-types/note/schema.json @@ -21,8 +21,9 @@ }, "owners": { "type": "relation", - "relation": "oneToMany", - "target": "plugin::users-permissions.user" + "relation": "manyToMany", + "target": "plugin::users-permissions.user", + "inversedBy": "notes" }, "lastViewed": { "type": "datetime", diff --git a/frontend/svelte/src/models/PomeloUtils.ts b/frontend/svelte/src/models/PomeloUtils.ts index 62c9903..e61190e 100644 --- a/frontend/svelte/src/models/PomeloUtils.ts +++ b/frontend/svelte/src/models/PomeloUtils.ts @@ -1,3 +1,5 @@ +import {parseCookies} from "nookies"; + /** * Capitalises first letter of string. * @param str @@ -18,4 +20,14 @@ export async function bearerFetch(endpoint: string, jwt: string, baseUrl: string Authorization: `Bearer ${jwt}` } }); -} \ No newline at end of file +} + + +const getJwtCookie = () => { + return parseCookies("/").jwt; +}; + +/** + * JWT Cookie + */ +export const jwt: string = getJwtCookie(); \ No newline at end of file diff --git a/frontend/svelte/src/routes/+page.svelte b/frontend/svelte/src/routes/+page.svelte index 871b615..491a930 100644 --- a/frontend/svelte/src/routes/+page.svelte +++ b/frontend/svelte/src/routes/+page.svelte @@ -1,40 +1,23 @@ diff --git a/frontend/svelte/src/routes/+page.ts b/frontend/svelte/src/routes/+page.ts index 6f6de71..7dead99 100644 --- a/frontend/svelte/src/routes/+page.ts +++ b/frontend/svelte/src/routes/+page.ts @@ -12,6 +12,6 @@ export async function load({params}) { } if (invalid) { - window.location = "/login"; + // window.location = "/login"; } } \ No newline at end of file diff --git a/frontend/svelte/src/routes/editor/+page.svelte b/frontend/svelte/src/routes/editor/+page.svelte index eeab65c..b8f0b1a 100644 --- a/frontend/svelte/src/routes/editor/+page.svelte +++ b/frontend/svelte/src/routes/editor/+page.svelte @@ -1,5 +1,5 @@ @@ -113,12 +113,15 @@ +
+
+
{#if notes.length !== 0} @@ -127,13 +130,16 @@
  • handleMouseOverLi(note.id)} on:mouseout={() => handleMouseOutLi(note.id)}>
    -
    onNoteLiClick(note)}> - - {note.attributes.title}
    - {note.attributes.lastViewed} -
    +
    onNoteLiClick(note)}> +
    + {note.attributes.title} +
    +
    + {note.attributes.lastViewed} +
    -
    + +
    +
    @@ -153,6 +160,7 @@ html, :root { --main-txt-color: black; + --sub-txt-color: gray; --cross-txt-color: red; --color-primary: #fff494; @@ -169,19 +177,23 @@ background-color: #ffffff; } - a { - color: var(--main-txt-color); - text-decoration: none; - } - li { list-style: none; padding: 6px 10px; + margin-bottom: 5px; + margin-top: 5px; border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + border-radius: 10px; border-bottom-color: var(--color-primary-900); + border-top-color: var(--color-primary-900); background-color: var(--color-primary-600); } + li:hover { + background-color: var(--color-primary-700); + } + li button { float: right; border: none; @@ -190,10 +202,11 @@ margin: 0; font-size: 18px; cursor: pointer; + transform: scale(1.5); } li button:hover { - transform: scale(1.7); + transform: scale(2); } li:last-child { @@ -219,4 +232,8 @@ border: var(--color-primary-900); color: var(--main-txt-color); } + + .list-date-text { + color: var(--sub-txt-color); + } \ No newline at end of file diff --git a/frontend/svelte/src/routes/+page.ts b/frontend/svelte/src/routes/+page.ts index b73412f..e5159f4 100644 --- a/frontend/svelte/src/routes/+page.ts +++ b/frontend/svelte/src/routes/+page.ts @@ -1,5 +1,5 @@ import {bearerFetch, jwt} from "../models/PomeloUtils"; - +// // /** @type {import('./$types').PageLoad} */ // export async function load() { // let invalid = !jwt; From 982f845cfcf28852752078a4f48e721525a21588 Mon Sep 17 00:00:00 2001 From: dhain Date: Tue, 4 Oct 2022 10:25:06 +0200 Subject: [PATCH 6/6] listing cums from strap NO MORE local json &str date in listing very butiful --- frontend/svelte/src/models/PomeloUtils.ts | 1 + frontend/svelte/src/routes/+page.svelte | 144 ++++++++++++---------- frontend/svelte/src/routes/+page.ts | 36 +++--- 3 files changed, 97 insertions(+), 84 deletions(-) diff --git a/frontend/svelte/src/models/PomeloUtils.ts b/frontend/svelte/src/models/PomeloUtils.ts index e61190e..5d290ae 100644 --- a/frontend/svelte/src/models/PomeloUtils.ts +++ b/frontend/svelte/src/models/PomeloUtils.ts @@ -24,6 +24,7 @@ export async function bearerFetch(endpoint: string, jwt: string, baseUrl: string const getJwtCookie = () => { + // @ts-ignore return parseCookies("/").jwt; }; diff --git a/frontend/svelte/src/routes/+page.svelte b/frontend/svelte/src/routes/+page.svelte index 060fd09..f52d418 100644 --- a/frontend/svelte/src/routes/+page.svelte +++ b/frontend/svelte/src/routes/+page.svelte @@ -1,20 +1,28 @@ @@ -114,45 +123,45 @@
    -
    - -
    - +
    + +
    + +
    -
    -
    -
    - {#if notes.length !== 0} - -
      - {#each notes as note} -
    • handleMouseOverLi(note.id)} - on:mouseout={() => handleMouseOutLi(note.id)}> -
      -
      onNoteLiClick(note)}> -
      - {note.attributes.title} +
      +
      + {#if notes} + +
        + {#each notes as note} +
      • handleMouseOverLi(note.id)} + on:mouseout={() => handleMouseOutLi(note.id)}> +
        +
        onNoteLiClick(note)}> +
        + {note.attributes.title} +
        +
        + {note.attributes.lastViewed.toLocaleDateString()} +
        -
        - {note.attributes.lastViewed} + +
        +
        - -
        - -
        -
        -
      • - {/each} -
      - {/if} +
    • + {/each} +
    + {/if} +
    -
    @@ -235,5 +244,6 @@ .list-date-text { color: var(--sub-txt-color); + font-size: 0.8314159265358979323846264338rem; } \ No newline at end of file diff --git a/frontend/svelte/src/routes/+page.ts b/frontend/svelte/src/routes/+page.ts index e5159f4..49e20b3 100644 --- a/frontend/svelte/src/routes/+page.ts +++ b/frontend/svelte/src/routes/+page.ts @@ -1,18 +1,20 @@ import {bearerFetch, jwt} from "../models/PomeloUtils"; -// -// /** @type {import('./$types').PageLoad} */ -// export async function load() { -// let invalid = !jwt; -// -// if (!invalid) { -// const request = await bearerFetch("/users/me", jwt); -// const response = await request.json(); -// -// invalid = "error" in response; -// } -// -// if (invalid) { -// // @ts-ignore -// window.location = "/login"; -// } -// } \ No newline at end of file + +/** @type {import('./$types').PageLoad} */ +export async function load() { + let invalid = !jwt; + + if (!invalid) { + const request = await bearerFetch("/users/me", jwt); + const response = await request.json(); + + invalid = "error" in response; + } + + if (invalid) { + if (typeof window !== 'undefined') { + // @ts-ignore + window.location = "/login"; + } + } +} \ No newline at end of file