Manage Training

@if (session()->has('message')) @endif @if($activeTab === 'categories')
@if(!$categoryUpdateMode) @endif
{{ $categoryUpdateMode ? 'Edit Category' : 'Add New Category' }}
@error('categoryName')
{{ $message }}
@enderror
@foreach($availableRoles as $roleId => $roleName)
@endforeach
@error('categoryRoleIds')
{{ $message }}
@enderror
@if($categoryUpdateMode) @endif
@forelse($categories as $category) @empty @endforelse
ID Name Description Roles Sort Order Status Videos Actions
{{ $category->id }} {{ $category->name }} {{ Str::limit($category->description ?? 'N/A', 50) }} @php // Ensure role_ids is an array (handle cases where cast might not work) $roleIds = is_array($category->role_ids) ? $category->role_ids : (is_string($category->role_ids) ? json_decode($category->role_ids, true) : []); $roleIds = is_array($roleIds) ? $roleIds : []; @endphp @if(!empty($roleIds)) @foreach($roleIds as $roleId) {{ $availableRoles[$roleId] ?? 'Role ' . $roleId }} @endforeach @else None @endif {{ $category->sort_order ?? 0 }} @if($category->is_active) Active @else Inactive @endif {{ $category->trainingVideos->count() }}
No categories found
@if($categories->hasPages())
{{ $categories->links() }}
@endif @endif @if($activeTab === 'videos')
@if(!$videoUpdateMode) @endif
{{ $videoUpdateMode ? 'Edit Video' : 'Add New Video' }}
@error('videoCategoryId')
{{ $message }}
@enderror
@error('videoTitle')
{{ $message }}
@enderror
@error('videoFile')
{{ $message }}
@enderror @if($videoUpdateMode) Leave empty to keep existing file @else Max file size: 100MB. Supported formats: MP4, AVI, MOV, WMV, FLV, WebM @endif @if($videoFile)
File selected: {{ $videoFile->getClientOriginalName() }}
@endif
@if($videoUpdateMode) @endif
@forelse($videos as $video) @empty @endforelse
ID Title Category Description File Name Duration Sort Order Status Actions
{{ $video->id }} {{ $video->title }} {{ $video->trainingCategory->name ?? 'N/A' }} {{ Str::limit($video->description ?? 'N/A', 50) }} @if($video->video_file_name) {{ Str::limit($video->video_file_name, 30) }} @else N/A @endif @if($video->duration) {{ gmdate('H:i:s', $video->duration) }} @else N/A @endif {{ $video->sort_order ?? 0 }} @if($video->is_active) Active @else Inactive @endif
No videos found
@if($videos->hasPages())
{{ $videos->links() }}
@endif @endif