Viewing file: index.blade.php (35.36 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
@extends('layouts.dashboard')
@section('title',trans('layout.item_list'))
@section('css') <style> .modal-content-section.mt-4 { overflow-y: scroll; } </style> @endsection
@section('main-content') <div class="row page-titles mx-0"> <div class="col-sm-6 p-md-0"> <div class="welcome-text"> <h4>{{trans('layout.item')}}</h4> <p class="mb-0">{{trans('layout.your_item')}}</p> </div> </div> <div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a href="#">{{trans('layout.home')}}</a></li> <li class="breadcrumb-item active"><a href="javascript:void(0)">{{trans('layout.items')}}</a></li> </ol> </div> </div> <!-- row -->
<div class="row"> <div class="col-lg-12"> <div class="card"> <div class="card-header"> <h4 class="card-title">{{trans('layout.list')}}</h4> <div class="pull-right"> <button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#itemCreateModal"> {{trans('layout.create')}} </button> </div> </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-responsive-md"> <thead> <tr> <th><strong>{{trans('layout.name')}}</strong></th> <th><strong>{{trans('layout.restaurant')}}</strong></th> <th><strong>{{trans('layout.category')}}</strong></th> <th><strong>{{trans('layout.discount')}}</strong></th> <th><strong>{{trans('layout.discount_type')}}</strong></th> <th><strong>{{trans('layout.tax')}}</strong></th> <th><strong>{{trans('layout.price')}}</strong></th> <th><strong>{{trans('layout.status')}}</strong></th> <th></th> </tr> </thead> <tbody>
@foreach($items as $key=>$item) <tr> <td>{{$item->name}}</td> <td>{{$item->restaurant->name}}</td> <td>{{$item->category->name}}</td> <td>{{$item->discount}}</td> <td>{{$item->discount_type}}</td> <td> @if($item->tax->title) {{$item->tax->title}} ({{$item->tax->type=='percentage'?formatNumber($item->tax->amount).'%':formatNumberWithCurrSymbol($item->tax->amount)}}) @endif </td> <td>{{$item->price}}</td> <td> @if($item->status=='active') <span class="badge light badge-success">{{trans('layout.active')}}</span> @elseif($item->status=='inactive') <span class="badge light badge-warning">{{trans('layout.inactive')}}</span> @endif </td> <td> <div class="dropdown"> <button type="button" class="btn btn-success light sharp" data-toggle="dropdown"> <svg width="20px" height="20px" viewBox="0 0 24 24" version="1.1"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <rect x="0" y="0" width="24" height="24" /> <circle fill="#000000" cx="5" cy="12" r="2" /> <circle fill="#000000" cx="12" cy="12" r="2" /> <circle fill="#000000" cx="19" cy="12" r="2" /> </g> </svg> </button> <div class="dropdown-menu"> <button class="dropdown-item edit_item" data-id="{{ $item->id }}" data-restaurant_id="{{ $item->restaurant_id }}" data-category_id="{{ $item->category_id }}" data-name="{{ $item->name }}" data-details="{{ $item->details }}" data-price="{{ $item->price }}" data-discount="{{ $item->discount }}" data-discount_type="{{ $item->discount_type }}" data-tax_id="{{ $item->tax_id }}" data-status="{{ $item->status }}" data-action="{{ route('item.update', $item->id) }}"> {{trans('layout.edit')}} </button>
<button class="dropdown-item" type="button" data-message="{{trans('layout.message.item_delete_warning')}}" data-action='{{route('item.destroy',[$item])}}' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">{{trans('layout.delete')}}</button> </div> </div> </td> </tr> @endforeach
</tbody> </table> </div> </div> </div> </div> </div>
<!-- Modal Create --> @section('create-modal-id', 'itemCreateModal') @section('create-modal-title', 'Item Create') @section('create-modal-content-wapper') <form method="POST" action="{{ route('item.store') }}" enctype="multipart/form-data"> @csrf <div class="modal-body"> <div class="custom-tab-1"> <ul class="nav nav-tabs"> <li class="nav-item"> <a class="nav-link active" data-toggle="tab" href="#basic"><i class="la la-border-all mr-2"></i>{{trans('layout.basic')}}</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#extra"><i class="la la-plus-square mr-2"></i> {{trans('layout.extra')}}</a> </li> </ul>
<div class="tab-content"> <div class="tab-pane fade active show" id="basic" role="tabpanel"> <div class="pt-4"> <div> <section> <div class="row"> <!-- Restaurant --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.restaurant') }}*</label> <select name="restaurant_id" class="form-control" required> @foreach($restaurants as $restaurant) <option value="{{ $restaurant->id }}">{{ $restaurant->name }}</option> @endforeach </select> </div> </div>
<!-- Category --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.category') }}*</label> <div class="pull-right"> <a class="btn-info btn btn-xs mb-1" href="{{ route('category.create') }}">{{ trans('layout.new') }}</a> </div> <select name="category_id" class="form-control" required> @foreach($categories as $category) <option value="{{ $category->id }}">{{ $category->name }}</option> @endforeach </select> </div> </div>
<!-- Item Name --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.item_name') }}*</label> <input type="text" name="name" class="form-control" placeholder="Ex: Burger" required> </div> </div>
<!-- Item Details --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.item_details') }}</label> <input type="text" name="details" class="form-control" placeholder="Ex: A great burger"> </div> </div>
<!-- Price --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.price') }}*</label> <input type="number" name="price" min="0" step="0.001" class="form-control" placeholder="Ex: 20" required> </div> </div>
<!-- Tax --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.tax') }}</label> <select name="tax_id" class="form-control"> <option value="">{{ trans('layout.select_tax') }}</option> @foreach($taxes as $tax) <option value="{{ $tax->id }}"> {{ $tax->title }} ({{ $tax->type == 'flat' ? formatNumberWithCurrSymbol($tax->amount) : formatNumber($tax->amount) . '%' }}) </option> @endforeach </select> </div> </div>
<!-- Discount --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.discount') }}*</label> <input type="number" name="discount" min="0" step="0.001" class="form-control" placeholder="Ex: 5" required> </div> </div>
<!-- Discount Type --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.discount_type') }}*</label> <select name="discount_type" class="form-control" required> <option value="flat">{{ trans('layout.flat') }}</option> <option value="percent">{{ trans('layout.percent') }}</option> </select> </div> </div>
<!-- Item Image --> <div class="col-lg-6 mb-2"> <label class="text-label">{{ trans('layout.item_image') }}</label> <div class="input-group"> <div class="custom-file"> <input name="item_image" type="file" class="custom-file-input" required> <label class="custom-file-label">{{ trans('layout.choose') }}</label> </div> </div> </div>
<!-- Status --> <div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.status') }}*</label> <select name="status" class="form-control" required> <option value="active">{{ trans('layout.active') }}</option> <option value="inactive">{{ trans('layout.inactive') }}</option> </select> </div> </div>
</div> </section> </div> </div> </div> <div class="tab-pane fade" id="extra"> <div class="pt-4"> <h4>{{trans('layout.item_extra')}}</h4> @php $section_count =999; @endphp <div class="row" id="extraSection{{$section_count}}">
<div class="col-lg-4 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_title[]" type="text" value="" class="form-control" placeholder="{{trans('layout.add_extra_name')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_price[]" type="number" step="0.0001" min="0" class="form-control" placeholder="{{trans('layout.enter_price')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <select name="extra_status[]" class="form-control"> <option value="active">{{trans('layout.active')}}</option> <option value="inactive">{{trans('layout.inactive')}}</option> </select> </div> </div>
</div> <div class="col-lg-2 mb-2"> <div class="form-group row mt-2"> <button data-section="{{$section_count}}" type="button" class="btn btn-xs btn-danger delete-extra"><i class="la la-trash"></i> </button> </div> </div>
</div>
<div id="extraItemAddSection"></div> <div class="row"> <div class="col-lg-2 mb-2"> <button type="button" class="btn btn-xs btn-info add_extra">{{trans('layout.add_extra')}}</button> </div> </div> </div> </div> </div> </div> </div>
<div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">{{ trans('layout.close') }}</button> <button type="submit" class="btn btn-primary">{{ trans('layout.submit') }}</button> </div> </form> @endsection
<!-- Modal Edit --> @section('edit-modal-id', 'itemEditModal') @section('edit-modal-title', 'Item Edit') @section('edit-modal-content-wapper') <form method="POST" id="itemFormUpdate" enctype="multipart/form-data"> @csrf @method('PUT') <input type="hidden" name="id" id="edit-item-id">
<div class="modal-body"> <div class="custom-tab-1"> <ul class="nav nav-tabs"> <li class="nav-item"> <a class="nav-link active" data-toggle="tab" href="#edit-basic"><i class="la la-border-all mr-2"></i>{{trans('layout.basic')}}</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#edit-extra"><i class="la la-plus-square mr-2"></i> {{trans('layout.extra')}}</a> </li> </ul>
<div class="tab-content"> <div class="tab-pane fade active show" id="edit-basic" role="tabpanel"> <div class="pt-4"> <div> <section> <div class="row">
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.restaurant') }}*</label> <select name="restaurant_id" id="edit-item-restaurant-id" class="form-control" required> @foreach($restaurants as $restaurant) <option value="{{ $restaurant->id }}">{{ $restaurant->name }}</option> @endforeach </select> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.category') }}*</label> <select name="category_id" id="edit-item-category-id" class="form-control" required> @foreach($categories as $category) <option value="{{ $category->id }}">{{ $category->name }}</option> @endforeach </select> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.item_name') }}*</label> <input type="text" name="name" id="edit-item-name" class="form-control" required> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.item_details') }}</label> <input type="text" name="details" id="edit-item-details" class="form-control"> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.price') }}*</label> <input type="number" name="price" id="edit-item-price" min="0" step="0.001" class="form-control" required> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.tax') }}</label> <select name="tax_id" id="edit-item-tax" class="form-control"> <option value="">{{ trans('layout.select_tax') }}</option> @foreach($taxes as $tax) <option value="{{ $tax->id }}"> {{ $tax->title }} ({{ $tax->type == 'flat' ? formatNumberWithCurrSymbol($tax->amount) : formatNumber($tax->amount) . '%' }}) </option> @endforeach </select> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.discount') }}*</label> <input type="number" name="discount" id="edit-item-discount" min="0" step="0.001" class="form-control" required> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.discount_type') }}*</label> <select name="discount_type" id="edit-item-discount-type" class="form-control" required> <option value="flat">{{ trans('layout.flat') }}</option> <option value="percent">{{ trans('layout.percent') }}</option> </select> </div> </div>
<div class="col-lg-6 mb-2"> <label class="text-label">{{ trans('layout.item_image') }}</label> <div class="input-group"> <div class="custom-file"> <input name="item_image" type="file" class="custom-file-input"> <label class="custom-file-label">{{ trans('layout.choose') }}</label> </div> </div> </div>
<div class="col-lg-6 mb-2"> <div class="form-group"> <label class="text-label">{{ trans('layout.status') }}*</label> <select name="status" id="edit-item-status" class="form-control" required> <option value="active">{{ trans('layout.active') }}</option> <option value="inactive">{{ trans('layout.inactive') }}</option> </select> </div> </div>
</div> </section> </div>
</div> </div> <div class="tab-pane fade" id="edit-extra"> <div class="pt-4"> <h4>{{trans('layout.item_extra')}}</h4> @isset($item) @foreach($item->extras as $key=>$extra) <div class="row" id="editExtraSection{{$key}}">
<div class="col-lg-4 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_title[]" type="text" value="{{$extra->title}}" class="form-control" placeholder="{{trans('layout.add_extra_name')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_price[]" type="number" value="{{$extra->price}}" step="0.0001" min="0" class="form-control" placeholder="{{trans('layout.enter_price')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <select name="extra_status[]" class="form-control"> <option {{$extra->status=='active'?'selected':''}} value="active">{{trans('layout.active')}}</option> <option {{$extra->status=='inactive'?'selected':''}} value="inactive">{{trans('layout.inactive')}}</option> </select> </div> </div>
</div> <div class="col-lg-2 mb-2"> <div class="form-group row mt-2"> <button data-section="{{$key}}" type="button" class="btn btn-xs btn-danger delete-extra"><i class="la la-trash"></i> </button> </div> </div>
</div> @endforeach @endisset
<div id="editExtraItemAddSection"></div> <div class="row"> <div class="col-lg-2 mb-2"> <button type="button" class="btn btn-xs btn-info edit_add_extra">{{trans('layout.add_extra')}}</button> </div> </div> </div> </div> </div> </div> </div>
<div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">{{ trans('layout.close') }}</button> <button type="submit" class="btn btn-primary">{{ trans('layout.submit') }}</button> </div> </form> @endsection
@endsection
@section('js') <script> $(document).on('click', '.edit_item', function () { const id = $(this).data('id'); const restaurant_id = $(this).data('restaurant_id'); const category_id = $(this).data('category_id'); const name = $(this).data('name'); const details = $(this).data('details'); const price = $(this).data('price'); const discount = $(this).data('discount'); const discount_type = $(this).data('discount_type'); const tax_id = $(this).data('tax_id'); const status = $(this).data('status');
const action = $(this).data('action'); $('#itemFormUpdate').attr('action', action); $('#edit-item-id').val(id); $('#edit-item-restaurant-id').val(restaurant_id).trigger('change'); $('#edit-item-category-id').val(category_id).trigger('change'); $('#edit-item-name').val(name); $('#edit-item-details').val(details); $('#edit-item-price').val(price); $('#edit-item-discount').val(discount); $('#edit-item-discount-type').val(discount_type).trigger('change'); $('#edit-item-tax').val(tax_id).trigger('change'); $('#edit-item-status').val(status).trigger('change'); $('#itemEditModal').modal('show'); });
</script>
<script> let extraCount=1; $(document).on('click','.add_extra',function(e){ e.preventDefault(); const html=`<div class="row" id="extraSection${extraCount}"> <div class="col-lg-4 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_title[]" type="text" class="form-control" placeholder="{{trans('layout.add_extra_name')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_price[]" step="0.0001" type="number" min="0" class="form-control" placeholder="{{trans('layout.enter_price')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <select name="extra_status[]" class="form-control"> <option value="active">{{trans('layout.active')}}</option> <option value="inactive">{{trans('layout.inactive')}}</option> </select> </div> </div> </div> <div class="col-lg-2 mb-2"> <div class="form-group row mt-2"> <button data-section=${extraCount} type="button" class="btn btn-xs btn-danger delete-extra"><i class="la la-trash"></i></button> </div> </div> </div>`;
$('#extraItemAddSection').append(html); extraCount++; }); $(document).on('click','.delete-extra',function(e){ e.preventDefault(); const sectionId=$(this).attr('data-section'); $('#extraSection'+sectionId).remove(); }) </script> <script> let editExtraCount=99; $(document).on('click','.edit_add_extra',function(e){ e.preventDefault(); const edit_html=`<div class="row" id="editExtraSection${editExtraCount}"> <div class="col-lg-4 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_title[]" type="text" class="form-control" placeholder="{{trans('layout.add_extra_name')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <input name="extra_price[]" step="0.0001" type="number" min="0" class="form-control" placeholder="{{trans('layout.enter_price')}}"> </div> </div> </div> <div class="col-lg-3 mb-2"> <div class="form-group row"> <div class="col-sm-12"> <select name="extra_status[]" class="form-control"> <option value="active">{{trans('layout.active')}}</option> <option value="inactive">{{trans('layout.inactive')}}</option> </select> </div> </div> </div> <div class="col-lg-2 mb-2"> <div class="form-group row mt-2"> <button edit-data-section=${editExtraCount} type="button" class="btn btn-xs btn-danger edit-delete-extra"><i class="la la-trash"></i></button> </div> </div> </div>`;
$('#editExtraItemAddSection').append(edit_html); editExtraCount++; }); $(document).on('click','.edit-delete-extra',function(e){ e.preventDefault(); const editSectionId=$(this).attr('edit-data-section'); $('#editExtraSection'+editSectionId).remove(); }) </script>
@endsection
|