From 01f430d2bb299ec598895ad58f877ca8358862d2 Mon Sep 17 00:00:00 2001 From: Nadir Hamid Date: Sat, 6 Jun 2026 00:30:16 +0000 Subject: [PATCH] improve workspace suspension code and update workspace modal UI --- app/app/Helpers/MainHelper.php | 25 ++++++----------- .../Controllers/Admin/WorkspaceController.php | 14 ++++++---- .../admin/workspace/create_edit.blade.php | 28 +++++++------------ 3 files changed, 26 insertions(+), 41 deletions(-) diff --git a/app/app/Helpers/MainHelper.php b/app/app/Helpers/MainHelper.php index 416e41ee7..a8764fcde 100755 --- a/app/app/Helpers/MainHelper.php +++ b/app/app/Helpers/MainHelper.php @@ -15,6 +15,7 @@ use App\ApiCredential; use App\ApiCredentialKVStore; use App\SupportTicket; +use App\WorkspaceSuspension; use App\Helpersa\WebSvcHelper; use Config; use Auth; @@ -1302,23 +1303,13 @@ public static function numTicketsOpen() { } public static function isWorkspaceSuspended($workspaceId) { - $gracePeriod = 7 * 24 * 3600; // 7 days in seconds - - $suspensions = \App\WorkspaceSuspension::where('workspace_id', $workspaceId)->get(); - - $now = new \DateTime(); - - foreach ($suspensions as $suspension) { - $suspendedAt = $suspension->suspended_at; - $gracePeriodExtension = $suspension->grace_period_extension ?? 0; - - $totalGracePeriod = $gracePeriod + ($gracePeriodExtension * 3600); - - $suspensionDeadline = (new \DateTime($suspendedAt->format('Y-m-d H:i:s')))->modify("+{$totalGracePeriod} seconds"); - - if ($now > $suspensionDeadline) { - return true; - } + $suspensions = WorkspaceSuspension::where('workspace_id', $workspaceId) + ->where('status', 'SUSPENDED') + ->orderBy('suspended_at', 'desc') + ->count(); + + if ($suspensions > 0) { + return true; } return false; diff --git a/app/app/Http/Controllers/Admin/WorkspaceController.php b/app/app/Http/Controllers/Admin/WorkspaceController.php index 29ca5d7ca..2d7f96d6f 100755 --- a/app/app/Http/Controllers/Admin/WorkspaceController.php +++ b/app/app/Http/Controllers/Admin/WorkspaceController.php @@ -49,9 +49,8 @@ public function index() public function create() { $gracePeriodExtension = null; - $activeSuspension = null; - $isWorkspaceSuspended = false; - return view('admin.workspace.create_edit', compact('gracePeriodExtension', 'activeSuspension', 'isWorkspaceSuspended')); + $isSuspended = null; + return view('admin.workspace.create_edit', compact('gracePeriodExtension', 'isSuspended')); } /** @@ -89,9 +88,12 @@ public function edit(Workspace $workspace) $routingACLs = WorkspaceHelper::getACLs($workspace); $planHistory = PlanUsagePeriod::where("workspace_id", $workspace->id)->get(); $gracePeriodExtension = WorkspaceSuspensionHelper::getGracePeriodExtension($workspace->id); - $activeSuspension = WorkspaceSuspensionHelper::getActiveSuspension($workspace->id); - $isWorkspaceSuspended = !empty($activeSuspension); - return view('admin.workspace.create_edit', compact('workspace', 'users', 'billingHistory', 'billingInfo', 'usageTriggers', 'routingACLs', 'planHistory', 'invoices', 'gracePeriodExtension', 'activeSuspension', 'isWorkspaceSuspended')); + $isSuspended = NULL; + if (MainHelper::isWorkspaceSuspended($workspace->id)) { + $isSuspended = TRUE; + } + + return view('admin.workspace.create_edit', compact('workspace', 'users', 'billingHistory', 'billingInfo', 'usageTriggers', 'routingACLs', 'planHistory', 'invoices', 'gracePeriodExtension', 'isSuspended')); } /** diff --git a/app/resources/views/admin/workspace/create_edit.blade.php b/app/resources/views/admin/workspace/create_edit.blade.php index 9b3aef3b5..4ed830fb9 100755 --- a/app/resources/views/admin/workspace/create_edit.blade.php +++ b/app/resources/views/admin/workspace/create_edit.blade.php @@ -36,6 +36,15 @@ {{ $errors->first('name', ':message') }} + @if (isset($workspace)) +
+
+ @if (!empty($isSuspended)) + Suspended + @endif +
+
+ @endif
{!! Form::label('active', trans("admin/workspaces.active"), array('class' => 'control-label')) !!}
@@ -46,24 +55,7 @@ {{ $errors->first('confirmed', ':message') }}
- @if (isset($workspace)) -
- {!! Form::label('workspace_status', 'Status', array('class' => 'control-label')) !!} -
- @if (!empty($activeSuspension)) - Suspended - - Reason: {{ $activeSuspension->reason }}. - Suspended at: {{ $activeSuspension->suspended_at }}. - - @elseif (!empty($workspace->active)) - Active - @else - Inactive - @endif -
-
- @endif +