feat(match3): Erweiterung der Match3-Admin-Funktionalitäten und -Modelle
- Implementierung neuer Endpunkte für die Verwaltung von Match3-Kampagnen, Levels, Objectives und Tile-Typen im Admin-Bereich. - Anpassung der Admin-Services zur Unterstützung von Benutzerberechtigungen und Fehlerbehandlung. - Einführung von neuen Modellen und Assoziationen für Match3-Levels und Tile-Typen in der Datenbank. - Verbesserung der Internationalisierung für Match3-spezifische Texte in Deutsch und Englisch. - Aktualisierung der Frontend-Routen und -Komponenten zur Verwaltung von Match3-Inhalten.
This commit is contained in:
@@ -93,6 +93,61 @@
|
||||
"systemmessage": "Systemnachricht"
|
||||
},
|
||||
"confirmDelete": "Soll dieser Chatraum wirklich gelöscht werden?"
|
||||
},
|
||||
"match3": {
|
||||
"title": "Match3 Level verwalten",
|
||||
"newLevel": "Neues Level erstellen",
|
||||
"editLevel": "Level bearbeiten",
|
||||
"deleteLevel": "Level löschen",
|
||||
"confirmDelete": "Möchtest du dieses Level wirklich löschen?",
|
||||
"levelName": "Name",
|
||||
"levelDescription": "Beschreibung",
|
||||
"boardWidth": "Breite",
|
||||
"boardHeight": "Höhe",
|
||||
"moveLimit": "Zug-Limit",
|
||||
"levelOrder": "Reihenfolge",
|
||||
"boardLayout": "Board-Layout",
|
||||
"tileTypes": "Verfügbare Tile-Typen",
|
||||
"actions": "Aktionen",
|
||||
"edit": "Bearbeiten",
|
||||
"delete": "Löschen",
|
||||
"save": "Speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"update": "Aktualisieren",
|
||||
"create": "Erstellen",
|
||||
"boardControls": {
|
||||
"fillAll": "Alle aktivieren",
|
||||
"clearAll": "Alle deaktivieren",
|
||||
"invert": "Invertieren"
|
||||
},
|
||||
"loading": "Lade Level...",
|
||||
"retry": "Erneut versuchen",
|
||||
"availableLevels": "Verfügbare Level: {count}",
|
||||
"levelFormat": "Level {number}: {name}",
|
||||
"levelObjectives": "Level-Objekte",
|
||||
"objectivesTitle": "Siegvoraussetzungen",
|
||||
"addObjective": "Objektiv hinzufügen",
|
||||
"removeObjective": "Entfernen",
|
||||
"objectiveType": "Typ",
|
||||
"objectiveTypeScore": "Punkte sammeln",
|
||||
"objectiveTypeMatches": "Matches machen",
|
||||
"objectiveTypeMoves": "Züge verwenden",
|
||||
"objectiveTypeTime": "Zeit einhalten",
|
||||
"objectiveTypeSpecial": "Spezialziel",
|
||||
"objectiveOperator": "Operator",
|
||||
"operatorGreaterEqual": "Größer oder gleich (≥)",
|
||||
"operatorLessEqual": "Kleiner oder gleich (≤)",
|
||||
"operatorEqual": "Gleich (=)",
|
||||
"operatorGreater": "Größer als (>)",
|
||||
"operatorLess": "Kleiner als (<)",
|
||||
"objectiveTarget": "Zielwert",
|
||||
"objectiveTargetPlaceholder": "z.B. 100",
|
||||
"objectiveOrder": "Reihenfolge",
|
||||
"objectiveOrderPlaceholder": "1, 2, 3...",
|
||||
"objectiveDescription": "Beschreibung",
|
||||
"objectiveDescriptionPlaceholder": "z.B. Sammle 100 Punkte",
|
||||
"objectiveRequired": "Erforderlich für Level-Abschluss",
|
||||
"noObjectives": "Keine Siegvoraussetzungen definiert. Klicke auf 'Objektiv hinzufügen' um welche zu erstellen."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -53,7 +53,12 @@
|
||||
"logentries": "Log-Einträge",
|
||||
"edituser": "Benutzer bearbeiten",
|
||||
"database": "Datenbank"
|
||||
}
|
||||
},
|
||||
"minigames": "Minispiele",
|
||||
"m-minigames": {
|
||||
"match3": "Match3 Level"
|
||||
},
|
||||
"chatrooms": "Chaträume"
|
||||
},
|
||||
"m-friends": {
|
||||
"manageFriends": "Freunde verwalten",
|
||||
|
||||
@@ -1,3 +1,59 @@
|
||||
{
|
||||
|
||||
"admin": {
|
||||
"match3": {
|
||||
"title": "Manage Match3 Levels",
|
||||
"newLevel": "Create New Level",
|
||||
"editLevel": "Edit Level",
|
||||
"deleteLevel": "Delete Level",
|
||||
"confirmDelete": "Do you really want to delete this level?",
|
||||
"levelName": "Name",
|
||||
"levelDescription": "Description",
|
||||
"boardWidth": "Width",
|
||||
"boardHeight": "Height",
|
||||
"moveLimit": "Move Limit",
|
||||
"levelOrder": "Order",
|
||||
"boardLayout": "Board Layout",
|
||||
"tileTypes": "Available Tile Types",
|
||||
"actions": "Actions",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"update": "Update",
|
||||
"create": "Create",
|
||||
"boardControls": {
|
||||
"fillAll": "Activate All",
|
||||
"clearAll": "Deactivate All",
|
||||
"invert": "Invert"
|
||||
},
|
||||
"loading": "Loading levels...",
|
||||
"retry": "Retry",
|
||||
"availableLevels": "Available Levels: {count}",
|
||||
"levelFormat": "Level {number}: {name}",
|
||||
"levelObjectives": "Level Objectives",
|
||||
"objectivesTitle": "Victory Conditions",
|
||||
"addObjective": "Add Objective",
|
||||
"removeObjective": "Remove",
|
||||
"objectiveType": "Type",
|
||||
"objectiveTypeScore": "Collect Score",
|
||||
"objectiveTypeMatches": "Make Matches",
|
||||
"objectiveTypeMoves": "Use Moves",
|
||||
"objectiveTypeTime": "Keep Time",
|
||||
"objectiveTypeSpecial": "Special Goal",
|
||||
"objectiveOperator": "Operator",
|
||||
"operatorGreaterEqual": "Greater or equal (≥)",
|
||||
"operatorLessEqual": "Less or equal (≤)",
|
||||
"operatorEqual": "Equal (=)",
|
||||
"operatorGreater": "Greater than (>)",
|
||||
"operatorLess": "Less than (<)",
|
||||
"objectiveTarget": "Target Value",
|
||||
"objectiveTargetPlaceholder": "e.g. 100",
|
||||
"objectiveOrder": "Order",
|
||||
"objectiveOrderPlaceholder": "1, 2, 3...",
|
||||
"objectiveDescription": "Description",
|
||||
"objectiveDescriptionPlaceholder": "e.g. Collect 100 points",
|
||||
"objectiveRequired": "Required for level completion",
|
||||
"noObjectives": "No victory conditions defined. Click 'Add Objective' to create some."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,8 @@ import AdminInterestsView from '../views/admin/InterestsView.vue';
|
||||
import AdminContactsView from '../views/admin/ContactsView.vue';
|
||||
import RoomsView from '../views/admin/RoomsView.vue';
|
||||
import ForumAdminView from '../dialogues/admin/ForumAdminView.vue';
|
||||
import AdminFalukantEditUserView from '../views/admin/falukant/EditUserView.vue'
|
||||
import AdminFalukantEditUserView from '../views/admin/falukant/EditUserView.vue';
|
||||
import AdminMinigamesView from '../views/admin/MinigamesView.vue';
|
||||
|
||||
const adminRoutes = [
|
||||
{
|
||||
@@ -34,6 +35,12 @@ const adminRoutes = [
|
||||
name: 'AdminFalukantEditUserView',
|
||||
component: AdminFalukantEditUserView,
|
||||
meta: { requiresAuth: true }
|
||||
},
|
||||
{
|
||||
path: '/admin/minigames/match3',
|
||||
name: 'AdminMinigames',
|
||||
component: AdminMinigamesView,
|
||||
meta: { requiresAuth: true }
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -10,10 +10,19 @@ const apiClient = axios.create({
|
||||
|
||||
apiClient.interceptors.request.use(config => {
|
||||
const user = store.getters.user;
|
||||
console.log('🔑 Axios Interceptor - User:', user);
|
||||
|
||||
if (user && user.authCode) {
|
||||
config.headers['userId'] = user.id;
|
||||
config.headers['authCode'] = user.authCode;
|
||||
config.headers['userid'] = user.id;
|
||||
config.headers['authcode'] = user.authCode; // Kleinschreibung!
|
||||
console.log('📡 Setze Headers:', {
|
||||
userid: user.id,
|
||||
authcode: user.authCode
|
||||
});
|
||||
} else {
|
||||
console.log('⚠️ Keine User-Daten verfügbar');
|
||||
}
|
||||
|
||||
return config;
|
||||
}, error => {
|
||||
return Promise.reject(error);
|
||||
|
||||
1517
frontend/src/views/admin/MinigamesView.vue
Normal file
1517
frontend/src/views/admin/MinigamesView.vue
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user