mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
new header
This commit is contained in:
@@ -1,129 +1,136 @@
|
|||||||
<div class="container p-4 mx-auto bg-21gray my-2">
|
<div>
|
||||||
|
{{-- HEADER --}}
|
||||||
|
<livewire:frontend.header :country="null"/>
|
||||||
|
|
||||||
<div class="pb-5 flex flex-row justify-between">
|
<div class="container p-4 mx-auto bg-21gray my-2">
|
||||||
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Bitcoin Event') }}</h3>
|
|
||||||
<div class="flex flex-row space-x-2 items-center">
|
<div class="pb-5 flex flex-row justify-between">
|
||||||
<div>
|
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Bitcoin Event') }}</h3>
|
||||||
@if($bitcoinEvent->id)
|
<div class="flex flex-row space-x-2 items-center">
|
||||||
<x-button negative wire:click="deleteMe">
|
<div>
|
||||||
<i class="fa fa-thin fa-trash"></i>
|
@if($bitcoinEvent->id)
|
||||||
{{ __('Delete') }}
|
<x-button negative wire:click="deleteMe">
|
||||||
|
<i class="fa fa-thin fa-trash"></i>
|
||||||
|
{{ __('Delete') }}
|
||||||
|
</x-button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<x-button :href="$fromUrl">
|
||||||
|
<i class="fa fa-thin fa-arrow-left"></i>
|
||||||
|
{{ __('Back') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
@endif
|
</div>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<x-button :href="$fromUrl">
|
|
||||||
<i class="fa fa-thin fa-arrow-left"></i>
|
|
||||||
{{ __('Back') }}
|
|
||||||
</x-button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
||||||
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
||||||
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
||||||
|
|
||||||
<x-input.group :for="md5('image')" :label="__('Logo')">
|
<x-input.group :for="md5('image')" :label="__('Logo')">
|
||||||
<div class="py-4">
|
<div class="py-4">
|
||||||
@if ($image)
|
@if ($image)
|
||||||
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
||||||
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
||||||
@endif
|
@endif
|
||||||
@if ($bitcoinEvent->getFirstMediaUrl('logo'))
|
@if ($bitcoinEvent->getFirstMediaUrl('logo'))
|
||||||
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
||||||
<img class="h-48 object-contain" src="{{ $bitcoinEvent->getFirstMediaUrl('logo') }}">
|
<img class="h-48 object-contain" src="{{ $bitcoinEvent->getFirstMediaUrl('logo') }}">
|
||||||
@endif
|
@endif
|
||||||
</div>
|
|
||||||
<input class="text-gray-200" type="file" wire:model="image">
|
|
||||||
@error('image') <span class="text-red-500">{{ $message }}</span> @enderror
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('venue_id')">
|
|
||||||
<x-slot name="label">
|
|
||||||
<div class="flex flex-row space-x-4 items-center">
|
|
||||||
<div>
|
|
||||||
{{ __('Venue') }}
|
|
||||||
</div>
|
|
||||||
<x-button xs href="{{ route('venue.form') }}">
|
|
||||||
<i class="fa fa-thin fa-plus"></i>
|
|
||||||
{{ __('Create venue') }}
|
|
||||||
</x-button>
|
|
||||||
</div>
|
</div>
|
||||||
</x-slot>
|
<input class="text-gray-200" type="file" wire:model="image">
|
||||||
<x-select
|
@error('image') <span class="text-red-500">{{ $message }}</span> @enderror
|
||||||
autocomplete="off"
|
</x-input.group>
|
||||||
wire:model.debounce="bitcoinEvent.venue_id"
|
|
||||||
:placeholder="__('Venue')"
|
<x-input.group :for="md5('venue_id')">
|
||||||
:async-data="[
|
<x-slot name="label">
|
||||||
|
<div class="flex flex-row space-x-4 items-center">
|
||||||
|
<div>
|
||||||
|
{{ __('Venue') }}
|
||||||
|
</div>
|
||||||
|
<x-button xs href="{{ route('venue.form') }}">
|
||||||
|
<i class="fa fa-thin fa-plus"></i>
|
||||||
|
{{ __('Create venue') }}
|
||||||
|
</x-button>
|
||||||
|
</div>
|
||||||
|
</x-slot>
|
||||||
|
<x-select
|
||||||
|
autocomplete="off"
|
||||||
|
wire:model.debounce="bitcoinEvent.venue_id"
|
||||||
|
:placeholder="__('Venue')"
|
||||||
|
:async-data="[
|
||||||
'api' => route('api.venues.index'),
|
'api' => route('api.venues.index'),
|
||||||
'method' => 'GET', // default is GET
|
'method' => 'GET', // default is GET
|
||||||
]"
|
]"
|
||||||
:template="[
|
:template="[
|
||||||
'name' => 'user-option',
|
'name' => 'user-option',
|
||||||
'config' => ['src' => 'flag']
|
'config' => ['src' => 'flag']
|
||||||
]"
|
]"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
option-value="id"
|
option-value="id"
|
||||||
option-description="city.name"
|
option-description="city.name"
|
||||||
/>
|
/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('bitcoinEvent.from')" :label="__('Start')">
|
<x-input.group :for="md5('bitcoinEvent.from')" :label="__('Start')">
|
||||||
<x-datetime-picker
|
<x-datetime-picker
|
||||||
:clearable="false"
|
:clearable="false"
|
||||||
time-format="24"
|
time-format="24"
|
||||||
timezone="UTC"
|
timezone="UTC"
|
||||||
user-timezone="{{ config('app.user-timezone') }}"
|
user-timezone="{{ config('app.user-timezone') }}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
wire:model.debounce="bitcoinEvent.from"
|
wire:model.debounce="bitcoinEvent.from"
|
||||||
display-format="DD-MM-YYYY HH:mm"
|
display-format="DD-MM-YYYY HH:mm"
|
||||||
:placeholder="__('Start')"/>
|
:placeholder="__('Start')"/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('bitcoinEvent.to')" :label="__('To')">
|
<x-input.group :for="md5('bitcoinEvent.to')" :label="__('To')">
|
||||||
<x-datetime-picker
|
<x-datetime-picker
|
||||||
:clearable="false"
|
:clearable="false"
|
||||||
time-format="24"
|
time-format="24"
|
||||||
timezone="UTC"
|
timezone="UTC"
|
||||||
user-timezone="{{ config('app.user-timezone') }}"
|
user-timezone="{{ config('app.user-timezone') }}"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
wire:model.debounce="bitcoinEvent.to"
|
wire:model.debounce="bitcoinEvent.to"
|
||||||
display-format="DD-MM-YYYY HH:mm"
|
display-format="DD-MM-YYYY HH:mm"
|
||||||
:placeholder="__('To')"/>
|
:placeholder="__('To')"/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('bitcoinEvent.title')" :label="__('Title')">
|
<x-input.group :for="md5('bitcoinEvent.title')" :label="__('Title')">
|
||||||
<x-input autocomplete="off" wire:model.debounce="bitcoinEvent.title"
|
<x-input autocomplete="off" wire:model.debounce="bitcoinEvent.title"
|
||||||
:placeholder="__('Title')"/>
|
:placeholder="__('Title')"/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('bitcoinEvent.description')" :label="__('Description')">
|
<x-input.group :for="md5('bitcoinEvent.description')" :label="__('Description')">
|
||||||
<div
|
<div
|
||||||
class="text-amber-500 text-xs py-2">{{ __('For images in Markdown, please use eg. Imgur or another provider.') }}</div>
|
class="text-amber-500 text-xs py-2">{{ __('For images in Markdown, please use eg. Imgur or another provider.') }}</div>
|
||||||
<x-input.simple-mde wire:model.defer="bitcoinEvent.description"/>
|
<x-input.simple-mde wire:model.defer="bitcoinEvent.description"/>
|
||||||
@error('bitcoinEvent.description') <span class="text-red-500 py-2">{{ $message }}</span> @enderror
|
@error('bitcoinEvent.description') <span
|
||||||
</x-input.group>
|
class="text-red-500 py-2">{{ $message }}</span> @enderror
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('bitcoinEvent.link')" :label="__('Link')">
|
<x-input.group :for="md5('bitcoinEvent.link')" :label="__('Link')">
|
||||||
<x-input autocomplete="off" wire:model.debounce="bitcoinEvent.link"
|
<x-input autocomplete="off" wire:model.debounce="bitcoinEvent.link"
|
||||||
:placeholder="__('Link')"/>
|
:placeholder="__('Link')"/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('bitcoinEvent.show_worldwide')" :label="__('Show worldwide')">
|
<x-input.group :for="md5('bitcoinEvent.show_worldwide')" :label="__('Show worldwide')">
|
||||||
<x-toggle lg autocomplete="off" wire:model.debounce="bitcoinEvent.show_worldwide"
|
<x-toggle lg autocomplete="off" wire:model.debounce="bitcoinEvent.show_worldwide"
|
||||||
:placeholder="__('Show worldwide')"/>
|
:placeholder="__('Show worldwide')"/>
|
||||||
<p class="text-xs py-2 text-gray-200">{{ __('If checked, the event will be shown everywhere.') }}</p>
|
<p class="text-xs py-2 text-gray-200">{{ __('If checked, the event will be shown everywhere.') }}</p>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('action')" :label="__('Action')">
|
<x-input.group :for="md5('action')" :label="__('Action')">
|
||||||
<x-button primary wire:click="submit">
|
<x-button primary wire:click="submit">
|
||||||
<i class="fa fa-thin fa-save"></i>
|
<i class="fa fa-thin fa-save"></i>
|
||||||
{{ __('Save') }}
|
{{ __('Save') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
</form>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,35 +4,14 @@
|
|||||||
{{-- MAIN --}}
|
{{-- MAIN --}}
|
||||||
<section class="w-full mb-12">
|
<section class="w-full mb-12">
|
||||||
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
|
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10" id="table">
|
||||||
<div class="flex items-start">
|
<div class="md:flex md:items-center md:justify-between">
|
||||||
<div class="w-1/2">
|
<div class="min-w-0 flex-1">
|
||||||
<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">
|
<h2 class="text-2xl font-bold leading-7 text-white sm:truncate sm:text-3xl sm:tracking-tight">
|
||||||
Bitcoin <span
|
{{ __('Bookcases') }}
|
||||||
class="w-full text-transparent bg-clip-text bg-gradient-to-r from-amber-400 via-amber-500 to-amber-200 lg:inline">{{ __('Bookcases') }}</span>
|
</h2>
|
||||||
</h1>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mt-4 flex md:mt-0 md:ml-4">
|
||||||
<div class="w-1/2">
|
{{----}}
|
||||||
<p class="px-0 mb-6 text-lg text-gray-600 md:text-xl">
|
|
||||||
{{ __('Search out a public bookcase') }}
|
|
||||||
</p>
|
|
||||||
<div class="rounded" wire:ignore>
|
|
||||||
@if($markers[0] ?? false)
|
|
||||||
<style>
|
|
||||||
.gnw-map-service {
|
|
||||||
z-index: 0 !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<div>
|
|
||||||
@map([
|
|
||||||
'lat' => $markers[0]['lat'],
|
|
||||||
'lng' => $markers[0]['lng'],
|
|
||||||
'zoom' => 12,
|
|
||||||
'markers' => $markers
|
|
||||||
])
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -4,15 +4,14 @@
|
|||||||
{{-- MAIN --}}
|
{{-- MAIN --}}
|
||||||
<section class="w-full mb-12">
|
<section class="w-full mb-12">
|
||||||
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
||||||
<div class="flex items-start">
|
<div class="md:flex md:items-center md:justify-between">
|
||||||
<div class="w-1/2">
|
<div class="min-w-0 flex-1">
|
||||||
<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">
|
<h2 class="text-2xl font-bold leading-7 text-white sm:truncate sm:text-3xl sm:tracking-tight">
|
||||||
Bitcoin <span
|
{{ __('City search') }}
|
||||||
class="w-full text-transparent bg-clip-text bg-gradient-to-r from-amber-400 via-amber-500 to-amber-200 lg:inline">{{ __('Bookcases') }}</span>
|
</h2>
|
||||||
</h1>
|
</div>
|
||||||
<p class="px-0 mb-6 text-lg text-gray-600 md:text-xl lg:px-24">
|
<div class="mt-4 flex md:mt-0 md:ml-4">
|
||||||
{{ __('Search out a public bookcase') }}
|
{{----}}
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -4,17 +4,13 @@
|
|||||||
{{-- MAIN --}}
|
{{-- MAIN --}}
|
||||||
<section class="w-full mb-12">
|
<section class="w-full mb-12">
|
||||||
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
||||||
<div class="flex flex-col sm:flex-row items-start">
|
<div class="md:flex md:items-center md:justify-between">
|
||||||
<div class="w-full sm:w-1/2">
|
<div class="min-w-0 flex-1">
|
||||||
<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">
|
<h2 class="text-2xl font-bold leading-7 text-white sm:truncate sm:text-3xl sm:tracking-tight">
|
||||||
Orange-Pill <span
|
{{ __('Highscore Table') }}
|
||||||
class="w-full text-transparent bg-clip-text bg-gradient-to-r from-amber-400 via-amber-500 to-amber-200 lg:inline">{{ __('Highscore Table') }}</span>
|
</h2>
|
||||||
</h1>
|
|
||||||
<p class="px-0 mb-6 text-lg text-gray-600 md:text-xl">
|
|
||||||
{{ __('Hall of fame of our honorable plebs') }}
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full sm:w-1/2">
|
<div class="mt-4 flex md:mt-0 md:ml-4">
|
||||||
@if(auth()->check())
|
@if(auth()->check())
|
||||||
<x-button
|
<x-button
|
||||||
class="relative"
|
class="relative"
|
||||||
|
|||||||
@@ -1,92 +1,98 @@
|
|||||||
<div class="container p-4 mx-auto bg-21gray my-2">
|
<div>
|
||||||
|
{{-- HEADER --}}
|
||||||
|
<livewire:frontend.header :country="null"/>
|
||||||
|
|
||||||
<div class="pb-5 flex flex-row justify-between">
|
<div class="container p-4 mx-auto bg-21gray my-2">
|
||||||
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Lecturer/Content Creator') }}</h3>
|
|
||||||
<div class="flex flex-row space-x-2 items-center">
|
|
||||||
<div>
|
|
||||||
<x-button :href="$fromUrl">
|
|
||||||
<i class="fa fa-thin fa-arrow-left"></i>
|
|
||||||
{{ __('Back') }}
|
|
||||||
</x-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
<div class="pb-5 flex flex-row justify-between">
|
||||||
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Lecturer/Content Creator') }}</h3>
|
||||||
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
<div class="flex flex-row space-x-2 items-center">
|
||||||
|
<div>
|
||||||
<x-input.group :for=" md5('image')" :label="__('Main picture')">
|
<x-button :href="$fromUrl">
|
||||||
<div class="py-4">
|
<i class="fa fa-thin fa-arrow-left"></i>
|
||||||
@if ($image)
|
{{ __('Back') }}
|
||||||
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
|
||||||
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
|
||||||
@endif
|
|
||||||
@if ($lecturer->getFirstMediaUrl('avatar'))
|
|
||||||
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
|
||||||
<img class="h-48 object-contain" src="{{ $lecturer->getFirstMediaUrl('avatar') }}">
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
<input class="text-gray-200" type="file" wire:model="image">
|
|
||||||
@error('image') <span class="text-red-500">{{ $message }}</span> @enderror
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.name')" :label="__('Name')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.name"
|
|
||||||
:placeholder="__('Name')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.subtitle')" :label="__('Subtitle')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.subtitle"
|
|
||||||
:placeholder="__('Subtitle')" :hint="__('This is the subtitle on the landing page.')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.intro')" :label="__('Intro')">
|
|
||||||
<div
|
|
||||||
class="text-amber-500 text-xs py-2">{{ __('For images in Markdown, please use eg. Imgur or another provider.') }}</div>
|
|
||||||
<x-input.simple-mde wire:model.defer="lecturer.intro"/>
|
|
||||||
@error('lecturer.intro') <span class="text-red-500 py-2">{{ $message }}</span> @enderror
|
|
||||||
<span class="text-gray-400 text-xs py-2">{{ __('This is the introduction text that is shown on the landing page.') }}</span>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.nostr')" :label="__('Nostr public key')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.nostr"
|
|
||||||
:placeholder="__('Nostr public key')" :hint="__('starts with npub...')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.twitter_username')" :label="__('Twitter Username')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.twitter_username"
|
|
||||||
:placeholder="__('Twitter Username')" :hint="__('Without @')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.website')" :label="__('Website')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.website"
|
|
||||||
:placeholder="__('Website')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.lightning_address')" :label="__('Lightning Address')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.lightning_address"
|
|
||||||
:placeholder="__('Lightning Address')" :hint="__('for example xy@getalby.com')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.lnurl')" :label="__('LNURL')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.lnurl"
|
|
||||||
:placeholder="__('LNURL')" :hint="__('starts with: lnurl1dp68gurn8gh....')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('lecturer.node_id')" :label="__('Node Id')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="lecturer.node_id"
|
|
||||||
:placeholder="__('Node Id')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('meetupEvent.link')" label="">
|
|
||||||
<x-button primary wire:click="save">
|
|
||||||
<i class="fa fa-thin fa-save"></i>
|
|
||||||
{{ __('Save') }}
|
|
||||||
</x-button>
|
</x-button>
|
||||||
</x-input.group>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
|
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
||||||
|
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
||||||
|
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
||||||
|
|
||||||
|
<x-input.group :for=" md5('image')" :label="__('Main picture')">
|
||||||
|
<div class="py-4">
|
||||||
|
@if ($image)
|
||||||
|
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
||||||
|
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
||||||
|
@endif
|
||||||
|
@if ($lecturer->getFirstMediaUrl('avatar'))
|
||||||
|
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
||||||
|
<img class="h-48 object-contain" src="{{ $lecturer->getFirstMediaUrl('avatar') }}">
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<input class="text-gray-200" type="file" wire:model="image">
|
||||||
|
@error('image') <span class="text-red-500">{{ $message }}</span> @enderror
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.name')" :label="__('Name')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.name"
|
||||||
|
:placeholder="__('Name')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.subtitle')" :label="__('Subtitle')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.subtitle"
|
||||||
|
:placeholder="__('Subtitle')" :hint="__('This is the subtitle on the landing page.')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.intro')" :label="__('Intro')">
|
||||||
|
<div
|
||||||
|
class="text-amber-500 text-xs py-2">{{ __('For images in Markdown, please use eg. Imgur or another provider.') }}</div>
|
||||||
|
<x-input.simple-mde wire:model.defer="lecturer.intro"/>
|
||||||
|
@error('lecturer.intro') <span class="text-red-500 py-2">{{ $message }}</span> @enderror
|
||||||
|
<span
|
||||||
|
class="text-gray-400 text-xs py-2">{{ __('This is the introduction text that is shown on the landing page.') }}</span>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.nostr')" :label="__('Nostr public key')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.nostr"
|
||||||
|
:placeholder="__('Nostr public key')" :hint="__('starts with npub...')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.twitter_username')" :label="__('Twitter Username')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.twitter_username"
|
||||||
|
:placeholder="__('Twitter Username')" :hint="__('Without @')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.website')" :label="__('Website')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.website"
|
||||||
|
:placeholder="__('Website')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.lightning_address')" :label="__('Lightning Address')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.lightning_address"
|
||||||
|
:placeholder="__('Lightning Address')" :hint="__('for example xy@getalby.com')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.lnurl')" :label="__('LNURL')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.lnurl"
|
||||||
|
:placeholder="__('LNURL')" :hint="__('starts with: lnurl1dp68gurn8gh....')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('lecturer.node_id')" :label="__('Node Id')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="lecturer.node_id"
|
||||||
|
:placeholder="__('Node Id')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('meetupEvent.link')" label="">
|
||||||
|
<x-button primary wire:click="save">
|
||||||
|
<i class="fa fa-thin fa-save"></i>
|
||||||
|
{{ __('Save') }}
|
||||||
|
</x-button>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,177 +1,182 @@
|
|||||||
<div class="container p-4 mx-auto bg-21gray my-2">
|
<div>
|
||||||
|
{{-- HEADER --}}
|
||||||
|
<livewire:frontend.header :country="null"/>
|
||||||
|
<div class="container p-4 mx-auto bg-21gray my-2">
|
||||||
|
|
||||||
<div class="pb-5 flex flex-row justify-between">
|
<div class="pb-5 flex flex-row justify-between">
|
||||||
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Library Item') }}</h3>
|
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Library Item') }}</h3>
|
||||||
<div class="flex flex-row space-x-2 items-center">
|
<div class="flex flex-row space-x-2 items-center">
|
||||||
<div>
|
<div>
|
||||||
<x-button :href="$fromUrl">
|
<x-button :href="$fromUrl">
|
||||||
<i class="fa fa-thin fa-arrow-left"></i>
|
<i class="fa fa-thin fa-arrow-left"></i>
|
||||||
{{ __('Back') }}
|
{{ __('Back') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
||||||
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
||||||
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.lecturer_id')">
|
<x-input.group :for="md5('libraryItem.lecturer_id')">
|
||||||
<x-slot name="label">
|
<x-slot name="label">
|
||||||
<div class="flex flex-row space-x-4 items-center">
|
<div class="flex flex-row space-x-4 items-center">
|
||||||
<div>
|
<div>
|
||||||
{{ __('Author') }}
|
{{ __('Author') }}
|
||||||
</div>
|
</div>
|
||||||
<div x-data="{currentUrl: window.location.href}">
|
<div x-data="{currentUrl: window.location.href}">
|
||||||
<x-button xs :href="route('contentCreator.form')">
|
<x-button xs :href="route('contentCreator.form')">
|
||||||
<i class="fa fa-thin fa-plus"></i>
|
<i class="fa fa-thin fa-plus"></i>
|
||||||
{{ __('Create new author') }}
|
{{ __('Create new author') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</x-slot>
|
||||||
</x-slot>
|
<x-select
|
||||||
<x-select
|
:clearable="false"
|
||||||
:clearable="false"
|
wire:model="libraryItem.lecturer_id"
|
||||||
wire:model="libraryItem.lecturer_id"
|
:searchable="true"
|
||||||
:searchable="true"
|
:async-data="[
|
||||||
:async-data="[
|
|
||||||
'api' => route('api.lecturers.index'),
|
'api' => route('api.lecturers.index'),
|
||||||
'method' => 'GET', // default is GET
|
'method' => 'GET', // default is GET
|
||||||
]"
|
]"
|
||||||
:template="[
|
:template="[
|
||||||
'name' => 'user-option',
|
'name' => 'user-option',
|
||||||
'config' => ['src' => 'image']
|
'config' => ['src' => 'image']
|
||||||
]"
|
]"
|
||||||
option-label="name"
|
|
||||||
option-value="id"
|
|
||||||
/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.type')" label="{{ __('Type') }}">
|
|
||||||
<x-select
|
|
||||||
:clearable="false"
|
|
||||||
wire:model="libraryItem.type"
|
|
||||||
:options="$types"
|
|
||||||
option-label="label"
|
|
||||||
option-value="value"
|
|
||||||
/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('library')" label="{{ __('Library') }}">
|
|
||||||
<x-select
|
|
||||||
:disabled="$lecturer"
|
|
||||||
hint="{{ __('Please classify by type of your entry.') }}"
|
|
||||||
:clearable="false"
|
|
||||||
wire:model="library"
|
|
||||||
:options="$libraries"
|
|
||||||
option-label="name"
|
|
||||||
option-value="id"
|
|
||||||
/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('selectedTags')" :label="__('Tags')">
|
|
||||||
<div class="py-2 flex flex-wrap items-center space-x-1">
|
|
||||||
@foreach($tags as $tag)
|
|
||||||
<div class="cursor-pointer" wire:key="tag{{ $loop->index }}"
|
|
||||||
wire:click="selectTag('{{ $tag->name }}')">
|
|
||||||
@if(collect($selectedTags)->contains($tag->name))
|
|
||||||
<x-badge
|
|
||||||
amber>
|
|
||||||
{{ $tag->name }}
|
|
||||||
</x-badge>
|
|
||||||
@else
|
|
||||||
<x-badge
|
|
||||||
black>
|
|
||||||
{{ $tag->name }}
|
|
||||||
</x-badge>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
@if($libraryItem->lecturer_id && $libraryItem->type && $library && count($selectedTags) > 0)
|
|
||||||
<x-input.group :for=" md5('image')" :label="__('Main picture')">
|
|
||||||
<div class="py-4">
|
|
||||||
@if ($image)
|
|
||||||
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
|
||||||
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
|
||||||
@endif
|
|
||||||
@if ($libraryItem->getFirstMediaUrl('main'))
|
|
||||||
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
|
||||||
<img class="h-48 object-contain" src="{{ $libraryItem->getFirstMediaUrl('main') }}">
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
<input class="text-gray-200" type="file" wire:model="image">
|
|
||||||
@error('image') <span class="text-red-500">{{ $message }}</span> @enderror
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.main_image_caption')" :label="__('Main image caption')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="libraryItem.main_image_caption"
|
|
||||||
:placeholder="__('Main image caption')"
|
|
||||||
:cornerHint="__('Ex: Photo by Timothy Vollmer/ CC BY')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.name')" :label="__('Title')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="libraryItem.name"
|
|
||||||
:placeholder="__('Title')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.subtitle')" :label="__('Subtitle')">
|
|
||||||
<x-input autocomplete="off" wire:model.debounce="libraryItem.subtitle"
|
|
||||||
:placeholder="__('Subtitle')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.excerpt')" :label="__('Excerpt')">
|
|
||||||
<x-textarea autocomplete="off" wire:model.debounce="libraryItem.excerpt"
|
|
||||||
:placeholder="__('Excerpt')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.language_code')" :label="__('Language Code')">
|
|
||||||
<x-select
|
|
||||||
placeholder="{{ __('Choose language') }}"
|
|
||||||
wire:model="libraryItem.language_code"
|
|
||||||
:clearable="false"
|
|
||||||
:searchable="true"
|
|
||||||
:async-data="route('api.languages.index')"
|
|
||||||
option-label="name"
|
option-label="name"
|
||||||
option-value="language"
|
option-value="id"
|
||||||
/>
|
/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
@if($libraryItem->type === App\Enums\LibraryItemType::MarkdownArticleExtern())
|
<x-input.group :for="md5('libraryItem.type')" label="{{ __('Type') }}">
|
||||||
<x-input.group :for="md5('libraryItem.value')" :label="__('Article as Markdown')">
|
<x-select
|
||||||
<div
|
:clearable="false"
|
||||||
class="text-amber-500 text-xs py-2">{{ __('For images in Markdown, please use eg. Imgur or another provider.') }}</div>
|
wire:model="libraryItem.type"
|
||||||
<x-input.simple-mde wire:model.defer="libraryItem.value"/>
|
:options="$types"
|
||||||
@error('libraryItem.value') <span class="text-red-500 py-2">{{ $message }}</span> @enderror
|
option-label="label"
|
||||||
|
option-value="value"
|
||||||
|
/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('library')" label="{{ __('Library') }}">
|
||||||
|
<x-select
|
||||||
|
:disabled="$lecturer"
|
||||||
|
hint="{{ __('Please classify by type of your entry.') }}"
|
||||||
|
:clearable="false"
|
||||||
|
wire:model="library"
|
||||||
|
:options="$libraries"
|
||||||
|
option-label="name"
|
||||||
|
option-value="id"
|
||||||
|
/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('selectedTags')" :label="__('Tags')">
|
||||||
|
<div class="py-2 flex flex-wrap items-center space-x-1">
|
||||||
|
@foreach($tags as $tag)
|
||||||
|
<div class="cursor-pointer" wire:key="tag{{ $loop->index }}"
|
||||||
|
wire:click="selectTag('{{ $tag->name }}')">
|
||||||
|
@if(collect($selectedTags)->contains($tag->name))
|
||||||
|
<x-badge
|
||||||
|
amber>
|
||||||
|
{{ $tag->name }}
|
||||||
|
</x-badge>
|
||||||
|
@else
|
||||||
|
<x-badge
|
||||||
|
black>
|
||||||
|
{{ $tag->name }}
|
||||||
|
</x-badge>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
@if($libraryItem->lecturer_id && $libraryItem->type && $library && count($selectedTags) > 0)
|
||||||
|
<x-input.group :for=" md5('image')" :label="__('Main picture')">
|
||||||
|
<div class="py-4">
|
||||||
|
@if ($image)
|
||||||
|
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
||||||
|
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
||||||
|
@endif
|
||||||
|
@if ($libraryItem->getFirstMediaUrl('main'))
|
||||||
|
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
||||||
|
<img class="h-48 object-contain" src="{{ $libraryItem->getFirstMediaUrl('main') }}">
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<input class="text-gray-200" type="file" wire:model="image">
|
||||||
|
@error('image') <span class="text-red-500">{{ $message }}</span> @enderror
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
@elseif($libraryItem->type !== App\Enums\LibraryItemType::DownloadableFile())
|
|
||||||
<x-input.group :for="md5('libraryItem.value')" :label="__('Link')">
|
<x-input.group :for="md5('libraryItem.main_image_caption')" :label="__('Main image caption')">
|
||||||
<x-input type="url" autocomplete="off" wire:model.debounce="libraryItem.value"
|
<x-input autocomplete="off" wire:model.debounce="libraryItem.main_image_caption"
|
||||||
:placeholder="__('Link')"/>
|
:placeholder="__('Main image caption')"
|
||||||
|
:cornerHint="__('Ex: Photo by Timothy Vollmer/ CC BY')"/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
@elseif($libraryItem->type === App\Enums\LibraryItemType::DownloadableFile())
|
|
||||||
<x-input.group :for="md5('file')" :label="__('File')">
|
<x-input.group :for="md5('libraryItem.name')" :label="__('Title')">
|
||||||
<input class="text-gray-200" type="file" wire:model="file">
|
<x-input autocomplete="off" wire:model.debounce="libraryItem.name"
|
||||||
@error('file') <span class="text-red-500">{{ $message }}</span> @enderror
|
:placeholder="__('Title')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('libraryItem.subtitle')" :label="__('Subtitle')">
|
||||||
|
<x-input autocomplete="off" wire:model.debounce="libraryItem.subtitle"
|
||||||
|
:placeholder="__('Subtitle')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('libraryItem.excerpt')" :label="__('Excerpt')">
|
||||||
|
<x-textarea autocomplete="off" wire:model.debounce="libraryItem.excerpt"
|
||||||
|
:placeholder="__('Excerpt')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('libraryItem.language_code')" :label="__('Language Code')">
|
||||||
|
<x-select
|
||||||
|
placeholder="{{ __('Choose language') }}"
|
||||||
|
wire:model="libraryItem.language_code"
|
||||||
|
:clearable="false"
|
||||||
|
:searchable="true"
|
||||||
|
:async-data="route('api.languages.index')"
|
||||||
|
option-label="name"
|
||||||
|
option-value="language"
|
||||||
|
/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
@if($libraryItem->type === App\Enums\LibraryItemType::MarkdownArticleExtern())
|
||||||
|
<x-input.group :for="md5('libraryItem.value')" :label="__('Article as Markdown')">
|
||||||
|
<div
|
||||||
|
class="text-amber-500 text-xs py-2">{{ __('For images in Markdown, please use eg. Imgur or another provider.') }}</div>
|
||||||
|
<x-input.simple-mde wire:model.defer="libraryItem.value"/>
|
||||||
|
@error('libraryItem.value') <span
|
||||||
|
class="text-red-500 py-2">{{ $message }}</span> @enderror
|
||||||
|
</x-input.group>
|
||||||
|
@elseif($libraryItem->type !== App\Enums\LibraryItemType::DownloadableFile())
|
||||||
|
<x-input.group :for="md5('libraryItem.value')" :label="__('Link')">
|
||||||
|
<x-input type="url" autocomplete="off" wire:model.debounce="libraryItem.value"
|
||||||
|
:placeholder="__('Link')"/>
|
||||||
|
</x-input.group>
|
||||||
|
@elseif($libraryItem->type === App\Enums\LibraryItemType::DownloadableFile())
|
||||||
|
<x-input.group :for="md5('file')" :label="__('File')">
|
||||||
|
<input class="text-gray-200" type="file" wire:model="file">
|
||||||
|
@error('file') <span class="text-red-500">{{ $message }}</span> @enderror
|
||||||
|
</x-input.group>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<x-input.group :for="md5('libraryItem.read_time')" :label="__('Time to read')">
|
||||||
|
<x-inputs.number min="1" autocomplete="off" wire:model.debounce="libraryItem.read_time"
|
||||||
|
:placeholder="__('Time to read')" :hint="__('How many minutes to read?')"/>
|
||||||
|
</x-input.group>
|
||||||
|
|
||||||
|
<x-input.group :for="md5('meetupEvent.link')" label="">
|
||||||
|
<x-button primary wire:click="save">
|
||||||
|
<i class="fa fa-thin fa-save"></i>
|
||||||
|
{{ __('Save') }}
|
||||||
|
</x-button>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<x-input.group :for="md5('libraryItem.read_time')" :label="__('Time to read')">
|
</div>
|
||||||
<x-inputs.number min="1" autocomplete="off" wire:model.debounce="libraryItem.read_time"
|
|
||||||
:placeholder="__('Time to read')" :hint="__('How many minutes to read?')"/>
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('meetupEvent.link')" label="">
|
|
||||||
<x-button primary wire:click="save">
|
|
||||||
<i class="fa fa-thin fa-save"></i>
|
|
||||||
{{ __('Save') }}
|
|
||||||
</x-button>
|
|
||||||
</x-input.group>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,6 +4,16 @@
|
|||||||
{{-- MAIN --}}
|
{{-- MAIN --}}
|
||||||
<section class="w-full mb-12">
|
<section class="w-full mb-12">
|
||||||
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
||||||
|
<div class="md:flex md:items-center md:justify-between">
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<h2 class="text-2xl font-bold leading-7 text-white sm:truncate sm:text-3xl sm:tracking-tight">
|
||||||
|
{{ __('City search') }}
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div class="mt-4 flex md:mt-0 md:ml-4">
|
||||||
|
{{----}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<livewire:tables.city-table :country="$country->code" type="school"/>
|
<livewire:tables.city-table :country="$country->code" type="school"/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -4,6 +4,16 @@
|
|||||||
{{-- MAIN --}}
|
{{-- MAIN --}}
|
||||||
<section class="w-full mb-12">
|
<section class="w-full mb-12">
|
||||||
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
||||||
|
<div class="md:flex md:items-center md:justify-between">
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<h2 class="text-2xl font-bold leading-7 text-white sm:truncate sm:text-3xl sm:tracking-tight">
|
||||||
|
{{ __('Courses') }}
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div class="mt-4 flex md:mt-0 md:ml-4">
|
||||||
|
{{----}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<livewire:school.search-by-tag-component :country="$country->code"/>
|
<livewire:school.search-by-tag-component :country="$country->code"/>
|
||||||
{{-- <livewire:frontend.search-tabs :country="$country->code"/>--}}
|
{{-- <livewire:frontend.search-tabs :country="$country->code"/>--}}
|
||||||
<livewire:tables.course-table :country="$country->code"/>
|
<livewire:tables.course-table :country="$country->code"/>
|
||||||
|
|||||||
@@ -123,6 +123,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="md:flex md:items-center md:justify-between">
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<h2 class="text-2xl font-bold leading-7 text-white sm:truncate sm:text-3xl sm:tracking-tight">
|
||||||
|
{{ __('Course Events') }}
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div class="mt-4 flex md:mt-0 md:ml-4">
|
||||||
|
{{----}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<livewire:tables.event-table :country="$country->code"/>
|
<livewire:tables.event-table :country="$country->code"/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -4,6 +4,16 @@
|
|||||||
{{-- MAIN --}}
|
{{-- MAIN --}}
|
||||||
<section class="w-full mb-12">
|
<section class="w-full mb-12">
|
||||||
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
|
||||||
|
<div class="md:flex md:items-center md:justify-between">
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<h2 class="text-2xl font-bold leading-7 text-white sm:truncate sm:text-3xl sm:tracking-tight">
|
||||||
|
{{ __('Venues') }}
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div class="mt-4 flex md:mt-0 md:ml-4">
|
||||||
|
{{----}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<livewire:tables.venue-table :country="$country->code"/>
|
<livewire:tables.venue-table :country="$country->code"/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1,94 +1,98 @@
|
|||||||
<div class="container p-4 mx-auto bg-21gray my-2">
|
<div>
|
||||||
|
{{-- HEADER --}}
|
||||||
|
<livewire:frontend.header :country="null"/>
|
||||||
|
<div class="container p-4 mx-auto bg-21gray my-2">
|
||||||
|
|
||||||
<div class="pb-5 flex flex-row justify-between">
|
<div class="pb-5 flex flex-row justify-between">
|
||||||
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Venue') }}</h3>
|
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Venue') }}</h3>
|
||||||
<div class="flex flex-row space-x-2 items-center">
|
<div class="flex flex-row space-x-2 items-center">
|
||||||
<div>
|
<div>
|
||||||
@if($venue->id)
|
@if($venue->id)
|
||||||
<x-button negative wire:click="deleteMe">
|
<x-button negative wire:click="deleteMe">
|
||||||
<i class="fa fa-thin fa-trash"></i>
|
<i class="fa fa-thin fa-trash"></i>
|
||||||
{{ __('Delete') }}
|
{{ __('Delete') }}
|
||||||
|
</x-button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<x-button :href="$fromUrl">
|
||||||
|
<i class="fa fa-thin fa-arrow-left"></i>
|
||||||
|
{{ __('Back') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
@endif
|
</div>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<x-button :href="$fromUrl">
|
|
||||||
<i class="fa fa-thin fa-arrow-left"></i>
|
|
||||||
{{ __('Back') }}
|
|
||||||
</x-button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
<form class="space-y-8 divide-y divide-gray-700 pb-24">
|
||||||
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
<div class="space-y-8 divide-y divide-gray-700 sm:space-y-5">
|
||||||
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
<div class="mt-6 sm:mt-5 space-y-6 sm:space-y-5">
|
||||||
|
|
||||||
<x-input.group :for="md5('image')" :label="__('Images')">
|
<x-input.group :for="md5('image')" :label="__('Images')">
|
||||||
<div class="py-4">
|
<div class="py-4">
|
||||||
@if ($images)
|
@if ($images)
|
||||||
<div class="grid grid-cols-4 gap-1">
|
<div class="grid grid-cols-4 gap-1">
|
||||||
@foreach($images as $image)
|
@foreach($images as $image)
|
||||||
<div>
|
<div>
|
||||||
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
<div class="text-gray-200">{{ __('Preview') }}:</div>
|
||||||
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
<img class="h-48 object-contain" src="{{ $image->temporaryUrl() }}">
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
{{--@if ($venue->getFirstMediaUrl('images'))
|
{{--@if ($venue->getFirstMediaUrl('images'))
|
||||||
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
<div class="text-gray-200">{{ __('Current picture') }}:</div>
|
||||||
<img class="h-48 object-contain" src="{{ $venue->getFirstMediaUrl('logo') }}">
|
<img class="h-48 object-contain" src="{{ $venue->getFirstMediaUrl('logo') }}">
|
||||||
@endif--}}
|
@endif--}}
|
||||||
</div>
|
|
||||||
<input class="text-gray-200" type="file" multiple wire:model="images">
|
|
||||||
</x-input.group>
|
|
||||||
|
|
||||||
<x-input.group :for="md5('city_id')">
|
|
||||||
<x-slot name="label">
|
|
||||||
<div class="flex flex-row space-x-4 items-center">
|
|
||||||
<div>
|
|
||||||
{{ __('City') }}
|
|
||||||
</div>
|
|
||||||
<x-button xs href="{{ route('city.form') }}">
|
|
||||||
<i class="fa fa-thin fa-plus"></i>
|
|
||||||
{{ __('New City') }}
|
|
||||||
</x-button>
|
|
||||||
</div>
|
</div>
|
||||||
</x-slot>
|
<input class="text-gray-200" type="file" multiple wire:model="images">
|
||||||
<x-select
|
</x-input.group>
|
||||||
:clearable="false"
|
|
||||||
autocomplete="off"
|
<x-input.group :for="md5('city_id')">
|
||||||
wire:model.debounce="venue.city_id"
|
<x-slot name="label">
|
||||||
:placeholder="__('City/Area')"
|
<div class="flex flex-row space-x-4 items-center">
|
||||||
:async-data="[
|
<div>
|
||||||
|
{{ __('City') }}
|
||||||
|
</div>
|
||||||
|
<x-button xs href="{{ route('city.form') }}">
|
||||||
|
<i class="fa fa-thin fa-plus"></i>
|
||||||
|
{{ __('New City') }}
|
||||||
|
</x-button>
|
||||||
|
</div>
|
||||||
|
</x-slot>
|
||||||
|
<x-select
|
||||||
|
:clearable="false"
|
||||||
|
autocomplete="off"
|
||||||
|
wire:model.debounce="venue.city_id"
|
||||||
|
:placeholder="__('City/Area')"
|
||||||
|
:async-data="[
|
||||||
'api' => route('api.cities.index'),
|
'api' => route('api.cities.index'),
|
||||||
'method' => 'GET', // default is GET
|
'method' => 'GET', // default is GET
|
||||||
]"
|
]"
|
||||||
option-label="name"
|
option-label="name"
|
||||||
option-value="id"
|
option-value="id"
|
||||||
option-description="country.name"
|
option-description="country.name"
|
||||||
/>
|
/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('venue.name')" :label="__('Name')">
|
<x-input.group :for="md5('venue.name')" :label="__('Name')">
|
||||||
<x-input autocomplete="off" wire:model.debounce="venue.name"
|
<x-input autocomplete="off" wire:model.debounce="venue.name"
|
||||||
:placeholder="__('Name')"/>
|
:placeholder="__('Name')"/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('venue.street')" :label="__('Address')">
|
<x-input.group :for="md5('venue.street')" :label="__('Address')">
|
||||||
<x-input autocomplete="off" wire:model.debounce="venue.street"
|
<x-input autocomplete="off" wire:model.debounce="venue.street"
|
||||||
:placeholder="__('Address')"/>
|
:placeholder="__('Address')"/>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
<x-input.group :for="md5('action')" :label="__('Action')">
|
<x-input.group :for="md5('action')" :label="__('Action')">
|
||||||
<x-button primary wire:click="submit">
|
<x-button primary wire:click="submit">
|
||||||
<i class="fa fa-thin fa-save"></i>
|
<i class="fa fa-thin fa-save"></i>
|
||||||
{{ __('Save') }}
|
{{ __('Save') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
</x-input.group>
|
</x-input.group>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user