Compare commits
	
		
			55 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 1652e54ac6 | |||
| 52528d31a4 | |||
| e6ff8ef80b | |||
| aa707ff0cc | |||
| dc0488b1b7 | |||
| 4920da1df1 | |||
| f9a84f798b | |||
| c6f7210196 | |||
| c286969a9d | |||
| 14ae9e49fb | |||
| 4874b22796 | |||
| 72d34cbfd7 | |||
| b10e964ad9 | |||
| 919b2956ab | |||
| c4ad18cb4f | |||
| ab4f82ccf1 | |||
| 1235776a62 | |||
| 4a1e26663e | |||
| 2bdbd00189 | |||
| 85e7b7c231 | |||
| d5f685a826 | |||
| 88449174a1 | |||
| d30be90102 | |||
| 7e3570e923 | |||
| 3ac0a3c142 | |||
| dc588e83c0 | |||
| 5d764a80a7 | |||
| 0f32c71ef0 | |||
| 4b1a1a324b | |||
| 569296928e | |||
| c33157e2d4 | |||
| ee9799736f | |||
| 8d38e81b78 | |||
| 7005ec6a28 | |||
| 38b0fccb5a | |||
| 8a4974ffa9 | |||
| 9b83b38356 | |||
| 047941babb | |||
| f909575ca5 | |||
| 70a6120447 | |||
| b483ed1e49 | |||
| 2ce93b45c7 | |||
| 8139a3f60b | |||
| 431fc5a047 | |||
| b287db4d0a | |||
| b3ce711e6b | |||
| 456c0635a4 | |||
| b50398f6eb | |||
| e04e6713bc | |||
| de373390ba | |||
| 5be665b65f | |||
| 324612b5dd | |||
| ca1c96b252 | |||
| d284e8184c | |||
| 701aae9ed4 | 
							
								
								
									
										60
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -1,60 +0,0 @@ | |||||||
| --- |  | ||||||
| kind: secret |  | ||||||
| name: docker_username |  | ||||||
| get: |  | ||||||
|   path: odit-registry-builder |  | ||||||
|   name: username |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: secret |  | ||||||
| name: docker_password |  | ||||||
| get: |  | ||||||
|   path: odit-registry-builder |  | ||||||
|   name: password |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: build:dev |  | ||||||
|  |  | ||||||
| steps: |  | ||||||
|   - name: build dev |  | ||||||
|     image: plugins/docker |  | ||||||
|     depends_on: [clone] |  | ||||||
|     settings: |  | ||||||
|       username: |  | ||||||
|         from_secret: docker_username |  | ||||||
|       password: |  | ||||||
|         from_secret: docker_password |  | ||||||
|       repo: registry.odit.services/lfk/beamershow |  | ||||||
|       tags: |  | ||||||
|         - dev |  | ||||||
|       registry: registry.odit.services |  | ||||||
|       mtu: 1000 |  | ||||||
| trigger: |  | ||||||
|   branch: |  | ||||||
|     - dev |  | ||||||
|   event: |  | ||||||
|     - push |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: kubernetes |  | ||||||
| name: build:tags |  | ||||||
| steps: |  | ||||||
|   - name: build $DRONE_TAG |  | ||||||
|     image: plugins/docker |  | ||||||
|     depends_on: [clone] |  | ||||||
|     settings: |  | ||||||
|       username: |  | ||||||
|         from_secret: docker_username |  | ||||||
|       password: |  | ||||||
|         from_secret: docker_password |  | ||||||
|       repo: registry.odit.services/lfk/beamershow |  | ||||||
|       tags: |  | ||||||
|         - '${DRONE_TAG}' |  | ||||||
|       registry: registry.odit.services |  | ||||||
|       mtu: 1000 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|   - tag |  | ||||||
							
								
								
									
										33
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.gitea/workflows/release.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | name: Build release images | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     tags: | ||||||
|  |       - "*.*.*" | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   build-container: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |       - name: Set up Node.js | ||||||
|  |         uses: actions/setup-node@v4 | ||||||
|  |         with: | ||||||
|  |           node-version: 19 | ||||||
|  |       - run: npm i -g pnpm@10.7 && pnpm i | ||||||
|  |       - run: pnpm licenses:export | ||||||
|  |       - name: Login to registry | ||||||
|  |         uses: docker/login-action@v3 | ||||||
|  |         with: | ||||||
|  |           registry: registry.odit.services | ||||||
|  |           username: ${{ vars.REGISTRY_USERNAME }} | ||||||
|  |           password: ${{ secrets.REGISTRY_PASSWORD }} | ||||||
|  |       - name: Set up Docker Buildx | ||||||
|  |         uses: docker/setup-buildx-action@v3 | ||||||
|  |       - name: Build and push | ||||||
|  |         uses: docker/build-push-action@v6 | ||||||
|  |         with: | ||||||
|  |           push: true | ||||||
|  |           tags: | | ||||||
|  |             ${{ vars.REGISTRY }}/lfk/beamershow:${{ github.ref_name }} | ||||||
|  |           platforms: linux/amd64,linux/arm64 | ||||||
							
								
								
									
										1
									
								
								.husky/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.husky/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
| _ |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| . "$(dirname "$0")/_/husky.sh" |  | ||||||
|  |  | ||||||
| yarn format |  | ||||||
| yarn license:export |  | ||||||
							
								
								
									
										99
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -2,11 +2,110 @@ | |||||||
|  |  | ||||||
| All notable changes to this project will be documented in this file. Dates are displayed in UTC. | All notable changes to this project will be documented in this file. Dates are displayed in UTC. | ||||||
|  |  | ||||||
|  | #### [1.0.7](https://git.odit.services/lfk/beamershow/compare/1.0.6...1.0.7) | ||||||
|  |  | ||||||
|  | #### [1.0.6](https://git.odit.services/lfk/beamershow/compare/1.0.5...1.0.6) | ||||||
|  |  | ||||||
|  | > 4 April 2025 | ||||||
|  |  | ||||||
|  | - feat: show org names for teams_distance slide [`c6f7210`](https://git.odit.services/lfk/beamershow/commit/c6f721019691cdc9f5492f920dbdd99e6b25ca9f) | ||||||
|  | - chore(deps). bump [`dc0488b`](https://git.odit.services/lfk/beamershow/commit/dc0488b1b7632326f4dd3bf5fff0ac8fa91fb128) | ||||||
|  | - ci: move to gitea actions [`e6ff8ef`](https://git.odit.services/lfk/beamershow/commit/e6ff8ef80b667692574319f20bebe6a4e872ca6e) | ||||||
|  | - chore: release 1.0.6 [`52528d3`](https://git.odit.services/lfk/beamershow/commit/52528d31a46f99bd44c9b7f18833159f9cd4db56) | ||||||
|  | - chore: update readme [`aa707ff`](https://git.odit.services/lfk/beamershow/commit/aa707ff0ccaa2cb4a69d3c7b396591cd40827c6d) | ||||||
|  | - chore(deps): pnpm@10 [`c286969`](https://git.odit.services/lfk/beamershow/commit/c286969a9de52519005013a6798f711cef26b465) | ||||||
|  | - ci: change release message [`4920da1`](https://git.odit.services/lfk/beamershow/commit/4920da1df1a51a071eeba44d8d2c1cb6c5f8d09c) | ||||||
|  | - fix: i18n [`f9a84f7`](https://git.odit.services/lfk/beamershow/commit/f9a84f798b1052530688aaabf654b08c2d466da5) | ||||||
|  | - fix(login): bg image [`14ae9e4`](https://git.odit.services/lfk/beamershow/commit/14ae9e49fbdc10a1c5681212713b166e333e4b4d) | ||||||
|  |  | ||||||
|  | #### [1.0.5](https://git.odit.services/lfk/beamershow/compare/1.0.4...1.0.5) | ||||||
|  |  | ||||||
|  | > 18 December 2024 | ||||||
|  |  | ||||||
|  | - chore(deps): bump some [`ab4f82c`](https://git.odit.services/lfk/beamershow/commit/ab4f82ccf14a1569921845910e3b2a740f74aeea) | ||||||
|  | - feat(ci)!: Switched to woodpecker [`1235776`](https://git.odit.services/lfk/beamershow/commit/1235776a6255a3925f98ac6cacd3167f6e86e363) | ||||||
|  | - chore: remove husky [`72d34cb`](https://git.odit.services/lfk/beamershow/commit/72d34cbfd7f7e47f0239416469533aea772daa79) | ||||||
|  | - 🚀Bumped version to 1.0.5 [`4874b22`](https://git.odit.services/lfk/beamershow/commit/4874b227960c30b65d7bc822f987c9b957144953) | ||||||
|  | - chore(deps): pnpm@9 + node@23 [`c4ad18c`](https://git.odit.services/lfk/beamershow/commit/c4ad18cb4ff4dd13e50f4674d7b6016ed788ff63) | ||||||
|  | - feat(footer): cleaned up text [`b10e964`](https://git.odit.services/lfk/beamershow/commit/b10e964ad900fcfd2503884c248ea0f6d11a2fb9) | ||||||
|  | - feat: improved background img import [`919b295`](https://git.odit.services/lfk/beamershow/commit/919b2956ab5253a3697c14ac284f6da700afda91) | ||||||
|  |  | ||||||
|  | #### [1.0.4](https://git.odit.services/lfk/beamershow/compare/1.0.3...1.0.4) | ||||||
|  |  | ||||||
|  | > 15 April 2023 | ||||||
|  |  | ||||||
|  | - 🚀Bumped version to 1.0.4 [`4a1e266`](https://git.odit.services/lfk/beamershow/commit/4a1e26663e29339d6373fa8c340ba2117d3ecf28) | ||||||
|  | - fix: formatting of total km [`2bdbd00`](https://git.odit.services/lfk/beamershow/commit/2bdbd001898b9dd5aa541f3cce90fc108e7e458c) | ||||||
|  |  | ||||||
|  | #### [1.0.3](https://git.odit.services/lfk/beamershow/compare/1.0.2...1.0.3) | ||||||
|  |  | ||||||
|  | > 15 April 2023 | ||||||
|  |  | ||||||
|  | - 🚀Bumped version to 1.0.3 [`85e7b7c`](https://git.odit.services/lfk/beamershow/commit/85e7b7c231b92233b58373cd4ad56f514d6d789c) | ||||||
|  | - cleanup loading [`d5f685a`](https://git.odit.services/lfk/beamershow/commit/d5f685a8269737d148a06e0ec784c0074eac7d3f) | ||||||
|  | - drop laptime runner stats, fix runner distance page [`8844917`](https://git.odit.services/lfk/beamershow/commit/88449174a148ab7498075a15149388213a532c02) | ||||||
|  |  | ||||||
|  | #### [1.0.2](https://git.odit.services/lfk/beamershow/compare/1.0.1...1.0.2) | ||||||
|  |  | ||||||
|  | > 15 April 2023 | ||||||
|  |  | ||||||
|  | - 🚀Bumped version to 1.0.2 [`d30be90`](https://git.odit.services/lfk/beamershow/commit/d30be90102b3065b16836adc44a686c677e3053d) | ||||||
|  | - updated release config [`7e3570e`](https://git.odit.services/lfk/beamershow/commit/7e3570e9231929f366047ff149364ec06344d2ee) | ||||||
|  |  | ||||||
|  | #### [1.0.1](https://git.odit.services/lfk/beamershow/compare/1.0.0...1.0.1) | ||||||
|  |  | ||||||
|  | > 15 April 2023 | ||||||
|  |  | ||||||
|  | - 🚀Bumped version to 1.0.1 [`3ac0a3c`](https://git.odit.services/lfk/beamershow/commit/3ac0a3c142427adb3b3d461cd39a458685a85335) | ||||||
|  | - fix bg image? [`dc588e8`](https://git.odit.services/lfk/beamershow/commit/dc588e83c03d7e381f67c52b5fd5430fd0462742) | ||||||
|  |  | ||||||
|  | ### [1.0.0](https://git.odit.services/lfk/beamershow/compare/0.1.5...1.0.0) | ||||||
|  |  | ||||||
|  | > 15 April 2023 | ||||||
|  |  | ||||||
|  | - pin clock to bottom [`b287db4`](https://git.odit.services/lfk/beamershow/commit/b287db4d0a57e8a07d30b756ce0bea30da5ef4e3) | ||||||
|  | - update font to match lfk 2023 branding [`70a6120`](https://git.odit.services/lfk/beamershow/commit/70a61204471cea8f8d5dc17ad225c39c5cd91a43) | ||||||
|  | - bump windicss [`c33157e`](https://git.odit.services/lfk/beamershow/commit/c33157e2d4c5e4a5e9d30d96650e0bfa5ab1ab57) | ||||||
|  | - 1 more empty state [`f909575`](https://git.odit.services/lfk/beamershow/commit/f909575ca5ac862ec8e34d783831c2fcb53f2083) | ||||||
|  | - add empty state for runners_laptime [`8139a3f`](https://git.odit.services/lfk/beamershow/commit/8139a3f60b3544a8992d97b8b9d49520b28270bd) | ||||||
|  | - 🚀Bumped version to 1.0.0 [`5d764a8`](https://git.odit.services/lfk/beamershow/commit/5d764a80a7d25be7f6c2bb29a22b816875a739bf) | ||||||
|  | - updated pnpm lock [`de37339`](https://git.odit.services/lfk/beamershow/commit/de373390ba7051e22f1c4904b1ed60e1dc0e0c7a) | ||||||
|  | - text responsiveness [`9b83b38`](https://git.odit.services/lfk/beamershow/commit/9b83b38356b3faa677421a98c8655bc2357fb489) | ||||||
|  | - fix: font responsiveness [`38b0fcc`](https://git.odit.services/lfk/beamershow/commit/38b0fccb5abf762b88d5a8a3ad27cb80cf85ccb0) | ||||||
|  | - fix: typo [`8a4974f`](https://git.odit.services/lfk/beamershow/commit/8a4974ffa95b4d45f14c14130d7b7cb584c5cb52) | ||||||
|  | - format donation total [`431fc5a`](https://git.odit.services/lfk/beamershow/commit/431fc5a0474076568e9184d4c6b9819af6cc2e3f) | ||||||
|  | - default fallback on no data [`e04e671`](https://git.odit.services/lfk/beamershow/commit/e04e6713bc282810da2a0d103484cb6043af6063) | ||||||
|  | - formatting [`047941b`](https://git.odit.services/lfk/beamershow/commit/047941babbccb1f0674347babfa1468ac51fa487) | ||||||
|  | - monospace clock [`b50398f`](https://git.odit.services/lfk/beamershow/commit/b50398f6eb4e99e4d1c0d654e2710b265186837a) | ||||||
|  | - formatting [`ee97997`](https://git.odit.services/lfk/beamershow/commit/ee9799736f912f32e37e0d5d06a5591ec6180a31) | ||||||
|  | - improved clock position on xl [`0f32c71`](https://git.odit.services/lfk/beamershow/commit/0f32c71ef0e0267b2dc271507346c60b83eaa176) | ||||||
|  | - improved clock alignment [`4b1a1a3`](https://git.odit.services/lfk/beamershow/commit/4b1a1a324b865354472e45e0ef24230678be6111) | ||||||
|  | - fix container width [`5692969`](https://git.odit.services/lfk/beamershow/commit/569296928ee0a3c21844c183d74a36d759f65150) | ||||||
|  | - improved footer [`8d38e81`](https://git.odit.services/lfk/beamershow/commit/8d38e81b782252c84163aa87ec660199a2e2b065) | ||||||
|  | - updated width [`7005ec6`](https://git.odit.services/lfk/beamershow/commit/7005ec6a28b50763a5e4ee42a8d50e9953149168) | ||||||
|  | - drop "teams_distance" screen [`b483ed1`](https://git.odit.services/lfk/beamershow/commit/b483ed1e49aebbdfb59b41df75160a8acab546b2) | ||||||
|  | - improved empty state [`2ce93b4`](https://git.odit.services/lfk/beamershow/commit/2ce93b45c772284e59d84f063069e1546434bbc3) | ||||||
|  | - fix: width of general container [`b3ce711`](https://git.odit.services/lfk/beamershow/commit/b3ce711e6b8a8497ccbe6e5eea5ff1d6cd550e91) | ||||||
|  | - reload data every 90s [`456c063`](https://git.odit.services/lfk/beamershow/commit/456c0635a4fb5e129e94d4537fb735dc94933a12) | ||||||
|  |  | ||||||
|  | #### [0.1.5](https://git.odit.services/lfk/beamershow/compare/0.1.4...0.1.5) | ||||||
|  |  | ||||||
|  | > 29 March 2023 | ||||||
|  |  | ||||||
|  | - Switched dockerfile over to pnpm + cache [`701aae9`](https://git.odit.services/lfk/beamershow/commit/701aae9ed4af66b973e88fec384e46752fcb9ca2) | ||||||
|  | - Switched ci over to pnpm cache [`324612b`](https://git.odit.services/lfk/beamershow/commit/324612b5ddc1cf148a7750a02cdce557bef54d38) | ||||||
|  | - pinned dependencies [`d284e81`](https://git.odit.services/lfk/beamershow/commit/d284e8184c5a3c357398e3ab5a24a2e611001640) | ||||||
|  | - 🚀Bumped version to 0.1.5 [`5be665b`](https://git.odit.services/lfk/beamershow/commit/5be665b65fc021ae8ae544a965444cc29ec20e62) | ||||||
|  | - Docker copy all [`ca1c96b`](https://git.odit.services/lfk/beamershow/commit/ca1c96b252c9665b94dd9ef37c700afbb0039d46) | ||||||
|  |  | ||||||
| #### [0.1.4](https://git.odit.services/lfk/beamershow/compare/0.1.3...0.1.4) | #### [0.1.4](https://git.odit.services/lfk/beamershow/compare/0.1.3...0.1.4) | ||||||
|  |  | ||||||
|  | > 5 February 2023 | ||||||
|  |  | ||||||
| - cleanup invalid track stuff (leftovers from scanclient) [`c485898`](https://git.odit.services/lfk/beamershow/commit/c485898b7db7ae09f6e405e12aa6d458833f2dcf) | - cleanup invalid track stuff (leftovers from scanclient) [`c485898`](https://git.odit.services/lfk/beamershow/commit/c485898b7db7ae09f6e405e12aa6d458833f2dcf) | ||||||
| - bullet-proof login ux [`ea08127`](https://git.odit.services/lfk/beamershow/commit/ea08127927e2b1ebcbcd7907fbf51a66a43da421) | - bullet-proof login ux [`ea08127`](https://git.odit.services/lfk/beamershow/commit/ea08127927e2b1ebcbcd7907fbf51a66a43da421) | ||||||
| - add rst command [`ee6af3e`](https://git.odit.services/lfk/beamershow/commit/ee6af3e06921ef33651076b8767149c2df3a1f2d) | - add rst command [`ee6af3e`](https://git.odit.services/lfk/beamershow/commit/ee6af3e06921ef33651076b8767149c2df3a1f2d) | ||||||
|  | - 🚀Bumped version to 0.1.4 [`7f7b743`](https://git.odit.services/lfk/beamershow/commit/7f7b743f414b77902a358b6bd813412096d195b3) | ||||||
| - Settings: reload on lang change [`e0f400a`](https://git.odit.services/lfk/beamershow/commit/e0f400a800f2652cf3edf2ac0a5f802b65d0c460) | - Settings: reload on lang change [`e0f400a`](https://git.odit.services/lfk/beamershow/commit/e0f400a800f2652cf3edf2ac0a5f802b65d0c460) | ||||||
|  |  | ||||||
| #### [0.1.3](https://git.odit.services/lfk/beamershow/compare/0.1.2...0.1.3) | #### [0.1.3](https://git.odit.services/lfk/beamershow/compare/0.1.2...0.1.3) | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,12 +1,12 @@ | |||||||
| FROM node:15.11.0-alpine3.13 | FROM registry.odit.services/hub/library/node:23.11.0-alpine3.21 as build | ||||||
|  | ARG NPM_REGISTRY_URL=https://registry.npmjs.org | ||||||
| WORKDIR /app | WORKDIR /app | ||||||
| COPY . . |  | ||||||
| RUN yarn | COPY . ./ | ||||||
| RUN yarn build | RUN npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@10.7 && pnpm i | ||||||
|  | RUN pnpm build | ||||||
|  |  | ||||||
| # final image | # final image | ||||||
| FROM alpine | FROM registry.odit.services/library/nginx-brotli:3.15 as final | ||||||
| COPY --from=0 /app/dist /app | COPY --from=build /app/dist /usr/share/nginx/html | ||||||
| FROM fholzer/nginx-brotli:v1.19.1 |  | ||||||
| COPY --from=1 /app /usr/share/nginx/html |  | ||||||
| COPY ./nginx.conf /etc/nginx/nginx.conf | COPY ./nginx.conf /etc/nginx/nginx.conf | ||||||
| @@ -7,17 +7,17 @@ This is an API client for [https://git.odit.services/lfk/backend](@lfk/backend) | |||||||
| ## Dev🛠 | ## Dev🛠 | ||||||
| ### 🚀 Getting Started | ### 🚀 Getting Started | ||||||
| ``` | ``` | ||||||
| yarn | pnpm i | ||||||
| ``` | ``` | ||||||
| ### Development | ### Development | ||||||
| ``` | ``` | ||||||
| yarn dev | pnpm dev | ||||||
| / | / | ||||||
| yarn dev --open | pnpm dev --open | ||||||
| ``` | ``` | ||||||
| ### Build | ### Build | ||||||
| ``` | ``` | ||||||
| yarn build | pnpm build | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ## Use (quickstart) 🔥 | ## Use (quickstart) 🔥 | ||||||
|   | |||||||
| @@ -6,6 +6,11 @@ | |||||||
|     <title>LfK!Beamershow</title> |     <title>LfK!Beamershow</title> | ||||||
|     <base href="./" /> |     <base href="./" /> | ||||||
|     <link rel="icon" type="image/png" href="./favicon.png" /> |     <link rel="icon" type="image/png" href="./favicon.png" /> | ||||||
|  |     <style> | ||||||
|  |       * { | ||||||
|  |         font-family: "Athiti", sans-serif; | ||||||
|  |       } | ||||||
|  |     </style> | ||||||
|   </head> |   </head> | ||||||
|  |  | ||||||
|   <body class="bg-white font-family-karla h-screen"> |   <body class="bg-white font-family-karla h-screen"> | ||||||
|   | |||||||
							
								
								
									
										6003
									
								
								licenses.md
									
									
									
									
									
								
							
							
						
						
									
										6003
									
								
								licenses.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										35
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,41 +1,39 @@ | |||||||
| { | { | ||||||
| 	"name": "@lfk/beamershow", | 	"name": "@lfk/beamershow", | ||||||
| 	"version": "0.1.4", | 	"version": "1.0.7", | ||||||
| 	"scripts": { | 	"scripts": { | ||||||
| 		"dev": "vite", | 		"dev": "vite", | ||||||
| 		"build": "vite build", | 		"build": "vite build", | ||||||
| 		"format": "prettier --write --plugin-search-dir=. ./**/*.html ./**/*.svelte", | 		"format": "prettier --write --plugin-search-dir=. ./**/*.html ./**/*.svelte", | ||||||
| 		"prepare": "husky install", |  | ||||||
| 		"license:export": "license-exporter --markdown && git stage licenses.md", | 		"license:export": "license-exporter --markdown && git stage licenses.md", | ||||||
| 		"release": "release-it --only-version" | 		"release": "release-it --only-version" | ||||||
| 	}, | 	}, | ||||||
| 	"devDependencies": { | 	"devDependencies": { | ||||||
| 		"@odit/license-exporter": "^0.0.11", | 		"@odit/license-exporter": "0.2.0", | ||||||
| 		"@svitejs/vite-plugin-svelte": "^0.11.1", | 		"@philippdormann/release-it": "1.0.0", | ||||||
| 		"@tsconfig/svelte": "^1.0.10", | 		"@svitejs/vite-plugin-svelte": "0.11.1", | ||||||
| 		"@types/html-minifier": "^4.0.0", | 		"@tsconfig/svelte": "1.0.10", | ||||||
| 		"axios": "^0.21.1", | 		"@types/html-minifier": "4.0.5", | ||||||
| 		"html-minifier": "^4.0.0", | 		"axios": "0.21.1", | ||||||
| 		"husky": "^5.1.3", | 		"html-minifier": "4.0.0", | ||||||
| 		"prettier": "^2.2.1", | 		"prettier": "3.5.3", | ||||||
| 		"prettier-plugin-svelte": "^2.2.0", | 		"prettier-plugin-svelte": "3.3.3", | ||||||
| 		"release-it": "14.5.0", |  | ||||||
| 		"svelte": "3.36.0", | 		"svelte": "3.36.0", | ||||||
| 		"svelte-i18n": "3.3.9", | 		"svelte-i18n": "3.3.9", | ||||||
| 		"svelte-preprocess": "4.7.0", | 		"svelte-preprocess": "4.7.0", | ||||||
| 		"validator": "^13.5.2", | 		"validator": "13.15.0", | ||||||
| 		"vite": "2.1.4", | 		"vite": "2.1.4", | ||||||
| 		"vite-plugin-windicss": "0.11.2" | 		"vite-plugin-windicss": "1.9.4" | ||||||
| 	}, | 	}, | ||||||
| 	"release-it": { | 	"release-it": { | ||||||
| 		"git": { | 		"git": { | ||||||
| 			"commit": true, | 			"commit": true, | ||||||
| 			"requireCleanWorkingDir": false, | 			"requireCleanWorkingDir": false, | ||||||
| 			"commitMessage": "🚀Bumped version to ${version}", | 			"commitMessage": "chore: release ${version}", | ||||||
| 			"requireBranch": "main", | 			"requireBranch": "main", | ||||||
| 			"push": false, | 			"push": true, | ||||||
| 			"tag": true, | 			"tag": true, | ||||||
| 			"tagName": null, | 			"tagName": "${version}", | ||||||
| 			"tagAnnotation": "${version}" | 			"tagAnnotation": "${version}" | ||||||
| 		}, | 		}, | ||||||
| 		"npm": { | 		"npm": { | ||||||
| @@ -44,5 +42,8 @@ | |||||||
| 		"hooks": { | 		"hooks": { | ||||||
| 			"after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node order.js  && git add src/locales" | 			"after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node order.js  && git add src/locales" | ||||||
| 		} | 		} | ||||||
|  | 	}, | ||||||
|  | 	"dependencies": { | ||||||
|  | 		"@fontsource/athiti": "5.2.5" | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										2917
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										2917
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3
									
								
								pnpm-workspace.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								pnpm-workspace.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | onlyBuiltDependencies: | ||||||
|  |   - esbuild | ||||||
|  |   - svelte-preprocess | ||||||
| @@ -1,17 +1,15 @@ | |||||||
| <script> | <script> | ||||||
| 	import axios from "axios"; | 	import axios from "axios"; | ||||||
|  | 	import bg from "/beamershow_background.png?inline"; | ||||||
| 	import { _ } from "svelte-i18n"; | 	import { _ } from "svelte-i18n"; | ||||||
| 	import { slide } from "svelte/transition"; | 	import { slide } from "svelte/transition"; | ||||||
| 	import { apikey, api_endpoint, laptime_track } from "./store.js"; | 	import { apikey, api_endpoint, laptime_track } from "./store.js"; | ||||||
|   function init(el) { |  | ||||||
|     el.focus(); |  | ||||||
|   } |  | ||||||
| 	$: pages = [ | 	$: pages = [ | ||||||
| 		"general", | 		"general", | ||||||
| 		"runners_distance", | 		"runners_distance", | ||||||
|     "runners_laptime", | 		// "runners_laptime", | ||||||
| 		"orgs_distance", | 		"orgs_distance", | ||||||
|     "teams_distance", | 		// "teams_distance", | ||||||
| 	]; | 	]; | ||||||
| 	$: current_page = "general"; | 	$: current_page = "general"; | ||||||
| 	$: general = {}; | 	$: general = {}; | ||||||
| @@ -120,7 +118,7 @@ | |||||||
| 	function fetch_all() { | 	function fetch_all() { | ||||||
| 		stats_general(); | 		stats_general(); | ||||||
| 		stats_runners(); | 		stats_runners(); | ||||||
|     stats_runners_by_laptime(); | 		// stats_runners_by_laptime(); | ||||||
| 		stats_orgs(); | 		stats_orgs(); | ||||||
| 		stats_teams(); | 		stats_teams(); | ||||||
| 	} | 	} | ||||||
| @@ -130,7 +128,7 @@ | |||||||
| 	}, 1000); | 	}, 1000); | ||||||
| 	setInterval(() => { | 	setInterval(() => { | ||||||
| 		fetch_all(); | 		fetch_all(); | ||||||
|   }, 15000); | 	}, 50000); | ||||||
| 	setInterval(() => { | 	setInterval(() => { | ||||||
| 		current_page = pages.cycle(current_page); | 		current_page = pages.cycle(current_page); | ||||||
| 	}, 20000); | 	}, 20000); | ||||||
| @@ -138,35 +136,44 @@ | |||||||
|  |  | ||||||
| <div | <div | ||||||
| 	class="min-h-screen flex items-center justify-center bg-gray-100" | 	class="min-h-screen flex items-center justify-center bg-gray-100" | ||||||
|   style="background-image: url('/beamershow_background.png');background-position: center;background-size: contain;background-repeat:no-repeat;" | 	style="background-image: url({bg});background-position: center;background-size: contain;background-repeat:no-repeat;" | ||||||
| > | > | ||||||
|   <div class="max-w-xl w-full"> | 	<div class="w-full"> | ||||||
|  | 		<div class="w-3/4 xl:w-1/2 mx-auto"> | ||||||
|  | 			<!--  --> | ||||||
| 			{#if current_page === "general"} | 			{#if current_page === "general"} | ||||||
| 				<div transition:slide|local> | 				<div transition:slide|local> | ||||||
|         <h1 class="mr-6 text-7xl font-semibold text-center text-gray-900"> | 					<h1 | ||||||
|           {hours}:{minutes}:{seconds} | 						class="mr-6 text-5xl xl:text-7xl font-bold text-center text-gray-900" | ||||||
|  | 					> | ||||||
|  | 						{$_("statistiken")} | ||||||
| 					</h1> | 					</h1> | ||||||
| 					<!--  --> | 					<!--  --> | ||||||
| 					<div class="flex flex-wrap -mx-1 overflow-hidden mt-5"> | 					<div class="flex flex-wrap -mx-1 overflow-hidden mt-5"> | ||||||
| 						<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2 md:w-1/3"> | 						<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2 md:w-1/3"> | ||||||
|             <h1 class="text-5xl font-semibold text-center text-gray-900"> | 							<h1 class="text-5xl font-bold text-center text-gray-900"> | ||||||
|               {general.total_runners} | 								{general.total_runners || "0"} | ||||||
| 							</h1> | 							</h1> | ||||||
| 							<h1 class="text-2xl font-semibold text-center text-gray-900"> | 							<h1 class="text-2xl font-semibold text-center text-gray-900"> | ||||||
| 								{$_("laeufer")} | 								{$_("laeufer")} | ||||||
| 							</h1> | 							</h1> | ||||||
| 						</div> | 						</div> | ||||||
| 						<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2 md:w-1/3"> | 						<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2 md:w-1/3"> | ||||||
|             <h1 class="text-5xl font-semibold text-center text-gray-900"> | 							<h1 class="text-5xl font-bold text-center text-gray-900"> | ||||||
|               {general.total_distance} | 								{general.total_distance / 1000 || 0} | ||||||
| 							</h1> | 							</h1> | ||||||
| 							<h1 class="text-2xl font-semibold text-center text-gray-900"> | 							<h1 class="text-2xl font-semibold text-center text-gray-900"> | ||||||
| 								{$_("kilometer-gesamt")} | 								{$_("kilometer-gesamt")} | ||||||
| 							</h1> | 							</h1> | ||||||
| 						</div> | 						</div> | ||||||
| 						<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2 md:w-1/3"> | 						<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2 md:w-1/3"> | ||||||
|             <h1 class="text-5xl font-semibold text-center text-gray-900"> | 							<h1 class="text-5xl font-bold text-center text-gray-900"> | ||||||
|               {general.total_donation} € | 								{parseFloat( | ||||||
|  | 									((general.total_donation || 0) / 100).toFixed(2) | ||||||
|  | 								).toLocaleString(undefined, { | ||||||
|  | 									minimumFractionDigits: 2, | ||||||
|  | 									maximumFractionDigits: 2, | ||||||
|  | 								}) || "0"} € | ||||||
| 							</h1> | 							</h1> | ||||||
| 							<h1 class="text-2xl font-semibold text-center text-gray-900"> | 							<h1 class="text-2xl font-semibold text-center text-gray-900"> | ||||||
| 								{$_("spendensumme")} | 								{$_("spendensumme")} | ||||||
| @@ -176,10 +183,19 @@ | |||||||
| 				</div> | 				</div> | ||||||
| 			{:else if current_page === "runners_distance"} | 			{:else if current_page === "runners_distance"} | ||||||
| 				<div transition:slide|local> | 				<div transition:slide|local> | ||||||
|         <h1 class="mr-6 text-7xl font-semibold text-center text-gray-900 mb-5"> | 					<h1 | ||||||
|  | 						class="mr-6 text-5xl xl:text-7xl font-bold text-center text-gray-900 mb-3" | ||||||
|  | 					> | ||||||
| 						{$_("top-laeufer")} ({$_("distanz")}) | 						{$_("top-laeufer")} ({$_("distanz")}) | ||||||
| 					</h1> | 					</h1> | ||||||
|         <table class="table p-4 bg-white shadow rounded-lg w-full"> | 					{#if runners.length === 0} | ||||||
|  | 						<p class="w-full text-center text-3xl font-semibold"> | ||||||
|  | 							Noch keine Daten... | ||||||
|  | 						</p> | ||||||
|  | 					{:else} | ||||||
|  | 						<table | ||||||
|  | 							class="table font-semibold p-4 bg-white shadow rounded-lg w-full" | ||||||
|  | 						> | ||||||
| 							<thead> | 							<thead> | ||||||
| 								<tr> | 								<tr> | ||||||
| 									<th | 									<th | ||||||
| @@ -224,13 +240,23 @@ | |||||||
| 								{/each} | 								{/each} | ||||||
| 							</tbody> | 							</tbody> | ||||||
| 						</table> | 						</table> | ||||||
|  | 					{/if} | ||||||
| 				</div> | 				</div> | ||||||
| 			{:else if current_page === "runners_laptime"} | 			{:else if current_page === "runners_laptime"} | ||||||
| 				<div transition:slide|local> | 				<div transition:slide|local> | ||||||
|         <h1 class="mr-6 text-7xl font-semibold text-center text-gray-900 mb-5"> | 					<h1 | ||||||
|  | 						class="mr-6 text-5xl xl:text-7xl font-bold text-center text-gray-900 mb-3" | ||||||
|  | 					> | ||||||
| 						{$_("top-laeufer")} ({$_("rundenzeit")}) | 						{$_("top-laeufer")} ({$_("rundenzeit")}) | ||||||
| 					</h1> | 					</h1> | ||||||
|         <table class="table p-4 bg-white shadow rounded-lg w-full"> | 					{#if runners_by_laptime.length === 0} | ||||||
|  | 						<p class="w-full text-center text-3xl font-semibold"> | ||||||
|  | 							Noch keine Daten... | ||||||
|  | 						</p> | ||||||
|  | 					{:else} | ||||||
|  | 						<table | ||||||
|  | 							class="table font-semibold p-4 bg-white shadow rounded-lg w-full" | ||||||
|  | 						> | ||||||
| 							<thead> | 							<thead> | ||||||
| 								<tr> | 								<tr> | ||||||
| 									<th | 									<th | ||||||
| @@ -275,13 +301,23 @@ | |||||||
| 								{/each} | 								{/each} | ||||||
| 							</tbody> | 							</tbody> | ||||||
| 						</table> | 						</table> | ||||||
|  | 					{/if} | ||||||
| 				</div> | 				</div> | ||||||
| 			{:else if current_page === "orgs_distance"} | 			{:else if current_page === "orgs_distance"} | ||||||
| 				<div transition:slide|local> | 				<div transition:slide|local> | ||||||
|         <h1 class="mr-6 text-7xl font-semibold text-center text-gray-900 mb-5"> | 					<h1 | ||||||
|           {$_("top-organsiationen")} | 						class="mr-6 text-5xl xl:text-7xl font-bold text-center text-gray-900 mb-3" | ||||||
|  | 					> | ||||||
|  | 						{$_("top-organisationen")} | ||||||
| 					</h1> | 					</h1> | ||||||
|         <table class="table p-4 bg-white shadow rounded-lg w-full"> | 					{#if orgs.length === 0} | ||||||
|  | 						<p class="w-full text-center text-3xl font-semibold"> | ||||||
|  | 							Noch keine Daten... | ||||||
|  | 						</p> | ||||||
|  | 					{:else} | ||||||
|  | 						<table | ||||||
|  | 							class="table font-semibold p-4 bg-white shadow rounded-lg w-full" | ||||||
|  | 						> | ||||||
| 							<thead> | 							<thead> | ||||||
| 								<tr> | 								<tr> | ||||||
| 									<th | 									<th | ||||||
| @@ -317,13 +353,18 @@ | |||||||
| 								{/each} | 								{/each} | ||||||
| 							</tbody> | 							</tbody> | ||||||
| 						</table> | 						</table> | ||||||
|  | 					{/if} | ||||||
| 				</div> | 				</div> | ||||||
| 			{:else if current_page === "teams_distance"} | 			{:else if current_page === "teams_distance"} | ||||||
| 				<div transition:slide|local> | 				<div transition:slide|local> | ||||||
|         <h1 class="mr-6 text-7xl font-semibold text-center text-gray-900 mb-5"> | 					<h1 | ||||||
|  | 						class="mr-6 text-5xl xl:text-7xl font-bold text-center text-gray-900 mb-3" | ||||||
|  | 					> | ||||||
| 						{$_("top-teams")} | 						{$_("top-teams")} | ||||||
| 					</h1> | 					</h1> | ||||||
|         <table class="table p-4 bg-white shadow rounded-lg w-full"> | 					<table | ||||||
|  | 						class="table font-semibold p-4 bg-white shadow rounded-lg w-full" | ||||||
|  | 					> | ||||||
| 						<thead> | 						<thead> | ||||||
| 							<tr> | 							<tr> | ||||||
| 								<th | 								<th | ||||||
| @@ -350,6 +391,7 @@ | |||||||
| 										{i + 1} | 										{i + 1} | ||||||
| 									</td> | 									</td> | ||||||
| 									<td class="border p-4 dark:border-dark-5"> | 									<td class="border p-4 dark:border-dark-5"> | ||||||
|  | 										{t.parent.name}<br /> | ||||||
| 										{t.name} | 										{t.name} | ||||||
| 									</td> | 									</td> | ||||||
| 									<td class="border p-4 dark:border-dark-5"> | 									<td class="border p-4 dark:border-dark-5"> | ||||||
| @@ -364,4 +406,15 @@ | |||||||
| 				<!-- content here --> | 				<!-- content here --> | ||||||
| 			{/if} | 			{/if} | ||||||
| 		</div> | 		</div> | ||||||
|  | 	</div> | ||||||
|  | 	<h1 | ||||||
|  | 		class="text-6xl font-semibold text-right text-gray-900 font-mono top-2 w-full fixed pr-4 xl:top-6 xl:pr-8" | ||||||
|  | 	> | ||||||
|  | 		{hours}:{minutes}:{seconds} | ||||||
|  | 	</h1> | ||||||
|  | 	<h1 | ||||||
|  | 		class="text-xl xl:text-3xl font-medium text-center text-gray-900 font-mono bottom-2 xl:bottom-4 w-full fixed" | ||||||
|  | 	> | ||||||
|  | 		<span class="text-black font-extrabold">Lauf für Kaya!</span> - powered by ODIT.Services | ||||||
|  | 	</h1> | ||||||
| </div> | </div> | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| <script> | <script> | ||||||
|  |   import bg from "/beamershow_background.png?inline"; | ||||||
|   import { apikey, lang, api_endpoint, laptime_track, clear } from "./store.js"; |   import { apikey, lang, api_endpoint, laptime_track, clear } from "./store.js"; | ||||||
|   import isURL from "validator/lib/isURL"; |   import isURL from "validator/lib/isURL"; | ||||||
|   import isUUID from "validator/lib/isUUID"; |   import isUUID from "validator/lib/isUUID"; | ||||||
| @@ -253,7 +254,7 @@ | |||||||
|     <img |     <img | ||||||
|       alt="" |       alt="" | ||||||
|       class="object-cover w-full h-screen hidden md:block" |       class="object-cover w-full h-screen hidden md:block" | ||||||
|       src="https://source.unsplash.com/IXUM4cJynP0" |       src={bg} | ||||||
|     /> |     /> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|   | |||||||
| @@ -30,11 +30,12 @@ | |||||||
|     "spendensumme": "Spendensumme", |     "spendensumme": "Spendensumme", | ||||||
|     "station_description": "Beschreibung der Scanstation", |     "station_description": "Beschreibung der Scanstation", | ||||||
|     "station_id": "Scanstations-ID", |     "station_id": "Scanstations-ID", | ||||||
|  |     "statistiken": "Statistiken", | ||||||
|     "team": "Team", |     "team": "Team", | ||||||
|     "the_provided_scan_station_is_disabled": "Die angegebene Scanstation ist deaktiviert.", |     "the_provided_scan_station_is_disabled": "Die angegebene Scanstation ist deaktiviert.", | ||||||
|     "the_provided_scan_station_token_is_invalid": "Der angegebene Scanstation-Token ist ungültig.", |     "the_provided_scan_station_token_is_invalid": "Der angegebene Scanstation-Token ist ungültig.", | ||||||
|     "top-laeufer": "Top-Läufer", |     "top-laeufer": "Top-Läufer", | ||||||
|     "top-organsiationen": "Top-Organsiationen", |     "top-organisationen": "Top-Organisationen", | ||||||
|     "top-teams": "Top-Teams", |     "top-teams": "Top-Teams", | ||||||
|     "track_distance": "Länge des Tracks", |     "track_distance": "Länge des Tracks", | ||||||
|     "track_id": "Track ID", |     "track_id": "Track ID", | ||||||
|   | |||||||
| @@ -30,11 +30,12 @@ | |||||||
|     "spendensumme": "Donations", |     "spendensumme": "Donations", | ||||||
|     "station_description": "Station Description", |     "station_description": "Station Description", | ||||||
|     "station_id": "Scanstation ID", |     "station_id": "Scanstation ID", | ||||||
|  |     "statistiken": "Statistics", | ||||||
|     "team": "Team", |     "team": "Team", | ||||||
|     "the_provided_scan_station_is_disabled": "The provided scan station is disabled.", |     "the_provided_scan_station_is_disabled": "The provided scan station is disabled.", | ||||||
|     "the_provided_scan_station_token_is_invalid": "The provided scan station token is invalid.", |     "the_provided_scan_station_token_is_invalid": "The provided scan station token is invalid.", | ||||||
|     "top-laeufer": "Top runners", |     "top-laeufer": "Top runners", | ||||||
|     "top-organsiationen": "Top organizations", |     "top-organisationen": "Top organizations", | ||||||
|     "top-teams": "Top teams", |     "top-teams": "Top teams", | ||||||
|     "track_distance": "Track Distance", |     "track_distance": "Track Distance", | ||||||
|     "track_id": "Track ID", |     "track_id": "Track ID", | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| import App from './App.svelte'; | import App from './App.svelte'; | ||||||
| import 'windi.css'; | import 'windi.css'; | ||||||
|  | import "@fontsource/athiti" | ||||||
|  |  | ||||||
| const app = new App({ | const app = new App({ | ||||||
| 	target: document.body | 	target: document.body | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user