diff --git a/frontend/src/views/falukant/PoliticsView.vue b/frontend/src/views/falukant/PoliticsView.vue index 2303524..d7cc6e7 100644 --- a/frontend/src/views/falukant/PoliticsView.vue +++ b/frontend/src/views/falukant/PoliticsView.vue @@ -23,7 +23,7 @@ - + {{ $t(`falukant.politics.offices.${pos.officeType.name}`) }} {{ pos.region.name }} @@ -193,6 +193,7 @@ export default { elections: [], selectedCandidates: {}, selectedApplications: [], + ownCharacterId: null, loading: { current: false, openPolitics: false, @@ -210,6 +211,7 @@ export default { } }, mounted() { + this.loadOwnCharacterId(); this.loadCurrentPositions(); }, methods: { @@ -330,6 +332,24 @@ export default { }); }, + async loadOwnCharacterId() { + try { + const { data } = await apiClient.get('/api/falukant/info'); + if (data.character && data.character.id) { + this.ownCharacterId = data.character.id; + } + } catch (err) { + console.error('Error loading own character ID', err); + } + }, + + isOwnPosition(pos) { + if (!this.ownCharacterId || !pos.character) { + return false; + } + return pos.character.id === this.ownCharacterId; + }, + async submitApplications() { try { const response = await apiClient.post( @@ -411,6 +431,11 @@ h2 { border: 1px solid #ddd; } +.politics-table tbody tr.own-position { + background-color: #e0e0e0; + font-weight: bold; +} + .loading { text-align: center; font-style: italic;