@extends('layouts.dashboard') @section('title', __('Curriculum')) @section('page_title', __('Curriculum')) @section('content')

{{ __('Curriculum') }}

{{ $course->title }}

{{ __('Preview') }}
@if($course->sections->isNotEmpty())

{{ __('Drag sections and lessons to reorder them — lessons can also be moved between sections. Order saves automatically.') }}

@endif
@forelse ($course->sections as $section)

    @forelse ($section->lessons as $lesson)
  • {{ $lesson->title }} {{ status_label($lesson->lesson_type) }} @if ($lesson->is_preview) {{ __('Preview') }} @endif @if ($lesson->duration) {{ __(':count min', ['count' => $lesson->duration]) }} @endif @if($lesson->file_path)@endif @if(!empty($lesson->subtitles)) {{ count($lesson->subtitles) }}@endif
    @csrf @method('DELETE')
    @foreach($lesson->subtitles ?? [] as $sub)
    @csrf @method('DELETE')
    @endforeach
    @csrf @method('PUT') @php($lessonRow = $lesson)
    @if(!empty($lesson->file_path))
    {{ __('Current file') }}: {{ basename($lesson->file_path) }}
    @endif
    @if(!empty($lesson->scorm_launch))
    SCORM {{ $lesson->scorm_version }} · {{ basename($lesson->scorm_launch) }}
    @endif
    @php($lfAsr = app(\App\Support\Transcription\TranscriptionService::class)) @if($lfAsr->isConfigured() && in_array($lesson->lesson_type, ['video', 'audio'], true))
    {{-- Speech-to-text: builds the first track from the lesson's own audio. Fields post to the asr form below via form="…". --}}
    {{ __('Using :provider — runs in the background.', ['provider' => $lfAsr->label()]) }}
    @endif @if(!empty($lesson->subtitles))
    @foreach($lesson->subtitles as $sub) {{ $sub['label'] ?? $sub['lang'] }} @endforeach
    @endif
    is_preview)>
    is_downloadable)>
    @include('instructor.courses._drip-fields', ['uid' => 'l'.$lesson->id, 'lesson' => $lesson, 'lessons' => $allLessons, 'quizzes' => $quizzes])
    @if(app(\App\Support\Transcription\TranscriptionService::class)->isConfigured()) {{-- The fields live in the edit form above and post here via form="…". --}}
    @csrf
    @endif
  • @empty
  • {{ __('No lessons yet.') }}
  • @endforelse
@csrf
@if($errors->has('playlist_url') && old('_section') == $section->id)
{{ $errors->first('playlist_url') }}
@endif
{{ __('Every video becomes a lesson in this section, in playlist order. The playlist must be public or unlisted.') }}
@csrf
@php($lessonRow = null)
@if(!empty($lessonRow->file_path))
{{ __('Current file') }}: {{ basename($lessonRow->file_path) }}
@endif
@if(!empty($lessonRow->scorm_launch))
SCORM {{ $lessonRow->scorm_version }} · {{ basename($lessonRow->scorm_launch) }}
@endif
@if(!empty($lessonRow->subtitles))
@foreach($lessonRow->subtitles as $sub) {{ $sub['label'] ?? $sub['lang'] }} @endforeach
@endif
@include('instructor.courses._drip-fields', ['uid' => 's'.$section->id, 'lesson' => null, 'lessons' => $allLessons, 'quizzes' => $quizzes])
@csrf @method('PUT')
@csrf @method('DELETE')
@empty
{{ __('No sections yet. Add your first section to start building the curriculum.') }}
@endforelse
{{ __('Add Section') }}
@if(module_enabled('ai') && setting('ai_generator_enabled', '1') === '1') {{ __('Generate outline with AI') }} @endif
@csrf
@endsection @push('scripts') @endpush