You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xshop/resources/views/admin/templates/panel-list-template.blade.php

372 lines
21 KiB
PHTML

@extends('layouts.app')
@section('content')
<div class="mb-5 pb-5">
<div class="row">
{{-- list side bar start--}}
<div class="col-xl-3">
@include('components.err')
<div class="item-list mb-3">
<div class="row">
<div class="col-8">
<h1>
@yield('list-title')
</h1>
</div>
<div class="col-4 pt-3 text-end">
@if(hasRoute('trashed'))
<a class="btn btn-outline-danger me-3"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Trashed items")}}"
href="{{getRoute('trashed')}}"
>
<i class="ri-delete-bin-6-line"></i>
</a>
@endif
</div>
</div>
<form action="" class="p-3">
<div class="input-group mb-3">
<span class="btn btn-outline-secondary" type="button" id="button-addon2">
<i class="ri-search-2-line"></i>
</span>
<input type="text" name="q" class="form-control" placeholder="{{__("Search")}}..."
aria-label="{{__("Search")}}..." aria-describedby="button-addon2"
value="{{request()->input('q','')}}">
</div>
@yield('filter')
<button class="btn btn-primary w-100">
{{__("Search & Filter")}}
</button>
</form>
</div>
<div class="item-list mb-3 py-3">
<div class="grid-equal text-center p-1">
<span>
{{__("Total")}}
</span>
<span>
({{$items->total()}})
</span>
</div>
<hr>
<div class="grid-equal text-center p-1">
<span>
{{__("From - To")}}
</span>
<span>
@paginated($items)
</span>
</div>
</div>
@if(hasRoute('bulk'))
<div class="item-list mb-3">
<h3 class="p-3">
<i class="ri-check-double-line"></i>
{{__("Bulk actions:")}}
</h3>
<form action="{{getRoute('bulk',[])}}" id="bulk-from" method="post">
<div class="p-3">
@csrf
<select class="form-control mb-3" name="action" required>
<option value=""></option>
@if(strpos(request()->url(),'trashed') != false)
<option value="restore"> {{__("Batch restore")}} </option>
@else
<option value="delete"> {{__("Batch delete")}} </option>
@endif
@yield('bulk')
</select>
<button class="btn btn-primary w-100">
{{__("Do it")}}
</button>
<div id="bulk-idz"></div>
</div>
</form>
</div>
@endif
</div>
{{-- list side bar end--}}
{{-- list content start--}}
<div class="col-xl-9 ps-xl-0">
<form class="item-list" id="main-form">
<table class="table-list">
<thead>
<tr>
<th>
<div
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Check all")}}"
class="form-check form-switch mt-1 mx-2">
<input class="form-check-input chkall"
type="checkbox" role="switch">
</div>
</th>
@if(isset($items[0]) && method_exists($items[0],'imgUrl'))
<th>
{{__("image")}}
</th>
@endif
@foreach($cols as $col)
<th>
<a href="?sort={{$col}}{{sortSuffix($col)}}&{{queryBuilder('sort')}}">
{{__($col)}}
</a>
</th>
@endforeach
{{-- @yield('table-head')--}}
<th>
</th>
</tr>
</thead>
<tbody>
@if(count($items) == 0)
<tr>
<td colspan="100%">
{{__("There is nothing to show!")}}
</td>
</tr>
@else
@foreach($items as $item)
<tr>
<td>
<input type="checkbox" id="chk-{{$item->id}}" class="chkbox"
name="id[{{$item->id}}]" value="{{$item->id}}">
<label for="chk-{{$item->id}}">
{{$item->id}}
</label>
</td>
@if(isset($item) && method_exists($item,'imgUrl'))
<td>
<a href="{{getRoute('edit',$item->{$item->getRouteKeyName()})}}">
<img src="{{$item->imgUrl()}}" class="image-x64" alt="">
</a>
</td>
@endif
@foreach($cols as $k => $col)
@if($k == 0 && hasRoute('edit'))
<td>
<a href="{{getRoute('edit',$item->{$item->getRouteKeyName()})}}">
<b>
{{strip_tags($item?->{$cols[0]}) }}
</b>
</a>
</td>
@else
<td>
@switch($col)
5 months ago
@case('parent_id')
{{ $item->parent?->{$cols[0]}??'-' }}
@break
5 months ago
@case('status')
<div class="model-status status-{{$item->status}} float-start"></div>
@break
5 months ago
@case('user_id')
<a href="{{route('admin.user.edit',$item->user?->email)}}">
{{ $item->user?->name??'-' }}
</a>
@break
5 months ago
@case('customer_id')
<a href="{{route('admin.customer.edit',$item->customer?->id)}}">
{{ $item->customer?->name??'-' }}
</a>
@break
5 months ago
@case('category_id')
<a href="{{route('admin.category.edit',$item->category?->slug)}}">
{{ $item->category?->name??'-' }}
</a>
@break
@case('state_id')
<a href="{{route('admin.category.edit',$item->state?->id)}}">
{{ $item->state?->name??'-' }}
</a>
@break
5 months ago
@case('product_id')
<a href="{{route('admin.product.edit',$item->product?->slug)}}">
{{ $item->product?->name??'-' }}
</a>
@break
5 months ago
@case('expire')
@case('created_at')
@case('updated_at')
{{$item->$col?->ldate("Y-m-d H:i")??'-'}}
@break
5 months ago
@case('icon')
5 months ago
<i class="{{$item->$col}}"></i>
@break
@default
5 months ago
@if(substr($col,0,3) == 'is_')
@if($item->$col == 1)
<i class="ri-check-line"></i>
@endif
@elseif(gettype($item->$col) == 'integer')
5 months ago
{{number_format($item->$col)}}
@else
{{$item->$col}}
@endif
@endswitch
</td>
@endif
@endforeach
{{-- @yield('table-body')--}}
<td>
@if(strpos(request()->url(),'trashed') != false && hasRoute('restore'))
<a href="{{getRoute('restore',$item->{$item->getRouteKeyName()})}}"
class="btn btn-success btn-sm mx-1 d-xl-none d-xxl-none"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Restore")}}">
<i class="ri-recycle-line"></i>
</a>
@else
<div class="dropdown d-xl-none d-xxl-none">
<a class="btn btn-outline-secondary dropdown-toggle" href="#"
role="button"
data-bs-toggle="dropdown" aria-expanded="false">
</a>
<ul class="dropdown-menu">
@foreach($buttons as $btn => $btnData)
<li>
<a class="dropdown-item {{$btnData['class']}}"
href="{{getRoute($btn,$item->{$item->getRouteKeyName()})}}">
<i class="{{$btnData['icon']}}"></i>
&nbsp;
{{__($btnData['title'])}}
</a>
</li>
@endforeach
@if(config('app.xlang.active') && isset($item->translatable))
<li>
<a class="dropdown-item" href="{{route('admin.lang.model',[$item->id, get_class($item)])}}">
<i class="ri-translate"></i>
&nbsp;
{{__("Translate")}}
</a>
</li>
@endif
</ul>
</div>
@endif
<div class="d-none d-xl-block d-xxl-block">
@foreach($buttons as $btn => $btnData)
@if(strpos($btnData['class'],'delete') == false )
@if(strpos(request()->url(),'trashed') == false)
<a href="{{getRoute($btn,$item->{$item->getRouteKeyName()})}}"
class="btn {{$btnData['class']}} btn-sm mx-1"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__($btnData['title'])}}">
<i class="{{$btnData['icon']}}"></i>
</a>
@endif
@else
@if( hasRoute('restore') && $item->trashed())
<a class="btn btn-success btn-sm mx-1"
href="{{getRoute('restore',$item->id)}}"
{{--dont change this id to getRouteKeyName --}}
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Restore")}}">
<i class="ri-recycle-line"></i>
</a>
@else
<a href="{{getRoute($btn,$item->{$item->getRouteKeyName()})}}"
class="btn {{$btnData['class']}} btn-sm mx-1"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__($btnData['title'])}}">
<i class="{{$btnData['icon']}}"></i>
</a>
@endif
@endif
@endforeach
@if(config('app.xlang.active') && isset($item->translatable))
<a href="{{route('admin.lang.model',[$item->id, get_class($item)])}}"
class="btn btn-outline-secondary translat-btn btn-sm mx-1">
<i class="ri-translate"></i>
</a>
@endif
</div>
</td>
</tr>
@endforeach
@endif
</tbody>
{{-- pagination and toggle button start --}}
<tfoot>
<tr>
<th colspan="100%">
<div class="row">
<div class="col-md-3 text-start">
<div
id="toggle-select"
class="btn btn-outline-light mx-2"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Toggle selection")}}">
<i class="ri-toggle-line"></i>
</div>
</div>
<div class="col-md-6">
{{$items->withQueryString()->links()}}
</div>
<div class="col-md-3 text-center">
</div>
</div>
</th>
</tr>
</tfoot>
{{-- pagination and toggle button end --}}
</table>
</form>
</div>
</div>
{{-- list content end--}}
</div>
@yield('list-foot')
@if(hasRoute('create'))
<a class="action-btn circle-btn"
data-bs-toggle="tooltip"
data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Add another one")}}"
href="{{getRoute('create')}}"
>
<i class="ri-add-line"></i>
</a>
@endif
@endsection