Skip to content

Commit 64b6089

Browse files
committed
style(kanban): improve edit audit trail readability with emphasized user/date metadata
1 parent cc35d6b commit 64b6089

3 files changed

Lines changed: 71 additions & 0 deletions

File tree

src/app/features/projects/components/project-kanban/project-kanban.component.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,26 @@ <h3>Edit Task</h3>
274274
</div>
275275
</div>
276276

277+
<div class="task-dialog-section" *ngIf="editTaskAudit as audit">
278+
<div class="task-dialog-section__title">Audit trail</div>
279+
<div class="task-dialog-audit">
280+
<div class="task-dialog-audit__item">
281+
<i class="pi pi-plus-circle"></i>
282+
<span class="task-dialog-audit__label">Created</span>
283+
<span class="task-dialog-audit__date">{{ audit.createdAt | date:'medium' }}</span>
284+
<span class="task-dialog-audit__by">by</span>
285+
<span class="task-dialog-audit__user">{{ audit.createdByUserName || 'Unknown' }}</span>
286+
</div>
287+
<div class="task-dialog-audit__item">
288+
<i class="pi pi-refresh"></i>
289+
<span class="task-dialog-audit__label">Last updated</span>
290+
<span class="task-dialog-audit__date">{{ audit.lastModifiedAt | date:'medium' }}</span>
291+
<span class="task-dialog-audit__by">by</span>
292+
<span class="task-dialog-audit__user">{{ audit.lastModifiedByUserName || 'Unknown' }}</span>
293+
</div>
294+
</div>
295+
</div>
296+
277297
<div class="task-dialog-actions">
278298
<button pButton type="button" label="Cancel" class="p-button-text" (click)="closeTaskDialogs()"></button>
279299
<button pButton type="button" label="Save changes" icon="pi pi-check" [loading]="isSavingTask" [disabled]="!taskForm.title.trim()" (click)="saveEditTask()"></button>

src/app/features/projects/components/project-kanban/project-kanban.component.scss

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,49 @@
510510
border-top: 1px solid var(--surface-border);
511511
}
512512

513+
.task-dialog-audit {
514+
display: flex;
515+
flex-direction: column;
516+
gap: 0.45rem;
517+
}
518+
519+
.task-dialog-audit__item {
520+
display: flex;
521+
flex-wrap: wrap;
522+
align-items: center;
523+
gap: 0.45rem;
524+
color: var(--text-color-secondary);
525+
font-size: 0.82rem;
526+
padding: 0.45rem 0.55rem;
527+
border: 1px solid var(--surface-border);
528+
border-radius: 10px;
529+
background: color-mix(in srgb, var(--surface-0) 88%, var(--surface-100));
530+
}
531+
532+
.task-dialog-audit__label {
533+
font-weight: 600;
534+
color: var(--text-color);
535+
}
536+
537+
.task-dialog-audit__date {
538+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
539+
font-size: 0.78rem;
540+
color: var(--text-color-secondary);
541+
background: color-mix(in srgb, var(--surface-100) 72%, transparent);
542+
border: 1px solid var(--surface-border);
543+
border-radius: 999px;
544+
padding: 0.1rem 0.45rem;
545+
}
546+
547+
.task-dialog-audit__by {
548+
color: var(--text-color-secondary);
549+
}
550+
551+
.task-dialog-audit__user {
552+
font-weight: 600;
553+
color: color-mix(in srgb, var(--primary-color) 62%, var(--text-color));
554+
}
555+
513556
:host ::ng-deep .task-dialog-form .p-inputtext,
514557
:host ::ng-deep .task-dialog-form .p-inputtextarea,
515558
:host ::ng-deep .task-dialog-form .p-dropdown,

src/app/features/projects/components/project-kanban/project-kanban.component.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,14 @@ export class ProjectKanbanComponent implements OnInit, OnDestroy {
152152
return this.authService.hasAnyRole([...MANAGEMENT_ROLES]);
153153
}
154154

155+
get editTaskAudit(): TaskItemDto | null {
156+
if (!this.editTaskId) {
157+
return null;
158+
}
159+
160+
return this.findTaskById(this.editTaskId) ?? null;
161+
}
162+
155163
ngOnInit(): void {
156164
this.loadProjects();
157165
}

0 commit comments

Comments
 (0)