Enhance NobilityView with debugging information: Add conditional rendering for advance section based on availability of next title information. Implement detailed console logs for loading and advancing nobility data, improving error handling and debugging capabilities.

This commit is contained in:
Torsten Schulz (local)
2026-01-29 09:20:10 +01:00
parent c570fd6ae3
commit 3bdb77888f

View File

@@ -18,7 +18,7 @@
<!-- ADVANCE -->
<div v-else-if="activeTab === 'advance'">
<div class="advance-section">
<div class="advance-section" v-if="next && next.labelTr">
<p>
{{ $t('falukant.nobility.nextTitle') }}:
<strong>{{ $t(`falukant.titles.${gender}.${next.labelTr}`) }}</strong>
@@ -26,7 +26,7 @@
<p v-if="nextAdvanceAt && !canAdvance">
{{ $t('falukant.nobility.cooldown', { date: formatDate(nextAdvanceAt) }) }}
</p>
<ul class="prerequisites">
<ul class="prerequisites" v-if="next.requirements && next.requirements.length > 0">
<li v-for="req in next.requirements" :key="req.titleId">
{{ $t(`falukant.nobility.requirement.${req.requirementType}`, { amount: formatCost(req.requirementValue) }) }}
</li>
@@ -35,6 +35,18 @@
<span v-if="!isAdvancing">{{ $t('falukant.nobility.advance.confirm') }}</span>
<span v-else>{{ $t('falukant.nobility.advance.processing') }}</span>
</button>
<div style="margin-top: 10px; font-size: 12px; color: #666;">
Debug: canAdvance={{ canAdvance }}, isAdvancing={{ isAdvancing }}, next={{ next ? 'exists' : 'null' }}, nextAdvanceAt={{ nextAdvanceAt }}
</div>
<div v-if="!canAdvance" style="color: red; margin-top: 10px;">
Debug: canAdvance = false (next: {{ next ? 'exists' : 'null' }}, nextAdvanceAt: {{ nextAdvanceAt }})
</div>
</div>
<div v-else class="advance-section">
<p style="color: red;">Fehler: Keine nächste Titel-Information verfügbar. Bitte Seite neu laden.</p>
<div style="margin-top: 10px; font-size: 12px; color: #666;">
Debug: next={{ next }}, next.labelTr={{ next ? next.labelTr : 'N/A' }}
</div>
</div>
</div>
@@ -105,19 +117,41 @@
},
async loadNobility() {
try {
console.log('[NobilityView] Loading nobility data...');
const { data } = await apiClient.get('/api/falukant/nobility');
this.current = data.current;
this.next = data.next;
console.log('[NobilityView] Received data:', data);
this.current = data.current || { labelTr: '', requirements: [], charactersWithNobleTitle: [] };
this.next = data.next || { labelTr: '', requirements: [] };
this.nextAdvanceAt = data.nextAdvanceAt || null;
console.log('[NobilityView] Updated state:', {
current: this.current,
next: this.next,
nextAdvanceAt: this.nextAdvanceAt,
canAdvance: this.canAdvance
});
} catch (err) {
console.error('Error loading nobility:', err);
console.error('[NobilityView] Error loading nobility:', err);
}
},
async applyAdvance() {
if (!this.canAdvance || this.isAdvancing) return;
console.log('[NobilityView] applyAdvance called', {
canAdvance: this.canAdvance,
isAdvancing: this.isAdvancing,
next: this.next,
nextAdvanceAt: this.nextAdvanceAt
});
if (!this.canAdvance || this.isAdvancing) {
console.log('[NobilityView] applyAdvance blocked:', {
canAdvance: this.canAdvance,
isAdvancing: this.isAdvancing
});
return;
}
this.isAdvancing = true;
try {
console.log('[NobilityView] Sending POST request to /api/falukant/nobility');
await apiClient.post('/api/falukant/nobility');
console.log('[NobilityView] POST request successful, reloading nobility data');
await this.loadNobility();
} catch (err) {
console.error('Error advancing nobility:', err);