split into modules

This commit is contained in:
Benjamin Takats
2022-12-12 16:21:10 +01:00
parent 40bc58eea2
commit 931b28907d
35 changed files with 259 additions and 309 deletions

View File

@@ -1,268 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
<script src="{{ asset('earth/miniature.earth.js') }}"></script>
<style>
.earth-container::after {
content: "";
position: absolute;
height: 22%;
bottom: 4%;
left: 13%;
right: 13%;
}
</style>
{{-- HEADER --}}
<div>
<section class="w-full">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10">
<div
class="relative sm:sticky sm:top-0 bg-21gray z-10 flex flex-col flex-wrap items-center justify-between py-7 mx-auto md:flex-row max-w-screen-2xl">
<div class="relative flex flex-col md:flex-row">
<a href="{{ route('search.city', ['country' => $c]) }}"
class="flex items-center mb-5 font-medium text-gray-900 lg:w-auto lg:items-center lg:justify-center md:mb-0">
<img src="{{ asset('img/einundzwanzig-horizontal-inverted.svg') }}">
</a>
<nav
class="flex flex-wrap items-center mb-5 text-lg md:mb-0 md:pl-8 md:ml-8 md:border-l md:border-gray-800">
<a href="{{ route('search.city', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.city') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Städte</a>
<a href="{{ route('search.lecturer', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.lecturer') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Dozenten</a>
<a href="{{ route('search.venue', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.venue') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Veranstaltungs-Orte</a>
<a href="{{ route('search.course', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.course') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Kurse</a>
<a href="{{ route('search.event', ['country' => $c, '#table']) }}"
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>
<a href="{{ route('search.bookcases', ['country' => $c]) }}"
class="{{ request()->routeIs('search.bookcases') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Bücher-Schränke</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
<div></div>
@else
<div class="inline-flex items-center ml-5 my-2 text-lg space-x-6 lg:justify-end">
<a href="{{ route('auth.ln') }}"
class="text-xs sm:text-base font-medium leading-6 text-gray-400 hover:text-gray-300 whitespace-no-wrap transition duration-150 ease-in-out">
Login
</a>
<a href="{{ route('auth.ln') }}"
class="text-xs sm:text-base inline-flex items-center justify-center px-4 py-2 font-medium leading-6 text-gray-200 hover:text-white whitespace-no-wrap bg-gray-800 border border-transparent rounded shadow-sm hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-800">
Registrieren
</a>
</div>
@endauth
</div>
</div>
</section>
</div>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10">
<div class="flex items-center justify-end space-x-2 my-6">
<x-button primary :href="route('search.bookcases', ['country' => $c])">
<i class="fa fa-thin fa-arrow-left"></i>
Zurück zur Übersicht
</x-button>
</div>
<div class="grid grid-cols-1 gap-4 sm:grid-cols-2">
<div
class="relative flex items-center space-x-3 rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm">
{{--<div class="flex-shrink-0">
<img class="h-10 w-10 rounded-full" src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="">
</div>--}}
<div class="min-w-0 flex-1">
<div class="focus:outline-none space-y-2">
<p class="text-sm font-medium text-gray-900">Name</p>
<p class="truncate text-sm text-gray-500">{{ $bookCase->title }}</p>
<p class="text-sm font-medium text-gray-900">Link</p>
<p class="text-sm text-gray-500">
<a target="_blank"
href="{{ $this->url_to_absolute($bookCase->homepage) }}">{{ $this->url_to_absolute($bookCase->homepage) }}</a>
</p>
<p class="text-sm font-medium text-gray-900">Adresse</p>
<p class="truncate text-sm text-gray-500">{{ $bookCase->address }}</p>
<p class="text-sm font-medium text-gray-900">Art</p>
<p class="truncate text-sm text-gray-500">{{ $bookCase->type }}</p>
<p class="text-sm font-medium text-gray-900">Geöffnet</p>
<p class="truncate text-sm text-gray-500">{{ $bookCase->open }}</p>
<p class="text-sm font-medium text-gray-900">Kontakt</p>
<p class="truncate text-sm text-gray-500">{{ $bookCase->contact }}</p>
<p class="text-sm font-medium text-gray-900">Information</p>
<p class="truncate text-sm text-gray-500">{{ $bookCase->comment }}</p>
<p class="text-sm font-medium text-gray-900">Neues Foto hochladen</p>
<form wire:submit.prevent="save">
<div class="text-sm text-gray-500">
<input type="file" wire:model="photo">
@error('photo') <span class="error">{{ $message }}</span> @enderror
<x-button xs secondary type="submit">Hochladen</x-button>
</div>
</form>
@if($bookCase->getMedia('images')->count() > 0)
<div
x-data="{
skip: 3,
atBeginning: false,
atEnd: false,
next() {
this.to((current, offset) => current + (offset * this.skip))
},
prev() {
this.to((current, offset) => current - (offset * this.skip))
},
to(strategy) {
let slider = this.$refs.slider
let current = slider.scrollLeft
let offset = slider.firstElementChild.getBoundingClientRect().width
slider.scrollTo({ left: strategy(current, offset), behavior: 'smooth' })
},
focusableWhenVisible: {
'x-intersect:enter'() {
this.$el.removeAttribute('tabindex')
},
'x-intersect:leave'() {
this.$el.setAttribute('tabindex', '-1')
},
},
disableNextAndPreviousButtons: {
'x-intersect:enter.threshold.05'() {
let slideEls = this.$el.parentElement.children
// If this is the first slide.
if (slideEls[0] === this.$el) {
this.atBeginning = true
// If this is the last slide.
} else if (slideEls[slideEls.length-1] === this.$el) {
this.atEnd = true
}
},
'x-intersect:leave.threshold.05'() {
let slideEls = this.$el.parentElement.children
// If this is the first slide.
if (slideEls[0] === this.$el) {
this.atBeginning = false
// If this is the last slide.
} else if (slideEls[slideEls.length-1] === this.$el) {
this.atEnd = false
}
},
},
}"
class="flex w-full flex-col"
>
<div
x-on:keydown.right="next"
x-on:keydown.left="prev"
tabindex="0"
role="region"
aria-labelledby="carousel-label"
class="flex space-x-6"
>
<h2 id="carousel-label" class="sr-only" hidden>Carousel</h2>
<!-- Prev Button -->
<button
x-on:click="prev"
class="text-6xl"
:aria-disabled="atBeginning"
:tabindex="atEnd ? -1 : 0"
:class="{ 'opacity-50 cursor-not-allowed': atBeginning }"
>
<span aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" class="h-12 w-12 text-gray-600"
fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3"><path
stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/></svg>
</span>
<span class="sr-only">Skip to previous slide page</span>
</button>
<span id="carousel-content-label" class="sr-only" hidden>Carousel</span>
<ul
x-ref="slider"
tabindex="0"
role="listbox"
aria-labelledby="carousel-content-label"
class="flex w-full snap-x snap-mandatory overflow-x-scroll"
>
@foreach($bookCase->getMedia('images') as $image)
<li x-bind="disableNextAndPreviousButtons"
class="flex w-1/3 shrink-0 snap-start flex-col items-center justify-center p-2"
role="option">
<a href="{{ $image->getUrl() }}" target="_blank">
<img class="mt-2 w-full" src="{{ $image->getUrl() }}"
alt="placeholder image">
</a>
<button x-bind="focusableWhenVisible" class="px-4 py-2 text-sm">
#{{ $loop->iteration }} Bild
</button>
</li>
@endforeach
</ul>
<!-- Next Button -->
<button
x-on:click="next"
class="text-6xl"
:aria-disabled="atEnd"
:tabindex="atEnd ? -1 : 0"
:class="{ 'opacity-50 cursor-not-allowed': atEnd }"
>
<span aria-hidden="true">
<svg xmlns="http://www.w3.org/2000/svg" class="h-12 w-12 text-gray-600"
fill="none" viewBox="0 0 24 24" stroke="currentColor"
stroke-width="3"><path stroke-linecap="round"
stroke-linejoin="round"
d="M9 5l7 7-7 7"/></svg>
</span>
<span class="sr-only">Skip to next slide page</span>
</button>
</div>
</div>
@endif
</div>
</div>
</div>
<div class="rounded" wire:ignore>
@map([
'lat' => $bookCase->latitude,
'lng' => $bookCase->longitude,
'zoom' => 24,
'markers' => [
[
'title' => $bookCase->title,
'lat' => $bookCase->latitude,
'lng' => $bookCase->longitude,
'url' => 'https://gonoware.com',
'icon' => asset('img/btc-logo-6219386_1280.png'),
'icon_size' => [42, 42],
],
],
])
</div>
</div>
<div class="my-4">
<livewire:comments :model="$bookCase"/>
</div>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -1,15 +1,4 @@
<div>
<script src="{{ asset('earth/miniature.earth.js') }}"></script>
<style>
.earth-container::after {
content: "";
position: absolute;
height: 22%;
bottom: 4%;
left: 13%;
right: 13%;
}
</style>
<section class="w-full">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10">
<div
@@ -21,24 +10,53 @@
</a>
<nav
class="flex flex-wrap items-center mb-5 text-lg md:mb-0 md:pl-8 md:ml-8 md:border-l md:border-gray-800">
<a href="{{ route('search.city', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.city') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Städte</a>
<a href="{{ route('search.lecturer', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.lecturer') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Dozenten</a>
<a href="{{ route('search.venue', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.venue') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Veranstaltungs-Orte</a>
<a href="{{ route('search.course', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.course') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Kurse</a>
<a href="{{ route('search.event', ['country' => $c, '#table']) }}"
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>
<a href="{{ route('search.bookcases', ['country' => $c]) }}"
class="{{ request()->routeIs('search.bookcases') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Bücher-Schränke</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>
<a href="{{ route('welcome') }}"
class="text-gray-400 mr-5 font-medium leading-6 hover:text-gray-300">
Zurück zur Übersicht
</a>
@if(str(request()->route()->getName())->contains('school.'))
<a href="{{ route('school.table.city', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('school.table.city') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">
Städte
</a>
<a href="{{ route('school.table.lecturer', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('school.table.lecturer') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">
Dozenten
</a>
<a href="{{ route('school.table.venue', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('school.table.venue') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">
Veranstaltungs-Orte
</a>
<a href="{{ route('school.table.course', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('school.table.course') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">
Kurse
</a>
<a href="{{ route('school.table.event', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('school.table.event') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">
Termine
</a>
@endif
@if(str(request()->route()->getName())->contains('library.'))
<a href="{{ route('library.table.libraryItems', ['country' => $c]) }}"
class="{{ request()->routeIs('library.table.libraryItems') ? '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.table.lecturer', ['country' => $c]) }}"
class="{{ request()->routeIs('library.table.lecturer') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">
Dozenten-Bibliothek
</a>
@endif
@endif
@if(str(request()->route()->getName())->contains('bookCases.'))
<a href="{{ route('bookCases.table.bookcases', ['country' => $c]) }}"
class="{{ request()->routeIs('bookCases.table.bookcases') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">
Bücher-Schränke
</a>
@endif
</nav>
</div>
@auth
@@ -56,84 +74,50 @@
</div>
@endauth
</div>
@if($withGlobe)
<div class="flex lg:flex-row flex-col pt-4 md:pt-4 lg:pt-4">
<div
class="w-full lg:w-1/2 flex lg:px-0 px-5 flex-col md:items-center lg:items-start justify-center -mt-12">
</div>
</section>
<section class="h-auto">
<div class="px-10 py-6 mx-auto max-w-7xl">
<div class="w-full mx-auto text-left md:text-center">
<h1 class="text-white text-3xl sm:text-5xl lg:max-w-none max-w-4xl lg:text-left text-left md:text-center xl:text-7xl font-black">
@if(str(request()->route()->getName())->contains('school.'))
<div>
<h1 class="mb-6 text-5xl font-extrabold leading-none max-w-5xl mx-auto tracking-normal text-gray-200 sm:text-6xl md:text-6xl lg:text-7xl md:tracking-tight">
Bitcoin <span
class="bg-clip-text text-transparent bg-gradient-to-br from-yellow-400 via-yellow-500 to-yellow-700 mt-1 lg:block">School
</span> <br class="lg:block sm:hidden"> {{ str($country->name)->upper() }}
class="w-full text-transparent bg-clip-text bg-gradient-to-r from-amber-400 via-amber-500 to-amber-200 lg:inline">Kurse</span>
für deine<br class="lg:block hidden"> Reise in den Kaninchenbau.
</h1>
<div>
<x-select
label="Land wechseln"
placeholder="Land wechseln"
wire:model="c"
:clearable="false"
>
@foreach($countries as $country)
<x-select.user-option
src="{{ asset('vendor/blade-country-flags/4x3-'.$country->code.'.svg') }}"
label="{{ $country->name }}" value="{{ $country->code }}"/>
@endforeach
</x-select>
</div>
<p class="text-gray-500 sm:text-lg md:text-xl xl:text-2xl lg:max-w-none max-w-2xl md:text-center lg:text-left lg:pr-32 mt-6">
Finde Bitcoin Kurse in deiner City</p>
@php
$searchTitle = match ($currentRouteName) {
'search.city' => 'Stadt',
'search.lecturer' => 'Dozent',
'search.venue' => 'Veranstaltungs-Ort',
'search.course' => 'Kurs',
'search.event' => 'Termin',
};
@endphp
<a href="#table"
class="whitespace-nowrap bg-white px-4 lg:px-16 py-2 text-center lg:py-5 font-bold rounded text-xs md:text-xl lg:text-2xl mt-8 inline-block w-auto">
👇 {{ $searchTitle }} finden 👇
</a>
<p class="text-gray-400 font-normal mt-4">{{-- TEXT --}}</p>
<p class="px-0 mb-6 text-lg text-gray-600 md:text-xl lg:px-24"> Wähle deine Stadt, suche im
Umkreis nach
Kursen und wähle ein für dich passendes Thema aus. </p>
</div>
<div
x-data="{
earth: null,
init() {
this.earth = new Earth(this.$refs.myearth, {
location : {lat: {{ $cities->first()->latitude }}, lng: {{ $cities->first()->longitude }}},
zoom: 2,
light: 'sun',
polarLimit: 0.6,
@endif
transparent : true,
mapSeaColor : 'RGBA(34, 34, 34,0.76)',
mapLandColor : '#F7931A',
mapBorderColor : '#5D5D5D',
mapBorderWidth : 0.25,
mapHitTest : true,
autoRotate: true,
autoRotateSpeed: 0.7,
autoRotateDelay: 500,
});
this.earth.addEventListener('ready', function() {
@foreach($cities as $city)
this.addMarker( {
mesh : ['Needle'],
location : { lat: {{ $city->latitude }}, lng: {{ $city->longitude }} },
});
@endforeach
});
}
}" class="hidden sm:inline-block w-1/2">
{{--<img src="https://cdn.devdojo.com/images/march2022/mesh-gradient1.png"
class="absolute lg:max-w-none max-w-3xl mx-auto mt-32 w-full h-full inset-0">--}}
<div x-ref="myearth" class="earth-container"></div>
@if(str(request()->route()->getName())->contains('library.'))
<div>
<h1 class="mb-6 text-5xl font-extrabold leading-none max-w-5xl mx-auto tracking-normal text-gray-200 sm:text-6xl md:text-6xl lg:text-7xl md:tracking-tight">
Bitcoin <span
class="w-full text-transparent bg-clip-text bg-gradient-to-r from-amber-400 via-amber-500 to-amber-200 lg:inline">Content</span>
für deine<br class="lg:block hidden"> Reise in den Kaninchenbau.
</h1>
<p class="px-0 mb-6 text-lg text-gray-600 md:text-xl lg:px-24"> Wähle ein für dich passendes
Thema aus. </p>
</div>
</div>
@endif
@endif
@if(str(request()->route()->getName())->contains('bookCases.'))
<div>
<h1 class="mb-6 text-5xl font-extrabold leading-none max-w-5xl mx-auto tracking-normal text-gray-200 sm:text-6xl md:text-6xl lg:text-7xl md:tracking-tight">
Bitcoin <span
class="w-full text-transparent bg-clip-text bg-gradient-to-r from-amber-400 via-amber-500 to-amber-200 lg:inline">Bücher-Schränke</span>
für deine<br class="lg:block hidden"> Reise in den Kaninchenbau.
</h1>
<p class="px-0 mb-6 text-lg text-gray-600 md:text-xl lg:px-24"> Suche einen öffentlichen
Bücher-Schrank aus. </p>
</div>
@endif
</div>
</div>
</section>
</div>

View File

@@ -1,52 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
{{-- HEADER --}}
<livewire:frontend.header :country="$country" :withGlobe="false"/>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
<div class="relative border-b border-gray-200 pb-5 sm:pb-0">
<div class="md:flex md:items-center md:justify-between">
@if(request()->route()->getName() === 'library.lecturer')
<h3 class="text-2xl font-medium leading-6 text-gray-200">Dozenten-Bibliotheken</h3>
@else
<h3 class="text-2xl font-medium leading-6 text-gray-200">Bibliotheken</h3>
@endif
</div>
<div class="mt-4">
<!-- Dropdown menu on small screens -->
{{--<div class="sm:hidden">
<label for="current-tab" class="sr-only">Select a tab</label>
<select id="current-tab" name="current-tab" class="block w-full rounded-md border-gray-300 py-2 pl-3 pr-10 text-base focus:border-amber-500 focus:outline-none focus:ring-amber-500 sm:text-sm">
<option>Applied</option>
<option>Phone Screening</option>
<option>Interview</option>
<option>Offer</option>
<option>Hired</option>
</select>
</div>--}}
<!-- Tabs at small breakpoint and up -->
<div class="hidden sm:block">
<nav class="-mb-px flex space-x-8">
@foreach($libraries as $library)
@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(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>
</div>
</div>
</div>
<livewire:frontend.search-by-tag-in-library/>
<div class="my-12">
<livewire:tables.library-item-table :currentTab="$currentTab"/>
</div>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -1,79 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
{{-- HEADER --}}
<div>
<section class="w-full">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10">
<div
class="relative sm:sticky sm:top-0 bg-21gray z-10 flex flex-col flex-wrap items-center justify-between py-7 mx-auto md:flex-row max-w-screen-2xl">
<div class="relative flex flex-col md:flex-row">
<a href="{{ route('search.city', ['country' => $c]) }}"
class="flex items-center mb-5 font-medium text-gray-900 lg:w-auto lg:items-center lg:justify-center md:mb-0">
<img src="{{ asset('img/einundzwanzig-horizontal-inverted.svg') }}">
</a>
<nav
class="flex flex-wrap items-center mb-5 text-lg md:mb-0 md:pl-8 md:ml-8 md:border-l md:border-gray-800">
<a href="{{ route('search.city', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.city') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Städte</a>
<a href="{{ route('search.lecturer', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.lecturer') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Dozenten</a>
<a href="{{ route('search.venue', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.venue') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Veranstaltungs-Orte</a>
<a href="{{ route('search.course', ['country' => $c, '#table']) }}"
class="{{ request()->routeIs('search.course') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Kurse</a>
<a href="{{ route('search.event', ['country' => $c, '#table']) }}"
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>
<a href="{{ route('search.bookcases', ['country' => $c]) }}"
class="{{ request()->routeIs('search.bookcases') ? 'text-amber-500 underline' : 'text-gray-400' }} mr-5 font-medium leading-6 hover:text-gray-300">Bücher-Schränke</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
<div></div>
@else
<div class="inline-flex items-center ml-5 my-2 text-lg space-x-6 lg:justify-end">
<a href="{{ route('auth.ln') }}"
class="text-xs sm:text-base font-medium leading-6 text-gray-400 hover:text-gray-300 whitespace-no-wrap transition duration-150 ease-in-out">
Login
</a>
<a href="{{ route('auth.ln') }}"
class="text-xs sm:text-base inline-flex items-center justify-center px-4 py-2 font-medium leading-6 text-gray-200 hover:text-white whitespace-no-wrap bg-gray-800 border border-transparent rounded shadow-sm hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-800">
Registrieren
</a>
</div>
@endauth
</div>
<div class="flex lg:flex-row flex-col pt-4 md:pt-4 lg:pt-4 mt-12">
<div
class="w-full lg:w-1/2 flex lg:px-0 px-5 flex-col md:items-center lg:items-start justify-center -mt-12">
<h1 class="text-white text-3xl sm:text-5xl lg:max-w-none max-w-4xl lg:text-left text-left md:text-center xl:text-7xl font-black">
Bitcoin <span
class="bg-clip-text text-transparent bg-gradient-to-br from-yellow-400 via-yellow-500 to-yellow-700 mt-1 lg:block">School
</span> <br class="lg:block sm:hidden"> Worldwide
</h1>
<p class="text-gray-500 sm:text-lg md:text-xl xl:text-2xl lg:max-w-none max-w-2xl md:text-center lg:text-left lg:pr-32 mt-6">
Finde einen Bücher-Schrank in deiner City</p>
<a href="#table"
class="whitespace-nowrap bg-white px-4 lg:px-16 py-2 text-center lg:py-5 font-bold rounded text-xs md:text-xl lg:text-2xl mt-8 inline-block w-auto">
👇 Bücher-Schrank finden 👇
</a>
<p class="text-gray-400 font-normal mt-4">{{-- TEXT --}}</p>
</div>
</div>
</div>
</section>
</div>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
<livewire:tables.book-case-table/>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -1,54 +0,0 @@
<div
class="flex overflow-auto relative flex-wrap gap-x-5 gap-y-6 justify-center p-0 mx-auto mt-8 mb-3 w-full font-normal leading-6 text-white align-baseline border-0 border-solid md:mx-auto md:mb-0 md:max-w-screen-md"
style="max-width: 1350px; font-size: 128%; background-position: 0px center; max-height: 500px; list-style: outside;"
>
@foreach($tags->sortBy('name') as $tag)
<div
class="flex flex-1 justify-center p-0 m-0 leading-6 text-center align-baseline border-0 border-solid"
style="font-size: 128%; background-position: 0px center; list-style: outside;"
>
@php
$isActive = collect($table)->pluck('tag')->collapse()->contains($tag->name);
$activeClass = $isActive ? 'text-amber-500 bg-amber-500' : 'bg-blue-50 text-white hover:text-amber-500';
@endphp
<a
class="{{ $activeClass }} flex relative flex-col flex-shrink-0 justify-between py-1 px-3 w-full h-20 border-0 border-solid duration-300 ease-in-out cursor-pointer bg-opacity-[0.07]"
href="{{ route(request()->route()->getName(), ['country' => $country, 'table' => ['filters' => ['tag' => [$tag->id]]]]) }}"
>
<div
class="flex flex-1 items-center p-0 m-0 text-center align-baseline border-0 border-solid"
>
<div
class="flex flex-shrink-0 justify-center p-0 my-0 mr-4 ml-0 align-baseline border-0 border-solid"
>
<i class="fa fa-thin fa-{{ $tag->icon }} text-4xl"></i>
</div>
<div
class="flex justify-between p-0 m-0 w-full align-baseline border-0 border-solid md:block lg:w-auto"
>
<h2
class="p-0 m-0 font-sans text-base font-semibold tracking-wide leading-tight text-left align-baseline border-0 border-solid"
style="background-position: 0px center; list-style: outside;"
>
{{ $tag->name }}
</h2>
<div
class="hidden p-0 m-0 text-sm leading-3 text-left text-blue-100 align-baseline border-0 border-solid md:block md:text-blue-100 whitespace-nowrap"
>
{{ $tag->libraryItems->pluck('lecturer.name')->unique()->count() }}
Dozenten
<span
class="inline-block relative top-px py-0 px-1 m-0 text-xs leading-4 align-baseline border-0 border-solid"
>
</span>
{{ $tag->library_items_count }}
Inhalte
</div>
</div>
</div>
</a
>
</div>
@endforeach
</div>

View File

@@ -1,57 +0,0 @@
<div
class="flex overflow-auto relative flex-wrap gap-x-5 gap-y-6 justify-center p-0 mx-auto mt-8 mb-3 w-full font-normal leading-6 text-white align-baseline border-0 border-solid md:mx-auto md:mb-0 md:max-w-screen-md"
style="max-width: 1350px; font-size: 128%; background-position: 0px center; max-height: 500px; list-style: outside;"
>
@foreach($tags->sortBy('name') as $tag)
<div
class="flex flex-1 justify-center p-0 m-0 leading-6 text-center align-baseline border-0 border-solid"
style="font-size: 128%; background-position: 0px center; list-style: outside;"
>
@php
$isActive = collect($table)->pluck('tag')->collapse()->contains($tag->name);
$activeClass = $isActive ? 'text-amber-500 bg-amber-500' : 'bg-blue-50 text-white hover:text-amber-500';
@endphp
<a
class="{{ $activeClass }} flex relative flex-col flex-shrink-0 justify-between py-1 px-3 w-full h-20 border-0 border-solid duration-300 ease-in-out cursor-pointer bg-opacity-[0.07]"
href="{{ $isActive ? '#table' : route('search.course', ['country' => $country, 'table' => ['filters' => ['tag' => [$tag->name]]], '#table']) }}"
>
<div
class="flex flex-1 items-center p-0 m-0 text-center align-baseline border-0 border-solid"
>
<div
class="flex flex-shrink-0 justify-center p-0 my-0 mr-4 ml-0 align-baseline border-0 border-solid"
>
<i class="fa fa-thin fa-{{ $tag->icon }} text-4xl"></i>
</div>
<div
class="flex justify-between p-0 m-0 w-full align-baseline border-0 border-solid md:block lg:w-auto"
>
<h2
class="p-0 m-0 font-sans text-base font-semibold tracking-wide leading-tight text-left align-baseline border-0 border-solid"
style="background-position: 0px center; list-style: outside;"
>
{{ $tag->name }}
</h2>
<div
class="hidden p-0 m-0 text-sm leading-3 text-left text-blue-100 align-baseline border-0 border-solid md:block md:text-blue-100 whitespace-nowrap"
>
@php
$lecturerCount = $tag->courses->pluck('lecturer.name')->unique()->count();
@endphp
{{ $lecturerCount > 0 ? $lecturerCount : 'kein' }}
Dozent{{ $lecturerCount > 1 ? 'en' : '' }}
<span
class="inline-block relative top-px py-0 px-1 m-0 text-xs leading-4 align-baseline border-0 border-solid"
>
</span>
{{ $tag->courses_count > 0 ? $tag->courses_count : 'kein' }}
Kurs{{ $tag->courses_count > 1 ? 'e' : '' }}
</div>
</div>
</div>
</a
>
</div>
@endforeach
</div>

View File

@@ -1,14 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
{{-- HEADER --}}
<livewire:frontend.header :country="$country"/>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
<livewire:frontend.search-by-tag :country="$country->code"/>
<livewire:frontend.search-tabs :country="$country->code"/>
<livewire:tables.city-table :country="$country->code"/>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -1,14 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
{{-- HEADER --}}
<livewire:frontend.header :country="$country"/>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
<livewire:frontend.search-by-tag :country="$country->code"/>
<livewire:frontend.search-tabs :country="$country->code"/>
<livewire:tables.course-table :country="$country->code"/>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -1,14 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
{{-- HEADER --}}
<livewire:frontend.header :country="$country"/>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
<livewire:frontend.search-by-tag :country="$country->code"/>
<livewire:frontend.search-tabs :country="$country->code"/>
<livewire:tables.event-table :country="$country->code"/>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -1,14 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
{{-- HEADER --}}
<livewire:frontend.header :country="$country"/>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
<livewire:frontend.search-by-tag :country="$country->code"/>
<livewire:frontend.search-tabs :country="$country->code"/>
<livewire:tables.lecturer-table :country="$country->code"/>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -9,20 +9,20 @@
$currentTab = 'border-amber-500 text-amber-600';
$notCurrentTab = 'border-transparent text-gray-200 hover:text-gray-400 hover:border-gray-300';
@endphp
<a href="{{ route('search.city', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('search.city') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Städte</a>
<a href="{{ route('school.table.city', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('school.table.city') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Städte</a>
<a href="{{ route('search.lecturer', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('search.lecturer') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Dozenten</a>
<a href="{{ route('school.table.lecturer', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('school.table.lecturer') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Dozenten</a>
<a href="{{ route('search.venue', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('search.venue') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Veranstaltungs-Orte</a>
<a href="{{ route('school.table.venue', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('school.table.venue') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Veranstaltungs-Orte</a>
<a href="{{ route('search.course', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('search.course') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Kurse</a>
<a href="{{ route('school.table.course', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('school.table.course') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Kurse</a>
<a href="{{ route('search.event', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('search.event') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Termine</a>
<a href="{{ route('school.table.event', ['country' => $country]).'#table' }}"
class="{{ request()->routeIs('school.table.event') ? $currentTab : $notCurrentTab }} whitespace-nowrap pb-4 px-1 border-b-2 font-medium text-sm">Termine</a>
</nav>
</div>

View File

@@ -1,14 +0,0 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
{{-- HEADER --}}
<livewire:frontend.header :country="$country"/>
{{-- MAIN --}}
<section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
<livewire:frontend.search-by-tag :country="$country->code"/>
<livewire:frontend.search-tabs :country="$country->code"/>
<livewire:tables.venue-table :country="$country->code"/>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -35,7 +35,7 @@
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-1 xl:col-start-2 sm:row-start-4 md:row-start-5 xl:row-start-2">
<a href="{{ route('search.city', ['country' => 'de']) }}"
<a href="{{ route('school.table.city', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
@@ -56,7 +56,7 @@
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-2 xl:col-start-2 sm:row-start-6 md:row-start-2 xl:row-start-4">
<a href="{{ route('library', ['country' => 'de']) }}"
<a href="{{ route('library.table.libraryItems', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
@@ -98,7 +98,7 @@
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-3 xl:col-start-3 sm:row-start-3 md:row-start-1 xl:row-start-3">
<a href="{{ route('library', ['country' => 'de']) }}"
<a href="{{ route('library.table.libraryItems', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
@@ -119,7 +119,7 @@
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-3 xl:col-start-4 sm:row-start-5 md:row-start-3 xl:row-start-2">
<a href="{{ route('search.bookcases', ['country' => 'de']) }}"
<a href="{{ route('bookCases.table.bookcases', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">