Englische Texte, Kopiericon, Get-Route für suche

This commit is contained in:
2026-03-19 15:39:52 +01:00
parent 1ad3443433
commit e399019001
4 changed files with 205 additions and 5 deletions

View File

@@ -21,6 +21,43 @@ app.use(express.static(path.join(__dirname, 'public')));
// API Routes
app.use('/api/search', searchRoutes);
// Direkte URL-Aufrufe auf die UI umleiten und Suchbegriff vorbelegen:
// - /search=meinbegriff -> /?q=meinbegriff
// - /search?q=meinbegriff oder /search?search=meinbegriff -> /?q=meinbegriff
app.get('/search=:searchTerm', (req, res) => {
const searchTerm = (req.params.searchTerm || '').trim();
const statusFilter = (req.query.status || '').trim();
if (!searchTerm) {
return res.redirect('/');
}
const redirectUrl = new URL(`http://localhost:${PORT}/`);
redirectUrl.searchParams.set('q', searchTerm);
if (statusFilter) {
redirectUrl.searchParams.set('status', statusFilter);
}
return res.redirect(`${redirectUrl.pathname}${redirectUrl.search}`);
});
app.get('/search', (req, res) => {
const searchTerm = (req.query.search || req.query.q || '').trim();
const statusFilter = (req.query.status || '').trim();
if (!searchTerm) {
return res.redirect('/');
}
const redirectUrl = new URL(`http://localhost:${PORT}/`);
redirectUrl.searchParams.set('q', searchTerm);
if (statusFilter) {
redirectUrl.searchParams.set('status', statusFilter);
}
return res.redirect(`${redirectUrl.pathname}${redirectUrl.search}`);
});
// Health check endpoint
app.get('/api/health', async (req, res) => {
try {