Compare commits

...

21 Commits

Author SHA1 Message Date
3e289d83f9 feat(Home): improve background.jpg import
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2024-12-02 11:00:07 +01:00
ec6d252928 refactor: code cleanup 2024-12-02 10:55:06 +01:00
4a11fef0e0 chore(deps): update all
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2024-12-02 10:40:06 +01:00
b85c3958c2 chore: pnpm v9
Some checks are pending
ci/woodpecker/push/build Pipeline is running
2024-12-02 10:16:59 +01:00
780bc54604 refactor(ci): Make ready for new woodpecker
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2024-11-26 19:23:40 +01:00
cb2f8eeab1 chore: 2025 2024-11-21 10:49:46 +01:00
c36db2c18f Pin pnpm
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2023-11-06 20:27:30 +01:00
decc80fcc1 Merge branch 'dev' of git.odit.services:lfk/selfservice into dev
Some checks failed
ci/woodpecker/push/build Pipeline failed
2023-11-06 20:25:28 +01:00
9a3d307dfa feat(ci)!: Switch to woodpecker 2023-11-06 20:25:26 +01:00
240f44df60 🚀Bumped version to v0.11.3
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-07 15:17:49 +02:00
677e65f44a chore(deps): pnpm@8.1.1 2023-04-07 15:17:27 +02:00
772eca64bb fix(Footer): darkmode colors in lightmode
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-07 15:15:26 +02:00
25d25401df fix: registration code white bg
close #50
2023-04-07 15:13:44 +02:00
cac5103d52 switched drone to kaniko with cache
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-29 20:20:06 +02:00
6aca13f0cb Pinned pnpm and lockfile 2023-03-29 20:17:33 +02:00
78fea1ea04 Switched dockerfile to pnpm with cache 2023-03-29 20:17:18 +02:00
fa51b31fe4 🚀Bumped version to v0.11.2
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-15 19:27:59 +01:00
b9624aa5ad Added footer to every page 2023-03-15 19:27:40 +01:00
09e48e771f Accept tos to accept privacy_policy 2023-03-15 19:22:35 +01:00
8364321a7c 🚀Bumped version to v0.11.1
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-18 17:27:22 +01:00
659fa77dca Profile: add "---" if no data set
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-18 17:26:54 +01:00
24 changed files with 3819 additions and 2768 deletions

View File

@@ -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
View 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
View 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

View File

@@ -2,9 +2,36 @@
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)

View File

@@ -1,11 +1,12 @@
FROM registry.odit.services/hub/library/node:19.5.0-alpine3.17
FROM registry.odit.services/hub/library/node:19.5.0-alpine3.17 AS build
ARG NPM_REGISTRY_URL=https://registry.npmjs.org
WORKDIR /app
RUN npm i -g pnpm@7
COPY . .
RUN pnpm i --frozen-lockfile
RUN pnpm build
RUN pnpm postbuild
RUN npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@9
RUN pnpm i && pnpm build && pnpm postbuild
# final image
FROM registry.odit.services/library/nginx-brotli:3.15
COPY --from=0 /app/dist /usr/share/nginx/html
FROM registry.odit.services/library/nginx-brotli:3.15 AS final
COPY --from=build /app/dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/nginx.conf

View File

@@ -1,6 +1,6 @@
const fs = require('fs');
if (fs.existsSync('./dist/index.html')) {
const content = fs.readFileSync('./dist/index.html', { encoding: 'utf8' });
import { existsSync, writeFileSync, readFileSync } from "node:fs";
if (existsSync("./dist/index.html")) {
const content = readFileSync("./dist/index.html", { encoding: "utf8" });
const newcontent = content.replace(`"/env.js"`, `"./env.js"`);
fs.writeFileSync('./dist/index.html', newcontent);
writeFileSync("./dist/index.html", newcontent);
}

View File

@@ -1,6 +1,7 @@
{
"name": "@odit/lfk-selfservice",
"version": "0.11.0",
"version": "0.11.3",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
@@ -10,26 +11,22 @@
"dependencies": {
"bwip-js": "3.2.2",
"marked": "2.0.3",
"redaxios": "0.4.1",
"toastify-js": "1.10.0",
"validator": "13.5.2",
"redaxios": "0.5.1",
"toastify-js": "1.12.0",
"validator": "13.12.0",
"vue": "3.5.13",
"vue-i18n": "9.1.4",
"vue-toastification": "2.0.0-rc.1",
"vue": "3.0.9",
"vue-router": "4.0.5"
"vue-router": "4.5.0",
"vue-toastification": "2.0.0-rc.1"
},
"devDependencies": {
"@tailwindcss/jit": "0.1.18",
"@tailwindcss/aspect-ratio": "0.2.0",
"@tailwindcss/forms": "0.3.2",
"@tailwindcss/line-clamp": "0.2.0",
"@tailwindcss/typography": "0.4.0",
"@vitejs/plugin-vue": "1.2.1",
"@vue/compiler-sfc": "3.0.11",
"autoprefixer": "10.2.5",
"tailwindcss": "2.1.1",
"release-it": "14.6.1",
"vite": "2.1.5"
"@tailwindcss/vite": "4.0.0-beta.4",
"@vitejs/plugin-vue": "5.2.1",
"autoprefixer": "10.4.20",
"release-it": "17.10.0",
"tailwindcss": "4.0.0-beta.4",
"vite": "6.0.2",
"vite-plugin-vue-devtools": "^7.6.7"
},
"release-it": {
"git": {

6202
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
module.exports = {
plugins: {
'@tailwindcss/jit': {},
autoprefixer: {},
},
}

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -1,8 +1,8 @@
<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">
<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
class="underline"
target="_blank"

View File

@@ -14,7 +14,7 @@
</template>
<script setup>
import { defineProps, reactive } from 'vue'
import { reactive } from 'vue'
defineProps({
msg: String

View File

@@ -39,7 +39,7 @@
"profile": "Profil",
"provide_address": "Adresse angeben?",
"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_small": "Jetzt registrieren",

View File

@@ -39,7 +39,7 @@
"profile": "Profile",
"provide_address": "Provide a postal address?",
"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_small": "Register now",

View File

@@ -1,3 +1 @@
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
@import "tailwindcss";

View File

@@ -1,5 +1,5 @@
<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">
<div class="w-full mx-auto text-center">
<img src="/favicon.png" class="h-32 mx-auto" />
@@ -25,6 +25,7 @@
</template>
<script setup>
import background_base64 from "../assets/background.jpg?inline";
import Footer from "@/components/Footer.vue";
console.log(config);
</script>

View File

@@ -9,15 +9,18 @@
<div class="mx-auto prose" v-html="content"></div>
</div>
</section>
<Footer></Footer>
</template>
<style src="../simple.css">
</style>
<script>
import marked from "marked";
import Footer from "@/components/Footer.vue";
export default {
components: {Footer},
data() {
return {
content: ""
content: "",
}
},
async beforeMount() {

View File

@@ -9,12 +9,15 @@
<div class="mx-auto prose" v-html="content"></div>
</div>
</section>
<Footer></Footer>
</template>
<style src="../simple.css">
</style>
<script>
import marked from "marked";
import Footer from "@/components/Footer.vue";
export default {
components: {Footer},
data() {
return {
content: ""

View File

@@ -289,7 +289,7 @@
<div class="form-element">
<div class="text-lg">{{ $t("registrierungscode") }}</div>
<img
class="w-full md:w-auto mb-2"
class="w-full md:w-auto mb-2 bg-white p-2"
alt="Registrierungscode"
:src="state.barcode"
/>
@@ -311,7 +311,7 @@
duration-200
ease-in-out
"
v-text="state.firstname"
v-text="state.firstname || '---'"
/>
</div>
<div class="form-element">
@@ -333,7 +333,7 @@
duration-200
ease-in-out
"
v-text="state.middlename"
v-text="state.middlename || '---'"
/>
</div>
<div class="form-element">
@@ -355,7 +355,7 @@
duration-200
ease-in-out
"
v-text="state.lastname"
v-text="state.lastname || '---'"
/>
</div>
<div class="form-element">
@@ -377,7 +377,7 @@
duration-200
ease-in-out
"
v-text="state.email"
v-text="state.email || '---'"
/>
</div>
<div class="form-element">
@@ -399,7 +399,7 @@
duration-200
ease-in-out
"
v-text="state.phone"
v-text="state.phone || '---'"
/>
</div>
</div>
@@ -639,51 +639,7 @@
</div>
</div>
<!-- -->
<footer
class="
p-4
bg-white
rounded-lg
shadow
md:flex md:items-center md:justify-between md:p-6
dark:bg-gray-800
"
>
<span class="text-sm text-gray-500 sm:text-center dark:text-gray-400"
><span class="font-bold">LfK! 2023</span> -
<a
class="underline"
href="https://odit.services/?ref=lfk"
target="_blank"
>powered by ODIT.Services</a
>
</span>
<ul
class="
flex flex-wrap
items-center
mt-3
text-sm text-gray-500
dark:text-gray-400
sm:mt-0
"
>
<li>
<a
href="https://lauf-fuer-kaya.de/impressum/"
class="mr-4 hover:underline md:mr-6"
>Impressum</a
>
</li>
<li>
<a
href="https://lauf-fuer-kaya.de/datenschutz/"
class="mr-4 hover:underline md:mr-6"
>Datenschutz</a
>
</li>
</ul>
</footer>
<Footer></Footer>
</div>
</template>
@@ -692,6 +648,7 @@ import { reactive } from "vue";
import { TYPE, useToast } from "vue-toastification";
import axios from "redaxios";
import bwipjs from "bwip-js";
import Footer from "@/components/Footer.vue";
function textToBase64Barcode(text) {
const canvas = document.createElement("canvas");

View File

@@ -68,15 +68,15 @@
</div>
</div>
</div>
<Footer></Footer>
</template>
<script setup>
import { computed, ref, reactive, defineProps } from "vue";
import { computed, ref, reactive } from "vue";
import axios from "redaxios";
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 Footer from "@/components/Footer.vue";
let user_email = ref("");
//

View File

@@ -389,13 +389,13 @@
for="agb_accepted"
class="font-medium text-gray-400 select-none"
>
{{ $t("i_accept", { tos: $t("tos") }) }}
{{ $t("i_accept", { tos: $t("privacy_policy") }) }}
<a
target="_blank"
rel="noreferrer,noopener"
href="https://lauf-fuer-kaya.de/datenschutz/"
class="underline"
>{{ $t("tos") }}</a
>{{ $t("privacy_policy") }}</a
>
{{ $t("i_accept_end") }}
<span class="font-bold">*</span>
@@ -453,15 +453,17 @@
</div>
</div>
</div>
<Footer></Footer>
</template>
<script setup>
import { computed, ref, reactive, defineProps } from "vue";
import { computed, ref, reactive } from "vue";
import axios from "redaxios";
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 Footer from "@/components/Footer.vue";
const props = defineProps({
token: String,

View File

@@ -11,9 +11,11 @@
</p>
</div>
</div>
<Footer></Footer>
</template>
<script setup>
import Footer from "@/components/Footer.vue";
const props = defineProps({
mail: String,
});

View File

@@ -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: []
};

View File

@@ -1,13 +1,15 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
import { fileURLToPath, URL } from "node:url";
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({
plugins: [ vue() ],
base: './',
plugins: [vue(), vueDevTools(), tailwindcss()],
resolve: {
alias: {
'@': path.resolve(__dirname, '/src')
}
}
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
});