Update dependencies and refactor routing: Upgrade Tiptap extensions to version 3.22.2 in package.json and package-lock.json. Enhance router configuration by introducing route names for better maintainability and adding new core routes for home, terms, and privacy policy. Adjust HTML asset references for improved loading efficiency.

This commit is contained in:
Torsten Schulz (local)
2026-04-08 09:34:51 +02:00
parent 597c8ceffe
commit 80eef53670
94 changed files with 711 additions and 283 deletions

460
package-lock.json generated
View File

@@ -9,22 +9,22 @@
"version": "1.1.0",
"dependencies": {
"@iconoir/vue": "^7.7.0",
"@tiptap/extension-bold": "^2.4.0",
"@tiptap/extension-bullet-list": "^2.4.0",
"@tiptap/extension-color": "^2.4.0",
"@tiptap/extension-heading": "^2.4.0",
"@tiptap/extension-italic": "^2.4.0",
"@tiptap/extension-link": "^2.4.0",
"@tiptap/extension-ordered-list": "^2.4.0",
"@tiptap/extension-strike": "^2.4.0",
"@tiptap/extension-table": "^2.4.0",
"@tiptap/extension-table-cell": "^2.4.0",
"@tiptap/extension-table-header": "^2.4.0",
"@tiptap/extension-table-row": "^2.4.0",
"@tiptap/extension-text-style": "^2.4.0",
"@tiptap/extension-underline": "^2.4.0",
"@tiptap/starter-kit": "^2.4.0",
"@tiptap/vue-3": "^2.4.0",
"@tiptap/extension-bold": "^3.22.2",
"@tiptap/extension-bullet-list": "^3.22.2",
"@tiptap/extension-color": "^3.22.2",
"@tiptap/extension-heading": "^3.22.2",
"@tiptap/extension-italic": "^3.22.2",
"@tiptap/extension-link": "^3.22.2",
"@tiptap/extension-ordered-list": "^3.22.2",
"@tiptap/extension-strike": "^3.22.2",
"@tiptap/extension-table": "^3.22.2",
"@tiptap/extension-table-cell": "^3.22.2",
"@tiptap/extension-table-header": "^3.22.2",
"@tiptap/extension-table-row": "^3.22.2",
"@tiptap/extension-text-style": "^3.22.2",
"@tiptap/extension-underline": "^3.22.2",
"@tiptap/starter-kit": "^3.22.2",
"@tiptap/vue-3": "^3.22.2",
"axios": "^1.7.2",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
@@ -226,6 +226,31 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@floating-ui/core": {
"version": "1.7.5",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
"integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/utils": "^0.2.11"
}
},
"node_modules/@floating-ui/dom": {
"version": "1.7.6",
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
"integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/core": "^1.7.5",
"@floating-ui/utils": "^0.2.11"
}
},
"node_modules/@floating-ui/utils": {
"version": "0.2.11",
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
"integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
"license": "MIT"
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
@@ -487,16 +512,6 @@
"node": ">=14"
}
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@remirror/core-constants": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz",
@@ -768,244 +783,227 @@
"license": "MIT"
},
"node_modules/@tiptap/core": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.27.2.tgz",
"integrity": "sha512-ABL1N6eoxzDzC1bYvkMbvyexHacszsKdVPYqhl5GwHLOvpZcv9VE9QaKwDILTyz5voCA0lGcAAXZp+qnXOk5lQ==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.22.2.tgz",
"integrity": "sha512-atq35NkpeEphH6vNYJ0pTLLBA73FAbvTV9Ovd3AaTC5s99/KF5Q86zVJXvml8xPRcMGM6dLp+eSSd06oTscMSA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/pm": "^2.7.0"
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-blockquote": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.27.2.tgz",
"integrity": "sha512-oIGZgiAeA4tG3YxbTDfrmENL4/CIwGuP3THtHsNhwRqwsl9SfMk58Ucopi2GXTQSdYXpRJ0ahE6nPqB5D6j/Zw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.22.2.tgz",
"integrity": "sha512-iTdlmGFcgxi4LKaOW2Rc9/yD83qTXgRm5BN3vCHWy5+TbEnReYxYqU5qKsbtTbKy30sO8TJTdAXTZ29uomShQQ==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-bold": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.27.2.tgz",
"integrity": "sha512-bR7J5IwjCGQ0s3CIxyMvOCnMFMzIvsc5OVZKscTN5UkXzFsaY6muUAIqtKxayBUucjtUskm5qZowJITCeCb1/A==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.22.2.tgz",
"integrity": "sha512-bqsPJyKcT/RWse4e16U2EKhraR8a2+98TUuk1amG3yCyFJZStoO/j+pN0IqZdZZjr3WtxFyvwWp7Kc59UN+jUA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-bubble-menu": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.27.2.tgz",
"integrity": "sha512-VkwlCOcr0abTBGzjPXklJ92FCowG7InU8+Od9FyApdLNmn0utRYGRhw0Zno6VgE9EYr1JY4BRnuSa5f9wlR72w==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.22.2.tgz",
"integrity": "sha512-5hbyDOSkJwA2uh0v9Mm0Dd9bb9inx6tHBEDSH2tCB9Rm23poz3yOreB7SNX8xDMe5L0/PQesfWC14RitcmhKPg==",
"license": "MIT",
"optional": true,
"dependencies": {
"tippy.js": "^6.3.7"
"@floating-ui/dom": "^1.0.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-bullet-list": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.27.2.tgz",
"integrity": "sha512-gmFuKi97u5f8uFc/GQs+zmezjiulZmFiDYTh3trVoLRoc2SAHOjGEB7qxdx7dsqmMN7gwiAWAEVurLKIi1lnnw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.22.2.tgz",
"integrity": "sha512-llrTJnA72RGcWLLO+ro0QN4sjHynhaCerhpV+GZE/ATd8BqV/ekQFdBLJrvC/09My2XQfCwLsyCh92NPXUdELA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/extension-list": "^3.22.2"
}
},
"node_modules/@tiptap/extension-code": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.27.2.tgz",
"integrity": "sha512-7X9AgwqiIGXoZX7uvdHQsGsjILnN/JaEVtqfXZnPECzKGaWHeK/Ao4sYvIIIffsyZJA8k5DC7ny2/0sAgr2TuA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.22.2.tgz",
"integrity": "sha512-iYFY+yzfYA9MKt7nupyW/PzqL9XC2D0mC8l1z2Y10i0/fGL8NbqIYjhNUAyXGqH3QWcI+DirI66842y2OadPOg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-code-block": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.27.2.tgz",
"integrity": "sha512-KgvdQHS4jXr79aU3wZOGBIZYYl9vCB7uDEuRFV4so2rYrfmiYMw3T8bTnlNEEGe4RUeAms1i4fdwwvQp9nR1Dw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.22.2.tgz",
"integrity": "sha512-PEwFlDyvtKF19WCrOFg77qJV9WqhvjCY4ZoXlHP9Hx0KTcOA8W39mtw8d4NWU5pLRK94yHKF1DVVL8UUkEOnww==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-color": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-2.27.2.tgz",
"integrity": "sha512-sOKCP8/2V3sRM3FdWgMe1lFE5ewsWNCRafiVoujS1+TTHGCj4jw6W+LiumBUk7cRI8kXW/rqGWVC4RVdknYUCA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-3.22.2.tgz",
"integrity": "sha512-yLbGpOjII3Jt1oGKdac1tsuzBmAaYv3ZZJLsHGqNf5PRiKGZlUyy9qu0tQm3kjunVqgQvUPcNe0nfwtLOvj4zg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/extension-text-style": "^2.7.0"
"@tiptap/extension-text-style": "^3.22.2"
}
},
"node_modules/@tiptap/extension-document": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.27.2.tgz",
"integrity": "sha512-CFhAYsPnyYnosDC4639sCJnBUnYH4Cat9qH5NZWHVvdgtDwu8GZgZn2eSzaKSYXWH1vJ9DSlCK+7UyC3SNXIBA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.22.2.tgz",
"integrity": "sha512-yPw9pQeVC4QDh86TuyKCZxxM4g0NAw7mEtGnAo6EpxaBQr1wyBr9yFpys+QTsQpRTmyTf1VHp4iTTLuWHMljIw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-dropcursor": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.27.2.tgz",
"integrity": "sha512-oEu/OrktNoQXq1x29NnH/GOIzQZm8ieTQl3FK27nxfBPA89cNoH4mFEUmBL5/OFIENIjiYG3qWpg6voIqzswNw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.22.2.tgz",
"integrity": "sha512-sDv3fv4LtX0X4nqwh9Gn3C/aZXT+C2JlK7tJovPOpaYP/a6hr03Sn35X5moAfgMCSiWFygEvlTriqwmCsJuxog==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/extensions": "^3.22.2"
}
},
"node_modules/@tiptap/extension-floating-menu": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.27.2.tgz",
"integrity": "sha512-GUN6gPIGXS7ngRJOwdSmtBRBDt9Kt9CM/9pSwKebhLJ+honFoNA+Y6IpVyDvvDMdVNgBchiJLs6qA5H97gAePQ==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.22.2.tgz",
"integrity": "sha512-r0ZTeh9rNtj9Api+G0YyaB+tAKPDn7aYWg+qSrmAC5EyUPee6Zjn3zlw0q4renCeQflvNRK20xHM8zokC41jOA==",
"license": "MIT",
"dependencies": {
"tippy.js": "^6.3.7"
},
"optional": true,
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@floating-ui/dom": "^1.0.0",
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-gapcursor": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.27.2.tgz",
"integrity": "sha512-/c9VF1HBxj+AP54XGVgCmD9bEGYc5w5OofYCFQgM7l7PB1J00A4vOke0oPkHJnqnOOyPlFaxO/7N6l3XwFcnKA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.22.2.tgz",
"integrity": "sha512-rR2OLrl/k2kj7xehaZHq0Y7T+1wy2DOTabir9LsTrktTFEcklrh9qY1KC6rEBkwMKaWrmignR1l39kS6RlKFNw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/extensions": "^3.22.2"
}
},
"node_modules/@tiptap/extension-hard-break": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.27.2.tgz",
"integrity": "sha512-kSRVGKlCYK6AGR0h8xRkk0WOFGXHIIndod3GKgWU49APuIGDiXd8sziXsSlniUsWmqgDmDXcNnSzPcV7AQ8YNg==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.22.2.tgz",
"integrity": "sha512-ChsoqF4XRp6EWatTRlXL4LMFh/ggwRVCyt09brSfjJV5knFaXlECSa5/+rKLMLMULaj6dVlJqoAD15exgu2HHA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-heading": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.27.2.tgz",
"integrity": "sha512-iM3yeRWuuQR/IRQ1djwNooJGfn9Jts9zF43qZIUf+U2NY8IlvdNsk2wTOdBgh6E0CamrStPxYGuln3ZS4fuglw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.22.2.tgz",
"integrity": "sha512-QPHLef+ikAyf7RVc4EdGeKxH4OEGb3ueCEwJ41RcYPtZ1BX9ueei7FC936guTdL1U7w3vQ65qfy86HznzkYgvw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
}
},
"node_modules/@tiptap/extension-history": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.27.2.tgz",
"integrity": "sha512-+hSyqERoFNTWPiZx4/FCyZ/0eFqB9fuMdTB4AC/q9iwu3RNWAQtlsJg5230bf/qmyO6bZxRUc0k8p4hrV6ybAw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-horizontal-rule": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.27.2.tgz",
"integrity": "sha512-WGWUSgX+jCsbtf9Y9OCUUgRZYuwjVoieW5n6mAUohJ9/6gc6sGIOrUpBShf+HHo6WD+gtQjRd+PssmX3NPWMpg==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.22.2.tgz",
"integrity": "sha512-Oz8KN5KJAWV1mFNE9UIWXdMD6xa5zPf/0yLsT8V4sgaRm+VsdFKllN58BY9qCZf/kIZbaOez5KkaoeAcm0MAZg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-italic": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.27.2.tgz",
"integrity": "sha512-1OFsw2SZqfaqx5Fa5v90iNlPRcqyt+lVSjBwTDzuPxTPFY4Q0mL89mKgkq2gVHYNCiaRkXvFLDxaSvBWbmthgg==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.22.2.tgz",
"integrity": "sha512-fmtQu2HDnV3sOZPdz0+1lOLI7UtrIhusohJj2UwOLQxG8qqhLwbvWx2OQTlfblgY0z+CjLRr6ANbNDxOTIblfg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-link": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.27.2.tgz",
"integrity": "sha512-bnP61qkr0Kj9Cgnop1hxn2zbOCBzNtmawxr92bVTOE31fJv6FhtCnQiD6tuPQVGMYhcmAj7eihtvuEMFfqEPcQ==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.22.2.tgz",
"integrity": "sha512-TXfSoKmng5pecvQUZqdsx6ICeob5V5hhYOj2vCEtjfcjWsyCndqFIl1w+Nt/yI5ehrFNOVPyj3ZvcELuuAW6pw==",
"license": "MIT",
"dependencies": {
"linkifyjs": "^4.3.2"
@@ -1015,158 +1013,199 @@
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-list": {
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.22.2.tgz",
"integrity": "sha512-Vq9xScgkA2A3Zj9dQ4WUBKK7u7UCzeSFRz9FcKTQVZHRPbZoqFGnlRUVngqsE7JXrCOthXQ1dXxgk40nAsBFRw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-list-item": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.27.2.tgz",
"integrity": "sha512-eJNee7IEGXMnmygM5SdMGDC8m/lMWmwNGf9fPCK6xk0NxuQRgmZHL6uApKcdH6gyNcRPHCqvTTkhEP7pbny/fg==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.22.2.tgz",
"integrity": "sha512-Mk+iiLIFh8Pfuarr6mWfTO7QJbd2ZQd0nGNhNWXlGAO7DJCb4BP9nj4bEIJ17SbcykGRjsi4WMqY50z4MHXqKQ==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/extension-list": "^3.22.2"
}
},
"node_modules/@tiptap/extension-list-keymap": {
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.22.2.tgz",
"integrity": "sha512-TozU9V2vldMUPpTXnfLCO33EO06jLxn7uEJTMBnN4iX/dLV3cBVCbE4kHyDKS0sLd7joUeekS06vYP9uQb1hFw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/extension-list": "^3.22.2"
}
},
"node_modules/@tiptap/extension-ordered-list": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.27.2.tgz",
"integrity": "sha512-M7A4tLGJcLPYdLC4CI2Gwl8LOrENQW59u3cMVa+KkwG1hzSJyPsbDpa1DI6oXPC2WtYiTf22zrbq3gVvH+KA2w==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.22.2.tgz",
"integrity": "sha512-K7qxoBKmsVkAd3kW64ZRCUPFrDcNGpXRDUBx9YgAO/bTfsfxtH2oil+igsUWGXPczpP4yoHPKjTfhpBpLjGl6Q==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/extension-list": "^3.22.2"
}
},
"node_modules/@tiptap/extension-paragraph": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.27.2.tgz",
"integrity": "sha512-elYVn2wHJJ+zB9LESENWOAfI4TNT0jqEN34sMA/hCtA4im1ZG2DdLHwkHIshj/c4H0dzQhmsS/YmNC5Vbqab/A==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.22.2.tgz",
"integrity": "sha512-EHZZzxVhvzEPDPWtRBF1YKhB+WCUjd1C2NhjHfL3Dl71PBqM3ZWA6qN7NDGPyNyGGWauui/NR/4X+5AfPqlHyA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-strike": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.27.2.tgz",
"integrity": "sha512-HHIjhafLhS2lHgfAsCwC1okqMsQzR4/mkGDm4M583Yftyjri1TNA7lzhzXWRFWiiMfJxKtdjHjUAQaHuteRTZw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.22.2.tgz",
"integrity": "sha512-YFC3elKU1L8PiGbcB6tqd/7vWPF5IbydJz0POJpHzSjstX+VfT8VsvS7ubxVuSIWQ11kGkH3mzX6LX8JHsHZxg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-table": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.27.2.tgz",
"integrity": "sha512-pDbhOpT5phZkcsyPjGBQlXv0+0hmdrvqHJ+dJjkGcCtlfy2pHiEIhmIItOFagc7wXy8G9iUFZ9Jie4zvDf+brg==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-3.22.2.tgz",
"integrity": "sha512-J9fVsboNRgmdbCVxWl+zlm5FKHmx6TnUHAb+7yt6Fum9lqy1/TwEfP3N7DAF3v7qpkIniVlU3X9ERmiiTAWxSA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0"
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/extension-table-cell": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.27.2.tgz",
"integrity": "sha512-9Lk46MjZMFzVZfOj9Kd7VgC6Odt6vmEhlCYVumErShUY7EkFqCw3b2IYoUtQkntfOEx/Afnhff/okNQwPsJeUA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-3.22.2.tgz",
"integrity": "sha512-3+YUNtZRHrl6jqQ/RyoGq9iSdXVKwUw3awgu/ogdUvaanXLyESrncbWsEiRzo98PDa4m6hFvjFZ5yhw3cXEhGQ==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/extension-table": "^3.22.2"
}
},
"node_modules/@tiptap/extension-table-header": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.27.2.tgz",
"integrity": "sha512-ZEb6lbG0NbbodWLV0b4BS/QrDIPlUbCcuOsUxzqVvlMUY1Vg6Fj6fKwLaBcsIUDHi8sxZDBEgYEDw3BR/zcO6A==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-3.22.2.tgz",
"integrity": "sha512-tVqbgl+it314/zzziKuOyRk2O1qptqiclYOfZKl0+ir5pgsVrUczujxzkDAPe4DPEZm/mSjWlsaYpF5OBQU0ng==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/extension-table": "^3.22.2"
}
},
"node_modules/@tiptap/extension-table-row": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.27.2.tgz",
"integrity": "sha512-Nw9+tA56Y5HtLVP01NGCZSUuTQhJPtfK9OfmDgGgcxynn2cRVdEtj+9FNZqRhQ1iRVaAI+Rd4xRvX9qYePMOxw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-3.22.2.tgz",
"integrity": "sha512-n2IDQhThOwRU+vxYj3aGYp66P45r3lgBkWBCGFPLFSL8bx/7p7ZifEtzsk6FOmzNa/GzgKT0lq2RvWVILq/rLA==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/extension-table": "^3.22.2"
}
},
"node_modules/@tiptap/extension-text": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.27.2.tgz",
"integrity": "sha512-Xk7nYcigljAY0GO9hAQpZ65ZCxqOqaAlTPDFcKerXmlkQZP/8ndx95OgUb1Xf63kmPOh3xypurGS2is3v0MXSA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.22.2.tgz",
"integrity": "sha512-J1w7JwijfSD7ah0WfiwZ/DVWCIGT9x369RM4RJc57i44mIBElj7tl1dh+N5KPGOXKUup4gr7sSJAE38lgeaDMg==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-text-style": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.27.2.tgz",
"integrity": "sha512-Omk+uxjJLyEY69KStpCw5fA9asvV+MGcAX2HOxyISDFoLaL49TMrNjhGAuz09P1L1b0KGXo4ml7Q3v/Lfy4WPA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-3.22.2.tgz",
"integrity": "sha512-W8K1G6HOiNXdHYZbEyXXP9vD66GoiZRwiGvrSJ/t33MefDwvLka1Tg2QCWejaw2YvV78DdVlLTmFEmSnJi9+5g==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extension-underline": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.27.2.tgz",
"integrity": "sha512-gPOsbAcw1S07ezpAISwoO8f0RxpjcSH7VsHEFDVuXm4ODE32nhvSinvHQjv2icRLOXev+bnA7oIBu7Oy859gWQ==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.22.2.tgz",
"integrity": "sha512-BaV6WOowxdkGTLWiU7DdZ3Twh633O4RGqwUM5dDas5LvaqL8AMWGTO8Wg9yAaaKXzd9MtKI1ZCqS/+MtzusgkQ==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0"
"@tiptap/core": "^3.22.2"
}
},
"node_modules/@tiptap/extensions": {
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.22.2.tgz",
"integrity": "sha512-s7MZmm2Xdq+8feIXgY3v7gVpQ5ClqBZi20KheouS7KSbBlrY4fu2irYR1EGc6r1UUVaHMxEa+cx5knhx+mIPUw==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"peerDependencies": {
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2"
}
},
"node_modules/@tiptap/pm": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.27.2.tgz",
"integrity": "sha512-kaEg7BfiJPDQMKbjVIzEPO3wlcA+pZb2tlcK9gPrdDnEFaec2QTF1sXz2ak2IIb2curvnIrQ4yrfHgLlVA72wA==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.22.2.tgz",
"integrity": "sha512-G2ENwIazoSKkAnN5MN5yN91TIZNFm6TxB74kPf3Empr2k9W51Hkcier70jHGpArhgcEaL4BVreuU1PRDRwCeGw==",
"license": "MIT",
"dependencies": {
"prosemirror-changeset": "^2.3.0",
@@ -1179,14 +1218,14 @@
"prosemirror-keymap": "^1.2.2",
"prosemirror-markdown": "^1.13.1",
"prosemirror-menu": "^1.2.4",
"prosemirror-model": "^1.23.0",
"prosemirror-model": "^1.24.1",
"prosemirror-schema-basic": "^1.2.3",
"prosemirror-schema-list": "^1.4.1",
"prosemirror-schema-list": "^1.5.0",
"prosemirror-state": "^1.4.3",
"prosemirror-tables": "^1.6.4",
"prosemirror-trailing-node": "^3.0.0",
"prosemirror-transform": "^1.10.2",
"prosemirror-view": "^1.37.0"
"prosemirror-view": "^1.38.1"
},
"funding": {
"type": "github",
@@ -1194,32 +1233,35 @@
}
},
"node_modules/@tiptap/starter-kit": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.27.2.tgz",
"integrity": "sha512-bb0gJvPoDuyRUQ/iuN52j1//EtWWttw+RXAv1uJxfR0uKf8X7uAqzaOOgwjknoCIDC97+1YHwpGdnRjpDkOBxw==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.22.2.tgz",
"integrity": "sha512-+CCKX8tOQ/ZPb2k/z6em4AQCFYAcdd8+0TOzPWiuLxRyCHRPBBVhnPsXOKgKwE4OO3E8BsezquuYRYRwsyzCqg==",
"license": "MIT",
"dependencies": {
"@tiptap/core": "^2.27.2",
"@tiptap/extension-blockquote": "^2.27.2",
"@tiptap/extension-bold": "^2.27.2",
"@tiptap/extension-bullet-list": "^2.27.2",
"@tiptap/extension-code": "^2.27.2",
"@tiptap/extension-code-block": "^2.27.2",
"@tiptap/extension-document": "^2.27.2",
"@tiptap/extension-dropcursor": "^2.27.2",
"@tiptap/extension-gapcursor": "^2.27.2",
"@tiptap/extension-hard-break": "^2.27.2",
"@tiptap/extension-heading": "^2.27.2",
"@tiptap/extension-history": "^2.27.2",
"@tiptap/extension-horizontal-rule": "^2.27.2",
"@tiptap/extension-italic": "^2.27.2",
"@tiptap/extension-list-item": "^2.27.2",
"@tiptap/extension-ordered-list": "^2.27.2",
"@tiptap/extension-paragraph": "^2.27.2",
"@tiptap/extension-strike": "^2.27.2",
"@tiptap/extension-text": "^2.27.2",
"@tiptap/extension-text-style": "^2.27.2",
"@tiptap/pm": "^2.27.2"
"@tiptap/core": "^3.22.2",
"@tiptap/extension-blockquote": "^3.22.2",
"@tiptap/extension-bold": "^3.22.2",
"@tiptap/extension-bullet-list": "^3.22.2",
"@tiptap/extension-code": "^3.22.2",
"@tiptap/extension-code-block": "^3.22.2",
"@tiptap/extension-document": "^3.22.2",
"@tiptap/extension-dropcursor": "^3.22.2",
"@tiptap/extension-gapcursor": "^3.22.2",
"@tiptap/extension-hard-break": "^3.22.2",
"@tiptap/extension-heading": "^3.22.2",
"@tiptap/extension-horizontal-rule": "^3.22.2",
"@tiptap/extension-italic": "^3.22.2",
"@tiptap/extension-link": "^3.22.2",
"@tiptap/extension-list": "^3.22.2",
"@tiptap/extension-list-item": "^3.22.2",
"@tiptap/extension-list-keymap": "^3.22.2",
"@tiptap/extension-ordered-list": "^3.22.2",
"@tiptap/extension-paragraph": "^3.22.2",
"@tiptap/extension-strike": "^3.22.2",
"@tiptap/extension-text": "^3.22.2",
"@tiptap/extension-underline": "^3.22.2",
"@tiptap/extensions": "^3.22.2",
"@tiptap/pm": "^3.22.2"
},
"funding": {
"type": "github",
@@ -1227,21 +1269,22 @@
}
},
"node_modules/@tiptap/vue-3": {
"version": "2.27.2",
"resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.27.2.tgz",
"integrity": "sha512-NahnVLTAQsbLaNU9nGLdGCr88nAeQZJTejjBVQc3EzMdijmE46R44Rosj6O/pj3e7eLj1/gYvc+U/hIVbxMpoQ==",
"version": "3.22.2",
"resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-3.22.2.tgz",
"integrity": "sha512-oRJQEwcsg8LztIeuKeJea1UhIX2NtGkBDPM/biQlA3SKa/JvgNWGb0+ZJj0AWQjGhKFOoVKnfwVRysUeZeKOSg==",
"license": "MIT",
"dependencies": {
"@tiptap/extension-bubble-menu": "^2.27.2",
"@tiptap/extension-floating-menu": "^2.27.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/ueberdosis"
},
"optionalDependencies": {
"@tiptap/extension-bubble-menu": "^3.22.2",
"@tiptap/extension-floating-menu": "^3.22.2"
},
"peerDependencies": {
"@tiptap/core": "^2.7.0",
"@tiptap/pm": "^2.7.0",
"@floating-ui/dom": "^1.0.0",
"@tiptap/core": "^3.22.2",
"@tiptap/pm": "^3.22.2",
"vue": "^3.0.0"
}
},
@@ -5686,15 +5729,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/tippy.js": {
"version": "6.3.7",
"resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz",
"integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==",
"license": "MIT",
"dependencies": {
"@popperjs/core": "^2.9.0"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

View File

@@ -12,22 +12,22 @@
},
"dependencies": {
"@iconoir/vue": "^7.7.0",
"@tiptap/extension-bold": "^2.4.0",
"@tiptap/extension-bullet-list": "^2.4.0",
"@tiptap/extension-color": "^2.4.0",
"@tiptap/extension-heading": "^2.4.0",
"@tiptap/extension-italic": "^2.4.0",
"@tiptap/extension-link": "^2.4.0",
"@tiptap/extension-ordered-list": "^2.4.0",
"@tiptap/extension-strike": "^2.4.0",
"@tiptap/extension-table": "^2.4.0",
"@tiptap/extension-table-cell": "^2.4.0",
"@tiptap/extension-table-header": "^2.4.0",
"@tiptap/extension-table-row": "^2.4.0",
"@tiptap/extension-text-style": "^2.4.0",
"@tiptap/extension-underline": "^2.4.0",
"@tiptap/starter-kit": "^2.4.0",
"@tiptap/vue-3": "^2.4.0",
"@tiptap/extension-bold": "^3.22.2",
"@tiptap/extension-bullet-list": "^3.22.2",
"@tiptap/extension-color": "^3.22.2",
"@tiptap/extension-heading": "^3.22.2",
"@tiptap/extension-italic": "^3.22.2",
"@tiptap/extension-link": "^3.22.2",
"@tiptap/extension-ordered-list": "^3.22.2",
"@tiptap/extension-strike": "^3.22.2",
"@tiptap/extension-table": "^3.22.2",
"@tiptap/extension-table-cell": "^3.22.2",
"@tiptap/extension-table-header": "^3.22.2",
"@tiptap/extension-table-row": "^3.22.2",
"@tiptap/extension-text-style": "^3.22.2",
"@tiptap/extension-underline": "^3.22.2",
"@tiptap/starter-kit": "^3.22.2",
"@tiptap/vue-3": "^3.22.2",
"axios": "^1.7.2",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",

View File

@@ -0,0 +1,2 @@
import{E as e,L as t,c as n,ct as r,d as i,i as a,ot as o,t as s,u as c,w as l}from"./_plugin-vue_export-helper-Conii5fq.js";import{i as u}from"./router-Oi46QANG.js";var d={name:`AddImageDialog`,emits:[`confirm`],setup(e,{emit:n}){let r=t(!1),i=t([]),a=t(null),o=()=>{r.value=!0,l()},s=()=>{r.value=!1},c=()=>{a.value&&n(`confirm`,`${a.value.id}`),s()},l=async()=>{try{i.value=(await u.get(`/image`)).data}catch(e){console.error(`Fehler beim Laden der Bilder:`,e),i.value=[]}};return{isOpen:r,images:i,selectedImage:a,openAddImageDialog:o,closeAddImageDialog:s,confirmAddImageConfiguration:c,selectImage:e=>{console.log(e),a.value=e}}}},f={key:0,class:`dialog-overlay`},p={class:`dialog-content`},m={class:`images-container`},h=[`onClick`],g=[`src`],_=[`title`],v={key:1},y={class:`button-container`};function b(t,s,u,d,b,x){return l(),i(`div`,null,[d.isOpen?(l(),i(`div`,f,[n(`div`,p,[s[2]||=n(`h3`,null,`Bild auswählen`,-1),n(`div`,m,[(l(!0),i(a,null,e(d.images,e=>(l(),i(`div`,{key:e.id,class:o([`image-block`,{selected:e.id===d.selectedImage?.id}]),onClick:t=>d.selectImage(e)},[n(`img`,{src:`/images/uploads/`+e.filename},null,8,g),e.description?(l(),i(`span`,{key:0,title:e.description},r(e.title),9,_)):(l(),i(`span`,v,r(e.title),1))],10,h))),128))]),n(`div`,y,[n(`button`,{onClick:s[0]||=(...e)=>d.confirmAddImageConfiguration&&d.confirmAddImageConfiguration(...e)},`Bestätigen`),n(`button`,{onClick:s[1]||=(...e)=>d.closeAddImageDialog&&d.closeAddImageDialog(...e)},`Schließen`)])])])):c(``,!0)])}var x=s(d,[[`render`,b],[`__scopeId`,`data-v-32c70499`]]);export{x as t};
//# sourceMappingURL=AddImageDialog-B5WJz27Z.js.map

View File

@@ -0,0 +1 @@
.dialog-overlay[data-v-32c70499]{background:#f0f0f0e6;border:1px solid #404040;justify-content:center;align-items:center;width:90%;height:50em;display:flex;position:fixed;top:calc(50% - 25em);left:5%;overflow:auto;box-shadow:3px 3px 8px #909090}.dialog-content[data-v-32c70499]{border-radius:8px;width:100%;height:100%;padding:20px}.images-container[data-v-32c70499]{flex-wrap:wrap;gap:10px;display:flex}.images-container img[data-v-32c70499]{cursor:pointer;border:2px solid #0000}.images-container img[data-v-32c70499]:hover{border-color:#007bff}.image-block[data-v-32c70499]{margin:2.5px;display:inline-block}.image-block img[data-v-32c70499]{max-width:150px;max-height:150px}.selected[data-v-32c70499]{border:2px solid #000}.button-container[data-v-32c70499]{background-color:gray;border-top:1px solid #404040;margin:0 -20px -20px;padding:12px 20px}

View File

@@ -0,0 +1 @@
import{n as e}from"./index-wEZjZpSO.js";export{e as default};

View File

@@ -0,0 +1 @@
import{n as e}from"./index-BrDZxyJr.js";export{e as default};

View File

@@ -0,0 +1 @@
import{n as e}from"./index-GQBhR5hI.js";export{e as default};

View File

@@ -0,0 +1,2 @@
import{t as e}from"./axios-DHQprbt3.js";import{E as t,M as n,O as r,c as i,ct as a,d as o,h as s,i as c,t as l,w as u}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as d,c as f}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{t as p}from"./vue-multiselect.esm-Cg9K2y4Y.js";var m={name:`ContactPersonForm`,components:{Multiselect:p},props:{contactPerson:{type:Object,default:()=>({name:``,phone:``,street:``,zipcode:``,city:``,email:``,expiryDate:null,positions:[]})},positions:{type:Array,required:!0}},data(){return{localContactPerson:{...this.contactPerson},selectedPositions:this.contactPerson.positions||[]}},watch:{contactPerson:{handler(e){this.localContactPerson={...e},this.selectedPositions=e.positions||[]},deep:!0,immediate:!0},selectedPositions(e){this.localContactPerson.positions=e}},methods:{async saveContactPerson(){try{let t=this.selectedPositions.map(e=>e.id),n={...this.localContactPerson,positionIds:t};this.localContactPerson.id?await e.put(`/contact-persons/${this.localContactPerson.id}`,n):await e.post(`/contact-persons`,n),this.$emit(`contactPersonSaved`)}catch(e){console.error(`Fehler beim Speichern der Kontaktperson:`,e)}},resetForm(){this.localContactPerson={name:``,phone:``,street:``,zipcode:``,city:``,email:``,expiryDate:null,positions:[]},this.selectedPositions=[]}}},h={class:`contact-person-form`};function g(e,t,a,c,l,p){let m=r(`multiselect`);return u(),o(`div`,h,[t[19]||=i(`h2`,null,`Kontaktperson Formular`,-1),i(`form`,{onSubmit:t[9]||=f((...e)=>p.saveContactPerson&&p.saveContactPerson(...e),[`prevent`])},[t[10]||=i(`label`,{for:`name`},`Name:`,-1),n(i(`input`,{type:`text`,id:`name`,"onUpdate:modelValue":t[0]||=e=>l.localContactPerson.name=e,required:``},null,512),[[d,l.localContactPerson.name]]),t[11]||=i(`label`,{for:`phone`},`Telefon:`,-1),n(i(`input`,{type:`text`,id:`phone`,"onUpdate:modelValue":t[1]||=e=>l.localContactPerson.phone=e},null,512),[[d,l.localContactPerson.phone]]),t[12]||=i(`label`,{for:`street`},`Straße:`,-1),n(i(`input`,{type:`text`,id:`street`,"onUpdate:modelValue":t[2]||=e=>l.localContactPerson.street=e},null,512),[[d,l.localContactPerson.street]]),t[13]||=i(`label`,{for:`zipcode`},`PLZ:`,-1),n(i(`input`,{type:`text`,id:`zipcode`,"onUpdate:modelValue":t[3]||=e=>l.localContactPerson.zipcode=e},null,512),[[d,l.localContactPerson.zipcode]]),t[14]||=i(`label`,{for:`city`},`Ort:`,-1),n(i(`input`,{type:`text`,id:`city`,"onUpdate:modelValue":t[4]||=e=>l.localContactPerson.city=e},null,512),[[d,l.localContactPerson.city]]),t[15]||=i(`label`,{for:`email`},`Email:`,-1),n(i(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":t[5]||=e=>l.localContactPerson.email=e},null,512),[[d,l.localContactPerson.email]]),t[16]||=i(`label`,{for:`expiryDate`},`Ablaufdatum (optional):`,-1),n(i(`input`,{type:`date`,id:`expiryDate`,"onUpdate:modelValue":t[6]||=e=>l.localContactPerson.expiryDate=e},null,512),[[d,l.localContactPerson.expiryDate]]),t[17]||=i(`label`,{for:`positions`},`Positionen:`,-1),s(m,{modelValue:l.selectedPositions,"onUpdate:modelValue":t[7]||=e=>l.selectedPositions=e,options:a.positions,multiple:!0,"close-on-select":!1,"clear-on-select":!1,"preserve-search":!0,placeholder:`Wähle einige`,label:`caption`,"track-by":`id`,"preselect-first":!1},null,8,[`modelValue`,`options`]),t[18]||=i(`button`,{type:`submit`},`Speichern`,-1),i(`button`,{type:`button`,onClick:t[8]||=(...e)=>p.resetForm&&p.resetForm(...e)},`Neue Kontaktperson`)],32)])}var _={name:`ContactPersonManagement`,components:{ContactPersonForm:l(m,[[`render`,g],[`__scopeId`,`data-v-11c9f1c3`]])},data(){return{contactPersons:[],selectedContactPerson:{name:``,phone:``,street:``,zipcode:``,city:``,email:``,expiryDate:null,positions:[]},positions:[]}},created(){this.fetchContactPersons(),this.fetchPositions()},methods:{async fetchContactPersons(){try{this.contactPersons=(await e.get(`/contact-persons`)).data}catch(e){console.error(`Fehler beim Abrufen der Kontaktpersonen:`,e)}},async fetchPositions(){try{this.positions=(await e.get(`/positions`)).data}catch(e){console.error(`Fehler beim Abrufen der Positionen:`,e)}},selectContactPerson(e){this.selectedContactPerson=e}}},v=[`onClick`];function y(e,n,l,d,f,p){let m=r(`ContactPersonForm`);return u(),o(`div`,null,[n[0]||=i(`h1`,null,`Kontaktpersonen Verwaltung`,-1),s(m,{contactPerson:f.selectedContactPerson,positions:f.positions,onContactPersonSaved:p.fetchContactPersons},null,8,[`contactPerson`,`positions`,`onContactPersonSaved`]),i(`ul`,null,[(u(!0),o(c,null,t(f.contactPersons,e=>(u(),o(`li`,{key:e.id,onClick:t=>p.selectContactPerson(e)},a(e.name),9,v))),128))])])}var b=l(_,[[`render`,y],[`__scopeId`,`data-v-5365b0dc`]]);export{b as default};
//# sourceMappingURL=ContactPersonManagement-CDNj9_m_.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
import{s as e,t,u as n,x as r}from"./_plugin-vue_export-helper-CCRG-STz.js";var i={name:`DefaultComponent`};function a(t,i,a,o,s,c){return r(),n(`div`,null,[...i[0]||=[e(`h1`,null,`Seite existiert nicht`,-1),e(`p`,null,`Leider existiert die aufgerufene Seite nicht.`,-1)]])}var o=t(i,[[`render`,a],[`__scopeId`,`data-v-61f805f0`]]);export{o as default};
//# sourceMappingURL=DefaultComponent-BFnDpTHq.js.map

View File

@@ -0,0 +1,2 @@
import{c as e,d as t,t as n,w as r}from"./_plugin-vue_export-helper-Conii5fq.js";var i={name:`DefaultComponent`};function a(n,i,a,o,s,c){return r(),t(`div`,null,[...i[0]||=[e(`h1`,null,`Seite existiert nicht`,-1),e(`p`,null,`Leider existiert die aufgerufene Seite nicht.`,-1)]])}var o=n(i,[[`render`,a],[`__scopeId`,`data-v-61f805f0`]]);export{o as default};
//# sourceMappingURL=DefaultComponent-DOKlbqlp.js.map

View File

@@ -0,0 +1,2 @@
import{O as e,c as t,ct as n,d as r,h as i,t as a,w as o}from"./_plugin-vue_export-helper-Conii5fq.js";import{i as s,r as c}from"./vuex.esm-bundler-CDO_-3pz.js";import{i as l}from"./router-Oi46QANG.js";import{t as u}from"./RenderContentComponent-Cclw0JqW.js";var d={name:`ContentComponent`,components:{RenderContentComponent:u},props:{link:{type:String,required:!0}},data(){return{content:``,title:``}},computed:{...s([`menuData`]),...c([`getMenuData`])},watch:{link:{immediate:!0,handler(e){this.fetchContent(e),this.setTitle(e)}}},methods:{async fetchContent(e){try{this.content=(await l.get(`/page-content?link=${e}`)).data.content}catch(e){console.error(`Fehler beim Abrufen des Inhalts:`,e)}},setTitle(e){let t=(e,n)=>{for(let r of e){if(r.link===n)return r.pageTitle||r.name;if(r.submenu&&r.submenu.length>0){let e=t(r.submenu,n);if(e)return`${e}`}}return``};this.title=t(this.menuData,e)}}};function f(a,s,c,l,u,d){let f=e(`RenderContentComponent`);return o(),r(`div`,null,[t(`h1`,null,n(u.title),1),i(f,{content:u.content},null,8,[`content`])])}var p={name:`DefaultPage`,components:{ContentComponent:a(d,[[`render`,f]])},computed:{currentLink(){return this.$route.path}}},m={class:`some-page`};function h(t,n,a,s,c,l){let u=e(`ContentComponent`);return o(),r(`div`,m,[i(u,{link:l.currentLink},null,8,[`link`])])}var g=a(p,[[`render`,h]]);export{g as default};
//# sourceMappingURL=DefaultContent-BNGeGLb9.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
import{Z as e,l as t,s as n,t as r,u as i,x as a}from"./_plugin-vue_export-helper-CCRG-STz.js";var o={name:`DialogComponent`,props:{title:{type:String,required:!0},message:{type:String,required:!0},modelValue:{type:Boolean,default:!1}},methods:{closeDialog(){this.$emit(`update:modelValue`,!1),this.$emit(`close`)}}},s={key:0,class:`dialog-overlay`},c={class:`dialog`};function l(r,o,l,u,d,f){return l.modelValue?(a(),i(`div`,s,[n(`div`,c,[n(`h2`,null,e(l.title),1),n(`p`,null,e(l.message),1),n(`button`,{onClick:o[0]||=(...e)=>f.closeDialog&&f.closeDialog(...e)},`OK`)])])):t(``,!0)}var u=r(o,[[`render`,l],[`__scopeId`,`data-v-7743bdb5`]]);export{u as default};
//# sourceMappingURL=DialogComponent-BB67UImD.js.map

View File

@@ -0,0 +1,2 @@
import{c as e,ct as t,d as n,t as r,u as i,w as a}from"./_plugin-vue_export-helper-Conii5fq.js";var o={name:`DialogComponent`,props:{title:{type:String,required:!0},message:{type:String,required:!0},modelValue:{type:Boolean,default:!1}},methods:{closeDialog(){this.$emit(`update:modelValue`,!1),this.$emit(`close`)}}},s={key:0,class:`dialog-overlay`},c={class:`dialog`};function l(r,o,l,u,d,f){return l.modelValue?(a(),n(`div`,s,[e(`div`,c,[e(`h2`,null,t(l.title),1),e(`p`,null,t(l.message),1),e(`button`,{onClick:o[0]||=(...e)=>f.closeDialog&&f.closeDialog(...e)},`OK`)])])):i(``,!0)}var u=r(o,[[`render`,l],[`__scopeId`,`data-v-7743bdb5`]]);export{u as default};
//# sourceMappingURL=DialogComponent-Xljax2a4.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
import{t as e}from"./axios-DHQprbt3.js";import{E as t,M as n,c as r,ct as i,d as a,i as o,t as s,u as c,w as l}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as u,c as d}from"./runtime-dom.esm-bundler-CI28bPhn.js";var f={data(){return{eventPlaces:[],newEventPlace:{name:``,street:``,zipcode:``,city:``,backgroundColor:`#ffffff`,website:``},editMode:!1,editId:null}},methods:{async fetchEventPlaces(){this.eventPlaces=(await e.get(`/event-places`)).data},async addEventPlace(){if(this.editMode)await e.put(`/event-places/${this.editId}`,this.newEventPlace);else{let t=await e.post(`/event-places`,this.newEventPlace);this.eventPlaces.push(t.data)}this.resetForm(),await this.fetchEventPlaces()},async updateEventPlace(t){await e.put(`/event-places/${t.id}`,t),this.fetchEventPlaces()},async deleteEventPlace(t){await e.delete(`/event-places/${t}`),this.fetchEventPlaces()},editEventPlace(e){this.newEventPlace={...e},this.editMode=!0,this.editId=e.id},resetForm(){this.newEventPlace={name:``,street:``,zipcode:``,city:``,backgroundColor:`#ffffff`,website:``},this.editMode=!1,this.editId=null}},created(){this.fetchEventPlaces()}},p={class:`event-places-management`},m=[`onClick`],h=[`onClick`];function g(e,s,f,g,_,v){return l(),a(`div`,p,[s[16]||=r(`h2`,null,`Veranstaltungsorte verwalten`,-1),r(`form`,{onSubmit:s[7]||=d((...e)=>v.addEventPlace&&v.addEventPlace(...e),[`prevent`])},[s[8]||=r(`label`,{for:`name`},`Name:`,-1),n(r(`input`,{type:`text`,id:`name`,"onUpdate:modelValue":s[0]||=e=>_.newEventPlace.name=e,placeholder:`Name`,required:``},null,512),[[u,_.newEventPlace.name]]),s[9]||=r(`label`,{for:`street`},`Straße:`,-1),n(r(`input`,{type:`text`,id:`street`,"onUpdate:modelValue":s[1]||=e=>_.newEventPlace.street=e,placeholder:`Straße`,required:``},null,512),[[u,_.newEventPlace.street]]),s[10]||=r(`label`,{for:`zipcode`},`PLZ:`,-1),n(r(`input`,{type:`text`,id:`zipcode`,"onUpdate:modelValue":s[2]||=e=>_.newEventPlace.zipcode=e,placeholder:`PLZ`,required:``},null,512),[[u,_.newEventPlace.zipcode]]),s[11]||=r(`label`,{for:`city`},`Stadt:`,-1),n(r(`input`,{type:`text`,id:`city`,"onUpdate:modelValue":s[3]||=e=>_.newEventPlace.city=e,placeholder:`Stadt`,required:``},null,512),[[u,_.newEventPlace.city]]),s[12]||=r(`label`,{for:`city`},`Webseite:`,-1),n(r(`input`,{type:`text`,id:`website`,"onUpdate:modelValue":s[4]||=e=>_.newEventPlace.website=e,placeholder:`Webseite`,required:``},null,512),[[u,_.newEventPlace.website]]),s[13]||=r(`label`,{for:`backgroundColor`},`Hintergrundfarbe:`,-1),n(r(`input`,{type:`color`,id:`backgroundColor`,"onUpdate:modelValue":s[5]||=e=>_.newEventPlace.backgroundColor=e},null,512),[[u,_.newEventPlace.backgroundColor]]),s[14]||=r(`button`,{type:`submit`},`Speichern`,-1),_.editMode?(l(),a(`button`,{key:0,type:`button`,onClick:s[6]||=(...e)=>v.resetForm&&v.resetForm(...e)},`Neuen Veranstaltungsort erstellen`)):c(``,!0)],32),r(`table`,null,[s[15]||=r(`thead`,null,[r(`tr`,null,[r(`th`,null,`Name`),r(`th`,null,`Bearbeiten`),r(`th`,null,`Löschen`)])],-1),r(`tbody`,null,[(l(!0),a(o,null,t(_.eventPlaces,e=>(l(),a(`tr`,{key:e.id},[r(`td`,null,i(e.name),1),r(`td`,null,[r(`button`,{onClick:t=>v.editEventPlace(e)},`Bearbeiten`,8,m)]),r(`td`,null,[r(`button`,{onClick:t=>v.deleteEventPlace(e.id)},`Löschen`,8,h)])]))),128))])])])}var _=s(f,[[`render`,g],[`__scopeId`,`data-v-3dfc8a79`]]);export{_ as default};
//# sourceMappingURL=EventPlacesManagement-B5ZfENOq.js.map

View File

@@ -0,0 +1 @@
.event-places-management[data-v-3dfc8a79]{border:1px solid #ccc;border-radius:5px;max-width:600px;margin:auto;padding:20px}form[data-v-3dfc8a79]{flex-direction:column;margin-bottom:20px;display:flex}label[data-v-3dfc8a79]{margin-top:10px}input[data-v-3dfc8a79]{margin-top:5px;margin-bottom:10px;padding:8px}button[data-v-3dfc8a79]{margin-top:10px;padding:10px}table[data-v-3dfc8a79]{border-collapse:collapse;width:100%;margin-top:20px}th[data-v-3dfc8a79],td[data-v-3dfc8a79]{text-align:left;border:1px solid #ccc;padding:10px}th[data-v-3dfc8a79]{background-color:#f4f4f4}

View File

@@ -0,0 +1,2 @@
import{t as e}from"./axios-DHQprbt3.js";import{E as t,M as n,c as r,ct as i,d as a,i as o,t as s,u as c,w as l}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as u,c as d}from"./runtime-dom.esm-bundler-CI28bPhn.js";var f={data(){return{eventTypes:[],eventTypeData:{caption:``},editMode:!1,editId:null}},methods:{async fetchEventTypes(){try{this.eventTypes=(await e.get(`/event-types`)).data}catch(e){console.error(`Fehler beim Abrufen der Event-Typen:`,e)}},async saveEventType(){try{if(this.editMode)await e.put(`/event-types/${this.editId}`,this.eventTypeData);else{let t=await e.post(`/event-types`,this.eventTypeData);this.eventTypes.push(t.data)}this.resetForm(),await this.fetchEventTypes()}catch(e){console.error(`Fehler beim Speichern des Event-Typs:`,e)}},editEventType(e){this.eventTypeData={...e},this.editMode=!0,this.editId=e.id},async deleteEventType(t){try{await e.delete(`/event-types/${t}`),await this.fetchEventTypes()}catch(e){console.error(`Fehler beim Löschen des Event-Typs:`,e)}},resetForm(){this.eventTypeData={caption:``},this.editMode=!1,this.editId=null}},async created(){await this.fetchEventTypes()}},p={class:`event-types-management`},m={type:`submit`},h=[`onClick`],g=[`onClick`];function _(e,s,f,_,v,y){return l(),a(`div`,p,[s[4]||=r(`h2`,null,`Event-Typen Verwaltung`,-1),r(`form`,{onSubmit:s[2]||=d((...e)=>y.saveEventType&&y.saveEventType(...e),[`prevent`])},[s[3]||=r(`label`,{for:`newEventType`},`Event-Typ:`,-1),n(r(`input`,{type:`text`,id:`newEventType`,"onUpdate:modelValue":s[0]||=e=>v.eventTypeData.caption=e,placeholder:`Event-Typ`,required:``},null,512),[[u,v.eventTypeData.caption]]),r(`button`,m,i(v.editMode?`Aktualisieren`:`Hinzufügen`),1),v.editMode?(l(),a(`button`,{key:0,type:`button`,onClick:s[1]||=(...e)=>y.resetForm&&y.resetForm(...e)},`Abbrechen`)):c(``,!0)],32),r(`table`,null,[(l(!0),a(o,null,t(v.eventTypes,e=>(l(),a(`tr`,{key:e.id},[r(`td`,null,i(e.caption),1),r(`td`,null,[r(`button`,{onClick:t=>y.editEventType(e)},`Bearbeiten`,8,h)]),r(`td`,null,[r(`button`,{onClick:t=>y.deleteEventType(e.id)},`Löschen`,8,g)])]))),128))])])}var v=s(f,[[`render`,_],[`__scopeId`,`data-v-76d51395`]]);export{v as default};
//# sourceMappingURL=EventTypesManagement-CIyLBb6P.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{t as e}from"./index-GQBhR5hI.js";export{e as default};

View File

@@ -0,0 +1 @@
import{t as e}from"./index-wEZjZpSO.js";export{e as default};

View File

@@ -0,0 +1 @@
import{t as e}from"./index-BrDZxyJr.js";export{e as default};

View File

@@ -0,0 +1,2 @@
import{D as e,E as t,Z as n,l as r,m as i,p as a,s as o,t as s,u as c,w as l,x as u}from"./_plugin-vue_export-helper-CCRG-STz.js";import{a as d,r as f}from"./runtime-dom.esm-bundler-D2hy5fF2.js";import{i as p}from"./router-fJ3nWd5S.js";var m={name:`ForgotPassword`,data(){return{email:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{async submitForgotPassword(){try{let e=await p.post(`/auth/forgot-password`,{email:this.email});this.showDialog(`E-Mail gesendet`,e.data?.message||`Ein Link zum Zurücksetzen wurde an Ihre E-Mail-Adresse gesendet.`),this.email=``}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`forgot-password`},g={key:0,class:`dialog`},_={class:`dialog-content`};function v(s,p,m,v,y,b){let x=l(`router-link`);return u(),c(`div`,h,[p[7]||=o(`h2`,null,`Passwort vergessen`,-1),o(`form`,{onSubmit:p[1]||=d((...e)=>b.submitForgotPassword&&b.submitForgotPassword(...e),[`prevent`])},[p[3]||=o(`label`,{for:`email`},`Email-Adresse:`,-1),e(o(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":p[0]||=e=>y.email=e,required:``},null,512),[[f,y.email]]),p[4]||=o(`button`,{type:`submit`},`Link zum Zurücksetzen senden`,-1)],32),o(`p`,null,[i(x,{to:`/login`},{default:t(()=>[...p[5]||=[a(`Login`,-1)]]),_:1})]),o(`p`,null,[i(x,{to:`/register`},{default:t(()=>[...p[6]||=[a(`Registrieren`,-1)]]),_:1})]),y.dialogVisible?(u(),c(`div`,g,[o(`div`,_,[o(`h3`,null,n(y.dialogTitle),1),o(`p`,null,n(y.dialogMessage),1),o(`button`,{type:`button`,onClick:p[2]||=(...e)=>b.closeDialog&&b.closeDialog(...e)},`Schließen`)])])):r(``,!0)])}var y=s(m,[[`render`,v],[`__scopeId`,`data-v-021070f7`]]);export{y as default};
//# sourceMappingURL=ForgotPasswordContent-CCXAE1vn.js.map

View File

@@ -0,0 +1,2 @@
import{M as e,O as t,c as n,ct as r,d as i,h as a,j as o,m as s,t as c,u as l,w as u}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as d,c as f}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{i as p}from"./router-Oi46QANG.js";var m={name:`ForgotPassword`,data(){return{email:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{async submitForgotPassword(){try{let e=await p.post(`/auth/forgot-password`,{email:this.email});this.showDialog(`E-Mail gesendet`,e.data?.message||`Ein Link zum Zurücksetzen wurde an Ihre E-Mail-Adresse gesendet.`),this.email=``}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`forgot-password`},g={key:0,class:`dialog`},_={class:`dialog-content`};function v(c,p,m,v,y,b){let x=t(`router-link`);return u(),i(`div`,h,[p[7]||=n(`h2`,null,`Passwort vergessen`,-1),n(`form`,{onSubmit:p[1]||=f((...e)=>b.submitForgotPassword&&b.submitForgotPassword(...e),[`prevent`])},[p[3]||=n(`label`,{for:`email`},`Email-Adresse:`,-1),e(n(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":p[0]||=e=>y.email=e,required:``},null,512),[[d,y.email]]),p[4]||=n(`button`,{type:`submit`},`Link zum Zurücksetzen senden`,-1)],32),n(`p`,null,[a(x,{to:`/login`},{default:o(()=>[...p[5]||=[s(`Login`,-1)]]),_:1})]),n(`p`,null,[a(x,{to:`/register`},{default:o(()=>[...p[6]||=[s(`Registrieren`,-1)]]),_:1})]),y.dialogVisible?(u(),i(`div`,g,[n(`div`,_,[n(`h3`,null,r(y.dialogTitle),1),n(`p`,null,r(y.dialogMessage),1),n(`button`,{type:`button`,onClick:p[2]||=(...e)=>b.closeDialog&&b.closeDialog(...e)},`Schließen`)])])):l(``,!0)])}var y=c(m,[[`render`,v],[`__scopeId`,`data-v-021070f7`]]);export{y as default};
//# sourceMappingURL=ForgotPasswordContent-Dp8XZoBY.js.map

View File

@@ -0,0 +1,2 @@
import{C as e,E as t,T as n,X as r,b as i,f as a,l as o,p as s,s as c,t as l,u}from"./_plugin-vue_export-helper-CfRVXrSo.js";import{a as d,r as f}from"./runtime-dom.esm-bundler-DdqN-WFI.js";import{i as p}from"./router-BSepcPus.js";var m={name:`ForgotPassword`,data(){return{email:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{async submitForgotPassword(){try{let e=await p.post(`/auth/forgot-password`,{email:this.email});this.showDialog(`E-Mail gesendet`,e.data?.message||`Ein Link zum Zurücksetzen wurde an Ihre E-Mail-Adresse gesendet.`),this.email=``}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`forgot-password`},g={key:0,class:`dialog`},_={class:`dialog-content`};function v(l,p,m,v,y,b){let x=e(`router-link`);return i(),u(`div`,h,[p[7]||=c(`h2`,null,`Passwort vergessen`,-1),c(`form`,{onSubmit:p[1]||=d((...e)=>b.submitForgotPassword&&b.submitForgotPassword(...e),[`prevent`])},[p[3]||=c(`label`,{for:`email`},`Email-Adresse:`,-1),t(c(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":p[0]||=e=>y.email=e,required:``},null,512),[[f,y.email]]),p[4]||=c(`button`,{type:`submit`},`Link zum Zurücksetzen senden`,-1)],32),c(`p`,null,[s(x,{to:`/login`},{default:n(()=>[...p[5]||=[a(`Login`,-1)]]),_:1})]),c(`p`,null,[s(x,{to:`/register`},{default:n(()=>[...p[6]||=[a(`Registrieren`,-1)]]),_:1})]),y.dialogVisible?(i(),u(`div`,g,[c(`div`,_,[c(`h3`,null,r(y.dialogTitle),1),c(`p`,null,r(y.dialogMessage),1),c(`button`,{type:`button`,onClick:p[2]||=(...e)=>b.closeDialog&&b.closeDialog(...e)},`Schließen`)])])):o(``,!0)])}var y=l(m,[[`render`,v],[`__scopeId`,`data-v-021070f7`]]);export{y as default};
//# sourceMappingURL=ForgotPasswordContent-NwgaxFG6.js.map

View File

@@ -0,0 +1,2 @@
import{c as e,d as t,t as n,w as r}from"./_plugin-vue_export-helper-Conii5fq.js";import{i}from"./vuex.esm-bundler-CDO_-3pz.js";var a={name:`ImageContent`,data(){return{defaultImage:`/images/homepage1.png`,currentImage:`/images/homepage1.png`}},computed:{...i([`menuData`])},watch:{$route:{immediate:!0,handler(){this.updateImage()}}},methods:{updateImage(){let e=this.$route.path,t=this.menuData,n=this.findMenuItemByPath(t,e);n&&n.image?this.currentImage=`/images/${n.image}`:this.currentImage=this.defaultImage},findMenuItemByPath(e,t){for(let n of e){if(n.link===t)return n;if(n.submenu){let e=this.findMenuItemByPath(n.submenu,t);if(e)return e}}return null}}},o={class:`side-image`},s=[`src`];function c(n,i,a,c,l,u){return r(),t(`div`,o,[e(`img`,{src:l.currentImage,alt:``},null,8,s)])}var l=n(a,[[`render`,c],[`__scopeId`,`data-v-08127df6`]]);export{l as default};
//# sourceMappingURL=ImageContent-C7mJWORV.js.map

View File

@@ -0,0 +1,2 @@
import{s as e,t,u as n,x as r}from"./_plugin-vue_export-helper-CCRG-STz.js";import{i}from"./vuex.esm-bundler-Ci4zImA8.js";var a={name:`ImageContent`,data(){return{defaultImage:`/images/homepage1.png`,currentImage:`/images/homepage1.png`}},computed:{...i([`menuData`])},watch:{$route:{immediate:!0,handler(){this.updateImage()}}},methods:{updateImage(){let e=this.$route.path,t=this.menuData,n=this.findMenuItemByPath(t,e);n&&n.image?this.currentImage=`/images/${n.image}`:this.currentImage=this.defaultImage},findMenuItemByPath(e,t){for(let n of e){if(n.link===t)return n;if(n.submenu){let e=this.findMenuItemByPath(n.submenu,t);if(e)return e}}return null}}},o={class:`side-image`},s=[`src`];function c(t,i,a,c,l,u){return r(),n(`div`,o,[e(`img`,{src:l.currentImage,alt:``},null,8,s)])}var l=t(a,[[`render`,c],[`__scopeId`,`data-v-08127df6`]]);export{l as default};
//# sourceMappingURL=ImageContent-CPT-Hw_S.js.map

View File

@@ -0,0 +1,2 @@
import{E as e,M as t,c as n,ct as r,d as i,i as a,t as o,u as s,w as c}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as l,c as u,i as d}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{i as f}from"./router-Oi46QANG.js";import{r as p,t as m}from"./strings-ldR5sTJW.js";var h={name:`ImageUpload`,data(){return{title:``,description:``,image:null,selectedPage:``,pages:[],images:[]}},methods:{formatDate:m,formatTimeFromDate:p,onFileChange(e){this.image=e.target.files[0]},async uploadImage(){let e=new FormData;e.append(`title`,this.title),e.append(`description`,this.description),e.append(`image`,this.image),e.append(`page`,this.selectedPage);try{await f.post(`/image/`,e),this.fetchImages(),this.resetForm()}catch(e){console.error(`Fehler beim Hochladen des Bildes:`,e)}},async fetchImages(){try{this.images=(await f.get(`/image`)).data}catch(e){console.error(`Fehler beim Abrufen der Bilder:`,e)}},async fetchPages(){try{let e=await f.get(`/menu-data`),t=function(e,n=``){return e.flatMap(e=>{let r=[];return e.submenu&&e.submenu.length&&(r=t(e.submenu,n+e.name+` -> `)),[{value:e.link,caption:n+e.name},...r]})};this.pages=t(e.data)}catch(e){console.error(`Fehler beim Abrufen der Seiten:`,e)}},async updateImage(e){try{await f.put(`/image/${e.id}`,{title:e.title,description:e.description}),this.fetchImages()}catch(e){console.error(`Fehler beim Aktualisieren des Bildes:`,e)}},resetForm(){this.title=``,this.description=``,this.image=null,this.selectedPage=``,document.getElementById(`image`).value=null}},mounted(){this.fetchImages(),this.fetchPages()}},g=[`value`],_={key:0},v=[`src`,`alt`],y=[`onUpdate:modelValue`,`onChange`],b=[`onUpdate:modelValue`,`onChange`];function x(o,f,p,m,h,x){return c(),i(`div`,null,[f[12]||=n(`h1`,null,`Bild hochladen`,-1),n(`form`,{onSubmit:f[4]||=u((...e)=>x.uploadImage&&x.uploadImage(...e),[`prevent`])},[n(`div`,null,[f[5]||=n(`label`,{for:`title`},`Titel`,-1),t(n(`input`,{type:`text`,id:`title`,"onUpdate:modelValue":f[0]||=e=>h.title=e},null,512),[[l,h.title]])]),n(`div`,null,[f[6]||=n(`label`,{for:`description`},`Beschreibung`,-1),t(n(`textarea`,{id:`description`,"onUpdate:modelValue":f[1]||=e=>h.description=e},null,512),[[l,h.description]])]),n(`div`,null,[f[7]||=n(`label`,{for:`image`},`Bild`,-1),n(`input`,{type:`file`,id:`image`,onChange:f[2]||=(...e)=>x.onFileChange&&x.onFileChange(...e)},null,32)]),n(`div`,null,[f[9]||=n(`label`,{for:`page`},`Seite`,-1),t(n(`select`,{id:`page`,"onUpdate:modelValue":f[3]||=e=>h.selectedPage=e},[f[8]||=n(`option`,{value:``},`Keine Seite`,-1),(c(!0),i(a,null,e(h.pages,e=>(c(),i(`option`,{key:e.value,value:e.value},r(e.caption),9,g))),128))],512),[[d,h.selectedPage]])]),f[10]||=n(`button`,{type:`submit`},`Hochladen`,-1)],32),h.images.length?(c(),i(`div`,_,[f[11]||=n(`h2`,null,`Hochgeladene Bilder`,-1),(c(!0),i(a,null,e(h.images,e=>(c(),i(`div`,{key:e.id,class:`uploaded-image`},[n(`img`,{src:`/images/uploads/${e.filename}`,alt:e.title,width:`100`},null,8,v),t(n(`input`,{type:`text`,"onUpdate:modelValue":t=>e.title=t,onChange:t=>x.updateImage(e)},null,40,y),[[l,e.title]]),t(n(`textarea`,{"onUpdate:modelValue":t=>e.description=t,onChange:t=>x.updateImage(e)},null,40,b),[[l,e.description]]),n(`p`,null,r(x.formatDate(e.uploadDate))+` `+r(x.formatTimeFromDate(e.uploadDate)),1)]))),128))])):s(``,!0)])}var S=o(h,[[`render`,x],[`__scopeId`,`data-v-37883b2e`]]);export{S as default};
//# sourceMappingURL=ImageUpload-CEm0koNB.js.map

View File

@@ -0,0 +1 @@
form div[data-v-37883b2e]{margin-bottom:10px}.uploaded-image[data-v-37883b2e]{border:1px solid #e0e0e0;margin:0 0 .5em .5em;padding:10px;display:inline-block}.uploaded-image input[data-v-37883b2e],.uploaded-image textarea[data-v-37883b2e]{width:100%;margin:5px 0}

View File

@@ -0,0 +1,2 @@
import{C as e,E as t,L as n,O as r,c as i,ct as a,d as o,h as s,i as c,j as l,m as u,t as d,w as f}from"./_plugin-vue_export-helper-Conii5fq.js";import{i as p}from"./router-Oi46QANG.js";var m={name:`DefaultComponent`,setup(){let t=n([]),r=async()=>{try{let e=(await p.get(`/menu-data`)).data.find(e=>e.name===`Admin`);e&&(t.value=e.submenu)}catch(e){console.error(`Fehler beim Abrufen der Menü-Daten:`,e)}};return e(()=>{r()}),{adminSubmenu:t}}};function h(e,n,d,p,m,h){let g=r(`router-link`);return f(),o(`div`,null,[n[0]||=i(`h1`,null,`Seitenpflege`,-1),n[1]||=i(`p`,null,`Herzlich Willkommen. Auf diesen Seiten können Sie die Inhalte der Webseiten pflegen.`,-1),i(`ul`,null,[(f(!0),o(c,null,t(p.adminSubmenu,e=>(f(),o(`li`,{key:e.id},[s(g,{to:e.link},{default:l(()=>[u(a(e.name),1)]),_:2},1032,[`to`])]))),128))])])}var g=d(m,[[`render`,h],[`__scopeId`,`data-v-3f6c9349`]]);export{g as default};
//# sourceMappingURL=IndexContent-Cn44wcdc.js.map

View File

@@ -0,0 +1 @@
div[data-v-3f6c9349]{padding:20px}ul[data-v-3f6c9349]{margin:0;padding:0;list-style:none}li[data-v-3f6c9349]{margin:0;padding:0}

View File

@@ -0,0 +1,2 @@
import{t as e}from"./axios-DHQprbt3.js";import{E as t,M as n,c as r,ct as i,d as a,i as o,t as s,u as c,w as l}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as u,c as d}from"./runtime-dom.esm-bundler-CI28bPhn.js";var f={name:`InstitutionManagement`,data(){return{institutions:[],contactPersons:[],institutionData:{name:``,street:``,zipcode:``,city:``,phone:``,fax:``,email:``},selectedInstitution:null,showForm:!1,editMode:!1,editId:null}},created(){this.fetchInstitutions(),this.fetchContactPersons()},methods:{async fetchInstitutions(){try{this.institutions=(await e.get(`/institutions`)).data}catch(e){console.error(`Fehler beim Abrufen der Institutionen:`,e)}},async fetchContactPersons(){try{this.contactPersons=(await e.get(`/contact-persons`)).data}catch(e){console.error(`Fehler beim Abrufen der Kontaktpersonen:`,e)}},async saveInstitution(){try{if(this.editMode)await e.put(`/institutions/${this.editId}`,this.institutionData);else{let t=await e.post(`/institutions`,this.institutionData);this.institutions.push(t.data)}this.resetForm(),await this.fetchInstitutions()}catch(e){console.error(`Fehler beim Speichern der Institution:`,e)}},editInstitution(e){this.institutionData={...e},this.editMode=!0,this.editId=e.id,this.showForm=!0},async deleteInstitution(t){try{await e.delete(`/institutions/${t}`),this.fetchInstitutions()}catch(e){console.error(`Fehler beim Löschen der Institution:`,e)}},resetForm(){this.institutionData={name:``,street:``,zipcode:``,city:``,phone:``,fax:``,email:``},this.editMode=!1,this.editId=null,this.showForm=!1},showCreateForm(){this.resetForm(),this.showForm=!0}}},p={class:`institution-management`},m=[`onClick`],h=[`onClick`];function g(e,s,f,g,_,v){return l(),a(`div`,p,[s[18]||=r(`h2`,null,`Institutionenverwaltung`,-1),r(`form`,{onSubmit:s[8]||=d((...e)=>v.saveInstitution&&v.saveInstitution(...e),[`prevent`])},[s[9]||=r(`label`,{for:`name`},`Name:`,-1),n(r(`input`,{type:`text`,id:`name`,"onUpdate:modelValue":s[0]||=e=>_.institutionData.name=e,required:``},null,512),[[u,_.institutionData.name]]),s[10]||=r(`label`,{for:`street`},`Straße:`,-1),n(r(`input`,{type:`text`,id:`street`,"onUpdate:modelValue":s[1]||=e=>_.institutionData.street=e},null,512),[[u,_.institutionData.street]]),s[11]||=r(`label`,{for:`zipcode`},`PLZ:`,-1),n(r(`input`,{type:`text`,id:`zipcode`,"onUpdate:modelValue":s[2]||=e=>_.institutionData.zipcode=e},null,512),[[u,_.institutionData.zipcode]]),s[12]||=r(`label`,{for:`city`},`Stadt:`,-1),n(r(`input`,{type:`text`,id:`city`,"onUpdate:modelValue":s[3]||=e=>_.institutionData.city=e},null,512),[[u,_.institutionData.city]]),s[13]||=r(`label`,{for:`phone`},`Telefon:`,-1),n(r(`input`,{type:`text`,id:`phone`,"onUpdate:modelValue":s[4]||=e=>_.institutionData.phone=e},null,512),[[u,_.institutionData.phone]]),s[14]||=r(`label`,{for:`fax`},`Fax:`,-1),n(r(`input`,{type:`text`,id:`fax`,"onUpdate:modelValue":s[5]||=e=>_.institutionData.fax=e},null,512),[[u,_.institutionData.fax]]),s[15]||=r(`label`,{for:`email`},`Email:`,-1),n(r(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":s[6]||=e=>_.institutionData.email=e},null,512),[[u,_.institutionData.email]]),s[16]||=r(`button`,{type:`submit`},`Speichern`,-1),_.editMode?(l(),a(`button`,{key:0,type:`button`,onClick:s[7]||=(...e)=>v.resetForm&&v.resetForm(...e)},`Neue Institution erstellen`)):c(``,!0)],32),r(`table`,null,[s[17]||=r(`thead`,null,[r(`tr`,null,[r(`th`,null,`Name`),r(`th`,null,`Bearbeiten`),r(`th`,null,`Löschen`)])],-1),r(`tbody`,null,[(l(!0),a(o,null,t(_.institutions,e=>(l(),a(`tr`,{key:e.id},[r(`td`,null,i(e.name),1),r(`td`,null,[r(`button`,{onClick:t=>v.editInstitution(e)},`Bearbeiten`,8,m)]),r(`td`,null,[r(`button`,{onClick:t=>v.deleteInstitution(e.id)},`Löschen`,8,h)])]))),128))])])])}var _=s(f,[[`render`,g],[`__scopeId`,`data-v-ca4b9ed0`]]);export{_ as default};
//# sourceMappingURL=InstitutionManagement-CVRND2x-.js.map

View File

@@ -0,0 +1 @@
.institution-management[data-v-ca4b9ed0]{border:1px solid #ccc;border-radius:5px;max-width:600px;margin:auto;padding:20px}form[data-v-ca4b9ed0]{flex-direction:column;margin-bottom:20px;display:flex}label[data-v-ca4b9ed0]{margin-top:10px}input[data-v-ca4b9ed0]{margin-top:5px;margin-bottom:10px;padding:8px}button[data-v-ca4b9ed0]{margin-top:10px;padding:10px}table[data-v-ca4b9ed0]{border-collapse:collapse;width:100%;margin-top:20px}th[data-v-ca4b9ed0],td[data-v-ca4b9ed0]{text-align:left;border:1px solid #ccc;padding:10px}th[data-v-ca4b9ed0]{background-color:#f4f4f4}

View File

@@ -0,0 +1,2 @@
import{t as e}from"./axios-DHQprbt3.js";import{M as t,O as n,c as r,d as i,h as a,j as o,m as s,t as c,w as l}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as u,c as d}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{n as f}from"./vuex.esm-bundler-CDO_-3pz.js";import p from"./DialogComponent-Xljax2a4.js";var m={name:`LoginComponent`,components:{DialogComponent:p},data(){return{email:``,password:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{...f([`login`]),async runLogin(){try{let t=await e.post(`/auth/login`,{email:this.email,password:this.password}),n=t.data.token,r=t.data;localStorage.setItem(`token`,n),this.login(r.user),e.defaults.headers.common.Authorization=`Bearer ${n}`,this.$router.push(`/admin/index`)}catch(e){e.response?this.showDialog(`Fehler`,e.response.data.message):this.showDialog(`Ein Fehler ist aufgetreten`,e.message)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`login`};function g(e,c,f,p,m,g){let _=n(`router-link`),v=n(`DialogComponent`);return l(),i(`div`,h,[c[9]||=r(`h2`,null,`Login`,-1),r(`form`,{onSubmit:c[2]||=d((...e)=>g.runLogin&&g.runLogin(...e),[`prevent`])},[c[4]||=r(`label`,{for:`email`},`Email-Adresse:`,-1),t(r(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":c[0]||=e=>m.email=e,required:``},null,512),[[u,m.email]]),c[5]||=r(`label`,{for:`password`},`Passwort:`,-1),t(r(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":c[1]||=e=>m.password=e,required:``},null,512),[[u,m.password]]),c[6]||=r(`button`,{type:`submit`},`Login`,-1)],32),r(`p`,null,[a(_,{to:`/register`},{default:o(()=>[...c[7]||=[s(`Registrieren`,-1)]]),_:1})]),r(`p`,null,[a(_,{to:`/forgot-password`},{default:o(()=>[...c[8]||=[s(`Passwort vergessen?`,-1)]]),_:1})]),a(v,{title:m.dialogTitle,message:m.dialogMessage,modelValue:m.dialogVisible,"onUpdate:modelValue":c[3]||=e=>m.dialogVisible=e,onClose:g.closeDialog},null,8,[`title`,`message`,`modelValue`,`onClose`])])}var _=c(m,[[`render`,g],[`__scopeId`,`data-v-5eeff340`]]);export{_ as default};
//# sourceMappingURL=LoginContent-BuB5FgEi.js.map

View File

@@ -0,0 +1,2 @@
import{t as e}from"./axios-DHQprbt3.js";import{D as t,E as n,m as r,p as i,s as a,t as o,u as s,w as c,x as l}from"./_plugin-vue_export-helper-CCRG-STz.js";import{a as u,r as d}from"./runtime-dom.esm-bundler-D2hy5fF2.js";import{n as f}from"./vuex.esm-bundler-Ci4zImA8.js";import p from"./DialogComponent-BB67UImD.js";var m={name:`LoginComponent`,components:{DialogComponent:p},data(){return{email:``,password:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{...f([`login`]),async runLogin(){try{let t=await e.post(`/auth/login`,{email:this.email,password:this.password}),n=t.data.token,r=t.data;localStorage.setItem(`token`,n),this.login(r.user),e.defaults.headers.common.Authorization=`Bearer ${n}`,this.$router.push(`/admin/index`)}catch(e){e.response?this.showDialog(`Fehler`,e.response.data.message):this.showDialog(`Ein Fehler ist aufgetreten`,e.message)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`login`};function g(e,o,f,p,m,g){let _=c(`router-link`),v=c(`DialogComponent`);return l(),s(`div`,h,[o[9]||=a(`h2`,null,`Login`,-1),a(`form`,{onSubmit:o[2]||=u((...e)=>g.runLogin&&g.runLogin(...e),[`prevent`])},[o[4]||=a(`label`,{for:`email`},`Email-Adresse:`,-1),t(a(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":o[0]||=e=>m.email=e,required:``},null,512),[[d,m.email]]),o[5]||=a(`label`,{for:`password`},`Passwort:`,-1),t(a(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":o[1]||=e=>m.password=e,required:``},null,512),[[d,m.password]]),o[6]||=a(`button`,{type:`submit`},`Login`,-1)],32),a(`p`,null,[r(_,{to:`/register`},{default:n(()=>[...o[7]||=[i(`Registrieren`,-1)]]),_:1})]),a(`p`,null,[r(_,{to:`/forgot-password`},{default:n(()=>[...o[8]||=[i(`Passwort vergessen?`,-1)]]),_:1})]),r(v,{title:m.dialogTitle,message:m.dialogMessage,modelValue:m.dialogVisible,"onUpdate:modelValue":o[3]||=e=>m.dialogVisible=e,onClose:g.closeDialog},null,8,[`title`,`message`,`modelValue`,`onClose`])])}var _=o(m,[[`render`,g],[`__scopeId`,`data-v-5eeff340`]]);export{_ as default};
//# sourceMappingURL=LoginContent-Cf5QdG23.js.map

View File

@@ -0,0 +1 @@
.menu-management[data-v-0b351711]{width:100%;margin:auto}.button-container[data-v-0b351711]{gap:10px;margin-bottom:20px;display:inline-flex}.tree-view[data-v-0b351711]{margin-top:20px}.tree-view ul[data-v-0b351711]{padding:0;list-style-type:none}.tree-view li[data-v-0b351711]{margin-bottom:5px;padding-left:20px}.tree-view .menu-item[data-v-0b351711]{justify-content:space-between;align-items:center;width:100%;display:inline-flex}.tree-view span[data-v-0b351711]{cursor:pointer;color:#000}.tree-view button[data-v-0b351711]{border:none;border-radius:5px;height:1.6em;margin:1px;padding:0 .5em}.tree-view span[data-v-0b351711]:hover{text-decoration:underline}.edit-form[data-v-0b351711]{margin-top:20px}.edit-form label[data-v-0b351711]{margin-bottom:5px;font-weight:700;display:block}.edit-form input[data-v-0b351711]:not([type=checkbox]){margin-bottom:10px;display:block}.edit-form .checkbox-container[data-v-0b351711]{flex-direction:column;margin-right:10px;display:flex}.edit-form .order-id[data-v-0b351711]{width:50px}.edit-form button[data-v-0b351711]{margin-top:5px}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{r as e}from"./index-BrDZxyJr.js";export{e as default};

View File

@@ -0,0 +1 @@
import{r as e}from"./index-wEZjZpSO.js";export{e as default};

View File

@@ -0,0 +1 @@
import{r as e}from"./index-GQBhR5hI.js";export{e as default};

View File

@@ -0,0 +1 @@
.previewinfo[data-v-e0906dd8]{color:#d00000;background-color:#000;padding:2px 10px;font-weight:700;position:absolute;top:93px;left:0}

View File

@@ -0,0 +1,2 @@
import{A as e,O as t,c as n,ct as r,d as i,h as a,s as o,t as s,w as c}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as l}from"./vuex.esm-bundler-CDO_-3pz.js";import{t as u}from"./RenderContentComponent-Cclw0JqW.js";var d={name:`PagePreview`,components:{RenderContentComponent:u},setup(){let t=l(),n=o(()=>t.state.pageContent),r=o(()=>t.state.selectedPage),i=o(()=>t.state.menuData),a=o(()=>t.state.pageTitle),s=e=>{let n=(e,t)=>{for(let r of e){if(r.link===t)return r.pageTitle||r.name;if(r.submenu&&r.submenu.length>0){let e=n(r.submenu,t);if(e)return e}}return``};t.dispatch(`setPageTitle`,n(i.value,e))};return e(()=>{s(r.value)}),{content:n,title:a}}};function f(e,o,s,l,u,d){let f=t(`RenderContentComponent`);return c(),i(`div`,null,[o[0]||=n(`div`,{class:`previewinfo`},`Dies ist eine Vorschau.`,-1),n(`h1`,null,r(l.title),1),a(f,{content:l.content},null,8,[`content`])])}var p=s(d,[[`render`,f],[`__scopeId`,`data-v-e0906dd8`]]);export{p as default};
//# sourceMappingURL=PagePreviewComponent-ZeBPJ3Wr.js.map

View File

@@ -0,0 +1,2 @@
import{t as e}from"./axios-DHQprbt3.js";import{E as t,M as n,c as r,ct as i,d as a,i as o,t as s,u as c,w as l}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as u,c as d}from"./runtime-dom.esm-bundler-CI28bPhn.js";var f={data(){return{positions:[],newPosition:{caption:``},editMode:!1,editId:null}},methods:{async fetchPositions(){this.positions=(await e.get(`/positions`)).data},async addPosition(){if(this.editMode)await e.put(`/positions/${this.editId}`,this.newPosition);else{let t=await e.post(`/positions`,this.newPosition);this.positions.push(t.data)}this.resetForm(),await this.fetchPositions()},async updatePosition(t){await e.put(`/positions/${t.id}`,t),this.fetchPositions()},async deletePosition(t){await e.delete(`/positions/${t}`),this.fetchPositions()},editPosition(e){this.newPosition={...e},this.editMode=!0,this.editId=e.id},resetForm(){this.newPosition={caption:``},this.editMode=!1,this.editId=null}},created(){this.fetchPositions()}},p={class:`position-management`},m=[`onClick`],h=[`onClick`];function g(e,s,f,g,_,v){return l(),a(`div`,p,[s[6]||=r(`h2`,null,`Verwalten der Rollen`,-1),r(`form`,{onSubmit:s[2]||=d((...e)=>v.addPosition&&v.addPosition(...e),[`prevent`])},[s[3]||=r(`label`,{for:`caption`},`Rollenbezeichnung:`,-1),n(r(`input`,{type:`text`,id:`caption`,"onUpdate:modelValue":s[0]||=e=>_.newPosition.caption=e,placeholder:`Rollenbezeichnung`,required:``},null,512),[[u,_.newPosition.caption]]),s[4]||=r(`button`,{type:`submit`},`Speichern`,-1),_.editMode?(l(),a(`button`,{key:0,type:`button`,onClick:s[1]||=(...e)=>v.resetForm&&v.resetForm(...e)},`Neue Rolle erstellen`)):c(``,!0)],32),r(`table`,null,[s[5]||=r(`thead`,null,[r(`tr`,null,[r(`th`,null,`Rollenbezeichnung`),r(`th`,null,`Bearbeiten`),r(`th`,null,`Löschen`)])],-1),r(`tbody`,null,[(l(!0),a(o,null,t(_.positions,e=>(l(),a(`tr`,{key:e.id},[r(`td`,null,i(e.caption),1),r(`td`,null,[r(`button`,{onClick:t=>v.editPosition(e)},`Bearbeiten`,8,m)]),r(`td`,null,[r(`button`,{onClick:t=>v.deletePosition(e.id)},`Löschen`,8,h)])]))),128))])])])}var _=s(f,[[`render`,g],[`__scopeId`,`data-v-8ae8d402`]]);export{_ as default};
//# sourceMappingURL=PositionManagement-Bhcjg9-q.js.map

View File

@@ -0,0 +1 @@
.position-management[data-v-8ae8d402]{border:1px solid #ccc;border-radius:5px;max-width:600px;margin:auto;padding:20px}form[data-v-8ae8d402]{flex-direction:column;margin-bottom:20px;display:flex}label[data-v-8ae8d402]{margin-top:10px}input[data-v-8ae8d402]{margin-top:5px;margin-bottom:10px;padding:8px}button[data-v-8ae8d402]{margin-top:10px;padding:10px}table[data-v-8ae8d402]{border-collapse:collapse;width:100%;margin-top:20px}th[data-v-8ae8d402],td[data-v-8ae8d402]{text-align:left;border:1px solid #ccc;padding:10px}th[data-v-8ae8d402]{background-color:#f4f4f4}

View File

@@ -0,0 +1 @@
.privacy-policy[data-v-5759bc7f]{max-width:800px;margin:auto;padding:20px}h1[data-v-5759bc7f],h2[data-v-5759bc7f],h3[data-v-5759bc7f],h4[data-v-5759bc7f],h5[data-v-5759bc7f]{color:#333;margin-top:20px}p[data-v-5759bc7f]{line-height:1.6}ul[data-v-5759bc7f]{margin:10px 0;padding-left:20px}ul li[data-v-5759bc7f]{list-style-type:disc}a[data-v-5759bc7f]{color:#007bff;text-decoration:none}a[data-v-5759bc7f]:hover{text-decoration:underline}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
import{C as e,E as t,T as n,X as r,b as i,f as a,l as o,p as s,s as c,t as l,u}from"./_plugin-vue_export-helper-CfRVXrSo.js";import{a as d,r as f}from"./runtime-dom.esm-bundler-DdqN-WFI.js";import{i as p}from"./router-BSepcPus.js";var m={name:`RegisterComponent`,components:{},data(){return{name:``,email:``,password:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{async register(){try{let e=await p.post(`/auth/register`,{name:this.name,email:this.email,password:this.password});this.showDialog(`Registrierung erfolgreich`,e.data?.message||`Ihr Konto wurde erfolgreich erstellt.`),this.name=``,this.email=``,this.password=``}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`register`},g={key:0,class:`dialog`},_={class:`dialog-content`};function v(l,p,m,v,y,b){let x=e(`router-link`);return i(),u(`div`,h,[p[11]||=c(`h2`,null,`Registrieren`,-1),c(`form`,{onSubmit:p[3]||=d((...e)=>b.register&&b.register(...e),[`prevent`])},[p[5]||=c(`label`,{for:`name`},`Name:`,-1),t(c(`input`,{type:`text`,id:`name`,"onUpdate:modelValue":p[0]||=e=>y.name=e,required:``},null,512),[[f,y.name]]),p[6]||=c(`label`,{for:`email`},`Email-Adresse:`,-1),t(c(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":p[1]||=e=>y.email=e,required:``},null,512),[[f,y.email]]),p[7]||=c(`label`,{for:`password`},`Passwort:`,-1),t(c(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":p[2]||=e=>y.password=e,required:``},null,512),[[f,y.password]]),p[8]||=c(`button`,{type:`submit`},`Registrieren`,-1)],32),c(`p`,null,[s(x,{to:`/login`},{default:n(()=>[...p[9]||=[a(`Login`,-1)]]),_:1})]),c(`p`,null,[s(x,{to:`/forgot-password`},{default:n(()=>[...p[10]||=[a(`Passwort vergessen?`,-1)]]),_:1})]),y.dialogVisible?(i(),u(`div`,g,[c(`div`,_,[c(`h3`,null,r(y.dialogTitle),1),c(`p`,null,r(y.dialogMessage),1),c(`button`,{type:`button`,onClick:p[4]||=(...e)=>b.closeDialog&&b.closeDialog(...e)},`Schließen`)])])):o(``,!0)])}var y=l(m,[[`render`,v],[`__scopeId`,`data-v-70d90412`]]);export{y as default};
//# sourceMappingURL=RegisterContent-B0Zdr_yl.js.map

View File

@@ -0,0 +1,2 @@
import{M as e,O as t,c as n,ct as r,d as i,h as a,j as o,m as s,t as c,u as l,w as u}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as d,c as f}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{i as p}from"./router-Oi46QANG.js";var m={name:`RegisterComponent`,components:{},data(){return{name:``,email:``,password:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{async register(){try{let e=await p.post(`/auth/register`,{name:this.name,email:this.email,password:this.password});this.showDialog(`Registrierung erfolgreich`,e.data?.message||`Ihr Konto wurde erfolgreich erstellt.`),this.name=``,this.email=``,this.password=``}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`register`},g={key:0,class:`dialog`},_={class:`dialog-content`};function v(c,p,m,v,y,b){let x=t(`router-link`);return u(),i(`div`,h,[p[11]||=n(`h2`,null,`Registrieren`,-1),n(`form`,{onSubmit:p[3]||=f((...e)=>b.register&&b.register(...e),[`prevent`])},[p[5]||=n(`label`,{for:`name`},`Name:`,-1),e(n(`input`,{type:`text`,id:`name`,"onUpdate:modelValue":p[0]||=e=>y.name=e,required:``},null,512),[[d,y.name]]),p[6]||=n(`label`,{for:`email`},`Email-Adresse:`,-1),e(n(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":p[1]||=e=>y.email=e,required:``},null,512),[[d,y.email]]),p[7]||=n(`label`,{for:`password`},`Passwort:`,-1),e(n(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":p[2]||=e=>y.password=e,required:``},null,512),[[d,y.password]]),p[8]||=n(`button`,{type:`submit`},`Registrieren`,-1)],32),n(`p`,null,[a(x,{to:`/login`},{default:o(()=>[...p[9]||=[s(`Login`,-1)]]),_:1})]),n(`p`,null,[a(x,{to:`/forgot-password`},{default:o(()=>[...p[10]||=[s(`Passwort vergessen?`,-1)]]),_:1})]),y.dialogVisible?(u(),i(`div`,g,[n(`div`,_,[n(`h3`,null,r(y.dialogTitle),1),n(`p`,null,r(y.dialogMessage),1),n(`button`,{type:`button`,onClick:p[4]||=(...e)=>b.closeDialog&&b.closeDialog(...e)},`Schließen`)])])):l(``,!0)])}var y=c(m,[[`render`,v],[`__scopeId`,`data-v-70d90412`]]);export{y as default};
//# sourceMappingURL=RegisterContent-BVn7fMWW.js.map

View File

@@ -0,0 +1,2 @@
import{D as e,E as t,Z as n,l as r,m as i,p as a,s as o,t as s,u as c,w as l,x as u}from"./_plugin-vue_export-helper-CCRG-STz.js";import{a as d,r as f}from"./runtime-dom.esm-bundler-D2hy5fF2.js";import{i as p}from"./router-fJ3nWd5S.js";var m={name:`RegisterComponent`,components:{},data(){return{name:``,email:``,password:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},methods:{async register(){try{let e=await p.post(`/auth/register`,{name:this.name,email:this.email,password:this.password});this.showDialog(`Registrierung erfolgreich`,e.data?.message||`Ihr Konto wurde erfolgreich erstellt.`),this.name=``,this.email=``,this.password=``}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`register`},g={key:0,class:`dialog`},_={class:`dialog-content`};function v(s,p,m,v,y,b){let x=l(`router-link`);return u(),c(`div`,h,[p[11]||=o(`h2`,null,`Registrieren`,-1),o(`form`,{onSubmit:p[3]||=d((...e)=>b.register&&b.register(...e),[`prevent`])},[p[5]||=o(`label`,{for:`name`},`Name:`,-1),e(o(`input`,{type:`text`,id:`name`,"onUpdate:modelValue":p[0]||=e=>y.name=e,required:``},null,512),[[f,y.name]]),p[6]||=o(`label`,{for:`email`},`Email-Adresse:`,-1),e(o(`input`,{type:`email`,id:`email`,"onUpdate:modelValue":p[1]||=e=>y.email=e,required:``},null,512),[[f,y.email]]),p[7]||=o(`label`,{for:`password`},`Passwort:`,-1),e(o(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":p[2]||=e=>y.password=e,required:``},null,512),[[f,y.password]]),p[8]||=o(`button`,{type:`submit`},`Registrieren`,-1)],32),o(`p`,null,[i(x,{to:`/login`},{default:t(()=>[...p[9]||=[a(`Login`,-1)]]),_:1})]),o(`p`,null,[i(x,{to:`/forgot-password`},{default:t(()=>[...p[10]||=[a(`Passwort vergessen?`,-1)]]),_:1})]),y.dialogVisible?(u(),c(`div`,g,[o(`div`,_,[o(`h3`,null,n(y.dialogTitle),1),o(`p`,null,n(y.dialogMessage),1),o(`button`,{type:`button`,onClick:p[4]||=(...e)=>b.closeDialog&&b.closeDialog(...e)},`Schließen`)])])):r(``,!0)])}var y=s(m,[[`render`,v],[`__scopeId`,`data-v-70d90412`]]);export{y as default};
//# sourceMappingURL=RegisterContent-DMtCOSqN.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.worship-card[data-v-1fe1f289]{gap:var(--space-4);grid-template-columns:180px 1fr;align-items:start;display:grid}@media (width<=640px){.worship-card[data-v-1fe1f289]{gap:var(--space-3);grid-template-columns:1fr}}.worship-card__left[data-v-1fe1f289]{padding:var(--space-3);color:var(--color-text);background:var(--color-bg-subtle);border:1px solid #00000014;border-radius:6px}.worship-card__date[data-v-1fe1f289]{font-weight:600}.worship-card__day[data-v-1fe1f289],.worship-card__place[data-v-1fe1f289]{margin-top:var(--space-1);color:#000000bf}.worship-card__right[data-v-1fe1f289]{min-width:0}.highlight-time[data-v-1fe1f289]{text-decoration:underline}.neighborhood-invitation[data-v-1fe1f289]{font-weight:600}a[data-v-1fe1f289]{color:var(--color-brand-primary-hover)}.internal-information[data-v-1fe1f289]{color:#a01935;font-style:italic}.stack-tight[data-v-1fe1f289]{gap:var(--space-2)}.image[data-v-f81373cb]{max-width:400px;max-height:300px}.mg-title[data-v-d13976fb]{margin-top:0}.expiry-date[data-v-124908c6]{color:var(--color-text-muted);font-size:.9em;font-style:italic}.stack-tight[data-v-124908c6]{gap:var(--space-2)}.float-list[data-v-124908c6]{gap:var(--space-3);display:grid}.float-item[data-v-124908c6]{margin:0}span[data-v-bfbab2d9]{cursor:pointer;color:#00f;text-decoration:underline}

View File

@@ -0,0 +1,2 @@
import{D as e,E as t,Z as n,l as r,m as i,p as a,s as o,t as s,u as c,w as l,x as u}from"./_plugin-vue_export-helper-CCRG-STz.js";import{a as d,r as f}from"./runtime-dom.esm-bundler-D2hy5fF2.js";import{i as p}from"./router-fJ3nWd5S.js";var m={name:`ResetPasswordComponent`,data(){return{password:``,confirmPassword:``,token:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},computed:{isFormValid(){return this.password.length>=6&&this.password===this.confirmPassword&&this.token}},mounted(){this.token=new URLSearchParams(window.location.search).get(`token`),this.token||this.showDialog(`Fehler`,`Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.`)},methods:{async submitResetPassword(){if(this.password!==this.confirmPassword){this.showDialog(`Fehler`,`Die Passwörter stimmen nicht überein.`);return}try{let e=await p.post(`/auth/reset-password`,{token:this.token,password:this.password});this.showDialog(`Erfolg`,e.data?.message||`Passwort erfolgreich zurückgesetzt. Sie können sich jetzt anmelden.`),this.password=``,this.confirmPassword=``,setTimeout(()=>{this.$router.push(`/auth/login`)},3e3)}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`reset-password`},g=[`disabled`],_={key:0,class:`dialog`},v={class:`dialog-content`};function y(s,p,m,y,b,x){let S=l(`router-link`);return u(),c(`div`,h,[p[7]||=o(`h2`,null,`Neues Passwort setzen`,-1),o(`form`,{onSubmit:p[2]||=d((...e)=>x.submitResetPassword&&x.submitResetPassword(...e),[`prevent`])},[p[4]||=o(`label`,{for:`password`},`Neues Passwort:`,-1),e(o(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":p[0]||=e=>b.password=e,required:``,minlength:`6`},null,512),[[f,b.password]]),p[5]||=o(`label`,{for:`confirmPassword`},`Passwort bestätigen:`,-1),e(o(`input`,{type:`password`,id:`confirmPassword`,"onUpdate:modelValue":p[1]||=e=>b.confirmPassword=e,required:``,minlength:`6`},null,512),[[f,b.confirmPassword]]),o(`button`,{type:`submit`,disabled:!x.isFormValid},`Passwort zurücksetzen`,8,g)],32),o(`p`,null,[i(S,{to:`/login`},{default:t(()=>[...p[6]||=[a(`Zurück zum Login`,-1)]]),_:1})]),b.dialogVisible?(u(),c(`div`,_,[o(`div`,v,[o(`h3`,null,n(b.dialogTitle),1),o(`p`,null,n(b.dialogMessage),1),o(`button`,{type:`button`,onClick:p[3]||=(...e)=>x.closeDialog&&x.closeDialog(...e)},`Schließen`)])])):r(``,!0)])}var b=s(m,[[`render`,y],[`__scopeId`,`data-v-3a4e9538`]]);export{b as default};
//# sourceMappingURL=ResetPasswordContent-C_qVDFqg.js.map

View File

@@ -0,0 +1,2 @@
import{M as e,O as t,c as n,ct as r,d as i,h as a,j as o,m as s,t as c,u as l,w as u}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as d,c as f}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{i as p}from"./router-Oi46QANG.js";var m={name:`ResetPasswordComponent`,data(){return{password:``,confirmPassword:``,token:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},computed:{isFormValid(){return this.password.length>=6&&this.password===this.confirmPassword&&this.token}},mounted(){this.token=new URLSearchParams(window.location.search).get(`token`),this.token||this.showDialog(`Fehler`,`Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.`)},methods:{async submitResetPassword(){if(this.password!==this.confirmPassword){this.showDialog(`Fehler`,`Die Passwörter stimmen nicht überein.`);return}try{let e=await p.post(`/auth/reset-password`,{token:this.token,password:this.password});this.showDialog(`Erfolg`,e.data?.message||`Passwort erfolgreich zurückgesetzt. Sie können sich jetzt anmelden.`),this.password=``,this.confirmPassword=``,setTimeout(()=>{this.$router.push(`/auth/login`)},3e3)}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`reset-password`},g=[`disabled`],_={key:0,class:`dialog`},v={class:`dialog-content`};function y(c,p,m,y,b,x){let S=t(`router-link`);return u(),i(`div`,h,[p[7]||=n(`h2`,null,`Neues Passwort setzen`,-1),n(`form`,{onSubmit:p[2]||=f((...e)=>x.submitResetPassword&&x.submitResetPassword(...e),[`prevent`])},[p[4]||=n(`label`,{for:`password`},`Neues Passwort:`,-1),e(n(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":p[0]||=e=>b.password=e,required:``,minlength:`6`},null,512),[[d,b.password]]),p[5]||=n(`label`,{for:`confirmPassword`},`Passwort bestätigen:`,-1),e(n(`input`,{type:`password`,id:`confirmPassword`,"onUpdate:modelValue":p[1]||=e=>b.confirmPassword=e,required:``,minlength:`6`},null,512),[[d,b.confirmPassword]]),n(`button`,{type:`submit`,disabled:!x.isFormValid},`Passwort zurücksetzen`,8,g)],32),n(`p`,null,[a(S,{to:`/login`},{default:o(()=>[...p[6]||=[s(`Zurück zum Login`,-1)]]),_:1})]),b.dialogVisible?(u(),i(`div`,_,[n(`div`,v,[n(`h3`,null,r(b.dialogTitle),1),n(`p`,null,r(b.dialogMessage),1),n(`button`,{type:`button`,onClick:p[3]||=(...e)=>x.closeDialog&&x.closeDialog(...e)},`Schließen`)])])):l(``,!0)])}var b=c(m,[[`render`,y],[`__scopeId`,`data-v-3a4e9538`]]);export{b as default};
//# sourceMappingURL=ResetPasswordContent-Cxer-PjJ.js.map

View File

@@ -0,0 +1,2 @@
import{C as e,E as t,T as n,X as r,b as i,f as a,l as o,p as s,s as c,t as l,u}from"./_plugin-vue_export-helper-CfRVXrSo.js";import{a as d,r as f}from"./runtime-dom.esm-bundler-DdqN-WFI.js";import{i as p}from"./router-BSepcPus.js";var m={name:`ResetPasswordComponent`,data(){return{password:``,confirmPassword:``,token:``,dialogTitle:``,dialogMessage:``,dialogVisible:!1}},computed:{isFormValid(){return this.password.length>=6&&this.password===this.confirmPassword&&this.token}},mounted(){this.token=new URLSearchParams(window.location.search).get(`token`),this.token||this.showDialog(`Fehler`,`Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.`)},methods:{async submitResetPassword(){if(this.password!==this.confirmPassword){this.showDialog(`Fehler`,`Die Passwörter stimmen nicht überein.`);return}try{let e=await p.post(`/auth/reset-password`,{token:this.token,password:this.password});this.showDialog(`Erfolg`,e.data?.message||`Passwort erfolgreich zurückgesetzt. Sie können sich jetzt anmelden.`),this.password=``,this.confirmPassword=``,setTimeout(()=>{this.$router.push(`/auth/login`)},3e3)}catch(e){let t=e?.response?.data?.message||e?.message||`Ein unbekannter Fehler ist aufgetreten`;this.showDialog(`Fehler`,t)}},showDialog(e,t){this.dialogTitle=e,this.dialogMessage=t,this.dialogVisible=!0},closeDialog(){this.dialogVisible=!1}}},h={class:`reset-password`},g=[`disabled`],_={key:0,class:`dialog`},v={class:`dialog-content`};function y(l,p,m,y,b,x){let S=e(`router-link`);return i(),u(`div`,h,[p[7]||=c(`h2`,null,`Neues Passwort setzen`,-1),c(`form`,{onSubmit:p[2]||=d((...e)=>x.submitResetPassword&&x.submitResetPassword(...e),[`prevent`])},[p[4]||=c(`label`,{for:`password`},`Neues Passwort:`,-1),t(c(`input`,{type:`password`,id:`password`,"onUpdate:modelValue":p[0]||=e=>b.password=e,required:``,minlength:`6`},null,512),[[f,b.password]]),p[5]||=c(`label`,{for:`confirmPassword`},`Passwort bestätigen:`,-1),t(c(`input`,{type:`password`,id:`confirmPassword`,"onUpdate:modelValue":p[1]||=e=>b.confirmPassword=e,required:``,minlength:`6`},null,512),[[f,b.confirmPassword]]),c(`button`,{type:`submit`,disabled:!x.isFormValid},`Passwort zurücksetzen`,8,g)],32),c(`p`,null,[s(S,{to:`/login`},{default:n(()=>[...p[6]||=[a(`Zurück zum Login`,-1)]]),_:1})]),b.dialogVisible?(i(),u(`div`,_,[c(`div`,v,[c(`h3`,null,r(b.dialogTitle),1),c(`p`,null,r(b.dialogMessage),1),c(`button`,{type:`button`,onClick:p[3]||=(...e)=>x.closeDialog&&x.closeDialog(...e)},`Schließen`)])])):o(``,!0)])}var b=l(m,[[`render`,y],[`__scopeId`,`data-v-3a4e9538`]]);export{b as default};
//# sourceMappingURL=ResetPasswordContent-dS-0Sn_n.js.map

View File

@@ -0,0 +1,2 @@
import{c as e,ct as t,d as n,t as r,w as i}from"./_plugin-vue_export-helper-Conii5fq.js";import{r as a}from"./vuex.esm-bundler-CDO_-3pz.js";var o={name:`ServiceUnavailableComponent`,computed:{...a([`menuLoadError`]),message(){return this.menuLoadError||`Die Website ist vorübergehend nicht vollständig erreichbar.`}}},s={class:`service-unavailable`};function c(r,a,o,c,l,u){return i(),n(`div`,s,[a[0]||=e(`h1`,null,`Vorübergehend nicht erreichbar`,-1),e(`p`,null,t(u.message),1),a[1]||=e(`p`,{class:`hint`},` Es liegt vermutlich ein technisches Problem vor (z.\xA0B. die Datenbank). Bitte laden Sie die Seite in einigen Minuten erneut. `,-1)])}var l=r(o,[[`render`,c],[`__scopeId`,`data-v-73264a8d`]]);export{l as default};
//# sourceMappingURL=ServiceUnavailableComponent-8ZFfJRMP.js.map

View File

@@ -0,0 +1,2 @@
import{Z as e,s as t,t as n,u as r,x as i}from"./_plugin-vue_export-helper-CCRG-STz.js";import{r as a}from"./vuex.esm-bundler-Ci4zImA8.js";var o={name:`ServiceUnavailableComponent`,computed:{...a([`menuLoadError`]),message(){return this.menuLoadError||`Die Website ist vorübergehend nicht vollständig erreichbar.`}}},s={class:`service-unavailable`};function c(n,a,o,c,l,u){return i(),r(`div`,s,[a[0]||=t(`h1`,null,`Vorübergehend nicht erreichbar`,-1),t(`p`,null,e(u.message),1),a[1]||=t(`p`,{class:`hint`},` Es liegt vermutlich ein technisches Problem vor (z.\xA0B. die Datenbank). Bitte laden Sie die Seite in einigen Minuten erneut. `,-1)])}var l=n(o,[[`render`,c],[`__scopeId`,`data-v-73264a8d`]]);export{l as default};
//# sourceMappingURL=ServiceUnavailableComponent-DqbVYlgq.js.map

View File

@@ -0,0 +1 @@
.impressum[data-v-5935f2f2]{max-width:800px;margin:auto;padding:20px}h1[data-v-5935f2f2],h2[data-v-5935f2f2],h3[data-v-5935f2f2],h4[data-v-5935f2f2]{color:#333;margin-top:20px}p[data-v-5935f2f2]{line-height:1.6}a[data-v-5935f2f2]{color:#007bff;text-decoration:none}a[data-v-5935f2f2]:hover{text-decoration:underline}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.upload-files[data-v-8ac38dc3]{width:100%;margin:auto}.upload-files div[data-v-8ac38dc3]{margin-bottom:10px}.file-list[data-v-8ac38dc3]{margin-top:20px;padding:0;list-style-type:none}.file-list li[data-v-8ac38dc3]{border-bottom:1px solid #ddd;padding:10px 0}.file-info[data-v-8ac38dc3]{cursor:pointer;justify-content:space-between;display:flex}.file-title[data-v-8ac38dc3]{font-weight:700}.file-name[data-v-8ac38dc3]{color:#555}.file-date[data-v-8ac38dc3]{color:#888}

View File

@@ -0,0 +1,2 @@
import{C as e,E as t,L as n,M as r,c as i,ct as a,d as o,i as s,t as c,w as l}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as u}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{i as d}from"./router-Oi46QANG.js";var f={name:`UploadFilesComponent`,setup(){let t=n(null),r=n(``),i=n([]);return e(async()=>{try{i.value=(await d.get(`/files`)).data}catch(e){console.error(`Fehler beim Abrufen der Dateien:`,e)}}),{fileToUpload:t,fileTitle:r,uploadedFiles:i,handleFileUpload:e=>{t.value=e.target.files[0]},uploadFiles:async()=>{if(!t.value||!r.value){alert(`Bitte wählen Sie eine Datei aus und geben Sie einen Titel ein.`);return}let e=new FormData;e.append(`file`,t.value),e.append(`title`,r.value);try{let n=(await d.post(`/files`,e,{headers:{"Content-Type":`multipart/form-data`}})).data;i.value.push({id:n.id,title:n.title,originalName:n.originalName,createdAt:n.createdAt,hash:n.hash}),t.value=null,r.value=``}catch(e){console.error(`Fehler beim Hochladen der Datei:`,e)}},downloadFile:async e=>{let t=e.originalName.substring(e.originalName.lastIndexOf(`.`)),n=await d.get(`/files/download/${e.hash}`,{responseType:`blob`}),r=new Blob([n.data],{type:n.data.type}),i=document.createElement(`a`);i.href=window.URL.createObjectURL(r),i.download=`${e.title}${t}`,i.click(),window.URL.revokeObjectURL(i.href)},formatDate:e=>new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`long`,day:`numeric`})}}},p={class:`upload-files`},m={class:`file-list`},h={class:`file-info`},g=[`onClick`],_=[`onClick`],v={class:`file-date`};function y(e,n,c,d,f,y){return l(),o(`div`,p,[n[5]||=i(`h2`,null,`Dateien hochladen`,-1),i(`div`,null,[n[3]||=i(`label`,{for:`file-upload`},`Datei auswählen:`,-1),i(`input`,{id:`file-upload`,type:`file`,onChange:n[0]||=(...e)=>d.handleFileUpload&&d.handleFileUpload(...e)},null,32)]),i(`div`,null,[n[4]||=i(`label`,{for:`file-title`},`Titel eingeben:`,-1),r(i(`input`,{id:`file-title`,type:`text`,"onUpdate:modelValue":n[1]||=e=>d.fileTitle=e},null,512),[[u,d.fileTitle]])]),i(`button`,{onClick:n[2]||=(...e)=>d.uploadFiles&&d.uploadFiles(...e)},`Hochladen`),i(`ul`,m,[(l(!0),o(s,null,t(d.uploadedFiles,e=>(l(),o(`li`,{key:e.id},[i(`div`,h,[i(`span`,{class:`file-title`,onClick:t=>d.downloadFile(e)},a(e.title),9,g),i(`span`,{class:`file-name`,onClick:t=>d.downloadFile(e)},a(e.originalName),9,_),i(`span`,v,a(d.formatDate(e.createdAt)),1)])]))),128))])])}var b=c(f,[[`render`,y],[`__scopeId`,`data-v-8ac38dc3`]]);export{b as default};
//# sourceMappingURL=UploadFileManagement-Dg4Khs4s.js.map

View File

@@ -0,0 +1 @@
.user-administration[data-v-b4cc64c6]{padding:20px}.user-administration h1[data-v-b4cc64c6],.user-administration h2[data-v-b4cc64c6]{margin-bottom:20px}.user-administration form[data-v-b4cc64c6]{flex-direction:column;margin-bottom:20px;display:flex}.user-administration label[data-v-b4cc64c6]{margin-top:10px}.user-administration input[type=text][data-v-b4cc64c6],.user-administration input[type=email][data-v-b4cc64c6],.user-administration input[type=password][data-v-b4cc64c6]{padding:5px;font-size:16px}.user-administration ul[data-v-b4cc64c6]{padding:0;list-style-type:none}.user-administration li[data-v-b4cc64c6]{cursor:pointer;border-bottom:1px solid #ddd;padding:10px}.user-administration li[data-v-b4cc64c6]:hover{background-color:#f0f0f0}

View File

@@ -0,0 +1,2 @@
import{E as e,M as t,c as n,ct as r,d as i,i as a,t as o,u as s,w as c}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as l,c as u,r as d}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{i as f}from"./router-Oi46QANG.js";var p={name:`UserAdministration`,data(){return{users:[],currentUser:{name:``,email:``,password:``,active:!1},isCreating:!0}},computed:{formTitle(){return this.isCreating?`Benutzer erstellen`:`Benutzer bearbeiten`}},methods:{async fetchUsers(){try{this.users=(await f.get(`/users`)).data}catch(e){console.error(`Fehler beim Abrufen der Benutzer:`,e)}},async saveUser(){this.isCreating?await this.createUser():await this.updateUser(),this.resetForm(),this.fetchUsers()},async createUser(){try{await f.post(`/users`,this.currentUser)}catch(e){console.error(`Fehler beim Erstellen des Benutzers:`,e)}},async updateUser(){try{await f.put(`/users/${this.currentUser.id}`,this.currentUser)}catch(e){console.error(`Fehler beim Aktualisieren des Benutzers:`,e)}},editUser(e){this.currentUser={...e,password:``},this.isCreating=!1},resetForm(){this.currentUser={name:``,email:``,password:``,active:!1},this.isCreating=!0}},mounted(){this.fetchUsers()}},m={class:`user-administration`},h=[`required`],g={type:`submit`},_={key:1},v=[`onClick`];function y(o,f,p,y,b,x){return c(),i(`div`,m,[f[11]||=n(`h1`,null,`Benutzerverwaltung`,-1),n(`h2`,null,r(x.formTitle),1),n(`form`,{onSubmit:f[4]||=u((...e)=>x.saveUser&&x.saveUser(...e),[`prevent`])},[f[7]||=n(`label`,{for:`name`},`Name:`,-1),t(n(`input`,{id:`name`,"onUpdate:modelValue":f[0]||=e=>b.currentUser.name=e,required:``},null,512),[[l,b.currentUser.name]]),f[8]||=n(`label`,{for:`email`},`Email:`,-1),t(n(`input`,{id:`email`,"onUpdate:modelValue":f[1]||=e=>b.currentUser.email=e,type:`email`,required:``},null,512),[[l,b.currentUser.email]]),f[9]||=n(`label`,{for:`password`},`Passwort:`,-1),t(n(`input`,{id:`password`,"onUpdate:modelValue":f[2]||=e=>b.currentUser.password=e,type:`password`,required:b.isCreating},null,8,h),[[l,b.currentUser.password]]),n(`div`,null,[f[6]||=n(`label`,{for:`active`},`Aktiv:`,-1),t(n(`input`,{id:`active`,"onUpdate:modelValue":f[3]||=e=>b.currentUser.active=e,type:`checkbox`},null,512),[[d,b.currentUser.active]])]),n(`button`,g,r(b.isCreating?`Erstellen`:`Aktualisieren`),1)],32),b.isCreating?s(``,!0):(c(),i(`button`,{key:0,onClick:f[5]||=(...e)=>x.resetForm&&x.resetForm(...e)},`Zurück zu Benutzer erstellen`)),b.users.length?(c(),i(`div`,_,[f[10]||=n(`h2`,null,`Vorhandene Benutzer`,-1),n(`ul`,null,[(c(!0),i(a,null,e(b.users,e=>(c(),i(`li`,{key:e.id,onClick:t=>x.editUser(e)},r(e.name)+` (`+r(e.email)+`) `,9,v))),128))])])):s(``,!0)])}var b=o(p,[[`render`,y],[`__scopeId`,`data-v-b4cc64c6`]]);export{b as default};
//# sourceMappingURL=UserAdministration-DDKpXIoG.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
function e(e){let[t,n]=e.split(`:`);return`${t}:${n}`}function t(e){return new Date(e).toLocaleDateString(`de-DE`,{year:`numeric`,month:`2-digit`,day:`2-digit`})}function n(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}export{e as n,n as r,t};
//# sourceMappingURL=strings-ldR5sTJW.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -5,14 +5,14 @@
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="icon" href="/favicon.ico" />
<title>Miriamgemeinde</title>
<script type="module" crossorigin src="/assets/index-8qzlau4y.js"></script>
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-CfRVXrSo.js">
<script type="module" crossorigin src="/assets/index-wEZjZpSO.js"></script>
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-Conii5fq.js">
<link rel="modulepreload" crossorigin href="/assets/axios-DHQprbt3.js">
<link rel="modulepreload" crossorigin href="/assets/vuex.esm-bundler-DEh690_n.js">
<link rel="modulepreload" crossorigin href="/assets/vue-router-qDNOCMCn.js">
<link rel="modulepreload" crossorigin href="/assets/router-PO6YAHA1.js">
<link rel="modulepreload" crossorigin href="/assets/runtime-dom.esm-bundler-DdqN-WFI.js">
<link rel="stylesheet" crossorigin href="/assets/index-DoqdRJqa.css">
<link rel="modulepreload" crossorigin href="/assets/vuex.esm-bundler-CDO_-3pz.js">
<link rel="modulepreload" crossorigin href="/assets/vue-router-TV9y4Y2n.js">
<link rel="modulepreload" crossorigin href="/assets/router-Oi46QANG.js">
<link rel="modulepreload" crossorigin href="/assets/runtime-dom.esm-bundler-CI28bPhn.js">
<link rel="stylesheet" crossorigin href="/assets/index-BAyMRszK.css">
</head>
<body>
<noscript>

View File

@@ -1,7 +1,7 @@
<template>
<footer class="footer">
<div class="left-links">
<router-link class="login-link" to="/auth/login" v-if="!isLoggedIn">Login</router-link>
<router-link v-if="!isLoggedIn" class="login-link" to="/auth/login">Login</router-link>
<a v-if="isLoggedIn" @click="handleLogout" class="logout-link">Logout</a>
</div>
<div class="right-links">
@@ -38,6 +38,8 @@ export default {
bottom: 0;
left: 0;
width: 100%;
position: relative;
z-index: 2;
padding: var(--space-2) var(--space-3);
display: flex;
justify-content: space-between;

View File

@@ -125,7 +125,7 @@ export default {
</script>
<style scoped>
@import '~vue-multiselect/dist/vue-multiselect.css';
@import 'vue-multiselect/dist/vue-multiselect.css';
.contact-person-form {
max-width: 400px;
margin: auto;

View File

@@ -103,18 +103,18 @@ import { useStore } from 'vuex';
import axios from '../../axios';
import { EditorContent, useEditor } from '@tiptap/vue-3';
import StarterKit from '@tiptap/starter-kit';
import Table from '@tiptap/extension-table';
import TableRow from '@tiptap/extension-table-row';
import Bold from '@tiptap/extension-bold';
import Italic from '@tiptap/extension-italic';
import Underline from '@tiptap/extension-underline';
import Strike from '@tiptap/extension-strike';
import BulletList from '@tiptap/extension-bullet-list';
import OrderedList from '@tiptap/extension-ordered-list';
import Heading from '@tiptap/extension-heading';
import Link from '@tiptap/extension-link';
import TextStyle from '@tiptap/extension-text-style';
import Color from '@tiptap/extension-color';
import { Table } from '@tiptap/extension-table';
import { TableRow } from '@tiptap/extension-table';
import { Bold } from '@tiptap/extension-bold';
import { Italic } from '@tiptap/extension-italic';
import { Underline } from '@tiptap/extension-underline';
import { Strike } from '@tiptap/extension-strike';
import { BulletList } from '@tiptap/extension-bullet-list';
import { OrderedList } from '@tiptap/extension-ordered-list';
import { Heading } from '@tiptap/extension-heading';
import { Link } from '@tiptap/extension-link';
import { TextStyle } from '@tiptap/extension-text-style';
import { Color } from '@tiptap/extension-color';
import { CustomTableCell, CustomTableHeader } from '../../extensions/CustomTableCell';
import WorshipDialog from '@/components/WorshipDialog.vue';
import AddImageDialog from '@/components/AddImageDialog.vue';

View File

@@ -1,12 +1,35 @@
import { createRouter, createWebHistory } from 'vue-router';
import store from './store';
const ROUTE_NAMES = {
ADMIN_EDIT_PAGES: 'admin-edit-pages',
REGISTER: 'register',
FORGOT_PASSWORD: 'forgot-password',
RESET_PASSWORD: 'reset-password',
AUTH_LOGIN: 'auth-login',
HOME: 'home',
TERMS: 'terms',
PRIVACY_POLICY: 'privacy-policy',
NOT_FOUND: 'not-found',
};
// Vite kann `import(\`./content/${name}.vue\`)` nicht zuverlässig auflösen.
// Daher bauen wir eine statische Import-Matrix über import.meta.glob.
const contentModules = import.meta.glob('./content/**/*.vue');
function loadComponent(componentName) {
return () => {
if (!componentName) {
return import('./content/DefaultComponent.vue');
return async () => {
const normalized = componentName || 'DefaultComponent';
const key = `./content/${normalized}.vue`;
const loader = contentModules[key];
if (!loader) {
// Fallback, falls DB/Backend einen unbekannten Komponenten-Namen liefert.
const fallback = contentModules['./content/DefaultComponent.vue'];
return fallback ? fallback() : import('./content/DefaultComponent.vue');
}
return import(`./content/${componentName}.vue`);
return loader();
};
}
@@ -60,23 +83,23 @@ router.beforeEach(async (to, from, next) => {
addForgotPasswordRoute();
addResetPasswordRoute();
addAuthLoginRoute();
const fallbackMain = store.state.menuLoadError
? 'ServiceUnavailableComponent'
: 'DefaultComponent';
router.addRoute({
path: '/:pathMatch(.*)*',
components: {
default: loadComponent(fallbackMain),
rightColumn: loadComponent('ImageContent')
}
});
// NotFound-Route existiert bereits als Core-Route; bei DB-Ausfall aktualisieren wir sie.
if (store.state.menuLoadError && router.hasRoute(ROUTE_NAMES.NOT_FOUND)) {
router.removeRoute(ROUTE_NAMES.NOT_FOUND);
router.addRoute({
path: '/:pathMatch(.*)*',
components: {
default: loadComponent('ServiceUnavailableComponent'),
rightColumn: loadComponent('ImageContent')
},
name: ROUTE_NAMES.NOT_FOUND
});
}
next({ ...to, replace: true });
} else {
// Sicherstellen, dass die Login-Route immer verfügbar ist
if (!router.hasRoute('auth-login')) {
addAuthLoginRoute();
}
// Sicherstellen, dass Kernrouten immer verfügbar sind
ensureCoreRoutes();
if (to.matched.some(record => record.meta.requiresAuth) && !store.getters.isLoggedIn) {
next('/auth/login');
} else {
@@ -86,8 +109,8 @@ router.beforeEach(async (to, from, next) => {
});
function addEditPagesRoute() {
if (router.hasRoute('/admin/edit-pages')) {
router.removeRoute('/admin/edit-pages');
if (router.hasRoute(ROUTE_NAMES.ADMIN_EDIT_PAGES)) {
router.removeRoute(ROUTE_NAMES.ADMIN_EDIT_PAGES);
}
router.addRoute({
path: '/admin/edit-pages',
@@ -95,13 +118,13 @@ function addEditPagesRoute() {
default: loadComponent('admin/PagePreviewComponent'),
rightColumn: loadComponent('admin/EditPagesComponent')
},
name: 'admin-edit-pages'
name: ROUTE_NAMES.ADMIN_EDIT_PAGES
});
}
function addRegisterRoute() {
if (router.hasRoute('/register')) {
router.removeRoute('/register');
if (router.hasRoute(ROUTE_NAMES.REGISTER)) {
router.removeRoute(ROUTE_NAMES.REGISTER);
}
router.addRoute({
path: '/register',
@@ -109,13 +132,13 @@ function addRegisterRoute() {
default: () => import('./content/authentication/RegisterContent.vue'),
rightColumn: loadComponent('ImageContent')
},
name: 'register'
name: ROUTE_NAMES.REGISTER
});
}
function addForgotPasswordRoute() {
if (router.hasRoute('/forgot-password')) {
router.removeRoute('/forgot-password');
if (router.hasRoute(ROUTE_NAMES.FORGOT_PASSWORD)) {
router.removeRoute(ROUTE_NAMES.FORGOT_PASSWORD);
}
router.addRoute({
path: '/forgot-password',
@@ -123,13 +146,13 @@ function addForgotPasswordRoute() {
default: () => import('./content/authentication/ForgotPasswordContent.vue'),
rightColumn: loadComponent('ImageContent')
},
name: 'forgot-password'
name: ROUTE_NAMES.FORGOT_PASSWORD
});
}
function addResetPasswordRoute() {
if (router.hasRoute('/reset-password')) {
router.removeRoute('/reset-password');
if (router.hasRoute(ROUTE_NAMES.RESET_PASSWORD)) {
router.removeRoute(ROUTE_NAMES.RESET_PASSWORD);
}
router.addRoute({
path: '/reset-password',
@@ -137,13 +160,13 @@ function addResetPasswordRoute() {
default: () => import('./content/authentication/ResetPasswordContent.vue'),
rightColumn: loadComponent('ImageContent')
},
name: 'reset-password'
name: ROUTE_NAMES.RESET_PASSWORD
});
}
function addAuthLoginRoute() {
if (router.hasRoute('/auth/login')) {
router.removeRoute('/auth/login');
if (router.hasRoute(ROUTE_NAMES.AUTH_LOGIN)) {
router.removeRoute(ROUTE_NAMES.AUTH_LOGIN);
}
router.addRoute({
path: '/auth/login',
@@ -151,14 +174,86 @@ function addAuthLoginRoute() {
default: () => import('./content/authentication/LoginContent.vue'),
rightColumn: loadComponent('ImageContent')
},
name: 'auth-login'
name: ROUTE_NAMES.AUTH_LOGIN
});
}
function addHomeRoute() {
if (router.hasRoute(ROUTE_NAMES.HOME)) {
router.removeRoute(ROUTE_NAMES.HOME);
}
router.addRoute({
path: '/',
components: {
default: loadComponent('DefaultContent'),
rightColumn: loadComponent('ImageContent')
},
name: ROUTE_NAMES.HOME
});
}
function addTermsRoute() {
if (router.hasRoute(ROUTE_NAMES.TERMS)) {
router.removeRoute(ROUTE_NAMES.TERMS);
}
router.addRoute({
path: '/terms',
components: {
default: () => import('./content/disclaimers/TermsComponent.vue'),
rightColumn: loadComponent('ImageContent')
},
name: ROUTE_NAMES.TERMS
});
}
function addPrivacyPolicyRoute() {
if (router.hasRoute(ROUTE_NAMES.PRIVACY_POLICY)) {
router.removeRoute(ROUTE_NAMES.PRIVACY_POLICY);
}
router.addRoute({
path: '/privacy-policy',
components: {
default: () => import('./content/disclaimers/PrivacyPolicyComponent.vue'),
rightColumn: loadComponent('ImageContent')
},
name: ROUTE_NAMES.PRIVACY_POLICY
});
}
function ensureNotFoundRoute() {
// Catch-All nur einmal registrieren (sonst Doppelrouten/unklares Matching)
if (router.hasRoute(ROUTE_NAMES.NOT_FOUND)) return;
router.addRoute({
path: '/:pathMatch(.*)*',
components: {
default: loadComponent('DefaultComponent'),
rightColumn: loadComponent('ImageContent')
},
name: ROUTE_NAMES.NOT_FOUND
});
}
function ensureCoreRoutes() {
if (!router.hasRoute(ROUTE_NAMES.ADMIN_EDIT_PAGES)) addEditPagesRoute();
if (!router.hasRoute(ROUTE_NAMES.REGISTER)) addRegisterRoute();
if (!router.hasRoute(ROUTE_NAMES.FORGOT_PASSWORD)) addForgotPasswordRoute();
if (!router.hasRoute(ROUTE_NAMES.RESET_PASSWORD)) addResetPasswordRoute();
if (!router.hasRoute(ROUTE_NAMES.AUTH_LOGIN)) addAuthLoginRoute();
if (!router.hasRoute(ROUTE_NAMES.HOME)) addHomeRoute();
if (!router.hasRoute(ROUTE_NAMES.TERMS)) addTermsRoute();
if (!router.hasRoute(ROUTE_NAMES.PRIVACY_POLICY)) addPrivacyPolicyRoute();
ensureNotFoundRoute();
}
addEditPagesRoute();
addRegisterRoute();
addForgotPasswordRoute();
addResetPasswordRoute();
addAuthLoginRoute();
addHomeRoute();
addTermsRoute();
addPrivacyPolicyRoute();
ensureNotFoundRoute();
export default router;