diff --git a/extension/bwcontest/package-lock.json b/extension/bwcontest/package-lock.json index d64becd..baccdbd 100644 --- a/extension/bwcontest/package-lock.json +++ b/extension/bwcontest/package-lock.json @@ -8,7 +8,7 @@ "name": "bwcontest", "version": "0.0.1", "dependencies": { - "@vscode/vsce": "^2.20.1", + "@vscode/vsce": "^2.21.0", "axios": "^1.5.0", "fs-extra": "^11.1.1", "tree-kill": "^1.2.2" @@ -24,20 +24,20 @@ "@types/mocha": "^10.0.1", "@types/node": "20.x", "@types/vscode": "^1.81.0", - "@typescript-eslint/eslint-plugin": "^6.4.1", - "@typescript-eslint/parser": "^6.4.1", + "@typescript-eslint/eslint-plugin": "^6.6.0", + "@typescript-eslint/parser": "^6.6.0", "@vscode/test-electron": "^2.3.4", "concurrently": "^8.2.1", "esbuild": "^0.19.2", "eslint": "^8.48.0", - "glob": "^10.3.3", + "glob": "^10.3.4", "mocha": "^10.2.0", - "postcss": "^8.4.28", + "postcss": "^8.4.29", "rollup-plugin-css-only": "^4.3.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-svelte": "^7.1.6", "svelte": "^4.2.0", - "svelte-check": "^3.5.0", + "svelte-check": "^3.5.1", "svelte-preprocess": "^5.0.4", "typescript": "^5.2.2" }, @@ -990,9 +990,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==", "dev": true }, "node_modules/@types/vscode": { @@ -1002,16 +1002,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz", - "integrity": "sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz", + "integrity": "sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/type-utils": "6.4.1", - "@typescript-eslint/utils": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", + "@typescript-eslint/scope-manager": "6.6.0", + "@typescript-eslint/type-utils": "6.6.0", + "@typescript-eslint/utils": "6.6.0", + "@typescript-eslint/visitor-keys": "6.6.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1037,15 +1037,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.1.tgz", - "integrity": "sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz", + "integrity": "sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/typescript-estree": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", + "@typescript-eslint/scope-manager": "6.6.0", + "@typescript-eslint/types": "6.6.0", + "@typescript-eslint/typescript-estree": "6.6.0", + "@typescript-eslint/visitor-keys": "6.6.0", "debug": "^4.3.4" }, "engines": { @@ -1065,13 +1065,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz", - "integrity": "sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz", + "integrity": "sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1" + "@typescript-eslint/types": "6.6.0", + "@typescript-eslint/visitor-keys": "6.6.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1082,13 +1082,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz", - "integrity": "sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz", + "integrity": "sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.4.1", - "@typescript-eslint/utils": "6.4.1", + "@typescript-eslint/typescript-estree": "6.6.0", + "@typescript-eslint/utils": "6.6.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1109,9 +1109,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.1.tgz", - "integrity": "sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz", + "integrity": "sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1122,13 +1122,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz", - "integrity": "sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz", + "integrity": "sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", + "@typescript-eslint/types": "6.6.0", + "@typescript-eslint/visitor-keys": "6.6.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1149,17 +1149,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.1.tgz", - "integrity": "sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.6.0.tgz", + "integrity": "sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/typescript-estree": "6.4.1", + "@typescript-eslint/scope-manager": "6.6.0", + "@typescript-eslint/types": "6.6.0", + "@typescript-eslint/typescript-estree": "6.6.0", "semver": "^7.5.4" }, "engines": { @@ -1174,12 +1174,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz", - "integrity": "sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz", + "integrity": "sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/types": "6.6.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1206,14 +1206,14 @@ } }, "node_modules/@vscode/vsce": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.20.1.tgz", - "integrity": "sha512-ilbvoqvR/1/zseRPBAzYR6aKqSJ+jvda4/BqIwOqTxajpvLtEpK3kMLs77+dJdrlygS+VrP7Yhad8j0ukyD96g==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.21.0.tgz", + "integrity": "sha512-KuxYqScqUY/duJbkj9eE2tN2X/WJoGAy54hHtxT3ZBkM6IzrOg7H7CXGUPBxNlmqku2w/cAjOUSrgIHlzz0mbA==", "dependencies": { "azure-devops-node-api": "^11.0.1", "chalk": "^2.4.2", "cheerio": "^1.0.0-rc.9", - "commander": "^6.1.0", + "commander": "^6.2.1", "glob": "^7.0.6", "hosted-git-info": "^4.0.2", "jsonc-parser": "^3.2.0", @@ -3027,9 +3027,9 @@ "optional": true }, "node_modules/glob": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", - "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", + "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", @@ -4462,9 +4462,9 @@ } }, "node_modules/postcss": { - "version": "8.4.28", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", - "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", "dev": true, "funding": [ { @@ -5888,9 +5888,9 @@ } }, "node_modules/svelte-check": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.5.0.tgz", - "integrity": "sha512-KHujbn4k17xKYLmtCwv0sKKM7uiHTYcQvXnvrCcNU6a7hcszh99zFTIoiu/Sp/ewAw5aJmillJ1Cs8gKLmcX4A==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.5.1.tgz", + "integrity": "sha512-+Zb4iHxAhdUtcUg/WJPRjlS1RJalIsWAe9Mz6G1zyznSs7dDkT7VUBdXc3q7Iwg49O/VrZgyJRvOJkjuBfKjFA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", diff --git a/extension/bwcontest/package.json b/extension/bwcontest/package.json index 617253c..1e05350 100644 --- a/extension/bwcontest/package.json +++ b/extension/bwcontest/package.json @@ -88,25 +88,25 @@ "@types/mocha": "^10.0.1", "@types/node": "20.x", "@types/vscode": "^1.81.0", - "@typescript-eslint/eslint-plugin": "^6.4.1", - "@typescript-eslint/parser": "^6.4.1", + "@typescript-eslint/eslint-plugin": "^6.6.0", + "@typescript-eslint/parser": "^6.6.0", "@vscode/test-electron": "^2.3.4", "concurrently": "^8.2.1", "esbuild": "^0.19.2", "eslint": "^8.48.0", - "glob": "^10.3.3", + "glob": "^10.3.4", "mocha": "^10.2.0", - "postcss": "^8.4.28", + "postcss": "^8.4.29", "rollup-plugin-css-only": "^4.3.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-svelte": "^7.1.6", "svelte": "^4.2.0", - "svelte-check": "^3.5.0", + "svelte-check": "^3.5.1", "svelte-preprocess": "^5.0.4", "typescript": "^5.2.2" }, "dependencies": { - "@vscode/vsce": "^2.20.1", + "@vscode/vsce": "^2.21.0", "axios": "^1.5.0", "fs-extra": "^11.1.1", "tree-kill": "^1.2.2" diff --git a/sandbox/.dockerignore b/sandbox/.dockerignore new file mode 100644 index 0000000..c27e9ba --- /dev/null +++ b/sandbox/.dockerignore @@ -0,0 +1,3 @@ +node_modules +build +.env \ No newline at end of file diff --git a/sandbox/.env.example b/sandbox/.env.example new file mode 100644 index 0000000..3f8a0de --- /dev/null +++ b/sandbox/.env.example @@ -0,0 +1,2 @@ +ADMIN_URL="http://localhost:5173" +REPO_URL="http://localhost:7006" \ No newline at end of file diff --git a/sandbox/docker-compose.yml b/sandbox/docker-compose.yml index f0713e3..c2791b6 100644 --- a/sandbox/docker-compose.yml +++ b/sandbox/docker-compose.yml @@ -3,6 +3,6 @@ services: sandbox: build: . environment: - - ADMIN_URL=http://localhost:5173 - - REPO_URL=http://localhost:7006 + - ADMIN_URL=${ADMIN_URL} + - REPO_URL=${REPO_URL} network_mode: 'host' diff --git a/web/Dockerfile b/web/Dockerfile index 1ad87c3..f940c55 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -6,7 +6,13 @@ RUN apt-get update RUN apt-get install curl -y -RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && apt-get install -y nodejs +RUN apt-get install -y ca-certificates curl gnupg +RUN mkdir -p /etc/apt/keyrings +RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg +ENV NODE_MAJOR=20 +RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list +RUN apt-get update +RUN apt-get install nodejs -y RUN apt-get install git -y diff --git a/web/src/routes/admin/contests/+page.svelte b/web/src/routes/admin/contests/+page.svelte index 74760e4..62ff4f6 100644 --- a/web/src/routes/admin/contests/+page.svelte +++ b/web/src/routes/admin/contests/+page.svelte @@ -14,13 +14,36 @@ Create -
- {#each data.contests as contest} - {contest.name} - {/each} +
+ + + + + + + + + + + {#each data.contests as contest} + + + + + + + {/each} + +
IdNameStatusActions
{contest.id}{contest.name} + {#if contest.activeTeams === 0} + Inactive + {:else} + Active + {/if} + Details
diff --git a/web/src/routes/admin/contests/[contestId]/+page.svelte b/web/src/routes/admin/contests/[contestId]/+page.svelte index 7179066..e066a1b 100644 --- a/web/src/routes/admin/contests/[contestId]/+page.svelte +++ b/web/src/routes/admin/contests/[contestId]/+page.svelte @@ -11,12 +11,12 @@ - {data.name} + Contest - {data.name} -

{data.name}

+

Contest - {data.name}

diff --git a/web/src/routes/admin/contests/[contestId]/logins/+page.svelte b/web/src/routes/admin/contests/[contestId]/logins/+page.svelte index 1c63772..2a55092 100644 --- a/web/src/routes/admin/contests/[contestId]/logins/+page.svelte +++ b/web/src/routes/admin/contests/[contestId]/logins/+page.svelte @@ -4,8 +4,12 @@ export let data: PageData; + + Printable Logins + + {#each data.teams as team} - +
diff --git a/web/src/routes/admin/contests/create/+page.svelte b/web/src/routes/admin/contests/create/+page.svelte index 0b81b21..11b07f8 100644 --- a/web/src/routes/admin/contests/create/+page.svelte +++ b/web/src/routes/admin/contests/create/+page.svelte @@ -44,8 +44,6 @@ -Cancel -

Name

@@ -106,9 +104,8 @@ {/each} -
-
- -
+
+ Cancel +
diff --git a/web/src/routes/admin/problems/+page.svelte b/web/src/routes/admin/problems/+page.svelte index 050fca5..6d72c41 100644 --- a/web/src/routes/admin/problems/+page.svelte +++ b/web/src/routes/admin/problems/+page.svelte @@ -19,11 +19,29 @@ {#if data.problems.length === 0}
No problems
{/if} -
- {#each data.problems as problem} - {problem.friendlyName} - {/each} + +
+
ID
+ + + + + + + + + {#each data.problems as problem} + + + + + + {/each} + +
IdNameActions
{problem.id}{problem.friendlyName}Details
diff --git a/web/src/routes/admin/problems/[problemId]/+page.svelte b/web/src/routes/admin/problems/[problemId]/+page.svelte index 16c545d..0488a14 100644 --- a/web/src/routes/admin/problems/[problemId]/+page.svelte +++ b/web/src/routes/admin/problems/[problemId]/+page.svelte @@ -28,6 +28,10 @@ let confirmModal: ConfirmModal; + + Problem - {data.problemData.friendlyName} + +

diff --git a/web/src/routes/admin/submissions/+page.server.ts b/web/src/routes/admin/submissions/+page.server.ts index 2067a22..8d6e7db 100644 --- a/web/src/routes/admin/submissions/+page.server.ts +++ b/web/src/routes/admin/submissions/+page.server.ts @@ -12,7 +12,6 @@ export const load = (async () => { id: row.id, createdAt: row.createdAt, gradedAt: row.gradedAt, - message: row.message, state: row.state, problemName: problems.find((problem) => { return problem.id == row.problemId; diff --git a/web/src/routes/admin/submissions/+page.svelte b/web/src/routes/admin/submissions/+page.svelte index fe2bfac..9e5eb4a 100644 --- a/web/src/routes/admin/submissions/+page.svelte +++ b/web/src/routes/admin/submissions/+page.svelte @@ -1,6 +1,6 @@ - Submission + Submission - {data.teamName} - {data.problemName} -

Submission

+

+ Submission - {data.teamName} - {data.problemName} +

{#if form && !form.success}
Error
@@ -64,46 +66,52 @@ - - - - - - - - - - - - - - - - - - - -
TeamProblemSubmit TimeGraded TimeMessage
- {#if data.teamName} - {data.teamName} - {/if} - - {#if data.problemName} - {data.problemName} - {/if} - {data.submitTime.toLocaleDateString() + ' ' + data.submitTime.toLocaleTimeString()} - {#if data.gradedTime} - {data.gradedTime.toLocaleDateString() + ' ' + data.gradedTime.toLocaleTimeString()} - {/if} - {data.message ? data.message : ''}
+
+ + + + + + + + + + + + + + + + + + + + + +
TeamProblemStatusSubmit TimeGraded TimeMessage
+ {#if data.teamName} + {data.teamName} + {/if} + + {#if data.problemName} + {data.problemName} + {/if} + + {#if data.state === 'Queued'} + Queued + {:else if data.state === 'InReview'} + In Review + {:else if data.state === 'Correct'} + Correct + {:else if data.state === 'Incorrect'} + Incorrect + {/if} + {data.submitTime.toLocaleDateString() + ' ' + data.submitTime.toLocaleTimeString()} + {#if data.gradedTime} + {data.gradedTime.toLocaleDateString() + ' ' + data.gradedTime.toLocaleTimeString()} + {/if} + {data.message ? data.message : ''}
+
{#if data.state == 'InReview'}
diff --git a/web/src/routes/admin/teams/+page.svelte b/web/src/routes/admin/teams/+page.svelte index 015f601..4a83f41 100644 --- a/web/src/routes/admin/teams/+page.svelte +++ b/web/src/routes/admin/teams/+page.svelte @@ -55,10 +55,27 @@ {/if} -
- {#each data.teams as team} - - {team.name} - - {/each} +
+ + + + + + + + + + {#each data.teams as team} + + + + + + {/each} + +
IdNameActions
{team.id}{team.name}Details
diff --git a/web/src/routes/admin/teams/[teamId]/+page.svelte b/web/src/routes/admin/teams/[teamId]/+page.svelte index 0adde55..892ec9f 100644 --- a/web/src/routes/admin/teams/[teamId]/+page.svelte +++ b/web/src/routes/admin/teams/[teamId]/+page.svelte @@ -22,12 +22,12 @@ - Team + Team - {data.team.name} -

{data.team.name}

+

Team - {data.team.name}

@@ -51,7 +51,7 @@
- +
Name