Compare commits
	
		
			24 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bd4fc7a2f4 | |||
| add0cb14c6 | |||
| 38a91f730b | |||
| 3f98268967 | |||
| a8a0d0018e | |||
| 4ce0eeffea | |||
| 0edf31a9ec | |||
| 38d80b4371 | |||
| c6700a9153 | |||
| 60d51f39bf | |||
| 076849221a | |||
| 8610e0b285 | |||
| f78365f062 | |||
| 02b31f277f | |||
| 5f865081a6 | |||
| 90c1413fa1 | |||
| 6df7b516aa | |||
| 4604f86429 | |||
| eb023fac5c | |||
| 26951b4f0f | |||
| e6d8861340 | |||
| 37c384aa36 | |||
| cd1b3aafc7 | |||
| 64f2ddf70b | 
							
								
								
									
										17
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -12,19 +12,30 @@ get: | ||||
|   path: odit-ci-bot | ||||
|   name: apikey | ||||
|  | ||||
| --- | ||||
| kind: secret | ||||
| name: npm_url | ||||
| get: | ||||
|   path: odit-npm-cache | ||||
|   name: url | ||||
|  | ||||
| --- | ||||
| kind: pipeline | ||||
| type: kubernetes | ||||
| name: build:tag | ||||
| steps: | ||||
|   - name: run build | ||||
|     image: node:15.11.0-alpine3.13 | ||||
|     image: registry.odit.services/hub/library/node:19.5.0-alpine3.16 | ||||
|     commands: | ||||
|       - apk add git zip -f | ||||
|       - yarn | ||||
|       - yarn build | ||||
|       - npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@8 | ||||
|       - pnpm i | ||||
|       - pnpm build | ||||
|       - mkdir out | ||||
|       - zip -r out/dist.zip dist | ||||
|     environment: | ||||
|       NPM_REGISTRY_URL: | ||||
|         from_secret: npm_url | ||||
|   - name: gitea add packages to build | ||||
|     image: plugins/gitea-release | ||||
|     settings: | ||||
|   | ||||
							
								
								
									
										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 | ||||
							
								
								
									
										40
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -2,8 +2,46 @@ | ||||
|  | ||||
| All notable changes to this project will be documented in this file. Dates are displayed in UTC. | ||||
|  | ||||
| #### [v0.1.5](https://git.odit.services/lfk/scanclient/compare/0.1.4...v0.1.5) | ||||
| #### [1.0.0](https://git.odit.services/lfk/scanclient/compare/0.2.0...1.0.0) | ||||
|  | ||||
| - feat(Scanner): move clock to monospace font [`0768492`](https://git.odit.services/lfk/scanclient/commit/076849221a9c6353ec752d4f2213ae2e10b6480b) | ||||
| - Lockfile [`5f86508`](https://git.odit.services/lfk/scanclient/commit/5f865081a64e2f59a1541a6166e85da3d7cfdbfa) | ||||
| - Pinned deependencies [`0edf31a`](https://git.odit.services/lfk/scanclient/commit/0edf31a9ec228d3a027c4ef0d61d31318ded8d9e) | ||||
| - deps: node@19.9.0 [`4ce0eef`](https://git.odit.services/lfk/scanclient/commit/4ce0eeffea6eee4d8af3ba130d2244669e905ed9) | ||||
| - New checkmark and lower padding [`a8a0d00`](https://git.odit.services/lfk/scanclient/commit/a8a0d0018ee27588eede9bb0456d1b41060f35cd) | ||||
| - drop html-minifier [`c6700a9`](https://git.odit.services/lfk/scanclient/commit/c6700a9153f96d330f0a6636adaa616b03d232ee) | ||||
| - Moved ci to pnpm w/ cache [`8610e0b`](https://git.odit.services/lfk/scanclient/commit/8610e0b285939f118fab952ca00e76b1ff659a16) | ||||
| - Removed svg padding [`38a91f7`](https://git.odit.services/lfk/scanclient/commit/38a91f730b46206eac714cae69be26212c01af6f) | ||||
| - drop husky precommit hook [`60d51f3`](https://git.odit.services/lfk/scanclient/commit/60d51f39bffa3e947b220a1e5644e0246cf21350) | ||||
| - Switched dockerfile over to pnpm 8 and cache [`90c1413`](https://git.odit.services/lfk/scanclient/commit/90c1413fa1e6fbe41227296083636568c562da65) | ||||
| - added webserver to docker build [`f78365f`](https://git.odit.services/lfk/scanclient/commit/f78365f062b1b0eae06b9af02e32573ef6e9bbc9) | ||||
| - Automargin [`3f98268`](https://git.odit.services/lfk/scanclient/commit/3f982689673fb07e19beaf0765f5552834ec9922) | ||||
| - No more space [`add0cb1`](https://git.odit.services/lfk/scanclient/commit/add0cb14c68580d7da6a0408fc76995f7a7e4808) | ||||
| - update license exporter [`38d80b4`](https://git.odit.services/lfk/scanclient/commit/38d80b4371c4d01e717846eff831068dc18a453c) | ||||
| - Added missing copy [`02b31f2`](https://git.odit.services/lfk/scanclient/commit/02b31f277f7cc0d97aad061f46540e16f55e13c6) | ||||
|  | ||||
| #### [0.2.0](https://git.odit.services/lfk/scanclient/compare/0.1.6...0.2.0) | ||||
|  | ||||
| > 14 April 2021 | ||||
|  | ||||
| - Merge pull request 'add 'rst' to Login component' (#20) from feature/18-add-rst-login into dev [`#18`](https://git.odit.services/lfk/scanclient/issues/18) | ||||
| - Merge pull request 'replace unsplash with kaya_bg' (#19) from feature/17-remote-background-image into dev [`#17`](https://git.odit.services/lfk/scanclient/issues/17) | ||||
| - add 'rst' to Login component [`e6d8861`](https://git.odit.services/lfk/scanclient/commit/e6d8861340f6998234d8b2446b918ab01738cf63) | ||||
| - 🚀Bumped version to 0.2.0 [`6df7b51`](https://git.odit.services/lfk/scanclient/commit/6df7b516aa09f937c23ab19494767867e1ebf8da) | ||||
| - replace unsplash with kaya_bg [`37c384a`](https://git.odit.services/lfk/scanclient/commit/37c384aa3688a66bc31673048e718fc04bc7bf0d) | ||||
|  | ||||
| #### [0.1.6](https://git.odit.services/lfk/scanclient/compare/0.1.5...0.1.6) | ||||
|  | ||||
| > 13 April 2021 | ||||
|  | ||||
| - 🚀Bumped version to 0.1.6 [`cd1b3aa`](https://git.odit.services/lfk/scanclient/commit/cd1b3aafc7587541eddd088a9d446ad50b719f56) | ||||
| - Updated readme [`64f2ddf`](https://git.odit.services/lfk/scanclient/commit/64f2ddf70b5e3ace8557ff1cfd346fb52a251afd) | ||||
|  | ||||
| #### [0.1.5](https://git.odit.services/lfk/scanclient/compare/0.1.4...0.1.5) | ||||
|  | ||||
| > 13 April 2021 | ||||
|  | ||||
| - 🚀Bumped version to 0.1.5 [`3fa1bc9`](https://git.odit.services/lfk/scanclient/commit/3fa1bc93eb33509555820b6d96a01fad3b1338c2) | ||||
| - 🧹 drop emoji from ui bar [`18845f8`](https://git.odit.services/lfk/scanclient/commit/18845f86d12bf82ede8170e81805bf49f37f63f5) | ||||
|  | ||||
| #### [0.1.4](https://git.odit.services/lfk/scanclient/compare/0.1.3...0.1.4) | ||||
|   | ||||
							
								
								
									
										14
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,5 +1,13 @@ | ||||
| FROM node:15.11.0-alpine3.13 | ||||
| FROM registry.odit.services/hub/library/node:19.5.0-alpine3.16 as build | ||||
| ARG NPM_REGISTRY_URL=https://registry.npmjs.org | ||||
| WORKDIR /app | ||||
|  | ||||
| COPY package.json ./ | ||||
| RUN npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@8 | ||||
| RUN mkdir /pnpm && pnpm config set store-dir /pnpm && pnpm i | ||||
|  | ||||
| COPY . . | ||||
| RUN yarn | ||||
| RUN yarn build | ||||
| RUN pnpm build | ||||
|  | ||||
| FROM registry.odit.services/library/nginx-brotli:3.15 as final | ||||
| COPY --from=build /app/dist /usr/share/nginx/html | ||||
| @@ -3,6 +3,7 @@ | ||||
| ## ✒️ Overview | ||||
| This is an API client for [https://git.odit.services/lfk/backend](@lfk/backend) | ||||
| - WebApp built with [Svelte](https://svelte.dev), [WindiCSS](https://windicss.org/) (to compile [TailwindCSS](https://tailwindcss.com/)) and [Vite](https://vitejs.dev). | ||||
| - Packaged with electron here: [https://git.odit.services/lfk/selfservice-electron](@lfk/selfservice-electron) | ||||
|  | ||||
| ## 🚀 Getting Started | ||||
| ``` | ||||
|   | ||||
							
								
								
									
										7810
									
								
								licenses.md
									
									
									
									
									
								
							
							
						
						
									
										7810
									
								
								licenses.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										35
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,33 +1,29 @@ | ||||
| { | ||||
| 	"name": "@lfk/scanclient", | ||||
| 	"version": "0.1.5", | ||||
| 	"version": "1.0.0", | ||||
| 	"scripts": { | ||||
| 		"dev": "vite", | ||||
| 		"build": "vite build", | ||||
| 		"format": "prettier --write --plugin-search-dir=. ./**/*.html ./**/*.svelte", | ||||
| 		"prepare": "husky install", | ||||
| 		"license:export": "license-exporter --markdown && git stage licenses.md", | ||||
| 		"release": "release-it --only-version" | ||||
| 	}, | ||||
| 	"devDependencies": { | ||||
| 		"@odit/license-exporter": "^0.0.11", | ||||
| 		"@svitejs/vite-plugin-svelte": "^0.11.1", | ||||
| 		"@tsconfig/svelte": "^1.0.10", | ||||
| 		"@types/html-minifier": "^4.0.0", | ||||
| 		"axios": "^0.21.1", | ||||
| 		"html-minifier": "^4.0.0", | ||||
| 		"husky": "^5.1.3", | ||||
| 		"prettier": "^2.2.1", | ||||
| 		"prettier-plugin-svelte": "^2.2.0", | ||||
| 		"release-it": "^14.5.1", | ||||
| 		"svelte": "^3.35.0", | ||||
| 		"svelte-i18n": "^3.3.7", | ||||
| 		"svelte-preprocess": "^4.6.9", | ||||
| 		"vite": "^2.1.2", | ||||
| 		"vite-plugin-windicss": "^0.9.2" | ||||
| 		"@odit/license-exporter": "0.0.12", | ||||
| 		"@svitejs/vite-plugin-svelte": "0.11.1", | ||||
| 		"@tsconfig/svelte": "1.0.10", | ||||
| 		"axios": "0.21.1", | ||||
| 		"prettier": "2.2.1", | ||||
| 		"prettier-plugin-svelte": "2.2.0", | ||||
| 		"release-it": "14.5.1", | ||||
| 		"svelte": "3.35.0", | ||||
| 		"svelte-i18n": "3.3.7", | ||||
| 		"svelte-preprocess": "4.6.9", | ||||
| 		"vite": "2.1.2", | ||||
| 		"vite-plugin-windicss": "0.9.2" | ||||
| 	}, | ||||
| 	"dependencies": { | ||||
| 		"validator": "^13.5.2" | ||||
| 		"validator": "13.5.2" | ||||
| 	}, | ||||
| 	"release-it": { | ||||
| 		"git": { | ||||
| @@ -46,5 +42,8 @@ | ||||
| 		"hooks": { | ||||
| 			"after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node order.js  && git add src/locales" | ||||
| 		} | ||||
| 	}, | ||||
| 	"volta": { | ||||
| 		"node": "19.9.0" | ||||
| 	} | ||||
| } | ||||
|   | ||||
							
								
								
									
										2655
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										2655
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,17 +1,19 @@ | ||||
| <script> | ||||
|   import isURL from "validator/lib/isURL"; | ||||
|   import isUUID from "validator/lib/isUUID"; | ||||
|   import { apikey, lang, stationinfo, api_endpoint } from "./store.js"; | ||||
|   import { apikey, lang, stationinfo, api_endpoint, page } from "./store.js"; | ||||
|   import axios from "axios"; | ||||
|   import background from "./kaya_kids_background.jpg"; | ||||
|   import { _, locale } from "svelte-i18n"; | ||||
|   let token; | ||||
|   let api_endpoint_input = ""; | ||||
|   $: error = false; | ||||
|   $: errormessage = ""; | ||||
|   $: isTokenValid = | ||||
|     token?.length === 44 && | ||||
|     token.split(".")[0].length === 7 && | ||||
|     isUUID(token.split(".")[1]); | ||||
|     token === "rst" || | ||||
|     (token?.length === 44 && | ||||
|       token.split(".")[0].length === 7 && | ||||
|       isUUID(token.split(".")[1])); | ||||
|   $: isEndpointValid = isURL(api_endpoint_input); | ||||
| </script> | ||||
|  | ||||
| @@ -66,22 +68,30 @@ | ||||
|           class="flex flex-col pt-3 md:pt-8" | ||||
|           onsubmit="event.preventDefault();" | ||||
|           on:submit={() => { | ||||
|             axios | ||||
|               .request({ | ||||
|                 method: "GET", | ||||
|                 url: $api_endpoint + "api/stations/me", | ||||
|                 headers: { Authorization: "Bearer " + token }, | ||||
|               }) | ||||
|               .then(function (response) { | ||||
|                 error = false; | ||||
|                 errormessage = ""; | ||||
|                 apikey.set(token); | ||||
|                 stationinfo.set(JSON.stringify(response.data)); | ||||
|               }) | ||||
|               .catch(function (e) { | ||||
|                 error = true; | ||||
|                 errormessage = e.response.data.short; | ||||
|               }); | ||||
|             if (token === "rst") { | ||||
|               apikey.set(""); | ||||
|               api_endpoint.set(""); | ||||
|               page.set(""); | ||||
|               token = ""; | ||||
|               api_endpoint_input = ""; | ||||
|             } else { | ||||
|               axios | ||||
|                 .request({ | ||||
|                   method: "GET", | ||||
|                   url: $api_endpoint + "api/stations/me", | ||||
|                   headers: { Authorization: "Bearer " + token }, | ||||
|                 }) | ||||
|                 .then(function (response) { | ||||
|                   error = false; | ||||
|                   errormessage = ""; | ||||
|                   apikey.set(token); | ||||
|                   stationinfo.set(JSON.stringify(response.data)); | ||||
|                 }) | ||||
|                 .catch(function (e) { | ||||
|                   error = true; | ||||
|                   errormessage = e.response.data.short; | ||||
|                 }); | ||||
|             } | ||||
|           }} | ||||
|         > | ||||
|           <div class="flex flex-col pt-4"> | ||||
| @@ -117,10 +127,18 @@ | ||||
|           class="flex flex-col pt-3 md:pt-8" | ||||
|           onsubmit="event.preventDefault();" | ||||
|           on:submit={() => { | ||||
|             if (api_endpoint_input.substr(-1) !== "/") { | ||||
|               api_endpoint_input = api_endpoint_input + "/"; | ||||
|             if (api_endpoint_input === "rst") { | ||||
|               apikey.set(""); | ||||
|               api_endpoint.set(""); | ||||
|               page.set(""); | ||||
|               token = ""; | ||||
|               api_endpoint_input = ""; | ||||
|             } else { | ||||
|               if (api_endpoint_input.substr(-1) !== "/") { | ||||
|                 api_endpoint_input = api_endpoint_input + "/"; | ||||
|               } | ||||
|               api_endpoint.set(api_endpoint_input); | ||||
|             } | ||||
|             api_endpoint.set(api_endpoint_input); | ||||
|           }} | ||||
|         > | ||||
|           <div class="flex flex-col pt-4"> | ||||
| @@ -239,7 +257,7 @@ | ||||
|     <img | ||||
|       alt="" | ||||
|       class="object-cover w-full h-screen hidden md:block" | ||||
|       src="https://source.unsplash.com/IXUM4cJynP0" | ||||
|       src={background} | ||||
|     /> | ||||
|   </div> | ||||
| </div> | ||||
|   | ||||
| @@ -39,10 +39,10 @@ | ||||
|     </div> | ||||
|   </div> | ||||
|  | ||||
|   <h1 class="mr-6 text-7xl font-semibold text-center text-gray-900"> | ||||
|   <h1 class="mr-6 text-7xl font-semibold text-center text-gray-900 font-mono"> | ||||
|     {hours}:{minutes}:{seconds} | ||||
|   </h1> | ||||
|   <section class="px-4 py-24 mx-auto max-w-7xl"> | ||||
|   <section class="px-4 py-2 mx-auto max-w-7xl"> | ||||
|     <div class="mx-auto space-y-5 w-full md:w-1/2"> | ||||
|       {#if lastscan_error} | ||||
|         <div | ||||
| @@ -54,7 +54,6 @@ | ||||
|         </div> | ||||
|       {/if} | ||||
|       <form | ||||
|         class="space-y-4" | ||||
|         onsubmit="event.preventDefault();" | ||||
|         on:submit={() => { | ||||
|           if (card === "cnf") { | ||||
| @@ -114,36 +113,39 @@ | ||||
|           /> | ||||
|         </label> | ||||
|         {#if lastscan_totaldistance} | ||||
|           {#if !lastscan_valid || lastscan_error} | ||||
|             <svg | ||||
|               xmlns="http://www.w3.org/2000/svg" | ||||
|               width="20rem" | ||||
|               height="20rem" | ||||
|               class="ml-auto mr-auto" | ||||
|               version="1.0" | ||||
|               title="Invalid" | ||||
|               viewBox="0 0 100 100" | ||||
|               ><g fill="none" stroke="red" | ||||
|                 ><path d="M6 6l88 88" stroke-width="18.1" /><path | ||||
|                   d="M6 94L94 6" | ||||
|                   stroke-width="17.8" | ||||
|                 /></g | ||||
|               ></svg | ||||
|             > | ||||
|           {:else} | ||||
|             <svg | ||||
|               xmlns="http://www.w3.org/2000/svg" | ||||
|               width="20rem" | ||||
|               height="20rem" | ||||
|               class="ml-auto mr-auto" | ||||
|               title="Valid" | ||||
|               viewBox="0 0 600 600" | ||||
|               ><path | ||||
|                 d="M8 405s115 129 138 182h99c41-126 203-429 341-535 28-37-43-52-102-27-87 36-252 317-283 384-44 12-90-74-90-74z" | ||||
|                 fill="#181" | ||||
|               /></svg | ||||
|             > | ||||
|           {/if} | ||||
|           <div class="w-full text-center items-center"> | ||||
|             {#if !lastscan_valid || lastscan_error} | ||||
|               <svg | ||||
|                 xmlns="http://www.w3.org/2000/svg" | ||||
|                 fill="none" | ||||
|                 stroke-width="1.5" | ||||
|                 stroke="currentColor" | ||||
|                 class="w-30 h-30 text-center mx-auto text-red-600" | ||||
|                 viewBox="5.25 5.25 13.5 13.5" | ||||
|               > | ||||
|                 <path | ||||
|                   stroke-linecap="round" | ||||
|                   stroke-linejoin="round" | ||||
|                   d="M6 18L18 6M6 6l12 12" | ||||
|                 /> | ||||
|               </svg> | ||||
|             {:else} | ||||
|               <svg | ||||
|                 xmlns="http://www.w3.org/2000/svg" | ||||
|                 fill="none" | ||||
|                 stroke-width="1.5" | ||||
|                 stroke="currentColor" | ||||
|                 class="w-30 h-30 text-center mx-auto text-green-600" | ||||
|                 viewBox="3.75 4.5 16.5 15" | ||||
|               > | ||||
|                 <path | ||||
|                   stroke-linecap="round" | ||||
|                   stroke-linejoin="round" | ||||
|                   d="m4.5 12.75 6 6 9-13.5" | ||||
|                 /> | ||||
|               </svg> | ||||
|             {/if} | ||||
|           </div> | ||||
|           <h1 class="text-2xl font-bold text-center">{$_("total-distance")}</h1> | ||||
|           <h1 class="text-6xl font-bold text-center"> | ||||
|             {lastscan_totaldistance} | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								src/kaya_kids_background.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/kaya_kids_background.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 538 KiB | 
| @@ -1,19 +1,7 @@ | ||||
| import svelte from '@svitejs/vite-plugin-svelte'; | ||||
| import windiCSS from 'vite-plugin-windicss'; | ||||
| import { minify } from 'html-minifier'; | ||||
| import { defineConfig } from 'vite'; | ||||
| // | ||||
| const indexReplace = () => { | ||||
| 	return { | ||||
| 		name: 'html-transform', | ||||
| 		transformIndexHtml(html) { | ||||
| 			return minify(html, { | ||||
| 				collapseWhitespace: true | ||||
| 			}); | ||||
| 		} | ||||
| 	}; | ||||
| }; | ||||
|  | ||||
| export default defineConfig(({ command, mode }) => { | ||||
| 	const isProduction = mode === 'production'; | ||||
| 	return { | ||||
| @@ -43,8 +31,7 @@ export default defineConfig(({ command, mode }) => { | ||||
| 				preprocess: [ | ||||
| 					// | ||||
| 				] | ||||
| 			}), | ||||
| 			indexReplace() | ||||
| 			}) | ||||
| 		] | ||||
| 	}; | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user