Updated Scheduler and Maintainance Apps

This commit is contained in:
2026-07-08 12:00:20 -04:00
parent fefc2c8b5c
commit 0f7585754d
227 changed files with 2877 additions and 958 deletions
@@ -249,10 +249,16 @@ export class MaintenanceSupporterCard extends LitElement {
</div>
</div>
${tasks.length === 0
? html`<div class="empty-card">
<div>${t("card_no_tasks_title", L)}</div>
<a class="empty-link" href="/maintenance-supporter">${t("card_no_tasks_cta", L)}</a>
</div>`
? this._objects.some((o) => o.tasks.length > 0)
? html`<div class="empty-card">
<!-- (#86) tasks exist but none match the filter (default:
actionable-only) — "all caught up", NOT "no tasks yet". -->
<div class="all-caught-up">✓ ${t("card_all_caught_up", L)}</div>
</div>`
: html`<div class="empty-card">
<div>${t("card_no_tasks_title", L)}</div>
<a class="empty-link" href="/maintenance-supporter">${t("card_no_tasks_cta", L)}</a>
</div>`
: html`
<div class="task-list ${compact ? "compact" : ""}">
${tasks.map(
@@ -262,7 +268,16 @@ export class MaintenanceSupporterCard extends LitElement {
title="${t("open_task", L) || "Open task"}">
<div class="status-dot" style="background: ${STATUS_COLORS[task.status] || "#ccc"}"></div>
<div class="task-info">
<div class="task-name">${task.name}</div>
<div class="task-name">
${task.name}
${(task as any).due_override
? html`<ha-icon
class="postponed-icon"
icon="mdi:calendar-clock"
title="${t("postponed", L) || "Postponed"}"
></ha-icon>`
: nothing}
</div>
${!compact ? html`<div class="task-meta">${object_name} · ${t(task.type, L)}</div>` : nothing}
</div>
<div class="task-due">
@@ -366,6 +381,7 @@ export class MaintenanceSupporterCard extends LitElement {
font-size: 13px;
}
.empty-link:hover { text-decoration: underline; }
.all-caught-up { color: var(--success-color, #4caf50); font-weight: 500; }
.task-list { padding: 0 16px 16px; }
.task-item {
@@ -387,6 +403,7 @@ export class MaintenanceSupporterCard extends LitElement {
.status-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.task-info { flex: 1; min-width: 0; }
.task-name { font-size: 14px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.postponed-icon { --mdc-icon-size: 14px; color: var(--secondary-text-color); vertical-align: text-bottom; margin-inline-start: 4px; }
.task-meta { font-size: 12px; color: var(--secondary-text-color); }
.task-due { font-size: 13px; color: var(--secondary-text-color); min-width: 40px; text-align: right; }