diff --git a/index.html b/index.html index 99f203f..3c1bada 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,19 @@ - + Tauri + Vue + Typescript App + + + + + diff --git a/manifest.json b/manifest.json new file mode 100755 index 0000000..9de1eaa --- /dev/null +++ b/manifest.json @@ -0,0 +1,52 @@ +{ + "name": "Amedorf & Ritzenbergen", + "short_name": "ritzenbergen.de", + "theme_color": "#FFBF00", + "background_color": "#FE9A2E", + "display": "fullScreen", + "orientation": "portrait", + "scope": "/", + "start_url": "https://ritzenbergen.netlify.app/", + "icons": [ + { + "src": "images/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "images/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "images/icons/icon-128x128.png", + "sizes": "128x128", + "type": "image/png" + }, + { + "src": "images/icons/icon-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "images/icons/icon-152x152.png", + "sizes": "152x152", + "type": "image/png" + }, + { + "src": "images/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "images/icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "images/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 53ba0db..2cd7149 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,14 @@ "dependencies": { "@tauri-apps/api": "^2", "@tauri-apps/plugin-opener": "^2", + "jquery": "^3.7.1", "vue": "^3.5.13", "vue-router": "^4.5.0" }, "devDependencies": { "@tauri-apps/cli": "^2", "@vitejs/plugin-vue": "^5.2.1", + "sass-embedded": "^1.86.3", "typescript": "~5.6.2", "vite": "^6.0.3", "vue-tsc": "^2.1.10" @@ -67,6 +69,13 @@ "node": ">=6.9.0" } }, + "node_modules/@bufbuild/protobuf": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.5.tgz", + "integrity": "sha512-/g5EzJifw5GF8aren8wZ/G5oMuPoGeS6MQD3ca8ddcvdXR5UELUfdTZITCGNhNXynY/AYl3Z4plmxdj/tRl/hQ==", + "dev": true, + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", @@ -1230,6 +1239,20 @@ "balanced-match": "^1.0.0" } }, + "node_modules/buffer-builder": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", + "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", + "dev": true, + "license": "MIT/X11" + }, + "node_modules/colorjs.io": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", + "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", + "dev": true, + "license": "MIT" + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -1317,6 +1340,16 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -1327,6 +1360,19 @@ "he": "bin/he" } }, + "node_modules/immutable": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz", + "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "license": "MIT" + }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -1458,6 +1504,401 @@ "fsevents": "~2.3.2" } }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sass-embedded": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.86.3.tgz", + "integrity": "sha512-3pZSp24ibO1hdopj+W9DuiWsZOb2YY6AFRo/jjutKLBkqJGM1nJjXzhAYfzRV+Xn5BX1eTI4bBTE09P0XNHOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bufbuild/protobuf": "^2.0.0", + "buffer-builder": "^0.2.0", + "colorjs.io": "^0.5.0", + "immutable": "^5.0.2", + "rxjs": "^7.4.0", + "supports-color": "^8.1.1", + "sync-child-process": "^1.0.2", + "varint": "^6.0.0" + }, + "bin": { + "sass": "dist/bin/sass.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "sass-embedded-android-arm": "1.86.3", + "sass-embedded-android-arm64": "1.86.3", + "sass-embedded-android-ia32": "1.86.3", + "sass-embedded-android-riscv64": "1.86.3", + "sass-embedded-android-x64": "1.86.3", + "sass-embedded-darwin-arm64": "1.86.3", + "sass-embedded-darwin-x64": "1.86.3", + "sass-embedded-linux-arm": "1.86.3", + "sass-embedded-linux-arm64": "1.86.3", + "sass-embedded-linux-ia32": "1.86.3", + "sass-embedded-linux-musl-arm": "1.86.3", + "sass-embedded-linux-musl-arm64": "1.86.3", + "sass-embedded-linux-musl-ia32": "1.86.3", + "sass-embedded-linux-musl-riscv64": "1.86.3", + "sass-embedded-linux-musl-x64": "1.86.3", + "sass-embedded-linux-riscv64": "1.86.3", + "sass-embedded-linux-x64": "1.86.3", + "sass-embedded-win32-arm64": "1.86.3", + "sass-embedded-win32-ia32": "1.86.3", + "sass-embedded-win32-x64": "1.86.3" + } + }, + "node_modules/sass-embedded-android-arm": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.86.3.tgz", + "integrity": "sha512-UyeXrFzZSvrGbvrWUBcspbsbivGgAgebLGJdSqJulgSyGbA6no3DWQ5Qpdd6+OAUC39BlpPu74Wx9s4RrVuaFw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-arm64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.86.3.tgz", + "integrity": "sha512-q+XwFp6WgAv+UgnQhsB8KQ95kppvWAB7DSoJp+8Vino8b9ND+1ai3cUUZPE5u4SnLZrgo5NtrbPvN5KLc4Pfyg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-ia32": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.86.3.tgz", + "integrity": "sha512-gTJjVh2cRzvGujXj5ApPk/owUTL5SiO7rDtNLrzYAzi1N5HRuLYXqk3h1IQY3+eCOBjGl7mQ9XyySbJs/3hDvg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-riscv64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.86.3.tgz", + "integrity": "sha512-Po3JnyiCS16kd6REo1IMUbFGYtvL9O0rmKaXx5vOuBaJD1LPy2LiSSp7TU7wkJ9IxsTDGzFaSeP1I9qb6D8VVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-x64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.86.3.tgz", + "integrity": "sha512-+7h3jdDv/0kUFx0BvxYlq2fa7CcHiDPlta6k5OxO5K6jyqJwo9hc0Z052BoYEauWTqZ+vK6bB5rv2BIzq4U9nA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-arm64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.86.3.tgz", + "integrity": "sha512-EgLwV4ORm5Hr0DmIXo0Xw/vlzwLnfAiqD2jDXIglkBsc5czJmo4/IBdGXOP65TRnsgJEqvbU3aQhuawX5++x9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-x64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.86.3.tgz", + "integrity": "sha512-dfKhfrGPRNLWLC82vy/vQGmNKmAiKWpdFuWiePRtg/E95pqw+sCu6080Y6oQLfFu37Iq3MpnXiSpDuSo7UnPWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.86.3.tgz", + "integrity": "sha512-+fVCIH+OR0SMHn2NEhb/VfbpHuUxcPtqMS34OCV3Ka99LYZUJZqth4M3lT/ppGl52mwIVLNYzR4iLe6mdZ6mYA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.86.3.tgz", + "integrity": "sha512-tYq5rywR53Qtc+0KI6pPipOvW7a47ETY69VxfqI9BR2RKw2hBbaz0bIw6OaOgEBv2/XNwcWb7a4sr7TqgkqKAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-ia32": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.86.3.tgz", + "integrity": "sha512-CmQ5OkqnaeLdaF+bMqlYGooBuenqm3LvEN9H8BLhjkpWiFW8hnYMetiqMcJjhrXLvDw601KGqA5sr/Rsg5s45g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.86.3.tgz", + "integrity": "sha512-SEm65SQknI4pl+mH5Xf231hOkHJyrlgh5nj4qDbiBG6gFeutaNkNIeRgKEg3cflXchCr8iV/q/SyPgjhhzQb7w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.86.3.tgz", + "integrity": "sha512-4zOr2C/eW89rxb4ozTfn7lBzyyM5ZigA1ZSRTcAR26Qbg/t2UksLdGnVX9/yxga0d6aOi0IvO/7iM2DPPRRotg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-ia32": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.86.3.tgz", + "integrity": "sha512-84Tcld32LB1loiqUvczWyVBQRCChm0wNLlkT59qF29nxh8njFIVf9yaPgXcSyyjpPoD9Tu0wnq3dvVzoMCh9AQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-riscv64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.86.3.tgz", + "integrity": "sha512-IxEqoiD7vdNpiOwccybbV93NljBy64wSTkUOknGy21SyV43C8uqESOwTwW9ywa3KufImKm8L3uQAW/B0KhJMWg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.86.3.tgz", + "integrity": "sha512-ePeTPXUxPK6JgHcUfnrkIyDtyt+zlAvF22mVZv6y1g/PZFm1lSfX+Za7TYHg9KaYqaaXDiw6zICX4i44HhR8rA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-riscv64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.86.3.tgz", + "integrity": "sha512-NuXQ72dwfNLe35E+RaXJ4Noq4EkFwM65eWwCwxEWyJO9qxOx1EXiCAJii6x8kkOh5daWuMU0VAI1B9RsJaqqQQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-x64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.86.3.tgz", + "integrity": "sha512-t8be9zJ5B82+og9bQmIQ83yMGYZMTMrlGA+uGWtYacmwg6w3093dk91Fx0YzNSZBp3Tk60qVYjCZnEIwy60x0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-arm64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.86.3.tgz", + "integrity": "sha512-4ghuAzjX4q8Nksm0aifRz8hgXMMxS0SuymrFfkfJlrSx68pIgvAge6AOw0edoZoe0Tf5ZbsWUWamhkNyNxkTvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-ia32": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.86.3.tgz", + "integrity": "sha512-tCaK4zIRq9mLRPxLzBAdYlfCuS/xLNpmjunYxeWkIwlJo+k53h1udyXH/FInnQ2GgEz0xMXyvH3buuPgzwWYsw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-x64": { + "version": "1.86.3", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.86.3.tgz", + "integrity": "sha512-zS+YNKfTF4SnOfpC77VTb0qNZyTXrxnAezSoRV0xnw6HlY+1WawMSSB6PbWtmbvyfXNgpmJUttoTtsvJjRCucg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1467,6 +1908,52 @@ "node": ">=0.10.0" } }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/sync-child-process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", + "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sync-message-port": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/sync-message-port": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz", + "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", @@ -1481,6 +1968,13 @@ "node": ">=14.17" } }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "dev": true, + "license": "MIT" + }, "node_modules/vite": { "version": "6.2.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", diff --git a/package.json b/package.json index 67350f8..5074f02 100644 --- a/package.json +++ b/package.json @@ -12,12 +12,14 @@ "dependencies": { "@tauri-apps/api": "^2", "@tauri-apps/plugin-opener": "^2", + "jquery": "^3.7.1", "vue": "^3.5.13", "vue-router": "^4.5.0" }, "devDependencies": { "@tauri-apps/cli": "^2", "@vitejs/plugin-vue": "^5.2.1", + "sass-embedded": "^1.86.3", "typescript": "~5.6.2", "vite": "^6.0.3", "vue-tsc": "^2.1.10" diff --git a/scroll-gallery.js b/scroll-gallery.js new file mode 100755 index 0000000..4050128 --- /dev/null +++ b/scroll-gallery.js @@ -0,0 +1,22 @@ +localStorage.setItem("scroll-gallery","[]"); +document.querySelectorAll(".embla__viewport").forEach((el)=>{ + el.addEventListener("touchstart",listener(el)); + el.parentElement.querySelector(".embla__button--prev").addEventListener("click", listener(el)); + el.parentElement.querySelector(".embla__button--next").addEventListener("click", listener(el)); +}); + +function listener(el){ + return ()=>{var ids=JSON.parse(localStorage.getItem("scroll-gallery")); + var mbr=el; + do{ + mbr=mbr.parentElement; + }while(!mbr.classList.contains("mbr-embla")); + ids.push(mbr.id); + localStorage.setItem("scroll-gallery",JSON.stringify(ids)); + setTimeout(() => { + var ids=JSON.parse(localStorage.getItem("scroll-gallery")); + var i=ids.indexOf(mbr.id); + ids.splice(i,1); + localStorage.setItem("scroll-gallery",JSON.stringify(ids)); + }, 4000);} +} \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 544c03d..ca08faa 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,34 @@ - - \ No newline at end of file diff --git a/src/Main.vue b/src/Main.vue new file mode 100644 index 0000000..fb6ce1a --- /dev/null +++ b/src/Main.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/Navbar.vue b/src/Navbar.vue new file mode 100644 index 0000000..24ea75c --- /dev/null +++ b/src/Navbar.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/assets/RitzenbergenOrtsschild.png b/src/assets/RitzenbergenOrtsschild.png new file mode 100755 index 0000000..02cc324 Binary files /dev/null and b/src/assets/RitzenbergenOrtsschild.png differ diff --git a/src/assets/bulitipp.js b/src/assets/bulitipp.js new file mode 100755 index 0000000..66bf839 --- /dev/null +++ b/src/assets/bulitipp.js @@ -0,0 +1,89 @@ +function ts(user, callback, spieltag) { + $.ajax("punkteRechnen.php", { + method: "GET", + success: callback, + data: { name: user, spieltag: spieltag }, + async: true + }); +} +$(document).ready(() => { + const table = document.querySelector("#rangliste-sektion table"); + var rows = table.querySelectorAll("tr"); + + rows.forEach((row, i, array) => { + if (i == 0) return; + var user = row + .querySelectorAll("td")[1] + .querySelector(".openBtn").innerHTML; + var callback = (response) => { + row.querySelectorAll("td")[2].innerHTML = response; + document.getElementById("uebersicht-user-" + user).querySelector(".openBtn").innerHTML = response; + + sortTable(); + table.querySelectorAll("tr").forEach((row, i, array) => { + if (i == 0) return; + row.querySelectorAll("td")[0].innerHTML = i; + }); + }; + ts(user, callback); + }); + + function sortTable() { + var switching, i, x, y, shouldSwitch; + switching = true; + /*Make a loop that will continue until + no switching has been done:*/ + while (switching) { + //start by saying: no switching is done: + switching = false; + rows = table.rows; + /*Loop through all table rows (except the + first, which contains table headers):*/ + for (i = 1; i < rows.length - 1; i++) { + //start by saying there should be no switching: + shouldSwitch = false; + /*Get the two elements you want to compare, + one from current row and one from the next:*/ + x = rows[i].getElementsByTagName("TD")[2]; + y = rows[i + 1].getElementsByTagName("TD")[2]; + //check if the two rows should switch place: + if (parseInt(x.innerHTML) < parseInt(y.innerHTML)) { + //if so, mark as a switch and break the loop: + shouldSwitch = true; + break; + } + } + if (shouldSwitch) { + /*If a switch has been marked, make the switch + and mark that a switch has been done:*/ + rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); + switching = true; + } + } + } +}); + +document.querySelector("#load-table-btn").addEventListener("click",(ev) => { + ev.target.parentElement.style.display="none"; + document.querySelector(".buli-table").classList.add("scroll-x"); + const table = document.querySelector("#buli-table table"); + let tds=[]; + var rows = table.querySelectorAll("tr"); + rows.forEach((row, i, array) => { + if (i == 0) return; + var spieltag = row.querySelectorAll("td")[0].innerHTML; + if (spieltag == "Summe") spieltag = undefined; + row.querySelectorAll("td").forEach((td, j, array) => { + if (j == 0) return; + var user = rows[0].querySelectorAll("td")[j].innerHTML; + tds.push({"td":td,"user":user,"spieltag":spieltag}); + }); + }); + let callback=(tds,i,limit)=>{ + ts(tds[i].user,(response)=>{ + tds[i].td.innerHTML=response; + if(i { + const hashArray = Array.from(new Uint8Array(hashBuffer)); + const hashHex = hashArray + .map((bytes) => bytes.toString(16).padStart(2, "0")) + .join(""); + return hashHex; + }); +} + +document.querySelector("#loginform").addEventListener("submit",(ev)=>{ + hash(ev.target.querySelector("#password-input").value).then((hashed)=>{ + ev.target.querySelector("#password-input").value=hashed; + ev.target.submit(); + ev.target.parentElement.style.display="none"; + document.getElementById(ev.target.dataset.id).parentElement.style.display="block"; + }); +}); + +document.querySelector("#logoutButton").addEventListener("click",(ev)=>{ + document.querySelectorAll("#loginform input.clear").forEach((el)=>{ + el.value=""; + }); + document.querySelector("#loginform").parentElement.style.display="block"; + ev.target.parentElement.querySelector("#tippenIframeContainer").style.display="none"; +}); \ No newline at end of file diff --git a/src/assets/lazyloading.css b/src/assets/lazyloading.css new file mode 100755 index 0000000..7cedad6 --- /dev/null +++ b/src/assets/lazyloading.css @@ -0,0 +1 @@ +img{-webkit-transform:scale(1);transform:scale(1);opacity:1}img.lazy-loading{opacity:0;-webkit-transform:scale(0);transform:scale(0)} diff --git a/src/assets/lazyloading.js b/src/assets/lazyloading.js new file mode 100755 index 0000000..bcbeb3a --- /dev/null +++ b/src/assets/lazyloading.js @@ -0,0 +1,16 @@ +const lazyClass = 'lazy-loading'; +const lazyImages = document.querySelectorAll(`.${lazyClass}`); + +const lazyObserver = new IntersectionObserver((elements) => { + elements.forEach((element) => { + if (element.isIntersecting) { + const image = element.target; + image.src=image.dataset.src; + lazyObserver.unobserve(image); + } + }) +}) + +lazyImages.forEach(image => { + lazyObserver.observe(image); +}) diff --git a/src/assets/main.js b/src/assets/main.js new file mode 100755 index 0000000..5a839ef --- /dev/null +++ b/src/assets/main.js @@ -0,0 +1,47 @@ +const modalOpenBtnClass="modal-open-btn"; +const modalClass="eventmodal"; +const modalCloseBtnClass="modal-close-btn"; + + +function openmodal(ev){ + var target=ev.currentTarget; + var id=target.dataset.id; + document.querySelector(`.${modalClass}${id}`).style.display="block"; +} + +function closemodal(ev){ + ev.currentTarget.parentElement.parentElement.style.display="none"; +} + +var modalOpenBtns=document.querySelectorAll(`.${modalOpenBtnClass}`); +modalOpenBtns.forEach((element)=>{ + element.addEventListener("click",openmodal); +}); +var modalCloseBtns=document.querySelectorAll(`.${modalCloseBtnClass}`); +modalCloseBtns.forEach((element)=>{ + element.addEventListener("click",closemodal); +}); +document.querySelectorAll(".js-link").forEach((element)=>{ + element.addEventListener("click",(ev)=>{ + window.location.href=ev.currentTarget.dataset.href; + }) +}); +document.querySelectorAll(".formular-submit-button").forEach((btn)=>{ + btn.addEventListener("click",(ev)=>{ + var form=ev.currentTarget.parentElement.parentElement.parentElement; + var input1=form.querySelector('[name="name"]'); + var input2=form.querySelector('[name="textarea"]'); + var formid=form.querySelector('[name="id"]').value; + var text1=input1.value; + var text2=input2.value; + input1.value=""; + input2.value=""; + $.ajax("formularergebnisse-eintragen.php",{ + method: "post", + complete: (res)=>{ + window.location.reload(); + }, + data: {"id": formid, "name": text1, "textarea":text2} + }); + }); +}); diff --git a/src/assets/mobirise/css/additional.scss b/src/assets/mobirise/css/additional.scss new file mode 100644 index 0000000..ff20999 --- /dev/null +++ b/src/assets/mobirise/css/additional.scss @@ -0,0 +1,781 @@ +// SCSS-Variablen +$background: #FCFCF8; +$dominant-color: #DDE5B6; +$primary-color: #A98467; +$secondary-color: #6C584C; +$success-color: #23BA74; +$danger-color: #BC2130; +$warning-color: #DDA600; +$info-color: #0BB0D2; +$background-text: #000000; +$dominant-text: #000000; +$primary-text: #000000; +$secondary-text: #FFFFFF; +$success-text: #FFFFFF; +$danger-text: #FFFFFF; +$warning-text: #000000; +$info-text: #FFFFFF; + +.btn { + border-width: 2px; +} +img, +.card-wrap, +.card-wrapper, +.video-wrapper, +.mbr-figure iframe, +.google-map iframe, +.slide-content, +.plan, +.card, +.item-wrapper { + border-radius: 2rem !important; +} +.video-wrapper { + overflow: hidden; +} +body { + font-family: var(--display1-font, 'Inter Tight'); + background: color-mix(in srgb, $dominant-color 10%, transparent); +} + +.display-1 { + font-family: var(--display1-font); + font-size: calc(var(--display1-size, 5) * 1rem); + line-height: 1; +} +.display-2 { + font-family: var(--display2-font); + font-size: calc(var(--display2-size, 4) * 1rem); + line-height: 1.1; +} +.display-4 { + font-family: var(--display4-font); + font-size: calc(var(--display4-size, 1.4) * 1rem); + line-height: 1.5; +} +.display-5 { + font-family: var(--display5-font); + font-size: calc(var(--display5-size, 2) * 1rem); + line-height: 1.5; +} +.display-7 { + font-family: var(--display7-font); + font-size: calc(var(--display7-size, 1.4) * 1rem); + line-height: 1.5; +} + +.display-1 > .mbr-iconfont { + font-size: calc(var(--display1-size, 5) * 1.25rem); +} +.display-2 > .mbr-iconfont { + font-size: calc(var(--display2-size, 4) * 1.25rem); +} +.display-4 > .mbr-iconfont { + font-size: calc(var(--display4-size, 1.4) * 1.25rem); +} +.display-5 > .mbr-iconfont { + font-size: calc(var(--display5-size, 2) * 1.25rem); +} +.display-7 > .mbr-iconfont { + font-size: calc(var(--display7-size, 1.4) * 1.25rem); +} +/* ---- Fluid typography for mobile devices ---- */ +/* 1.4 - font scale ratio ( bootstrap == 1.42857 ) */ +/* 100vw - current viewport width */ +/* (48 - 20) 48 == 48rem == 768px, 20 == 20rem == 320px(minimal supported viewport) */ +/* 0.65 - min scale variable, may vary */ +@media (max-width: 992px) { + .display-1 { + font-size: calc(var(--display1-size, 5) * 0.8rem); + } +} +@media (max-width: 768px) { + .display-1 { + --display1-size_min: calc(var(--display1-size, 5) - (var(--display1-size, 5) - 1) * 0.65); + font-size: calc(var(--display1-size, 5) * 0.7rem); + font-size: calc(var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 20rem) / (48 - 20))); + line-height: calc(1.1 * (var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 20rem) / (48 - 20)))); + } + .display-2 { + --display2-size_min: calc(var(--display2-size, 4) - (var(--display2-size, 4) - 1) * 0.65); + font-size: calc(var(--display2-size, 4) * 0.8rem); + font-size: calc(var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 20rem) / (48 - 20))); + line-height: calc(1.3 * (var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 20rem) / (48 - 20)))); + } + .display-4 { + --display4-size_min: calc(var(--display4-size, 1.4) - (var(--display4-size, 1.4) - 1) * 0.65); + font-size: calc(var(--display4-size, 1.4) * 0.8rem); + font-size: calc(var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 20rem) / (48 - 20))); + line-height: calc(1.4 * (var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 20rem) / (48 - 20)))); + } + .display-5 { + --display5-size_min: calc(var(--display5-size, 2) - (var(--display5-size, 2) - 1) * 0.65); + font-size: calc(var(--display5-size, 2) * 0.8rem); + font-size: calc(var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 20rem) / (48 - 20))); + line-height: calc(1.4 * (var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 20rem) / (48 - 20)))); + } + .display-7 { + --display7-size_min: calc(var(--display7-size, 1.4) - (var(--display7-size, 1.4) - 1) * 0.65); + font-size: calc(var(--display7-size, 1.4) * 0.8rem); + font-size: calc(var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 20rem) / (48 - 20))); + line-height: calc(1.4 * (var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 20rem) / (48 - 20)))); + } +} + +@media (min-width: 992px) and (max-width: 1400px) { + .display-1 { + --display1-size_min: calc(var(--display1-size, 5) - (var(--display1-size, 5) - 1) * 0.65); + font-size: calc(var(--display1-size, 5) * 0.7rem); + font-size: calc(var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 62rem) / (87 - 62))); + line-height: calc( 1.1 * (var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 62rem) / (87 - 62)))); + } + + .display-2 { + --display2-size_min: calc(var(--display2-size, 4) - (var(--display2-size, 4) - 1) * 0.65); + font-size: calc(var(--display2-size, 4) * 0.8rem); + font-size: calc(var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 62rem) / (87 - 62))); + line-height: calc(1.3 * (var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 62rem) / (87 - 62)))); + } + + .display-4 { + --display4-size_min: calc(var(--display4-size, 1.4) - (var(--display4-size, 1.4) - 1) * 0.65); + font-size: calc(var(--display4-size, 1.4) * 0.8rem); + font-size: calc(var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 62rem) / (87 - 62))); + line-height: calc(1.4 * (var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 62rem) / (87 - 62)))); + } + + .display-5 { + --display5-size_min: calc(var(--display5-size, 2) - (var(--display5-size, 2) - 1) * 0.65); + font-size: calc(var(--display5-size, 2) * 0.8rem); + font-size: calc(var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 62rem) / (87 - 62))); + line-height: calc(1.4 * (var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 62rem) / (87 - 62)))); + } + + .display-7 { + --display7-size_min: calc(var(--display7-size, 1.4) - (var(--display7-size, 1.4) - 1) * 0.65); + font-size: calc(var(--display7-size, 1.4) * 0.8rem); + font-size: calc(var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 62rem) / (87 - 62))); + line-height: calc(1.4 * (var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 62rem) / (87 - 62)))); + } +} +/* Buttons */ +.btn { + padding: 1.25rem 2rem; + border-radius: 4px; +} +@media (max-width: 767px) { + .btn { + padding: 0.75rem 1.5rem; + } +} +.btn-sm { + padding: 0.6rem 1.2rem; + border-radius: 4px; +} +.btn-md { + padding: 0.6rem 1.2rem; + border-radius: 4px; +} +.btn-lg { + padding: 1.25rem 2rem; + border-radius: 4px; +} +.bg-primary { + background-color: $primary-color !important; +} +.btn-secondary { + background-color: $secondary-color !important; +} +.bg-success { + background-color: $success-color !important; +} +.bg-info { + background-color: $info-color !important; +} +.bg-warning { + background-color: $warning-color !important; +} +.bg-danger { + background-color: $danger-color !important; +} +.btn-primary, +.btn-primary:active { + background-color: $primary-color !important; + border-color: $primary-color !important; + color: $primary-text !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary.active { + color: inherit; + background-color: color-mix(in srgb,$primary-color,#000 20%) !important; + border-color: color-mix(in srgb,$primary-color,#000 20%) !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-primary.disabled, +.btn-primary:disabled { + color: $primary-text !important; + background-color: color-mix(in srgb,$primary-color,#000 40%) !important; + border-color: color-mix(in srgb,$primary-color,#000 40%) !important; +} +.btn-secondary, +.btn-secondary:active { + background-color: $secondary-color !important; + border-color: $secondary-color !important; + color: $secondary-text !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-secondary:hover, +.btn-secondary:focus, +.btn-secondary.focus, +.btn-secondary.active { + color: inherit; + background-color: color-mix(in srgb,$secondary-color,#000 20%) !important; + border-color: color-mix(in srgb,$secondary-color,#000 20%) !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-secondary.disabled, +.btn-secondary:disabled { + color: $secondary-text !important; + background-color: color-mix(in srgb,$secondary-color,#000 40%) !important; + border-color: color-mix(in srgb,$secondary-color,#000 40%) !important; +} +.btn-info, +.btn-info:active { + background-color: $info-color !important; + border-color: $info-color !important; + color: $info-text !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info.active { + color: inherit; + background-color: color-mix(in srgb,$info-color,#000 20%) !important; + border-color: color-mix(in srgb,$info-color,#000 20%) !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-info.disabled, +.btn-info:disabled { + color: $info-text !important; + background-color: color-mix(in srgb,$info-color,#000 40%) !important; + border-color: color-mix(in srgb,$info-color,#000 40%) !important; +} +.btn-success, +.btn-success:active { + background-color: $success-color !important; + border-color: $success-color !important; + color: $success-text !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success.active { + color: inherit; + background-color: color-mix(in srgb,$success-color,#000 20%) !important; + border-color: color-mix(in srgb,$success-color,#000 20%) !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-success.disabled, +.btn-success:disabled { + color: $success-text !important; + background-color: color-mix(in srgb,$success-color,#000 40%) !important; + border-color: color-mix(in srgb,$success-color,#000 40%) !important; +} +.btn-warning, +.btn-warning:active { + background-color: $warning-color !important; + border-color: $warning-color !important; + color: $warning-text !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning.active { + color: inherit; + background-color: color-mix(in srgb,$warning-color,#000 20%) !important; + border-color: color-mix(in srgb,$warning-color,#000 20%) !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-warning.disabled, +.btn-warning:disabled { + color: $warning-text !important; + background-color: color-mix(in srgb,$warning-color,#000 40%) !important; + border-color: color-mix(in srgb,$warning-color,#000 40%) !important; +} +.btn-danger, +.btn-danger:active { + background-color: $danger-color !important; + border-color: $danger-color !important; + color: $danger-text !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger.active { + color: inherit; + background-color: color-mix(in srgb,$danger-color,#000 20%) !important; + border-color: color-mix(in srgb,$danger-color,#000 20%) !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-danger.disabled, +.btn-danger:disabled { + color: $danger-text !important; + background-color: color-mix(in srgb,$danger-color,#000 40%) !important; + border-color: color-mix(in srgb,$danger-color,#000 40%) !important; +} +.btn-white, +.btn-white:active { + background-color: #fafafa !important; + border-color: #fafafa !important; + color: #7a7a7a !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-white:hover, +.btn-white:focus, +.btn-white.focus, +.btn-white.active { + color: #4f4f4f !important; + background-color: #cfcfcf !important; + border-color: #cfcfcf !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-white.disabled, +.btn-white:disabled { + color: #7a7a7a !important; + background-color: #cfcfcf !important; + border-color: #cfcfcf !important; +} +.btn-black, +.btn-black:active { + background-color: #232323 !important; + border-color: #232323 !important; + color: #ffffff !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2); +} +.btn-black:hover, +.btn-black:focus, +.btn-black.focus, +.btn-black.active { + color: #ffffff !important; + background-color: #000000 !important; + border-color: #000000 !important; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2); +} +.btn-black.disabled, +.btn-black:disabled { + color: #ffffff !important; + background-color: #000000 !important; + border-color: #000000 !important; +} +.btn-primary-outline, +.btn-primary-outline:active { + background-color: transparent !important; + border-color: $primary-color; + color: $primary-color; +} +.btn-primary-outline:hover, +.btn-primary-outline:focus, +.btn-primary-outline.focus, +.btn-primary-outline.active { + color: color-mix(in srgb,$primary-color,#000 20%) !important; + background-color: transparent!important; + border-color: color-mix(in srgb,$primary-color,#000 20%) !important; + box-shadow: none!important; +} +.btn-primary-outline.disabled, +.btn-primary-outline:disabled { + color: $primary-text !important; + background-color: color-mix(in srgb,$primary-color,#000 40%) !important; + border-color: color-mix(in srgb,$primary-color,#000 40%) !important; +} +.btn-secondary-outline, +.btn-secondary-outline:active { + background-color: transparent !important; + border-color: $secondary-color; + color: $secondary-color; +} +.btn-secondary-outline:hover, +.btn-secondary-outline:focus, +.btn-secondary-outline.focus, +.btn-secondary-outline.active { + color: color-mix(in srgb,$secondary-color,#000 20%) !important; + background-color: transparent!important; + border-color: color-mix(in srgb,$secondary-color,#000 20%) !important; + box-shadow: none!important; +} +.btn-secondary-outline.disabled, +.btn-secondary-outline:disabled { + color: $secondary-text !important; + background-color: color-mix(in srgb,$secondary-color,#000 40%) !important; + border-color: color-mix(in srgb,$secondary-color,#000 40%) !important; +} +.btn-info-outline, +.btn-info-outline:active { + background-color: transparent !important; + border-color: $info-color; + color: $info-color; +} +.btn-info-outline:hover, +.btn-info-outline:focus, +.btn-info-outline.focus, +.btn-info-outline.active { + color: color-mix(in srgb,$info-color,#000 20%) !important; + background-color: transparent!important; + border-color: color-mix(in srgb,$info-color,#000 20%) !important; + box-shadow: none!important; +} +.btn-info-outline.disabled, +.btn-info-outline:disabled { + color: $info-text !important; + background-color: color-mix(in srgb,$info-color,#000 40%) !important; + border-color: color-mix(in srgb,$info-color,#000 40%) !important; +} +.btn-success-outline, +.btn-success-outline:active { + background-color: transparent !important; + border-color: $success-color; + color: $success-color; +} +.btn-success-outline:hover, +.btn-success-outline:focus, +.btn-success-outline.focus, +.btn-success-outline.active { + color: color-mix(in srgb,$success-color,#000 20%) !important; + background-color: transparent!important; + border-color: color-mix(in srgb,$success-color,#000 20%) !important; + box-shadow: none!important; +} +.btn-success-outline.disabled, +.btn-success-outline:disabled { + color: $success-text !important; + background-color: color-mix(in srgb,$success-color,#000 40%) !important; + border-color: color-mix(in srgb,$success-color,#000 40%) !important; +} +.btn-warning-outline, +.btn-warning-outline:active { + background-color: transparent !important; + border-color: $warning-color; + color: $warning-color; +} +.btn-warning-outline:hover, +.btn-warning-outline:focus, +.btn-warning-outline.focus, +.btn-warning-outline.active { + color: color-mix(in srgb,$warning-color,#000 20%) !important; + background-color: transparent!important; + border-color: color-mix(in srgb,$warning-color,#000 20%) !important; + box-shadow: none!important; +} +.btn-warning-outline.disabled, +.btn-warning-outline:disabled { + color: $warning-text !important; + background-color: color-mix(in srgb,$warning-color,#000 40%) !important; + border-color: color-mix(in srgb,$warning-color,#000 40%) !important; +} +.btn-danger-outline, +.btn-danger-outline:active { + background-color: transparent !important; + border-color: $danger-color; + color: $danger-color; +} +.btn-danger-outline:hover, +.btn-danger-outline:focus, +.btn-danger-outline.focus, +.btn-danger-outline.active { + color: color-mix(in srgb,$danger-color,#000 20%) !important; + background-color: transparent!important; + border-color: color-mix(in srgb,$danger-color,#000 20%) !important; + box-shadow: none!important; +} +.btn-danger-outline.disabled, +.btn-danger-outline:disabled { + color: $danger-text !important; + background-color: color-mix(in srgb,$danger-color,#000 40%) !important; + border-color: color-mix(in srgb,$danger-color,#000 40%) !important; +} +.btn-black-outline, +.btn-black-outline:active { + background-color: transparent !important; + border-color: #232323; + color: #232323; +} +.btn-black-outline:hover, +.btn-black-outline:focus, +.btn-black-outline.focus, +.btn-black-outline.active { + color: #000000 !important; + background-color: transparent!important; + border-color: #000000 !important; + box-shadow: none!important; +} +.btn-black-outline.disabled, +.btn-black-outline:disabled { + color: #ffffff !important; + background-color: #232323 !important; + border-color: #232323 !important; +} +.btn-white-outline, +.btn-white-outline:active { + background-color: transparent !important; + border-color: #fafafa; + color: #fafafa; +} +.btn-white-outline:hover, +.btn-white-outline:focus, +.btn-white-outline.focus, +.btn-white-outline.active { + color: #cfcfcf !important; + background-color: transparent!important; + border-color: #cfcfcf !important; + box-shadow: none!important; +} +.btn-white-outline.disabled, +.btn-white-outline:disabled { + color: #7a7a7a !important; + background-color: #fafafa !important; + border-color: #fafafa !important; +} +.text-primary { + color: $primary-text !important; +} +.text-secondary { + color: $secondary-text !important; +} +.text-success { + color: $success-text !important; +} +.text-info { + color: $info-text !important; +} +.text-warning { + color: $warning-text !important; +} +.text-danger { + color: $danger-text !important; +} +.text-white { + color: #fafafa !important; +} +.text-black { + color: #232323 !important; +} +a.text-primary:hover, +a.text-primary:focus, +a.text-primary.active { + color: color-mix(in srgb,$primary-color,#000 20%); +} +a.text-secondary:hover, +a.text-secondary:focus, +a.text-secondary.active { + color: color-mix(in srgb,$secondary-color,#000 20%); +} +a.text-success:hover, +a.text-success:focus, +a.text-success.active { + color: color-mix(in srgb,$success-color,#000 20%); +} +a.text-info:hover, +a.text-info:focus, +a.text-info.active { + color: color-mix(in srgb,$info-color,#000 20%); +} +a.text-warning:hover, +a.text-warning:focus, +a.text-warning.active { + color: color-mix(in srgb,$warning-color,#000 20%); +} +a.text-danger:hover, +a.text-danger:focus, +a.text-danger.active { + color: color-mix(in srgb,$danger-color,#000 20%); +} +a.text-white:hover, +a.text-white:focus, +a.text-white.active { + color: color-mix(in srgb,#fafafa,#000 20%); +} +a.text-black:hover, +a.text-black:focus, +a.text-black.active { + color: color-mix(in srgb,#232323,#000 20%); +} +body[data-underlined-links="true"] a[class*="text-"]:not(.nav-link):not(.dropdown-item):not([role]):not(.navbar-caption){ + transition: 0.2s; + position: relative; + background-image: linear-gradient(currentColor 50%, currentColor 50%); + background-size: 10000px 2px; + background-repeat: no-repeat; + background-position: 0 1.2em; +} +body[data-underlined-links="false"] a[class*="text-"]:not(.nav-link):not(.dropdown-item):not([role]):not(.navbar-caption){ + position: relative; + background-image: transparent; + background-size: 10000px 2px; + background-repeat: no-repeat; + background-position: 0px 1.2em; + background-position: -10000px 1.2em; +} +body[data-underlined-links="false"] a[class*="text-"]:not(.nav-link):not(.dropdown-item):not([role]):not(.navbar-caption):hover{ + transition: background-position 2s ease-in-out; + background-image: linear-gradient(currentColor 50%, currentColor 50%); + background-position: 0px 1.2em; +} +body[data-is-rounded-buttons="true"] .nav-tabs .nav-link { + border-radius: 100px !important; +} +.nav-tabs .nav-link.active { + color: $primary-color; +} +.nav-tabs .nav-link:not(.active) { + color: #232323; +} +.alert-success { + background-color: $success-color; +} +.alert-info { + background-color: $info-color; +} +.alert-warning { + background-color: $warning-color; +} +.alert-danger { + background-color: $danger-color; +} + +.mbr-section-btn .btn:not(.btn-form) { + border-radius: 100px; +} +.mbr-gallery-filter li a { + border-radius: 100px !important; +} + +.mbr-gallery-filter li.active .btn { + background-color: $primary-color; + border-color: $primary-color; + color: #ffffff; +} +.mbr-gallery-filter li.active .btn:focus { + box-shadow: none; +} + +a, +a:hover { + color: $primary-color; +} + +:root[data-is-scroll-to-top-buttons="true"][data-is-rounded-buttons="true"] #scrollToTop a{ + border-radius: 100px; +} +:root[data-is-scroll-to-top-buttons="false"] .scrollToTop_wraper{ + display: none; +} + +.form-control { + font-family: var(--display1-font); + font-size: 1.4rem; + line-height: 1.3; + font-weight: 400; + border-radius: 40px !important; +} +.form-control > .mbr-iconfont { + font-size: 1.375rem; +} +.form-control:hover, +.form-control:focus { + box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px 0px, rgba(0, 0, 0, 0.07) 0px 1px 3px 0px, rgba(0, 0, 0, 0.03) 0px 0px 0px 1px; + border-color: $primary-color !important; +} +.form-control:-webkit-input-placeholder { + font-family: var(--display1-font); + font-size: 1.1rem; + line-height: 1.5; + font-weight: 400; +} +.form-control:-webkit-input-placeholder > .mbr-iconfont { + font-size: 1.375rem; +} +blockquote { + border-color: $primary-color; +} +/* Forms */ +.jq-selectbox li:hover, +.jq-selectbox li.selected { + background-color: $primary-color; + color: #ffffff; +} +.jq-number__spin { + transition: 0.25s ease; +} +.jq-number__spin:hover { + border-color: $primary-color; +} +.jq-selectbox .jq-selectbox__trigger-arrow, +.jq-number__spin.minus:after, +.jq-number__spin.plus:after { + transition: 0.4s; + border-top-color: #353535; + border-bottom-color: #353535; +} +.jq-selectbox:hover .jq-selectbox__trigger-arrow, +.jq-number__spin.minus:hover:after, +.jq-number__spin.plus:hover:after { + border-top-color: $primary-color; + border-bottom-color: $primary-color; +} +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default, +.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box > div > div.xdsoft_current { + color: #ffffff !important; + background-color: $primary-color !important; + box-shadow: none !important; +} +.xdsoft_datetimepicker .xdsoft_calendar td:hover, +.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box > div > div:hover { + color: #000000 !important; + background: $secondary-color !important; + box-shadow: none !important; +} +.lazy-bg { + background-image: none !important; +} +.lazy-placeholder:not(section), +.lazy-none { + display: block; + position: relative; + padding-bottom: 56.25%; + width: 100%; + height: auto; +} +iframe.lazy-placeholder, +.lazy-placeholder:after { + content: ''; + position: absolute; + width: 200px; + height: 200px; + background: transparent no-repeat center; + background-size: contain; + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); + background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='32' height='32' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' stroke='%236592e6' %3e%3cg fill='none' fill-rule='evenodd'%3e%3cg transform='translate(16 16)' stroke-width='2'%3e%3ccircle stroke-opacity='.5' cx='16' cy='16' r='16'/%3e%3cpath d='M32 16c0-9.94-8.06-16-16-16'%3e%3canimateTransform attributeName='transform' type='rotate' from='0 16 16' to='360 16 16' dur='1s' repeatCount='indefinite'/%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/svg%3e"); +} +section.lazy-placeholder:after { + opacity: 0.5; +} +body, html { + overflow-x: hidden; +} +a { + transition: color 0.6s; +} +.mbr-fullscreen{ + overflow: hidden; +} \ No newline at end of file diff --git a/src/assets/modal.css b/src/assets/modal.css new file mode 100755 index 0000000..896a395 --- /dev/null +++ b/src/assets/modal.css @@ -0,0 +1,98 @@ +.modal { + margin: auto; + justify-content: center; + text-align: center; + position: fixed; + top: 0; + /* Positioniert das Modal oben im Viewport */ + left: 0; + /* Positioniert das Modal links im Viewport */ + right: 0; + /* Erweitert das Modal auf die gesamte Breite */ + bottom: 0; + /* Erweitert das Modal auf die gesamte Höhe */ + + /* Bringt das Modal in den Vordergrund */ + + font-size: medium; + overflow: hidden; + width: 100%; + height: 100%; + align-items: center; + z-index: 1000; + display: none; + background-color: rgba(255,255,255,0.5); + + } + + .openBtn{ + cursor: pointer; + } + .modal-content { + background-color: #ffffff; + /* Hintergrundfarbe des Inhalts */ + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); + /* Schatten */ + border: none; + /* Entferne den Rahmen */ + /* margin: 15% auto; */ + + height: 100%; + padding: 20px; + border-radius: 10px; + width: 100%; + height: 70%; + overflow-y: scroll; + margin-top: 5%; + max-width: 800px; + } + + .close, .closeBtn { + color: #4CAF50; + font-size: 28px; + font-weight: bold; + text-align: left; + width: 30px; + padding-left: 5px; + } + + .close:hover, + .close:focus, .closeBtn:hover, .closeBtn:focus { + color: red; + cursor: pointer; + } + + + /* @media (max-width: 768px) { + + .modal { + max-width: 100vw; + } + + .modal-content { + max-width: 100vw; + } + } */ + + + + + #tippenIframeContainer{ + height: 50vh; + display: none; + + } + + iframe{ + height: 100%; + } + + + + .modalNichtScrollbar { + overflow-y: hidden; + } + + .modal-content { + z-index: 1500; + } \ No newline at end of file diff --git a/src/assets/modal.js b/src/assets/modal.js new file mode 100755 index 0000000..483af9a --- /dev/null +++ b/src/assets/modal.js @@ -0,0 +1,37 @@ +document.querySelectorAll(".modal-container").forEach((element)=>{ + if(element.querySelector(".openBtn")==null){ + document.getElementById(element.dataset.id).addEventListener("click",(ev)=>{ + var btn=ev.target; + var modal=document.getElementById(btn.dataset.id); + var content=modal.querySelector(".modal"); + content.style.display="flex"; + }); + }else{ + element.querySelector(".openBtn").addEventListener("click",(ev)=>{ + var btn=ev.target + var modal=btn; + do{ + modal=modal.parentElement; + }while(!modal.classList.contains("modal-container")); + var content=modal.querySelector(".modal"); + content.style.display="flex"; + }); +} + element.querySelector(".closeBtn").addEventListener("click",(ev)=>{ + var btn=ev.target; + var modal=btn.parentElement.parentElement.parentElement; + var content=modal.querySelector(".modal"); + content.style.display="none"; + }); +}); + +document.querySelector("#eventmodals").querySelectorAll(".closelink").forEach((el)=> { + el.addEventListener("click",(ev)=>{ + let div=ev.target; + while(!div.classList.contains("modal-content")){ + div=div.parentElement; + } + console.log(div.querySelector(".close")); + div.querySelector(".close").click(); + }); +}); \ No newline at end of file diff --git a/src/assets/theme/css/style.css b/src/assets/theme/css/style.css index 2aa1223..3def8b3 100755 --- a/src/assets/theme/css/style.css +++ b/src/assets/theme/css/style.css @@ -1,4 +1,5 @@ @charset "UTF-8"; + section { background-color: #ffffff; } diff --git a/src/main.ts b/src/main.ts index b670de8..3f0fb84 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,7 @@ import { createApp } from "vue"; import App from "./App.vue"; +import router from "./router"; -createApp(App).mount("#app"); +createApp(App) +.use(router) +.mount("#app"); diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..f112835 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,11 @@ +import { createMemoryHistory, createRouter } from 'vue-router' + + +const routes = [ + { path: '/', component: () => import('../Main.vue') } +] + +export default createRouter({ + history: createMemoryHistory(), + routes, +}); \ No newline at end of file diff --git a/tippen.js b/tippen.js new file mode 100755 index 0000000..0956d51 --- /dev/null +++ b/tippen.js @@ -0,0 +1,24 @@ +function tippen(json){ + $.ajax("tippeintragen.php",{ + method: "get", + data: {user: username, pass: password, spieltag: spieltag, tipp: json}, + complete: (response)=>{ + if(response.responseText!="") window.alert(response.responseText); + window.location.href=returnurl; + } + }); +} + + +document.querySelector("#mainform").addEventListener("submit",(ev)=>{ + var json=[]; + var heim=""; + var mannschaft1=1; + document.querySelectorAll("span.paarung").forEach((element)=>{ + paarungTipp={}; + paarungTipp[element.querySelectorAll(".team-name")[0].innerHTML]=element.querySelectorAll("input")[0].value; + paarungTipp[element.querySelectorAll(".team-name")[1].innerHTML]=element.querySelectorAll("input")[1].value; + json.push(paarungTipp); + }); + tippen(json); +});