Compare commits
39
Commits
0.11.0
...
fa55fce76e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa55fce76e | ||
|
|
f47d5e347d | ||
|
|
7488a8b597 | ||
|
|
2e3ac154be | ||
|
|
2472640755 | ||
|
|
7b685d6cad | ||
|
|
17f6f4e616 | ||
|
|
48cfc15cfb | ||
|
|
bb9b779cee | ||
|
|
af63ce67ae | ||
|
|
5cc4871ec4 | ||
|
|
c8cfe669b8 | ||
|
|
8b74d6d759 | ||
|
|
a9227768de | ||
|
|
d966e1d4de | ||
|
|
ceb2146c1b | ||
|
|
8d006d8c74 | ||
|
|
777304f259 | ||
|
|
12433f7c23 | ||
|
|
44b53da345 | ||
|
|
ab45fc144e | ||
|
|
e99e9e0708 | ||
|
|
467404bfc8 | ||
|
|
ce50fa2a62 | ||
|
|
10a011d842 | ||
|
|
5352410d0c | ||
|
|
c5d155396a | ||
|
|
93187099d3 | ||
|
|
aa24b1dce5 | ||
|
|
eb3ede9593 | ||
|
|
d7fecfbd0b | ||
|
|
b065b4ff21 | ||
|
|
0cd3e937d8 | ||
|
|
6be2ee626a | ||
|
|
008027db0e | ||
|
|
aec5e3473e | ||
|
|
95c8fde72f | ||
|
|
0f32968fae | ||
|
|
ae79e9fea1 |
No files matched your search
@@ -0,0 +1,6 @@
|
|||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/base:alpine-3.12
|
||||||
|
RUN apk update
|
||||||
|
RUN apk add --upgrade nodejs-current npm
|
||||||
|
RUN npm i -g yarn rimraf
|
||||||
|
RUN rimraf node_modules
|
||||||
|
RUN yarn set version berry
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "Node.js",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.shell.linux": "/bin/sh"
|
||||||
|
},
|
||||||
|
"extensions": [
|
||||||
|
"dbaeumer.vscode-eslint",
|
||||||
|
"2gua.rainbow-brackets",
|
||||||
|
"christian-kohler.npm-intellisense",
|
||||||
|
"remimarsal.prettier-now",
|
||||||
|
"svelte.svelte-vscode",
|
||||||
|
"lokalise.i18n-ally",
|
||||||
|
"fivethree.vscode-svelte-snippets",
|
||||||
|
"voorjaar.windicss-intellisense"
|
||||||
|
],
|
||||||
|
"postCreateCommand": "yarn && yarn dev --open"
|
||||||
|
}
|
||||||
+1
-3
@@ -1,3 +1 @@
|
|||||||
public/env.sample.js
|
public/env.sample.js
|
||||||
public/workbox-*.js
|
|
||||||
public/workbox-*.js.map
|
|
||||||
+4
-5
@@ -1,11 +1,10 @@
|
|||||||
node_modules
|
node_modules
|
||||||
build
|
|
||||||
package-lock.json
|
package-lock.json
|
||||||
yarn.lock
|
yarn.lock
|
||||||
*.map
|
*.map
|
||||||
public/env.js
|
public/env.js
|
||||||
public/sw.js
|
|
||||||
public/index.html
|
|
||||||
public/workbox-*.js
|
|
||||||
svelte.config.js
|
|
||||||
public/index.html
|
public/index.html
|
||||||
|
/dist
|
||||||
|
.yarn
|
||||||
|
.pnp.js
|
||||||
|
.yarnrc.yml
|
||||||
Vendored
+2
-1
@@ -5,7 +5,8 @@
|
|||||||
"remimarsal.prettier-now",
|
"remimarsal.prettier-now",
|
||||||
"svelte.svelte-vscode",
|
"svelte.svelte-vscode",
|
||||||
"lokalise.i18n-ally",
|
"lokalise.i18n-ally",
|
||||||
"fivethree.vscode-svelte-snippets"
|
"fivethree.vscode-svelte-snippets",
|
||||||
|
"voorjaar.windicss-intellisense"
|
||||||
],
|
],
|
||||||
"unwantedRecommendations": [
|
"unwantedRecommendations": [
|
||||||
"antfu.i18n-ally"
|
"antfu.i18n-ally"
|
||||||
|
|||||||
Vendored
+2
-1
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
"i18n-ally.localesPaths": "src/locales",
|
"i18n-ally.localesPaths": "src/locales",
|
||||||
"i18n-ally.keystyle": "nested"
|
"i18n-ally.keystyle": "nested",
|
||||||
|
"windicss.enableCodeFolding": false,
|
||||||
}
|
}
|
||||||
+4
-8
@@ -1,18 +1,14 @@
|
|||||||
FROM node:15.5.1-alpine3.12
|
FROM node:15.5.1-alpine3.12
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN npm i -g pnpm
|
|
||||||
COPY package.json ./
|
COPY package.json ./
|
||||||
RUN pnpm i
|
RUN yarn
|
||||||
COPY package.json *.config.js workbox-config.js template-copy.js index.template.html s-config.template.js ./
|
COPY package.json *.config.js index.html ./
|
||||||
COPY src ./src
|
COPY src ./src
|
||||||
COPY public ./public
|
COPY public ./public
|
||||||
RUN pnpm run build
|
RUN yarn build
|
||||||
# final image
|
# final image
|
||||||
FROM alpine
|
FROM alpine
|
||||||
COPY --from=0 /app/build /app
|
COPY --from=0 /app/dist /app
|
||||||
RUN rm -rf /app/build/_dist_/components
|
|
||||||
RUN rm -rf /app/build/_dist_/locales
|
|
||||||
RUN rm -rf /app/build-manifest.json
|
|
||||||
FROM fholzer/nginx-brotli:v1.19.1
|
FROM fholzer/nginx-brotli:v1.19.1
|
||||||
COPY --from=1 /app /usr/share/nginx/html
|
COPY --from=1 /app /usr/share/nginx/html
|
||||||
COPY ./nginx.conf /etc/nginx/nginx.conf
|
COPY ./nginx.conf /etc/nginx/nginx.conf
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# @odit/lfk-frontend
|
||||||
|
|
||||||
|
## ✒️ 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).
|
||||||
|
|
||||||
|
This application is intended for use by admin users/ members only.
|
||||||
|
|
||||||
|
## 🚀 Getting Started
|
||||||
|
```
|
||||||
|
yarn
|
||||||
|
```
|
||||||
|
## Development
|
||||||
|
```
|
||||||
|
yarn dev
|
||||||
|
/
|
||||||
|
yarn dev --open
|
||||||
|
```
|
||||||
|
## Build
|
||||||
|
```
|
||||||
|
yarn build
|
||||||
|
```
|
||||||
@@ -1,23 +1,22 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<link rel="icon" href="/favicon.png" />
|
<link rel="icon" href="/favicon.png" />
|
||||||
<link rel="manifest" href="/manifest.webmanifest">
|
<link rel="manifest" href="/manifest.webmanifest">
|
||||||
<link rel="apple-touch-icon" href="/lfk-logo.png">
|
<link rel="apple-touch-icon" href="/lfk-logo.png">
|
||||||
<meta name="theme-color" content="#FFFFFF">
|
<meta name="theme-color" content="#FFFFFF">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<meta name="description" content="Lauf Für Kaya! - Admin" />
|
<meta name="description" content="Lauf Für Kaya! - Admin" />
|
||||||
<title>Lauf für Kaya! - Admin</title>
|
<title>Lauf für Kaya! - Admin</title>
|
||||||
__TAILWIND_INSERT__
|
</head>
|
||||||
</head>
|
|
||||||
|
<body>
|
||||||
<body>
|
<span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.8.4-RELEASE_INFO</span>
|
||||||
<span style="display: none;visibility: hidden;" id="buildinfo">RELEASE_INFO-0.11.0-RELEASE_INFO</span>
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
<script src="/env.js"></script>
|
||||||
<script src="/env.js"></script>
|
<script type="module" src="/src/main.js"></script>
|
||||||
<script defer type="module" src="/_dist_/index.js"></script>
|
</body>
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@@ -6,6 +6,15 @@ http {
|
|||||||
server {
|
server {
|
||||||
error_page 404 /index.html;
|
error_page 404 /index.html;
|
||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
|
location = /index.html {
|
||||||
|
add_header Cache-Control 'no-store';
|
||||||
|
}
|
||||||
|
location = / {
|
||||||
|
add_header Cache-Control 'no-store';
|
||||||
|
}
|
||||||
|
location = /env.js {
|
||||||
|
add_header Cache-Control 'no-store';
|
||||||
|
}
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri/ /index.html;
|
try_files $uri $uri/ /index.html;
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-34
@@ -1,46 +1,40 @@
|
|||||||
{
|
{
|
||||||
"name": "@odit/lfk-frontend",
|
"name": "@odit/lfk-frontend",
|
||||||
"version": "0.11.0",
|
"version": "0.8.4",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"i18n-order": "node order.js",
|
"i18n-order": "node order.js",
|
||||||
"dev:all": "yarn prebuild && snowpack dev",
|
"dev": "vite",
|
||||||
"dev": "cross-env NODE_ENV_ODIT=development_fast node template-copy.js && yarn build:sw && snowpack dev",
|
"build": "vite build",
|
||||||
"build": "yarn prebuild && snowpack build",
|
|
||||||
"prebuild": "cross-env NODE_ENV_ODIT=production node template-copy.js && yarn build:sw",
|
|
||||||
"build:sw": "workbox generateSW workbox-config.js",
|
|
||||||
"release": "release-it",
|
"release": "release-it",
|
||||||
"licenses:export": "license-exporter --json -o public"
|
"licenses:export": "license-exporter --json -o public"
|
||||||
},
|
},
|
||||||
"license": "CC-BY-NC-SA-4.0",
|
"license": "CC-BY-NC-SA-4.0",
|
||||||
"dependencies": {
|
|
||||||
"@odit/lfk-client-js": "0.9.2",
|
|
||||||
"check-password-strength": "^2.0.2",
|
|
||||||
"csvtojson": "^2.0.10",
|
|
||||||
"gridjs": "3.3.0",
|
|
||||||
"localforage": "1.9.0",
|
|
||||||
"marked": "^2.0.1",
|
|
||||||
"svelte-focus-trap": "1.0.1",
|
|
||||||
"svelte-i18n": "3.3.7",
|
|
||||||
"svelte-select": "^3.17.0",
|
|
||||||
"tailwindcss": "2.0.3",
|
|
||||||
"tinro": "0.6.1",
|
|
||||||
"toastify-js": "1.9.3",
|
|
||||||
"validator": "13.5.2",
|
|
||||||
"xlsx": "^0.16.9"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@odit/license-exporter": "^0.0.11",
|
"check-password-strength": "2.0.2",
|
||||||
"@snowpack/plugin-svelte": "3.5.2",
|
"@odit/lfk-client-js": "0.10.1",
|
||||||
"auto-changelog": "^2.2.1",
|
"@odit/license-exporter": "0.0.11",
|
||||||
|
"@sveltejs/vite-plugin-svelte": "1.0.0-next.5",
|
||||||
|
"@types/html-minifier": "4.0.0",
|
||||||
|
"auto-changelog": "2.2.1",
|
||||||
"autoprefixer": "10.2.5",
|
"autoprefixer": "10.2.5",
|
||||||
"cross-env": "^7.0.3",
|
"csvtojson": "2.0.10",
|
||||||
"postcss": "8.2.8",
|
"gridjs": "3.4.0",
|
||||||
"postcss-load-config": "3.0.1",
|
"html-minifier": "4.0.0",
|
||||||
"release-it": "^14.4.1",
|
"localforage": "1.9.0",
|
||||||
"snowpack": "3.0.13",
|
"marked": "2.0.1",
|
||||||
"svelte": "3.35.0",
|
"release-it": "14.5.1",
|
||||||
"svelte-preprocess": "4.6.9",
|
"svelte": "3.37.0",
|
||||||
"workbox-cli": "6.1.2"
|
"svelte-focus-trap": "1.2.0",
|
||||||
|
"svelte-i18n": "3.3.9",
|
||||||
|
"svelte-preprocess": "4.7.0",
|
||||||
|
"svelte-select": "3.17.0",
|
||||||
|
"tailwindcss": "2.0.4",
|
||||||
|
"tinro": "0.6.1",
|
||||||
|
"toastify-js": "1.10.0",
|
||||||
|
"validator": "13.5.2",
|
||||||
|
"vite": "2.1.5",
|
||||||
|
"vite-plugin-windicss": "0.12.2",
|
||||||
|
"xlsx": "0.16.9"
|
||||||
},
|
},
|
||||||
"release-it": {
|
"release-it": {
|
||||||
"git": {
|
"git": {
|
||||||
@@ -56,7 +50,7 @@
|
|||||||
"publish": false
|
"publish": false
|
||||||
},
|
},
|
||||||
"hooks": {
|
"hooks": {
|
||||||
"after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node versionbuilder.js && git add index.template.html && node order.js && git add src/locales"
|
"after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node versionbuilder.js && git add index.html && node order.js && git add src/locales"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
[{"author":"ODIT.Services","repo":{"type":"git","url":"git+https://git.odit.services/lfk/lfk-client-js"},"description":"A lib to interact with https://git.odit.services/lfk/backend. Use this version for native JS applications.","name":"@odit/lfk-client-js","license":"CC-BY-NC-SA-4.0","version":"0.9.2","licensetext":"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Creative\r\nCommons Corporation (\"Creative Commons\") is not a law firm and does not provide\r\nlegal services or legal advice. Distribution of Creative Commons public licenses\r\ndoes not create a lawyer-client or other relationship. Creative Commons makes\r\nits licenses and related information available on an \"as-is\" basis. Creative\r\nCommons gives no warranties regarding its licenses, any material licensed\r\nunder their terms and conditions, or any related information. Creative Commons\r\ndisclaims all liability for damages resulting from their use to the fullest\r\nextent possible.\r\n\r\nUsing Creative Commons Public Licenses\r\n\r\nCreative Commons public licenses provide a standard set of terms and conditions\r\nthat creators and other rights holders may use to share original works of\r\nauthorship and other material subject to copyright and certain other rights\r\nspecified in the public license below. The following considerations are for\r\ninformational purposes only, are not exhaustive, and do not form part of our\r\nlicenses.\r\n\r\nConsiderations for licensors: Our public licenses are intended for use by\r\nthose authorized to give the public permission to use material in ways otherwise\r\nrestricted by copyright and certain other rights. Our licenses are irrevocable.\r\nLicensors should read and understand the terms and conditions of the license\r\nthey choose before applying it. Licensors should also secure all rights necessary\r\nbefore applying our licenses so that the public can reuse the material as\r\nexpected. Licensors should clearly mark any material not subject to the license.\r\nThis includes other CC-licensed material, or material used under an exception\r\nor limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors\r\n\r\nConsiderations for the public: By using one of our public licenses, a licensor\r\ngrants the public permission to use the licensed material under specified\r\nterms and conditions. If the licensor's permission is not necessary for any\r\nreason–for example, because of any applicable exception or limitation to copyright–then\r\nthat use is not regulated by the license. Our licenses grant only permissions\r\nunder copyright and certain other rights that a licensor has authority to\r\ngrant. Use of the licensed material may still be restricted for other reasons,\r\nincluding because others have copyright or other rights in the material. A\r\nlicensor may make special requests, such as asking that all changes be marked\r\nor described. Although not required by our licenses, you are encouraged to\r\nrespect those requests where reasonable. More considerations for the public\r\n: wiki.creativecommons.org/Considerations_for_licensees\r\n\r\nCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public\r\nLicense\r\n\r\nBy exercising the Licensed Rights (defined below), You accept and agree to\r\nbe bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-ShareAlike\r\n4.0 International Public License (\"Public License\"). To the extent this Public\r\nLicense may be interpreted as a contract, You are granted the Licensed Rights\r\nin consideration of Your acceptance of these terms and conditions, and the\r\nLicensor grants You such rights in consideration of benefits the Licensor\r\nreceives from making the Licensed Material available under these terms and\r\nconditions.\r\n\r\nSection 1 – Definitions.\r\n\r\na. Adapted Material means material subject to Copyright and Similar Rights\r\nthat is derived from or based upon the Licensed Material and in which the\r\nLicensed Material is translated, altered, arranged, transformed, or otherwise\r\nmodified in a manner requiring permission under the Copyright and Similar\r\nRights held by the Licensor. For purposes of this Public License, where the\r\nLicensed Material is a musical work, performance, or sound recording, Adapted\r\nMaterial is always produced where the Licensed Material is synched in timed\r\nrelation with a moving image.\r\n\r\nb. Adapter's License means the license You apply to Your Copyright and Similar\r\nRights in Your contributions to Adapted Material in accordance with the terms\r\nand conditions of this Public License.\r\n\r\nc. BY-NC-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses,\r\napproved by Creative Commons as essentially the equivalent of this Public\r\nLicense.\r\n\r\nd. Copyright and Similar Rights means copyright and/or similar rights closely\r\nrelated to copLine truncated
|
[{"author":"deanilvincent","repo":{"type":"git","url":"https://github.com/deanilvincent/check-password-strength"},"description":"A NPM Password strength checker based from Javascript RegExp. Check passphrase if it's \"Weak\", \"Medium\" or \"Strong\"","name":"check-password-strength","license":"MIT","version":"2.0.2","licensetext":"MIT License\r\n\r\nCopyright (c) 2020 Mark Deanil Vicente\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n"},{"author":"ODIT.Services","repo":{"type":"git","url":"git+https://git.odit.services/lfk/lfk-client-js"},"description":"A lib to interact with https://git.odit.services/lfk/backend. Use this version for native JS applications.","name":"@odit/lfk-client-js","license":"CC-BY-NC-SA-4.0","version":"0.10.1","licensetext":"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Creative\r\nCommons Corporation (\"Creative Commons\") is not a law firm and does not provide\r\nlegal services or legal advice. Distribution of Creative Commons public licenses\r\ndoes not create a lawyer-client or other relationship. Creative Commons makes\r\nits licenses and related information available on an \"as-is\" basis. Creative\r\nCommons gives no warranties regarding its licenses, any material licensed\r\nunder their terms and conditions, or any related information. Creative Commons\r\ndisclaims all liability for damages resulting from their use to the fullest\r\nextent possible.\r\n\r\nUsing Creative Commons Public Licenses\r\n\r\nCreative Commons public licenses provide a standard set of terms and conditions\r\nthat creators and other rights holders may use to share original works of\r\nauthorship and other material subject to copyright and certain other rights\r\nspecified in the public license below. The following considerations are for\r\ninformational purposes only, are not exhaustive, and do not form part of our\r\nlicenses.\r\n\r\nConsiderations for licensors: Our public licenses are intended for use by\r\nthose authorized to give the public permission to use material in ways otherwise\r\nrestricted by copyright and certain other rights. Our licenses are irrevocable.\r\nLicensors should read and understand the terms and conditions of the license\r\nthey choose before applying it. Licensors should also secure all rights necessary\r\nbefore applying our licenses so that the public can reuse the material as\r\nexpected. Licensors should clearly mark any material not subject to the license.\r\nThis includes other CC-licensed material, or material used under an exception\r\nor limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors\r\n\r\nConsiderations for the public: By using one of our public licenses, a licensor\r\ngrants the public permission to use the licensed material under specified\r\nterms and conditions. If the licensor's permission is not necessary for any\r\nreason–for example, because of any applicable exception or limitation to copyright–then\r\nthat use is not regulated by the license. Our licenses grant only permissions\r\nunder copyright and certain other rights that a licensor has authority to\r\ngrant. Use of the licensed material may still be restricted for other reasons,\r\nincluding because others have copyright or other rights in the material. A\r\nlicensor may make special requests, such as asking that all changes be marked\r\nor described. Although not required by our licenses, you are encouraged to\r\nrespect those requests where reasonable. More considerations for the public\r\n: wiki.creativecommons.org/Considerations_for_licensees\r\n\r\nCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public\r\nLicense\r\n\r\nBy exercising the Licensed Rights (defined below), You accept and agree to\r\nbe bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-ShareAlike\r\n4.0 International Public License (\"Public License\"). ToLine truncated
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
const sveltePreprocess = require('svelte-preprocess');
|
|
||||||
const preprocess = sveltePreprocess(__insert__);
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
preprocess
|
|
||||||
};
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/** @type {import("snowpack").SnowpackUserConfig } */
|
|
||||||
module.exports = {
|
|
||||||
mount: {
|
|
||||||
public: '/',
|
|
||||||
src: '/_dist_'
|
|
||||||
},
|
|
||||||
plugins: [ '@snowpack/plugin-svelte' ],
|
|
||||||
routes: [
|
|
||||||
/* Enable an SPA Fallback in development: */
|
|
||||||
{ match: 'routes', src: '.*', dest: '/index.html' }
|
|
||||||
],
|
|
||||||
packageOptions: {
|
|
||||||
/* ... */
|
|
||||||
sourceMap: false
|
|
||||||
},
|
|
||||||
devOptions: {
|
|
||||||
/* ... */
|
|
||||||
},
|
|
||||||
buildOptions: {
|
|
||||||
/* ... */
|
|
||||||
},
|
|
||||||
alias: {
|
|
||||||
/* ... */
|
|
||||||
},
|
|
||||||
optimize: { bundle: true, minify: true }
|
|
||||||
};
|
|
||||||
+221
-224
@@ -1,224 +1,221 @@
|
|||||||
<script>
|
<script>
|
||||||
import "./TailwindStyles.svelte";
|
import "toastify-js/src/toastify.css";
|
||||||
import "toastify-js/src/toastify.css";
|
import "gridjs/dist/theme/mermaid.css";
|
||||||
import "gridjs/dist/theme/mermaid.css";
|
import { Route, router } from "tinro";
|
||||||
import { Route, router } from "tinro";
|
router.subscribe((routeInfo) => {
|
||||||
router.subscribe((routeInfo) => {
|
window.scrollTo(0, 0);
|
||||||
window.scrollTo(0, 0);
|
});
|
||||||
});
|
if (config.prefersHashRouting) {
|
||||||
if (config.prefersHashRouting) {
|
if (config.prefersHashRouting === true) {
|
||||||
if (config.prefersHashRouting === true) {
|
router.useHashNavigation();
|
||||||
router.useHashNavigation();
|
}
|
||||||
}
|
}
|
||||||
}
|
import localForage from "localforage";
|
||||||
import localForage from "localforage";
|
import { addMessages, init, getLocaleFromNavigator } from "svelte-i18n";
|
||||||
import { addMessages, init, getLocaleFromNavigator } from "svelte-i18n";
|
import en from "./locales/en.json";
|
||||||
import en from "./locales/en.json";
|
import de from "./locales/de.json";
|
||||||
import de from "./locales/de.json";
|
addMessages("en", en);
|
||||||
addMessages("en", en);
|
addMessages("de", de);
|
||||||
addMessages("de", de);
|
init({
|
||||||
init({
|
fallbackLocale: "en",
|
||||||
fallbackLocale: "en",
|
initialLocale: getLocaleFromNavigator(),
|
||||||
initialLocale: getLocaleFromNavigator(),
|
});
|
||||||
});
|
localForage.config({
|
||||||
localForage.config({
|
name: "lfk_admin",
|
||||||
name: "lfk_admin",
|
version: 1.0,
|
||||||
version: 1.0,
|
storeName: "lfk_admin",
|
||||||
storeName: "lfk_admin",
|
description: "LfK! admin dashbaord",
|
||||||
description: "LfK! admin dashbaord",
|
});
|
||||||
});
|
window.onunhandledrejection = (event) => {
|
||||||
window.onunhandledrejection = (event) => {
|
if (event.reason.toString() == "Error: Unauthorized") {
|
||||||
if (event.reason.toString() == "Error: Unauthorized") {
|
console.log("Found 1");
|
||||||
console.log("Found 1");
|
localForage.clear();
|
||||||
localForage.clear();
|
location.replace("/");
|
||||||
location.replace("/");
|
}
|
||||||
}
|
};
|
||||||
};
|
//
|
||||||
//
|
import Login from "./components/auth/Login.svelte";
|
||||||
import Login from "./components/auth/Login.svelte";
|
import Dashboard from "./components/dashboard/Dashboard.svelte";
|
||||||
import Dashboard from "./components/dashboard/Dashboard.svelte";
|
import store from "./store.js";
|
||||||
import store from "./store.js";
|
import ForgotPassword from "./components/auth/ForgotPassword.svelte";
|
||||||
import ForgotPassword from "./components/auth/ForgotPassword.svelte";
|
import MainDashContent from "./components/dashboard/MainDashContent.svelte";
|
||||||
import MainDashContent from "./components/dashboard/MainDashContent.svelte";
|
import Users from "./components/users/Users.svelte";
|
||||||
import Users from "./components/users/Users.svelte";
|
import About from "./components/general/About.svelte";
|
||||||
import About from "./components/general/About.svelte";
|
import Settings from "./components/settings/Settings.svelte";
|
||||||
import Settings from "./components/settings/Settings.svelte";
|
import Transition from "./components/base/Transition.svelte";
|
||||||
import Transition from "./components/base/Transition.svelte";
|
import Orgs from "./components/orgs/Orgs.svelte";
|
||||||
import Orgs from "./components/orgs/Orgs.svelte";
|
import Runners from "./components/runners/Runners.svelte";
|
||||||
import Runners from "./components/runners/Runners.svelte";
|
import Footer from "./components/general/Footer.svelte";
|
||||||
import Footer from "./components/general/Footer.svelte";
|
import TracksOverview from "./components/tracks/TracksOverview.svelte";
|
||||||
import TracksOverview from "./components/tracks/TracksOverview.svelte";
|
import OrgDetail from "./components/orgs/OrgDetail.svelte";
|
||||||
import OrgDetail from "./components/orgs/OrgDetail.svelte";
|
import Teams from "./components/teams/Teams.svelte";
|
||||||
import Teams from "./components/teams/Teams.svelte";
|
import { OpenAPI } from "@odit/lfk-client-js";
|
||||||
import { OpenAPI } from "@odit/lfk-client-js";
|
import UserDetail from "./components/users/UserDetail.svelte";
|
||||||
import UserDetail from "./components/users/UserDetail.svelte";
|
OpenAPI.BASE = config.baseurl;
|
||||||
OpenAPI.BASE = config.baseurl;
|
import TeamDetail from "./components/teams/TeamDetail.svelte";
|
||||||
import { register as registerSW } from "./swmodule";
|
import UserPermissions from "./components/users/UserPermissions.svelte";
|
||||||
import TeamDetail from "./components/teams/TeamDetail.svelte";
|
import GroupPermissions from "./components/groups/GroupPermissions.svelte";
|
||||||
import UserPermissions from "./components/users/UserPermissions.svelte";
|
import RunnerDetail from "./components/runners/RunnerDetail.svelte";
|
||||||
import GroupPermissions from "./components/groups/GroupPermissions.svelte";
|
import Imprint from "./components/general/Imprint.svelte";
|
||||||
import RunnerDetail from "./components/runners/RunnerDetail.svelte";
|
import Privacy from "./components/general/Privacy.svelte";
|
||||||
import Imprint from "./components/general/Imprint.svelte";
|
import ResetPassword from "./components/auth/ResetPassword.svelte";
|
||||||
import Privacy from "./components/general/Privacy.svelte";
|
import Contacts from "./components/contacts/Contacts.svelte";
|
||||||
import ResetPassword from "./components/auth/ResetPassword.svelte";
|
import ContactDetail from "./components/contacts/ContactDetail.svelte";
|
||||||
import Contacts from "./components/contacts/Contacts.svelte";
|
import Donors from "./components/donors/Donors.svelte";
|
||||||
import ContactDetail from "./components/contacts/ContactDetail.svelte";
|
import Groups from "./components/groups/Groups.svelte";
|
||||||
import Donors from "./components/donors/Donors.svelte";
|
import DonorDetail from "./components/donors/DonorDetail.svelte";
|
||||||
import Groups from "./components/groups/Groups.svelte";
|
import Donations from "./components/donations/Donations.svelte";
|
||||||
import DonorDetail from "./components/donors/DonorDetail.svelte";
|
import DonationDetail from "./components/donations/DonationDetail.svelte";
|
||||||
import Donations from "./components/donations/Donations.svelte";
|
import GroupDetail from "./components/groups/GroupDetail.svelte";
|
||||||
import DonationDetail from "./components/donations/DonationDetail.svelte";
|
import ScanStations from "./components/scanstations/ScanStations.svelte";
|
||||||
import GroupDetail from "./components/groups/GroupDetail.svelte";
|
import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelte";
|
||||||
import ScanStations from "./components/scanstations/ScanStations.svelte";
|
import Scans from "./components/scans/Scans.svelte";
|
||||||
import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelte";
|
import ScanDetail from "./components/scans/ScanDetail.svelte";
|
||||||
import Scans from "./components/scans/Scans.svelte";
|
import Cards from "./components/cards/Cards.svelte";
|
||||||
import ScanDetail from "./components/scans/ScanDetail.svelte";
|
store.init();
|
||||||
import Cards from "./components/cards/Cards.svelte";
|
</script>
|
||||||
store.init();
|
|
||||||
registerSW();
|
<Route>
|
||||||
</script>
|
{#if $router.path === '/forgot_password'}
|
||||||
|
<Route path="/forgot_password">
|
||||||
<Route>
|
<ForgotPassword />
|
||||||
{#if $router.path === '/forgot_password'}
|
</Route>
|
||||||
<Route path="/forgot_password">
|
{:else if $router.path.includes('/reset')}
|
||||||
<ForgotPassword />
|
<Route path="/reset/:resetkey" let:params>
|
||||||
</Route>
|
<ResetPassword {params} />
|
||||||
{:else if $router.path.includes('/reset')}
|
</Route>
|
||||||
<Route path="/reset/:resetkey" let:params>
|
{:else if $router.path === '/about'}
|
||||||
<ResetPassword {params} />
|
<Route path="/about">
|
||||||
</Route>
|
<About />
|
||||||
{:else if $router.path === '/about'}
|
</Route>
|
||||||
<Route path="/about">
|
{:else if $router.path === '/imprint'}
|
||||||
<About />
|
<Route path="/imprint">
|
||||||
</Route>
|
<Imprint />
|
||||||
{:else if $router.path === '/imprint'}
|
</Route>
|
||||||
<Route path="/imprint">
|
{:else if $router.path === '/privacy'}
|
||||||
<Imprint />
|
<Route path="/privacy">
|
||||||
</Route>
|
<Privacy />
|
||||||
{:else if $router.path === '/privacy'}
|
</Route>
|
||||||
<Route path="/privacy">
|
{:else if $store.isLoggedIn}
|
||||||
<Privacy />
|
<Dashboard>
|
||||||
</Route>
|
<Transition>
|
||||||
{:else if $store.isLoggedIn}
|
<Route path="/">
|
||||||
<Dashboard>
|
<MainDashContent />
|
||||||
<Transition>
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/users/*">
|
||||||
<MainDashContent />
|
<Route path="/">
|
||||||
</Route>
|
<Users />
|
||||||
<Route path="/users/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:userid/*" let:params>
|
||||||
<Users />
|
<Route path="/">
|
||||||
</Route>
|
<UserDetail {params} />
|
||||||
<Route path="/:userid/*" let:params>
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/permissions/">
|
||||||
<UserDetail {params} />
|
<UserPermissions {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/permissions/">
|
</Route>
|
||||||
<UserPermissions {params} />
|
</Route>
|
||||||
</Route>
|
<Route path="/groups/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<Groups />
|
||||||
<Route path="/groups/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:groupid/*" let:params>
|
||||||
<Groups />
|
<Route path="/">
|
||||||
</Route>
|
<GroupDetail {params} />
|
||||||
<Route path="/:groupid/*" let:params>
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/permissions/">
|
||||||
<GroupDetail {params} />
|
<GroupPermissions {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/permissions/">
|
</Route>
|
||||||
<GroupPermissions {params} />
|
</Route>
|
||||||
</Route>
|
<Route path="/tracks/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<TracksOverview />
|
||||||
<Route path="/tracks/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:trackid" let:params />
|
||||||
<TracksOverview />
|
</Route>
|
||||||
</Route>
|
<Route path="/runners/*">
|
||||||
<Route path="/:trackid" let:params />
|
<Route path="/">
|
||||||
</Route>
|
<Runners />
|
||||||
<Route path="/runners/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:runnerid" let:params>
|
||||||
<Runners />
|
<RunnerDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:runnerid" let:params>
|
</Route>
|
||||||
<RunnerDetail {params} />
|
<Route path="/teams/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<Teams />
|
||||||
<Route path="/teams/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:teamid" let:params>
|
||||||
<Teams />
|
<TeamDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:teamid" let:params>
|
</Route>
|
||||||
<TeamDetail {params} />
|
<Route path="/contacts/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<Contacts />
|
||||||
<Route path="/contacts/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:contact" let:params>
|
||||||
<Contacts />
|
<ContactDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:contact" let:params>
|
</Route>
|
||||||
<ContactDetail {params} />
|
<Route path="/orgs/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<Orgs />
|
||||||
<Route path="/orgs/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:orgid" let:params>
|
||||||
<Orgs />
|
<OrgDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:orgid" let:params>
|
</Route>
|
||||||
<OrgDetail {params} />
|
<Route path="/donors/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<Donors />
|
||||||
<Route path="/donors/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:donorid" let:params>
|
||||||
<Donors />
|
<DonorDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:donorid" let:params>
|
</Route>
|
||||||
<DonorDetail {params} />
|
<Route path="/donations/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<Donations />
|
||||||
<Route path="/donations/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:donationid" let:params>
|
||||||
<Donations />
|
<DonationDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:donationid" let:params>
|
</Route>
|
||||||
<DonationDetail {params} />
|
<Route path="/cards/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<Cards />
|
||||||
<Route path="/cards/*">
|
</Route>
|
||||||
<Route path="/">
|
<!-- <Route path="/:scanid" let:params>
|
||||||
<Cards />
|
<ScanDetail {params} />
|
||||||
</Route>
|
</Route> -->
|
||||||
<!-- <Route path="/:scanid" let:params>
|
</Route>
|
||||||
<ScanDetail {params} />
|
<Route path="/scans/*">
|
||||||
</Route> -->
|
<Route path="/">
|
||||||
</Route>
|
<Scans />
|
||||||
<Route path="/scans/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:scanid" let:params>
|
||||||
<Scans />
|
<ScanDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:scanid" let:params>
|
</Route>
|
||||||
<ScanDetail {params} />
|
<Route path="/scanstations/*">
|
||||||
</Route>
|
<Route path="/">
|
||||||
</Route>
|
<ScanStations />
|
||||||
<Route path="/scanstations/*">
|
</Route>
|
||||||
<Route path="/">
|
<Route path="/:stationid" let:params>
|
||||||
<ScanStations />
|
<ScanStationDetail {params} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/:stationid" let:params>
|
</Route>
|
||||||
<ScanStationDetail {params} />
|
<Route path="/about">
|
||||||
</Route>
|
<About />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/about">
|
<Route path="/settings">
|
||||||
<About />
|
<Settings />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/settings">
|
</Transition>
|
||||||
<Settings />
|
<Footer />
|
||||||
</Route>
|
</Dashboard>
|
||||||
</Transition>
|
{:else}
|
||||||
<Footer />
|
<Login />
|
||||||
</Dashboard>
|
{/if}
|
||||||
{:else}
|
</Route>
|
||||||
<Login />
|
|
||||||
{/if}
|
|
||||||
</Route>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<style global>
|
|
||||||
/*! @import */
|
|
||||||
@tailwind base;
|
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
</style>
|
|
||||||
@@ -1,212 +1,212 @@
|
|||||||
<script>
|
<script>
|
||||||
import { getLocaleFromNavigator, _ } from "svelte-i18n";
|
import { getLocaleFromNavigator, _ } from "svelte-i18n";
|
||||||
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
||||||
let modal_open = false;
|
let modal_open = false;
|
||||||
let delete_org = {};
|
let delete_org = {};
|
||||||
import { RunnerOrganizationService } from "@odit/lfk-client-js";
|
import { RunnerOrganizationService } from "@odit/lfk-client-js";
|
||||||
import store from "../../store";
|
import store from "../../store";
|
||||||
import OrgsEmptyState from "./OrgsEmptyState.svelte";
|
import OrgsEmptyState from "./OrgsEmptyState.svelte";
|
||||||
import Toastify from "toastify-js";
|
import Toastify from "toastify-js";
|
||||||
import ConfirmOrgDeletion from "./ConfirmOrgDeletion.svelte";
|
import ConfirmOrgDeletion from "./ConfirmOrgDeletion.svelte";
|
||||||
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
||||||
$: searchvalue = "";
|
$: searchvalue = "";
|
||||||
$: active_deletes = [];
|
$: active_deletes = [];
|
||||||
$: sponsoring_contracts_show = current_organizations.some((r) => r.is_selected === true);
|
$: sponsoring_contracts_show = current_organizations.some((r) => r.is_selected === true);
|
||||||
$: cards_show = current_organizations.some((r) => r.is_selected === true);
|
$: cards_show = current_organizations.some((r) => r.is_selected === true);
|
||||||
$: generate_orgs = current_organizations.filter((r) => r.is_selected === true);
|
$: generate_orgs = current_organizations.filter((r) => r.is_selected === true);
|
||||||
export let current_organizations = [];
|
export let current_organizations = [];
|
||||||
|
|
||||||
const promise = RunnerOrganizationService.runnerOrganizationControllerGetAll().then(
|
const promise = RunnerOrganizationService.runnerOrganizationControllerGetAll().then(
|
||||||
(val) => {
|
(val) => {
|
||||||
current_organizations = val;
|
current_organizations = val;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<ConfirmOrgDeletion
|
<ConfirmOrgDeletion
|
||||||
on:cancelDelete={(event) => {
|
on:cancelDelete={(event) => {
|
||||||
modal_open = false;
|
modal_open = false;
|
||||||
active_deletes[event.detail.id] = false;
|
active_deletes[event.detail.id] = false;
|
||||||
}}
|
}}
|
||||||
bind:modal_open
|
bind:modal_open
|
||||||
bind:delete_org />
|
bind:delete_org />
|
||||||
{#if store.state.jwtinfo.userdetails.permissions.includes('ORGANIZATION:GET')}
|
{#if store.state.jwtinfo.userdetails.permissions.includes('ORGANIZATION:GET')}
|
||||||
{#await promise}
|
{#await promise}
|
||||||
<div
|
<div
|
||||||
class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2"
|
class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2"
|
||||||
role="alert">
|
role="alert">
|
||||||
<p class="font-bold">{$_('organizations-are-being-loaded')}</p>
|
<p class="font-bold">{$_('organizations-are-being-loaded')}</p>
|
||||||
<p class="text-sm">{$_('this-might-take-a-moment')}</p>
|
<p class="text-sm">{$_('this-might-take-a-moment')}</p>
|
||||||
</div>
|
</div>
|
||||||
{:then}
|
{:then}
|
||||||
{#if current_organizations.length === 0}
|
{#if current_organizations.length === 0}
|
||||||
<OrgsEmptyState />
|
<OrgsEmptyState />
|
||||||
{:else}
|
{:else}
|
||||||
<input
|
<input
|
||||||
type="search"
|
type="search"
|
||||||
bind:value={searchvalue}
|
bind:value={searchvalue}
|
||||||
placeholder={$_('datatable.search')}
|
placeholder={$_('datatable.search')}
|
||||||
aria-label={$_('datatable.search')}
|
aria-label={$_('datatable.search')}
|
||||||
class="gridjs-input gridjs-search-input mb-4" />
|
class="gridjs-input gridjs-search-input mb-4" />
|
||||||
<div class="h-12">
|
<div class="h-12">
|
||||||
<GenerateSponsoringContracts
|
<GenerateSponsoringContracts
|
||||||
bind:sponsoring_contracts_show
|
bind:sponsoring_contracts_show
|
||||||
bind:generate_orgs />
|
bind:generate_orgs />
|
||||||
<GenerateRunnerCards
|
<GenerateRunnerCards
|
||||||
bind:cards_show
|
bind:cards_show
|
||||||
bind:generate_orgs />
|
bind:generate_orgs />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
|
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
|
||||||
<table class="divide-y divide-gray-200 w-full">
|
<table class="divide-y divide-gray-200 w-full">
|
||||||
<thead class="bg-gray-50">
|
<thead class="bg-gray-50">
|
||||||
<tr>
|
<tr>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
<span
|
<span
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
const newstate = !current_organizations.some((r) => r.is_selected === true);
|
const newstate = !current_organizations.some((r) => r.is_selected === true);
|
||||||
current_organizations = current_organizations.map((r) => {
|
current_organizations = current_organizations.map((r) => {
|
||||||
r.is_selected = newstate;
|
r.is_selected = newstate;
|
||||||
return r;
|
return r;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
class="underline cursor-pointer select-none">{#if current_organizations.some((r) => r.is_selected === true)}
|
class="underline cursor-pointer select-none">{#if current_organizations.some((r) => r.is_selected === true)}
|
||||||
{$_('deselect-all')}
|
{$_('deselect-all')}
|
||||||
{:else}{$_('select-all')}{/if}
|
{:else}{$_('select-all')}{/if}
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
{$_('name')}
|
{$_('name')}
|
||||||
</th>
|
</th>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
{$_('address')}
|
{$_('address')}
|
||||||
</th>
|
</th>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
{$_('contact')}
|
{$_('contact')}
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" class="relative px-6 py-3">
|
<th scope="col" class="relative px-6 py-3">
|
||||||
<span class="sr-only">{$_('action')}</span>
|
<span class="sr-only">{$_('action')}</span>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-gray-200">
|
<tbody class="divide-y divide-gray-200">
|
||||||
{#each current_organizations as o}
|
{#each current_organizations as o}
|
||||||
{#if Object.values(o)
|
{#if Object.values(o)
|
||||||
.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchvalue)}
|
.includes(searchvalue)}
|
||||||
<tr data-rowid="org_{o.id}">
|
<tr data-rowid="org_{o.id}">
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<input
|
<input
|
||||||
bind:checked={o.is_selected}
|
bind:checked={o.is_selected}
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" />
|
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" />
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="ml-4">
|
<div class="ml-4">
|
||||||
<div class="text-sm font-medium text-gray-900">
|
<div class="text-sm font-medium text-gray-900">
|
||||||
{o.name}
|
{o.name}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="ml-4">
|
<div class="ml-4">
|
||||||
<div class="text-sm font-medium text-gray-900">
|
<div class="text-sm font-medium text-gray-900">
|
||||||
{#if o.address.address1 !== null}
|
{#if o.address.address1 !== null}
|
||||||
{o.address.address1}<br />
|
{o.address.address1}<br />
|
||||||
{o.address.address2 || ''}<br />
|
{o.address.address2 || ''}<br />
|
||||||
{o.address.postalcode}
|
{o.address.postalcode}
|
||||||
{o.address.city}
|
{o.address.city}
|
||||||
{o.address.country}
|
{o.address.country}
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="ml-4">
|
<div class="ml-4">
|
||||||
<div class="text-sm font-medium text-gray-900">
|
<div class="text-sm font-medium text-gray-900">
|
||||||
{#if o.contact}
|
{#if o.contact}
|
||||||
<a
|
<a
|
||||||
href="../contacts/{o.contact.id}"
|
href="../contacts/{o.contact.id}"
|
||||||
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{o.contact.firstname}
|
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{o.contact.firstname}
|
||||||
{o.contact.middlename || ''}
|
{o.contact.middlename || ''}
|
||||||
{o.contact.lastname}</a>
|
{o.contact.lastname}</a>
|
||||||
{:else}{$_('no-contact-specified')}{/if}
|
{:else}{$_('no-contact-specified')}{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
{#if active_deletes[o.id] === true}
|
{#if active_deletes[o.id] === true}
|
||||||
<td
|
<td
|
||||||
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
active_deletes[o.id] = false;
|
active_deletes[o.id] = false;
|
||||||
}}
|
}}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer">{$_('cancel-delete')}</button>
|
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer">{$_('cancel-delete')}</button>
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
RunnerOrganizationService.runnerOrganizationControllerRemove(o.id, false)
|
RunnerOrganizationService.runnerOrganizationControllerRemove(o.id, false)
|
||||||
.then((resp) => {
|
.then((resp) => {
|
||||||
current_organizations = current_organizations.filter((obj) => obj.id !== o.id);
|
current_organizations = current_organizations.filter((obj) => obj.id !== o.id);
|
||||||
Toastify({
|
Toastify({
|
||||||
text: 'Organization deleted',
|
text: 'Organization deleted',
|
||||||
duration: 500,
|
duration: 500,
|
||||||
backgroundColor:
|
backgroundColor:
|
||||||
'linear-gradient(to right, #00b09b, #96c93d)',
|
'linear-gradient(to right, #00b09b, #96c93d)',
|
||||||
}).showToast();
|
}).showToast();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
modal_open = true;
|
modal_open = true;
|
||||||
delete_org = o;
|
delete_org = o;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')}</button>
|
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')}</button>
|
||||||
</td>
|
</td>
|
||||||
{:else}
|
{:else}
|
||||||
<td
|
<td
|
||||||
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
||||||
<a
|
<a
|
||||||
href="./{o.id}"
|
href="./{o.id}"
|
||||||
class="text-indigo-600 hover:text-indigo-900">{$_('details')}</a>
|
class="text-indigo-600 hover:text-indigo-900">{$_('details')}</a>
|
||||||
{#if store.state.jwtinfo.userdetails.permissions.includes('ORGANIZATION:DELETE')}
|
{#if store.state.jwtinfo.userdetails.permissions.includes('ORGANIZATION:DELETE')}
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
active_deletes[o.id] = true;
|
active_deletes[o.id] = true;
|
||||||
}}
|
}}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')}</button>
|
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')}</button>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
{/if}
|
{/if}
|
||||||
</tr>
|
</tr>
|
||||||
{/if}
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{:catch error}
|
{:catch error}
|
||||||
<div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">
|
<div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">
|
||||||
<span class="inline-block align-middle mr-8">
|
<span class="inline-block align-middle mr-8">
|
||||||
<b class="capitalize">{$_('general_promise_error')}</b>
|
<b class="capitalize">{$_('general_promise_error')}</b>
|
||||||
{error}
|
{error}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{/await}
|
{/await}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
}).showToast();
|
}).showToast();
|
||||||
let count = 0;
|
let count = 0;
|
||||||
const current_cards = await RunnerCardService.runnerCardControllerGetAll();
|
const current_cards = await RunnerCardService.runnerCardControllerGetAll();
|
||||||
for await (const t of generate_teams) {
|
for (const t of generate_teams) {
|
||||||
const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
|
const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
|
||||||
t.id
|
t.id
|
||||||
);
|
);
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
}).showToast();
|
}).showToast();
|
||||||
let count = 0;
|
let count = 0;
|
||||||
const current_cards = await RunnerCardService.runnerCardControllerGetAll();
|
const current_cards = await RunnerCardService.runnerCardControllerGetAll();
|
||||||
for await (const o of generate_orgs) {
|
for (const o of generate_orgs) {
|
||||||
const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
|
const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
|
||||||
o.id
|
o.id
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -0,0 +1,273 @@
|
|||||||
|
<script>
|
||||||
|
import { _ } from "svelte-i18n";
|
||||||
|
import {
|
||||||
|
DonationService,
|
||||||
|
RunnerTeamService,
|
||||||
|
RunnerOrganizationService
|
||||||
|
} from "@odit/lfk-client-js";
|
||||||
|
import Toastify from "toastify-js";
|
||||||
|
export let certificates_show = false;
|
||||||
|
export let generate_runners = [];
|
||||||
|
export let generate_orgs = [];
|
||||||
|
export let generate_teams = [];
|
||||||
|
$: certificates_dropdown_open = false;
|
||||||
|
document.addEventListener("click", function (e) {
|
||||||
|
if (
|
||||||
|
e.target.parentNode?.parentNode?.id != "certificates:dropdown" &&
|
||||||
|
e.target.parentNode?.parentNode?.id != "certificates:dropdown:menu"
|
||||||
|
) {
|
||||||
|
certificates_dropdown_open = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function generateCertificates(locale) {
|
||||||
|
certificates_dropdown_open = false;
|
||||||
|
|
||||||
|
if (generate_orgs.length > 0) {
|
||||||
|
generateOrgCertificates(locale);
|
||||||
|
} else if (generate_teams.length > 0) {
|
||||||
|
generateTeamCertificates(locale);
|
||||||
|
} else {
|
||||||
|
generateRunnerCertificates(locale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function generateRunnerCertificates(locale) {
|
||||||
|
const toast = Toastify({
|
||||||
|
text: $_("generating-pdf"),
|
||||||
|
duration: -1,
|
||||||
|
}).showToast();
|
||||||
|
const current_donations = await DonationService.donationControllerGetAll();
|
||||||
|
let certificateRunners = [];
|
||||||
|
for (let runner of generate_runners) {
|
||||||
|
runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
|
||||||
|
certificateRunners.push(runner);
|
||||||
|
}
|
||||||
|
fetch(
|
||||||
|
`${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`,
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify(certificateRunners),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then((response) => {
|
||||||
|
if (response.status != "200") {
|
||||||
|
toast.hideToast();
|
||||||
|
Toastify({
|
||||||
|
text: $_("pdf-generation-failed"),
|
||||||
|
duration: 3500,
|
||||||
|
backgroundColor:
|
||||||
|
"linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
|
||||||
|
}).showToast();
|
||||||
|
} else {
|
||||||
|
return response.blob();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then((blob) => {
|
||||||
|
const url = window.URL.createObjectURL(blob);
|
||||||
|
let a = document.createElement("a");
|
||||||
|
a.href = url;
|
||||||
|
a.download = "Certificates.pdf";
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
a.remove();
|
||||||
|
toast.hideToast();
|
||||||
|
Toastify({
|
||||||
|
text: $_("pdf-successfully-generated"),
|
||||||
|
duration: 3500,
|
||||||
|
backgroundColor:
|
||||||
|
"linear-gradient(to right, #00b09b, #96c93d)",
|
||||||
|
}).showToast();
|
||||||
|
})
|
||||||
|
.catch((err) => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function generateTeamCertificates(locale) {
|
||||||
|
const toast = Toastify({
|
||||||
|
text: $_("generating-pdfs"),
|
||||||
|
duration: -1,
|
||||||
|
}).showToast();
|
||||||
|
let count = 0;
|
||||||
|
const current_donations = await DonationService.donationControllerGetAll();
|
||||||
|
for (const t of generate_teams) {
|
||||||
|
const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
|
||||||
|
t.id
|
||||||
|
);
|
||||||
|
let certificateRunners = [];
|
||||||
|
for (let runner of runners) {
|
||||||
|
runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
|
||||||
|
certificateRunners.push(runner);
|
||||||
|
}
|
||||||
|
console.log(certificateRunners)
|
||||||
|
fetch(
|
||||||
|
`${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`,
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify(certificateRunners),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then((response) => {
|
||||||
|
if (response.status != "200") {
|
||||||
|
toast.hideToast();
|
||||||
|
Toastify({
|
||||||
|
text: $_("pdf-generation-failed"),
|
||||||
|
duration: 3500,
|
||||||
|
backgroundColor:
|
||||||
|
"linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
|
||||||
|
}).showToast();
|
||||||
|
} else {
|
||||||
|
return response.blob();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then((blob) => {
|
||||||
|
count++;
|
||||||
|
const url = window.URL.createObjectURL(blob);
|
||||||
|
let a = document.createElement("a");
|
||||||
|
a.href = url;
|
||||||
|
a.download = "Certificates_" + t.name + ".pdf";
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
a.remove();
|
||||||
|
if (count === generate_teams.length) {
|
||||||
|
toast.hideToast();
|
||||||
|
Toastify({
|
||||||
|
text: $_("pdfs-successfully-generated"),
|
||||||
|
duration: 3500,
|
||||||
|
backgroundColor:
|
||||||
|
"linear-gradient(to right, #00b09b, #96c93d)",
|
||||||
|
}).showToast();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function generateOrgCertificates(locale) {
|
||||||
|
const toast = Toastify({
|
||||||
|
text: $_("generating-pdf"),
|
||||||
|
duration: -1,
|
||||||
|
}).showToast();
|
||||||
|
let count = 0;
|
||||||
|
const current_donations = await DonationService.donationControllerGetAll();
|
||||||
|
for (const o of generate_orgs) {
|
||||||
|
const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
|
||||||
|
o.id
|
||||||
|
);
|
||||||
|
let certificateRunners = [];
|
||||||
|
for (let runner of runners) {
|
||||||
|
runner.distanceDonations = current_donations.find((d) => d.runner?.id == runner.id) || [];
|
||||||
|
certificateRunners.push(runner);
|
||||||
|
}
|
||||||
|
fetch(
|
||||||
|
`${config.baseurl}/documents/certificates?locale=${locale}&download=true&key=${config.documentserver_key}`,
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify(certificateRunners),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then((response) => {
|
||||||
|
if (response.status != "200") {
|
||||||
|
toast.hideToast();
|
||||||
|
Toastify({
|
||||||
|
text: $_("pdf-generation-failed"),
|
||||||
|
duration: 3500,
|
||||||
|
backgroundColor:
|
||||||
|
"linear-gradient(90deg, hsla(281, 37%, 45%, 1) 0%, hsla(1, 62%, 48%, 1) 100%)",
|
||||||
|
}).showToast();
|
||||||
|
} else {
|
||||||
|
return response.blob();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then((blob) => {
|
||||||
|
count++;
|
||||||
|
const url = window.URL.createObjectURL(blob);
|
||||||
|
let a = document.createElement("a");
|
||||||
|
a.href = url;
|
||||||
|
a.download = "Certificates_" + o.name + ".pdf";
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
a.remove();
|
||||||
|
if (count === generate_orgs.length) {
|
||||||
|
toast.hideToast();
|
||||||
|
Toastify({
|
||||||
|
text: $_("pdfs-successfully-generated"),
|
||||||
|
duration: 3500,
|
||||||
|
backgroundColor:
|
||||||
|
"linear-gradient(to right, #00b09b, #96c93d)",
|
||||||
|
}).showToast();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if certificates_show}
|
||||||
|
<div id="certificates:dropdown" class="relative inline-block">
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
certificates_dropdown_open = !certificates_dropdown_open;
|
||||||
|
}}
|
||||||
|
type="button"
|
||||||
|
class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-gray-600 text-base font-medium text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500 sm:ml-3 sm:w-auto sm:text-sm inline-flex"
|
||||||
|
id="options-menu"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="true">
|
||||||
|
{$_('generate-runner-certificates')}
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
class="-mr-1 ml-2 h-5 w-5"><path
|
||||||
|
fill="none"
|
||||||
|
d="M0 0h24v24H0z" />
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M3 19h18v2H3v-2zm10-5.83l6.07-6.07 1.42 1.41L12 17 3.52 8.52l1.4-1.42L11 13.17V2h2v11.17z" /></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
{#if certificates_dropdown_open}
|
||||||
|
<div
|
||||||
|
class="origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5"
|
||||||
|
id="certificates:dropdown:menu">
|
||||||
|
<div
|
||||||
|
class="py-1"
|
||||||
|
role="menu"
|
||||||
|
aria-orientation="vertical"
|
||||||
|
aria-labelledby="options-menu">
|
||||||
|
<span
|
||||||
|
class="block w-full text-left px-4 py-2 text-sm text-gray-700">{$_('select-language')}</span>
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
generateCertificates('de');
|
||||||
|
}}
|
||||||
|
type="submit"
|
||||||
|
class="block w-full text-left px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"
|
||||||
|
role="menuitem">
|
||||||
|
{$_('german')}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
on:click={() => {
|
||||||
|
generateCertificates('en');
|
||||||
|
}}
|
||||||
|
type="submit"
|
||||||
|
class="block w-full text-left px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"
|
||||||
|
role="menuitem">
|
||||||
|
{$_('english')}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
duration: -1,
|
duration: -1,
|
||||||
}).showToast();
|
}).showToast();
|
||||||
let count = 0;
|
let count = 0;
|
||||||
for await (const t of generate_teams) {
|
for (const t of generate_teams) {
|
||||||
count++;
|
count++;
|
||||||
const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
|
const runners = await RunnerTeamService.runnerTeamControllerGetRunners(
|
||||||
t.id
|
t.id
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
text: $_("generating-pdf"),
|
text: $_("generating-pdf"),
|
||||||
duration: -1,
|
duration: -1,
|
||||||
}).showToast();
|
}).showToast();
|
||||||
for await (const o of generate_orgs) {
|
for (const o of generate_orgs) {
|
||||||
const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
|
const runners = await RunnerOrganizationService.runnerOrganizationControllerGetRunners(
|
||||||
o.id
|
o.id
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import { getLocaleFromNavigator, _ } from "svelte-i18n";
|
import { getLocaleFromNavigator, _ } from "svelte-i18n";
|
||||||
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
||||||
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
||||||
|
import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte";
|
||||||
import store from "../../store";
|
import store from "../../store";
|
||||||
import {
|
import {
|
||||||
RunnerService,
|
RunnerService,
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
editable.group != null;
|
editable.group != null;
|
||||||
$: sponsoring_contracts_show = true;
|
$: sponsoring_contracts_show = true;
|
||||||
$: cards_show = true;
|
$: cards_show = true;
|
||||||
|
$: certificates_show = true;
|
||||||
$: generate_runners = [original_data_pdf];
|
$: generate_runners = [original_data_pdf];
|
||||||
runner_promise.then((data) => {
|
runner_promise.then((data) => {
|
||||||
data_loaded = true;
|
data_loaded = true;
|
||||||
@@ -158,7 +160,10 @@
|
|||||||
bind:sponsoring_contracts_show
|
bind:sponsoring_contracts_show
|
||||||
bind:generate_runners />
|
bind:generate_runners />
|
||||||
<GenerateRunnerCards
|
<GenerateRunnerCards
|
||||||
bind:sponsoring_contracts_show
|
bind:cards_show
|
||||||
|
bind:generate_runners />
|
||||||
|
<GenerateRunnerCertificates
|
||||||
|
bind:certificates_show
|
||||||
bind:generate_runners />
|
bind:generate_runners />
|
||||||
{#if !delete_triggered}
|
{#if !delete_triggered}
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
import Select from "svelte-select";
|
import Select from "svelte-select";
|
||||||
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
||||||
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
||||||
|
import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte";
|
||||||
$: searchvalue = "";
|
$: searchvalue = "";
|
||||||
$: active_deletes = [];
|
$: active_deletes = [];
|
||||||
export let current_runners = [];
|
export let current_runners = [];
|
||||||
@@ -27,6 +28,9 @@
|
|||||||
$: cards_show = current_runners.some(
|
$: cards_show = current_runners.some(
|
||||||
(r) => r.is_selected === true
|
(r) => r.is_selected === true
|
||||||
);
|
);
|
||||||
|
$: certificates_show = current_runners.some(
|
||||||
|
(r) => r.is_selected === true
|
||||||
|
);
|
||||||
$: generate_runners = current_runners.filter((r) => r.is_selected === true);
|
$: generate_runners = current_runners.filter((r) => r.is_selected === true);
|
||||||
$: teams = [];
|
$: teams = [];
|
||||||
$: orgs = [];
|
$: orgs = [];
|
||||||
@@ -92,6 +96,9 @@
|
|||||||
<GenerateRunnerCards
|
<GenerateRunnerCards
|
||||||
bind:cards_show
|
bind:cards_show
|
||||||
bind:generate_runners />
|
bind:generate_runners />
|
||||||
|
<GenerateRunnerCertificates
|
||||||
|
bind:certificates_show
|
||||||
|
bind:generate_runners />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
|
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
|
||||||
|
|||||||
@@ -1,217 +1,217 @@
|
|||||||
<script>
|
<script>
|
||||||
import { getLocaleFromNavigator, t, _ } from "svelte-i18n";
|
import { getLocaleFromNavigator, t, _ } from "svelte-i18n";
|
||||||
import Toastify from "toastify-js";
|
import Toastify from "toastify-js";
|
||||||
import { RunnerTeamService } from "@odit/lfk-client-js";
|
import { RunnerTeamService } from "@odit/lfk-client-js";
|
||||||
const teams_promise = RunnerTeamService.runnerTeamControllerGetAll();
|
const teams_promise = RunnerTeamService.runnerTeamControllerGetAll();
|
||||||
import store, { users as usersstore } from "../../store.js";
|
import store, { users as usersstore } from "../../store.js";
|
||||||
import TeamsEmptyState from "./TeamsEmptyState.svelte";
|
import TeamsEmptyState from "./TeamsEmptyState.svelte";
|
||||||
import ConfirmTeamDeletion from "./ConfirmTeamDeletion.svelte";
|
import ConfirmTeamDeletion from "./ConfirmTeamDeletion.svelte";
|
||||||
import { clickOutside } from "../base/outsideclick";
|
import { clickOutside } from "../base/outsideclick";
|
||||||
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte";
|
||||||
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
|
||||||
$: searchvalue = "";
|
$: searchvalue = "";
|
||||||
$: active_deletes = [];
|
$: active_deletes = [];
|
||||||
$: sponsoring_contracts_show = current_teams.some(
|
$: sponsoring_contracts_show = current_teams.some(
|
||||||
(r) => r.is_selected === true
|
(r) => r.is_selected === true
|
||||||
);
|
);
|
||||||
$: cards_show = current_teams.some(
|
$: cards_show = current_teams.some(
|
||||||
(r) => r.is_selected === true
|
(r) => r.is_selected === true
|
||||||
);
|
);
|
||||||
$: generate_teams = current_teams.filter((r) => r.is_selected === true);
|
$: generate_teams = current_teams.filter((r) => r.is_selected === true);
|
||||||
export let current_teams = [];
|
export let current_teams = [];
|
||||||
let modal_open = false;
|
let modal_open = false;
|
||||||
let delete_team = {};
|
let delete_team = {};
|
||||||
usersstore.subscribe((val) => {
|
usersstore.subscribe((val) => {
|
||||||
current_teams = val;
|
current_teams = val;
|
||||||
});
|
});
|
||||||
teams_promise.then((data) => {
|
teams_promise.then((data) => {
|
||||||
usersstore.set(data);
|
usersstore.set(data);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<ConfirmTeamDeletion
|
<ConfirmTeamDeletion
|
||||||
on:cancelDelete={(event) => {
|
on:cancelDelete={(event) => {
|
||||||
modal_open = false;
|
modal_open = false;
|
||||||
active_deletes[event.detail.id] = false;
|
active_deletes[event.detail.id] = false;
|
||||||
}}
|
}}
|
||||||
bind:modal_open
|
bind:modal_open
|
||||||
bind:delete_team />
|
bind:delete_team />
|
||||||
{#if store.state.jwtinfo.userdetails.permissions.includes('TEAM:GET')}
|
{#if store.state.jwtinfo.userdetails.permissions.includes('TEAM:GET')}
|
||||||
{#await teams_promise}
|
{#await teams_promise}
|
||||||
<div
|
<div
|
||||||
class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2"
|
class="bg-teal-lightest border-t-4 border-teal rounded-b text-teal-darkest px-4 py-3 shadow-md my-2"
|
||||||
role="alert">
|
role="alert">
|
||||||
<p class="font-bold">{$_('teams-are-being-loaded')}</p>
|
<p class="font-bold">{$_('teams-are-being-loaded')}</p>
|
||||||
<p class="text-sm">{$_('this-might-take-a-moment')}</p>
|
<p class="text-sm">{$_('this-might-take-a-moment')}</p>
|
||||||
</div>
|
</div>
|
||||||
{:then}
|
{:then}
|
||||||
{#if current_teams.length === 0}
|
{#if current_teams.length === 0}
|
||||||
<TeamsEmptyState />
|
<TeamsEmptyState />
|
||||||
{:else}
|
{:else}
|
||||||
<input
|
<input
|
||||||
type="search"
|
type="search"
|
||||||
bind:value={searchvalue}
|
bind:value={searchvalue}
|
||||||
placeholder={$_('datatable.search')}
|
placeholder={$_('datatable.search')}
|
||||||
aria-label={$_('datatable.search')}
|
aria-label={$_('datatable.search')}
|
||||||
class="gridjs-input gridjs-search-input mb-4" />
|
class="gridjs-input gridjs-search-input mb-4" />
|
||||||
<div class="h-12">
|
<div class="h-12">
|
||||||
<GenerateSponsoringContracts
|
<GenerateSponsoringContracts
|
||||||
bind:sponsoring_contracts_show
|
bind:sponsoring_contracts_show
|
||||||
bind:generate_teams />
|
bind:generate_teams />
|
||||||
<GenerateRunnerCards
|
<GenerateRunnerCards
|
||||||
bind:cards_show
|
bind:cards_show
|
||||||
bind:generate_teams />
|
bind:generate_teams />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
|
class="shadow border-b border-gray-200 sm:rounded-lg overflow-x-scroll">
|
||||||
<table class="divide-y divide-gray-200 w-full">
|
<table class="divide-y divide-gray-200 w-full">
|
||||||
<thead class="bg-gray-50">
|
<thead class="bg-gray-50">
|
||||||
<tr>
|
<tr>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
<span
|
<span
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
const newstate = !current_teams.some((r) => r.is_selected === true);
|
const newstate = !current_teams.some((r) => r.is_selected === true);
|
||||||
current_teams = current_teams.map((r) => {
|
current_teams = current_teams.map((r) => {
|
||||||
r.is_selected = newstate;
|
r.is_selected = newstate;
|
||||||
return r;
|
return r;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
class="underline cursor-pointer select-none">{#if current_teams.some((r) => r.is_selected === true)}
|
class="underline cursor-pointer select-none">{#if current_teams.some((r) => r.is_selected === true)}
|
||||||
{$_('deselect-all')}
|
{$_('deselect-all')}
|
||||||
{:else}{$_('select-all')}{/if}
|
{:else}{$_('select-all')}{/if}
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
{$_('name')}
|
{$_('name')}
|
||||||
</th>
|
</th>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
{$_('organization')}
|
{$_('organization')}
|
||||||
</th>
|
</th>
|
||||||
<th
|
<th
|
||||||
scope="col"
|
scope="col"
|
||||||
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
|
||||||
{$_('contact')}
|
{$_('contact')}
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" class="relative px-6 py-3">
|
<th scope="col" class="relative px-6 py-3">
|
||||||
<span class="sr-only">{$_('action')}</span>
|
<span class="sr-only">{$_('action')}</span>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-gray-200">
|
<tbody class="divide-y divide-gray-200">
|
||||||
{#each current_teams as t}
|
{#each current_teams as t}
|
||||||
{#if Object.values(t)
|
{#if Object.values(t)
|
||||||
.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchvalue)}
|
.includes(searchvalue)}
|
||||||
<tr data-rowid="team_{t.id}">
|
<tr data-rowid="team_{t.id}">
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<input
|
<input
|
||||||
bind:checked={t.is_selected}
|
bind:checked={t.is_selected}
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" />
|
class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" />
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="ml-4">
|
<div class="ml-4">
|
||||||
<div class="text-sm font-medium text-gray-900">
|
<div class="text-sm font-medium text-gray-900">
|
||||||
{t.name}
|
{t.name}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="ml-4">
|
<div class="ml-4">
|
||||||
<div class="text-sm font-medium text-gray-900">
|
<div class="text-sm font-medium text-gray-900">
|
||||||
{#if t.parentGroup}
|
{#if t.parentGroup}
|
||||||
<a
|
<a
|
||||||
href="../orgs/{t.parentGroup.id}"
|
href="../orgs/{t.parentGroup.id}"
|
||||||
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{t.parentGroup.name}</a>
|
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{t.parentGroup.name}</a>
|
||||||
{:else}{$_('no-organization-specified')}{/if}
|
{:else}{$_('no-organization-specified')}{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-6 py-4 whitespace-nowrap">
|
<td class="px-6 py-4 whitespace-nowrap">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="ml-4">
|
<div class="ml-4">
|
||||||
<div class="text-sm font-medium text-gray-900">
|
<div class="text-sm font-medium text-gray-900">
|
||||||
{#if t.contact}
|
{#if t.contact}
|
||||||
<a
|
<a
|
||||||
href="../contacts/{t.contact.id}"
|
href="../contacts/{t.contact.id}"
|
||||||
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{t.contact.firstname}
|
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{t.contact.firstname}
|
||||||
{t.contact.middlename || ''}
|
{t.contact.middlename || ''}
|
||||||
{t.contact.lastname}</a>
|
{t.contact.lastname}</a>
|
||||||
{:else}{$_('no-contact-specified')}{/if}
|
{:else}{$_('no-contact-specified')}{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
{#if active_deletes[t.id] === true}
|
{#if active_deletes[t.id] === true}
|
||||||
<td
|
<td
|
||||||
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
active_deletes[t.id] = false;
|
active_deletes[t.id] = false;
|
||||||
}}
|
}}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer">Cancel
|
class="ml-4 text-indigo-600 hover:text-indigo-900 cursor-pointer">Cancel
|
||||||
Delete</button>
|
Delete</button>
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
RunnerTeamService.runnerTeamControllerRemove(t.id, false)
|
RunnerTeamService.runnerTeamControllerRemove(t.id, false)
|
||||||
.then((resp) => {
|
.then((resp) => {
|
||||||
current_teams = current_teams.filter((obj) => obj.id !== t.id);
|
current_teams = current_teams.filter((obj) => obj.id !== t.id);
|
||||||
Toastify({
|
Toastify({
|
||||||
text: $_('organization-deleted'),
|
text: $_('organization-deleted'),
|
||||||
duration: 500,
|
duration: 500,
|
||||||
backgroundColor:
|
backgroundColor:
|
||||||
'linear-gradient(to right, #00b09b, #96c93d)',
|
'linear-gradient(to right, #00b09b, #96c93d)',
|
||||||
}).showToast();
|
}).showToast();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
modal_open = true;
|
modal_open = true;
|
||||||
delete_team = t;
|
delete_team = t;
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')}</button>
|
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('confirm-delete')}</button>
|
||||||
</td>
|
</td>
|
||||||
{:else}
|
{:else}
|
||||||
<td
|
<td
|
||||||
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
|
||||||
<a
|
<a
|
||||||
href="./{t.id}"
|
href="./{t.id}"
|
||||||
class="text-indigo-600 hover:text-indigo-900">{$_('details')}</a>
|
class="text-indigo-600 hover:text-indigo-900">{$_('details')}</a>
|
||||||
{#if store.state.jwtinfo.userdetails.permissions.includes('TEAM:DELETE')}
|
{#if store.state.jwtinfo.userdetails.permissions.includes('TEAM:DELETE')}
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
active_deletes[t.id] = true;
|
active_deletes[t.id] = true;
|
||||||
}}
|
}}
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')}</button>
|
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">{$_('delete')}</button>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
{/if}
|
{/if}
|
||||||
</tr>
|
</tr>
|
||||||
{/if}
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{:catch error}
|
{:catch error}
|
||||||
<div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">
|
<div class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">
|
||||||
<span class="inline-block align-middle mr-8">
|
<span class="inline-block align-middle mr-8">
|
||||||
<b class="capitalize">{$_('general_promise_error')}</b>
|
<b class="capitalize">{$_('general_promise_error')}</b>
|
||||||
{error}
|
{error}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{/await}
|
{/await}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
import App from './App.svelte';
|
|
||||||
|
|
||||||
const app = new App({
|
|
||||||
target: document.body
|
|
||||||
});
|
|
||||||
|
|
||||||
export default app;
|
|
||||||
// HMR
|
|
||||||
if (import.meta.hot) {
|
|
||||||
import.meta.hot.accept();
|
|
||||||
import.meta.hot.dispose(() => {
|
|
||||||
app.$destroy();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
+427
-426
@@ -1,427 +1,428 @@
|
|||||||
{
|
{
|
||||||
"404message": "Die gesuchte Seite wurde leider nicht gefunden.",
|
"404message": "Die gesuchte Seite wurde leider nicht gefunden.",
|
||||||
"404title": "Fehler 404",
|
"404title": "Fehler 404",
|
||||||
"about": "Über",
|
"about": "Über",
|
||||||
"action": "Aktionen",
|
"action": "Aktionen",
|
||||||
"active": "Aktiv",
|
"active": "Aktiv",
|
||||||
"add-card": "Karte erstellen",
|
"add-card": "Karte erstellen",
|
||||||
"add-donation": "Sponsoring erstellen",
|
"add-donation": "Sponsoring erstellen",
|
||||||
"add-donor": "Sponsor:in erstellen",
|
"add-donor": "Sponsor:in erstellen",
|
||||||
"add-scan": "Scan erstellen",
|
"add-scan": "Scan erstellen",
|
||||||
"add-the-first-scanstation": "Erstelle deine erste Scannerstation.",
|
"add-the-first-scanstation": "Erstelle deine erste Scannerstation.",
|
||||||
"add-user-group": "Neue Gruppe erstellen",
|
"add-user-group": "Neue Gruppe erstellen",
|
||||||
"add-your-first-card": "Erstelle deine erste Läuferkarte",
|
"add-your-first-card": "Erstelle deine erste Läuferkarte",
|
||||||
"add-your-first-contact": "Erstelle den ersten Kontakt",
|
"add-your-first-contact": "Erstelle den ersten Kontakt",
|
||||||
"add-your-first-donor": "Erstelle die erste Sponsor:in",
|
"add-your-first-donor": "Erstelle die erste Sponsor:in",
|
||||||
"add-your-first-group": "Erstelle die erste Gruppe",
|
"add-your-first-group": "Erstelle die erste Gruppe",
|
||||||
"add-your-first-organization": "Erstelle die erste Organisation",
|
"add-your-first-organization": "Erstelle die erste Organisation",
|
||||||
"add-your-first-runner": "Erstelle die erste Läufer:in",
|
"add-your-first-runner": "Erstelle die erste Läufer:in",
|
||||||
"add-your-first-team": "Erstelle das erste Team",
|
"add-your-first-team": "Erstelle das erste Team",
|
||||||
"add-your-first-track": "Erstelle den ersten Track (Laufstrecke).",
|
"add-your-first-track": "Erstelle den ersten Track (Laufstrecke).",
|
||||||
"add-your-first-user": "Erstelle die erste Benutzer:in",
|
"add-your-first-user": "Erstelle die erste Benutzer:in",
|
||||||
"add-your-fist-donation": "Erstelle dein erstes Sponsoring",
|
"add-your-fist-donation": "Erstelle dein erstes Sponsoring",
|
||||||
"add-your-fist-scan": "Füge deinen ersten Scan hinzu",
|
"add-your-fist-scan": "Füge deinen ersten Scan hinzu",
|
||||||
"adding-card": "Karte wird erstellt",
|
"adding-card": "Karte wird erstellt",
|
||||||
"adding-scan": "Scan wird hinzugefügt",
|
"adding-scan": "Scan wird hinzugefügt",
|
||||||
"address": "Adresse",
|
"address": "Adresse",
|
||||||
"address-is-required": "Du musst eine Adresse angeben",
|
"address-is-required": "Du musst eine Adresse angeben",
|
||||||
"after-deletion-we-cant-restore-your-old-profile": "Nach der Löschung können auch die Admins dein Profil nicht wiederherstellen!",
|
"after-deletion-we-cant-restore-your-old-profile": "Nach der Löschung können auch die Admins dein Profil nicht wiederherstellen!",
|
||||||
"after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "Nach der Änderung wirst du abgemeldet - bitte melde dich dann mit deinem neuen Passwort an.",
|
"after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "Nach der Änderung wirst du abgemeldet - bitte melde dich dann mit deinem neuen Passwort an.",
|
||||||
"all-associated-donations-will-get-deleted-as-well": "Alle Sponsorings dieser Sponsor:in werden ebenfalls gelöscht",
|
"all-associated-donations-will-get-deleted-as-well": "Alle Sponsorings dieser Sponsor:in werden ebenfalls gelöscht",
|
||||||
"all-associated-runners-will-be-deleted-too": "Alle zugehörigen Läufer:innen werden auch gelöscht!",
|
"all-associated-runners-will-be-deleted-too": "Alle zugehörigen Läufer:innen werden auch gelöscht!",
|
||||||
"all-associated-teams-and-runners-will-be-deleted-too": "Alle assoziierten Teams und Läufer:innen werden auch gelöscht!",
|
"all-associated-teams-and-runners-will-be-deleted-too": "Alle assoziierten Teams und Läufer:innen werden auch gelöscht!",
|
||||||
"amount": "Anzahl",
|
"amount": "Anzahl",
|
||||||
"amount-per-kilometer": "Betrag pro Kilometer",
|
"amount-per-kilometer": "Betrag pro Kilometer",
|
||||||
"apartment-suite-etc": "Apartment, Wohnung, etc.",
|
"apartment-suite-etc": "Apartment, Wohnung, etc.",
|
||||||
"application_name": "Lauf für Kaya! - Admin",
|
"application_name": "Lauf für Kaya! - Admin",
|
||||||
"applying-changes": "Änderungen anwenden",
|
"applying-changes": "Änderungen anwenden",
|
||||||
"attention": "Achtung!",
|
"attention": "Achtung!",
|
||||||
"author": "Autor:in",
|
"author": "Autor:in",
|
||||||
"bitte-bestaetige-diese-laeufer-fuer-den-import": "Bitte die Läufer:innen für den Import bestätigen.",
|
"bitte-bestaetige-diese-laeufer-fuer-den-import": "Bitte die Läufer:innen für den Import bestätigen.",
|
||||||
"by": "von",
|
"by": "von",
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"cancel-delete": "Löschen abbrechen",
|
"cancel-delete": "Löschen abbrechen",
|
||||||
"cancel-keep-donor": "Abbrechen, Sponsor:in behalten",
|
"cancel-keep-donor": "Abbrechen, Sponsor:in behalten",
|
||||||
"cancel-keep-my-profile": "Abbrechen, mein Profil behalten",
|
"cancel-keep-my-profile": "Abbrechen, mein Profil behalten",
|
||||||
"cancel-keep-organization": "Abbrechen und Organisation bearbeiten",
|
"cancel-keep-organization": "Abbrechen und Organisation bearbeiten",
|
||||||
"cancel-keep-team": "Abbrechen, Team behalten",
|
"cancel-keep-team": "Abbrechen, Team behalten",
|
||||||
"cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.",
|
"cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.",
|
||||||
"card-added": "Karte wurde hinzugefügt",
|
"card-added": "Karte wurde hinzugefügt",
|
||||||
"card-deleted": "Karte gelöscht",
|
"card-deleted": "Karte gelöscht",
|
||||||
"card-updated": "Karte aktualisiert",
|
"card-updated": "Karte aktualisiert",
|
||||||
"cards": "Läuferkarten",
|
"cards": "Läuferkarten",
|
||||||
"change-your-password-here": "Hier kannst du dein Passwort ändern",
|
"change-your-password-here": "Hier kannst du dein Passwort ändern",
|
||||||
"changing-your-password": "Passwort wird geändert",
|
"changing-your-password": "Passwort wird geändert",
|
||||||
"city": "Stadt",
|
"city": "Stadt",
|
||||||
"click-to-copy-the-link-into-your-clipboard": "Klicke auf den Link, um ihn in deine Zwischenablage zu kopieren",
|
"click-to-copy-the-link-into-your-clipboard": "Klicke auf den Link, um ihn in deine Zwischenablage zu kopieren",
|
||||||
"click-to-copy-token-to-clipboard": "Klicke auf den Token, um ihn in deine Zwischenablage zu kopieren",
|
"click-to-copy-token-to-clipboard": "Klicke auf den Token, um ihn in deine Zwischenablage zu kopieren",
|
||||||
"close": "Schließen",
|
"close": "Schließen",
|
||||||
"code": "Code",
|
"code": "Code",
|
||||||
"configure-the-tracks-and-minimum-lap-times": "Bearbeite die Tracks und ihre minimale Rundenzeit",
|
"configure-the-tracks-and-minimum-lap-times": "Bearbeite die Tracks und ihre minimale Rundenzeit",
|
||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
"confirm-delete": "Löschung Bestätigen",
|
"confirm-delete": "Löschung Bestätigen",
|
||||||
"confirm-delete-donor-with-all-donations": "Bestätigen, Sponsor:in mit allen Sponsorings löschen",
|
"confirm-delete-donor-with-all-donations": "Bestätigen, Sponsor:in mit allen Sponsorings löschen",
|
||||||
"confirm-delete-my-user-profile": "Bestätigung, mein Benutzerprofil löschen",
|
"confirm-delete-my-user-profile": "Bestätigung, mein Benutzerprofil löschen",
|
||||||
"confirm-delete-organization-and-associated-teams-runners": "Bestätugung, lösche die Organisation und alle zugehörigen Teams und Läufer:innen.",
|
"confirm-delete-organization-and-associated-teams-runners": "Bestätugung, lösche die Organisation und alle zugehörigen Teams und Läufer:innen.",
|
||||||
"confirm-delete-team-and-associated-runners": "Bestätigung, lösche das Team mitsamt seinen Läufer:innen.",
|
"confirm-delete-team-and-associated-runners": "Bestätigung, lösche das Team mitsamt seinen Läufer:innen.",
|
||||||
"confirm-deletion": "Löschung Bestätigen",
|
"confirm-deletion": "Löschung Bestätigen",
|
||||||
"confirm-the-new-password": "Neues Passwort bestätigen",
|
"confirm-the-new-password": "Neues Passwort bestätigen",
|
||||||
"contact": "Kontakt",
|
"contact": "Kontakt",
|
||||||
"contact-deleted": "Kontakt gelöscht",
|
"contact-deleted": "Kontakt gelöscht",
|
||||||
"contact-information": "Kontaktinformation",
|
"contact-information": "Kontaktinformation",
|
||||||
"contact-is-being-updated": "Kontakt wird aktualisiert ...",
|
"contact-is-being-updated": "Kontakt wird aktualisiert ...",
|
||||||
"contact-is-not-a-member-in-any-group": "Kontakt gehört zu keiner Gruppe",
|
"contact-is-not-a-member-in-any-group": "Kontakt gehört zu keiner Gruppe",
|
||||||
"contacts": "Kontakte",
|
"contacts": "Kontakte",
|
||||||
"contacts-are-being-loaded": "Kontakte werden geladen ...",
|
"contacts-are-being-loaded": "Kontakte werden geladen ...",
|
||||||
"copied-link-to-clipboard": "Link wurde in die Zwischenablage kopiert",
|
"copied-link-to-clipboard": "Link wurde in die Zwischenablage kopiert",
|
||||||
"copied-token-to-clipboard": "Token wurde in die Zwischenablage kopiert",
|
"copied-token-to-clipboard": "Token wurde in die Zwischenablage kopiert",
|
||||||
"count_organizations": "Organisationen (Anzahl)",
|
"count_organizations": "Organisationen (Anzahl)",
|
||||||
"count_teams": "Teams (Anzahl)",
|
"count_teams": "Teams (Anzahl)",
|
||||||
"create": "Erstellen",
|
"create": "Erstellen",
|
||||||
"create-a-new": "Erstelle eine neue",
|
"create-a-new": "Erstelle eine neue",
|
||||||
"create-a-new-card": "Neue Läuferkarte erstellen",
|
"create-a-new-card": "Neue Läuferkarte erstellen",
|
||||||
"create-a-new-contact": "Kontakt erstellen",
|
"create-a-new-contact": "Kontakt erstellen",
|
||||||
"create-a-new-distance-donation": "Erstelle ein neues Sponsoring",
|
"create-a-new-distance-donation": "Erstelle ein neues Sponsoring",
|
||||||
"create-a-new-donor": "Neue Sponsor:in erstellen",
|
"create-a-new-donor": "Neue Sponsor:in erstellen",
|
||||||
"create-a-new-fixed-donation": "Erstelle eine neue Festbetragsspende",
|
"create-a-new-fixed-donation": "Erstelle eine neue Festbetragsspende",
|
||||||
"create-a-new-organization": "Neue Organisation anlegen",
|
"create-a-new-organization": "Neue Organisation anlegen",
|
||||||
"create-a-new-runner": "Neue Läufer:in erstellen",
|
"create-a-new-runner": "Neue Läufer:in erstellen",
|
||||||
"create-a-new-scan-fixed-only": "Neuen Scan erstellen (nur mit Festdistanz)",
|
"create-a-new-scan-fixed-only": "Neuen Scan erstellen (nur mit Festdistanz)",
|
||||||
"create-a-new-scanstation": "Neue Station erstellen",
|
"create-a-new-scanstation": "Neue Station erstellen",
|
||||||
"create-a-new-team": "Erstelle ein neues Team",
|
"create-a-new-team": "Erstelle ein neues Team",
|
||||||
"create-a-new-track": "Neuen Track erstellen",
|
"create-a-new-track": "Neuen Track erstellen",
|
||||||
"create-a-new-user": "Neue Benutzer:in anlegen",
|
"create-a-new-user": "Neue Benutzer:in anlegen",
|
||||||
"create-a-new-user-group": "Erstelle eine neue Gruppe",
|
"create-a-new-user-group": "Erstelle eine neue Gruppe",
|
||||||
"create-and-generate-pdf": "Erstellen und PDF herunterladen",
|
"create-and-generate-pdf": "Erstellen und PDF herunterladen",
|
||||||
"create-bulk-blanco-cards": "Blankokarten erstellen",
|
"create-bulk-blanco-cards": "Blankokarten erstellen",
|
||||||
"create-bulk-cards": "Blankokarten erstellen",
|
"create-bulk-cards": "Blankokarten erstellen",
|
||||||
"create-organization": "Organisation erstellen",
|
"create-organization": "Organisation erstellen",
|
||||||
"create-team": "Team erstellen",
|
"create-team": "Team erstellen",
|
||||||
"create-track": "Track erstellen",
|
"create-track": "Track erstellen",
|
||||||
"create-user": "Benutzer anlegen",
|
"create-user": "Benutzer anlegen",
|
||||||
"create-without-pdf": "Ohne PDF erstellen",
|
"create-without-pdf": "Ohne PDF erstellen",
|
||||||
"created-blanco-cards": "Blankokarten wurden erstellt",
|
"created-blanco-cards": "Blankokarten wurden erstellt",
|
||||||
"creating-blanco-cards": "Erstelle Blankokarten",
|
"creating-blanco-cards": "Erstelle Blankokarten",
|
||||||
"credits": "Credits",
|
"credits": "Credits",
|
||||||
"csv_import__class": "Klasse",
|
"csv_import__class": "Klasse",
|
||||||
"csv_import__firstname": "Vorname",
|
"csv_import__firstname": "Vorname",
|
||||||
"csv_import__lastname": "Nachname",
|
"csv_import__lastname": "Nachname",
|
||||||
"csv_import__middlename": "Mittelname",
|
"csv_import__middlename": "Mittelname",
|
||||||
"csv_import__team": "Team",
|
"csv_import__team": "Team",
|
||||||
"danger-zone": "Gefahrenzone",
|
"danger-zone": "Gefahrenzone",
|
||||||
"dashboard-greeting": "Hallo",
|
"dashboard-greeting": "Hallo",
|
||||||
"dashboard-title": "Dashboard",
|
"dashboard-title": "Dashboard",
|
||||||
"datatable": {
|
"datatable": {
|
||||||
"search": "🔍 Suche ...",
|
"search": "🔍 Suche ...",
|
||||||
"an_error_happened_while_fetching_the_data": "Beim Abrufen der Daten ist ein Fehler aufgetreten",
|
"an_error_happened_while_fetching_the_data": "Beim Abrufen der Daten ist ein Fehler aufgetreten",
|
||||||
"loading": "Wird geladen...",
|
"loading": "Wird geladen...",
|
||||||
"next": "Nächste",
|
"next": "Nächste",
|
||||||
"of": "von",
|
"of": "von",
|
||||||
"previous": "Vorherige",
|
"previous": "Vorherige",
|
||||||
"to": "bis",
|
"to": "bis",
|
||||||
"showing": "Zeige",
|
"showing": "Zeige",
|
||||||
"no_matching_records_found": "Keine passenden Einträge gefunden",
|
"no_matching_records_found": "Keine passenden Einträge gefunden",
|
||||||
"page": "Seite",
|
"page": "Seite",
|
||||||
"records": "Einträge",
|
"records": "Einträge",
|
||||||
"sort_column_ascending": "Spalte aufsteigend sortieren",
|
"sort_column_ascending": "Spalte aufsteigend sortieren",
|
||||||
"sort_column_descending": "Spalte absteigend sortieren"
|
"sort_column_descending": "Spalte absteigend sortieren"
|
||||||
},
|
},
|
||||||
"delete": "Löschen",
|
"delete": "Löschen",
|
||||||
"delete-contact": "Kontakt löschen",
|
"delete-contact": "Kontakt löschen",
|
||||||
"delete-donation": "Sponsporing löschen",
|
"delete-donation": "Sponsporing löschen",
|
||||||
"delete-donor": "Sponsor:in löschen",
|
"delete-donor": "Sponsor:in löschen",
|
||||||
"delete-group": "Gruppe löschen",
|
"delete-group": "Gruppe löschen",
|
||||||
"delete-organization": "Organisation löschen",
|
"delete-organization": "Organisation löschen",
|
||||||
"delete-profile": "Profil löschen",
|
"delete-profile": "Profil löschen",
|
||||||
"delete-runner": "Läufer:in löschen",
|
"delete-runner": "Läufer:in löschen",
|
||||||
"delete-scan": "Scan löschen",
|
"delete-scan": "Scan löschen",
|
||||||
"delete-station": "Station löschen",
|
"delete-station": "Station löschen",
|
||||||
"delete-team": "Team Löschen",
|
"delete-team": "Team Löschen",
|
||||||
"delete-user": "Benutzer:in löschen",
|
"delete-user": "Benutzer:in löschen",
|
||||||
"deleted-scan": "Scan wurde gelöscht",
|
"deleted-scan": "Scan wurde gelöscht",
|
||||||
"dependency_name": "Name",
|
"dependency_name": "Name",
|
||||||
"description": "Beschreibung",
|
"description": "Beschreibung",
|
||||||
"description-optional": "Beschreibung (optional)",
|
"description-optional": "Beschreibung (optional)",
|
||||||
"deselect-all": "Alle abwählen",
|
"deselect-all": "Alle abwählen",
|
||||||
"details": "Details",
|
"details": "Details",
|
||||||
"disabled": "deaktiviert",
|
"disabled": "deaktiviert",
|
||||||
"distance": "Distanz",
|
"distance": "Distanz",
|
||||||
"distance-donation": "Sponsoring",
|
"distance-donation": "Sponsoring",
|
||||||
"distance-in-km": "Distanz (in KM)",
|
"distance-in-km": "Distanz (in KM)",
|
||||||
"distance-track": "Distanz (+Track)",
|
"distance-track": "Distanz (+Track)",
|
||||||
"do-you-really-want-to-delete-your-profile": "Möchtest du dein Profil wirklich löschen?",
|
"do-you-really-want-to-delete-your-profile": "Möchtest du dein Profil wirklich löschen?",
|
||||||
"do-you-want-to-delete-the-organization-delete_org-name": "Möchtest du die Organisation {orgname} löschen?",
|
"do-you-want-to-delete-the-organization-delete_org-name": "Möchtest du die Organisation {orgname} löschen?",
|
||||||
"do-you-want-to-delete-the-team-delete_team-name": "Möchtest du das Team {teamname} löschen?",
|
"do-you-want-to-delete-the-team-delete_team-name": "Möchtest du das Team {teamname} löschen?",
|
||||||
"do-you-want-to-delete-this-donor-with-all-related-donations": "Möchtest du diese Sponsor:in mit all ihren Sponsorings löschen?",
|
"do-you-want-to-delete-this-donor-with-all-related-donations": "Möchtest du diese Sponsor:in mit all ihren Sponsorings löschen?",
|
||||||
"documentation": "Dokumentation",
|
"documentation": "Dokumentation",
|
||||||
"donation-amount": "Sponsoringbetrag",
|
"donation-amount": "Sponsoringbetrag",
|
||||||
"donation-amount-must-be-greater-that-0-00eur": "Der Sponsoringbetrag muss größer als 0.00€ sein.",
|
"donation-amount-must-be-greater-that-0-00eur": "Der Sponsoringbetrag muss größer als 0.00€ sein.",
|
||||||
"donations": "Sponsorings",
|
"donations": "Sponsorings",
|
||||||
"donor": "Sponsor:in",
|
"donor": "Sponsor:in",
|
||||||
"donor-added": "Sponsor:in hinzugefügt",
|
"donor-added": "Sponsor:in hinzugefügt",
|
||||||
"donor-deleted": "Sponsor:in gelöscht",
|
"donor-deleted": "Sponsor:in gelöscht",
|
||||||
"donor-has-no-associated-donations": "Zur Sponsor:in gibt es noch keine Sponsorings",
|
"donor-has-no-associated-donations": "Zur Sponsor:in gibt es noch keine Sponsorings",
|
||||||
"donor-is-being-added": "Sponsor:in wird hinzugefügt...",
|
"donor-is-being-added": "Sponsor:in wird hinzugefügt...",
|
||||||
"donor-is-being-updated": "Sponsor:in wird aktualisiert",
|
"donor-is-being-updated": "Sponsor:in wird aktualisiert",
|
||||||
"donors": "Sponsor:innen",
|
"donors": "Sponsor:innen",
|
||||||
"donors-are-being-loaded": "Sponsor:innen werden geladen",
|
"donors-are-being-loaded": "Sponsor:innen werden geladen",
|
||||||
"dont-have-your-email-connected": "Deine E-Mail ist nicht verknüpft?",
|
"dont-have-your-email-connected": "Deine E-Mail ist nicht verknüpft?",
|
||||||
"dont-panic-were-resetting-it": "Keine Panik, wir setzen es zurück ✌",
|
"dont-panic-were-resetting-it": "Keine Panik, wir setzen es zurück ✌",
|
||||||
"e-mail-adress": "E-Mail-Adresse",
|
"e-mail-adress": "E-Mail-Adresse",
|
||||||
"edit": "Bearbeiten",
|
"edit": "Bearbeiten",
|
||||||
"edit-a-card": "Läuferkarte bearbeiten",
|
"edit-a-card": "Läuferkarte bearbeiten",
|
||||||
"edit-permissions": "Berechtigungen bearbeiten",
|
"edit-permissions": "Berechtigungen bearbeiten",
|
||||||
"email_address_or_username": "E-Mail-Adresse/ Benutzername",
|
"email_address_or_username": "E-Mail-Adresse/ Benutzername",
|
||||||
"enabled": "aktiviert",
|
"enabled": "aktiviert",
|
||||||
"enabled_large": "Aktiviert",
|
"enabled_large": "Aktiviert",
|
||||||
"english": "Englisch",
|
"english": "Englisch",
|
||||||
"error-during-import": "Fehler beim Importieren",
|
"error-during-import": "Fehler beim Importieren",
|
||||||
"error-whyile-copying-to-clipboard": "Fehler beim Kopieren in die Zwischenablage",
|
"error-whyile-copying-to-clipboard": "Fehler beim Kopieren in die Zwischenablage",
|
||||||
"error_on_login": "😢Fehler beim Login",
|
"error_on_login": "😢Fehler beim Login",
|
||||||
"erteilte": "Direkt erteilte",
|
"erteilte": "Direkt erteilte",
|
||||||
"everything-concerning-your-profile": "Alles zu deinem Profil",
|
"everything-concerning-your-profile": "Alles zu deinem Profil",
|
||||||
"everything-is-more-fun-together": "Im Team macht's mehr Spaß 🏃♂️🏃♀️🏃♂️",
|
"everything-is-more-fun-together": "Im Team macht's mehr Spaß 🏃♂️🏃♀️🏃♂️",
|
||||||
"faq": "FAQ",
|
"faq": "FAQ",
|
||||||
"filter-by-organization-team": "Filtern nach Organisation / Team",
|
"filter-by-organization-team": "Filtern nach Organisation / Team",
|
||||||
"first-name": "Vorname",
|
"first-name": "Vorname",
|
||||||
"first-name-is-required": "Vorname muss angegeben werden",
|
"first-name-is-required": "Vorname muss angegeben werden",
|
||||||
"first-scan-of-the-day": "Erster Scan des Tages",
|
"first-scan-of-the-day": "Erster Scan des Tages",
|
||||||
"fixed-donation": "Festbetragsspende",
|
"fixed-donation": "Festbetragsspende",
|
||||||
"forgot_password": "Passwort vergessen?",
|
"forgot_password": "Passwort vergessen?",
|
||||||
"geerbte": "geerbte",
|
"geerbte": "geerbte",
|
||||||
"general-stats": "Allgemeine Statistiken",
|
"general-stats": "Allgemeine Statistiken",
|
||||||
"general_promise_error": "😢 Ein unbekannter Fehler ist aufgetreten",
|
"general_promise_error": "😢 Ein unbekannter Fehler ist aufgetreten",
|
||||||
"generate-runnercards": "Läuferkarten generieren",
|
"generate-runnercards": "Läuferkarten generieren",
|
||||||
"generate-sponsoring-contract": "Sponsoringvertrag generieren",
|
"generate-sponsoring-contract": "Sponsoringvertrag generieren",
|
||||||
"generate-sponsoring-contracts": "Sponsoringverträge generieren",
|
"generate-sponsoring-contracts": "Sponsoringverträge generieren",
|
||||||
"generating-pdf": "Pdf wird generiert...",
|
"generating-pdf": "Pdf wird generiert...",
|
||||||
"generating-pdfs": "PDFs werden generiert...",
|
"generating-pdfs": "PDFs werden generiert...",
|
||||||
"generic-ui-logic-error": "Etwas ist in der Benutzeroberfläche schiefgelaufen.",
|
"generic-ui-logic-error": "Etwas ist in der Benutzeroberfläche schiefgelaufen.",
|
||||||
"german": "Deutsch",
|
"german": "Deutsch",
|
||||||
"go-to-login": "Zum Login",
|
"go-to-login": "Zum Login",
|
||||||
"goback": "Zur Startseite",
|
"goback": "Zur Startseite",
|
||||||
"granted": "Gewährt",
|
"granted": "Gewährt",
|
||||||
"group": "Gruppe",
|
"group": "Gruppe",
|
||||||
"group-added": "Gruppe hinzugefügt",
|
"group-added": "Gruppe hinzugefügt",
|
||||||
"group-is-being-added": "Gruppe wird erstellt",
|
"group-is-being-added": "Gruppe wird erstellt",
|
||||||
"group-name-is-required": "Der Gruppenname muss angegeben werden.",
|
"group-name-is-required": "Der Gruppenname muss angegeben werden.",
|
||||||
"group-updated": "Gruppe aktualisiert",
|
"group-updated": "Gruppe aktualisiert",
|
||||||
"groups": "Gruppen",
|
"groups": "Gruppen",
|
||||||
"groups-are-being-loaded": "Gruppen werden geladen",
|
"groups-are-being-loaded": "Gruppen werden geladen",
|
||||||
"home": "Start",
|
"home": "Start",
|
||||||
"icon-image-credits": "Wir möchten uns außerdem für die verwendeten Icons und Bilder bedanken bei:",
|
"icon-image-credits": "Wir möchten uns außerdem für die verwendeten Icons und Bilder bedanken bei:",
|
||||||
"if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "Wenn du mehrere Blankokarten erstellen willst, nutze doch den \"Blankokarten erstellen\" Knopf.",
|
"if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "Wenn du mehrere Blankokarten erstellen willst, nutze doch den \"Blankokarten erstellen\" Knopf.",
|
||||||
"import-finished": "Import abgeschlossen",
|
"import-finished": "Import abgeschlossen",
|
||||||
"import-runners": "Läufer:innen importieren",
|
"import-runners": "Läufer:innen importieren",
|
||||||
"import__target-organization": "Ziel Organisation",
|
"import__target-organization": "Ziel Organisation",
|
||||||
"imprint": "Impressum ",
|
"imprint": "Impressum ",
|
||||||
"imprint-loading": "Impressum lädt...",
|
"imprint-loading": "Impressum lädt...",
|
||||||
"inactive": "Inaktiv",
|
"inactive": "Inaktiv",
|
||||||
"installed-version": "Installierte Version",
|
"installed-version": "Installierte Version",
|
||||||
"internal-error": "Interner Fehler",
|
"internal-error": "Interner Fehler",
|
||||||
"invalid": "Ungültig",
|
"invalid": "Ungültig",
|
||||||
"invalid-mail-reset": "Das ist keine gültige E-Mail",
|
"invalid-mail-reset": "Das ist keine gültige E-Mail",
|
||||||
"just-enter-how-many-you-want-and-the-system-will-create-them": "Gebe einfach ein, wie viele Blankokarten das System erstellen soll.",
|
"just-enter-how-many-you-want-and-the-system-will-create-them": "Gebe einfach ein, wie viele Blankokarten das System erstellen soll.",
|
||||||
"laeufer-hinzufuegen": "Läufer:in hinzufügen",
|
"laeufer-hinzufuegen": "Läufer:in hinzufügen",
|
||||||
"laeufer-importieren": "Läufer:innen importieren",
|
"laeufer-importieren": "Läufer:innen importieren",
|
||||||
"laptime": "Rundenzeit",
|
"laptime": "Rundenzeit",
|
||||||
"last-name": "Nachname",
|
"last-name": "Nachname",
|
||||||
"last-name-is-required": "Nachname muss angegeben werden",
|
"last-name-is-required": "Nachname muss angegeben werden",
|
||||||
"lfk-is-os": "Das \"Lauf für Kaya!\" Frontend ist (wie alle anderen Projekte für den \"LfK!\" auch) ein OpenSource Projekt.",
|
"lfk-is-os": "Das \"Lauf für Kaya!\" Frontend ist (wie alle anderen Projekte für den \"LfK!\" auch) ein OpenSource Projekt.",
|
||||||
"license": "Lizenz",
|
"license": "Lizenz",
|
||||||
"licenses-are-being-loaded": "Lizenzen werden geladen...",
|
"licenses-are-being-loaded": "Lizenzen werden geladen...",
|
||||||
"loading-cards": "Läuferkarten werden geladen",
|
"loading-cards": "Läuferkarten werden geladen",
|
||||||
"loading-contact-details": "Kontaktdaten werden geladen ...",
|
"loading-contact-details": "Kontaktdaten werden geladen ...",
|
||||||
"loading-donation-details": "Lade Sponsoringdetails",
|
"loading-donation-details": "Lade Sponsoringdetails",
|
||||||
"loading-donor-details": "Lade Details",
|
"loading-donor-details": "Lade Details",
|
||||||
"loading-group-detail": "Lade Gruppendetails...",
|
"loading-group-detail": "Lade Gruppendetails...",
|
||||||
"loading-profile-data": "Lade Profildaten",
|
"loading-profile-data": "Lade Profildaten",
|
||||||
"loading-runners": "Läufer:innen werden geladen...",
|
"loading-runners": "Läufer:innen werden geladen...",
|
||||||
"loading-station-details": "Lade Scanstation-Details ...",
|
"loading-station-details": "Lade Scanstation-Details ...",
|
||||||
"log_in": "Anmelden",
|
"log_in": "Anmelden",
|
||||||
"log_in_to_your_account": "Bitte melde dich an",
|
"log_in_to_your_account": "Bitte melde dich an",
|
||||||
"login_is_checked": "Login wird überprüft",
|
"login_is_checked": "Login wird überprüft",
|
||||||
"logout": "Abmelden",
|
"logout": "Abmelden",
|
||||||
"mail-validation-in-progress": "E-Mail Verifizierung läuft... ",
|
"mail-validation-in-progress": "E-Mail Verifizierung läuft... ",
|
||||||
"manage-admin-users": "Nutzer verwalten",
|
"manage-admin-users": "Nutzer verwalten",
|
||||||
"middle-name": "Mittelname",
|
"middle-name": "Mittelname",
|
||||||
"minimum-lap-time-in-s": "Minimale Rundenzeit (in Sekunden)",
|
"minimum-lap-time-in-s": "Minimale Rundenzeit (in Sekunden)",
|
||||||
"minimum-lap-time-must-be-a-positive-number-or-0": "Die minimale Rundenzeit muss eine positive Zahl oder 0 sein",
|
"minimum-lap-time-must-be-a-positive-number-or-0": "Die minimale Rundenzeit muss eine positive Zahl oder 0 sein",
|
||||||
"must-be-at-least-10-characters-long": "Passwort muss mindestens 10 Zeichen lang sein!",
|
"must-be-at-least-10-characters-long": "Passwort muss mindestens 10 Zeichen lang sein!",
|
||||||
"must-contain-a-lowercase-letter": "Passwort muss einen Großbuchstaben enthalten!",
|
"must-contain-a-lowercase-letter": "Passwort muss einen Großbuchstaben enthalten!",
|
||||||
"must-contain-a-number": "Passwort muss eine Zahl enthalten!",
|
"must-contain-a-number": "Passwort muss eine Zahl enthalten!",
|
||||||
"must-contain-a-uppercase-letter": "Passwort muss einen Kleinbuchstaben enthalten!",
|
"must-contain-a-uppercase-letter": "Passwort muss einen Kleinbuchstaben enthalten!",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"name-is-required": "Der Gruppenname muss angegeben werden",
|
"name-is-required": "Der Gruppenname muss angegeben werden",
|
||||||
"new-password": "Neues Passwort",
|
"new-password": "Neues Passwort",
|
||||||
"no-contact-found": "Keine Kontakte gefunden",
|
"no-contact-found": "Keine Kontakte gefunden",
|
||||||
"no-contact-selected": "Kein Kontakt ausgewählt",
|
"no-contact-selected": "Kein Kontakt ausgewählt",
|
||||||
"no-contact-specified": "Kein Kontakt angegeben",
|
"no-contact-specified": "Kein Kontakt angegeben",
|
||||||
"no-donors-found": "Keine Spender:innen gefunden",
|
"no-donors-found": "Keine Spender:innen gefunden",
|
||||||
"no-license-text-could-be-found": "Kein Lizenz-Text gefunden 😢",
|
"no-license-text-could-be-found": "Kein Lizenz-Text gefunden 😢",
|
||||||
"no-organization-or-team-found": "Keine Organisationen oder Teams gefunden",
|
"no-organization-or-team-found": "Keine Organisationen oder Teams gefunden",
|
||||||
"no-organization-specified": "Keine Organisation angegeben",
|
"no-organization-specified": "Keine Organisation angegeben",
|
||||||
"no-organizations-found": "Keine Organisationen gefunden",
|
"no-organizations-found": "Keine Organisationen gefunden",
|
||||||
"no-runners-found": "Keine Läufer:innen gefunden",
|
"no-runners-found": "Keine Läufer:innen gefunden",
|
||||||
"no-tracks-added-yet": "Es wurden noch keine Tracks erstellt.",
|
"no-tracks-added-yet": "Es wurden noch keine Tracks erstellt.",
|
||||||
"non-blanko": "Keine/Blankokarte",
|
"non-blanko": "Keine/Blankokarte",
|
||||||
"organization": "Organisation",
|
"organization": "Organisation",
|
||||||
"organization-added": "Organisation hinzugefügt",
|
"organization-added": "Organisation hinzugefügt",
|
||||||
"organization-deleted": "Organisation gelöscht",
|
"organization-deleted": "Organisation gelöscht",
|
||||||
"organization-detail-is-being-loaded": "Organisationsdetails werden geladen ...",
|
"organization-detail-is-being-loaded": "Organisationsdetails werden geladen ...",
|
||||||
"organization-is-being-added": "Organisation wird hinzugefügt ...",
|
"organization-is-being-added": "Organisation wird hinzugefügt ...",
|
||||||
"organization-name-is-required": "Der Name muss angegeben werden",
|
"organization-name-is-required": "Der Name muss angegeben werden",
|
||||||
"organizations": "Organisationen",
|
"organizations": "Organisationen",
|
||||||
"organizations-are-being-loaded": "Organisationen werden geladen ...",
|
"organizations-are-being-loaded": "Organisationen werden geladen ...",
|
||||||
"orgs": "Organisationen",
|
"orgs": "Organisationen",
|
||||||
"oss_credit_description": "Wir verwenden eine Menge Open Source-Software bei diesen Projekten und möchten uns bei den folgenden Projekten und Mitwirkenden bedanken, die dazu beitragen, Open Source großartig zu machen!",
|
"oss_credit_description": "Wir verwenden eine Menge Open Source-Software bei diesen Projekten und möchten uns bei den folgenden Projekten und Mitwirkenden bedanken, die dazu beitragen, Open Source großartig zu machen!",
|
||||||
"password": "Passwort",
|
"password": "Passwort",
|
||||||
"password-changed": "Passwort wurde aktualisiert!",
|
"password-changed": "Passwort wurde aktualisiert!",
|
||||||
"password-is-required": "Passwort muss angegeben werden",
|
"password-is-required": "Passwort muss angegeben werden",
|
||||||
"password-reset-failed": "Passwort zurücksetzen ist fehlgeschlagen!",
|
"password-reset-failed": "Passwort zurücksetzen ist fehlgeschlagen!",
|
||||||
"password-reset-in-progress": "Passwort wird zurückgesetzt...",
|
"password-reset-in-progress": "Passwort wird zurückgesetzt...",
|
||||||
"password-reset-mail-sent": "Passwort-Reset Mail wurde an \"{usersEmail}\" geschickt.",
|
"password-reset-mail-sent": "Passwort-Reset Mail wurde an \"{usersEmail}\" geschickt.",
|
||||||
"password-reset-successful": "Passwort erfolgreich zurückgesetzt!",
|
"password-reset-successful": "Passwort erfolgreich zurückgesetzt!",
|
||||||
"passwords-dont-match": "Die Passwörter stimmen nicht überein!",
|
"passwords-dont-match": "Die Passwörter stimmen nicht überein!",
|
||||||
"pdf-generation-failed": "PDF Generierung fehlgeschlagen!",
|
"pdf-generation-failed": "PDF Generierung fehlgeschlagen!",
|
||||||
"pdf-successfully-generated": "PDF wurde erfolgreich generiert!",
|
"pdf-successfully-generated": "PDF wurde erfolgreich generiert!",
|
||||||
"pdfs-successfully-generated": "Alle PDFs wurden generiert!",
|
"pdfs-successfully-generated": "Alle PDFs wurden generiert!",
|
||||||
"per-kilometer": "pro Kilometer",
|
"per-kilometer": "pro Kilometer",
|
||||||
"permissions": "Berechtigungen",
|
"permissions": "Berechtigungen",
|
||||||
"permissions-updated": "Berechtigungen aktualisiert!",
|
"permissions-updated": "Berechtigungen aktualisiert!",
|
||||||
"phone": "Telefon",
|
"phone": "Telefon",
|
||||||
"please-copy-the-token-and-store-it-somewhere-save": "Bitte kopiere dir den Token und bewahre ihn gut auf.",
|
"please-copy-the-token-and-store-it-somewhere-save": "Bitte kopiere dir den Token und bewahre ihn gut auf.",
|
||||||
"please-provide-a-password": "Bitte gebe ein Passwort an...",
|
"please-provide-a-password": "Bitte gebe ein Passwort an...",
|
||||||
"please-provide-the-nessecary-information-to-add-a-new-donor": "Bitte mach die Notwendigen Angaben, um eine neue Sponsor:in zu erstellen",
|
"please-provide-the-nessecary-information-to-add-a-new-donor": "Bitte mach die Notwendigen Angaben, um eine neue Sponsor:in zu erstellen",
|
||||||
"please-provide-the-nessecary-information-to-create-a-new-donation": "Bitte gebe alle für das Sponsoring notwendigen Daten an.",
|
"please-provide-the-nessecary-information-to-create-a-new-donation": "Bitte gebe alle für das Sponsoring notwendigen Daten an.",
|
||||||
"please-provide-the-nessecary-information-to-create-a-new-scan": "Bitte gebe alle notwendigen Informationen an, um einen neuen Scan zu erstellen.",
|
"please-provide-the-nessecary-information-to-create-a-new-scan": "Bitte gebe alle notwendigen Informationen an, um einen neuen Scan zu erstellen.",
|
||||||
"please-provide-the-required-csv-xlsx-file": "Bitte eine CSV oder XLSX Datei hochladen.",
|
"please-provide-the-required-csv-xlsx-file": "Bitte eine CSV oder XLSX Datei hochladen.",
|
||||||
"please-provide-the-required-information-for-creating-a-new-user-group": "Bitte gebe alle für eine neue Gruppe notwendigen Informationen an.",
|
"please-provide-the-required-information-for-creating-a-new-user-group": "Bitte gebe alle für eine neue Gruppe notwendigen Informationen an.",
|
||||||
"please-provide-the-required-information-to-add-a-new-contact": "Bitte gebe alle nötigen Informationen an, im den neuen Kontakt zu erstellen.",
|
"please-provide-the-required-information-to-add-a-new-contact": "Bitte gebe alle nötigen Informationen an, im den neuen Kontakt zu erstellen.",
|
||||||
"please-provide-the-required-information-to-add-a-new-organization": "Bitte gebe alle nötigen Informationen an, im die neue Organisation zu erstellen.",
|
"please-provide-the-required-information-to-add-a-new-organization": "Bitte gebe alle nötigen Informationen an, im die neue Organisation zu erstellen.",
|
||||||
"please-provide-the-required-information-to-add-a-new-runner": "Bitte die benötigten Informationen angeben.",
|
"please-provide-the-required-information-to-add-a-new-runner": "Bitte die benötigten Informationen angeben.",
|
||||||
"please-provide-the-required-information-to-add-a-new-team": "Bitte gebe alle nötigen Informationen an, im das neue Team zu erstellen.",
|
"please-provide-the-required-information-to-add-a-new-team": "Bitte gebe alle nötigen Informationen an, im das neue Team zu erstellen.",
|
||||||
"please-provide-the-required-information-to-add-a-new-track": "Bitte die benötigten Informationen angeben.",
|
"please-provide-the-required-information-to-add-a-new-track": "Bitte die benötigten Informationen angeben.",
|
||||||
"please-provide-the-required-information-to-add-a-new-user": "Bitte gebe alle nötigen Informationen an, im die neue Benutzer:in zu erstellen.",
|
"please-provide-the-required-information-to-add-a-new-user": "Bitte gebe alle nötigen Informationen an, im die neue Benutzer:in zu erstellen.",
|
||||||
"please-provide-the-required-information-to-create-a-new-scanstation": "Bitte gebe alle für eine Scannerstation notwendigen Informationen an",
|
"please-provide-the-required-information-to-create-a-new-scanstation": "Bitte gebe alle für eine Scannerstation notwendigen Informationen an",
|
||||||
"please-request-a-new-reset-mail": "Bitte eine neue Passwortreset-Mail anfordern...",
|
"please-request-a-new-reset-mail": "Bitte eine neue Passwortreset-Mail anfordern...",
|
||||||
"privacy": "Datenschutz",
|
"privacy": "Datenschutz",
|
||||||
"privacy-loading": "Datenschutzerklärung lädt...",
|
"privacy-loading": "Datenschutzerklärung lädt...",
|
||||||
"profile": "Profil",
|
"profile": "Profil",
|
||||||
"profile-picture": "Profilbild",
|
"profile-picture": "Profilbild",
|
||||||
"profile-updated": "Profil wurde aktualisiert!",
|
"profile-updated": "Profil wurde aktualisiert!",
|
||||||
"read-license": "Lizenz-Text lesen",
|
"read-license": "Lizenz-Text lesen",
|
||||||
"receipt-needed": "Spendenquittung benötigt",
|
"receipt-needed": "Spendenquittung benötigt",
|
||||||
"repo_link": "Link",
|
"repo_link": "Link",
|
||||||
"request-a-new-reset-mail": "Neue Reset-Mail anfordern",
|
"request-a-new-reset-mail": "Neue Reset-Mail anfordern",
|
||||||
"reset-my-password": "Passwort zurücksetzen",
|
"reset-my-password": "Passwort zurücksetzen",
|
||||||
"reset-password": "Passwort zurücksetzen",
|
"reset-password": "Passwort zurücksetzen",
|
||||||
"runner": "Läufer:in",
|
"runner": "Läufer:in",
|
||||||
"runner-added": "Läufer:in hinzugefügt",
|
"runner-added": "Läufer:in hinzugefügt",
|
||||||
"runner-import": "Läufer:innen Import",
|
"runner-import": "Läufer:innen Import",
|
||||||
"runner-is-being-added": "Läufer:in wird hinzugefügt...",
|
"runner-is-being-added": "Läufer:in wird hinzugefügt...",
|
||||||
"runner-updated": "Läufer:in aktualisiert!",
|
"runner-updated": "Läufer:in aktualisiert!",
|
||||||
"runnerimport_verify_runners_org": "Bitte die Läufer:innen für den Import in die Organisation \"{org_name}\" bestätigen",
|
"runnerimport_verify_runners_org": "Bitte die Läufer:innen für den Import in die Organisation \"{org_name}\" bestätigen",
|
||||||
"runners": "Läufer",
|
"runners": "Läufer",
|
||||||
"runners-are-being-imported": "Läufer:innen werden importiert ...",
|
"runners-are-being-imported": "Läufer:innen werden importiert ...",
|
||||||
"runners-are-being-loaded": "Läufer:innen werden geladen ...",
|
"runners-are-being-loaded": "Läufer:innen werden geladen ...",
|
||||||
"save": "Speichern",
|
"save": "Speichern",
|
||||||
"save-changes": "Änderungen speichern",
|
"save-changes": "Änderungen speichern",
|
||||||
"scan-added": "Scan hinzugefügt",
|
"scan-added": "Scan hinzugefügt",
|
||||||
"scan-is-being-updated": "Scan wird aktualisiert",
|
"scan-is-being-updated": "Scan wird aktualisiert",
|
||||||
"scan-with-fixed-distance": "Scan mit Festdistanz",
|
"scan-with-fixed-distance": "Scan mit Festdistanz",
|
||||||
"scans": "Scans",
|
"scans": "Scans",
|
||||||
"scans-are-being-loaded": "Scans werden geladen",
|
"scans-are-being-loaded": "Scans werden geladen",
|
||||||
"scanstation": "Scanner Station",
|
"scanstation": "Scanner Station",
|
||||||
"scanstation-added": "Station wurde erstellt",
|
"scanstation-added": "Station wurde erstellt",
|
||||||
"scanstation-is-being-added": "Scannerstation wird angelegt...",
|
"scanstation-is-being-added": "Scannerstation wird angelegt...",
|
||||||
"scanstations": "Scanner Stationen",
|
"scanstations": "Scanner Stationen",
|
||||||
"scanstations-are-being-loaded": "Scannerstationen werden geladen...",
|
"scanstations-are-being-loaded": "Scannerstationen werden geladen...",
|
||||||
"search-for-an-organization-by-name-or-id": "Suche eine Organisation (via Name oder Id)",
|
"search-for-an-organization-by-name-or-id": "Suche eine Organisation (via Name oder Id)",
|
||||||
"search-for-an-organization-or-team-by-name-or-id": "Suche eine Organisation oder ein Team (via Name oder Id)",
|
"search-for-an-organization-or-team-by-name-or-id": "Suche eine Organisation oder ein Team (via Name oder Id)",
|
||||||
"search-for-donor-name-or-id": "Suche eine Spender:in (via Name oder Id)",
|
"search-for-donor-name-or-id": "Suche eine Spender:in (via Name oder Id)",
|
||||||
"search-for-permission": "Berechtigungen durchsuchen",
|
"search-for-permission": "Berechtigungen durchsuchen",
|
||||||
"search-for-runner-by-name-or-id": "Suche eine Läufer:in (via Name oder Id)",
|
"search-for-runner-by-name-or-id": "Suche eine Läufer:in (via Name oder Id)",
|
||||||
"select-all": "Alle auswählen",
|
"select-all": "Alle auswählen",
|
||||||
"select-language": "Sprache auswählen",
|
"select-language": "Sprache auswählen",
|
||||||
"selfservice-registration": "Selfservice Registrierung",
|
"selfservice-registration": "Selfservice Registrierung",
|
||||||
"send-a-mail-to-lfk-odit-services": "Sende eine Mail an lfk@odit.services",
|
"send-a-mail-to-lfk-odit-services": "Sende eine Mail an lfk@odit.services",
|
||||||
"set-the-user-active-inactive": "Den Benutzer auf (in)aktiv setzen",
|
"set-the-user-active-inactive": "Den Benutzer auf (in)aktiv setzen",
|
||||||
"settings": "Einstellungen",
|
"settings": "Einstellungen",
|
||||||
"settings-for-your-profile": "Die Einstellungen deines Accounts",
|
"settings-for-your-profile": "Die Einstellungen deines Accounts",
|
||||||
"something-about-the-group": "Infos zur Gruppe",
|
"something-about-the-group": "Infos zur Gruppe",
|
||||||
"stats-are-being-loaded": "Die Statistiken werden geladen...",
|
"stats-are-being-loaded": "Die Statistiken werden geladen...",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"stuff-that-could-harm-your-profile": "Einstellungen, die deinem Profil nachhaltig schaden können",
|
"stuff-that-could-harm-your-profile": "Einstellungen, die deinem Profil nachhaltig schaden können",
|
||||||
"successful-password-reset": "Passwort erfolgreich zurückgesetzt!",
|
"successful-password-reset": "Passwort erfolgreich zurückgesetzt!",
|
||||||
"team": "Team",
|
"team": "Team",
|
||||||
"team-detail-is-being-loaded": "Team wird geladen...",
|
"team-detail-is-being-loaded": "Team wird geladen...",
|
||||||
"team-name": "Teamname",
|
"team-name": "Teamname",
|
||||||
"team-name-is-required": "Teamname ist erforderlich",
|
"team-name-is-required": "Teamname ist erforderlich",
|
||||||
"teams": "Teams",
|
"teams": "Teams",
|
||||||
"teams-are-being-loaded": "Teams werden geladen ...",
|
"teams-are-being-loaded": "Teams werden geladen ...",
|
||||||
"the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "Die angegebene Telefonnummer ist nicht korrekt. <br /> Bitte gebe eine Telefonnummer im internationalen Format an...",
|
"the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "Die angegebene Telefonnummer ist nicht korrekt. <br /> Bitte gebe eine Telefonnummer im internationalen Format an...",
|
||||||
"the-scans-distance-must-be-greater-than-0m": "Die Distanz muss größer als 0m sein.",
|
"the-scans-distance-must-be-greater-than-0m": "Die Distanz muss größer als 0m sein.",
|
||||||
"the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "Der Scannerstation Token wird nur einmal angezeigt - du kannst ihn nicht ändern oder ihn dir nochmal anzeigen lassen!",
|
"the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "Der Scannerstation Token wird nur einmal angezeigt - du kannst ihn nicht ändern oder ihn dir nochmal anzeigen lassen!",
|
||||||
"there-are-no-cards-yet": "Es gibt noch keine Läuferkarten.",
|
"there-are-no-cards-yet": "Es gibt noch keine Läuferkarten.",
|
||||||
"there-are-no-contacts-added-yet": "Es wurden noch keine Kontakte hinzugefügt.",
|
"there-are-no-contacts-added-yet": "Es wurden noch keine Kontakte hinzugefügt.",
|
||||||
"there-are-no-donations-yet": "Es gibt noch keine Sponsorings",
|
"there-are-no-donations-yet": "Es gibt noch keine Sponsorings",
|
||||||
"there-are-no-donors-yet": "Es gibt noch keine Sponsor:innen",
|
"there-are-no-donors-yet": "Es gibt noch keine Sponsor:innen",
|
||||||
"there-are-no-groups-yet": "Es gibt noch keine Gruppen",
|
"there-are-no-groups-yet": "Es gibt noch keine Gruppen",
|
||||||
"there-are-no-organizations-added-yet": "Es wurden noch keine Organisationen hinzugefügt.",
|
"there-are-no-organizations-added-yet": "Es wurden noch keine Organisationen hinzugefügt.",
|
||||||
"there-are-no-runners-added-yet": "Es wurden noch keine Läufer:innen hinzugefügt.",
|
"there-are-no-runners-added-yet": "Es wurden noch keine Läufer:innen hinzugefügt.",
|
||||||
"there-are-no-scans-yet": "Es gibt noch keine Scans",
|
"there-are-no-scans-yet": "Es gibt noch keine Scans",
|
||||||
"there-are-no-teams-added-yet": "Es wurden noch keine Teams hinzugefügt.",
|
"there-are-no-teams-added-yet": "Es wurden noch keine Teams hinzugefügt.",
|
||||||
"there-are-no-users-added-yet": "Es wurden noch keine Benutzer hinzugefügt.",
|
"there-are-no-users-added-yet": "Es wurden noch keine Benutzer hinzugefügt.",
|
||||||
"this-card-is": "Diese Karte ist",
|
"this-card-is": "Diese Karte ist",
|
||||||
"this-might-take-a-moment": "Das könnte einen kleinen Moment dauern",
|
"this-might-take-a-moment": "Das könnte einen kleinen Moment dauern",
|
||||||
"this-scanstation-is": "Diese Station ist",
|
"this-scanstation-is": "Diese Station ist",
|
||||||
"token": "Token",
|
"token": "Token",
|
||||||
"total-distance": "gelaufene Strecke",
|
"total-distance": "gelaufene Strecke",
|
||||||
"total-donation-amount": "Gesamtbetrag",
|
"total-donation-amount": "Gesamtbetrag",
|
||||||
"total-donations": "Spendensumme",
|
"total-donations": "Spendensumme",
|
||||||
"total-scans": "gesamte Scans",
|
"total-scans": "gesamte Scans",
|
||||||
"track": "Track",
|
"track": "Track",
|
||||||
"track-added": "Track hinzugefügt",
|
"track-added": "Track hinzugefügt",
|
||||||
"track-data-is-being-loaded": "Trackdaten werden geladen",
|
"track-data-is-being-loaded": "Trackdaten werden geladen",
|
||||||
"track-is-being-added": "Track wird hinzugefügt...",
|
"track-is-being-added": "Track wird hinzugefügt...",
|
||||||
"track-length-in-m": "Tracklänge (in Metern)",
|
"track-length-in-m": "Tracklänge (in Metern)",
|
||||||
"track-length-must-be-greater-than-0": "Die Länge muss größer als 0 (Meter) sein",
|
"track-length-must-be-greater-than-0": "Die Länge muss größer als 0 (Meter) sein",
|
||||||
"track-name": "Trackname",
|
"track-name": "Trackname",
|
||||||
"track-name-must-not-be-empty": "Der Name muss angegeben werden",
|
"track-name-must-not-be-empty": "Der Name muss angegeben werden",
|
||||||
"tracks": "Tracks",
|
"tracks": "Tracks",
|
||||||
"update-password": "Passwort ändern",
|
"update-password": "Passwort ändern",
|
||||||
"updated-contact": "Kontakt aktualisiert!",
|
"updated-contact": "Kontakt aktualisiert!",
|
||||||
"updated-donor": "Sponsor:in wurde aktualisiert",
|
"updated-donor": "Sponsor:in wurde aktualisiert",
|
||||||
"updated-organization": "Organisation wurde aktualisiert",
|
"updated-organization": "Organisation wurde aktualisiert",
|
||||||
"updated-scan": "Scan wurde aktualisiert",
|
"updated-scan": "Scan wurde aktualisiert",
|
||||||
"updateing-group": "Gruppe wird aktualisiert...",
|
"updateing-group": "Gruppe wird aktualisiert...",
|
||||||
"updating-card": "Karte wird aktualisiert",
|
"updating-card": "Karte wird aktualisiert",
|
||||||
"updating-organization": "Organisation wird aktualisiert",
|
"updating-organization": "Organisation wird aktualisiert",
|
||||||
"updating-permissions": "Berechtigungen werden aktualisiert...",
|
"updating-permissions": "Berechtigungen werden aktualisiert...",
|
||||||
"updating-runner": "Läufer:in wird aktualisiert.",
|
"updating-runner": "Läufer:in wird aktualisiert.",
|
||||||
"updating-user": "Benutzer:in wird aktualisiert...",
|
"updating-user": "Benutzer:in wird aktualisiert...",
|
||||||
"updating-your-profile": "Profil wird aktualisiert...",
|
"updating-your-profile": "Profil wird aktualisiert...",
|
||||||
"user-added": "Benutzer hinzugefügt",
|
"user-added": "Benutzer hinzugefügt",
|
||||||
"user-groups": "Benutzergruppen",
|
"user-groups": "Benutzergruppen",
|
||||||
"user-is-being-added": "Benutzer wird hinzugefügt ...",
|
"user-is-being-added": "Benutzer wird hinzugefügt ...",
|
||||||
"user-updated": "Benutzer:in wurde aktualisiert",
|
"user-updated": "Benutzer:in wurde aktualisiert",
|
||||||
"username": "Benutzername",
|
"username": "Benutzername",
|
||||||
"users": "Benutzer",
|
"users": "Benutzer",
|
||||||
"valid": "Gültig",
|
"valid": "Gültig",
|
||||||
"valid-city-is-required": "Du musst eine Stadt angeben",
|
"valid-city-is-required": "Du musst eine Stadt angeben",
|
||||||
"valid-email-is-required": "Es wird eine valide E-Mail Adresse benötigt",
|
"valid-email-is-required": "Es wird eine valide E-Mail Adresse benötigt",
|
||||||
"valid-international-phone-number-is-required": "Du musst eine Telefonnummer im internationalen Format angeben...",
|
"valid-international-phone-number-is-required": "Du musst eine Telefonnummer im internationalen Format angeben...",
|
||||||
"valid-zipcode-postal-code-is-required": "Du musst eine valide Postleitzahl angeben",
|
"valid-zipcode-postal-code-is-required": "Du musst eine valide Postleitzahl angeben",
|
||||||
"verfuegbare": "Verfügbar",
|
"verfuegbare": "Verfügbar",
|
||||||
"welcome_wavinghand": "Willkommen 👋",
|
"welcome_wavinghand": "Willkommen 👋",
|
||||||
"yes-i-copied-the-token": "Ja, ich habe den Token kopiert",
|
"yes-i-copied-the-token": "Ja, ich habe den Token kopiert",
|
||||||
"you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "Du wirst all deine Berechtigungen und den Zugriff aufs Läufersystem verlieren!",
|
"you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "Du wirst all deine Berechtigungen und den Zugriff aufs Läufersystem verlieren!",
|
||||||
"you-can-now-use-your-new-password-to-log-in-to-your-account": "Du kannst dich jetzt mit deinem neuen Passwort anmelden! 🎉",
|
"you-can-now-use-your-new-password-to-log-in-to-your-account": "Du kannst dich jetzt mit deinem neuen Passwort anmelden! 🎉",
|
||||||
"you-can-provide-a-runner-but-you-dont-have-to": "Du kannst eine Läufer:in angeben, musst aber nicht.",
|
"you-can-provide-a-runner-but-you-dont-have-to": "Du kannst eine Läufer:in angeben, musst aber nicht.",
|
||||||
"you-dont-have-any-scanstations-yet": "Es gibt noch keine Scannerstationen",
|
"you-dont-have-any-scanstations-yet": "Es gibt noch keine Scannerstationen",
|
||||||
"you-have-to-provide-an-organization": "Du musst eine Organisation angeben",
|
"you-have-to-provide-an-organization": "Du musst eine Organisation angeben",
|
||||||
"you-have-to-save-your-changes-to-generate-a-link": "Du musst deine Änderungen speichern, um einen Link zu generieren.",
|
"you-have-to-save-your-changes-to-generate-a-link": "Du musst deine Änderungen speichern, um einen Link zu generieren.",
|
||||||
"you-must-create-at-least-one-card-or-cancel": "Du musst mindestens eine Blankokarte erstellen (oder abbrechen).",
|
"you-must-create-at-least-one-card-or-cancel": "Du musst mindestens eine Blankokarte erstellen (oder abbrechen).",
|
||||||
"zip-postal-code": "Postleitzahl"
|
"zip-postal-code": "Postleitzahl",
|
||||||
}
|
"generate-runner-certificates": "Urkunden generieren"
|
||||||
|
}
|
||||||
+428
-427
@@ -1,428 +1,429 @@
|
|||||||
{
|
{
|
||||||
"404message": "Sorry, the page you are looking for could not be found.",
|
"404message": "Sorry, the page you are looking for could not be found.",
|
||||||
"404title": "Error 404",
|
"404title": "Error 404",
|
||||||
"about": "About",
|
"about": "About",
|
||||||
"action": "Action",
|
"action": "Action",
|
||||||
"active": "Active",
|
"active": "Active",
|
||||||
"add-card": "Add Card",
|
"add-card": "Add Card",
|
||||||
"add-donation": "Add donation",
|
"add-donation": "Add donation",
|
||||||
"add-donor": "add donor",
|
"add-donor": "add donor",
|
||||||
"add-scan": "Add scan",
|
"add-scan": "Add scan",
|
||||||
"add-the-first-scanstation": "Add your first scanstation.",
|
"add-the-first-scanstation": "Add your first scanstation.",
|
||||||
"add-user-group": "Add User Group",
|
"add-user-group": "Add User Group",
|
||||||
"add-your-first-card": "Add your first card",
|
"add-your-first-card": "Add your first card",
|
||||||
"add-your-first-contact": "Add your first contact",
|
"add-your-first-contact": "Add your first contact",
|
||||||
"add-your-first-donor": "add your first donor",
|
"add-your-first-donor": "add your first donor",
|
||||||
"add-your-first-group": "Add your first group",
|
"add-your-first-group": "Add your first group",
|
||||||
"add-your-first-organization": "Add your first organization",
|
"add-your-first-organization": "Add your first organization",
|
||||||
"add-your-first-runner": "Add your first runner",
|
"add-your-first-runner": "Add your first runner",
|
||||||
"add-your-first-team": "Add your first team",
|
"add-your-first-team": "Add your first team",
|
||||||
"add-your-first-track": "Add your first track.",
|
"add-your-first-track": "Add your first track.",
|
||||||
"add-your-first-user": "Add your first user",
|
"add-your-first-user": "Add your first user",
|
||||||
"add-your-fist-donation": "Add your fist donation",
|
"add-your-fist-donation": "Add your fist donation",
|
||||||
"add-your-fist-scan": "Add your fist scan",
|
"add-your-fist-scan": "Add your fist scan",
|
||||||
"adding-card": "Adding Card",
|
"adding-card": "Adding Card",
|
||||||
"adding-scan": "Adding Scan",
|
"adding-scan": "Adding Scan",
|
||||||
"address": "Address",
|
"address": "Address",
|
||||||
"address-is-required": "Address is required",
|
"address-is-required": "Address is required",
|
||||||
"after-deletion-we-cant-restore-your-old-profile": "After deletion we can't restore your old profile!",
|
"after-deletion-we-cant-restore-your-old-profile": "After deletion we can't restore your old profile!",
|
||||||
"after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "After the update you'll get logged out - Please login with your new password after that.",
|
"after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "After the update you'll get logged out - Please login with your new password after that.",
|
||||||
"all-associated-donations-will-get-deleted-as-well": "All associated donations will get deleted as well",
|
"all-associated-donations-will-get-deleted-as-well": "All associated donations will get deleted as well",
|
||||||
"all-associated-runners-will-be-deleted-too": "All associated runners will be deleted too!",
|
"all-associated-runners-will-be-deleted-too": "All associated runners will be deleted too!",
|
||||||
"all-associated-teams-and-runners-will-be-deleted-too": "All associated teams and runners will be deleted too!",
|
"all-associated-teams-and-runners-will-be-deleted-too": "All associated teams and runners will be deleted too!",
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
"amount-per-kilometer": "Amount per kilometer",
|
"amount-per-kilometer": "Amount per kilometer",
|
||||||
"apartment-suite-etc": "Apartment, suite, etc.",
|
"apartment-suite-etc": "Apartment, suite, etc.",
|
||||||
"application_name": "Lauf für Kaya! - Admin",
|
"application_name": "Lauf für Kaya! - Admin",
|
||||||
"applying-changes": "Applying Changes",
|
"applying-changes": "Applying Changes",
|
||||||
"attention": "Attention!",
|
"attention": "Attention!",
|
||||||
"author": "Author",
|
"author": "Author",
|
||||||
"bitte-bestaetige-diese-laeufer-fuer-den-import": "Please confirm these runners for import.",
|
"bitte-bestaetige-diese-laeufer-fuer-den-import": "Please confirm these runners for import.",
|
||||||
"by": "by",
|
"by": "by",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"cancel-delete": "Cancel Delete",
|
"cancel-delete": "Cancel Delete",
|
||||||
"cancel-keep-donor": "Cancel, keep donor",
|
"cancel-keep-donor": "Cancel, keep donor",
|
||||||
"cancel-keep-my-profile": "Cancel, keep my profile",
|
"cancel-keep-my-profile": "Cancel, keep my profile",
|
||||||
"cancel-keep-organization": "Cancel, keep organization",
|
"cancel-keep-organization": "Cancel, keep organization",
|
||||||
"cancel-keep-team": "Cancel, keep team",
|
"cancel-keep-team": "Cancel, keep team",
|
||||||
"cannot-reset-your-password-directly": "Bummer. We unfortunately cannot reset your password directly. Please send us a mail and confirm your identity",
|
"cannot-reset-your-password-directly": "Bummer. We unfortunately cannot reset your password directly. Please send us a mail and confirm your identity",
|
||||||
"card-added": "Card added",
|
"card-added": "Card added",
|
||||||
"card-deleted": "Card deleted",
|
"card-deleted": "Card deleted",
|
||||||
"card-updated": "Card updated",
|
"card-updated": "Card updated",
|
||||||
"cards": "Cards",
|
"cards": "Cards",
|
||||||
"change-your-password-here": "Change your password here",
|
"change-your-password-here": "Change your password here",
|
||||||
"changing-your-password": "Changing your password",
|
"changing-your-password": "Changing your password",
|
||||||
"city": "City",
|
"city": "City",
|
||||||
"click-to-copy-the-link-into-your-clipboard": "Click to copy the link into your clipboard",
|
"click-to-copy-the-link-into-your-clipboard": "Click to copy the link into your clipboard",
|
||||||
"click-to-copy-token-to-clipboard": "Click to copy the token to your clipboard",
|
"click-to-copy-token-to-clipboard": "Click to copy the token to your clipboard",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
"code": "Code",
|
"code": "Code",
|
||||||
"configure-the-tracks-and-minimum-lap-times": "configure the tracks & minimum lap times",
|
"configure-the-tracks-and-minimum-lap-times": "configure the tracks & minimum lap times",
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
"confirm-delete": "Confirm Delete",
|
"confirm-delete": "Confirm Delete",
|
||||||
"confirm-delete-donor-with-all-donations": "Confirm, delete donor with all donations",
|
"confirm-delete-donor-with-all-donations": "Confirm, delete donor with all donations",
|
||||||
"confirm-delete-my-user-profile": "Confirm, delete my user profile",
|
"confirm-delete-my-user-profile": "Confirm, delete my user profile",
|
||||||
"confirm-delete-organization-and-associated-teams-runners": "Confirm, delete organization and associated teams+runners.",
|
"confirm-delete-organization-and-associated-teams-runners": "Confirm, delete organization and associated teams+runners.",
|
||||||
"confirm-delete-team-and-associated-runners": "Confirm, delete team and associated runners.",
|
"confirm-delete-team-and-associated-runners": "Confirm, delete team and associated runners.",
|
||||||
"confirm-deletion": "Confirm Deletion",
|
"confirm-deletion": "Confirm Deletion",
|
||||||
"confirm-the-new-password": "Confirm the new password",
|
"confirm-the-new-password": "Confirm the new password",
|
||||||
"contact": "Contact",
|
"contact": "Contact",
|
||||||
"contact-deleted": "Contact deleted",
|
"contact-deleted": "Contact deleted",
|
||||||
"contact-information": "Contact Information",
|
"contact-information": "Contact Information",
|
||||||
"contact-is-being-updated": "Contact is being updated...",
|
"contact-is-being-updated": "Contact is being updated...",
|
||||||
"contact-is-not-a-member-in-any-group": "Contact is not a member in any group",
|
"contact-is-not-a-member-in-any-group": "Contact is not a member in any group",
|
||||||
"contacts": "Contacts",
|
"contacts": "Contacts",
|
||||||
"contacts-are-being-loaded": "contacts are being loaded...",
|
"contacts-are-being-loaded": "contacts are being loaded...",
|
||||||
"copied-link-to-clipboard": "Copied link to clipboard",
|
"copied-link-to-clipboard": "Copied link to clipboard",
|
||||||
"copied-token-to-clipboard": "Copied token to clipboard",
|
"copied-token-to-clipboard": "Copied token to clipboard",
|
||||||
"count_organizations": "# Organizations",
|
"count_organizations": "# Organizations",
|
||||||
"count_teams": "# Teams",
|
"count_teams": "# Teams",
|
||||||
"create": "Create",
|
"create": "Create",
|
||||||
"create-a-new": "Create a new",
|
"create-a-new": "Create a new",
|
||||||
"create-a-new-card": "Create a new card",
|
"create-a-new-card": "Create a new card",
|
||||||
"create-a-new-contact": "Create a new contact",
|
"create-a-new-contact": "Create a new contact",
|
||||||
"create-a-new-distance-donation": "Create a new distance donation",
|
"create-a-new-distance-donation": "Create a new distance donation",
|
||||||
"create-a-new-donor": "Create a new donor",
|
"create-a-new-donor": "Create a new donor",
|
||||||
"create-a-new-fixed-donation": "Create a new fixed donation",
|
"create-a-new-fixed-donation": "Create a new fixed donation",
|
||||||
"create-a-new-organization": "Create a new Organization",
|
"create-a-new-organization": "Create a new Organization",
|
||||||
"create-a-new-runner": "Create a new Runner",
|
"create-a-new-runner": "Create a new Runner",
|
||||||
"create-a-new-scan-fixed-only": "Create a new scan (fixed only)",
|
"create-a-new-scan-fixed-only": "Create a new scan (fixed only)",
|
||||||
"create-a-new-scanstation": "Create a new station",
|
"create-a-new-scanstation": "Create a new station",
|
||||||
"create-a-new-team": "Create a new team",
|
"create-a-new-team": "Create a new team",
|
||||||
"create-a-new-track": "Create a new Track",
|
"create-a-new-track": "Create a new Track",
|
||||||
"create-a-new-user": "Create a new User",
|
"create-a-new-user": "Create a new User",
|
||||||
"create-a-new-user-group": "Create a new user group",
|
"create-a-new-user-group": "Create a new user group",
|
||||||
"create-and-generate-pdf": "Create and generate PDF",
|
"create-and-generate-pdf": "Create and generate PDF",
|
||||||
"create-bulk-blanco-cards": "Create bulk blanco cards",
|
"create-bulk-blanco-cards": "Create bulk blanco cards",
|
||||||
"create-bulk-cards": "Add blanco cards",
|
"create-bulk-cards": "Add blanco cards",
|
||||||
"create-organization": "Create Organization",
|
"create-organization": "Create Organization",
|
||||||
"create-team": "Create Team",
|
"create-team": "Create Team",
|
||||||
"create-track": "Create Track",
|
"create-track": "Create Track",
|
||||||
"create-user": "Create User",
|
"create-user": "Create User",
|
||||||
"create-without-pdf": "Create without PDF",
|
"create-without-pdf": "Create without PDF",
|
||||||
"created-blanco-cards": "Created blanco cards",
|
"created-blanco-cards": "Created blanco cards",
|
||||||
"creating-blanco-cards": "Creating blanco cards",
|
"creating-blanco-cards": "Creating blanco cards",
|
||||||
"credits": "Credits",
|
"credits": "Credits",
|
||||||
"csv_import__class": "Class",
|
"csv_import__class": "Class",
|
||||||
"csv_import__firstname": "Firstname",
|
"csv_import__firstname": "Firstname",
|
||||||
"csv_import__lastname": "Lastname",
|
"csv_import__lastname": "Lastname",
|
||||||
"csv_import__middlename": "Middlename",
|
"csv_import__middlename": "Middlename",
|
||||||
"csv_import__team": "Team",
|
"csv_import__team": "Team",
|
||||||
"danger-zone": "Danger zone",
|
"danger-zone": "Danger zone",
|
||||||
"dashboard-greeting": "Hello",
|
"dashboard-greeting": "Hello",
|
||||||
"dashboard-title": "Dashboard",
|
"dashboard-title": "Dashboard",
|
||||||
"datatable": {
|
"datatable": {
|
||||||
"search": "🔍 Search...",
|
"search": "🔍 Search...",
|
||||||
"sort_column_ascending": "Sort column ascending",
|
"sort_column_ascending": "Sort column ascending",
|
||||||
"sort_column_descending": "Sort column descending",
|
"sort_column_descending": "Sort column descending",
|
||||||
"previous": "Previous",
|
"previous": "Previous",
|
||||||
"next": "Next",
|
"next": "Next",
|
||||||
"page": "Page",
|
"page": "Page",
|
||||||
"showing": "Showing",
|
"showing": "Showing",
|
||||||
"records": "Records",
|
"records": "Records",
|
||||||
"of": "of",
|
"of": "of",
|
||||||
"to": "to",
|
"to": "to",
|
||||||
"loading": "Loading...",
|
"loading": "Loading...",
|
||||||
"no_matching_records_found": "No matching records found",
|
"no_matching_records_found": "No matching records found",
|
||||||
"an_error_happened_while_fetching_the_data": "An error happened while fetching the data"
|
"an_error_happened_while_fetching_the_data": "An error happened while fetching the data"
|
||||||
},
|
},
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"delete-contact": "Delete Contact",
|
"delete-contact": "Delete Contact",
|
||||||
"delete-donation": "Delete Donation",
|
"delete-donation": "Delete Donation",
|
||||||
"delete-donor": "Delete donor",
|
"delete-donor": "Delete donor",
|
||||||
"delete-group": "Delete Group",
|
"delete-group": "Delete Group",
|
||||||
"delete-organization": "Delete Organization",
|
"delete-organization": "Delete Organization",
|
||||||
"delete-profile": "Delete Profile",
|
"delete-profile": "Delete Profile",
|
||||||
"delete-runner": "Delete Runner",
|
"delete-runner": "Delete Runner",
|
||||||
"delete-scan": "Delete scan",
|
"delete-scan": "Delete scan",
|
||||||
"delete-station": "Delete station",
|
"delete-station": "Delete station",
|
||||||
"delete-team": "Delete Team",
|
"delete-team": "Delete Team",
|
||||||
"delete-user": "Delete User",
|
"delete-user": "Delete User",
|
||||||
"deleted-scan": "Deleted scan",
|
"deleted-scan": "Deleted scan",
|
||||||
"dependency_name": "Name",
|
"dependency_name": "Name",
|
||||||
"description": "description",
|
"description": "description",
|
||||||
"description-optional": "Description (optional)",
|
"description-optional": "Description (optional)",
|
||||||
"deselect-all": "deselect all",
|
"deselect-all": "deselect all",
|
||||||
"details": "Details",
|
"details": "Details",
|
||||||
"disabled": "disabled",
|
"disabled": "disabled",
|
||||||
"distance": "Distance",
|
"distance": "Distance",
|
||||||
"distance-donation": "distance donation",
|
"distance-donation": "distance donation",
|
||||||
"distance-in-km": "Distance in km",
|
"distance-in-km": "Distance in km",
|
||||||
"distance-track": "Distance (+Track)",
|
"distance-track": "Distance (+Track)",
|
||||||
"do-you-really-want-to-delete-your-profile": "Do you really want to delete your profile?",
|
"do-you-really-want-to-delete-your-profile": "Do you really want to delete your profile?",
|
||||||
"do-you-want-to-delete-the-organization-delete_org-name": "Do you want to delete the organization {orgname}?",
|
"do-you-want-to-delete-the-organization-delete_org-name": "Do you want to delete the organization {orgname}?",
|
||||||
"do-you-want-to-delete-the-team-delete_team-name": "Do you want to delete the team {teamname}?",
|
"do-you-want-to-delete-the-team-delete_team-name": "Do you want to delete the team {teamname}?",
|
||||||
"do-you-want-to-delete-this-donor-with-all-related-donations": "Do you want to delete this donor with all related donations",
|
"do-you-want-to-delete-this-donor-with-all-related-donations": "Do you want to delete this donor with all related donations",
|
||||||
"documentation": "Documentation",
|
"documentation": "Documentation",
|
||||||
"donation-amount": "Donation amount",
|
"donation-amount": "Donation amount",
|
||||||
"donation-amount-must-be-greater-that-0-00eur": "Donation amount must be greater that 0.00€",
|
"donation-amount-must-be-greater-that-0-00eur": "Donation amount must be greater that 0.00€",
|
||||||
"donations": "Donations",
|
"donations": "Donations",
|
||||||
"donor": "Donor",
|
"donor": "Donor",
|
||||||
"donor-added": "Donor added",
|
"donor-added": "Donor added",
|
||||||
"donor-deleted": "donor deleted",
|
"donor-deleted": "donor deleted",
|
||||||
"donor-has-no-associated-donations": "Donor has no associated donations.",
|
"donor-has-no-associated-donations": "Donor has no associated donations.",
|
||||||
"donor-is-being-added": "Donor is being added...",
|
"donor-is-being-added": "Donor is being added...",
|
||||||
"donor-is-being-updated": "Donor is being updated",
|
"donor-is-being-updated": "Donor is being updated",
|
||||||
"donors": "Donors",
|
"donors": "Donors",
|
||||||
"donors-are-being-loaded": "donors are being loaded",
|
"donors-are-being-loaded": "donors are being loaded",
|
||||||
"dont-have-your-email-connected": "Don't have your email connected?",
|
"dont-have-your-email-connected": "Don't have your email connected?",
|
||||||
"dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌",
|
"dont-panic-were-resetting-it": "Don't panic, we're resetting it ✌",
|
||||||
"e-mail-adress": "E-Mail Adress",
|
"e-mail-adress": "E-Mail Adress",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"edit-a-card": "Edit a card",
|
"edit-a-card": "Edit a card",
|
||||||
"edit-permissions": "edit permissions",
|
"edit-permissions": "edit permissions",
|
||||||
"email_address_or_username": "Email / username",
|
"email_address_or_username": "Email / username",
|
||||||
"enabled": "enabled",
|
"enabled": "enabled",
|
||||||
"enabled_large": "Enabled",
|
"enabled_large": "Enabled",
|
||||||
"english": "English",
|
"english": "English",
|
||||||
"error-during-import": "Error during import",
|
"error-during-import": "Error during import",
|
||||||
"error-whyile-copying-to-clipboard": "Error while copying to clipboard",
|
"error-whyile-copying-to-clipboard": "Error while copying to clipboard",
|
||||||
"error_on_login": "Error on login",
|
"error_on_login": "Error on login",
|
||||||
"erteilte": "Directly granted",
|
"erteilte": "Directly granted",
|
||||||
"everything-concerning-your-profile": "Everything concerning your profile",
|
"everything-concerning-your-profile": "Everything concerning your profile",
|
||||||
"everything-is-more-fun-together": "everything is more fun together 🏃♂️🏃♀️🏃♂️",
|
"everything-is-more-fun-together": "everything is more fun together 🏃♂️🏃♀️🏃♂️",
|
||||||
"faq": "FAQ",
|
"faq": "FAQ",
|
||||||
"filter-by-organization-team": "Filter by Organization/ Team",
|
"filter-by-organization-team": "Filter by Organization/ Team",
|
||||||
"first-name": "First name",
|
"first-name": "First name",
|
||||||
"first-name-is-required": "First Name is required",
|
"first-name-is-required": "First Name is required",
|
||||||
"first-scan-of-the-day": "First scan of the day.",
|
"first-scan-of-the-day": "First scan of the day.",
|
||||||
"fixed-donation": "fixed donation",
|
"fixed-donation": "fixed donation",
|
||||||
"forgot_password": "Forgot your password?",
|
"forgot_password": "Forgot your password?",
|
||||||
"geerbte": "inherited",
|
"geerbte": "inherited",
|
||||||
"general-stats": "General Stats",
|
"general-stats": "General Stats",
|
||||||
"general_promise_error": "😢 Error",
|
"general_promise_error": "😢 Error",
|
||||||
"generate-runnercards": "Generate Runnercards",
|
"generate-runnercards": "Generate Runnercards",
|
||||||
"generate-sponsoring-contract": "generate sponsoring contract",
|
"generate-sponsoring-contract": "generate sponsoring contract",
|
||||||
"generate-sponsoring-contracts": "generate sponsoring contracts",
|
"generate-sponsoring-contracts": "generate sponsoring contracts",
|
||||||
"generating-pdf": "generating PDF...",
|
"generating-pdf": "generating PDF...",
|
||||||
"generating-pdfs": "generating PDFs...",
|
"generating-pdfs": "generating PDFs...",
|
||||||
"generic-ui-logic-error": "Something went wrong in the UI logic",
|
"generic-ui-logic-error": "Something went wrong in the UI logic",
|
||||||
"german": "German",
|
"german": "German",
|
||||||
"go-to-login": "Go To Login",
|
"go-to-login": "Go To Login",
|
||||||
"goback": "Go Home",
|
"goback": "Go Home",
|
||||||
"granted": "granted",
|
"granted": "granted",
|
||||||
"group": "Group",
|
"group": "Group",
|
||||||
"group-added": "Group added",
|
"group-added": "Group added",
|
||||||
"group-is-being-added": "Group is being added...",
|
"group-is-being-added": "Group is being added...",
|
||||||
"group-name-is-required": "Group name is required",
|
"group-name-is-required": "Group name is required",
|
||||||
"group-updated": "group updated",
|
"group-updated": "group updated",
|
||||||
"groups": "Groups",
|
"groups": "Groups",
|
||||||
"groups-are-being-loaded": "Groups are being loaded",
|
"groups-are-being-loaded": "Groups are being loaded",
|
||||||
"home": "Home",
|
"home": "Home",
|
||||||
"icon-image-credits": "We also want to thank these projects for illustrations and icons:",
|
"icon-image-credits": "We also want to thank these projects for illustrations and icons:",
|
||||||
"if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "If you want to create multiple blanco cards: Try the 'Add blanco cards' button.",
|
"if-you-want-to-create-multiple-blanco-cards-try-the-add-bulk-button": "If you want to create multiple blanco cards: Try the 'Add blanco cards' button.",
|
||||||
"import-finished": "Import finished",
|
"import-finished": "Import finished",
|
||||||
"import-runners": "Import runners",
|
"import-runners": "Import runners",
|
||||||
"import__target-organization": "Target Organization",
|
"import__target-organization": "Target Organization",
|
||||||
"imprint": "Imprint",
|
"imprint": "Imprint",
|
||||||
"imprint-loading": "Imprint loading...",
|
"imprint-loading": "Imprint loading...",
|
||||||
"inactive": "Inactive",
|
"inactive": "Inactive",
|
||||||
"installed-version": "Installed version",
|
"installed-version": "Installed version",
|
||||||
"internal-error": "Internal Error",
|
"internal-error": "Internal Error",
|
||||||
"invalid": "Invalid",
|
"invalid": "Invalid",
|
||||||
"invalid-mail-reset": "the provided email is invalid",
|
"invalid-mail-reset": "the provided email is invalid",
|
||||||
"just-enter-how-many-you-want-and-the-system-will-create-them": "Just enter how many you want and the system will create them",
|
"just-enter-how-many-you-want-and-the-system-will-create-them": "Just enter how many you want and the system will create them",
|
||||||
"laeufer-hinzufuegen": "Add runner",
|
"laeufer-hinzufuegen": "Add runner",
|
||||||
"laeufer-importieren": "Läufer importieren",
|
"laeufer-importieren": "Läufer importieren",
|
||||||
"laptime": "Laptime",
|
"laptime": "Laptime",
|
||||||
"last-name": "Last name",
|
"last-name": "Last name",
|
||||||
"last-name-is-required": "Last Name is required",
|
"last-name-is-required": "Last Name is required",
|
||||||
"lfk-is-os": "The \"Lauf für Kaya!\" Frontend is (like all other projects for the \"LfK!\" Also) an open source project.",
|
"lfk-is-os": "The \"Lauf für Kaya!\" Frontend is (like all other projects for the \"LfK!\" Also) an open source project.",
|
||||||
"license": "License",
|
"license": "License",
|
||||||
"licenses-are-being-loaded": "Licenses are being loaded...",
|
"licenses-are-being-loaded": "Licenses are being loaded...",
|
||||||
"loading-cards": "Loading cards",
|
"loading-cards": "Loading cards",
|
||||||
"loading-contact-details": "Loading contact details...",
|
"loading-contact-details": "Loading contact details...",
|
||||||
"loading-donation-details": "Loading donation details",
|
"loading-donation-details": "Loading donation details",
|
||||||
"loading-donor-details": "Loading donor details",
|
"loading-donor-details": "Loading donor details",
|
||||||
"loading-group-detail": "Loading group detail...",
|
"loading-group-detail": "Loading group detail...",
|
||||||
"loading-profile-data": "Loading profile data",
|
"loading-profile-data": "Loading profile data",
|
||||||
"loading-runners": "loading runners...",
|
"loading-runners": "loading runners...",
|
||||||
"loading-station-details": "Loading station details",
|
"loading-station-details": "Loading station details",
|
||||||
"log_in": "Log in",
|
"log_in": "Log in",
|
||||||
"log_in_to_your_account": "Log in to your account",
|
"log_in_to_your_account": "Log in to your account",
|
||||||
"login_is_checked": "Login is being checked...",
|
"login_is_checked": "Login is being checked...",
|
||||||
"logout": "Logout",
|
"logout": "Logout",
|
||||||
"mail-validation-in-progress": "mail validation in progress...",
|
"mail-validation-in-progress": "mail validation in progress...",
|
||||||
"manage-admin-users": "manage admin users",
|
"manage-admin-users": "manage admin users",
|
||||||
"middle-name": "Middle name",
|
"middle-name": "Middle name",
|
||||||
"minimum-lap-time-in-s": "minimum lap time in s",
|
"minimum-lap-time-in-s": "minimum lap time in s",
|
||||||
"minimum-lap-time-must-be-a-positive-number-or-0": "minimum lap time must be a positive number or 0",
|
"minimum-lap-time-must-be-a-positive-number-or-0": "minimum lap time must be a positive number or 0",
|
||||||
"must-be-at-least-10-characters-long": "Must be at least 10 characters long!",
|
"must-be-at-least-10-characters-long": "Must be at least 10 characters long!",
|
||||||
"must-contain-a-lowercase-letter": "Must contain a lowercase letter!",
|
"must-contain-a-lowercase-letter": "Must contain a lowercase letter!",
|
||||||
"must-contain-a-number": "Must contain a number!",
|
"must-contain-a-number": "Must contain a number!",
|
||||||
"must-contain-a-uppercase-letter": "Must contain a uppercase letter!",
|
"must-contain-a-uppercase-letter": "Must contain a uppercase letter!",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"name-is-required": "Name is required",
|
"name-is-required": "Name is required",
|
||||||
"new-password": "New password",
|
"new-password": "New password",
|
||||||
"no-contact-found": "No contacts found",
|
"no-contact-found": "No contacts found",
|
||||||
"no-contact-selected": "No contact selected",
|
"no-contact-selected": "No contact selected",
|
||||||
"no-contact-specified": "no contact specified",
|
"no-contact-specified": "no contact specified",
|
||||||
"no-donors-found": "No donors found",
|
"no-donors-found": "No donors found",
|
||||||
"no-license-text-could-be-found": "No license text could be found 😢",
|
"no-license-text-could-be-found": "No license text could be found 😢",
|
||||||
"no-organization-or-team-found": "No organization or team found",
|
"no-organization-or-team-found": "No organization or team found",
|
||||||
"no-organization-specified": "no organization specified",
|
"no-organization-specified": "no organization specified",
|
||||||
"no-organizations-found": "No organizations found",
|
"no-organizations-found": "No organizations found",
|
||||||
"no-runners-found": "No runners found",
|
"no-runners-found": "No runners found",
|
||||||
"no-tracks-added-yet": "there are no tracks added yet.",
|
"no-tracks-added-yet": "there are no tracks added yet.",
|
||||||
"non-blanko": "Non/Blanko",
|
"non-blanko": "Non/Blanko",
|
||||||
"organization": "Organization",
|
"organization": "Organization",
|
||||||
"organization-added": "Organization added",
|
"organization-added": "Organization added",
|
||||||
"organization-deleted": "Organization deleted",
|
"organization-deleted": "Organization deleted",
|
||||||
"organization-detail-is-being-loaded": "organization detail is being loaded...",
|
"organization-detail-is-being-loaded": "organization detail is being loaded...",
|
||||||
"organization-is-being-added": "Organization is being added...",
|
"organization-is-being-added": "Organization is being added...",
|
||||||
"organization-name-is-required": "Organization name is required",
|
"organization-name-is-required": "Organization name is required",
|
||||||
"organizations": "Organizations",
|
"organizations": "Organizations",
|
||||||
"organizations-are-being-loaded": "organizations are being loaded...",
|
"organizations-are-being-loaded": "organizations are being loaded...",
|
||||||
"orgs": "Organizations",
|
"orgs": "Organizations",
|
||||||
"oss_credit_description": "We use a lot of open source software on these projects, and would like to thank the following projects and contributors who help make open source great!",
|
"oss_credit_description": "We use a lot of open source software on these projects, and would like to thank the following projects and contributors who help make open source great!",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
"password-changed": "Password changed!",
|
"password-changed": "Password changed!",
|
||||||
"password-is-required": "Password is required",
|
"password-is-required": "Password is required",
|
||||||
"password-reset-failed": "Password reset failed!",
|
"password-reset-failed": "Password reset failed!",
|
||||||
"password-reset-in-progress": "Password Reset in Progress...",
|
"password-reset-in-progress": "Password Reset in Progress...",
|
||||||
"password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".",
|
"password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".",
|
||||||
"password-reset-successful": "Password Reset successful!",
|
"password-reset-successful": "Password Reset successful!",
|
||||||
"passwords-dont-match": "Passwords don't match!",
|
"passwords-dont-match": "Passwords don't match!",
|
||||||
"pdf-generation-failed": "PDF generation failed!",
|
"pdf-generation-failed": "PDF generation failed!",
|
||||||
"pdf-successfully-generated": "PDF successfully generated!",
|
"pdf-successfully-generated": "PDF successfully generated!",
|
||||||
"pdfs-successfully-generated": "PDFs successfully generated!",
|
"pdfs-successfully-generated": "PDFs successfully generated!",
|
||||||
"per-kilometer": "per Kilometer",
|
"per-kilometer": "per Kilometer",
|
||||||
"permissions": "Permissions",
|
"permissions": "Permissions",
|
||||||
"permissions-updated": "Permissions updated!",
|
"permissions-updated": "Permissions updated!",
|
||||||
"phone": "Phone",
|
"phone": "Phone",
|
||||||
"please-copy-the-token-and-store-it-somewhere-save": "Please copy the token and store it somewhere safe.",
|
"please-copy-the-token-and-store-it-somewhere-save": "Please copy the token and store it somewhere safe.",
|
||||||
"please-provide-a-password": "Please provide a password...",
|
"please-provide-a-password": "Please provide a password...",
|
||||||
"please-provide-the-nessecary-information-to-add-a-new-donor": "Please provide the nessecary information to add a new donor",
|
"please-provide-the-nessecary-information-to-add-a-new-donor": "Please provide the nessecary information to add a new donor",
|
||||||
"please-provide-the-nessecary-information-to-create-a-new-donation": "Please provide the nessecary information to create a new donation",
|
"please-provide-the-nessecary-information-to-create-a-new-donation": "Please provide the nessecary information to create a new donation",
|
||||||
"please-provide-the-nessecary-information-to-create-a-new-scan": "Please provide the nessecary information to create a new scan.",
|
"please-provide-the-nessecary-information-to-create-a-new-scan": "Please provide the nessecary information to create a new scan.",
|
||||||
"please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file",
|
"please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file",
|
||||||
"please-provide-the-required-information-for-creating-a-new-user-group": "Please provide the required information for creating a new user group.",
|
"please-provide-the-required-information-for-creating-a-new-user-group": "Please provide the required information for creating a new user group.",
|
||||||
"please-provide-the-required-information-to-add-a-new-contact": "Please provide the required information to add a new contact.",
|
"please-provide-the-required-information-to-add-a-new-contact": "Please provide the required information to add a new contact.",
|
||||||
"please-provide-the-required-information-to-add-a-new-organization": "Please provide the required information to add a new organization.",
|
"please-provide-the-required-information-to-add-a-new-organization": "Please provide the required information to add a new organization.",
|
||||||
"please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.",
|
"please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.",
|
||||||
"please-provide-the-required-information-to-add-a-new-team": "Please provide the required information to add a new team.",
|
"please-provide-the-required-information-to-add-a-new-team": "Please provide the required information to add a new team.",
|
||||||
"please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.",
|
"please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.",
|
||||||
"please-provide-the-required-information-to-add-a-new-user": "Please provide the required information to add a new user.",
|
"please-provide-the-required-information-to-add-a-new-user": "Please provide the required information to add a new user.",
|
||||||
"please-provide-the-required-information-to-create-a-new-scanstation": "Please provide the required information to create a new scanstation",
|
"please-provide-the-required-information-to-create-a-new-scanstation": "Please provide the required information to create a new scanstation",
|
||||||
"please-request-a-new-reset-mail": "Please request a new reset mail...",
|
"please-request-a-new-reset-mail": "Please request a new reset mail...",
|
||||||
"privacy": "Privacy",
|
"privacy": "Privacy",
|
||||||
"privacy-loading": "Privacy loading...",
|
"privacy-loading": "Privacy loading...",
|
||||||
"profile": "Profile",
|
"profile": "Profile",
|
||||||
"profile-picture": "Profile Picture",
|
"profile-picture": "Profile Picture",
|
||||||
"profile-updated": "Profile updated!",
|
"profile-updated": "Profile updated!",
|
||||||
"read-license": "Read License",
|
"read-license": "Read License",
|
||||||
"receipt-needed": "Receipt needed",
|
"receipt-needed": "Receipt needed",
|
||||||
"repo_link": "Link",
|
"repo_link": "Link",
|
||||||
"request-a-new-reset-mail": "Request a new reset mail",
|
"request-a-new-reset-mail": "Request a new reset mail",
|
||||||
"reset-my-password": "Reset my password",
|
"reset-my-password": "Reset my password",
|
||||||
"reset-password": "Reset your password",
|
"reset-password": "Reset your password",
|
||||||
"runner": "Runner",
|
"runner": "Runner",
|
||||||
"runner-added": "Runner added",
|
"runner-added": "Runner added",
|
||||||
"runner-import": "Runner Import",
|
"runner-import": "Runner Import",
|
||||||
"runner-is-being-added": "Runner is being added...",
|
"runner-is-being-added": "Runner is being added...",
|
||||||
"runner-updated": "Runner updated!",
|
"runner-updated": "Runner updated!",
|
||||||
"runnerimport_verify_runners_org": "Please confirm these runners for import into the organization \"{org_name}\"",
|
"runnerimport_verify_runners_org": "Please confirm these runners for import into the organization \"{org_name}\"",
|
||||||
"runners": "Runners",
|
"runners": "Runners",
|
||||||
"runners-are-being-imported": "Runners are being imported...",
|
"runners-are-being-imported": "Runners are being imported...",
|
||||||
"runners-are-being-loaded": "runners are being loaded...",
|
"runners-are-being-loaded": "runners are being loaded...",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"save-changes": "Save Changes",
|
"save-changes": "Save Changes",
|
||||||
"scan-added": "Scan added",
|
"scan-added": "Scan added",
|
||||||
"scan-is-being-updated": "Scan is being updated",
|
"scan-is-being-updated": "Scan is being updated",
|
||||||
"scan-with-fixed-distance": "Scan with fixed distance",
|
"scan-with-fixed-distance": "Scan with fixed distance",
|
||||||
"scans": "Scans",
|
"scans": "Scans",
|
||||||
"scans-are-being-loaded": "Scans are being loaded",
|
"scans-are-being-loaded": "Scans are being loaded",
|
||||||
"scanstation": "Scanstation",
|
"scanstation": "Scanstation",
|
||||||
"scanstation-added": "Scanstation added",
|
"scanstation-added": "Scanstation added",
|
||||||
"scanstation-is-being-added": "Adding scanstation...",
|
"scanstation-is-being-added": "Adding scanstation...",
|
||||||
"scanstations": "Scanstations",
|
"scanstations": "Scanstations",
|
||||||
"scanstations-are-being-loaded": "Loading scanstations...",
|
"scanstations-are-being-loaded": "Loading scanstations...",
|
||||||
"search-for-an-organization-by-name-or-id": "Search for an organization (by name or id)",
|
"search-for-an-organization-by-name-or-id": "Search for an organization (by name or id)",
|
||||||
"search-for-an-organization-or-team-by-name-or-id": "Search for an organization or team (by name or id)",
|
"search-for-an-organization-or-team-by-name-or-id": "Search for an organization or team (by name or id)",
|
||||||
"search-for-donor-name-or-id": "Search for donor (by name or id)",
|
"search-for-donor-name-or-id": "Search for donor (by name or id)",
|
||||||
"search-for-permission": "Search for permission",
|
"search-for-permission": "Search for permission",
|
||||||
"search-for-runner-by-name-or-id": "Search for runner (by name or id)",
|
"search-for-runner-by-name-or-id": "Search for runner (by name or id)",
|
||||||
"select-all": "select all",
|
"select-all": "select all",
|
||||||
"select-language": "Select language",
|
"select-language": "Select language",
|
||||||
"selfservice-registration": "Selfservice registration",
|
"selfservice-registration": "Selfservice registration",
|
||||||
"send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services",
|
"send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services",
|
||||||
"set-the-user-active-inactive": "set the user active/ inactive",
|
"set-the-user-active-inactive": "set the user active/ inactive",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"settings-for-your-profile": "Settings for your profile",
|
"settings-for-your-profile": "Settings for your profile",
|
||||||
"something-about-the-group": "Something about the group...",
|
"something-about-the-group": "Something about the group...",
|
||||||
"stats-are-being-loaded": "stats are being loaded...",
|
"stats-are-being-loaded": "stats are being loaded...",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"stuff-that-could-harm-your-profile": "Stuff that could harm your profile",
|
"stuff-that-could-harm-your-profile": "Stuff that could harm your profile",
|
||||||
"successful-password-reset": "Successful password reset!",
|
"successful-password-reset": "Successful password reset!",
|
||||||
"team": "Team",
|
"team": "Team",
|
||||||
"team-detail-is-being-loaded": "team detail is being loaded...",
|
"team-detail-is-being-loaded": "team detail is being loaded...",
|
||||||
"team-name": "Team name",
|
"team-name": "Team name",
|
||||||
"team-name-is-required": "team name is required",
|
"team-name-is-required": "team name is required",
|
||||||
"teams": "Teams",
|
"teams": "Teams",
|
||||||
"teams-are-being-loaded": "teams are being loaded...",
|
"teams-are-being-loaded": "teams are being loaded...",
|
||||||
"the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "the provided phone number is invalid.<br />please enter a valid international number...",
|
"the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "the provided phone number is invalid.<br />please enter a valid international number...",
|
||||||
"the-scans-distance-must-be-greater-than-0m": "The scan's distance must be greater than 0m",
|
"the-scans-distance-must-be-greater-than-0m": "The scan's distance must be greater than 0m",
|
||||||
"the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "The scanstation api token will only get displayed once - you won't be able to change or view it again!",
|
"the-scanstations-api-token-will-only-get-displayed-once-you-wont-be-able-to-change-or-view-it-again": "The scanstation api token will only get displayed once - you won't be able to change or view it again!",
|
||||||
"there-are-no-cards-yet": "There are no cards yet.",
|
"there-are-no-cards-yet": "There are no cards yet.",
|
||||||
"there-are-no-contacts-added-yet": "There are no contacts added yet.",
|
"there-are-no-contacts-added-yet": "There are no contacts added yet.",
|
||||||
"there-are-no-donations-yet": "There are no donations yet",
|
"there-are-no-donations-yet": "There are no donations yet",
|
||||||
"there-are-no-donors-yet": "There are no donors yet",
|
"there-are-no-donors-yet": "There are no donors yet",
|
||||||
"there-are-no-groups-yet": "There are no groups yet",
|
"there-are-no-groups-yet": "There are no groups yet",
|
||||||
"there-are-no-organizations-added-yet": "There are no organizations added yet.",
|
"there-are-no-organizations-added-yet": "There are no organizations added yet.",
|
||||||
"there-are-no-runners-added-yet": "There are no runners added yet.",
|
"there-are-no-runners-added-yet": "There are no runners added yet.",
|
||||||
"there-are-no-scans-yet": "There are no scans yet",
|
"there-are-no-scans-yet": "There are no scans yet",
|
||||||
"there-are-no-teams-added-yet": "There are no teams added yet.",
|
"there-are-no-teams-added-yet": "There are no teams added yet.",
|
||||||
"there-are-no-users-added-yet": "There are no users added yet.",
|
"there-are-no-users-added-yet": "There are no users added yet.",
|
||||||
"this-card-is": "This card is",
|
"this-card-is": "This card is",
|
||||||
"this-might-take-a-moment": "This might take a moment 👀",
|
"this-might-take-a-moment": "This might take a moment 👀",
|
||||||
"this-scanstation-is": "This scanstation is",
|
"this-scanstation-is": "This scanstation is",
|
||||||
"token": "Token",
|
"token": "Token",
|
||||||
"total-distance": "total distance",
|
"total-distance": "total distance",
|
||||||
"total-donation-amount": "total donation amount",
|
"total-donation-amount": "total donation amount",
|
||||||
"total-donations": "total donations",
|
"total-donations": "total donations",
|
||||||
"total-scans": "total scans",
|
"total-scans": "total scans",
|
||||||
"track": "Track",
|
"track": "Track",
|
||||||
"track-added": "Track added",
|
"track-added": "Track added",
|
||||||
"track-data-is-being-loaded": "Track data is being loaded",
|
"track-data-is-being-loaded": "Track data is being loaded",
|
||||||
"track-is-being-added": "Track is being added...",
|
"track-is-being-added": "Track is being added...",
|
||||||
"track-length-in-m": "Track Length in m",
|
"track-length-in-m": "Track Length in m",
|
||||||
"track-length-must-be-greater-than-0": "Track length must be greater than 0",
|
"track-length-must-be-greater-than-0": "Track length must be greater than 0",
|
||||||
"track-name": "Track name",
|
"track-name": "Track name",
|
||||||
"track-name-must-not-be-empty": "Track name must not be empty",
|
"track-name-must-not-be-empty": "Track name must not be empty",
|
||||||
"tracks": "Tracks",
|
"tracks": "Tracks",
|
||||||
"update-card": "Update Card",
|
"update-card": "Update Card",
|
||||||
"update-password": "Update password",
|
"update-password": "Update password",
|
||||||
"updated-contact": "Updated contact!",
|
"updated-contact": "Updated contact!",
|
||||||
"updated-donor": "updated donor",
|
"updated-donor": "updated donor",
|
||||||
"updated-organization": "updated organization",
|
"updated-organization": "updated organization",
|
||||||
"updated-scan": "updated scan",
|
"updated-scan": "updated scan",
|
||||||
"updateing-group": "updateing group...",
|
"updateing-group": "updateing group...",
|
||||||
"updating-card": "Updating card",
|
"updating-card": "Updating card",
|
||||||
"updating-organization": "updating organization",
|
"updating-organization": "updating organization",
|
||||||
"updating-permissions": "updating permissions...",
|
"updating-permissions": "updating permissions...",
|
||||||
"updating-runner": "Updating runner...",
|
"updating-runner": "Updating runner...",
|
||||||
"updating-user": "updating user...",
|
"updating-user": "updating user...",
|
||||||
"updating-your-profile": "Updating your profile...",
|
"updating-your-profile": "Updating your profile...",
|
||||||
"user-added": "User added",
|
"user-added": "User added",
|
||||||
"user-groups": "User Groups",
|
"user-groups": "User Groups",
|
||||||
"user-is-being-added": "User is being added...",
|
"user-is-being-added": "User is being added...",
|
||||||
"user-updated": "User updated",
|
"user-updated": "User updated",
|
||||||
"username": "Username",
|
"username": "Username",
|
||||||
"users": "Users",
|
"users": "Users",
|
||||||
"valid": "Valid",
|
"valid": "Valid",
|
||||||
"valid-city-is-required": "Valid city is required",
|
"valid-city-is-required": "Valid city is required",
|
||||||
"valid-email-is-required": "valid email is required",
|
"valid-email-is-required": "valid email is required",
|
||||||
"valid-international-phone-number-is-required": "valid international phone number is required...",
|
"valid-international-phone-number-is-required": "valid international phone number is required...",
|
||||||
"valid-zipcode-postal-code-is-required": "Valid zipcode/ postal code is required",
|
"valid-zipcode-postal-code-is-required": "Valid zipcode/ postal code is required",
|
||||||
"verfuegbare": "availdable",
|
"verfuegbare": "availdable",
|
||||||
"welcome_wavinghand": "Welcome 👋",
|
"welcome_wavinghand": "Welcome 👋",
|
||||||
"yes-i-copied-the-token": "Yes, I copied the token",
|
"yes-i-copied-the-token": "Yes, I copied the token",
|
||||||
"you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "You are going to loose all permissions and access to the runner system!",
|
"you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "You are going to loose all permissions and access to the runner system!",
|
||||||
"you-can-now-use-your-new-password-to-log-in-to-your-account": "You can now use your new password to log in to your account! 🎉",
|
"you-can-now-use-your-new-password-to-log-in-to-your-account": "You can now use your new password to log in to your account! 🎉",
|
||||||
"you-can-provide-a-runner-but-you-dont-have-to": "You can provide a runner, but you don't have to.",
|
"you-can-provide-a-runner-but-you-dont-have-to": "You can provide a runner, but you don't have to.",
|
||||||
"you-dont-have-any-scanstations-yet": "You don't have any scanstations yet",
|
"you-dont-have-any-scanstations-yet": "You don't have any scanstations yet",
|
||||||
"you-have-to-provide-an-organization": "You have to provide an organization",
|
"you-have-to-provide-an-organization": "You have to provide an organization",
|
||||||
"you-have-to-save-your-changes-to-generate-a-link": "You have to save your changes to generate a link.",
|
"you-have-to-save-your-changes-to-generate-a-link": "You have to save your changes to generate a link.",
|
||||||
"you-must-create-at-least-one-card-or-cancel": "You must create at least one card (or cancel).",
|
"you-must-create-at-least-one-card-or-cancel": "You must create at least one card (or cancel).",
|
||||||
"zip-postal-code": "ZIP/ postal code"
|
"zip-postal-code": "ZIP/ postal code",
|
||||||
}
|
"generate-runner-certificates": "Generate runner certificates"
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import 'windi.css';
|
||||||
|
import "toastify-js/src/toastify.css";
|
||||||
|
import "gridjs/dist/theme/mermaid.css";
|
||||||
|
import App from './App.svelte';
|
||||||
|
|
||||||
|
const app = new App({
|
||||||
|
target: document.body
|
||||||
|
});
|
||||||
|
export default app;
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
export const register = () => {
|
|
||||||
if ('serviceWorker' in navigator) {
|
|
||||||
window.addEventListener('load', () => {
|
|
||||||
navigator.serviceWorker.register('/sw.js').then(
|
|
||||||
(registration) => {
|
|
||||||
// console.log(`sw successful with scope: ${registration.scope}`);
|
|
||||||
},
|
|
||||||
(err) => {
|
|
||||||
// console.log(`sw failed: ${err}`);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
+8
-9
@@ -1,14 +1,13 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
purge: {
|
|
||||||
content: [ './src/**/*.svelte' ]
|
|
||||||
},
|
|
||||||
// darkMode: 'media',
|
|
||||||
variants: {},
|
|
||||||
plugins: [],
|
|
||||||
theme: {
|
theme: {
|
||||||
container: {
|
extend: {
|
||||||
center: true,
|
colors: {
|
||||||
padding: '1.5rem'
|
reepolee: {
|
||||||
|
500: '#b40000',
|
||||||
|
600: '#9c0000',
|
||||||
|
700: '#750000'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
const fs = require('fs');
|
|
||||||
let content_svelteconfig = fs.readFileSync('./s-config.template.js', { encoding: 'utf8' });
|
|
||||||
let content_html = fs.readFileSync('./index.template.html', { encoding: 'utf8' });
|
|
||||||
if (process.env.NODE_ENV_ODIT == 'development_fast') {
|
|
||||||
content_html = content_html.replace(
|
|
||||||
'__TAILWIND_INSERT__',
|
|
||||||
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tailwindcss@2.0.2/dist/tailwind.min.css">'
|
|
||||||
);
|
|
||||||
content_svelteconfig = content_svelteconfig.replace('__insert__', '{postcss:{}}');
|
|
||||||
} else {
|
|
||||||
content_html = content_html.replace('__TAILWIND_INSERT__', '');
|
|
||||||
content_svelteconfig = content_svelteconfig.replace(
|
|
||||||
'__insert__',
|
|
||||||
"{postcss:{plugins:[require('tailwindcss'),require('autoprefixer')]}}"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
fs.writeFileSync('./public/index.html', content_html);
|
|
||||||
fs.writeFileSync('./svelte.config.js', content_svelteconfig);
|
|
||||||
console.info('dev setup script done');
|
|
||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const package = JSON.parse(fs.readFileSync(`./package.json`, { encoding: 'utf-8' }));
|
const package = JSON.parse(fs.readFileSync(`./package.json`, { encoding: 'utf-8' }));
|
||||||
const original = fs.readFileSync(`./index.template.html`, { encoding: 'utf-8' });
|
const original = fs.readFileSync(`./index.html`, { encoding: 'utf-8' });
|
||||||
let out = original.replace(/RELEASE_INFO-(\S)+-RELEASE_INFO/gi, 'RELEASE_INFO-' + package.version + '-RELEASE_INFO');
|
let out = original.replace(/RELEASE_INFO-(\S)+-RELEASE_INFO/gi, 'RELEASE_INFO-' + package.version + '-RELEASE_INFO');
|
||||||
fs.writeFileSync(`./index.template.html`, out);
|
fs.writeFileSync(`./index.html`, out);
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
import svelte from '@sveltejs/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 {
|
||||||
|
// base: './',
|
||||||
|
build: {
|
||||||
|
polyfillDynamicImport: false,
|
||||||
|
cssCodeSplit: false,
|
||||||
|
minify: isProduction
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
windiCSS({
|
||||||
|
//@ts-ignore
|
||||||
|
verbose: true,
|
||||||
|
silent: false,
|
||||||
|
debug: true,
|
||||||
|
config: 'tailwind.config.js', // tailwind config file path (optional)
|
||||||
|
compile: false, // false: interpretation mode; true: compilation mode
|
||||||
|
prefix: 'windi-', // set compilation mode style prefix
|
||||||
|
globalPreflight: true, // set preflight style is global or scoped
|
||||||
|
globalUtility: true // set utility style is global or scoped
|
||||||
|
}),
|
||||||
|
svelte({
|
||||||
|
//@ts-ignore
|
||||||
|
hot: !isProduction,
|
||||||
|
emitCss: true,
|
||||||
|
extensions: [ '.md', '.svx', '.svelte' ],
|
||||||
|
preprocess: [
|
||||||
|
//
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
indexReplace()
|
||||||
|
]
|
||||||
|
};
|
||||||
|
});
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
globDirectory: 'public',
|
|
||||||
globPatterns: [ '**/*.{js,ico,png,svg,html,webmanifest,txt,json}' ],
|
|
||||||
globIgnores: [ 'env.js', 'env.sample.js' ],
|
|
||||||
swDest: 'public/sw.js',
|
|
||||||
cleanupOutdatedCaches: true,
|
|
||||||
mode: 'production',
|
|
||||||
sourcemap: false
|
|
||||||
};
|
|
||||||
Reference in new issue
Block a user