15 Commits

10 changed files with 2863 additions and 34 deletions

View File

@@ -12,19 +12,30 @@ get:
path: odit-ci-bot path: odit-ci-bot
name: apikey name: apikey
---
kind: secret
name: npm_url
get:
path: odit-npm-cache
name: url
--- ---
kind: pipeline kind: pipeline
type: kubernetes type: kubernetes
name: build:tag name: build:tag
steps: steps:
- name: run build - name: run build
image: node:15.11.0-alpine3.13 image: registry.odit.services/hub/library/node:19.5.0-alpine3.16
commands: commands:
- apk add git zip -f - apk add git zip -f
- yarn - npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@8
- yarn build - pnpm i
- pnpm build
- mkdir out - mkdir out
- zip -r out/dist.zip dist - zip -r out/dist.zip dist
environment:
NPM_REGISTRY_URL:
from_secret: npm_url
- name: gitea add packages to build - name: gitea add packages to build
image: plugins/gitea-release image: plugins/gitea-release
settings: settings:

View File

@@ -2,8 +2,32 @@
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.
#### [v0.1.4](https://git.odit.services/lfk/scanclient/compare/0.1.3...v0.1.4) #### [v0.2.0](https://git.odit.services/lfk/scanclient/compare/0.1.6...v0.2.0)
- 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)
- 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)
> 7 April 2021
- 🚀Bumped version to 0.1.4 [`0a23f6a`](https://git.odit.services/lfk/scanclient/commit/0a23f6a7e5d77852c035bcd0ad49260d429d687d)
- Formatting [`277269e`](https://git.odit.services/lfk/scanclient/commit/277269e299924dbc76b39d3503aa50da43888622) - Formatting [`277269e`](https://git.odit.services/lfk/scanclient/commit/277269e299924dbc76b39d3503aa50da43888622)
- Added fix for empty input [`0cd3c6d`](https://git.odit.services/lfk/scanclient/commit/0cd3c6da1bb885eebb132b04ec3ef8e08f4ef679) - Added fix for empty input [`0cd3c6d`](https://git.odit.services/lfk/scanclient/commit/0cd3c6da1bb885eebb132b04ec3ef8e08f4ef679)

View File

@@ -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 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 . . COPY . .
RUN yarn RUN pnpm build
RUN yarn build
FROM registry.odit.services/library/nginx-brotli:3.15 as final
COPY --from=build /app/dist /usr/share/nginx/html

View File

@@ -3,6 +3,7 @@
## ✒️ Overview ## ✒️ Overview
This is an API client for [https://git.odit.services/lfk/backend](@lfk/backend) 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). - 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 ## 🚀 Getting Started
``` ```

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lfk/scanclient", "name": "@lfk/scanclient",
"version": "0.1.4", "version": "0.2.0",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",

2767
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,19 @@
<script> <script>
import isURL from "validator/lib/isURL"; import isURL from "validator/lib/isURL";
import isUUID from "validator/lib/isUUID"; 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 axios from "axios";
import background from "./kaya_kids_background.jpg";
import { _, locale } from "svelte-i18n"; import { _, locale } from "svelte-i18n";
let token; let token;
let api_endpoint_input = ""; let api_endpoint_input = "";
$: error = false; $: error = false;
$: errormessage = ""; $: errormessage = "";
$: isTokenValid = $: isTokenValid =
token?.length === 44 && token === "rst" ||
token.split(".")[0].length === 7 && (token?.length === 44 &&
isUUID(token.split(".")[1]); token.split(".")[0].length === 7 &&
isUUID(token.split(".")[1]));
$: isEndpointValid = isURL(api_endpoint_input); $: isEndpointValid = isURL(api_endpoint_input);
</script> </script>
@@ -66,22 +68,30 @@
class="flex flex-col pt-3 md:pt-8" class="flex flex-col pt-3 md:pt-8"
onsubmit="event.preventDefault();" onsubmit="event.preventDefault();"
on:submit={() => { on:submit={() => {
axios if (token === "rst") {
.request({ apikey.set("");
method: "GET", api_endpoint.set("");
url: $api_endpoint + "api/stations/me", page.set("");
headers: { Authorization: "Bearer " + token }, token = "";
}) api_endpoint_input = "";
.then(function (response) { } else {
error = false; axios
errormessage = ""; .request({
apikey.set(token); method: "GET",
stationinfo.set(JSON.stringify(response.data)); url: $api_endpoint + "api/stations/me",
}) headers: { Authorization: "Bearer " + token },
.catch(function (e) { })
error = true; .then(function (response) {
errormessage = e.response.data.short; 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"> <div class="flex flex-col pt-4">
@@ -117,10 +127,18 @@
class="flex flex-col pt-3 md:pt-8" class="flex flex-col pt-3 md:pt-8"
onsubmit="event.preventDefault();" onsubmit="event.preventDefault();"
on:submit={() => { on:submit={() => {
if (api_endpoint_input.substr(-1) !== "/") { if (api_endpoint_input === "rst") {
api_endpoint_input = api_endpoint_input + "/"; 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"> <div class="flex flex-col pt-4">
@@ -239,7 +257,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={background}
/> />
</div> </div>
</div> </div>

View File

@@ -29,7 +29,7 @@
</div> </div>
<div class="my-1 px-1 w-1/3 overflow-hidden text-center self-center"> <div class="my-1 px-1 w-1/3 overflow-hidden text-center self-center">
Lauf Für Kaya! Scan 📷 Lauf Für Kaya! Scan
</div> </div>
<div class="my-1 px-1 w-1/3 overflow-hidden text-center self-center"> <div class="my-1 px-1 w-1/3 overflow-hidden text-center self-center">

View File

@@ -6,7 +6,7 @@
<div class="p-5 min-h-screen"> <div class="p-5 min-h-screen">
<h1 class="font-bold text-3xl w-full text-center text-gray-900"> <h1 class="font-bold text-3xl w-full text-center text-gray-900">
Lauf Für Kaya! Scan 📷 Lauf Für Kaya! Scan
</h1> </h1>
<h1 class="text-3xl w-full text-center text-gray-900">{$_("settings")}</h1> <h1 class="text-3xl w-full text-center text-gray-900">{$_("settings")}</h1>
<p class="block text-sm font-bold text-gray-700 mt-2">{$_("api_key")}</p> <p class="block text-sm font-bold text-gray-700 mt-2">{$_("api_key")}</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 KiB