@if (session('success'))
{{ session('success') }}
@endif
Request Information
@php
$duration = $request->start_time->diff($request->end_time);
$durationParts = [];
if ($duration->h > 0) {
$durationParts[] = $duration->h . ' hr';
}
if ($duration->i > 0) {
$durationParts[] = $duration->i . ' min';
}
$durationStr = implode(' ', $durationParts) ?: '0 min';
@endphp
-
Requested By
- {{ $request->name ?? 'N/A' }}
-
Department
- {{ $request->department ?? 'N/A' }}
-
Created At
- {{ $request->created_at->format('d M Y H:i') }}
-
Title
- {{ $request->title }}
@if ($request->meetingRoomBooking)
@endif
-
Date
-
{{ $request->start_time->format('d M Y') }}
-
Time
-
{{ $request->start_time->format('H:i') }} -
{{ $request->end_time->format('H:i') }}
-
Duration
- {{ $durationStr }}
-
Status
-
$request->status === 'Initiated',
'bg-green-50 text-green-700 ring-1 ring-green-200' =>
$request->status === 'Approved',
'bg-red-50 text-red-700 ring-1 ring-red-200' =>
$request->status === 'Rejected',
'bg-gray-50 text-gray-700 ring-1 ring-gray-200' =>
$request->status === 'Cancelled',
])>
{{ $request->status }}
@php
$invitees = is_array($request->invitees)
? $request->invitees
: ($request->invitees
? json_decode($request->invitees, true)
: []);
@endphp
@if ($invitees && count($invitees) > 0)
-
Invitees
-
@foreach ($invitees as $invitee)
{{ $invitee['name'] }}
@endforeach
@endif
@if ($request->recurrence_type && $request->recurrence_type !== 'none')
-
Recurrence
-
{{ ucfirst($request->recurrence_type) }} (every
{{ $request->recurrence_interval }}
{{ $request->recurrence_interval > 1 ? $request->recurrence_type . 's' : $request->recurrence_type }})
@if ($request->recurrence_end_date)
until
{{ \Carbon\Carbon::parse($request->recurrence_end_date)->format('d M Y') }}
@endif
@endif
@if ($request->recurrence_type && $request->recurrence_type !== 'none')
All Meeting Dates
@php
$currentDate = $request->start_time->copy();
$endDate = $request->recurrence_end_date
? \Carbon\Carbon::parse($request->recurrence_end_date)->endOfDay()
: $request->start_time->copy()->addYear();
$dates = [];
while ($currentDate->lte($endDate)) {
$dates[] = $currentDate->format('d M Y');
switch ($request->recurrence_type) {
case 'daily':
$currentDate->addDays($request->recurrence_interval);
break;
case 'weekly':
$currentDate->addWeeks($request->recurrence_interval);
break;
case 'monthly':
$currentDate->addMonths($request->recurrence_interval);
break;
}
}
@endphp
@foreach ($dates as $index => $date)
-
{{ $index + 1 }}
{{ $date }}
{{ $request->start_time->format('H:i') }}
- {{ $request->end_time->format('H:i') }}
@endforeach
@endif
Remarks
{{ $request->remarks ?? 'No remarks provided.' }}
@if ($request->link_meeting)
Meeting Link:
{{ $request->link_meeting }}
@endif
@if ($canApprove)
Zoom Account Availability
Max 2 meetings / account / day · 1 meeting = full day
Check existing Zoom meetings on the requested date(s) – like in Zoom Meetings.
Accounts with < 2 meetings that day are Available, with 2 are Full.
@php
$requestedDateLabel = $request->start_time->setTimezone('Asia/Jakarta')->format('d M Y');
$recurringLabel = '';
if ($request->recurrence_type && $request->recurrence_type !== 'none') {
$recurringLabel = ' + recurring (' . ucfirst($request->recurrence_type) . ' every ' . $request->recurrence_interval . ($request->recurrence_end_date ? ' until ' . \Carbon\Carbon::parse($request->recurrence_end_date)->format('d M Y') : '') . ')';
}
@endphp
{{ $requestedDateLabel }}{{ $recurringLabel }}
{{ $request->start_time->format('H:i') }} - {{ $request->end_time->format('H:i') }} Asia/Jakarta
@endif
@if ($request->approvals->isNotEmpty())
Activity Log
@foreach ($request->approvals->sortByDesc('created_at') as $approval)
@php
$statusStyles = [
'Approved' => ['bg-green-50 text-green-700 ring-green-200', 'bg-green-500'],
'Rejected' => ['bg-red-50 text-red-700 ring-red-200', 'bg-red-500'],
];
[$pillClass, $dotClass] = $statusStyles[$approval->status] ?? ['bg-gray-50 text-gray-700 ring-gray-200', 'bg-gray-400'];
@endphp
{{ strtoupper(substr($approval->user->name ?? '?', 0, 1)) }}
{{ $approval->user->name }}
{{ $approval->created_at->format('d M Y H:i') }}
{{ $approval->status }}
@php $approvalComment = $approval->comment ?? $approval->remarks ?? null; @endphp
@if ($approvalComment && trim($approvalComment))
{{ $approvalComment }}
@else
No comment provided.
@endif
@endforeach
@else
{{--
No approval history found
Approval records will appear here once processed.
--}}
@endif
@if ($canApprove)
Actions
@endif
Approval Workflow
@php
$workflowSteps = [
[
'name' => $request->user->name,
'status' => 'Approved',
'display' => 'Submitted',
],
[
'name' => $request->approver1_name,
'status' => $request->status,
'display' => $request->status === 'Approved' ? 'Approved' : ($request->status === 'Initiated' ? 'Initiated' : ($request->status ?? 'Initiated')),
],
];
@endphp
@foreach ($workflowSteps as $index => $step)
@php
$bgColor = $step['status'] === 'Approved' ? '#dcfce7' : ($step['status'] === 'Rejected' ? '#fef9c3' : ($step['status'] === 'Cancelled' ? '#fee2e2' : '#dbeafe'));
$borderColor = $step['status'] === 'Approved' ? '#22c55e' : ($step['status'] === 'Rejected' ? '#eab308' : ($step['status'] === 'Cancelled' ? '#ef4444' : '#3b82f6'));
$textColor = $step['status'] === 'Approved' ? '#15803d' : ($step['status'] === 'Rejected' ? '#a16207' : ($step['status'] === 'Cancelled' ? '#b91c1c' : '#1d4ed8'));
$icon = $step['status'] === 'Approved' ? '✓' : $index + 1;
@endphp
{{ $icon }}
{{ $step['name'] ?? 'N/A' }}
{{ $step['display'] }}
@endforeach
Back
@php($canCancelOMR = in_array($request->status, ['Initiated', 'Rejected', 'Approved']) && ($request->user_id === Auth::id() || Auth::user()->hasRole('admin') || ($request->approver1 && $request->canApproveAs(Auth::user(), (int) $request->approver1))))
@if ((in_array($request->status, ['Initiated', 'Rejected']) && $request->user_id === Auth::id()) || $canCancelOMR)
@if (in_array($request->status, ['Initiated', 'Rejected']) && $request->user_id === Auth::id())
Edit
@endif
@if ($canCancelOMR)
@endif
@endif