Compare commits

..

16 Commits

Author SHA1 Message Date
5f5fb83e9a Merge pull request 'Update dependency jsonwebtoken to v9.0.3' (#3) from renovate/jsonwebtoken-9.x-lockfile into main
Reviewed-on: #3
2025-12-19 16:14:10 +01:00
f15598b2c1 Merge pull request 'Update dependency body-parser to v1.20.4' (#2) from renovate/body-parser-1.x-lockfile into main
Reviewed-on: #2
2025-12-19 16:14:02 +01:00
979732d545 Update dependency jsonwebtoken to v9.0.3 2025-12-19 16:12:32 +01:00
d9e0b07f0c Update dependency body-parser to v1.20.4 2025-12-19 16:12:24 +01:00
b5ac5df38d Merge pull request 'Configure Renovate' (#1) from renovate/configure into main
Reviewed-on: #1
2025-12-19 16:09:02 +01:00
c982f34823 Add renovate.json 2025-12-19 15:58:37 +01:00
Torsten Schulz (local)
c390228ed9 Update database configuration and improve WorshipRender component: Change database connection details to use 'miriamgemeinde' and 'localhost', and enhance conditional rendering in WorshipRender.vue for better handling of event place information. 2025-11-23 00:32:23 +01:00
Torsten Schulz (local)
9c924071f4 Update package-lock.json and configuration files: Upgrade lockfile version to 3, update @vue/cli-plugin-babel and @vue/cli-plugin-eslint to version 5.0.0, and change database connection details to use 'miriam_user' and host 'tsschulz.de' with the new password. 2025-11-23 00:24:05 +01:00
Torsten Schulz (local)
2d1ed43312 Refactor babel.config.js: Simplify Babel preset configuration by using the package name instead of a direct path for improved readability and maintainability. 2025-11-22 23:37:34 +01:00
Torsten Schulz (local)
11cf961ed8 Update package.json: Upgrade @vue/cli-plugin-babel and @vue/cli-plugin-eslint to version 5.0.0, removing the previous version 3.12.1 for better compatibility. 2025-11-22 23:33:04 +01:00
Torsten Schulz (local)
cd9e645941 Update babel.config.js: Use direct path for Babel preset to ensure reliable resolution across different Node/npm versions. 2025-11-22 23:29:40 +01:00
Torsten Schulz (local)
7bd236aa82 Update package.json: Re-add @vue/cli-plugin-babel dependency to version 3.12.1 in devDependencies. 2025-11-22 23:24:53 +01:00
Torsten Schulz (local)
f96e0a1f22 Update package dependencies: Downgrade @vue/cli and its plugins to version 4.2.2 and 3.12.1 respectively, and update various Babel packages to version 7.28.5. Remove unused Apollo packages and add new dependencies for vue-jscodeshift-adapter and vue-sfc-descriptor-to-string. 2025-11-22 23:17:23 +01:00
Torsten Schulz (local)
45190ed7a5 Füge eine Überprüfung hinzu, um endlose Wiederholungen beim Laden von Menü-Daten zu verhindern: Implementiere eine Flagge, die sicherstellt, dass die Menü-Daten nur einmal geladen werden, bevor die Routen generiert werden. 2025-11-22 22:47:51 +01:00
Torsten Schulz (local)
79f2ca8382 Füge eine Überprüfung hinzu, um endlose Wiederholungen beim Laden von Menü-Daten zu verhindern: Implementiere eine Flagge, die sicherstellt, dass die Menü-Daten nur einmal geladen werden, bevor die Routen generiert werden. 2025-11-22 22:31:28 +01:00
Torsten Schulz (local)
550ed97a11 Aktualisiere die Axios-Konfiguration: Setze die Basis-URL standardmäßig auf '/api' und ermögliche die Verwendung einer Umgebungsvariablen in Entwicklungsumgebungen. Verhindere Mixed-Content-Probleme durch Umstellung auf HTTPS. Ändere den Import von Axios im Store, um die neue Konfiguration zu nutzen. 2025-11-22 22:23:08 +01:00
9 changed files with 7520 additions and 18609 deletions

View File

@@ -2,4 +2,4 @@ module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
};

View File

@@ -1,21 +1,21 @@
{
"development": {
"username": "miriam_user",
"password": "qTCTTWwpEwy3vPDU",
"username": "miriamgemeinde",
"password": "hitomisan",
"database": "miriamgemeinde",
"host": "tsschulz.de",
"host": "localhost",
"dialect": "mysql"
},
"test": {
"username": "miriam_user",
"password": "qTCTTWwpEwy3vPDU",
"password": "hitomisan",
"database": "miriamgemeinde",
"host": "tsschulz.de",
"dialect": "mysql"
},
"production": {
"username": "miriam_user",
"password": "qTCTTWwpEwy3vPDU",
"password": "hitomisan",
"database": "miriamgemeinde",
"host": "tsschulz.de",
"dialect": "mysql"

26050
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -26,7 +26,7 @@
"@tiptap/extension-underline": "^2.4.0",
"@tiptap/starter-kit": "^2.4.0",
"@tiptap/vue-3": "^2.4.0",
"@vue/cli": "^5.0.8",
"@vue/cli": "^4.2.2",
"axios": "^1.7.2",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",

6
renovate.json Normal file
View File

@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}

View File

@@ -2,20 +2,11 @@ import axios from 'axios';
import store from './store';
import router from './router';
// Basis-URL für das Backend ermitteln
let baseURL = process.env.VUE_APP_BACKEND_URL || '/api';
// Mixed-Content vermeiden: wenn die Seite über HTTPS läuft,
// aber die Konfiguration "http://" verwendet, auf "https://" umschalten.
if (typeof window !== 'undefined') {
const isHttps = window.location.protocol === 'https:';
if (isHttps && baseURL.startsWith('http://')) {
baseURL = baseURL.replace(/^http:/, 'https:');
}
}
axios.defaults.baseURL = baseURL;
console.log('Axios baseURL:', baseURL);
// Einheitliche Basis-URL:
// - immer relativ zur aktuellen Origin
// - kein absoluter http/https-Host → verhindert Mixed-Content-Probleme
axios.defaults.baseURL = '/api';
console.log('Axios baseURL:', axios.defaults.baseURL);
axios.interceptors.request.use(
config => {

View File

@@ -11,22 +11,35 @@
<div v-if="worship.neighborInvitation" class="neighborhood-invitation">Einladung zum Gottesdienst im
Nachbarschaftsraum:</div>
<h3>
<span :class="worship.highlightTime ? 'highlight-time' : ''">{{ formatTime(worship.time)
}}</span>&nbsp;-&nbsp;
{{ worship.title ? worship.title : `Gottesdienst in ${worship.eventPlace.name}` }}
<span
:class="worship.highlightTime ? 'highlight-time' : ''"
>{{ formatTime(worship.time) }}</span>&nbsp;-&nbsp;
{{
worship.title
? worship.title
: (worship.eventPlace && worship.eventPlace.name
? `Gottesdienst in ${worship.eventPlace.name}`
: 'Gottesdienst')
}}
</h3>
<div v-if="worship.organizer">Gestaltung: {{ worship.organizer }}</div>
<div v-if="worship.sacristanService" class="internal-information">Küsterdienst: {{ worship.sacristanService }}</div>
<div v-if="worship.collection">Kollekte: {{ worship.collection }}</div>
<div v-if="worship.organPlaying" class="internal-information">Orgelspiel: {{ worship.organPlaying }}</div>
<div v-if="worship.address">{{ worship.address }}</div>
<div v-if="!worship.address && worship.eventPlace.id && worship.eventPlace.id">
Adresse: {{ worship.eventPlace.name }}, {{ worship.eventPlace.street }}, {{
worship.eventPlace.city }}
<div
v-if="!worship.address && worship.eventPlace && worship.eventPlace.id"
>
Adresse: {{ worship.eventPlace.name }}, {{ worship.eventPlace.street }}, {{ worship.eventPlace.city }}
</div>
<div v-if="worship.selfInformation" class="selfinformation">Bitte informieren Sie sich auch auf den
<a v-if="worship.eventPlace.website" :href="worship.eventPlace.website" target="_blank">Internetseiten dieser Gemeinde!</a><span
v-else>Internetseiten dieser Gemeinde!</span>
<div v-if="worship.selfInformation" class="selfinformation">
Bitte informieren Sie sich auch auf den
<a
v-if="worship.eventPlace && worship.eventPlace.website"
:href="worship.eventPlace.website"
target="_blank"
>Internetseiten dieser Gemeinde!</a>
<span v-else>Internetseiten dieser Gemeinde!</span>
</div>
</td>
</tr>

View File

@@ -45,8 +45,13 @@ const router = createRouter({
routes: []
});
// Verhindert endlose Wiederholungen von fehlgeschlagenen Menü-Ladeversuchen
let menuDataInitialized = false;
router.beforeEach(async (to, from, next) => {
if (!store.state.menuData.length) {
if (!menuDataInitialized) {
menuDataInitialized = true;
await store.dispatch('loadMenuData');
const routes = generateRoutesFromMenu(store.state.menuData);
routes.forEach(route => router.addRoute(route));

View File

@@ -1,5 +1,5 @@
import { createStore } from 'vuex';
import axios from 'axios';
import axios from '../axios';
import router from '../router';
let user = [];