diff --git a/src/app/components/decision-form/decision-form.component.ts b/src/app/components/decision-form/decision-form.component.ts
index c48d6a2..d06aa83 100644
--- a/src/app/components/decision-form/decision-form.component.ts
+++ b/src/app/components/decision-form/decision-form.component.ts
@@ -28,7 +28,8 @@ export class DecisionFormComponent implements OnInit {
this.decisionForm = this.fb.group({
title: ['', Validators.required],
description: [''],
- status: ['DRAFT', Validators.required]
+ status: ['DRAFT', Validators.required],
+ dueDate: ['']
});
}
@@ -53,7 +54,8 @@ export class DecisionFormComponent implements OnInit {
this.decisionForm.patchValue({
title: decision.title,
description: decision.description,
- status: decision.status
+ status: decision.status,
+ dueDate: decision.dueDate ? new Date(decision.dueDate).toISOString().split('T')[0] : ''
});
} else {
this.router.navigate(['../'], { relativeTo: this.route });
diff --git a/src/app/components/decision-list/decision-list.component.css b/src/app/components/decision-list/decision-list.component.css
index 9cc4ed3..7cb3995 100644
--- a/src/app/components/decision-list/decision-list.component.css
+++ b/src/app/components/decision-list/decision-list.component.css
@@ -110,7 +110,22 @@
}
.decision-meta {
- font-size: 12px;
- color: #666;
- margin-bottom: 10px;
+ display: flex;
+ justify-content: space-between;
+ font-size: 0.85rem;
+ color: #6c757d;
+ margin-bottom: 1.5rem;
+}
+
+.due-date {
+ display: flex;
+ align-items: center;
+ font-weight: 500;
+}
+
+.due-date.overdue {
+ color: #dc3545;
+ background-color: #f8dbdf;
+ padding: 2px 6px;
+ border-radius: 4px;
}
diff --git a/src/app/components/decision-list/decision-list.component.html b/src/app/components/decision-list/decision-list.component.html
index 926b067..9561bfe 100644
--- a/src/app/components/decision-list/decision-list.component.html
+++ b/src/app/components/decision-list/decision-list.component.html
@@ -20,6 +20,9 @@
Edit
diff --git a/src/app/components/decision-list/decision-list.component.ts b/src/app/components/decision-list/decision-list.component.ts
index 13f6809..261ca5c 100644
--- a/src/app/components/decision-list/decision-list.component.ts
+++ b/src/app/components/decision-list/decision-list.component.ts
@@ -33,6 +33,13 @@ export class DecisionListComponent implements OnInit {
}
}
+ isOverdue(decision: Decision): boolean {
+ if (!decision.dueDate || decision.status === 'CLOSED') {
+ return false;
+ }
+ return new Date(decision.dueDate) < new Date();
+ }
+
private getWorkspaceIdFromRoute(): string | null {
for (const route of this.route.pathFromRoot) {
const id = route.snapshot.paramMap.get('id');
diff --git a/src/app/models/decision.model.ts b/src/app/models/decision.model.ts
index 515b0c1..ae96bf4 100644
--- a/src/app/models/decision.model.ts
+++ b/src/app/models/decision.model.ts
@@ -5,6 +5,7 @@ export interface Decision {
status: 'DRAFT' | 'OPEN' | 'CLOSED';
workspaceId: string;
userId: string;
+ dueDate?: Date;
createdAt: Date;
updatedAt: Date;
isDeleted: boolean;
diff --git a/src/app/services/decision.service.ts b/src/app/services/decision.service.ts
index 0bb6719..db018fb 100644
--- a/src/app/services/decision.service.ts
+++ b/src/app/services/decision.service.ts
@@ -20,6 +20,7 @@ export class DecisionService {
status: 'CLOSED',
workspaceId: 'ws-1',
userId: 'user-1',
+ dueDate: new Date('2023-11-01'),
createdAt: new Date('2023-10-25'),
updatedAt: new Date('2023-10-26'),
isDeleted: false
@@ -63,6 +64,7 @@ export class DecisionService {
status: decision.status || 'DRAFT',
workspaceId: decision.workspaceId,
userId: 'user-1', // Mock user
+ dueDate: decision.dueDate,
createdAt: new Date(),
updatedAt: new Date(),
isDeleted: false