From 1cf2fc9523d21bc125dea0db1dc049a909c3cb6e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 31 May 2026 15:04:55 +0000 Subject: [PATCH] Redesign project workflow: unified workspace, project-centric dashboard, clickable request rows --- client/requests.php | 17 +- dashboard.php | 93 ++-- project.php | 1007 +++++++++++++++++++++++++++++++++++ staff/estimate-requests.php | 121 +---- 4 files changed, 1088 insertions(+), 150 deletions(-) create mode 100644 project.php diff --git a/client/requests.php b/client/requests.php index 77715af..122fd39 100644 --- a/client/requests.php +++ b/client/requests.php @@ -14,8 +14,6 @@ $requests = array_values(array_filter(portalLoadProjectRequests(), function ($r) use ($username) { return (string)($r['client_username'] ?? '') === $username; })); -$proposals = portalLoadProposals(); -$agreements = portalLoadProjectAgreements(); usort($requests, function ($a, $b) { return strcmp((string)($b['created_at'] ?? ''), (string)($a['created_at'] ?? '')); @@ -31,7 +29,7 @@ - My Project Requests | Client Portal | Runlevel Systems + My Projects | Client Portal | Runlevel Systems + + + + + +
+
+ + + + +

Project not found.

+ +

You do not have permission to view this project.

+ + +
+
+ + +
+
+
+
+
·
+
+
+ + +
+
+ + +
+
Project Progress
+
+ +
+
+ +
+ + +
+
+ + +
+ Client Information +
+
+
Client Name
+
Email
+
Phone
+
Discord
+
Company / Website
+
Preferred Contact
+ +
Repository / Project Link
+ +
Username
+
+
+
+ + +
+ Project Details +
+
+
Request ID
+
Project Type
+
Project Stage
+
Project Size
+
Timeline
+
Budget
+
Submitted
+
Last Updated
+
+
+ Description / Requirements +
+
+ + + +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ +
+
+ +
+
+ + + +
+ Internal Notes (not visible to client) +
+
+
+ + + + + + + + + +
+
+
+ +
+ Current Notes +
+
+ +
+
+ + + +
> + + Proposal + +    + + Not started + + +
+ + + +
+
Proposal ID
+
Status
+
Project Title
+
Estimated Cost
+
Estimated Time
+
Payment to Begin
+
+ +
Proposed Work
+ + +
Deliverables
+ + +
Next Steps
+ + + +
+ +

Please review the proposal above. Click below to approve.

+ +
+ + + +
✓ You approved this proposal.
+ + +

No proposal created yet.

+ + + + +
+ + + +
+
+ + +
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + +
> + + Project Agreement + +    + + Not started + + +
+ + +
+
Agreement ID
+
Status
+
Project Title
+
Effective Date
+
Timeline
+
Payment Terms
+ +
Signed By
+
Signed At
+ +
+ +
Scope of Work
+ + +
Deliverables
+ + +
Revision Terms
+ + +
Customer Responsibilities
+ + + +
+ +

Please review the agreement above. Enter your full name to sign.

+
+
+ + +
+ +
+
+ + + +
✓ Agreement signed.
+ + +

No agreement created yet.

+ + + +
+ + + +
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ Standard Legal Terms (click to expand) +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + +
+ Payments +
+

Payments are managed via PayPal invoices or approved payment method.

+ + + + Payment Information + +
+
+ + +
+ Project Timeline +
+ +

No activity recorded yet.

+ +
    + +
  • +
    +
    +
    +
    +
    +
  • + +
+ +
+
+ + +
+ Files & Attachments +
+

File attachments and document uploads are coming soon. Contact us directly to share files for this project.

+ +
Repository / Project Link
+ +
+
+ + + +
+
+ + + + + + diff --git a/staff/estimate-requests.php b/staff/estimate-requests.php index 7c125d9..d8f71e8 100644 --- a/staff/estimate-requests.php +++ b/staff/estimate-requests.php @@ -65,13 +65,17 @@ $agreements = portalLoadProjectAgreements(); $viewId = trim((string)($_GET['view'] ?? ($_POST['record_id'] ?? ''))); -$viewRequest = null; -foreach ($requests as $request) { - if ((string)($request['id'] ?? '') === $viewId) { - $viewRequest = portalNormalizeProjectRequest((array)$request); - break; +// If a ?view= param is set, redirect to the unified project workspace +if ($viewId !== '') { + foreach ($requests as $r) { + if ((string)($r['id'] ?? '') === $viewId) { + $rid = portalGetRequestDisplayId((array)$r); + header('Location: /project.php?id=' . urlencode($rid)); + exit; + } } } +$viewRequest = null; usort($requests, function ($a, $b) { return strcmp((string)($b['created_at'] ?? ''), (string)($a['created_at'] ?? '')); @@ -130,93 +134,8 @@
- -
-
-

Project Request Detail

-
- - Create Proposal - Create Project Agreement -
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
- -
-
- -
- - -
-
-
-
-
-
-
-
-
- -
-
- -
- - - -
- -
- - -
No linked proposals yet.
- - -
- - -
- -
- - -
No linked project agreements yet.
- - -
- - -
-
+ +

Redirecting to project workspace…

Project Requests

@@ -229,24 +148,30 @@ Email Project Type Status - Submitted Date + Created + Last Updated - No project requests yet. + No project requests yet. - - - + + + - View + + View