Skip to content

Commit 40bb851

Browse files
scott graysonscott grayson
authored andcommitted
awards
1 parent 71d0cd9 commit 40bb851

File tree

5 files changed

+22
-4
lines changed

5 files changed

+22
-4
lines changed

config/filament-lms.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@
88
'brand_logo' => '',
99
'vite_theme' => '',
1010
'colors' => [],
11+
'awards' => [
12+
'Default' => 'default',
13+
],
1114
];

database/factories/CourseFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function definition(): array
2323
'name' => $name,
2424
'slug' => $slug,
2525
'external_id' => $externalId,
26-
'award_layout' => 'default',
26+
'award' => 'default',
2727
'description' => $this->faker->sentence(),
2828
];
2929
}

database/migrations/create_lms_courses_table.php.stub

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ return new class extends Migration
1717
$table->string('slug')->unique();
1818
$table->string('external_id')->unique();
1919
$table->text('image')->nullable();
20-
$table->string('award_layout')->nullable();
21-
$table->json('award_content')->nullable();
20+
$table->string('award')->nullable();
2221
$table->text('description')->nullable();
2322
$table->boolean('hidden')->default(false);
2423
$table->timestamps();

src/Http/Controllers/CertificateController.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,13 @@ public function show($courseId, $userId): View
3030
abort(403, __('Course is not completed'));
3131
}
3232

33-
return view('filament-lms::certificates.default')
33+
$view = 'filament-lms::certificates.' . $course->award;
34+
35+
if (!view()->exists($view)) {
36+
$view = 'filament-lms::certificates.default';
37+
}
38+
39+
return view($view)
3440
->with('dateEarned', Carbon::parse($completedAt)->format(('F j, Y')))
3541
->with('user', User::find($userId))
3642
->with('course', $course);

src/Resources/CourseResource.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Tapp\FilamentLms\Models\Course;
1414
use Tapp\FilamentLms\Resources\CourseResource\Pages;
1515
use Tapp\FilamentLms\Resources\CourseResource\RelationManagers;
16+
use Illuminate\Support\HtmlString;
1617

1718
class CourseResource extends Resource
1819
{
@@ -53,6 +54,15 @@ public static function form(Form $form): Form
5354
->imageResizeTargetHeight('1080')
5455
->imageCropAspectRatio('1:1'),
5556
Forms\Components\Textarea::make('description'),
57+
Forms\Components\Select::make('award')
58+
->options(config('filament-lms.awards'))
59+
->required()
60+
->hint(function ($record) {
61+
$link = route('filament-lms::certificates.show', ['course' => $record->id, 'user' => auth()->id()]);
62+
63+
return new HtmlString("<a rel='noopener noreferrer' target='_blank' href='{$link}'>Click to Preview</a>");
64+
})
65+
->helperText('Form must be saved before previewing.'),
5666
Forms\Components\Checkbox::make('hidden'),
5767

5868
/*

0 commit comments

Comments
 (0)