Project init

This commit is contained in:
2023-07-27 16:36:58 +02:00
parent f91eb9a898
commit 35f312f53f
45 changed files with 4465 additions and 1 deletions
+14
View File
@@ -0,0 +1,14 @@
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')
module.exports = {
root: true,
'extends': [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/eslint-config-prettier/skip-formatting'
],
parserOptions: {
ecmaVersion: 'latest'
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "none"
}
+3
View File
@@ -0,0 +1,3 @@
{
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
}
+34 -1
View File
@@ -1,2 +1,35 @@
# Bewaesserung-Website-Vue
# Bewaesserung-Frontend
This template should help get you started developing with Vue 3 in Vite.
## Recommended IDE Setup
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
## Customize configuration
See [Vite Configuration Reference](https://vitejs.dev/config/).
## Project Setup
```sh
npm install
```
### Compile and Hot-Reload for Development
```sh
npm run dev
```
### Compile and Minify for Production
```sh
npm run build
```
### Lint with [ESLint](https://eslint.org/)
```sh
npm run lint
```
+23
View File
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Bewässerung</title>
<link rel="apple-touch-icon" sizes="180x180" href="favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png">
<link rel="manifest" href="favicon/site.webmanifest">
<link rel="mask-icon" href="favicon/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
+3558
View File
File diff suppressed because it is too large Load Diff
+27
View File
@@ -0,0 +1,27 @@
{
"name": "bewaesserung-frontend",
"version": "0.0.0",
"private": true,
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
"format": "prettier --write src/"
},
"dependencies": {
"pinia": "^2.1.4",
"vue": "^3.3.4",
"vue-router": "^4.2.4"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.3.2",
"@vitejs/plugin-vue": "^4.2.3",
"@vitejs/plugin-vue-jsx": "^3.0.1",
"@vue/eslint-config-prettier": "^8.0.0",
"eslint": "^8.45.0",
"eslint-plugin-vue": "^9.15.1",
"prettier": "^3.0.0",
"vite": "^4.4.6"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

+237
View File
@@ -0,0 +1,237 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="550.000000pt" height="550.000000pt" viewBox="0 0 550.000000 550.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,550.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M4202 5308 c-7 -7 -12 -9 -12 -6 0 10 -96 -25 -155 -55 -58 -29 -86
-50 -129 -92 -16 -16 -26 -23 -21 -15 4 8 -2 5 -14 -7 -20 -21 -42 -29 -66
-23 -5 2 -21 4 -35 5 -14 2 -50 7 -80 11 -86 11 -240 7 -240 -7 0 -4 -8 -7
-17 -7 -37 3 -210 -72 -197 -85 19 -18 -30 3 -51 23 -14 13 -25 19 -25 14 0
-5 -5 -1 -11 9 -6 9 -14 15 -20 12 -5 -4 -9 -1 -9 4 0 6 -3 10 -7 9 -5 0 -30
9 -58 22 -27 13 -52 23 -55 23 -3 -1 -13 3 -23 9 -21 11 -23 11 -135 37 -93
21 -303 22 -377 1 -22 -6 -44 -12 -50 -14 -5 -1 -25 -6 -42 -10 -18 -4 -33
-12 -33 -16 0 -5 -7 -7 -15 -4 -8 4 -15 1 -15 -6 0 -6 -4 -9 -9 -5 -5 3 -17
-2 -25 -11 -9 -8 -16 -13 -16 -9 0 3 -14 -2 -31 -12 -24 -13 -33 -15 -36 -5
-3 6 -12 12 -21 12 -8 0 -13 3 -9 6 3 3 -2 14 -11 23 -20 20 -100 72 -116 76
-6 1 -24 7 -39 13 -109 45 -292 50 -394 11 -33 -12 -156 -99 -150 -106 3 -2
-8 -17 -24 -32 -16 -15 -26 -31 -22 -34 3 -4 2 -7 -4 -7 -6 0 -13 -8 -17 -17
-3 -10 -10 -25 -15 -33 -15 -21 -44 -93 -43 -102 2 -11 -45 -21 -57 -13 -6 3
-11 2 -11 -2 0 -5 -18 -8 -40 -8 -22 0 -40 -3 -40 -8 0 -4 -4 -6 -9 -3 -10 7
-144 -34 -152 -47 -3 -5 -8 -8 -10 -7 -24 10 -159 -104 -159 -135 0 -5 -7 -23
-15 -39 -9 -16 -13 -36 -10 -43 2 -8 1 -12 -4 -8 -5 3 -15 -1 -23 -8 -12 -13
-18 -16 -43 -22 -5 -2 -30 -9 -55 -16 -25 -7 -48 -12 -53 -11 -4 1 -7 -2 -7
-6 0 -5 -6 -9 -12 -9 -20 0 -88 -44 -88 -56 0 -6 -3 -8 -6 -4 -8 8 -33 -16
-27 -25 2 -5 -2 -8 -10 -8 -9 0 -28 -20 -44 -45 -15 -25 -38 -48 -50 -51 -13
-4 -23 -10 -23 -16 0 -5 -4 -7 -8 -4 -10 6 -75 -25 -85 -41 -5 -8 -12 -11 -18
-8 -5 4 -9 1 -9 -4 0 -6 -5 -11 -11 -11 -7 0 -24 -13 -40 -29 -15 -16 -29 -28
-31 -27 -2 1 -17 -13 -35 -31 -17 -18 -30 -33 -28 -33 2 0 -7 -11 -21 -25 -14
-14 -22 -30 -19 -35 3 -6 2 -10 -3 -10 -9 0 -40 -60 -49 -95 -13 -48 -14 -183
-3 -234 21 -94 56 -150 153 -243 49 -49 93 -88 97 -88 5 0 22 -14 40 -30 18
-17 43 -33 56 -36 13 -4 21 -11 17 -17 -4 -6 0 -8 10 -4 10 3 17 2 17 -3 0 -8
44 -27 46 -19 0 2 8 -2 17 -10 10 -7 17 -10 17 -6 0 4 7 2 15 -5 8 -7 15 -9
15 -6 0 4 8 2 18 -3 29 -16 119 -25 237 -24 137 0 205 6 205 16 0 4 8 3 19 -2
10 -6 21 -8 25 -6 3 3 4 2 1 -2 -5 -7 2 -13 89 -68 32 -20 55 -31 51 -24 -6
10 -2 9 11 -2 21 -17 112 -57 141 -62 10 -1 23 -5 28 -9 38 -23 244 -41 317
-28 35 7 37 6 44 -24 3 -17 13 -47 22 -66 8 -19 14 -38 14 -42 -1 -4 7 -10 18
-13 11 -4 18 -10 16 -14 -6 -10 73 -61 96 -62 17 -1 30 -4 46 -9 4 -1 11 -2
15 -1 4 1 27 4 50 7 23 2 44 9 48 15 3 6 9 10 13 10 20 -3 26 0 21 9 -4 6 -3
10 2 9 21 -4 33 2 33 15 0 8 5 18 12 22 7 4 8 3 4 -4 -4 -7 -5 -12 -2 -12 8 0
41 63 38 73 -1 4 3 7 9 7 5 0 7 5 4 10 -3 6 -2 10 4 10 5 0 10 8 10 18 -1 34
9 57 22 54 22 -6 92 -15 114 -15 65 1 125 8 125 15 0 5 4 7 9 4 12 -8 121 34
121 46 0 5 4 7 8 4 5 -3 18 4 30 14 21 20 21 20 51 -13 17 -17 31 -35 31 -39
0 -5 6 -8 14 -8 8 0 17 -7 20 -16 4 -9 9 -14 12 -11 3 2 17 -6 31 -19 14 -13
29 -21 33 -19 5 3 10 0 12 -5 2 -6 10 -12 18 -13 8 -2 21 -6 28 -10 6 -5 17
-5 22 -2 6 3 10 2 10 -2 0 -11 36 -15 120 -16 76 0 126 7 144 22 7 6 16 8 19
4 4 -3 7 -1 7 6 0 7 4 10 8 7 5 -3 21 6 35 20 27 25 27 25 55 6 37 -25 102
-54 132 -59 42 -7 164 -10 175 -4 6 3 20 7 32 9 31 4 19 -26 -13 -34 -13 -3
-24 -10 -24 -16 0 -5 -15 -15 -32 -23 -38 -15 -110 -84 -102 -96 3 -5 1 -9 -4
-9 -18 0 -48 -94 -46 -145 1 -27 3 -50 4 -50 1 0 3 -9 5 -20 2 -11 9 -21 14
-23 6 -2 11 -11 11 -19 0 -9 3 -13 7 -10 3 4 13 -2 20 -13 8 -11 19 -18 24
-15 5 4 9 2 9 -4 0 -15 111 -7 145 11 28 15 73 58 106 102 12 17 12 19 -1 12
-8 -4 -6 0 4 8 11 9 16 16 12 16 -5 0 -4 6 2 13 11 13 26 118 25 170 0 15 3
27 7 27 4 0 7 10 7 23 -1 12 7 49 17 82 10 33 19 66 19 73 0 6 4 12 9 12 5 0
6 5 3 10 -3 6 1 13 9 16 9 3 14 10 11 14 -3 4 3 7 13 6 9 0 21 -7 25 -14 5 -7
12 -10 18 -7 5 4 9 1 9 -4 0 -6 3 -10 8 -9 4 0 16 -2 27 -6 11 -5 26 -10 33
-12 6 -2 12 -13 12 -24 0 -33 31 -120 43 -120 6 0 8 -3 4 -6 -10 -10 45 -64
65 -64 11 0 17 -4 14 -9 -4 -5 8 -13 26 -17 47 -11 47 -11 56 -14 10 -3 52 -2
85 3 41 6 117 48 117 64 0 8 5 11 10 8 6 -3 10 2 10 11 0 10 3 14 7 11 10 -10
51 67 59 110 4 21 6 54 6 73 l-1 35 172 1 c178 1 290 10 295 25 2 5 8 7 12 4
11 -7 134 35 138 47 2 4 8 6 13 2 5 -3 9 0 9 6 0 6 4 9 9 6 5 -3 20 4 35 15
14 11 26 17 26 12 0 -4 4 -3 8 2 4 6 39 34 79 63 88 65 129 110 159 177 28 63
40 169 23 210 -7 17 -13 32 -14 35 -7 22 -30 60 -37 60 -4 0 -8 6 -8 13 0 6
-12 23 -27 37 -15 14 -23 18 -18 10 4 -8 -5 0 -22 18 -16 17 -33 32 -37 32 -4
0 -14 7 -23 15 -8 8 -19 13 -24 10 -5 -4 -9 -2 -9 3 0 5 -16 17 -35 27 -27 12
-35 21 -30 35 3 10 8 29 11 42 7 31 10 138 4 138 -3 0 -6 12 -7 26 -1 33 -45
144 -55 144 -5 0 -8 9 -8 20 0 10 -9 24 -20 30 -11 6 -20 16 -20 24 0 14 -51
62 -62 58 -5 -1 -8 5 -8 14 0 8 -4 12 -10 9 -5 -3 -10 -1 -10 4 0 6 -5 11 -11
11 -6 0 -17 7 -26 15 -8 8 -19 13 -24 10 -5 -4 -9 -1 -9 5 0 6 -4 9 -8 6 -5
-3 -9 23 -10 57 0 34 -2 63 -3 65 -1 1 -2 10 -3 20 -1 9 -6 33 -11 52 -5 19
-8 41 -6 48 1 6 -3 12 -9 12 -5 0 -9 3 -8 8 3 14 -25 92 -34 92 -4 0 -8 9 -8
20 0 11 -5 20 -11 20 -5 0 -7 5 -4 10 3 6 1 10 -4 10 -6 0 -11 5 -11 11 0 18
-77 120 -138 183 -85 88 -217 166 -303 179 -10 2 -22 6 -25 10 -12 12 -139 8
-152 -5z"/>
<path d="M615 3138 c-19 -21 -35 -43 -35 -49 0 -6 -4 -8 -9 -5 -5 3 -15 -2
-22 -11 -12 -14 -12 -16 0 -8 10 6 12 4 7 -4 -5 -7 -10 -10 -13 -7 -3 2 -23
-9 -46 -25 -22 -16 -46 -29 -54 -29 -7 0 -13 -4 -13 -10 0 -5 -3 -9 -7 -9 -5
1 -13 1 -20 0 -15 -1 -93 -76 -94 -91 -3 -19 -4 -25 -10 -35 -11 -17 -7 -105
4 -105 6 0 8 -3 4 -6 -13 -14 25 -65 69 -90 47 -28 123 -35 148 -14 7 5 15 8
17 5 10 -10 91 72 95 95 3 23 10 57 14 70 1 3 2 38 2 78 0 40 9 106 20 145 10
40 20 77 22 84 1 7 5 15 9 19 12 12 -13 43 -33 41 -11 -1 -36 -18 -55 -39z"/>
<path d="M2518 3053 c-10 -2 -18 -11 -18 -19 0 -8 -5 -14 -11 -14 -5 0 -7 -5
-4 -10 4 -6 3 -9 -2 -8 -4 2 -27 -16 -50 -39 -24 -23 -43 -40 -43 -38 0 2 -16
-7 -36 -20 -20 -14 -43 -25 -50 -25 -8 0 -14 -5 -14 -11 0 -5 -4 -7 -10 -4 -5
3 -10 1 -10 -5 0 -6 -4 -9 -8 -6 -8 5 -40 -22 -69 -58 -29 -35 -34 -136 -9
-185 9 -17 21 -31 27 -31 6 0 8 -4 5 -8 -7 -12 76 -52 111 -54 57 -3 133 27
133 53 0 6 4 8 9 5 8 -6 18 9 19 28 0 5 6 12 12 16 7 4 13 19 13 34 1 14 4 26
7 26 3 0 5 45 5 101 0 55 3 103 8 106 4 2 5 8 2 13 -3 5 -1 11 5 15 6 4 8 11
4 16 -3 5 -1 16 5 23 7 8 11 18 9 22 -1 5 2 19 6 32 7 22 -7 54 -23 51 -3 -1
-14 -3 -23 -6z"/>
<path d="M1234 2917 c-23 -13 -44 -39 -38 -49 2 -4 -1 -10 -7 -14 -8 -5 -9 -3
-4 6 5 8 -22 -17 -60 -56 -38 -38 -68 -73 -67 -77 1 -5 -1 -6 -6 -3 -5 3 -20
-5 -33 -17 -13 -12 -27 -21 -30 -20 -4 1 -13 -4 -19 -12 -7 -8 -19 -15 -26
-15 -8 0 -14 -4 -14 -10 0 -5 -7 -10 -15 -10 -8 0 -15 -5 -15 -11 0 -5 -4 -8
-9 -4 -5 3 -15 0 -23 -7 -7 -7 -21 -14 -31 -16 -30 -5 -98 -44 -104 -58 -3 -8
-11 -14 -19 -14 -8 0 -14 -5 -14 -11 0 -7 -8 -18 -17 -26 -12 -10 -13 -12 -3
-8 12 5 12 4 -1 -7 -13 -11 -27 -35 -34 -58 -18 -59 -21 -82 -19 -115 3 -48 7
-66 17 -82 5 -7 6 -13 3 -13 -8 0 30 -65 55 -94 12 -14 25 -23 29 -21 5 3 11
-2 14 -11 3 -8 10 -12 16 -9 5 3 10 2 10 -4 0 -23 174 -51 205 -32 6 3 12 6
15 7 32 6 60 18 60 26 0 5 5 6 10 3 6 -3 10 -2 10 4 0 5 9 13 21 16 11 4 18 9
15 12 -2 3 6 15 19 27 13 12 25 28 27 36 2 8 9 21 16 28 7 8 10 17 7 22 -3 5
0 10 7 12 8 3 13 42 14 129 1 68 3 124 3 124 1 0 4 29 6 65 4 69 6 78 25 150
7 25 14 55 15 67 2 12 7 28 11 35 9 13 14 33 16 56 1 6 5 12 9 12 4 0 6 8 4
18 -2 9 -4 20 -4 23 -2 13 -28 17 -47 6z"/>
<path d="M3079 2783 c-13 -14 -18 -23 -10 -18 9 5 12 4 7 -3 -4 -7 -14 -12
-22 -12 -8 0 -14 -3 -14 -8 0 -4 -21 -27 -46 -52 -25 -25 -57 -56 -72 -70 -14
-14 -22 -18 -18 -10 4 8 -2 4 -13 -9 -12 -13 -21 -20 -21 -16 0 3 -13 -3 -29
-15 -33 -23 -102 -55 -113 -52 -5 1 -8 -3 -8 -9 0 -5 -4 -7 -10 -4 -5 3 -10 1
-10 -4 0 -6 -5 -11 -10 -11 -6 0 -20 -9 -32 -20 -12 -11 -19 -20 -15 -20 3 0
-5 -11 -19 -25 -14 -14 -22 -30 -19 -35 3 -6 1 -10 -6 -10 -7 0 -9 -3 -6 -7 4
-3 2 -12 -4 -19 -23 -28 -12 -194 14 -194 4 0 5 -4 2 -10 -3 -5 -1 -10 4 -10
6 0 11 -6 11 -14 0 -13 17 -30 68 -65 11 -8 23 -13 27 -12 4 2 11 -2 15 -9 15
-25 200 -14 200 12 0 4 7 8 15 8 8 0 15 5 15 10 0 6 5 10 11 10 15 0 49 39 49
57 0 8 5 11 10 8 9 -6 14 8 11 28 0 4 3 7 8 7 15 0 24 59 27 170 2 114 11 207
21 223 3 5 7 20 9 33 3 27 31 122 43 144 12 22 -5 60 -27 60 -10 0 -29 -12
-43 -27z"/>
<path d="M1811 2612 c-23 -33 -102 -123 -125 -141 -10 -9 -27 -24 -38 -33 -10
-10 -22 -18 -28 -18 -5 0 -10 -4 -10 -10 0 -5 -7 -10 -15 -10 -8 0 -15 -4 -15
-10 0 -5 -11 -12 -25 -16 -14 -3 -35 -18 -46 -33 -11 -14 -23 -24 -27 -21 -3
3 -19 -20 -36 -50 -24 -44 -30 -69 -33 -127 -1 -43 1 -73 7 -73 6 0 9 -4 8 -9
-6 -20 36 -68 71 -83 31 -13 50 -14 119 -6 6 1 12 5 12 10 0 5 4 6 10 3 5 -3
21 5 35 19 14 15 30 26 35 26 5 0 12 9 15 20 3 11 10 20 15 20 6 0 17 25 19
46 0 2 7 11 15 19 8 8 13 26 12 40 -2 14 0 25 3 25 3 0 6 21 7 48 1 44 5 73
20 147 4 17 7 36 7 43 0 6 5 12 10 12 5 0 7 7 3 15 -3 8 0 15 6 15 6 0 8 3 5
7 -4 3 -2 12 3 19 6 6 10 16 9 20 -1 5 5 25 14 44 18 41 8 70 -24 67 -12 -1
-29 -12 -38 -25z"/>
<path d="M2403 2352 c-29 -31 -53 -62 -53 -69 0 -6 -5 -15 -12 -19 -7 -5 -8
-3 -3 7 8 12 6 12 -8 0 -9 -7 -17 -19 -17 -27 0 -7 -5 -16 -12 -20 -7 -5 -8
-3 -3 7 5 8 -7 -1 -25 -18 -19 -18 -38 -33 -42 -33 -5 0 -6 -6 -2 -12 4 -7 4
-10 -1 -6 -4 4 -22 -3 -39 -15 -17 -12 -78 -46 -136 -76 -58 -29 -108 -58
-111 -63 -3 -5 -9 -8 -12 -6 -3 1 -15 -7 -27 -19 -11 -13 -19 -23 -16 -23 3 0
-6 -12 -19 -26 -14 -15 -22 -30 -19 -35 3 -5 1 -9 -4 -9 -9 0 -15 -13 -28 -60
-9 -31 -10 -116 -1 -145 9 -31 15 -56 16 -66 1 -3 10 -15 21 -27 12 -12 18
-22 14 -22 -4 0 1 -9 11 -20 10 -11 22 -17 28 -13 5 3 7 1 3 -5 -6 -11 51 -51
82 -57 9 -2 17 -4 17 -5 0 -4 44 -12 80 -14 42 -3 134 17 144 31 3 4 13 9 21
11 23 4 109 101 126 141 24 56 25 67 29 216 2 77 6 156 9 175 13 91 18 116 26
125 4 6 6 18 5 28 -2 9 1 17 6 17 6 0 7 5 4 10 -4 6 -3 16 2 23 15 19 45 132
42 152 -8 37 -42 25 -96 -33z"/>
<path d="M3792 2355 c-17 -20 -32 -39 -32 -44 0 -5 -8 -15 -17 -22 -17 -13
-17 -13 -3 6 8 11 -7 1 -34 -23 -27 -23 -53 -42 -58 -42 -5 0 -20 -8 -35 -17
-14 -10 -33 -18 -42 -20 -8 -1 -21 -9 -27 -17 -6 -9 -14 -13 -17 -9 -4 3 -7 1
-7 -5 0 -6 -7 -18 -16 -26 -9 -9 -17 -22 -18 -29 -2 -6 -6 -19 -9 -27 -16 -40
-14 -81 7 -124 21 -45 81 -100 97 -90 5 3 9 1 9 -5 0 -16 120 -7 131 10 5 8 9
10 9 5 0 -15 60 46 77 79 11 20 17 65 19 135 4 123 7 146 22 181 6 15 12 35
14 45 2 11 6 21 9 24 12 10 -11 50 -28 50 -10 0 -33 -16 -51 -35z"/>
<path d="M609 2033 c-101 -112 -173 -187 -165 -173 4 8 -2 5 -13 -8 -11 -13
-22 -23 -25 -23 -16 1 -35 -12 -30 -20 3 -5 2 -9 -3 -8 -13 4 -63 -23 -63 -34
0 -6 -3 -8 -6 -4 -19 18 -253 -131 -239 -153 2 -4 -5 -16 -16 -26 -11 -10 -17
-24 -15 -31 3 -7 1 -13 -5 -13 -6 0 -7 -4 -4 -10 3 -5 1 -10 -5 -10 -7 0 -10
-7 -7 -15 4 -8 2 -17 -3 -20 -28 -17 2 -162 48 -233 18 -28 52 -65 52 -57 0 3
9 -4 20 -15 12 -12 25 -18 30 -15 6 4 10 2 10 -2 0 -16 58 -31 121 -31 64 0
149 23 149 40 0 5 4 7 9 4 11 -7 101 76 101 92 0 7 5 12 11 12 5 0 7 5 4 10
-3 6 -2 10 3 10 6 0 13 12 17 28 5 15 10 34 12 42 3 8 6 69 8 135 4 181 18
290 44 358 6 15 8 27 5 27 -4 0 -1 7 6 15 7 9 10 18 7 22 -4 3 -3 11 2 17 19
24 40 113 28 125 -21 21 -44 11 -88 -36z m11 -7 c0 -2 -8 -10 -17 -17 -16 -13
-17 -12 -4 4 13 16 21 21 21 13z"/>
<path d="M3310 1995 c-14 -7 -25 -17 -25 -22 0 -5 -23 -30 -52 -55 -28 -25
-50 -49 -47 -52 2 -3 1 -4 -2 -1 -4 2 -26 -9 -50 -26 -24 -16 -44 -27 -44 -23
0 4 -9 -1 -20 -11 -11 -10 -20 -15 -20 -11 0 4 -9 2 -21 -4 -11 -7 -18 -14
-15 -17 3 -3 -5 -14 -18 -24 -43 -34 -61 -167 -26 -197 10 -9 10 -11 1 -7 -9
5 -7 -1 4 -19 17 -26 72 -62 88 -58 4 1 7 -2 7 -7 0 -15 110 -10 125 6 8 7 17
12 20 11 10 -5 55 43 72 76 10 19 17 63 19 116 2 47 5 99 8 115 7 37 14 69 16
73 2 1 4 11 5 22 1 11 4 23 5 28 1 4 2 10 1 15 0 4 4 7 11 7 6 0 8 3 5 7 -4 3
-2 12 3 18 7 9 5 19 -7 33 -16 19 -20 20 -43 7z"/>
<path d="M1386 1812 c-9 -15 -15 -23 -16 -17 0 5 -8 -2 -17 -15 -10 -14 -16
-29 -15 -35 2 -5 0 -7 -3 -3 -7 6 -82 -57 -123 -104 -9 -9 -19 -15 -24 -12 -4
3 -11 -2 -14 -10 -3 -9 -12 -16 -20 -16 -8 0 -14 -5 -14 -12 0 -6 -3 -8 -6 -5
-4 4 -21 -4 -38 -16 -17 -12 -32 -21 -33 -19 -9 8 -33 0 -27 -10 5 -7 3 -8 -5
-4 -7 5 -18 0 -26 -10 -8 -11 -15 -15 -15 -10 0 16 -71 -56 -83 -84 -5 -14
-10 -28 -9 -32 1 -5 -3 -8 -9 -8 -6 0 -9 -7 -5 -15 3 -8 2 -15 -3 -15 -9 0
-12 -120 -3 -135 4 -5 8 -19 9 -29 2 -10 11 -25 21 -33 11 -9 11 -12 2 -7 -26
12 54 -67 83 -82 15 -8 27 -12 27 -8 0 4 7 1 15 -6 8 -7 15 -9 15 -5 0 4 6 3
13 -2 12 -10 71 -10 114 0 34 8 83 37 83 48 0 6 4 8 9 4 11 -6 61 55 61 73 0
7 4 12 10 12 18 0 32 86 35 215 4 144 2 132 40 265 36 122 37 150 8 161 -19 7
-25 3 -37 -19z m-76 -95 c0 -2 -10 -12 -22 -23 l-23 -19 19 23 c18 21 26 27
26 19z"/>
<path d="M3790 1637 c-22 -23 -40 -48 -40 -55 0 -7 -4 -11 -9 -7 -6 3 -13 0
-18 -8 -12 -18 -98 -87 -110 -87 -6 0 -16 -7 -23 -15 -7 -9 -15 -13 -18 -11
-6 7 -114 -63 -129 -83 -6 -9 -9 -19 -7 -23 3 -5 1 -8 -4 -8 -12 0 -34 -49
-27 -60 3 -5 1 -11 -3 -14 -16 -10 2 -126 21 -138 7 -4 8 -8 3 -8 -15 0 36
-50 69 -68 17 -9 35 -15 42 -14 6 1 14 -2 17 -6 6 -10 74 -4 106 8 3 1 8 2 11
2 3 -1 28 19 55 44 27 25 42 42 34 39 -10 -4 -9 -2 3 8 9 8 17 19 17 26 0 6 4
11 8 11 11 0 11 4 17 125 4 102 8 140 20 185 4 14 8 32 10 40 2 14 5 23 27 82
13 36 7 71 -15 74 -9 1 -35 -16 -57 -39z"/>
<path d="M2759 1430 c-13 -10 -21 -19 -17 -20 4 0 -20 -26 -55 -57 -34 -31
-65 -62 -69 -67 -4 -6 -8 -8 -8 -3 0 4 -17 -3 -37 -16 -21 -13 -53 -29 -70
-36 -18 -8 -33 -17 -33 -22 0 -5 -6 -9 -12 -9 -14 -1 -49 -43 -52 -63 -1 -7
-7 -21 -13 -32 -14 -27 -9 -107 10 -147 16 -33 50 -68 66 -68 5 0 11 -5 13
-11 6 -19 119 -22 158 -5 39 16 93 64 98 86 2 8 7 17 10 20 12 9 15 32 18 140
1 58 9 129 17 158 9 28 13 52 10 52 -3 0 -1 6 5 13 17 22 25 77 12 92 -16 20
-23 19 -51 -5z"/>
<path d="M1832 1193 c-6 -3 -10 -9 -6 -14 3 -5 -1 -9 -8 -9 -7 0 -24 -16 -37
-35 -13 -19 -28 -35 -33 -35 -5 0 -7 -4 -4 -9 3 -4 -6 -13 -19 -19 -14 -7 -25
-19 -25 -27 0 -9 -4 -14 -8 -11 -5 3 -15 -4 -22 -15 -8 -10 -20 -19 -27 -19
-7 0 -13 -7 -13 -17 0 -9 -3 -14 -6 -11 -5 5 -58 -24 -89 -50 -11 -9 -42 -22
-51 -21 -4 0 -10 -3 -13 -8 -3 -5 -27 -17 -53 -27 -27 -10 -48 -22 -48 -27 0
-6 -4 -8 -9 -5 -10 7 -92 -79 -84 -88 4 -3 2 -6 -4 -6 -6 0 -14 -10 -18 -22
-10 -31 -12 -37 -15 -43 -1 -3 -3 -8 -4 -12 -1 -5 -4 -12 -7 -18 -14 -25 4
-165 22 -176 6 -3 10 -10 10 -15 -1 -5 5 -16 13 -26 8 -9 12 -19 9 -22 -4 -3
1 -6 11 -6 9 0 15 -3 13 -7 -3 -5 1 -14 9 -21 8 -7 14 -10 14 -7 0 3 10 -3 22
-14 11 -11 25 -18 30 -15 4 3 8 0 8 -6 0 -6 4 -9 9 -6 5 4 11 1 13 -5 7 -21
135 -20 194 2 30 11 54 25 54 31 0 6 3 8 6 5 14 -13 102 94 96 116 -1 4 2 7 7
7 16 0 25 61 27 190 2 146 11 229 33 299 6 18 10 36 9 40 -1 6 5 24 23 69 5
13 7 28 4 33 -4 5 -1 9 6 9 7 0 9 3 6 7 -4 3 -2 12 3 18 21 25 -13 59 -48 48z"/>
<path d="M780 1117 c-5 -12 -9 -18 -9 -13 -1 5 -11 -4 -23 -20 -13 -16 -22
-33 -20 -39 2 -5 1 -7 -3 -3 -9 8 -55 -36 -55 -53 0 -7 -3 -10 -6 -6 -4 3 -26
-14 -51 -38 -24 -24 -46 -44 -49 -44 -3 1 -19 -11 -35 -25 -16 -14 -29 -24
-29 -21 0 3 -17 -5 -37 -18 -21 -13 -54 -30 -73 -37 -58 -23 -120 -61 -120
-73 0 -5 -3 -8 -6 -4 -15 15 -89 -94 -99 -146 -2 -9 -7 -22 -10 -27 -11 -17
-7 -141 5 -154 5 -7 7 -16 3 -19 -3 -4 -1 -7 6 -7 7 0 10 -4 6 -9 -8 -14 44
-84 88 -117 21 -16 40 -28 43 -26 2 1 18 -5 34 -13 17 -9 30 -12 30 -8 0 4 5
2 12 -5 13 -13 98 -17 98 -4 0 4 8 8 18 9 43 3 62 8 62 15 0 4 7 8 15 8 8 0
15 5 15 11 0 5 5 7 10 4 6 -3 13 1 16 9 3 9 10 14 14 11 4 -3 14 3 21 12 12
14 12 16 0 8 -10 -5 -12 -4 -7 3 4 7 14 12 22 12 8 0 14 7 14 15 0 8 4 15 9
15 5 0 19 24 31 53 19 42 24 73 26 162 3 110 10 224 19 280 5 36 22 108 25
113 2 1 3 5 4 10 1 4 5 13 9 20 5 6 6 12 3 12 -2 0 6 27 19 60 13 33 18 57 12
53 -9 -5 -9 -3 0 8 15 19 2 41 -27 46 -14 2 -24 -4 -30 -20z"/>
<path d="M3202 1090 c-20 -25 -59 -67 -87 -94 -27 -26 -41 -42 -30 -35 18 13
19 13 6 -4 -8 -9 -16 -15 -18 -13 -3 3 -29 -15 -59 -40 -30 -24 -74 -54 -97
-65 -23 -12 -51 -29 -61 -38 -11 -9 -16 -10 -12 -3 4 6 -17 -2 -46 -18 -29
-17 -61 -34 -70 -37 -10 -3 -18 -12 -18 -20 0 -8 -3 -12 -7 -10 -5 3 -14 -1
-21 -9 -7 -8 -10 -14 -7 -14 3 0 -4 -9 -15 -20 -12 -12 -18 -25 -15 -30 4 -6
2 -10 -4 -10 -6 0 -14 -12 -17 -27 -4 -16 -9 -32 -12 -38 -7 -11 -13 -51 -14
-80 -1 -62 31 -165 51 -165 6 0 10 -3 8 -8 -1 -4 8 -20 21 -36 12 -16 22 -26
22 -22 0 3 9 -3 20 -14 12 -12 25 -18 29 -15 5 2 12 -2 15 -11 4 -9 9 -14 12
-11 3 3 21 -1 39 -9 40 -16 121 -19 130 -3 4 5 12 8 18 6 7 -2 25 5 41 16 16
12 26 16 22 9 -5 -8 -2 -10 8 -6 9 3 16 9 16 13 0 3 16 17 35 30 19 13 32 27
30 32 -3 4 3 13 13 18 24 13 65 105 67 151 1 20 5 41 9 48 4 7 3 12 -2 12 -16
0 4 288 26 355 3 11 6 22 7 25 0 3 6 21 13 40 6 19 13 46 16 60 2 14 12 42 20
63 12 27 14 43 6 57 -16 30 -48 19 -88 -30z m-62 -84 c0 -2 -8 -10 -17 -17
-16 -13 -17 -12 -4 4 13 16 21 21 21 13z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

+19
View File
@@ -0,0 +1,19 @@
{
"name": "",
"short_name": "",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
+41
View File
@@ -0,0 +1,41 @@
<script setup>
import Footer from './components/siteElements/Footer.vue';
import TopBanner from './components/siteElements/TopBanner.vue';
import Sidebar from './components/siteElements/Sidebar.vue';
import Nav from './components/siteElements/Nav.vue';
import { RouterLink, RouterView } from 'vue-router';
</script>
<template>
<header>
<TopBanner>
<Nav />
</TopBanner>
</header>
<main>
<div class="content">
<RouterView />
</div>
<div class="sidebar">
<Sidebar />
</div>
</main>
<Footer />
</template>
<style scoped>
main {
display: flex;
margin: 16px;
}
.content {
width: 80%;
}
.sidebar {
width: auto;
}
</style>
@@ -0,0 +1,2 @@
[InternetShortcut]
URL=https://fonts.google.com/icons?selected=Material+Icons:delete&icon.query=computer
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>

After

Width:  |  Height:  |  Size: 315 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><g><rect fill="none" height="24" width="24"/></g><g><g/><g><path d="M21,5c-1.11-0.35-2.33-0.5-3.5-0.5c-1.95,0-4.05,0.4-5.5,1.5c-1.45-1.1-3.55-1.5-5.5-1.5S2.45,4.9,1,6v14.65 c0,0.25,0.25,0.5,0.5,0.5c0.1,0,0.15-0.05,0.25-0.05C3.1,20.45,5.05,20,6.5,20c1.95,0,4.05,0.4,5.5,1.5c1.35-0.85,3.8-1.5,5.5-1.5 c1.65,0,3.35,0.3,4.75,1.05c0.1,0.05,0.15,0.05,0.25,0.05c0.25,0,0.5-0.25,0.5-0.5V6C22.4,5.55,21.75,5.25,21,5z M21,18.5 c-1.1-0.35-2.3-0.5-3.5-0.5c-1.7,0-4.15,0.65-5.5,1.5V8c1.35-0.85,3.8-1.5,5.5-1.5c1.2,0,2.4,0.15,3.5,0.5V18.5z"/><g><path d="M17.5,10.5c0.88,0,1.73,0.09,2.5,0.26V9.24C19.21,9.09,18.36,9,17.5,9c-1.7,0-3.24,0.29-4.5,0.83v1.66 C14.13,10.85,15.7,10.5,17.5,10.5z"/><path d="M13,12.49v1.66c1.13-0.64,2.7-0.99,4.5-0.99c0.88,0,1.73,0.09,2.5,0.26V11.9c-0.79-0.15-1.64-0.24-2.5-0.24 C15.8,11.66,14.26,11.96,13,12.49z"/><path d="M17.5,14.33c-1.7,0-3.24,0.29-4.5,0.83v1.66c1.13-0.64,2.7-0.99,4.5-0.99c0.88,0,1.73,0.09,2.5,0.26v-1.52 C19.21,14.41,18.36,14.33,17.5,14.33z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M21.58,16.09l-1.09-7.66C20.21,6.46,18.52,5,16.53,5H7.47C5.48,5,3.79,6.46,3.51,8.43l-1.09,7.66 C2.2,17.63,3.39,19,4.94,19h0c0.68,0,1.32-0.27,1.8-0.75L9,16h6l2.25,2.25c0.48,0.48,1.13,0.75,1.8,0.75h0 C20.61,19,21.8,17.63,21.58,16.09z M11,11H9v2H8v-2H6v-1h2V8h1v2h2V11z M15,10c-0.55,0-1-0.45-1-1c0-0.55,0.45-1,1-1s1,0.45,1,1 C16,9.55,15.55,10,15,10z M17,13c-0.55,0-1-0.45-1-1c0-0.55,0.45-1,1-1s1,0.45,1,1C18,12.55,17.55,13,17,13z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 642 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>

After

Width:  |  Height:  |  Size: 192 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><g><rect fill="none" height="24" width="24"/></g><g><g/><g><path d="M21,5l-9-4L3,5v6c0,5.55,3.84,10.74,9,12c2.3-0.56,4.33-1.9,5.88-3.71l-3.12-3.12c-1.94,1.29-4.58,1.07-6.29-0.64 c-1.95-1.95-1.95-5.12,0-7.07c1.95-1.95,5.12-1.95,7.07,0c1.71,1.71,1.92,4.35,0.64,6.29l2.9,2.9C20.29,15.69,21,13.38,21,11V5z"/><circle cx="12" cy="12" r="3"/></g></g></svg>

After

Width:  |  Height:  |  Size: 485 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"/></svg>

After

Width:  |  Height:  |  Size: 379 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z"/></svg>

After

Width:  |  Height:  |  Size: 295 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><g><path d="M0,0h24v24H0V0z" fill="none"/><path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 8l-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"/></svg>

After

Width:  |  Height:  |  Size: 383 B

+8
View File
@@ -0,0 +1,8 @@
/* @import './base.css'; */
body{
margin: 0px;
margin-bottom: 5em;
padding: 0px;
background-color: #f9ecf2;
}
+11
View File
@@ -0,0 +1,11 @@
<script setup>
</script>
<template>
</template>
<style scoped>
</style>
+81
View File
@@ -0,0 +1,81 @@
<script setup>
import { RouterLink } from 'vue-router';
import { reactive } from "vue";
const localTime = reactive({
h: "01",
m: "02",
s: "03",
print() {
return this.h + ":" + this.m + ":" + this.s
}
});
updateTime();
function updateTime() {
function addLeadingZero(i) {
if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
const today = new Date();
localTime.h = addLeadingZero(today.getHours());
localTime.m = addLeadingZero(today.getMinutes());
localTime.s = addLeadingZero(today.getSeconds());
setTimeout(updateTime, 1000);
}
</script>
<template>
<footer>
<div>
<ul>
<li>Lokale Zeit: <span id="footerLocalTime"> {{ localTime.print() }}</span></li>
<li>Server Zeit: <span id="footerServerTime">00:00:00</span></li>
</ul>
</div>
<div>Kleiax Irrigation Frontend</div>
<div>
<ul class="links">
<li><RouterLink to="/imprint">Impressum</RouterLink></li>
<li><RouterLink to="/api">Api</RouterLink></li>
</ul>
</div>
</footer>
</template>
<style scoped>
footer{
position: fixed;
bottom: 0px;
width: 100%;
height: 4em;
display: flex;
justify-content: space-between;
place-items: center;
background-color: aquamarine;
}
ul{
list-style-type: none;
padding: 0px;
margin-left: 8px;
margin-right: 8px;;
}
.links{
text-align: right;
}
a{
text-decoration: none;
color: black;
}
a:hover{
text-decoration: underline;
}
</style>
+40
View File
@@ -0,0 +1,40 @@
<script setup>
import { RouterLink } from 'vue-router'
</script>
<template>
<nav>
<ul>
<li>
<RouterLink to="/"> <img src="../../assets/img/menuIcon/home.svg"> Home </RouterLink>
</li>
<li>
<RouterLink to="/about"> <img src="../../assets/img/menuIcon/logs.svg"> About</RouterLink>
</li>
</ul>
</nav>
</template>
<style scoped>
ul {
display: flex;
list-style-type: none;
}
img {
padding-right: 8px;
}
a {
display: block;
text-decoration: none;
color: white;
padding: 8px;
display: flex;
align-items: center;
}
a:hover {
background-color: rgba(255, 255, 255, 0.1);
}
</style>
+3
View File
@@ -0,0 +1,3 @@
<template>
<p>Sidebar</p>
</template>
+27
View File
@@ -0,0 +1,27 @@
<script setup>
</script>
<template>
<div class="banner">
<h1>Lebennig Huus Bewässerung</h1>
<slot></slot>
</div>
</template>
<style scoped>
.banner{
display: flex;
width: 100%;
background-color: green;
height: 6em;
align-items: center;
justify-items: center;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
h1{
margin: 0px;
margin-left: 16px;
}
</style>
+172
View File
@@ -0,0 +1,172 @@
const address = "http://127.0.0.1:8040/api/";
class IrrigationApi {
constructor() {
}
getValve(id, callback) {
httpGet('valve/' + id, callback);
}
getValves(callback) {
httpGet('valve', callback);
}
patchValve(id, valve, callback) {
httpPatch('valve/' + id, valve, callback);
}
getArea(id, callback) {
httpGet('area/' + id, callback);
}
getAreas(callback) {
httpGet('area', callback);
}
saveAll(callback) {
httpGet('area/saveAll', callback);
}
createArea(area, callback) {
httpPost('area', area, callback);
}
deleteArea(id, callback) {
httpDelete('area/' + id, callback);
}
patchArea(id, area, callback) {
httpPatch('area/' + id, area, callback);
}
getAreaConf(id, callback) {
httpGet('areaConf/specific/' + id, callback);
}
getAreaConfs(area, callback) {
httpGet('areaConf/' + area, callback);
}
createAreaConf(area, areaConf, callback) {
httpPost('areaConf/' + area, areaConf, callback);
}
deleteAreaConf(id, callback) {
httpDelete('areaConf/' + id, callback);
}
patchAreaConf(id, areaConf, callback) {
httpPatch('areaConf/' + id, areaConf, callback);
}
getIrrigationEvent(id, callback) {
httpGet('irrigationEvent/specific/' + id, callback);
}
getIrrigationEvents(areaConf, callback) {
httpGet('irrigationEvent/' + areaConf, callback);
}
createIrrigationEvent(areaConf, irrigationEvent, callback) {
httpPost('irrigationEvent/' + areaConf, irrigationEvent, callback);
}
deleteIrrigationEvent(id, callback) {
httpDelete('irrigationEvent/' + id, callback);
}
patchIrrigationEvent(id, irrigationEvent, callback) {
httpPatch('irrigationEvent/' + id, irrigationEvent, callback);
}
commandManualControlPause(id, duration, callback) {
httpPost('manualControl/pause/' + id, { duration: duration}, callback);
}
commandManualControlPauseAll(callback) {
httpPost('manualControl/pauseAll/', {}, callback);
}
commandManualControlUniqueIrrigationEvent(id, duration, callback) {
httpPost('manualControl/uniqueIrrigationEvent/' + id, {duration: duration}, callback);
}
commandManualControlStop(id, callback) {
httpPost('manualControl/stop/' + id, {}, callback);
}
commandManualControlStopAll(duration, callback) {
httpPost('manualControl/stopAll/', {duration: duration}, callback);
}
}
function httpGet(apiCall, callback) {
var request = new XMLHttpRequest();
request.open('GET', address + apiCall);
request.onload = function () {
const data = JSON.parse(request.response);
if (request.status >= 200 && request.status < 400) {
callback(data);
} else {
console.log('Error irrigationApi.js httpGet()', data);
}
};
request.send();
}
function httpPatch(apiCall, data, callback) {
var request = new XMLHttpRequest();
request.open('PATCH', address + apiCall);
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const data = JSON.parse(request.response);
if (request.status >= 200 && request.status < 400) {
callback(data);
} else {
console.log('Error irrigationApi.js httpPatch()', data);
}
};
request.send(JSON.stringify(data));
}
function httpDelete(apiCall, callback) {
var request = new XMLHttpRequest();
request.open('DELETE', address + apiCall);
request.onload = function () {
const data = JSON.parse(request.response);
if (request.status >= 200 && request.status < 400) {
callback(data);
} else {
console.log('Error irrigationApi.js httpDelete()', data);
}
};
request.send();
}
function httpPost(apiCall, data, callback) {
// console.log(data);
var request = new XMLHttpRequest();
request.open('POST', address + apiCall);
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const data = JSON.parse(request.response);
if (request.status >= 200 && request.status < 400) {
callback(data);
} else {
console.log('Error irrigationApi.js httpPost()', data);
}
};
request.send(JSON.stringify(data));
}
export default IrrigationApi;
+14
View File
@@ -0,0 +1,14 @@
import './assets/main.css'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(createPinia())
app.use(router)
app.mount('#app')
+33
View File
@@ -0,0 +1,33 @@
import { createRouter, createWebHistory } from 'vue-router';
import HomeView from '../views/HomeView.vue';
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/AboutView.vue')
},
{
path: '/imprint',
name: 'imprint',
component: () => import('../views/ImprintView.vue')
},
{
path: '/api',
name: 'api',
component: HomeView
},
]
});
export default router
+12
View File
@@ -0,0 +1,12 @@
import { ref, computed } from 'vue'
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', () => {
const count = ref(0)
const doubleCount = computed(() => count.value * 2)
function increment() {
count.value++
}
return { count, doubleCount, increment }
})
+7
View File
@@ -0,0 +1,7 @@
<template>
<h1>Seite About</h1>
</template>
<style>
</style>
+8
View File
@@ -0,0 +1,8 @@
<script setup>
</script>
<template>
<h1>Seite 1</h1>
</template>
+47
View File
@@ -0,0 +1,47 @@
<template>
<div class='impressum'>
<h1>Impressum</h1>
<p>Angaben gemäß § 5 TMG</p>
<p>Alexander Klein <br>
Ringstraße 15a<br>
26899 Rhede (Ems) <br>
</p>
<p> <strong>Vertreten durch: </strong><br>
Alexander Klein<br>
</p>
<p><strong>Kontakt:</strong> <br>
Telefon: 0157-89217099<br>
E-Mail: <a href='mailto:klein-alexander1@gmx.de'>klein-alexander1@gmx.de</a><br></p>
<p><strong>Haftungsausschluss: </strong><br><br><strong>Haftung für Inhalte</strong><br><br>
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und
Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1
TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind
wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu
überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur
Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt.
Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung
möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend
entfernen.<br><br><strong>Haftung für Links</strong><br><br>
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb
können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist
stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum
Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der
Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete
Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir
derartige Links umgehend entfernen.<br><br><strong>Datenschutz</strong><br><br>
Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren
Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies,
soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an
Dritte weitergegeben. <br>
Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail)
Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht
möglich. <br>
Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten durch Dritte zur Übersendung von
nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit ausdrücklich widersprochen.
Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von
Werbeinformationen, etwa durch Spam-Mails, vor.<br>
</p><br>
Website Impressum erstellt durch <a href="https://www.impressum-generator.de">impressum-generator.de</a> von der <a
href="https://www.kanzlei-hasselbach.de/" rel="nofollow">Kanzlei Hasselbach</a>
</div>
</template>
View File
View File
View File
+18
View File
@@ -0,0 +1,18 @@
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
vueJsx(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})