fix: resolve settings page icon and 404 errors

- Change icon from 'envelope' to 'mail' (envelope not in icons.js)
- Add default query param to GET /admin/settings/{key} endpoint
- Return AdminSettingDefaultResponse instead of 404 when default provided
- Update loadShippingSettings() to use default param for carrier settings

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-05 22:46:27 +01:00
parent 84a523cd7b
commit e1c0c117c2
4 changed files with 33 additions and 16 deletions

View File

@@ -242,24 +242,24 @@ function adminSettings() {
async loadShippingSettings() {
try {
// Load each carrier setting
const carriers = ['greco', 'colissimo', 'xpresslogistics'];
// Load each carrier setting with defaults to avoid 404 errors
const carriers = [
{ name: 'greco', default: 'https://dispatchweb.fr/Tracky/Home/' },
{ name: 'colissimo', default: '' },
{ name: 'xpresslogistics', default: '' }
];
for (const carrier of carriers) {
try {
const key = `carrier_${carrier}_label_url`;
const data = await apiClient.get(`/admin/settings/${key}`);
if (data && data.value) {
this.shippingSettings[key] = data.value;
}
} catch (error) {
// Setting doesn't exist yet, use default
settingsLog.debug(`Setting carrier_${carrier}_label_url not found, using default`);
const key = `carrier_${carrier.name}_label_url`;
// Use default query param to avoid 404 for non-existent settings
const data = await apiClient.get(`/admin/settings/${key}?default=${encodeURIComponent(carrier.default)}`);
if (data && data.value !== undefined) {
this.shippingSettings[key] = data.value;
}
}
settingsLog.info('Shipping settings loaded:', this.shippingSettings);
} catch (error) {
settingsLog.error('Failed to load shipping settings:', error);
// Don't show error for missing settings, just use defaults
// On error, keep existing defaults
}
},