diff --git a/app/Http/Livewire/School/LecturerLandingPage.php b/app/Http/Livewire/School/LecturerLandingPage.php new file mode 100644 index 00000000..be6b878b --- /dev/null +++ b/app/Http/Livewire/School/LecturerLandingPage.php @@ -0,0 +1,44 @@ + CourseEvent::query() + ->get(), + 'events' => CourseEvent::query() + ->whereHas('course', function ($query) { + $query->where('lecturer_id', $this->lecturer->id); + }) + ->get() + ->map(fn($event) => [ + 'id' => $event->id, + 'startDate' => $event->from, + 'endDate' => $event->to, + 'location' => $event->course->name, + 'description' => $event->venue->name, + ]), + ]); + } + + public function showEvent($id) + { + $this->activeEvent = $id; + } +} diff --git a/app/Http/Livewire/Tables/LecturerTable.php b/app/Http/Livewire/Tables/LecturerTable.php index 86140012..f15d0743 100644 --- a/app/Http/Livewire/Tables/LecturerTable.php +++ b/app/Http/Livewire/Tables/LecturerTable.php @@ -62,7 +62,7 @@ class LecturerTable extends DataTableComponent ->collapseOnMobile(), Column::make('') ->label( - fn($row, Column $column) => view('columns.lectures.action')->withRow($row) + fn($row, Column $column) => view('columns.lectures.action')->withRow($row)->withCountry($this->country) ), ]; @@ -77,18 +77,30 @@ class LecturerTable extends DataTableComponent ]); } - public function lecturerSearch($id) + public function lecturerSearch($id, $event = true) { $lecturer = Lecturer::query()->find($id); - return to_route('school.table.event', [ - '#table', - 'country' => $this->country, - 'table' => [ - 'filters' => [ - 'dozent' => $lecturer->id, - ], - ] - ]); + if ($event) { + return to_route('school.table.event', [ + '#table', + 'country' => $this->country, + 'table' => [ + 'filters' => [ + 'dozent' => $lecturer->id, + ], + ] + ]); + } else { + return to_route('library.table.libraryItems', [ + '#table', + 'country' => $this->country, + 'table' => [ + 'filters' => [ + 'lecturer_id' => $lecturer->id, + ], + ] + ]); + } } } diff --git a/app/Http/Livewire/Tables/LibraryItemTable.php b/app/Http/Livewire/Tables/LibraryItemTable.php index 379fc362..16b36085 100644 --- a/app/Http/Livewire/Tables/LibraryItemTable.php +++ b/app/Http/Livewire/Tables/LibraryItemTable.php @@ -12,6 +12,7 @@ use Rappasoft\LaravelLivewireTables\Views\Column; use Rappasoft\LaravelLivewireTables\Views\Columns\ImageColumn; use Rappasoft\LaravelLivewireTables\Views\Filters\MultiSelectFilter; use Rappasoft\LaravelLivewireTables\Views\Filters\SelectFilter; +use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter; use Spatie\LaravelOptions\Options; class LibraryItemTable extends DataTableComponent @@ -43,6 +44,11 @@ class LibraryItemTable extends DataTableComponent public function filters(): array { return [ + TextFilter::make(__('By lecturer'), 'lecturer_id') + ->hiddenFromMenus() + ->filter(function (Builder $builder, string $value) { + $builder->where('library_items.lecturer_id', '=', $value); + }), MultiSelectFilter::make('Tag') ->options( Tag::query() diff --git a/app/Models/LibraryItem.php b/app/Models/LibraryItem.php index edefe6b5..be927aba 100644 --- a/app/Models/LibraryItem.php +++ b/app/Models/LibraryItem.php @@ -2,7 +2,6 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; @@ -17,7 +16,6 @@ use Spatie\Tags\HasTags; class LibraryItem extends Model implements HasMedia, Sortable { - use HasFactory; use InteractsWithMedia; use HasTags; use SortableTrait; diff --git a/app/Nova/Lecturer.php b/app/Nova/Lecturer.php index e670e236..d3e99306 100644 --- a/app/Nova/Lecturer.php +++ b/app/Nova/Lecturer.php @@ -88,6 +88,12 @@ class Lecturer extends Resource Text::make('Name') ->rules('required', 'string'), + Markdown::make(__('Subtitle'), 'subtitle') + ->help(__('This is the subtitle on the landing page.')), + + Markdown::make(__('Intro'), 'intro') + ->help(__('This is the introduction text that is shown on the landing page.')), + Text::make('Slug') ->rules('required', 'string', 'unique:lecturers,slug') ->exceptOnForms(), @@ -108,7 +114,8 @@ class Lecturer extends Resource return $request->user() ->hasRole('super-admin'); }) - ->searchable()->withSubtitles(), + ->searchable() + ->withSubtitles(), ]; } diff --git a/database/migrations/2023_01_15_133129_add_landing_page_fields_to_lecturers_table.php b/database/migrations/2023_01_15_133129_add_landing_page_fields_to_lecturers_table.php new file mode 100644 index 00000000..6b6a8f3b --- /dev/null +++ b/database/migrations/2023_01_15_133129_add_landing_page_fields_to_lecturers_table.php @@ -0,0 +1,32 @@ +text('subtitle') + ->nullable(); + $table->text('intro') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + * @return void + */ + public function down() + { + Schema::table('lecturers', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 4e311e3f..087a017a 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -186,6 +186,19 @@ class DatabaseSeeder extends Seeder 'lecturer_id' => 1, 'name' => 'Hands on Bitcoin', 'created_by' => 1, + 'description' => ' +Klimakiller Bitcoin! Bitcoin hat keinen Nutzen! Bitcoin wird nur von Kriminellen genutzt! + +Diese oder ähnliche Aussprüche kennen Sie bestimmt? Dann lassen Sie uns Bitcoin doch einmal genauer anschauen! In meinem Kurs nehme ich Sie mit auf einen Weg der bei der Geschichte unseres Geldes beginnt. Lassen Sie uns schauen wie unser Geld entsteht und welche Aufgaben dabei Geschäftsbanken und Zentralbanken haben. Welche Rolle spielt eigentlich das Jahr 1971 und welche Auswirkungen hatte dies auf unser Geld wie wir es heute verwenden. Was hat die Banken- und Finanzkrise 2008/ 2009 mit Bitcoin und Neuseeland mit unserer Inflation zu tun? + +Was ist eigentlich dieses Bitcoin? Wer hat es erfunden und warum? Lassen Sie uns schauen, was eine Blockchain überhaupt ist und wie sie funktioniert- warum ist es wichtig, dass hierfür Energie eingesetzt wird. Was ist eigentlich dieses Proof of Work von dem immer geschrieben wird und warum ist er so wichtig? Und ist Bitcoin vielleicht sogar ein Treiber im Ausbau der erneuerbaren Energien bei? Sie haben schonmal von Minern gehört und vielleicht sogar von Nodes? Doch welche Rolle spielen Sie und wie sehen diese eigentlich aus- auch das können Sie in diesem Kurs herausfinden. + +Bitcoin wird nur von Kriminellen genutzt? Lassen Sie uns gemeinsam schauen wie eine Bitcoin Transaktion funktioniert und was eine sog. „Wallet“ ist. Welche Unterschiede gibt es beim Verwahren von Bitcoin und wie können diese sicher vererbt werden. Dabei werden wir auch Begriffe wie PrivateKey, PublicKey und Seed kennenlernen und wie diese zusammenspielen. Und nein- sie müssen für diesen Kurs kein Informatikstudium besitzen! + +Bitcoin ist interdisziplinär! Und wer anfängt sich damit zu beschäftigen wird schnell feststellen, dass es mehrere hundert Stunden benötigt, um Bitcoin zu verstehen. + +Deshalb werden Sie von mir in diesem Kurs leicht verständlich an das Thema herangeführt. Sie erhalten dabei Kenntnis von den Grundbegriffen, der Funktion und der Verwendung von Bitcoin. +', ]); $course->syncTagsWithType(['Hardware Wallet'], 'course'); $course->categories() @@ -194,6 +207,19 @@ class DatabaseSeeder extends Seeder 'lecturer_id' => 1, 'name' => 'Bitcoin <> Crypto', 'created_by' => 1, + 'description' => ' +Klimakiller Bitcoin! Bitcoin hat keinen Nutzen! Bitcoin wird nur von Kriminellen genutzt! + +Diese oder ähnliche Aussprüche kennen Sie bestimmt? Dann lassen Sie uns Bitcoin doch einmal genauer anschauen! In meinem Kurs nehme ich Sie mit auf einen Weg der bei der Geschichte unseres Geldes beginnt. Lassen Sie uns schauen wie unser Geld entsteht und welche Aufgaben dabei Geschäftsbanken und Zentralbanken haben. Welche Rolle spielt eigentlich das Jahr 1971 und welche Auswirkungen hatte dies auf unser Geld wie wir es heute verwenden. Was hat die Banken- und Finanzkrise 2008/ 2009 mit Bitcoin und Neuseeland mit unserer Inflation zu tun? + +Was ist eigentlich dieses Bitcoin? Wer hat es erfunden und warum? Lassen Sie uns schauen, was eine Blockchain überhaupt ist und wie sie funktioniert- warum ist es wichtig, dass hierfür Energie eingesetzt wird. Was ist eigentlich dieses Proof of Work von dem immer geschrieben wird und warum ist er so wichtig? Und ist Bitcoin vielleicht sogar ein Treiber im Ausbau der erneuerbaren Energien bei? Sie haben schonmal von Minern gehört und vielleicht sogar von Nodes? Doch welche Rolle spielen Sie und wie sehen diese eigentlich aus- auch das können Sie in diesem Kurs herausfinden. + +Bitcoin wird nur von Kriminellen genutzt? Lassen Sie uns gemeinsam schauen wie eine Bitcoin Transaktion funktioniert und was eine sog. „Wallet“ ist. Welche Unterschiede gibt es beim Verwahren von Bitcoin und wie können diese sicher vererbt werden. Dabei werden wir auch Begriffe wie PrivateKey, PublicKey und Seed kennenlernen und wie diese zusammenspielen. Und nein- sie müssen für diesen Kurs kein Informatikstudium besitzen! + +Bitcoin ist interdisziplinär! Und wer anfängt sich damit zu beschäftigen wird schnell feststellen, dass es mehrere hundert Stunden benötigt, um Bitcoin zu verstehen. + +Deshalb werden Sie von mir in diesem Kurs leicht verständlich an das Thema herangeführt. Sie erhalten dabei Kenntnis von den Grundbegriffen, der Funktion und der Verwendung von Bitcoin. +', ]); $course->syncTagsWithType(['Lightning'], 'course'); $course->categories() @@ -202,6 +228,19 @@ class DatabaseSeeder extends Seeder 'lecturer_id' => 2, 'name' => 'Bitcoin Lightning Network', 'created_by' => 1, + 'description' => ' +Klimakiller Bitcoin! Bitcoin hat keinen Nutzen! Bitcoin wird nur von Kriminellen genutzt! + +Diese oder ähnliche Aussprüche kennen Sie bestimmt? Dann lassen Sie uns Bitcoin doch einmal genauer anschauen! In meinem Kurs nehme ich Sie mit auf einen Weg der bei der Geschichte unseres Geldes beginnt. Lassen Sie uns schauen wie unser Geld entsteht und welche Aufgaben dabei Geschäftsbanken und Zentralbanken haben. Welche Rolle spielt eigentlich das Jahr 1971 und welche Auswirkungen hatte dies auf unser Geld wie wir es heute verwenden. Was hat die Banken- und Finanzkrise 2008/ 2009 mit Bitcoin und Neuseeland mit unserer Inflation zu tun? + +Was ist eigentlich dieses Bitcoin? Wer hat es erfunden und warum? Lassen Sie uns schauen, was eine Blockchain überhaupt ist und wie sie funktioniert- warum ist es wichtig, dass hierfür Energie eingesetzt wird. Was ist eigentlich dieses Proof of Work von dem immer geschrieben wird und warum ist er so wichtig? Und ist Bitcoin vielleicht sogar ein Treiber im Ausbau der erneuerbaren Energien bei? Sie haben schonmal von Minern gehört und vielleicht sogar von Nodes? Doch welche Rolle spielen Sie und wie sehen diese eigentlich aus- auch das können Sie in diesem Kurs herausfinden. + +Bitcoin wird nur von Kriminellen genutzt? Lassen Sie uns gemeinsam schauen wie eine Bitcoin Transaktion funktioniert und was eine sog. „Wallet“ ist. Welche Unterschiede gibt es beim Verwahren von Bitcoin und wie können diese sicher vererbt werden. Dabei werden wir auch Begriffe wie PrivateKey, PublicKey und Seed kennenlernen und wie diese zusammenspielen. Und nein- sie müssen für diesen Kurs kein Informatikstudium besitzen! + +Bitcoin ist interdisziplinär! Und wer anfängt sich damit zu beschäftigen wird schnell feststellen, dass es mehrere hundert Stunden benötigt, um Bitcoin zu verstehen. + +Deshalb werden Sie von mir in diesem Kurs leicht verständlich an das Thema herangeführt. Sie erhalten dabei Kenntnis von den Grundbegriffen, der Funktion und der Verwendung von Bitcoin. +', ]); $course->syncTagsWithType(['Für Unternehmen'], 'course'); $course->categories() @@ -279,6 +318,7 @@ class DatabaseSeeder extends Seeder 'value' => 'https://www.youtube.com/watch?v=Oztd2Sja4k0', 'created_by' => 1, ]); + $libraryItem->setStatus('published'); $libraryItem->syncTagsWithType(['Bitcoin'], 'library_item'); $library->libraryItems() ->attach($libraryItem); @@ -295,6 +335,7 @@ class DatabaseSeeder extends Seeder 'value' => 'https://aprycot.media/blog/liebe-krypto-und-fiat-bros/', 'created_by' => 1, ]); + $libraryItem->setStatus('published'); $libraryItem->syncTagsWithType(['Bitcoin'], 'library_item'); $library->libraryItems() ->attach($libraryItem); @@ -311,6 +352,7 @@ class DatabaseSeeder extends Seeder 'value' => 'https://www.youtube.com/watch?v=C7ynm0Zkwfk', 'created_by' => 1, ]); + $libraryItem->setStatus('published'); $libraryItem->syncTagsWithType(['Proof of Work'], 'library_item'); $library->libraryItems() ->attach($libraryItem); @@ -328,6 +370,7 @@ class DatabaseSeeder extends Seeder 'value' => null, 'created_by' => 1, ]); + $libraryItem->setStatus('published'); $libraryItem->syncTagsWithType(['Präsentationen'], 'library_item'); $nonPublicLibrary->libraryItems() ->attach($libraryItem); diff --git a/package.json b/package.json index 795082a8..5e52e8db 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "build-start-prod": "cd nova-components/Start && npm run prod" }, "devDependencies": { + "@alpinejs/collapse": "^3.10.5", "@tailwindcss/forms": "^0.5.2", "@tailwindcss/typography": "^0.5.0", "alpinejs": "^3.0.6", diff --git a/resources/js/app.js b/resources/js/app.js index a8093bee..0b09d8bc 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1,7 +1,9 @@ import './bootstrap'; import Alpine from 'alpinejs'; +import collapse from '@alpinejs/collapse' window.Alpine = Alpine; +Alpine.plugin(collapse) Alpine.start(); diff --git a/resources/lang/de.json b/resources/lang/de.json index dd21ebc4..127b834a 100644 --- a/resources/lang/de.json +++ b/resources/lang/de.json @@ -622,5 +622,18 @@ "nova-spatie-permissions::lang.display_names\": \"": "", "PlebArt": "", "Highscore Table": "Highscore-Tabelle", - "Hall of fame of our honorable plebs": "Hall of fame unserer Plebs" + "Hall of fame of our honorable plebs": "Hall of fame unserer Plebs", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "Back": "", + "By lecturer": "Nach Dozent", + "All courses of :name": "Alle Kurse von :name", + "Here you can see all events of :name.": "Hier siehst du alle Kurs-Termine von :name.", + "This is the introduction text that is shown on the landing page.": "Das ist der Text, der auf der Landing-Page des Dozenten.", + "This is the subtitle on the landing page.": "Das ist der Untertitel auf der Landing-Page des Dozenten.", + "Subtitle": "Untertitel auf der Landing-Page", + "Intro": "Intro auf der Landing-Page" } diff --git a/resources/lang/en.json b/resources/lang/en.json index 586b320b..0de4d4fc 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -612,7 +612,20 @@ "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", "Venues in the surrounding area.": "", - "PlebArt": "", - "Highscore Table": "", - "Hall of fame of our honorable plebs": "" + "PlebArt": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "Back": "", + "By lecturer": "", + "All courses of :name": "", + "Here you can see all events of :name.": "", + "This is the introduction text that is shown on the landing page.": "", + "This is the subtitle on the landing page.": "", + "Subtitle": "", + "Intro": "" } diff --git a/resources/lang/es.json b/resources/lang/es.json index ab7704c3..51d15f45 100644 --- a/resources/lang/es.json +++ b/resources/lang/es.json @@ -610,5 +610,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/lang/fr.json b/resources/lang/fr.json index 262b404e..7c7e9dcb 100644 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -610,5 +610,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/lang/hr.json b/resources/lang/hr.json index cb8c51c3..6c483930 100644 --- a/resources/lang/hr.json +++ b/resources/lang/hr.json @@ -610,5 +610,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/lang/it.json b/resources/lang/it.json index c0f36b8a..c322d780 100644 --- a/resources/lang/it.json +++ b/resources/lang/it.json @@ -610,5 +610,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/lang/mk.json b/resources/lang/mk.json index 190ed293..3bf1b77f 100644 --- a/resources/lang/mk.json +++ b/resources/lang/mk.json @@ -610,5 +610,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/lang/pl.json b/resources/lang/pl.json index d2d47a0b..2a212c1a 100644 --- a/resources/lang/pl.json +++ b/resources/lang/pl.json @@ -610,5 +610,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/lang/pt.json b/resources/lang/pt.json index 9487b713..3ffa2725 100644 --- a/resources/lang/pt.json +++ b/resources/lang/pt.json @@ -610,5 +610,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/lang/tr.json b/resources/lang/tr.json index f73608e0..9883660f 100644 --- a/resources/lang/tr.json +++ b/resources/lang/tr.json @@ -584,5 +584,17 @@ "World map of meetups": "", "Dates for courses about Bitcoin.": "", "Lecturers in the surrounding area.": "", - "Venues in the surrounding area.": "" + "Venues in the surrounding area.": "", + "Highscore Table": "", + "Hall of fame of our honorable plebs": "", + "Perimeter search bookcase :name (25km)": "", + "Show landing page": "", + "Orange pilled": "", + "Points": "", + "Changelog": "", + "PlebArt": "", + "Back": "", + "By lecturer": "", + "All courses of this lecturer": "", + "Here you can see all events of this lecturer.": "" } \ No newline at end of file diff --git a/resources/views/columns/lectures/action.blade.php b/resources/views/columns/lectures/action.blade.php index 7ad22427..1fcc1b23 100644 --- a/resources/views/columns/lectures/action.blade.php +++ b/resources/views/columns/lectures/action.blade.php @@ -12,15 +12,21 @@ @endif @if($row->library_items_count > 0) - + {{ __('Show content') }} ({{ $row->library_items_count }}) @endif @if($row->library_items_count < 1) - + {{ __('Show content') }} ({{ $row->library_items_count }}) @endif + + + {{ __('Show landing page') }} + diff --git a/resources/views/livewire/school/lecturer-landing-page.blade.php b/resources/views/livewire/school/lecturer-landing-page.blade.php new file mode 100644 index 00000000..e7d0b3a0 --- /dev/null +++ b/resources/views/livewire/school/lecturer-landing-page.blade.php @@ -0,0 +1,186 @@ +
+ {{-- MAIN --}} +
+
+
+
+

+ {{ $lecturer->name }} + {{ $lecturer->subtitle }} +

+
+ {{ $lecturer->intro }} +
+
+ +
+ Avatar +
+
+ +
+ +
+
+

+ {{ __('Courses') }} +

+

+ {{ __('All courses of :name', ['name' => $lecturer->name]) }} +

+
+
+ +
    + @foreach($courseEvents as $courseEvent) + @php + $activeClass = $activeEvent === $courseEvent->id ? 'bg-gradient-to-r from-amber-800 via-amber-600 to-amber-500' : 'bg-amber-500'; + @endphp +
  • +
    + {{ $courseEvent->course->name }} +

    {{ $courseEvent->from->asDate() }}

    +

    {{ $courseEvent->venue->city->name }}

    +

    {{ $courseEvent->venue->name }}

    +
    +
    +
    +

    + +

    +
    +
    {!! nl2br($courseEvent->course->description) !!}
    +
    +
    +
    +
    + @foreach($courseEvent->course->tags as $tag) + {{ $tag->name }} + @endforeach +
    +
    +
    + +
  • + @endforeach +
+ +
+
+

+ {{ __('Events') }} +

+

+ {{ __('Here you can see all events of :name.', ['name' => $lecturer->name]) }} +

+
+
+ +
+ + @php + $locale = \Illuminate\Support\Facades\Cookie::get('lang', 'de'); + @endphp + + + + + + +
+
+
+ +
+ + + {{ __('Back') }} + +
+
+
+ {{-- FOOTER --}} + +
diff --git a/routes/web.php b/routes/web.php index 19e39a3a..06b6d6fc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -30,6 +30,9 @@ Route::middleware([]) Route::get('/event', \App\Http\Livewire\School\EventTable::class) ->name('table.event'); + + Route::get('/{lecturer}', \App\Http\Livewire\School\LecturerLandingPage::class) + ->name('landingPage.lecturer'); }); /* diff --git a/yarn.lock b/yarn.lock index c1dfba26..67be1c38 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@alpinejs/collapse@^3.10.5": + version "3.10.5" + resolved "https://registry.yarnpkg.com/@alpinejs/collapse/-/collapse-3.10.5.tgz#97adf33161e8af475edb93556b27e5b7eb949198" + integrity sha512-ucpZNm+K9GBlmCR2WK5ket67xvwUH/KDzXc5bJSsxAAucrQuhdXuZN5a9kuqBfrm3x9t/bV6CGXEqNkrZ2/LRA== + "@esbuild/android-arm@0.15.16": version "0.15.16" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.16.tgz#0642926178b15e3d1545efae6eee05c4f3451d15"