new header

This commit is contained in:
HolgerHatGarKeineNode
2023-02-26 12:52:34 +01:00
parent 4914e567a3
commit 93f0005a42
27 changed files with 1222 additions and 1103 deletions

View File

@@ -1,118 +1,123 @@
<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">
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Meetup Event') }}</h3>
<div class="flex flex-row space-x-2 items-center">
<div>
@if($meetupEvent->id)
<x-button negative wire:click="deleteMe">
<i class="fa fa-thin fa-trash"></i>
{{ __('Delete') }}
<div class="container p-4 mx-auto bg-21gray my-2">
<div class="pb-5 flex flex-row justify-between">
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Meetup Event') }}</h3>
<div class="flex flex-row space-x-2 items-center">
<div>
@if($meetupEvent->id)
<x-button negative wire:click="deleteMe">
<i class="fa fa-thin fa-trash"></i>
{{ __('Delete') }}
</x-button>
@endif
</div>
<div>
<x-button :href="route('meetup.table.meetupEvent', ['country' => $country])">
<i class="fa fa-thin fa-arrow-left"></i>
{{ __('Back') }}
</x-button>
@endif
</div>
<div>
<x-button :href="route('meetup.table.meetupEvent', ['country' => $country])">
<i class="fa fa-thin fa-arrow-left"></i>
{{ __('Back') }}
</x-button>
</div>
</div>
</div>
</div>
<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">
<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('meetup_id')" :label="__('Meetup')">
<x-select
autocomplete="off"
wire:model.debounce="meetupEvent.meetup_id"
:placeholder="__('Meetup')"
:async-data="[
<x-input.group :for="md5('meetup_id')" :label="__('Meetup')">
<x-select
autocomplete="off"
wire:model.debounce="meetupEvent.meetup_id"
:placeholder="__('Meetup')"
:async-data="[
'api' => route('api.meetup.index'),
'method' => 'GET', // default is GET
'params' => ['user_id' => auth()->id()], // default is []
]"
:template="[
:template="[
'name' => 'user-option',
'config' => ['src' => 'profile_image']
]"
option-label="name"
option-value="id"
option-description="city.name"
/>
</x-input.group>
<x-input.group :for="md5('meetupEvent.start')" :label="__('Start')">
<x-datetime-picker
:clearable="false"
time-format="24"
timezone="UTC"
user-timezone="{{ config('app.user-timezone') }}"
autocomplete="off"
wire:model.debounce="meetupEvent.start"
display-format="DD-MM-YYYY HH:mm"
:placeholder="__('Start')"/>
</x-input.group>
@if(!$meetupEvent->id)
<x-input.group :for="md5('recurring')" :label="__('Recurring appointment')">
<x-toggle :label="__('Recurring appointment')" wire:model="recurring"/>
<p class="text-xs text-amber-400 py-2">{{ __('The recurring appointments are created in the database as new entries. Please be careful with this function, otherwise you will have to change or delete all the appointments you have created manually if you make an error.') }}</p>
option-label="name"
option-value="id"
option-description="city.name"
/>
</x-input.group>
@endif
@if($recurring)
<x-input.group :for="md5('repetitions')" :label="__('Number of repetitions')">
<x-input type="number" autocomplete="off" wire:model.debounce="repetitions"
:placeholder="__('Number of repetitions')"/>
<x-input.group :for="md5('meetupEvent.start')" :label="__('Start')">
<x-datetime-picker
:clearable="false"
time-format="24"
timezone="UTC"
user-timezone="{{ config('app.user-timezone') }}"
autocomplete="off"
wire:model.debounce="meetupEvent.start"
display-format="DD-MM-YYYY HH:mm"
:placeholder="__('Start')"/>
</x-input.group>
@endif
<x-input.group :for="md5('meetupEvent.location')" :label="__('Location')">
<x-input autocomplete="off" wire:model.debounce="meetupEvent.location"
:placeholder="__('Location')"/>
</x-input.group>
<x-input.group :for="md5('meetupEvent.description')" :label="__('Description')">
<x-textarea autocomplete="off" wire:model.debounce="meetupEvent.description"
:placeholder="__('Description')"/>
</x-input.group>
<x-input.group :for="md5('meetupEvent.link')" :label="__('Link')">
<x-input type="url" autocomplete="off" wire:model.debounce="meetupEvent.link"
:placeholder="__('Link')"
:hint="__('For example, a link to a location on Google Maps or a link to a website. (not your Telegram group link)')"/>
</x-input.group>
<x-input.group :for="md5('grid')" :label="__('Recurring appointments')">
@if($meetupEvent->start && $recurring)
<div class="grid grid-cols-1 lg:grid-cols-3 gap-2">
@for($i = 0; $i < $repetitions; $i++)
<x-datetime-picker wire:key="event_{{ $i }}"
:label="\App\Support\Carbon::parse($series[$i]['start'])->asDayNameAndMonthName()"
:clearable="false"
time-format="24"
timezone="UTC"
user-timezone="{{ config('app.user-timezone') }}"
autocomplete="off"
wire:model.debounce="series.{{ $i }}.start"
display-format="DD-MM-YYYY HH:mm"
:placeholder="__('Start')"/>
@endfor
</div>
@if(!$meetupEvent->id)
<x-input.group :for="md5('recurring')" :label="__('Recurring appointment')">
<x-toggle :label="__('Recurring appointment')" wire:model="recurring"/>
<p class="text-xs text-amber-400 py-2">{{ __('The recurring appointments are created in the database as new entries. Please be careful with this function, otherwise you will have to change or delete all the appointments you have created manually if you make an error.') }}</p>
</x-input.group>
@endif
</x-input.group>
<x-input.group :for="md5('meetupEvent.link')" :label="__('Action')">
<x-button primary wire:click="submit">
<i class="fa fa-thin fa-save"></i>
{{ __('Save') }}
</x-button>
</x-input.group>
@if($recurring)
<x-input.group :for="md5('repetitions')" :label="__('Number of repetitions')">
<x-input type="number" autocomplete="off" wire:model.debounce="repetitions"
:placeholder="__('Number of repetitions')"/>
</x-input.group>
@endif
<x-input.group :for="md5('meetupEvent.location')" :label="__('Location')">
<x-input autocomplete="off" wire:model.debounce="meetupEvent.location"
:placeholder="__('Location')"/>
</x-input.group>
<x-input.group :for="md5('meetupEvent.description')" :label="__('Description')">
<x-textarea autocomplete="off" wire:model.debounce="meetupEvent.description"
:placeholder="__('Description')"/>
</x-input.group>
<x-input.group :for="md5('meetupEvent.link')" :label="__('Link')">
<x-input type="url" autocomplete="off" wire:model.debounce="meetupEvent.link"
:placeholder="__('Link')"
:hint="__('For example, a link to a location on Google Maps or a link to a website. (not your Telegram group link)')"/>
</x-input.group>
<x-input.group :for="md5('grid')" :label="__('Recurring appointments')">
@if($meetupEvent->start && $recurring)
<div class="grid grid-cols-1 lg:grid-cols-3 gap-2">
@for($i = 0; $i < $repetitions; $i++)
<x-datetime-picker wire:key="event_{{ $i }}"
:label="\App\Support\Carbon::parse($series[$i]['start'])->asDayNameAndMonthName()"
:clearable="false"
time-format="24"
timezone="UTC"
user-timezone="{{ config('app.user-timezone') }}"
autocomplete="off"
wire:model.debounce="series.{{ $i }}.start"
display-format="DD-MM-YYYY HH:mm"
:placeholder="__('Start')"/>
@endfor
</div>
@endif
</x-input.group>
<x-input.group :for="md5('meetupEvent.link')" :label="__('Action')">
<x-button primary wire:click="submit">
<i class="fa fa-thin fa-save"></i>
{{ __('Save') }}
</x-button>
</x-input.group>
</div>
</div>
</div>
</form>
</form>
</div>
</div>

View File

@@ -1,126 +1,131 @@
<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">
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Meetup') }}</h3>
<div class="flex flex-row space-x-2 items-center">
<div class="container p-4 mx-auto bg-21gray my-2">
<div>
<x-button :href="route('meetup.table.meetup', ['country' => $country])">
<i class="fa fa-thin fa-arrow-left"></i>
{{ __('Back') }}
</x-button>
<div class="pb-5 flex flex-row justify-between">
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('Meetup') }}</h3>
<div class="flex flex-row space-x-2 items-center">
<div>
<x-button :href="route('meetup.table.meetup', ['country' => $country])">
<i class="fa fa-thin fa-arrow-left"></i>
{{ __('Back') }}
</x-button>
</div>
</div>
</div>
</div>
<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">
<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 ($meetup->getFirstMediaUrl('logo'))
<div class="text-gray-200">{{ __('Current picture') }}:</div>
<img class="h-48 object-contain" src="{{ $meetup->getFirstMediaUrl('logo') }}">
@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('meetup.name')" :label="__('Name')">
<x-input autocomplete="off" wire:model.debounce="meetup.name"
:placeholder="__('Name')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.community')" :label="__('Community')">
<x-select
:options="['einundzwanzig', 'bitcoin', 'satoshis_coffeeshop']"
:clearable="false"
autocomplete="off"
wire:model.debounce="meetup.community"
:placeholder="__('Community')"
:hint="__('This is the community that the meetup belongs to. If a community is not listed, please contact the administrator.')"
/>
</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/Area') }}
</div>
<x-button xs :href="route('city.form')">
<i class="fa fa-thin fa-plus"></i>
{{ __('New City') }}
</x-button>
<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 ($meetup->getFirstMediaUrl('logo'))
<div class="text-gray-200">{{ __('Current picture') }}:</div>
<img class="h-48 object-contain" src="{{ $meetup->getFirstMediaUrl('logo') }}">
@endif
</div>
</x-slot>
<x-select
:clearable="false"
autocomplete="off"
wire:model.debounce="meetup.city_id"
:placeholder="__('City/Area')"
:async-data="[
<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('meetup.name')" :label="__('Name')">
<x-input autocomplete="off" wire:model.debounce="meetup.name"
:placeholder="__('Name')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.community')" :label="__('Community')">
<x-select
:options="['einundzwanzig', 'bitcoin', 'satoshis_coffeeshop']"
:clearable="false"
autocomplete="off"
wire:model.debounce="meetup.community"
:placeholder="__('Community')"
:hint="__('This is the community that the meetup belongs to. If a community is not listed, please contact the administrator.')"
/>
</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/Area') }}
</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="meetup.city_id"
:placeholder="__('City/Area')"
:async-data="[
'api' => route('api.cities.index'),
'method' => 'GET', // default is GET
]"
option-label="name"
option-value="id"
option-description="country.name"
/>
</x-input.group>
option-label="name"
option-value="id"
option-description="country.name"
/>
</x-input.group>
<x-input.group :for="md5('meetup.intro')" :label="__('Intro')">
<x-textarea autocomplete="off" wire:model.debounce="meetup.intro"
:placeholder="__('Intro')"
:hint="__('This is the introduction text that is shown on the landing page.')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.intro')" :label="__('Intro')">
<x-textarea autocomplete="off" wire:model.debounce="meetup.intro"
:placeholder="__('Intro')"
:hint="__('This is the introduction text that is shown on the landing page.')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.nostr')" :label="__('Nostr public key')">
<x-input autocomplete="off" wire:model.debounce="meetup.nostr"
:placeholder="__('Nostr public key')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.nostr')" :label="__('Nostr public key')">
<x-input autocomplete="off" wire:model.debounce="meetup.nostr"
:placeholder="__('Nostr public key')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.matrix_group')" :label="__('Matrix Group')">
<x-input autocomplete="off" wire:model.debounce="meetup.matrix_group"
:placeholder="__('Matrix Group')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.matrix_group')" :label="__('Matrix Group')">
<x-input autocomplete="off" wire:model.debounce="meetup.matrix_group"
:placeholder="__('Matrix Group')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.telegram_link')" :label="__('Telegram-Link')">
<x-input autocomplete="off" wire:model.debounce="meetup.telegram_link"
:placeholder="__('Telegram-Link')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.telegram_link')" :label="__('Telegram-Link')">
<x-input autocomplete="off" wire:model.debounce="meetup.telegram_link"
:placeholder="__('Telegram-Link')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.webpage')" :label="__('Website')">
<x-input type="url" autocomplete="off" wire:model.debounce="meetup.webpage"
:placeholder="__('Link')"/>
</x-input.group>
<x-input.group :for="md5('meetup.webpage')" :label="__('Website')">
<x-input type="url" autocomplete="off" wire:model.debounce="meetup.webpage"
:placeholder="__('Link')"/>
</x-input.group>
<x-input.group :for="md5('meetup.twitter_username')" :label="__('Twitter Username')">
<x-input autocomplete="off" wire:model.debounce="meetup.twitter_username"
:placeholder="__('Twitter Username')"
:hint="__('Without @')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.twitter_username')" :label="__('Twitter Username')">
<x-input autocomplete="off" wire:model.debounce="meetup.twitter_username"
:placeholder="__('Twitter Username')"
:hint="__('Without @')"
/>
</x-input.group>
<x-input.group :for="md5('meetup.link')" :label="__('Action')">
<x-button primary wire:click="submit">
<i class="fa fa-thin fa-save"></i>
{{ __('Save') }}
</x-button>
</x-input.group>
<x-input.group :for="md5('meetup.link')" :label="__('Action')">
<x-button primary wire:click="submit">
<i class="fa fa-thin fa-save"></i>
{{ __('Save') }}
</x-button>
</x-input.group>
</div>
</div>
</div>
</form>
</form>
</div>
</div>