Unterstützung: eigene Zeilen und Gesamtzeit in den Projektdetails

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-30 15:08:16 +00:00
1 parent 7c6b0c906b
commit 7da4452bbd
8 files changed
+136 -8

No files matched your search

+1 -1
View File
@@ -164,7 +164,7 @@ function renderActivity(tickets) {
<span class="pill pill-muted">${escapeHtml(t.status || '–')}</span>
<span class="muted">${escapeHtml(t.type || '')} · ${fmtDate(t.createdAt)}</span>
${(t.worksheets || []).map((w) => `
<div class="ws-line">→ ${fmtDate(w.date)} ${escapeHtml(w.employeeName)} (${escapeHtml(w.serviceType || '–')}${w.totalTime ? `, ${escapeHtml(w.totalTime)}` : ''}): ${escapeHtml((w.details || '').slice(0, 160))}</div>
<div class="ws-line">→ ${fmtDate(w.date)} ${escapeHtml(w.employeeName)} (${escapeHtml(w.serviceType || '–')}${w.totalTime ? `, ${escapeHtml(w.totalTime)}` : ''}${w.supportMinutes ? `, +${escapeHtml(w.supportMinutes)} min Unterstützung` : ''}): ${escapeHtml((w.details || '').slice(0, 160))}</div>
`).join('')}
</div>`).join('')
}
+6 -2
View File
@@ -249,7 +249,7 @@ function changeDayLabel(date) {
}
// Auftrag: Nummer, Betreff, Status und Fortschrittsleiste Eingegangen -> In Arbeit -> Prüfung -> Erledigt
function renderOrder(order) {
function renderOrder(order, totalMinutes = 0) {
const { status } = order
const steps = status.step > 0
? `<ol class="pd-steps" aria-label="Fortschritt des Auftrags">${ORDER_STEPS.map((label, i) => {
@@ -269,6 +269,7 @@ function renderOrder(order) {
</div>
<span class="pd-status">${escapeHtml(status.label)}</span>
</div>
${totalMinutes > 0 ? `<p class="pd-total">${pdIcon('clock', 'pd-time-ico')}Arbeitszeit gesamt: <strong>${fmtMinutes(totalMinutes)}</strong></p>` : ''}
${steps}${hint}`
}
@@ -330,6 +331,9 @@ function renderWorkEntry(e, extra) {
${meta ? `<span class="pd-entry-meta">${meta}</span>` : ''}
</div>
${body}
${e.supports?.length ? `<ul class="pd-supports">${e.supports.map((x) => `
<li class="pd-support"><span>↳ Unterstützung ${escapeHtml(x.name)}: ${escapeHtml(x.task)}</span>
<span class="pd-time" title="Angerechnete Zeit der Unterstützung">${pdIcon('clock', 'pd-time-ico')}${fmtMinutes(x.minutes)}</span></li>`).join('')}</ul>` : ''}
</div>
${e.minutes ? `<span class="pd-time" title="Arbeitszeit">${pdIcon('clock', 'pd-time-ico')}${fmtMinutes(e.minutes)}</span>` : ''}
</li>`
@@ -387,7 +391,7 @@ async function loadProjectDetails(project, box, { stillWanted = () => true } = {
const order = work?.order
box.innerHTML = `
${order ? `<section class="pd-order pd-tone-${escapeAttr(order.status.tone)}">${renderOrder(order)}</section>` : ''}
${order ? `<section class="pd-order pd-tone-${escapeAttr(order.status.tone)}">${renderOrder(order, work?.totalMinutes || 0)}</section>` : ''}
${pdSection('changes', 'Letzte Änderungen', git
? renderChanges(git.changes || [])
: '<p class="pd-empty">Die Änderungen können gerade nicht geladen werden.</p>')}
+6
View File
@@ -848,3 +848,9 @@ button.kb-avatar:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.kb-storage-summary .kb-btn-primary { width: 100%; }
.kb-storage-error { color: #b3261e; }
@media (min-width: 881px) { .kb-storage-summary .kb-btn-primary { width: auto; } }
/* Unterstuetzung unter einem Arbeitsschritt und Gesamtzeit im Auftragskopf */
.pd-supports { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; }
.pd-support { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 10px; font-size: 12.5px; line-height: 1.5; color: var(--kb-faint); }
.pd-support .pd-time { font-size: 11.5px; padding: 2px 8px; }
.pd-total { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; font-size: 13.5px; color: rgba(255, 255, 255, 0.82); }