Startzeitpunkt auf letzten Endzeitpunkt setzen

This commit is contained in:
Eric Neuber 2026-06-26 10:23:24 +02:00
parent d63f8cb7b2
commit dfde062ebd

View File

@ -158,6 +158,8 @@ export class TimetrackerUi {
</div>
<div class="tt-actions">
<button id="tt-active-start-save">Save active start</button>
<button id="tt-active-start-now">Reset to now</button>
<button id="tt-active-start-last-end">Use last end</button>
</div>
</div>`
: ""}
@ -277,6 +279,16 @@ export class TimetrackerUi {
return;
}
if (target.id === "tt-active-start-now") {
this.resetActiveStartToNow();
return;
}
if (target.id === "tt-active-start-last-end") {
this.setActiveStartToLastEnd();
return;
}
if (target.id === "tt-edit-save") {
this.saveEditDraft();
return;
@ -452,6 +464,45 @@ export class TimetrackerUi {
}
}
private resetActiveStartToNow(): void {
try {
this.service.updateActiveStart(Date.now());
this.activeStartDraft = null;
this.isEditingActiveStart = false;
this.render();
logseq.App.showMsg("Active start reset to now.", "success");
} catch (error) {
logseq.App.showMsg((error as Error).message, "error");
}
}
private setActiveStartToLastEnd(): void {
const entries = this.service.getState().entries;
if (!entries.length) {
logseq.App.showMsg("No entries available.", "warning");
return;
}
const latestEndedAtEpochMs = entries.reduce((latest, entry) => {
return Math.max(latest, entry.endedAtEpochMs);
}, Number.NEGATIVE_INFINITY);
if (!Number.isFinite(latestEndedAtEpochMs)) {
logseq.App.showMsg("No valid end timestamp found.", "error");
return;
}
try {
this.service.updateActiveStart(latestEndedAtEpochMs);
this.activeStartDraft = null;
this.isEditingActiveStart = false;
this.render();
logseq.App.showMsg("Active start set to last end time.", "success");
} catch (error) {
logseq.App.showMsg((error as Error).message, "error");
}
}
private escapeHtml(value: string): string {
return value
.replace(/&/g, "&amp;")