Refactored UI

Added Role filed to user table and endpoint implementation
This commit is contained in:
2026-09-28 10:25:00 +02:00
parent 7037ea72ca
commit ea71e55e2d
21 changed files with 3100 additions and 128 deletions
@@ -35,6 +35,7 @@ import {
} from '../services/api';
import { Modal } from '../components/ui/Modal';
import { useToast } from '../components/ui/Toast';
import { HelpTooltip } from '../components/ui/HelpTooltip';
import { ExportButton } from '../components/ui/ExportButton';
import { ExportColumn } from '../utils/exportUtils';
import { useTableSort, SortableTh } from '../utils/tableSort';
@@ -522,10 +523,18 @@ export const ChangeManagementPage: React.FC = () => {
<GitPullRequest className="w-6 h-6" />
</div>
<div>
<h1 className="text-2xl sm:text-3xl font-bold tracking-tight text-white flex items-center gap-2.5">
Change Management & Issue Resolution
</h1>
<p className="text-xs sm:text-sm text-slate-400">
<div className="flex items-center gap-2.5 flex-wrap">
<h1 className="text-2xl sm:text-3xl font-bold tracking-tight text-white flex items-center gap-2.5">
Change Management & Issue Resolution
</h1>
<HelpTooltip
title="Project Change & Issue Control"
content="Track project impediments, review contractual variations, and resolve change requests in-place through governance workflows."
size="sm"
placement="bottom"
/>
</div>
<p className="text-xs sm:text-sm text-slate-400 mt-1">
Track project execution impediments, review contractual variations, and resolve change requests in-place.
</p>
</div>
@@ -537,7 +546,14 @@ export const ChangeManagementPage: React.FC = () => {
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
<div className="bg-[#0f1523]/80 backdrop-blur-md p-5 rounded-2xl border border-slate-800/80 shadow-xl space-y-2">
<div className="flex items-center justify-between text-slate-400">
<span className="text-xs font-semibold uppercase tracking-wider">Active Issues</span>
<div className="flex items-center gap-1.5">
<span className="text-xs font-semibold uppercase tracking-wider">Active Issues</span>
<HelpTooltip
title="Active Project Issues"
content="Open project roadblocks, risks, or performance impediments requiring active mitigation."
size="sm"
/>
</div>
<AlertOctagon className="w-4 h-4 text-rose-400" />
</div>
<p className="text-2xl font-bold text-rose-400">{issues.filter((i) => i.status !== ActivityStatus.Inactive).length}</p>
@@ -546,7 +562,14 @@ export const ChangeManagementPage: React.FC = () => {
<div className="bg-[#0f1523]/80 backdrop-blur-md p-5 rounded-2xl border border-slate-800/80 shadow-xl space-y-2">
<div className="flex items-center justify-between text-slate-400">
<span className="text-xs font-semibold uppercase tracking-wider">Resolved Issues</span>
<div className="flex items-center gap-1.5">
<span className="text-xs font-semibold uppercase tracking-wider">Resolved Issues</span>
<HelpTooltip
title="Resolved Issues"
content="Impediments that have been remediated and formally closed with documented resolution notes."
size="sm"
/>
</div>
<CheckCircle2 className="w-4 h-4 text-emerald-400" />
</div>
<p className="text-2xl font-bold text-emerald-400">
@@ -557,7 +580,14 @@ export const ChangeManagementPage: React.FC = () => {
<div className="bg-[#0f1523]/80 backdrop-blur-md p-5 rounded-2xl border border-slate-800/80 shadow-xl space-y-2">
<div className="flex items-center justify-between text-slate-400">
<span className="text-xs font-semibold uppercase tracking-wider">Pending Changes</span>
<div className="flex items-center gap-1.5">
<span className="text-xs font-semibold uppercase tracking-wider">Pending Changes</span>
<HelpTooltip
title="Pending Variations"
content="Formal change requests awaiting governance review, budget validation, and sign-off."
size="sm"
/>
</div>
<GitPullRequest className="w-4 h-4 text-amber-400" />
</div>
<p className="text-2xl font-bold text-amber-400">
@@ -568,7 +598,14 @@ export const ChangeManagementPage: React.FC = () => {
<div className="bg-[#0f1523]/80 backdrop-blur-md p-5 rounded-2xl border border-slate-800/80 shadow-xl space-y-2">
<div className="flex items-center justify-between text-slate-400">
<span className="text-xs font-semibold uppercase tracking-wider">Approved Variations</span>
<div className="flex items-center gap-1.5">
<span className="text-xs font-semibold uppercase tracking-wider">Approved Variations</span>
<HelpTooltip
title="Approved Variations"
content="Contract amendments and scope adjustments approved by the governing committee."
size="sm"
/>
</div>
<Coins className="w-4 h-4 text-blue-400" />
</div>
<p className="text-2xl font-bold text-blue-400">