Add mission persistence: missions table, API routes, and history UI

- MariaDB missions table with scenes JSON
- /api/missions CRUD routes
- MissionTab saves completed missions to DB
- Mission history panel in UI

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-23 10:07:46 +02:00
parent dbb79c2537
commit fe1b77ec68
5 changed files with 505 additions and 67 deletions

View File

@@ -11,6 +11,7 @@ const rulesRoutes = require('./routes/rulesRoutes');
const bestiaryRoutes = require('./routes/bestiaryRoutes');
const weaponsRoutes = require('./routes/weaponsRoutes');
const rulesStagingRoutes = require('./routes/rulesStagingRoutes');
const missionRoutes = require('./routes/missionRoutes');
// const rulesRoutes = require('./routes/rulesRoutes-simple');
const gmkitDir = path.join(__dirname, '..', 'data', 'gamemasters_kit');
@@ -92,7 +93,17 @@ try {
console.log('Rules staging routes registered');
} catch (e) {
console.error('Error mounting /api/rules/staging:', e && e.stack ? e.stack : e);
} // Expose gamemaster kit files and a simple listing API for GM-only resources
}
try {
console.log('Registering /api/missions');
app.use('/api/missions', missionRoutes);
console.log('Mission routes registered');
} catch (e) {
console.error('Error mounting /api/missions:', e && e.stack ? e.stack : e);
}
// Expose gamemaster kit files and a simple listing API for GM-only resources
try {
console.log('Registering /api/gmkit and /gmkit static');
app.get('/api/gmkit/list', (req, res) => {