static accordions convert to view component

This commit is contained in:
Burak Civan 2022-08-18 10:55:39 +03:00
parent bb2c6372a0
commit b2644776ad
9 changed files with 92 additions and 179 deletions

View File

@ -28,6 +28,7 @@ return [
'create' => ':user created this transfer on :date',
'transactions' => 'List of transactions related to this transfer',
'transactions_desc' => ':number transaction for :account',
'attachments' => 'Download the files attached to this transfer',
],
];

View File

@ -1,30 +1,16 @@
@if ($attachment)
<div class="border-b border-gray-200 pb-4"
x-data="{ attachment : null }"
>
<div class="relative w-full ltr:text-left rtl:text-right cursor-pointer group"
x-on:click="attachment !== 1 ? attachment = 1 : attachment = null"
>
<span class="font-medium">
<x-button.hover group-hover>
{{ trans_choice('general.attachments', 2) }}
</x-button.hover>
</span>
<x-show.accordion type="attachment">
<x-slot name="head">
<x-show.accordion.head
title="{{ trans_choice('general.attachments', 2) }}"
description="{{ trans('transactions.slider.attachments') }}"
/>
</x-slot>
<div class="text-black-400 text-sm flex gap-x-1 mt-1">
{{ trans('transactions.slider.attachments') }}
</div>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform" x-bind:class="attachment === 1 ? 'rotate-180' : ''">expand_more</span>
</div>
<div class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="attachment == 1 ? 'h-auto ' : 'scale-y-0 h-0'"
>
<x-slot name="body">
@foreach ($attachment as $file)
<x-media.file :file="$file" />
@endforeach
</div>
</div>
</x-slot>
</x-show.accordion>
@endif

View File

@ -1,26 +1,12 @@
<div class="border-b pb-4" x-data="{ children : null }">
<button class="relative w-full ltr:text-left rtl:text-right cursor-pointer group"
x-on:click="children !== 1 ? children = 1 : children = null"
>
<span class="font-medium">
<x-button.hover group-hover>
{{ trans_choice('general.transactions', 2) }}
</x-button.hover>
</span>
<x-show.accordion type="children">
<x-slot name="head">
<x-show.accordion.head
title="{{ trans_choice('general.transactions', 2) }}"
description="{!! trans('transactions.slider.children', ['count' => $transaction->children()->count()]) !!}"
/>
</x-slot>
<div class="text-black-400 text-sm flex gap-x-1 mt-1">
{!! trans('transactions.slider.children', ['count' => $transaction->children()->count()]) !!}
</div>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform"
x-bind:class="children === 1 ? 'rotate-180' : ''"
>expand_more</span>
</button>
<div class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="children == 1 ? 'h-auto ' : 'scale-y-0 h-0'"
>
<x-slot name="body">
@if ($transaction->children()->count())
@foreach ($transaction->children()->get() as $child)
@php $url = '<x-link href="' . route('transactions.show', $child->id) . '" class="text-purple" override="class">' . $child->number . '</x-link>' @endphp
@ -32,5 +18,5 @@
@else
{{ trans('general.none') }}
@endif
</div>
</div>
</x-slot>
</x-show.accordion>

View File

@ -1,14 +1,10 @@
@php $created_date = '<span class="font-medium">' . company_date($transaction->created_at) . '</span>' @endphp
<div class="border-b pb-4" x-data="{ create : null }">
<button class="relative w-full ltr:text-left rtl:text-right group"
x-on:click="create !== 1 ? create = 1 : create = null"
>
<span class="font-medium">
<x-button.hover>
{{ trans('general.create') }}
</x-button.hover>
</span>
<x-show.accordion type="create">
<x-slot name="head">
<x-show.accordion.head
title="{{ trans('general.create') }}"
/>
<div class="text-black-400 text-sm flex gap-x-1 mt-1">
@if ($transaction->isRecurringTransaction())
@ -17,14 +13,9 @@
{!! trans('transactions.slider.create', ['user' => $transaction->owner->name, 'date' => $created_date]) !!}
@endif
</div>
</x-slot>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform" x-bind:class="create === 1 ? 'rotate-180' : ''">expand_more</span>
</button>
<div class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="create == 1 ? 'h-auto ' : 'scale-y-0 h-0'"
>
<x-slot name="body">
@if ($transaction->isNotTransferTransaction())
<div class="flex my-3 space-x-2 rtl:space-x-reverse">
<x-link
@ -36,5 +27,5 @@
</x-link>
</div>
@endif
</div>
</div>
</x-slot>
</x-show.accordion>

View File

@ -3,27 +3,15 @@
$frequency = Str::lower(trans('recurring.' . str_replace('ly', 's', $transaction->recurring->frequency)));
@endphp
<div class="border-b pb-4" x-data="{ schedule : null }">
<button class="relative w-full ltr:text-left rtl:text-right cursor-pointer group"
x-on:click="schedule !== 1 ? schedule = 1 : schedule = null"
>
<span class="font-medium">
<x-button.hover group-hover>
{{ trans_choice('general.schedules', 1) }}
</x-button.hover>
</span>
<x-show.accordion type="schedule">
<x-slot name="head">
<x-show.accordion.head
title="{{ trans_choice('general.schedules', 1) }}"
description="{!! trans('transactions.slider.schedule', ['frequency' => $frequency, 'interval' => $transaction->recurring->interval, 'date' => $started_date]) !!}"
/>
</x-slot>
<div class="text-black-400 text-sm flex gap-x-1 mt-1">
{!! trans('transactions.slider.schedule', ['frequency' => $frequency, 'interval' => $transaction->recurring->interval, 'date' => $started_date]) !!}
</div>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform" x-bind:class="schedule === 1 ? 'rotate-180' : ''">expand_more</span>
</button>
<div class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="schedule == 1 ? 'h-auto ' : 'scale-y-0 h-0'"
>
<x-slot name="body">
<div class="flex my-3 space-x-2 rtl:space-x-reverse">
@if ($next = $transaction->recurring->getNextRecurring())
{{ trans('recurring.next_date', ['date' => $next->format(company_date_format())]) }}
@ -41,5 +29,5 @@
{{ trans('documents.statuses.ended') }}
@endif
</div>
</div>
</div>
</x-slot>
</x-show.accordion>

View File

@ -9,42 +9,33 @@
@endphp
@endif
<div class="border-b pb-4" x-data="{ transfer : 1 }">
<button class="relative w-full ltr:text-left rtl:text-right cursor-pointer group"
x-on:click="transfer !== 1 ? transfer = 1 : transfer = null"
>
<span class="font-medium border-b border-transparent transition-all group-hover:border-black">
{{ trans_choice('general.transfers', 1) }}
</span>
<x-show.accordion type="transfer" open>
<x-slot name="head">
<x-show.accordion.head
title="{{ trans_choice('general.transfers', 1) }}"
/>
@if ($transfer)
<div class="text-black-400 text-sm flex gap-x-1 mt-1">
{!! trans('transactions.slider.transfer_headline', ['from_account' => $from_account, 'to_account' => $to_account]) !!}
</div>
@endif
</x-slot>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform"
x-bind:class="transfer === 1 ? 'rotate-180' : ''"
>expand_more</span>
</button>
<div class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="transfer === 1 ? 'h-auto' : 'scale-y-0 h-0'"
>
<x-slot name="body">
@if ($transfer)
<div class="my-2">
{!! trans('transactions.slider.transfer_desc', ['date' => $date]) !!}
</div>
@else
<div class="mt-2">
<div class="alert alert-notify p-4 font-bold rounded-lg bg-orange-100 text-orange-600">
<span class="alert-text">
<span>{{ trans('messages.warning.missing_transfer') }}</span>
</span>
<div class="my-2">
{!! trans('transactions.slider.transfer_desc', ['date' => $date]) !!}
</div>
@else
<div class="mt-2">
<div class="alert alert-notify p-4 font-bold rounded-lg bg-orange-100 text-orange-600">
<span class="alert-text">
<span>{{ trans('messages.warning.missing_transfer') }}</span>
</span>
</div>
</div>
</div>
@endif
</div>
</div>
</x-slot>
</x-show.accordion>
@endif

View File

@ -1,26 +1,16 @@
@if ($transfer->attachment)
<div class="border-b border-gray-200 pb-4" x-data="{ attachment : null }">
<div class="relative w-full text-left cursor-pointer group" x-on:click="attachment !== 1 ? attachment = 1 : attachment = null">
<span class="font-medium">
<x-button.hover group-hover>
{{ trans_choice('general.attachments', 2) }}
</x-button.hover>
</span>
<x-show.accordion type="attachment">
<x-slot name="head">
<x-show.accordion.head
title="{{ trans_choice('general.attachments', 2) }}"
description="{{ trans('transfers.slider.attachments') }}"
/>
</x-slot>
<div class="text-black-400 text-sm">
{{ trans('transers.slider.attachments') }}
</div>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform" x-bind:class="attachment === 1 ? 'rotate-180' : ''">expand_more</span>
</div>
<div class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="attachment == 1 ? 'h-auto ' : 'scale-y-0 h-0'"
>
<x-slot name="body">
@foreach ($transfer->attachment as $file)
<x-media.file :file="$file" />
@endforeach
</div>
</div>
</x-slot>
</x-show.accordion>
@endif

View File

@ -1,25 +1,14 @@
@php $created_date = '<span class="font-medium">' . company_date($transfer->created_at) . '</span>' @endphp
<div class="border-b pb-4" x-data="{ create : null }">
<button class="relative w-full text-left group" x-on:click="create !== 1 ? create = 1 : create = null">
<span class="font-medium">
<x-button.hover group-hover>
{{ trans('general.create') }}
</x-button.hover>
</span>
<x-show.accordion type="create">
<x-slot name="head">
<x-show.accordion.head
title="{{ trans('general.create') }}"
description="{!! trans('transactions.slider.create', ['user' => $transfer->owner->name, 'date' => $created_date]) !!}"
/>
</x-slot>
<div class="text-black-400 text-sm">
{!! trans('transactions.slider.create', ['user' => $transfer->owner->name, 'date' => $created_date]) !!}
</div>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform" x-bind:class="create === 1 ? 'rotate-180' : ''">expand_more</span>
</button>
<div
class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="create == 1 ? 'h-auto ' : 'scale-y-0 h-0'"
>
<x-slot name="body">
<div class="flex my-3 space-x-2 rtl:space-x-reverse">
<x-link
href="{{ route('transfers.edit', $transfer->id) }}"
@ -29,5 +18,5 @@
{{ trans('general.edit') }}
</x-link>
</div>
</div>
</div>
</x-slot>
</x-show.accordion>

View File

@ -1,27 +1,18 @@
@php
$link_class = 'to-black-400 hover:bg-full-2 bg-no-repeat bg-0-2 bg-0-full bg-gradient-to-b from-transparent transition-backgroundSize';
$expense_number = '<x-link href="' . route('transactions.show', $transfer->expense_transaction->id) . '" class="' . $link_class . '" override="class">' . $transfer->expense_transaction->number . '</x-link>';
$income_number = '<x-link href="' . route('transactions.show', $transfer->income_transaction->id) . '" class="' . $link_class . '" override="class">' . $transfer->income_transaction->number . '</x-link>';
$expense_number = '<a href="' . route('transactions.show', $transfer->expense_transaction->id) . '" class="' . $link_class . '" override="class">' . $transfer->expense_transaction->number . '</a>';
$income_number = '<a href="' . route('transactions.show', $transfer->income_transaction->id) . '" class="' . $link_class . '" override="class">' . $transfer->income_transaction->number . '</a>';
@endphp
<div class="border-b pb-4" x-data="{ transactions : null }">
<button class="relative w-full text-left group" x-on:click="transactions !== 1 ? transactions = 1 : transactions = null">
<span class="font-medium border-b border-transparent transition-all group-hover:border-black">
{{ trans_choice('general.transactions', 2) }}
</span>
<x-show.accordion type="transactions">
<x-slot name="head">
<x-show.accordion.head
title="{{ trans_choice('general.transactions', 2) }}"
description="{!! trans('transfers.slider.transactions', ['user' => $transfer->owner->name]) !!}"
/>
</x-slot>
<div class="text-black-400 text-sm">
{!! trans('transfers.slider.transactions', ['user' => $transfer->owner->name]) !!}
</div>
<span class="material-icons absolute ltr:right-0 rtl:left-0 top-0 transition-all transform" x-bind:class="transactions === 1 ? 'rotate-180' : ''">expand_more</span>
</button>
<div
class="overflow-hidden transition-transform origin-top-left ease-linear duration-100"
x-ref="container1"
x-bind:class="transactions === 1 ? 'h-auto' : 'scale-y-0 h-0'"
>
<x-slot name="body">
<div class="my-2">
{!! trans('transfers.slider.transactions_desc', ['number' => $expense_number, 'account' => $transfer->expense_account->title]) !!}
</div>
@ -29,5 +20,5 @@
<div class="my-2">
{!! trans('transfers.slider.transactions_desc', ['number' => $income_number, 'account' => $transfer->income_account->title]) !!}
</div>
</div>
</div>
</x-slot>
</x-show.accordion>