From 1e2a92eaebf79d3d5acf2180ba3cdb19cd82e2c6 Mon Sep 17 00:00:00 2001 From: Florian Reichelt | Fllooo Date: Wed, 12 Jun 2024 23:29:04 +0200 Subject: [PATCH 1/2] chore: import tailwind in every file by default With this commit tailwind will be active in every file, the layout has been slightly adapted. --- .vscode/settings.json | 2 +- compose.dev.yml | 6 +- server/src/controllers/diary.controller.ts | 4 +- server/src/dto/diary.dto.ts | 6 +- server/src/main.ts | 1 - ...15629091268-ChangeDiaryRatingMinAndType.ts | 5 +- web/package-lock.json | 2 +- web/package.json | 2 +- web/src/lib/Navbar.svelte | 48 ++-- web/src/lib/Sidebar.svelte | 131 +++++------ web/src/lib/UserPageLayout.svelte | 42 ++-- .../shared-components/selector.svelte | 212 ++++++++++++++++++ .../shared-components/sidebar-link.svelte | 138 ++++++++++++ .../shared-components/sidebar-section.svelte | 10 + web/src/lib/modals/CustomModal.svelte | 40 ++++ web/src/lib/modals/EditDiaryModal.svelte | 5 +- web/src/lib/tailwind.css | 19 +- web/src/routes/+layout.svelte | 1 + web/src/routes/diary/+page.svelte | 16 +- web/tailwind.config.cjs | 18 +- 20 files changed, 562 insertions(+), 146 deletions(-) create mode 100644 web/src/lib/components/shared-components/selector.svelte create mode 100644 web/src/lib/components/shared-components/sidebar-link.svelte create mode 100644 web/src/lib/components/shared-components/sidebar-section.svelte create mode 100644 web/src/lib/modals/CustomModal.svelte diff --git a/.vscode/settings.json b/.vscode/settings.json index 81e09e4..124f400 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,7 @@ "[javascript][typescript][css]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabSize": 4, - "editor.formatOnSave": false + "editor.formatOnSave": true }, "[svelte]": { "editor.defaultFormatter": "svelte.svelte-vscode", diff --git a/compose.dev.yml b/compose.dev.yml index b832663..d29a910 100644 --- a/compose.dev.yml +++ b/compose.dev.yml @@ -3,7 +3,7 @@ services: container_name: PRM-Server hostname: prm-server restart: unless-stopped - build: + build: dockerfile: server/Dockerfile target: dev ports: @@ -34,7 +34,9 @@ services: database: hostname: postgres container_name: PRM-Postgres - image: tensorchord/pgvecto-rs:pg14-v0.2.1 + image: tensorchord/pgvecto-rs:pg14-v0.2.1-rootless + user: 1000:1000 + restart: always env_file: - .env environment: diff --git a/server/src/controllers/diary.controller.ts b/server/src/controllers/diary.controller.ts index 2389b60..15cdbd1 100644 --- a/server/src/controllers/diary.controller.ts +++ b/server/src/controllers/diary.controller.ts @@ -4,7 +4,7 @@ import { AuthDto } from 'src/dto/auth.dto'; import { DiaryCreateDto, DiaryEditDto, DiaryResponseDto } from 'src/dto/diary.dto'; import { Auth, Authenticated } from 'src/middlewares/auth.guard'; import { DiaryService } from 'src/services/diary.service'; -import { DateParamDto, UUIDParamDto } from 'src/validation'; +import { DateParamDto } from 'src/validation'; @ApiTags('Diary') @Controller('diary') @@ -39,4 +39,4 @@ export class DiaryController { async getAllDiaries(@Auth() auth: AuthDto) { return this.service.getAll(auth); } -} \ No newline at end of file +} diff --git a/server/src/dto/diary.dto.ts b/server/src/dto/diary.dto.ts index cfa6c83..d00f169 100644 --- a/server/src/dto/diary.dto.ts +++ b/server/src/dto/diary.dto.ts @@ -32,7 +32,7 @@ export class DiaryCreateDto { @IsString() @IsNotEmpty() - @ApiProperty({type: 'string', example: 'RSA'}) + @ApiProperty({ type: 'string', example: 'RSA' }) encryption: DiaryEncryption; } @@ -88,6 +88,6 @@ export class DiaryEditDto { @IsString() @IsNotEmpty() - @ApiProperty({type: 'string', example: 'RSA'}) + @ApiProperty({ type: 'string', example: 'RSA' }) encryption: DiaryEncryption; -} \ No newline at end of file +} diff --git a/server/src/main.ts b/server/src/main.ts index 3a0a0c1..234255c 100644 --- a/server/src/main.ts +++ b/server/src/main.ts @@ -28,7 +28,6 @@ async function bootstrap() { app.useLogger(app.get(PRMLogger)); // app.use(json({ limit: '10mb' })); app.use(cookieParser()); - app.enableCors(); app.setGlobalPrefix('api'); if (isDev) { diff --git a/server/src/migrations/1715629091268-ChangeDiaryRatingMinAndType.ts b/server/src/migrations/1715629091268-ChangeDiaryRatingMinAndType.ts index b743355..97315bd 100644 --- a/server/src/migrations/1715629091268-ChangeDiaryRatingMinAndType.ts +++ b/server/src/migrations/1715629091268-ChangeDiaryRatingMinAndType.ts @@ -1,7 +1,7 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; +import { MigrationInterface, QueryRunner } from 'typeorm'; export class ChangeDiaryRatingMinAndType1715629091268 implements MigrationInterface { - name = 'ChangeDiaryRatingMinAndType1715629091268' + name = 'ChangeDiaryRatingMinAndType1715629091268'; public async up(queryRunner: QueryRunner): Promise { await queryRunner.query(`ALTER TABLE "diary" DROP COLUMN "rating"`); @@ -12,5 +12,4 @@ export class ChangeDiaryRatingMinAndType1715629091268 implements MigrationInterf await queryRunner.query(`ALTER TABLE "diary" DROP COLUMN "rating"`); await queryRunner.query(`ALTER TABLE "diary" ADD "rating" integer`); } - } diff --git a/web/package-lock.json b/web/package-lock.json index 264ed7d..44c8d26 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -35,7 +35,7 @@ "@typescript-eslint/parser": "^7.1.0", "@vitest/coverage-v8": "^1.3.1", "autoprefixer": "^10.4.17", - "eslint": "^8.57.0", + "eslint": "^8.42.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", "eslint-plugin-unicorn": "^52.0.0", diff --git a/web/package.json b/web/package.json index 166738e..a848960 100644 --- a/web/package.json +++ b/web/package.json @@ -39,7 +39,7 @@ "@typescript-eslint/parser": "^7.1.0", "@vitest/coverage-v8": "^1.3.1", "autoprefixer": "^10.4.17", - "eslint": "^8.57.0", + "eslint": "^8.42.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", "eslint-plugin-unicorn": "^52.0.0", diff --git a/web/src/lib/Navbar.svelte b/web/src/lib/Navbar.svelte index 4775e4d..633bcfe 100644 --- a/web/src/lib/Navbar.svelte +++ b/web/src/lib/Navbar.svelte @@ -1,38 +1,18 @@ - -
-

PRM

-
+ - +
+
+ + + diff --git a/web/src/lib/Sidebar.svelte b/web/src/lib/Sidebar.svelte index a2acbf8..2f005e4 100644 --- a/web/src/lib/Sidebar.svelte +++ b/web/src/lib/Sidebar.svelte @@ -1,69 +1,78 @@ -
- - - -
{ - currentTab = 'home'; - goto('/'); - }} - role="button" - > - -

Home

-
- - - - -
{ - currentTab = 'diary'; - goto('/diary'); - }} - role="button" - > - -

Diary

-
- -
+ + + +
+ +
+ diff --git a/web/src/lib/components/shared-components/selector.svelte b/web/src/lib/components/shared-components/selector.svelte new file mode 100644 index 0000000..6390d4e --- /dev/null +++ b/web/src/lib/components/shared-components/selector.svelte @@ -0,0 +1,212 @@ + + + + +
+
{@html content}
+ + {#if $showSuggestions} +
+ {#each $suggestions as contact, index} +
selectSuggestion(contact)} + > + {`${contact.name} ${contact.lastname}`} +
+ {/each} +
+ {/if} +
diff --git a/web/src/lib/components/shared-components/sidebar-link.svelte b/web/src/lib/components/shared-components/sidebar-link.svelte new file mode 100644 index 0000000..6b912de --- /dev/null +++ b/web/src/lib/components/shared-components/sidebar-link.svelte @@ -0,0 +1,138 @@ + + +
+ + + +
{ + currentTab = 'home'; + goto('/'); + }} + role="button" + > + +

Home

+
+ + + + +
{ + currentTab = 'diary'; + goto('/diary'); + }} + role="button" + > + +

Diary

+
+ +
+ + \ No newline at end of file diff --git a/web/src/lib/components/shared-components/sidebar-section.svelte b/web/src/lib/components/shared-components/sidebar-section.svelte new file mode 100644 index 0000000..949b42b --- /dev/null +++ b/web/src/lib/components/shared-components/sidebar-section.svelte @@ -0,0 +1,10 @@ + + + diff --git a/web/src/lib/modals/CustomModal.svelte b/web/src/lib/modals/CustomModal.svelte new file mode 100644 index 0000000..bb8ad11 --- /dev/null +++ b/web/src/lib/modals/CustomModal.svelte @@ -0,0 +1,40 @@ + + + (showModal = false)}> +
+ {#if showCloseButton} +
+ +
+ {/if} + +
+
+ + diff --git a/web/src/lib/modals/EditDiaryModal.svelte b/web/src/lib/modals/EditDiaryModal.svelte index 4844b44..bd9c535 100644 --- a/web/src/lib/modals/EditDiaryModal.svelte +++ b/web/src/lib/modals/EditDiaryModal.svelte @@ -65,11 +65,10 @@ final_enc_algo = enc_algo; } - var submitBody = await JSON.stringify({ + var submitBody = JSON.stringify({ content: editDiary.content, date: editDiary.date, rating: editDiary.rating, - encryption: final_enc_algo, }); const editfetch = await fetch(hosturl + '/api/diary/' + orig_date, { @@ -87,7 +86,7 @@ } } - async function ratelimitEditDiary() { + function ratelimitEditDiary() { setTimeout(() => { submitState = 'idle'; }, 3200); diff --git a/web/src/lib/tailwind.css b/web/src/lib/tailwind.css index 7d79447..b8a6c22 100644 --- a/web/src/lib/tailwind.css +++ b/web/src/lib/tailwind.css @@ -8,12 +8,27 @@ --prm-primary: 32 32 32; --prm-secondary: 0 211 0; } + + * { + /* @apply text-white */ + } } -:body { - margin: 0; +:root { + font-family: 'Roberto', sans-serif; + /* Used by layouts to ensure proper spacing between navbar and content */ + --navbar-height: calc(theme(spacing.18) + 4px); } +html { + height: 100%; + width: 100%; + font-size: 17px; +} + +body { + margin: 0; +} @layer utilities { .prm-form-input { @apply rounded-xl p-3 text-white text-sm outline-green-700 outline outline-2 transition-all ease-in-out focus:outline-prm-secondary focus:outline-4 bg-prm-primary disabled:cursor-not-allowed; diff --git a/web/src/routes/+layout.svelte b/web/src/routes/+layout.svelte index 5cca22e..cee80ae 100644 --- a/web/src/routes/+layout.svelte +++ b/web/src/routes/+layout.svelte @@ -1,5 +1,6 @@ diff --git a/web/src/routes/diary/+page.svelte b/web/src/routes/diary/+page.svelte index d08fcd2..dad7314 100644 --- a/web/src/routes/diary/+page.svelte +++ b/web/src/routes/diary/+page.svelte @@ -96,7 +96,7 @@ } } - async function ratelimitSubmitNewDiary() { + function ratelimitSubmitNewDiary() { setTimeout(() => { submitState = 'idle'; }, 3200); @@ -113,7 +113,9 @@ const diaryjson = await fetchres.json(); diaries = diaryjson.diaries; - if (diaries.length == 0) noDiaries = true; + if (diaries.length == 0) { + noDiaries = true; + } for (let i = 0; i < diaries.length; i++) { let date = diaries[i].date; @@ -217,7 +219,7 @@ {/each} -
+
@@ -299,7 +301,7 @@ role="button" tabindex="-1" class="fa star" - class:filledstar={star <= selectedStars || star - 0.5 === selectedStars} + class:text-orange-400={star <= selectedStars || star - 0.5 === selectedStars} on:click={() => selectStars(star)} > {#if star - 0.5 === selectedStars} @@ -324,7 +326,7 @@ -