lecturer lib added

This commit is contained in:
Benjamin Takats
2022-12-05 20:49:00 +01:00
parent fd2dee5590
commit cf9939543e
8 changed files with 32 additions and 12 deletions

View File

@@ -17,9 +17,16 @@ class Library extends Component
public function render()
{
$shouldBePublic = request()
->route()
->getName() !== 'library.lecturer';
if (!$shouldBePublic && !auth()->user()->is_lecturer) {
abort(403);
}
return view('livewire.frontend.library', [
'libraries' => \App\Models\Library::query()
->where('is_public', true)
->where('is_public', $shouldBePublic)
->get()
->prepend(\App\Models\Library::make([
'name' => 'Alle',

View File

@@ -16,6 +16,10 @@ class SearchByTagInLibrary extends Component
public function render()
{
$shouldBePublic = request()
->route()
->getName() !== 'library.lecturer';
return view('livewire.frontend.search-by-tag-in-library', [
'tags' => Tag::query()
->with([
@@ -26,9 +30,7 @@ class SearchByTagInLibrary extends Component
'libraryItems',
])
->where('type', 'library_item')
->whereHas('libraryItems.libraries', function ($query) {
$query->where('is_public', true);
})
->whereHas('libraryItems.libraries', fn($query) => $query->where('is_public', $shouldBePublic))
->get(),
]);
}

View File

@@ -116,8 +116,12 @@ class LibraryItemTable extends DataTableComponent
public function builder(): Builder
{
$shouldBePublic = request()
->route()
->getName() !== 'library.lecturer';
return LibraryItem::query()
->whereHas('libraries', fn($query) => $query->where('libraries.is_public', true))
->whereHas('libraries', fn($query) => $query->where('libraries.is_public', $shouldBePublic))
->when($this->currentTab !== 'Alle', fn($query) => $query->whereHas('libraries',
fn($query) => $query->where('libraries.name', $this->currentTab)))
->withCount([

View File

@@ -27,8 +27,6 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot()
{
ray()->newScreen('bitcoin');
Stringable::macro('initials', function () {
$words = preg_split("/\s+/", $this);
$initials = "";

View File

@@ -1,6 +1,8 @@
<div>
<x-button amber>
<i class="fa fa-thin fa-book-open mr-2"></i>
Öffnen
</x-button>
@if(str($row->value)->contains('http'))
<x-button amber href="{{ $row->value }}" target="_blank">
<i class="fa fa-thin fa-book-open mr-2"></i>
Öffnen
</x-button>
@endif
</div>

View File

@@ -33,6 +33,10 @@
class="{{ request()->routeIs('search.event') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Termine</a>
<a href="{{ route('library', ['country' => $c]) }}"
class="{{ request()->routeIs('library') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Bibliothek</a>
@if(auth()->user()->is_lecturer)
<a href="{{ route('library.lecturer', ['country' => $c]) }}"
class="{{ request()->routeIs('library.lecturer') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Dozenten-Bibliothek</a>
@endif
</nav>
</div>
@auth

View File

@@ -28,7 +28,7 @@
@php
$currentLibraryClass = $currentTab === $library->name ? 'border-amber-500 text-amber-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300';
@endphp
<a href="{{ route('library', ['country' => $country, 'currentTab' => $library->name]) }}"
<a href="{{ route(request()->route()->getName(), ['country' => $country, 'currentTab' => $library->name]) }}"
class="{{ $currentLibraryClass }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">{{ $library->name }}</a>
@endforeach
</nav>

View File

@@ -33,6 +33,9 @@ Route::get('/{country:code}/suche/termin', \App\Http\Livewire\Frontend\SearchEve
Route::get('/{country:code}/bibliothek', \App\Http\Livewire\Frontend\Library::class)
->name('library');
Route::get('/{country:code}/dozenten/bibliothek', \App\Http\Livewire\Frontend\Library::class)
->name('library.lecturer');
Route::get('/dozenten', \App\Http\Livewire\Guest\Welcome::class)
->name('search.lecturers');