Small fixes aside (#29)
* version string was not set in correct place * add new item buttons and edit masks. * localized reset password form * common layout buttons: Save left green Cancel right red * added help-icon * setting version improved make the handling to set versions more convenient. Decoupled setting versions, committing files and tagging.
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
v-model="searchTerm"
|
||||
:placeholder="`${$t('search')} ${$t('WaeponSkill')}...`"
|
||||
/>
|
||||
<button @click="startCreate" class="btn-primary">{{ $t('newEntry') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -47,6 +48,69 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-if="creatingNew">
|
||||
<td>New</td>
|
||||
<td colspan="6">
|
||||
<div class="edit-form">
|
||||
<div class="edit-row">
|
||||
<div class="edit-field">
|
||||
<label>{{ $t('weaponskill.name') }}:</label>
|
||||
<input v-model="newItem.name" />
|
||||
</div>
|
||||
<div class="edit-field">
|
||||
<label>{{ $t('weaponskill.difficulty') }}:</label>
|
||||
<select v-model="newItem.difficulty" style="width:120px;">
|
||||
<option value="leicht">leicht</option>
|
||||
<option value="normal">normal</option>
|
||||
<option value="schwer">schwer</option>
|
||||
<option value="sehr schwer">sehr schwer</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="edit-field">
|
||||
<label>{{ $t('weaponskill.initialwert') }}:</label>
|
||||
<input v-model.number="newItem.initialwert" type="number" style="width:60px;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="edit-row">
|
||||
<div class="edit-field full-width">
|
||||
<label>{{ $t('weaponskill.description') }}:</label>
|
||||
<input v-model="newItem.beschreibung" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="edit-row">
|
||||
<div class="edit-field">
|
||||
<label>{{ $t('weaponskill.quelle') }}:</label>
|
||||
<select v-model="newItem.sourceCode" style="width:100px;">
|
||||
<option value="">-</option>
|
||||
<option v-for="source in availableSources" :key="source.code" :value="source.code">
|
||||
{{ source.code }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="edit-field">
|
||||
<label>{{ $t('weaponskill.page') || 'Page' }}:</label>
|
||||
<input v-model.number="newItem.page_number" type="number" style="width:60px;" />
|
||||
</div>
|
||||
<div class="edit-field">
|
||||
<label>{{ $t('weaponskill.system') }}:</label>
|
||||
<select v-model.number="createSelectedSystemId" style="width:140px;">
|
||||
<option value="">-</option>
|
||||
<option v-for="system in systemOptions" :key="system.id" :value="system.id">
|
||||
{{ system.label }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="edit-actions">
|
||||
<button @click="saveCreate" class="btn-save">{{ $t('common.save') }}</button>
|
||||
<button @click="cancelCreate" class="btn-cancel">{{ $t('common.cancel') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<template v-for="(dtaItem, index) in filteredAndSortedWaeponSkills" :key="dtaItem.id">
|
||||
<tr v-if="editingIndex !== index">
|
||||
<td>{{ dtaItem.id || '' }}</td>
|
||||
@@ -57,7 +121,7 @@
|
||||
<td>{{ formatQuelle(dtaItem) }}</td>
|
||||
<td>{{ getSystemCodeById(dtaItem.game_system_id, dtaItem.system || 'midgard') }}</td>
|
||||
<td>
|
||||
<button @click="startEdit(index)">Edit</button>
|
||||
<button @click="startEdit(index)">{{ $t('common.edit') }}</button>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Edit Mode -->
|
||||
@@ -119,8 +183,8 @@
|
||||
</div>
|
||||
|
||||
<div class="edit-actions">
|
||||
<button @click="saveEdit(index)" class="btn-save">Save</button>
|
||||
<button @click="cancelEdit" class="btn-cancel">Cancel</button>
|
||||
<button @click="saveEdit(index)" class="btn-save">{{ $t('common.save') }}</button>
|
||||
<button @click="cancelEdit" class="btn-cancel">{{ $t('common.cancel') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
@@ -211,7 +275,10 @@ export default {
|
||||
availableSources: [],
|
||||
availableDifficultiesData: [],
|
||||
gameSystems: [],
|
||||
selectedSystemId: null
|
||||
selectedSystemId: null,
|
||||
creatingNew: false,
|
||||
newItem: null,
|
||||
createSelectedSystemId: null
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
@@ -345,6 +412,53 @@ export default {
|
||||
this.editedItem = null
|
||||
this.selectedSystemId = null
|
||||
},
|
||||
startCreate() {
|
||||
this.cancelEdit()
|
||||
const defaultSystem = this.gameSystems.find(gs => gs.is_active) || this.gameSystems[0] || null
|
||||
this.createSelectedSystemId = defaultSystem ? defaultSystem.id : null
|
||||
this.newItem = {
|
||||
name: '',
|
||||
difficulty: 'leicht',
|
||||
initialwert: 0,
|
||||
beschreibung: '',
|
||||
sourceCode: '',
|
||||
page_number: 0,
|
||||
system: defaultSystem ? defaultSystem.code : ''
|
||||
}
|
||||
this.creatingNew = true
|
||||
},
|
||||
cancelCreate() {
|
||||
this.creatingNew = false
|
||||
this.newItem = null
|
||||
this.createSelectedSystemId = null
|
||||
},
|
||||
async saveCreate() {
|
||||
if (!this.newItem) return
|
||||
try {
|
||||
const source = this.availableSources.find(s => s.code === this.newItem.sourceCode)
|
||||
const selectedSystem = this.gameSystems.find(gs => gs.id === this.createSelectedSystemId)
|
||||
|
||||
const createData = {
|
||||
...this.newItem,
|
||||
category: 'Waffen',
|
||||
source_id: source ? source.id : null,
|
||||
page_number: this.newItem.page_number || 0,
|
||||
system: selectedSystem ? selectedSystem.code : (this.newItem.system || ''),
|
||||
game_system_id: selectedSystem ? selectedSystem.id : null
|
||||
}
|
||||
|
||||
const response = await API.post(
|
||||
'/api/maintenance/weaponskills-enhanced',
|
||||
createData
|
||||
)
|
||||
|
||||
this.enhancedWeaponSkills.push(response.data)
|
||||
this.cancelCreate()
|
||||
} catch (error) {
|
||||
console.error('Failed to create weapon skill:', error)
|
||||
alert('Failed to create weapon skill: ' + (error.response?.data?.error || error.message))
|
||||
}
|
||||
},
|
||||
findSystemIdByCode(code) {
|
||||
return findSystemIdByCode(this.gameSystems, code)
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user