Compare commits

..

14 Commits
0.7.4 ... 0.7.8

Author SHA1 Message Date
e5a01bcd76 🚀Bumped version to v0.7.8
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-01 14:50:04 +01:00
851190e6a7 add barcode to profile
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-01 14:48:06 +01:00
1603a097f7 certificate generation: success toast styling
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-01 14:47:38 +01:00
c2b615294e 🚀Bumped version to v0.7.7
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-31 13:47:39 +01:00
c64762831f fix: registration w/o phone
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-31 13:47:32 +01:00
9b446abc1f 🚀Bumped version to v0.7.6
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-31 13:47:19 +01:00
5d974e562e update release script
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-31 13:45:45 +01:00
a030f6b738 update texts of pdf generation status toasts
All checks were successful
continuous-integration/drone/push Build is passing
close #44
2023-01-31 13:45:28 +01:00
1249248a9d 🚀Bumped version to v0.7.5
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-30 18:19:53 +01:00
0bd6d543bf update nginx base
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-30 18:18:26 +01:00
92d7bfd594 updated base node image
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-30 18:16:25 +01:00
917cb6be34 fix: relativ links
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-30 18:13:50 +01:00
d159cb59be AGB link 2023-01-30 18:13:43 +01:00
9812d79d4d 2023
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-30 18:12:50 +01:00
12 changed files with 79 additions and 32 deletions

View File

@@ -2,9 +2,43 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [0.7.8](https://git.odit.services/lfk/selfservice/compare/0.7.7...0.7.8)
- add barcode to profile [`851190e`](https://git.odit.services/lfk/selfservice/commit/851190e6a7f8b9cccbf05e60f9b50b96c196959c)
- certificate generation: success toast styling [`1603a09`](https://git.odit.services/lfk/selfservice/commit/1603a097f71ed85c901baf8da04cb06b86474649)
#### [0.7.7](https://git.odit.services/lfk/selfservice/compare/0.7.6...0.7.7)
> 31 January 2023
- 🚀Bumped version to v0.7.7 [`c2b6152`](https://git.odit.services/lfk/selfservice/commit/c2b615294e605db37695b13cec1158f535986911)
- fix: registration w/o phone [`c647628`](https://git.odit.services/lfk/selfservice/commit/c64762831f1e6dffc9cbc3f531e23435b455a5a9)
#### [0.7.6](https://git.odit.services/lfk/selfservice/compare/0.7.5...0.7.6)
> 31 January 2023
- update texts of pdf generation status toasts [`#44`](https://git.odit.services/lfk/selfservice/issues/44)
- 🚀Bumped version to v0.7.6 [`9b446ab`](https://git.odit.services/lfk/selfservice/commit/9b446abc1fa231bb1f5a78c545400c617eaa4af5)
- update release script [`5d974e5`](https://git.odit.services/lfk/selfservice/commit/5d974e562ed1ed5aeac579afe000c2dca945ff71)
#### [0.7.5](https://git.odit.services/lfk/selfservice/compare/0.7.4...0.7.5)
> 30 January 2023
- fix: relativ links [`917cb6b`](https://git.odit.services/lfk/selfservice/commit/917cb6be340844bcc2318bf73cec37c3c831fd5d)
- 🚀Bumped version to v0.7.5 [`1249248`](https://git.odit.services/lfk/selfservice/commit/1249248a9d3e0d72665bca6871a651f2491a4039)
- 2023 [`9812d79`](https://git.odit.services/lfk/selfservice/commit/9812d79d4de820ce791f69634c5861f4f04ad7f1)
- update nginx base [`0bd6d54`](https://git.odit.services/lfk/selfservice/commit/0bd6d543bf60b7a333b96d5d319269d4bf50db96)
- updated base node image [`92d7bfd`](https://git.odit.services/lfk/selfservice/commit/92d7bfd59407273f86809b53ffc9f67fb8ba0ec7)
- AGB link [`d159cb5`](https://git.odit.services/lfk/selfservice/commit/d159cb59be35f963abc89c42732ba6110d27830c)
#### [0.7.4](https://git.odit.services/lfk/selfservice/compare/0.7.3...0.7.4)
> 21 April 2021
- Updated dronefile [`9c9ceaa`](https://git.odit.services/lfk/selfservice/commit/9c9ceaa6664f6ea21a536a12f04e552156e81da4)
- 🚀Bumped version to v0.7.4 [`4663214`](https://git.odit.services/lfk/selfservice/commit/4663214ede3880386b5389885e32c953571290e6)
#### [0.7.3](https://git.odit.services/lfk/selfservice/compare/0.7.2...0.7.3)

View File

@@ -1,10 +1,10 @@
FROM node:15.9.0-alpine3.13
FROM registry.odit.services/hub/library/node:15.9.0-alpine3.13
WORKDIR /app
COPY . .
RUN yarn
RUN yarn build
RUN yarn postbuild
# final image
FROM fholzer/nginx-brotli:v1.19.1
FROM registry.odit.services/library/nginx-brotli:3.15
COPY --from=0 /app/dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/nginx.conf

View File

@@ -1,13 +1,14 @@
{
"name": "@odit/lfk-selfservice",
"version": "0.7.4",
"version": "0.7.8",
"scripts": {
"dev": "vite",
"build": "vite build",
"release": "release-it --only-version",
"release": "release-it",
"postbuild": "node env_fix.js"
},
"dependencies": {
"jsbarcode": "^3.11.5",
"marked": "2.0.3",
"redaxios": "0.4.1",
"toastify-js": "1.10.0",
@@ -36,7 +37,7 @@
"requireCleanWorkingDir": false,
"commitMessage": "🚀Bumped version to v${version}",
"requireBranch": "dev",
"push": false,
"push": true,
"tag": true,
"tagName": null,
"tagAnnotation": "v${version}"

View File

@@ -2,7 +2,7 @@
<footer class="text-gray-400 bg-gray-900 body-font">
<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 © 2021 + proudly powered by
Lauf für Kaya! Selfservice - Copyright © 2023 + proudly powered by
<a
class="underline"
target="_blank"

View File

@@ -29,7 +29,7 @@
placeholder="Passwort"
/>
<div class="absolute inset-y-0 right-0 pr-3 flex items-center text-sm">
<a href="./reset" class="text-gray-900 underline">Passwort vergessen?</a>
<a href="/selfservice/reset" class="text-gray-900 underline">Passwort vergessen?</a>
</div>
</div>
</div>
@@ -80,7 +80,7 @@
</div>
<div class="mt-6">
<a
href="./register"
href="/selfservice/register"
class="block w-full text-center py-2 px-3 border border-gray-300 rounded-md font-medium hover:border-gray-400 focus:outline-none focus:border-gray-400 sm:text-sm"
>Account erstellen</a>
</div>
@@ -101,7 +101,7 @@ function login() {
axios.get("").then((res) => {
loading.value = false;
Toastify({
text: "This is a toast",
text: "Login läuft...",
duration: 3000,
}).showToast();
});

View File

@@ -29,7 +29,7 @@
placeholder="Passwort"
/>
<div class="absolute inset-y-0 right-0 pr-3 flex items-center text-sm">
<a href="./reset" class="text-gray-900 underline">Passwort vergessen?</a>
<a href="/selfservice/reset" class="text-gray-900 underline">Passwort vergessen?</a>
</div>
</div>
</div>
@@ -80,7 +80,7 @@
</div>
<div class="mt-6">
<a
href="./register"
href="/selfservice/register"
class="block w-full text-center py-2 px-3 border border-gray-300 rounded-md font-medium hover:border-gray-400 focus:outline-none focus:border-gray-400 sm:text-sm"
>Account erstellen</a>
</div>
@@ -101,7 +101,7 @@ function login() {
axios.get("").then((res) => {
loading.value = false;
Toastify({
text: "This is a toast",
text: "Login läuft...",
duration: 3000,
}).showToast();
});

View File

@@ -38,11 +38,12 @@
"profile": "Profil",
"provide_address": "Adresse angeben?",
"register": {
"register_now": "Jetzt für den Lauf für Kaya! 2021 registrieren."
"register_now": "Jetzt für den Lauf für Kaya! 2023 registrieren."
},
"register_now": "Jetzt registrieren!",
"register_now_small": "Jetzt registrieren",
"registrieren": "Registrieren",
"registrierungscode": "Registrierungscode",
"resend_the_registration_mail": "Registrierungsmail erneut versenden",
"save_changes": "Änderungen speichern",
"sponsoring": "Sponsoring",

View File

@@ -38,7 +38,7 @@
"profile": "Profile",
"provide_address": "Provide a postal address?",
"register": {
"register_now": "Register now for Lauf für Kaya! 2021."
"register_now": "Register now for Lauf für Kaya! 2023."
},
"register_now": "Register now!",
"register_now_small": "Register now",

View File

@@ -11,10 +11,10 @@
<div class="mt-6 sm:flex place-content-center">
<a
class="w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-gray-900 bg-white shadow-sm hover:text-gray-600 focus:outline-none focus:text-gray-600 transition ease-in-out duration-150 xl:text-lg xl:py-4"
href="./register/"
href="/selfservice/register/"
>{{ $t('register_now') }}</a>
<a
href="./profile/"
href="/selfservice/profile/"
class="mt-4 sm:ml-4 sm:mt-0 w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-white bg-gray-800 shadow-sm hover:bg-gray-700 focus:outline-none focus:bg-gray-700 transition ease-in-out duration-150 xl:text-lg xl:py-4"
>{{ $t('view_my_data') }}</a>
</div>

View File

@@ -153,6 +153,8 @@
<form class="form flex flex-wrap w-full">
<div class="w-full">
<div class="form-element">
<div class="text-lg">{{ $t('registrierungscode') }}</div>
<img alt="Registrierungscode" :src="state.barcode">
<div class="text-lg">{{ $t('vorname') }}</div>
<p
class="h-10 w-full dark:bg-gray-800 rounded text-base outline-none dark:text-gray-100 text-gray-600 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out"
@@ -327,10 +329,18 @@
<script setup>
import { reactive } from "vue";
import { useToast } from "vue-toastification";
import { TYPE, useToast } from "vue-toastification";
import axios from "redaxios";
import JsBarcode from "jsbarcode";
function textToBase64Barcode(text){
var canvas = document.createElement("canvas");
JsBarcode(canvas, text, {format: "CODE128", displayValue:false});
return canvas.toDataURL("image/png");
}
const state = reactive({
barcode: "",
phone: "",
email: "",
firstname: "",
@@ -358,8 +368,9 @@ axios.get(`${config.baseurl}api/runners/me/${accesstoken}`)
state.group = data.group;
state.sponsorings = data.distanceDonations;
state.fullobject = data;
state.barcode = textToBase64Barcode(state.fullobject.id);
}).catch((error) => {
toast.error("An error occured while loading your profile data");
toast.error("Profil konnte nicht geladen werden...");
})
axios.get(`${config.baseurl}api/runners/me/${accesstoken}/scans`)
.then(({ data }) => {
@@ -371,22 +382,22 @@ axios.get(`${config.baseurl}api/runners/me/${accesstoken}/scans`)
data.filter(s => s.valid === true);
state.scans = data;
}).catch((error) => {
toast.error("An error occured while loading your profile data");
toast.error("Profil konnte nicht geladen werden...");
})
function delete_me() {
toast("Deletion in progress...");
toast("Profil wird gelöscht...");
let url = `${config.baseurl}api/runners/me/${accesstoken}?force=true`
axios.delete(url)
.then(() => {
toast("All Data deleted!");
toast("Alle Daten gelöscht!");
location.replace(`${config.baseurl_selfservice}`);
})
.catch((error) => {
toast.error("An error occured while deleting your profile data");
toast.error("Profil konnte nicht gelöscht werden...");
});
}
function get_certificate() {
toast("Generation in progress...");
toast("Urkunde wird generiert...");
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
let url = `${config.baseurl_documentserver}certificates?locale=${browserlocale}&download=true&key=${config.documentserver_key}`;
let postdata = Object.assign({}, state.fullobject);
@@ -400,7 +411,7 @@ function get_certificate() {
.then((response) => {
console.log(response)
if (response.status != "200") {
toast.error("An error occured while generateing your certificate!");
toast.error("Urkunde konnte nicht generiert werden...");
} else {
var fileURL = window.URL.createObjectURL(new Blob([response.data], { type: 'application/pdf' }));
var fileLink = document.createElement('a');
@@ -411,7 +422,7 @@ function get_certificate() {
fileLink.click();
fileLink.remove();
toast("Document generated!");
toast("Urkunde generiert!",{type:TYPE.SUCCESS});
}
})
.catch((err) => {

View File

@@ -61,7 +61,7 @@
</div>
<div class="mt-2">
<a
href="../register/"
href="/selfservice/register/"
class="text-white block w-full text-center py-2 px-3 border-2 border-gray-300 rounded-md p-1 bg-blue-800 font-medium hover:border-gray-400 focus:outline-none focus:border-gray-400 sm:text-sm"
>{{ $t('register_now_small') }}</a>
</div>
@@ -88,16 +88,16 @@ const state = reactive({
const toast = useToast();
function resendMail() {
if (isEmail(user_email.value)) {
toast("sending password reset mail...");
toast("Login-Link wird angefordert...");
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
axios.post(`${config.baseurl}api/runners/forgot?mail=${user_email.value}&locale=${browserlocale}`)
.then(({ data }) => {
console.log(data);
toast("sent password reset mail to " + user_email.value + "!");
toast("Login-Link gesendet an " + user_email.value + "!");
})
.catch((error) => {
console.log(error);
toast("user does not exist...");
toast("Fehler beim Anfordern des Login-Links...");
});
}
}

View File

@@ -200,7 +200,7 @@
<a
target="_blank"
rel="noreferrer,noopener"
href
href="https://lauf-fuer-kaya.de/datenschutz/"
class="underline"
>{{ $t('tos') }}</a>
{{ $t('i_accept_end') }}
@@ -277,7 +277,7 @@ const state = reactive({
const toast = useToast();
function login() {
userdetails = userdetails.value;
if (userdetails.phone === "" || isMobilePhone(userdetails.phone)) {
if (userdetails?.phone === "" || isMobilePhone(userdetails.phone)) {
if (isEmail(userdetails.mail)) {
let postdata = {
"email": userdetails.mail,
@@ -301,7 +301,7 @@ function login() {
if (state.org_name !== '' && state.org_teams.length > 0) {
postdata.team = org_team.value;
}
toast("registration in progress...");
toast("Registrierung läuft...");
const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
let url = `${config.baseurl}api/runners/register/?locale=${browserlocale}`;
if (props.token) {