Compare commits
27 Commits
0.9.0
...
3e289d83f9
| Author | SHA1 | Date | |
|---|---|---|---|
|
3e289d83f9
|
|||
|
ec6d252928
|
|||
|
4a11fef0e0
|
|||
|
b85c3958c2
|
|||
|
780bc54604
|
|||
|
cb2f8eeab1
|
|||
|
c36db2c18f
|
|||
|
decc80fcc1
|
|||
|
9a3d307dfa
|
|||
|
240f44df60
|
|||
|
677e65f44a
|
|||
|
772eca64bb
|
|||
|
25d25401df
|
|||
|
cac5103d52
|
|||
|
6aca13f0cb
|
|||
|
78fea1ea04
|
|||
|
fa51b31fe4
|
|||
|
b9624aa5ad
|
|||
|
09e48e771f
|
|||
|
8364321a7c
|
|||
|
659fa77dca
|
|||
|
10c9127256
|
|||
|
a3a1e89aa1
|
|||
|
5587175534
|
|||
|
8e2b355466
|
|||
|
eccce0795b
|
|||
|
54540be6e1
|
117
.drone.yml
117
.drone.yml
@@ -1,117 +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: secret
|
|
||||||
name: git_ssh
|
|
||||||
get:
|
|
||||||
path: odit-git-bot
|
|
||||||
name: sshkey
|
|
||||||
|
|
||||||
---
|
|
||||||
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/selfservice
|
|
||||||
tags:
|
|
||||||
- dev
|
|
||||||
registry: registry.odit.services
|
|
||||||
mtu: 1000
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- dev
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: kubernetes
|
|
||||||
name: build:testing
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build testing
|
|
||||||
image: plugins/docker
|
|
||||||
depends_on: [clone]
|
|
||||||
settings:
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
repo: registry.odit.services/lfk/selfservice
|
|
||||||
tags:
|
|
||||||
- testing
|
|
||||||
registry: registry.odit.services
|
|
||||||
mtu: 1000
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- bugfix/31-env_linking
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: kubernetes
|
|
||||||
name: build:latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build latest
|
|
||||||
image: plugins/docker
|
|
||||||
depends_on: [clone]
|
|
||||||
settings:
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
repo: registry.odit.services/lfk/selfservice
|
|
||||||
tags:
|
|
||||||
- latest
|
|
||||||
registry: registry.odit.services
|
|
||||||
mtu: 1000
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- main
|
|
||||||
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/selfservice
|
|
||||||
tags:
|
|
||||||
- '${DRONE_TAG}'
|
|
||||||
registry: registry.odit.services
|
|
||||||
mtu: 1000
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
33
.woodpecker/build.yml
Normal file
33
.woodpecker/build.yml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
steps:
|
||||||
|
- name: build latest
|
||||||
|
image: woodpeckerci/plugin-docker-buildx
|
||||||
|
settings:
|
||||||
|
repo: registry.odit.services/lfk/selfservice
|
||||||
|
tags:
|
||||||
|
- latest
|
||||||
|
registry: registry.odit.services
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
cache_from: registry.odit.services/lfk/selfservice:dev
|
||||||
|
username:
|
||||||
|
from_secret: odit-registry-builder-username
|
||||||
|
password:
|
||||||
|
from_secret: odit-registry-builder-password
|
||||||
|
when:
|
||||||
|
branch: main
|
||||||
|
- name: build dev
|
||||||
|
image: woodpeckerci/plugin-docker-buildx
|
||||||
|
settings:
|
||||||
|
repo: registry.odit.services/lfk/selfservice
|
||||||
|
tags:
|
||||||
|
- dev
|
||||||
|
registry: registry.odit.services
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
cache_from: registry.odit.services/lfk/selfservice:dev
|
||||||
|
username:
|
||||||
|
from_secret: odit-registry-builder-username
|
||||||
|
password:
|
||||||
|
from_secret: odit-registry-builder-password
|
||||||
|
when:
|
||||||
|
branch: dev
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
17
.woodpecker/release.yml
Normal file
17
.woodpecker/release.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
steps:
|
||||||
|
- name: build tag
|
||||||
|
image: woodpeckerci/plugin-docker-buildx
|
||||||
|
settings:
|
||||||
|
repo: registry.odit.services/lfk/selfservice
|
||||||
|
tags:
|
||||||
|
- "${CI_COMMIT_TAG}"
|
||||||
|
registry: registry.odit.services
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
cache_from: registry.odit.services/lfk/selfservice:dev
|
||||||
|
username:
|
||||||
|
from_secret: odit-registry-builder-username
|
||||||
|
password:
|
||||||
|
from_secret: odit-registry-builder-password
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
43
CHANGELOG.md
43
CHANGELOG.md
@@ -2,10 +2,53 @@
|
|||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
#### [0.11.3](https://git.odit.services/lfk/selfservice/compare/0.11.2...0.11.3)
|
||||||
|
|
||||||
|
- fix: registration code white bg [`#50`](https://git.odit.services/lfk/selfservice/issues/50)
|
||||||
|
- Pinned pnpm and lockfile [`6aca13f`](https://git.odit.services/lfk/selfservice/commit/6aca13f0cb1bc8fa43f0f09c554cec0758acd7a1)
|
||||||
|
- switched drone to kaniko with cache [`cac5103`](https://git.odit.services/lfk/selfservice/commit/cac5103d52427e777e4c3624ebb253ad7bd393d6)
|
||||||
|
- Switched dockerfile to pnpm with cache [`78fea1e`](https://git.odit.services/lfk/selfservice/commit/78fea1ea045a7281fe0a2841fc4d5f1505dcb3cf)
|
||||||
|
- chore(deps): pnpm@8.1.1 [`677e65f`](https://git.odit.services/lfk/selfservice/commit/677e65f44ae4bcc6f9af4732d813f337da0c51d2)
|
||||||
|
- fix(Footer): darkmode colors in lightmode [`772eca6`](https://git.odit.services/lfk/selfservice/commit/772eca64bb38ce1cf1ea1b58859dd744588a88e1)
|
||||||
|
|
||||||
|
#### [0.11.2](https://git.odit.services/lfk/selfservice/compare/0.11.1...0.11.2)
|
||||||
|
|
||||||
|
> 15 March 2023
|
||||||
|
|
||||||
|
- Added footer to every page [`b9624aa`](https://git.odit.services/lfk/selfservice/commit/b9624aa5ad57002852c84081fc710c2e977251bd)
|
||||||
|
- 🚀Bumped version to v0.11.2 [`fa51b31`](https://git.odit.services/lfk/selfservice/commit/fa51b31fe41d41b3ec9becad07ddab4cf73be051)
|
||||||
|
- Accept tos to accept privacy_policy [`09e48e7`](https://git.odit.services/lfk/selfservice/commit/09e48e771f4c0db4a7dbb898b05b347f1aad2292)
|
||||||
|
|
||||||
|
#### [0.11.1](https://git.odit.services/lfk/selfservice/compare/0.11.0...0.11.1)
|
||||||
|
|
||||||
|
> 18 February 2023
|
||||||
|
|
||||||
|
- Profile: add "---" if no data set [`659fa77`](https://git.odit.services/lfk/selfservice/commit/659fa77dca3b527d896d752386e91a167a1b8f4f)
|
||||||
|
- 🚀Bumped version to v0.11.1 [`8364321`](https://git.odit.services/lfk/selfservice/commit/8364321a7cb6a0037ee0c5055b028c4cf883fb10)
|
||||||
|
|
||||||
|
#### [0.11.0](https://git.odit.services/lfk/selfservice/compare/0.10.0...0.11.0)
|
||||||
|
|
||||||
|
> 3 February 2023
|
||||||
|
|
||||||
|
- pnpm migration [`a3a1e89`](https://git.odit.services/lfk/selfservice/commit/a3a1e89aa14798e1d180697f91809e282a229f23)
|
||||||
|
- 🚀Bumped version to v0.11.0 [`10c9127`](https://git.odit.services/lfk/selfservice/commit/10c9127256edf2cbad1dc6690d5f4e87c32f6396)
|
||||||
|
|
||||||
|
#### [0.10.0](https://git.odit.services/lfk/selfservice/compare/0.9.0...0.10.0)
|
||||||
|
|
||||||
|
> 3 February 2023
|
||||||
|
|
||||||
|
- text cleanups + footer [`eccce07`](https://git.odit.services/lfk/selfservice/commit/eccce0795b6960aa3a2e9368de5ae4bdf80997d7)
|
||||||
|
- updated nginx config for cache busting [`8e2b355`](https://git.odit.services/lfk/selfservice/commit/8e2b355466e9a37510be8bf03311d6b28e1a0d9f)
|
||||||
|
- improved profile page padding + full width registration code for easier scanning [`54540be`](https://git.odit.services/lfk/selfservice/commit/54540be6e12ed85afc96061b8548cd4ec6700eec)
|
||||||
|
- 🚀Bumped version to v0.10.0 [`5587175`](https://git.odit.services/lfk/selfservice/commit/5587175534188e05ab43d0eed9745484e01edb63)
|
||||||
|
|
||||||
#### [0.9.0](https://git.odit.services/lfk/selfservice/compare/0.8.3...0.9.0)
|
#### [0.9.0](https://git.odit.services/lfk/selfservice/compare/0.8.3...0.9.0)
|
||||||
|
|
||||||
|
> 3 February 2023
|
||||||
|
|
||||||
- wip: error registration ui feedback [`9ac14e8`](https://git.odit.services/lfk/selfservice/commit/9ac14e8a5d740fb4cd87645e69b2cfde73e4acc7)
|
- wip: error registration ui feedback [`9ac14e8`](https://git.odit.services/lfk/selfservice/commit/9ac14e8a5d740fb4cd87645e69b2cfde73e4acc7)
|
||||||
- wip: registration confirmation ui [`8928f84`](https://git.odit.services/lfk/selfservice/commit/8928f841dcd370daf28416adbf1adbe16fa4d76f)
|
- wip: registration confirmation ui [`8928f84`](https://git.odit.services/lfk/selfservice/commit/8928f841dcd370daf28416adbf1adbe16fa4d76f)
|
||||||
|
- 🚀Bumped version to v0.9.0 [`3392a2e`](https://git.odit.services/lfk/selfservice/commit/3392a2e68edb8fcf2aa6dd4b962abbf6ac27a414)
|
||||||
|
|
||||||
#### [0.8.3](https://git.odit.services/lfk/selfservice/compare/0.8.2...0.8.3)
|
#### [0.8.3](https://git.odit.services/lfk/selfservice/compare/0.8.2...0.8.3)
|
||||||
|
|
||||||
|
|||||||
14
Dockerfile
14
Dockerfile
@@ -1,10 +1,12 @@
|
|||||||
FROM registry.odit.services/hub/library/node:15.9.0-alpine3.13
|
FROM registry.odit.services/hub/library/node:19.5.0-alpine3.17 AS build
|
||||||
|
ARG NPM_REGISTRY_URL=https://registry.npmjs.org
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN yarn
|
RUN npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@9
|
||||||
RUN yarn build
|
RUN pnpm i && pnpm build && pnpm postbuild
|
||||||
RUN yarn postbuild
|
|
||||||
# final image
|
# final image
|
||||||
FROM registry.odit.services/library/nginx-brotli:3.15
|
FROM registry.odit.services/library/nginx-brotli:3.15 AS final
|
||||||
COPY --from=0 /app/dist /usr/share/nginx/html
|
COPY --from=build /app/dist /usr/share/nginx/html
|
||||||
COPY ./nginx.conf /etc/nginx/nginx.conf
|
COPY ./nginx.conf /etc/nginx/nginx.conf
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
const fs = require('fs');
|
import { existsSync, writeFileSync, readFileSync } from "node:fs";
|
||||||
if (fs.existsSync('./dist/index.html')) {
|
if (existsSync("./dist/index.html")) {
|
||||||
const content = fs.readFileSync('./dist/index.html', { encoding: 'utf8' });
|
const content = readFileSync("./dist/index.html", { encoding: "utf8" });
|
||||||
const newcontent = content.replace(`"/env.js"`, `"./env.js"`);
|
const newcontent = content.replace(`"/env.js"`, `"./env.js"`);
|
||||||
fs.writeFileSync('./dist/index.html', newcontent);
|
writeFileSync("./dist/index.html", newcontent);
|
||||||
}
|
}
|
||||||
|
|||||||
52
nginx.conf
52
nginx.conf
@@ -7,15 +7,21 @@ http {
|
|||||||
error_page 404 /index.html;
|
error_page 404 /index.html;
|
||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
location / {
|
location / {
|
||||||
rewrite /register/(.*) /$1 break;
|
rewrite /register/(.*) /$1 break;
|
||||||
rewrite /profile/(.*) /$1 break;
|
rewrite /profile/(.*) /$1 break;
|
||||||
|
|
||||||
try_files $uri $uri/ /index.html;
|
try_files $uri $uri/ /index.html;
|
||||||
|
|
||||||
|
add_header Last-Modified $date_gmt;
|
||||||
|
add_header Cache-Control 'private no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
|
||||||
|
if_modified_since off;
|
||||||
|
expires off;
|
||||||
|
etag off;
|
||||||
}
|
}
|
||||||
|
|
||||||
location ~* \.(?:ico|css|gif|jpe?g|png)$ {
|
location ~* \.(?:ico|css|gif|jpe?g|png)$ {
|
||||||
rewrite /register/(.*) /$1 break;
|
rewrite /register/(.*) /$1 break;
|
||||||
rewrite /profile/(.*) /$1 break;
|
rewrite /profile/(.*) /$1 break;
|
||||||
|
|
||||||
expires 1y;
|
expires 1y;
|
||||||
add_header Pragma public;
|
add_header Pragma public;
|
||||||
@@ -35,24 +41,24 @@ http {
|
|||||||
gzip_buffers 16 8k;
|
gzip_buffers 16 8k;
|
||||||
gzip_http_version 1.1;
|
gzip_http_version 1.1;
|
||||||
gzip_types application/javascript
|
gzip_types application/javascript
|
||||||
application/rss+xml
|
application/rss+xml
|
||||||
application/vnd.ms-fontobject
|
application/vnd.ms-fontobject
|
||||||
application/x-font
|
application/x-font
|
||||||
application/x-font-opentype
|
application/x-font-opentype
|
||||||
application/x-font-otf
|
application/x-font-otf
|
||||||
application/x-font-truetype
|
application/x-font-truetype
|
||||||
application/x-font-ttf
|
application/x-font-ttf
|
||||||
application/x-javascript
|
application/x-javascript
|
||||||
application/xhtml+xml
|
application/xhtml+xml
|
||||||
application/xml
|
application/xml
|
||||||
font/opentype
|
font/opentype
|
||||||
font/otf
|
font/otf
|
||||||
font/ttf
|
font/ttf
|
||||||
image/svg+xml
|
image/svg+xml
|
||||||
image/x-icon
|
image/x-icon
|
||||||
text/css
|
text/css
|
||||||
text/javascript
|
text/javascript
|
||||||
text/plain
|
text/plain
|
||||||
text/xml;
|
text/xml;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
33
package.json
33
package.json
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@odit/lfk-selfservice",
|
"name": "@odit/lfk-selfservice",
|
||||||
"version": "0.9.0",
|
"version": "0.11.3",
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
@@ -10,26 +11,22 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bwip-js": "3.2.2",
|
"bwip-js": "3.2.2",
|
||||||
"marked": "2.0.3",
|
"marked": "2.0.3",
|
||||||
"redaxios": "0.4.1",
|
"redaxios": "0.5.1",
|
||||||
"toastify-js": "1.10.0",
|
"toastify-js": "1.12.0",
|
||||||
"validator": "13.5.2",
|
"validator": "13.12.0",
|
||||||
|
"vue": "3.5.13",
|
||||||
"vue-i18n": "9.1.4",
|
"vue-i18n": "9.1.4",
|
||||||
"vue-toastification": "2.0.0-rc.1",
|
"vue-router": "4.5.0",
|
||||||
"vue": "3.0.9",
|
"vue-toastification": "2.0.0-rc.1"
|
||||||
"vue-router": "4.0.5"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/jit": "0.1.18",
|
"@tailwindcss/vite": "4.0.0-beta.4",
|
||||||
"@tailwindcss/aspect-ratio": "0.2.0",
|
"@vitejs/plugin-vue": "5.2.1",
|
||||||
"@tailwindcss/forms": "0.3.2",
|
"autoprefixer": "10.4.20",
|
||||||
"@tailwindcss/line-clamp": "0.2.0",
|
"release-it": "17.10.0",
|
||||||
"@tailwindcss/typography": "0.4.0",
|
"tailwindcss": "4.0.0-beta.4",
|
||||||
"@vitejs/plugin-vue": "1.2.1",
|
"vite": "6.0.2",
|
||||||
"@vue/compiler-sfc": "3.0.11",
|
"vite-plugin-vue-devtools": "^7.6.7"
|
||||||
"autoprefixer": "10.2.5",
|
|
||||||
"tailwindcss": "2.1.1",
|
|
||||||
"release-it": "14.6.1",
|
|
||||||
"vite": "2.1.5"
|
|
||||||
},
|
},
|
||||||
"release-it": {
|
"release-it": {
|
||||||
"git": {
|
"git": {
|
||||||
|
|||||||
6209
pnpm-lock.yaml
generated
6209
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
plugins: {
|
|
||||||
'@tailwindcss/jit': {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<footer class="text-gray-400 bg-gray-900 body-font">
|
<footer>
|
||||||
<div class="container px-5 py-8 mx-auto flex items-center sm:flex-row flex-col">
|
<div class="container px-5 py-8 mx-auto flex items-center sm:flex-row flex-col">
|
||||||
<p class="text-sm text-gray-400 sm:ml-4 sm:pl-4 sm:py-2 sm:mt-0 mt-4">
|
<p class="text-sm text-gray-400 sm:ml-4 sm:pl-4 sm:py-2 sm:mt-0 mt-4">
|
||||||
Lauf für Kaya! Selfservice - Copyright © 2023 + proudly powered by
|
Lauf für Kaya! Selfservice - Copyright © 2024 + proudly powered by
|
||||||
<a
|
<a
|
||||||
class="underline"
|
class="underline"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineProps, reactive } from 'vue'
|
import { reactive } from 'vue'
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
msg: String
|
msg: String
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"apartment_suite_etc": "Addresszeile 2",
|
"apartment_suite_etc": "Addresszeile 2",
|
||||||
"cancel_keep_my_data": "Abbrechen, meine Daten behalten",
|
"cancel_keep_my_data": "Abbrechen, meine Daten behalten",
|
||||||
"configuration_error": "Konfigurationsfehler",
|
"configuration_error": "Konfigurationsfehler",
|
||||||
"confirm_delete_all_of_my_data": "Bestätigung, meine gesamten Daten löschen",
|
"confirm_delete_all_of_my_data": "Bestätigen, meine Daten löschen",
|
||||||
"confirm_personal_data": "Hiermit bestätige ich die Vollständigkeit und Richtigkeit der oben genannten Angaben",
|
"confirm_personal_data": "Hiermit bestätige ich die Vollständigkeit und Richtigkeit der oben genannten Angaben",
|
||||||
"current_total_amount_in_eur": "Aktueller Gesamtbetrag (in €)",
|
"current_total_amount_in_eur": "Aktueller Gesamtbetrag (in €)",
|
||||||
"delete_all_of_my_data": "Meine gesamten Daten löschen",
|
"delete_all_of_my_data": "Meine gesamten Daten löschen",
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
"profile": "Profil",
|
"profile": "Profil",
|
||||||
"provide_address": "Adresse angeben?",
|
"provide_address": "Adresse angeben?",
|
||||||
"register": {
|
"register": {
|
||||||
"register_now": "Jetzt für den Lauf für Kaya! 2023 registrieren."
|
"register_now": "Jetzt für den Lauf für Kaya! 2025 registrieren."
|
||||||
},
|
},
|
||||||
"register_now": "Jetzt registrieren!",
|
"register_now": "Jetzt registrieren!",
|
||||||
"register_now_small": "Jetzt registrieren",
|
"register_now_small": "Jetzt registrieren",
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
"profile": "Profile",
|
"profile": "Profile",
|
||||||
"provide_address": "Provide a postal address?",
|
"provide_address": "Provide a postal address?",
|
||||||
"register": {
|
"register": {
|
||||||
"register_now": "Register now for Lauf für Kaya! 2023."
|
"register_now": "Register now for Lauf für Kaya! 2025."
|
||||||
},
|
},
|
||||||
"register_now": "Register now!",
|
"register_now": "Register now!",
|
||||||
"register_now_small": "Register now",
|
"register_now_small": "Register now",
|
||||||
|
|||||||
@@ -1,3 +1 @@
|
|||||||
@import 'tailwindcss/base';
|
@import "tailwindcss";
|
||||||
@import 'tailwindcss/components';
|
|
||||||
@import 'tailwindcss/utilities';
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="bg-cover bg-fixed m-0 h-screen" style="background-image: url('./background.jpg');">
|
<div class="bg-cover bg-fixed m-0 h-screen" v-bind:style='{ backgroundImage: "url(" + background_base64 + ")", }'>
|
||||||
<section class="container px-4 py-24 mx-auto">
|
<section class="container px-4 py-24 mx-auto">
|
||||||
<div class="w-full mx-auto text-center">
|
<div class="w-full mx-auto text-center">
|
||||||
<img src="/favicon.png" class="h-32 mx-auto" />
|
<img src="/favicon.png" class="h-32 mx-auto" />
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import background_base64 from "../assets/background.jpg?inline";
|
||||||
import Footer from "@/components/Footer.vue";
|
import Footer from "@/components/Footer.vue";
|
||||||
console.log(config);
|
console.log(config);
|
||||||
</script>
|
</script>
|
||||||
@@ -9,15 +9,18 @@
|
|||||||
<div class="mx-auto prose" v-html="content"></div>
|
<div class="mx-auto prose" v-html="content"></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<Footer></Footer>
|
||||||
</template>
|
</template>
|
||||||
<style src="../simple.css">
|
<style src="../simple.css">
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
import marked from "marked";
|
import marked from "marked";
|
||||||
|
import Footer from "@/components/Footer.vue";
|
||||||
export default {
|
export default {
|
||||||
|
components: {Footer},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
content: ""
|
content: "",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async beforeMount() {
|
async beforeMount() {
|
||||||
|
|||||||
@@ -9,12 +9,15 @@
|
|||||||
<div class="mx-auto prose" v-html="content"></div>
|
<div class="mx-auto prose" v-html="content"></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<Footer></Footer>
|
||||||
</template>
|
</template>
|
||||||
<style src="../simple.css">
|
<style src="../simple.css">
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
import marked from "marked";
|
import marked from "marked";
|
||||||
|
import Footer from "@/components/Footer.vue";
|
||||||
export default {
|
export default {
|
||||||
|
components: {Footer},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
content: ""
|
content: ""
|
||||||
|
|||||||
@@ -150,6 +150,10 @@
|
|||||||
py-2.5
|
py-2.5
|
||||||
px-5
|
px-5
|
||||||
rounded-md
|
rounded-md
|
||||||
|
mb-1
|
||||||
|
md:mb-auto
|
||||||
|
w-full
|
||||||
|
md:w-auto
|
||||||
bg-blue-500
|
bg-blue-500
|
||||||
hover:bg-blue-600 hover:shadow-lg
|
hover:bg-blue-600 hover:shadow-lg
|
||||||
"
|
"
|
||||||
@@ -188,9 +192,11 @@
|
|||||||
py-2.5
|
py-2.5
|
||||||
px-5
|
px-5
|
||||||
rounded-md
|
rounded-md
|
||||||
|
w-full
|
||||||
|
md:w-auto
|
||||||
bg-red-600
|
bg-red-600
|
||||||
hover:bg-red-700 hover:shadow-lg
|
hover:bg-red-700 hover:shadow-lg
|
||||||
ml-1
|
md:ml-1
|
||||||
"
|
"
|
||||||
@click="delete_me"
|
@click="delete_me"
|
||||||
>
|
>
|
||||||
@@ -220,7 +226,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<div class="flex flex-wrap">
|
<div class="flex flex-wrap">
|
||||||
<div class="w-full p-4">
|
<div class="w-full">
|
||||||
<div class="flex flex-wrap flex-col w-full tabs">
|
<div class="flex flex-wrap flex-col w-full tabs">
|
||||||
<div class="flex lg:flex-wrap flex-row lg:space-x-2">
|
<div class="flex lg:flex-wrap flex-row lg:space-x-2">
|
||||||
<div class="flex-none">
|
<div class="flex-none">
|
||||||
@@ -282,7 +288,11 @@
|
|||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
<div class="form-element">
|
<div class="form-element">
|
||||||
<div class="text-lg">{{ $t("registrierungscode") }}</div>
|
<div class="text-lg">{{ $t("registrierungscode") }}</div>
|
||||||
<img alt="Registrierungscode" :src="state.barcode" />
|
<img
|
||||||
|
class="w-full md:w-auto mb-2 bg-white p-2"
|
||||||
|
alt="Registrierungscode"
|
||||||
|
:src="state.barcode"
|
||||||
|
/>
|
||||||
<div class="text-lg">{{ $t("vorname") }}</div>
|
<div class="text-lg">{{ $t("vorname") }}</div>
|
||||||
<p
|
<p
|
||||||
class="
|
class="
|
||||||
@@ -301,7 +311,7 @@
|
|||||||
duration-200
|
duration-200
|
||||||
ease-in-out
|
ease-in-out
|
||||||
"
|
"
|
||||||
v-text="state.firstname"
|
v-text="state.firstname || '---'"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-element">
|
<div class="form-element">
|
||||||
@@ -323,7 +333,7 @@
|
|||||||
duration-200
|
duration-200
|
||||||
ease-in-out
|
ease-in-out
|
||||||
"
|
"
|
||||||
v-text="state.middlename"
|
v-text="state.middlename || '---'"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-element">
|
<div class="form-element">
|
||||||
@@ -345,7 +355,7 @@
|
|||||||
duration-200
|
duration-200
|
||||||
ease-in-out
|
ease-in-out
|
||||||
"
|
"
|
||||||
v-text="state.lastname"
|
v-text="state.lastname || '---'"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-element">
|
<div class="form-element">
|
||||||
@@ -367,7 +377,7 @@
|
|||||||
duration-200
|
duration-200
|
||||||
ease-in-out
|
ease-in-out
|
||||||
"
|
"
|
||||||
v-text="state.email"
|
v-text="state.email || '---'"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-element">
|
<div class="form-element">
|
||||||
@@ -389,7 +399,7 @@
|
|||||||
duration-200
|
duration-200
|
||||||
ease-in-out
|
ease-in-out
|
||||||
"
|
"
|
||||||
v-text="state.phone"
|
v-text="state.phone || '---'"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -628,6 +638,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- -->
|
||||||
|
<Footer></Footer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -636,6 +648,7 @@ import { reactive } from "vue";
|
|||||||
import { TYPE, useToast } from "vue-toastification";
|
import { TYPE, useToast } from "vue-toastification";
|
||||||
import axios from "redaxios";
|
import axios from "redaxios";
|
||||||
import bwipjs from "bwip-js";
|
import bwipjs from "bwip-js";
|
||||||
|
import Footer from "@/components/Footer.vue";
|
||||||
|
|
||||||
function textToBase64Barcode(text) {
|
function textToBase64Barcode(text) {
|
||||||
const canvas = document.createElement("canvas");
|
const canvas = document.createElement("canvas");
|
||||||
@@ -647,7 +660,11 @@ function textToBase64Barcode(text) {
|
|||||||
textxalign: "center",
|
textxalign: "center",
|
||||||
backgroundcolor: "ffffff",
|
backgroundcolor: "ffffff",
|
||||||
};
|
};
|
||||||
if (codeconfig.bcid === "code39" || codeconfig.bcid === "code128"|| codeconfig.bcid === "ean13") {
|
if (
|
||||||
|
codeconfig.bcid === "code39" ||
|
||||||
|
codeconfig.bcid === "code128" ||
|
||||||
|
codeconfig.bcid === "ean13"
|
||||||
|
) {
|
||||||
codeconfig.height = 10;
|
codeconfig.height = 10;
|
||||||
}
|
}
|
||||||
bwipjs.toCanvas(canvas, codeconfig);
|
bwipjs.toCanvas(canvas, codeconfig);
|
||||||
|
|||||||
@@ -68,15 +68,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<Footer></Footer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed, ref, reactive, defineProps } from "vue";
|
import { computed, ref, reactive } from "vue";
|
||||||
import axios from "redaxios";
|
import axios from "redaxios";
|
||||||
import isEmail from 'validator/es/lib/isEmail';
|
import isEmail from 'validator/es/lib/isEmail';
|
||||||
import isMobilePhone from 'validator/es/lib/isMobilePhone';
|
|
||||||
import isPostalCode from 'validator/es/lib/isPostalCode';
|
|
||||||
import { TYPE, useToast } from "vue-toastification";
|
import { TYPE, useToast } from "vue-toastification";
|
||||||
|
import Footer from "@/components/Footer.vue";
|
||||||
|
|
||||||
let user_email = ref("");
|
let user_email = ref("");
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -389,13 +389,13 @@
|
|||||||
for="agb_accepted"
|
for="agb_accepted"
|
||||||
class="font-medium text-gray-400 select-none"
|
class="font-medium text-gray-400 select-none"
|
||||||
>
|
>
|
||||||
{{ $t("i_accept", { tos: $t("tos") }) }}
|
{{ $t("i_accept", { tos: $t("privacy_policy") }) }}
|
||||||
<a
|
<a
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer,noopener"
|
rel="noreferrer,noopener"
|
||||||
href="https://lauf-fuer-kaya.de/datenschutz/"
|
href="https://lauf-fuer-kaya.de/datenschutz/"
|
||||||
class="underline"
|
class="underline"
|
||||||
>{{ $t("tos") }}</a
|
>{{ $t("privacy_policy") }}</a
|
||||||
>
|
>
|
||||||
{{ $t("i_accept_end") }}
|
{{ $t("i_accept_end") }}
|
||||||
<span class="font-bold">*</span>
|
<span class="font-bold">*</span>
|
||||||
@@ -453,15 +453,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<Footer></Footer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed, ref, reactive, defineProps } from "vue";
|
import { computed, ref, reactive } from "vue";
|
||||||
import axios from "redaxios";
|
import axios from "redaxios";
|
||||||
import isEmail from "validator/es/lib/isEmail";
|
import isEmail from "validator/es/lib/isEmail";
|
||||||
import isMobilePhone from "validator/es/lib/isMobilePhone";
|
import isMobilePhone from "validator/es/lib/isMobilePhone";
|
||||||
import isPostalCode from "validator/es/lib/isPostalCode";
|
import isPostalCode from "validator/es/lib/isPostalCode";
|
||||||
import { TYPE, useToast } from "vue-toastification";
|
import { TYPE, useToast } from "vue-toastification";
|
||||||
|
import Footer from "@/components/Footer.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
token: String,
|
token: String,
|
||||||
|
|||||||
@@ -11,9 +11,11 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<Footer></Footer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import Footer from "@/components/Footer.vue";
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
mail: String,
|
mail: String,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
purge: [ './index.html', './src/**/*.{vue,js,ts,jsx,tsx}' ],
|
|
||||||
darkMode: 'media', // or 'media' or 'class'
|
|
||||||
theme: {
|
|
||||||
extend: {}
|
|
||||||
},
|
|
||||||
variants: {
|
|
||||||
extend: {}
|
|
||||||
},
|
|
||||||
plugins: []
|
|
||||||
};
|
|
||||||
@@ -1,13 +1,15 @@
|
|||||||
import { defineConfig } from 'vite';
|
import { fileURLToPath, URL } from "node:url";
|
||||||
import vue from '@vitejs/plugin-vue';
|
|
||||||
import path from 'path';
|
import { defineConfig } from "vite";
|
||||||
|
import vue from "@vitejs/plugin-vue";
|
||||||
|
import tailwindcss from "@tailwindcss/vite";
|
||||||
|
import vueDevTools from "vite-plugin-vue-devtools";
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [ vue() ],
|
plugins: [vue(), vueDevTools(), tailwindcss()],
|
||||||
base: './',
|
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@': path.resolve(__dirname, '/src')
|
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user