Feature: Tagebuch-Import (NoteStation .nsx + CSV) + Transponder in Gesundheitsdaten
- Import-Endpoint für Synology NoteStation (.nsx): HTML→Text, GPS, Bilder, Unix-Timestamp→Datum - Import-Endpoint für CSV (Komma/Semikolon, BOM-safe, DE-Datumsformat) - Import-Modal im Tagebuch mit Format-Auswahl-Karten und Ergebnis-Anzeige - Transpondernummer in Gesundheitsdaten: Anzeige + Inline-Edit via Modal - SW-Cache by-v142
This commit is contained in:
parent
6fcf841594
commit
94e0ed3daa
7 changed files with 505 additions and 5 deletions
|
|
@ -125,12 +125,26 @@ window.Page_health = (() => {
|
|||
// HEALTH-ANSICHT — Tabs mit Einträgen
|
||||
// ----------------------------------------------------------
|
||||
async function _renderHealth() {
|
||||
const dog = _appState.activeDog;
|
||||
const transponderHtml = `
|
||||
<div class="health-transponder" id="health-transponder">
|
||||
<svg class="ph-icon" aria-hidden="true"><use href="/icons/phosphor.svg#wave-sine"></use></svg>
|
||||
<span class="health-transponder-label">Transponder:</span>
|
||||
<span class="health-transponder-nr" id="health-transponder-nr">
|
||||
${dog?.chip_nr ? `<strong>${_esc(dog.chip_nr)}</strong>` : '<em style="color:var(--c-text-muted)">nicht eingetragen</em>'}
|
||||
</span>
|
||||
<button class="btn btn-link btn-sm health-transponder-edit" id="health-transponder-edit"
|
||||
style="padding:0;font-size:var(--text-xs);color:var(--c-text-muted)">
|
||||
<svg class="ph-icon" aria-hidden="true"><use href="/icons/phosphor.svg#pencil-simple"></use></svg>
|
||||
</button>
|
||||
</div>`;
|
||||
_container.innerHTML = `
|
||||
<div class="by-toolbar health-header">
|
||||
<button class="btn btn-secondary btn-sm" id="health-ki-btn">
|
||||
${UI.icon('star')} KI-Zusammenfassung
|
||||
</button>
|
||||
</div>
|
||||
${transponderHtml}
|
||||
<div id="health-reminders"></div>
|
||||
<div class="by-tabs" id="by-tabs"></div>
|
||||
<div id="by-tab-content"></div>
|
||||
|
|
@ -139,6 +153,8 @@ window.Page_health = (() => {
|
|||
_renderTabBar();
|
||||
_container.querySelector('#health-ki-btn')
|
||||
.addEventListener('click', _showKiSummary);
|
||||
_container.querySelector('#health-transponder-edit')
|
||||
.addEventListener('click', () => _editTransponder(dog));
|
||||
|
||||
await _loadAll();
|
||||
_renderErinnerungen();
|
||||
|
|
@ -1519,6 +1535,42 @@ window.Page_health = (() => {
|
|||
});
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------
|
||||
// TRANSPONDER-BEARBEITUNG
|
||||
// ----------------------------------------------------------
|
||||
async function _editTransponder(dog) {
|
||||
const currentNr = dog?.chip_nr || '';
|
||||
UI.modal.open({
|
||||
title: 'Transpondernummer',
|
||||
body: `
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Chip-Nummer (15-stellig)</label>
|
||||
<input id="transponder-input" class="form-control" type="text"
|
||||
value="${_esc(currentNr)}" placeholder="z.B. 276009200123456" maxlength="20">
|
||||
</div>`,
|
||||
footer: `
|
||||
<button class="btn btn-secondary" onclick="UI.modal.close()">Abbrechen</button>
|
||||
<button class="btn btn-primary" id="transponder-save-btn">Speichern</button>`,
|
||||
});
|
||||
document.getElementById('transponder-save-btn').addEventListener('click', async () => {
|
||||
const nr = document.getElementById('transponder-input').value.trim() || null;
|
||||
const btn = document.getElementById('transponder-save-btn');
|
||||
UI.setLoading(btn, true);
|
||||
try {
|
||||
await API.dogs.update(dog.id, { chip_nr: nr });
|
||||
_appState.activeDog.chip_nr = nr;
|
||||
UI.modal.close();
|
||||
const nrEl = _container.querySelector('#health-transponder-nr');
|
||||
if (nrEl) nrEl.innerHTML = nr
|
||||
? `<strong>${_esc(nr)}</strong>`
|
||||
: '<em style="color:var(--c-text-muted)">nicht eingetragen</em>';
|
||||
} catch (e) {
|
||||
UI.setLoading(btn, false);
|
||||
UI.toast('Fehler beim Speichern', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------
|
||||
// KI-ZUSAMMENFASSUNG
|
||||
// ----------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue