Skip to content

Commit 3c183a7

Browse files
authored
Update fast-search-card.js
1 parent 5bfedc3 commit 3c183a7

File tree

1 file changed

+33
-9
lines changed

1 file changed

+33
-9
lines changed

dist/fast-search-card.js

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9641,6 +9641,14 @@ class FastSearchCard extends HTMLElement {
96419641
this.handleEditTimerClick(timerId, entityId);
96429642
});
96439643
});
9644+
9645+
// Event Listeners für Delete Buttons
9646+
container.querySelectorAll('.timer-delete').forEach(btn => {
9647+
btn.addEventListener('click', () => {
9648+
const timerId = btn.dataset.timerId;
9649+
this.deleteTimer(timerId, entityId);
9650+
});
9651+
});
96449652
}
96459653

96469654
getNextExecution(timer) {
@@ -9698,19 +9706,25 @@ class FastSearchCard extends HTMLElement {
96989706
}
96999707

97009708
async deleteTimer(timerId, entityId) {
9709+
console.log(`🗑️ Lösche Timer ${timerId}`);
9710+
if (!confirm('Diesen Timer wirklich löschen?')) {
9711+
return;
9712+
}
9713+
97019714
try {
9702-
// KORRIGIERT: Verwende callApi statt callService
9703-
await this._hass.callApi('POST', 'scheduler/remove', {
9715+
// Verwende den scheduler.remove Service
9716+
await this._hass.callService('scheduler', 'remove', {
97049717
schedule_id: timerId
97059718
});
97069719

9707-
console.log(`🗑️ Timer ${timerId} gelöscht`);
9720+
console.log(` Timer ${timerId} erfolgreich gelöscht.`);
97089721

9709-
// Timer Liste neu laden
9710-
this.loadActiveTimers(entityId);
9722+
// UI aktualisieren durch Neuladen der Timer
9723+
setTimeout(() => this.loadActiveTimers(entityId), 300);
97119724

97129725
} catch (error) {
9713-
console.error('❌ Fehler beim Löschen:', error);
9726+
console.error('❌ Fehler beim Löschen des Timers:', error);
9727+
alert(`Fehler beim Löschen des Timers:\n\n${error.message}`);
97149728
}
97159729
}
97169730

@@ -13537,6 +13551,7 @@ class FastSearchCard extends HTMLElement {
1353713551
}
1353813552

1353913553

13554+
1354013555
async handleEditTimerClick(scheduleId, entityId) {
1354113556
console.log(`✏️ Bearbeitung für Timer ${scheduleId} angefordert.`);
1354213557

@@ -13545,12 +13560,21 @@ class FastSearchCard extends HTMLElement {
1354513560
const timerToEdit = allSchedules.find(s => s.schedule_id === scheduleId);
1354613561

1354713562
if (!timerToEdit) {
13548-
alert("Dieser Timer wurde bereits ausgeführt oder gelöscht und kann nicht bearbeitet werden.");
13563+
alert("Dieser Timer wurde bereits ausgeführt oder gelöscht.");
1354913564
this.loadActiveTimers(entityId);
1355013565
return;
1355113566
}
1355213567

13553-
const action = this.getActionNameFromService(timerToEdit.actions[0].service, timerToEdit.actions[0].service_data);
13568+
// ✅ KORREKTUR: Greife auf timeslots[0] zu, um actions zu finden.
13569+
const timeslot = timerToEdit.timeslots?.[0];
13570+
const actionData = timeslot?.actions?.[0];
13571+
13572+
if (!actionData) {
13573+
alert("Die Timer-Aktion konnte nicht gelesen werden. Der Timer ist möglicherweise fehlerhaft.");
13574+
return;
13575+
}
13576+
13577+
const action = this.getActionNameFromService(actionData.service, actionData.service_data);
1355413578
const nextExecution = new Date(timerToEdit.next_trigger);
1355513579
const durationMinutes = Math.round((nextExecution - new Date()) / 60000);
1355613580

@@ -13564,7 +13588,7 @@ class FastSearchCard extends HTMLElement {
1356413588
});
1356513589
} catch (error) {
1356613590
console.error('❌ Fehler beim Laden der Timer-Daten:', error);
13567-
alert('Fehler beim Laden der Timer-Daten');
13591+
alert('Fehler beim Laden der Timer-Daten für die Bearbeitung.');
1356813592
}
1356913593
}
1357013594

0 commit comments

Comments
 (0)