From 4c7875aa0d24d34849510fddb6508b5e48965932 Mon Sep 17 00:00:00 2001 From: s-prechtl Date: Tue, 24 Jan 2023 08:29:32 +0100 Subject: [PATCH 01/14] woke worke --- .../pgPromise/HighscoreLeaderboardPgPromiseRepository.ts | 2 +- .../pgPromise/TimeLeaderboardPgPromiseRepository.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/api/src/repositories/pgPromise/HighscoreLeaderboardPgPromiseRepository.ts b/backend/api/src/repositories/pgPromise/HighscoreLeaderboardPgPromiseRepository.ts index 1f00f7d..36c9043 100644 --- a/backend/api/src/repositories/pgPromise/HighscoreLeaderboardPgPromiseRepository.ts +++ b/backend/api/src/repositories/pgPromise/HighscoreLeaderboardPgPromiseRepository.ts @@ -12,7 +12,7 @@ export class HighscoreLeaderboardPgPromiseRepository extends HighscoreLeaderboar async getPage(entriesPerPage, page): Promise { const raw: any = await Database.db.manyOrNone( - 'SELECT * FROM lb_highscore INNER JOIN "user" ON user_id = id ORDER BY rank LIMIT $1 OFFSET $2*$1;', + 'SELECT * FROM lb_highscore INNER JOIN "user" ON user_id = id ORDER BY rank LIMIT $1 OFFSET $2;', [entriesPerPage, page * entriesPerPage] ); return this.serialize(raw); diff --git a/backend/api/src/repositories/pgPromise/TimeLeaderboardPgPromiseRepository.ts b/backend/api/src/repositories/pgPromise/TimeLeaderboardPgPromiseRepository.ts index 705b3f8..b2b2ca8 100644 --- a/backend/api/src/repositories/pgPromise/TimeLeaderboardPgPromiseRepository.ts +++ b/backend/api/src/repositories/pgPromise/TimeLeaderboardPgPromiseRepository.ts @@ -12,7 +12,7 @@ export class TimeLeaderboardPgPromiseRepository extends TimeLeaderboardRepositor async getPage(entriesPerPage: number, page: number): Promise { const raw: any = await Database.db.manyOrNone( - 'SELECT * FROM lb_total_playtime INNER JOIN "user" ON user_id = id ORDER BY rank LIMIT $1 OFFSET $2*$1;', + 'SELECT * FROM lb_total_playtime INNER JOIN "user" ON user_id = id ORDER BY rank LIMIT $1 OFFSET $2;', [entriesPerPage, page * entriesPerPage] ); return this.serialize(raw); From 3befee6fddf94bf517b24ed118b4941bd5dd2136 Mon Sep 17 00:00:00 2001 From: dhain Date: Tue, 24 Jan 2023 09:31:13 +0100 Subject: [PATCH 02/14] removed p5_loading div (display: none and no remove) --- frontend/src/components/Game.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frontend/src/components/Game.vue b/frontend/src/components/Game.vue index 9ce31fe..0fbbed1 100644 --- a/frontend/src/components/Game.vue +++ b/frontend/src/components/Game.vue @@ -58,3 +58,9 @@ export default { }, } + + \ No newline at end of file From 6a94e967e1d2952dbc05164dcb545fa7d184be6f Mon Sep 17 00:00:00 2001 From: s-prechtl Date: Tue, 24 Jan 2023 10:38:12 +0100 Subject: [PATCH 03/14] leaderboard better --- frontend/src/components/Leaderboard.vue | 26 +++++++++++++------- frontend/src/components/LeaderboardEntry.vue | 16 ++++++++---- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/frontend/src/components/Leaderboard.vue b/frontend/src/components/Leaderboard.vue index 2ee7b32..88ba767 100644 --- a/frontend/src/components/Leaderboard.vue +++ b/frontend/src/components/Leaderboard.vue @@ -9,9 +9,12 @@ -
+
+
+ Loading... +
@@ -39,11 +42,7 @@ export default { }, created() { this.updatePage(); - window.addEventListener('itemInserted', (event) => { - if (event.key === 'game-isRunning' && event.value === 'false'){ - this.updatePage(); - } - }, false) + window.addEventListener('itemInserted', event => this.onItemInserted(event), false); }, methods: { async fetchPage() { @@ -54,20 +53,29 @@ export default { return this.type === "totalplaytime" ? "Total Playtime" : "Highscore"; }, nextPage() { + if (this.page.length !== this.entriesPerPage) return; + this.pageNumber++; this.updatePage(); }, prevPage() { - if (this.pageNumber > 0) this.pageNumber--; + if (this.pageNumber <= 0) return; + + this.pageNumber--; this.updatePage(); }, async updatePage() { let tempPage = await this.fetchPage(); for (let i = 0; i < this.entriesPerPage; i++) { - this.page.pop() + this.page.pop(); } for (const entry of tempPage) { - this.page.push(entry) + this.page.push(entry); + } + }, + onItemInserted(event) { + if (event.key === 'game-isRunning' && event.value === 'false') { + this.updatePage(); } } } diff --git a/frontend/src/components/LeaderboardEntry.vue b/frontend/src/components/LeaderboardEntry.vue index 7f37210..d39a95f 100644 --- a/frontend/src/components/LeaderboardEntry.vue +++ b/frontend/src/components/LeaderboardEntry.vue @@ -1,17 +1,18 @@ From ad117b4d2c4e0992ca6288dd885e9d3038fa3674 Mon Sep 17 00:00:00 2001 From: s-prechtl Date: Tue, 31 Jan 2023 08:37:02 +0100 Subject: [PATCH 08/14] Dockerized frontend --- .env.example | 1 + docker-compose.yml | 10 ++++++++++ frontend/.dockerignore | 3 +++ frontend/Dockerfile | 11 +++++++++++ frontend/src/components/Login.vue | 2 +- 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 frontend/.dockerignore create mode 100644 frontend/Dockerfile diff --git a/.env.example b/.env.example index 821e903..f46c8c7 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,6 @@ POSTGRES_PORT=5432 EXPRESS_PORT=3000 +FRONTEND_PORT=8080 POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres diff --git a/docker-compose.yml b/docker-compose.yml index f21adcc..96250c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,3 +21,13 @@ services: ports: - "${EXPRESS_PORT}:3000" + vue: + build: frontend + container_name: frontend + ports: + - "${FRONTEND_PORT}:8080" + + + volumes: + - ./frontend:/app + diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..3298622 --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,3 @@ +node_modules +.gitignore +README.md diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..e8524c9 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,11 @@ +FROM node:18 + +COPY . /app +WORKDIR /app + +RUN npm install + +EXPOSE 8080 + +ENTRYPOINT ["npm", "run", "serve"] + diff --git a/frontend/src/components/Login.vue b/frontend/src/components/Login.vue index d5bf1d5..3be8534 100644 --- a/frontend/src/components/Login.vue +++ b/frontend/src/components/Login.vue @@ -1,7 +1,7 @@