update
parent
4b16e54f6c
commit
f44a73277a
|
|
@ -11,6 +11,7 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
|
||||||
use App\Models\Master\Instansi;
|
use App\Models\Master\Instansi;
|
||||||
use App\Models\Master\Topik;
|
use App\Models\Master\Topik;
|
||||||
use App\Models\Master\Template;
|
use App\Models\Master\Template;
|
||||||
|
use App\Models\Master\TabelData;
|
||||||
use App\Models\DatasetTambahan;
|
use App\Models\DatasetTambahan;
|
||||||
|
|
||||||
class DatasetTambahanController extends Controller
|
class DatasetTambahanController extends Controller
|
||||||
|
|
@ -289,7 +290,7 @@ class DatasetTambahanController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$data['topik'] = Topik::all();
|
$data['topik'] = Topik::all();
|
||||||
$data['template'] = Template::all();
|
$data['template'] = TabelData::all();
|
||||||
return view($this->template.'.form',$data);
|
return view($this->template.'.form',$data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4520,18 +4520,18 @@
|
||||||
},
|
},
|
||||||
5: {
|
5: {
|
||||||
classes: {
|
classes: {
|
||||||
buttonActive: "active",
|
buttonActive: "bg-blue-500 text-white",
|
||||||
buttons: "secondary",
|
buttons: "secondary",
|
||||||
buttonsDropdown: "btn-group",
|
buttonsDropdown: "btn-group",
|
||||||
buttonsGroup: "btn-group",
|
buttonsGroup: "btn-group",
|
||||||
buttonsPrefix: "btn",
|
buttonsPrefix: "btn",
|
||||||
dropdownActive: "active",
|
dropdownActive: "bg-blue-500 text-white",
|
||||||
dropup: "dropup",
|
dropup: "dropup",
|
||||||
input: "form-control",
|
input: "form-control",
|
||||||
inputGroup: "btn-group",
|
inputGroup: "btn-group",
|
||||||
inputPrefix: "form-control-",
|
inputPrefix: "form-control-",
|
||||||
paginationActive: "active",
|
paginationActive: "bg-blue-500 text-white",
|
||||||
paginationDropdown: "btn-group dropdown",
|
paginationDropdown: "btn-group dropdown bg-gray-100 p-3 border rounded",
|
||||||
pull: "float",
|
pull: "float",
|
||||||
select: "form-select"
|
select: "form-select"
|
||||||
},
|
},
|
||||||
|
|
@ -4540,10 +4540,10 @@
|
||||||
dropdownCaret: '<span class="caret"></span>',
|
dropdownCaret: '<span class="caret"></span>',
|
||||||
icon: '<i class="%s %s"></i>',
|
icon: '<i class="%s %s"></i>',
|
||||||
inputGroup: '<div class="input-group">%s%s</div>',
|
inputGroup: '<div class="input-group">%s%s</div>',
|
||||||
pageDropdown: ['<div class="dropdown-menu">', "</div>"],
|
pageDropdown: ['<div class="dropdown-menu flex flex-col hidden">', "</div>"],
|
||||||
pageDropdownItem: '<a class="dropdown-item %s" href="#">%s</a>',
|
pageDropdownItem: '<a class="dropdown-item %s" href="#">%s</a>',
|
||||||
pagination: ['<ul class="pagination%s">', "</ul>"],
|
pagination: ['<ul class="pagination%s flex gap-2">', "</ul>"],
|
||||||
paginationItem: '<li class="page-item%s"><a class="page-link" aria-label="%s" href="javascript:void(0)">%s</a></li>',
|
paginationItem: '<li class="page-item%s p-3 border rounded"><a class="page-link" aria-label="%s" href="javascript:void(0)">%s</a></li>',
|
||||||
searchButton: '<button class="%s" type="button" name="search" title="%s">%s %s</button>',
|
searchButton: '<button class="%s" type="button" name="search" title="%s">%s %s</button>',
|
||||||
searchClearButton: '<button class="%s" type="button" name="clearSearch" title="%s">%s %s</button>',
|
searchClearButton: '<button class="%s" type="button" name="clearSearch" title="%s">%s %s</button>',
|
||||||
searchInput: '<input class="%s%s" type="text" placeholder="%s">',
|
searchInput: '<input class="%s%s" type="text" placeholder="%s">',
|
||||||
|
|
@ -5403,7 +5403,7 @@
|
||||||
o = [];
|
o = [];
|
||||||
var L = Al.sprintf(this.constants.html.searchButton, this.constants.buttonsClass, i.formatSearch(), i.showButtonIcons ? Al.sprintf(this.constants.html.icon, i.iconsPrefix, i.icons.search) : "", i.showButtonText ? i.formatSearch() : ""),
|
var L = Al.sprintf(this.constants.html.searchButton, this.constants.buttonsClass, i.formatSearch(), i.showButtonIcons ? Al.sprintf(this.constants.html.icon, i.iconsPrefix, i.icons.search) : "", i.showButtonText ? i.formatSearch() : ""),
|
||||||
_ = Al.sprintf(this.constants.html.searchClearButton, this.constants.buttonsClass, i.formatClearSearch(), i.showButtonIcons ? Al.sprintf(this.constants.html.icon, i.iconsPrefix, i.icons.clearSearch) : "", i.showButtonText ? i.formatClearSearch() : ""),
|
_ = Al.sprintf(this.constants.html.searchClearButton, this.constants.buttonsClass, i.formatClearSearch(), i.showButtonIcons ? Al.sprintf(this.constants.html.icon, i.iconsPrefix, i.icons.clearSearch) : "", i.showButtonText ? i.formatClearSearch() : ""),
|
||||||
V = '<input class="'.concat(this.constants.classes.input, "\n ").concat(Al.sprintf(" %s%s", this.constants.classes.inputPrefix, i.iconSize), '\n gridjs-input gridjs-search-input search-input" type="search" aria-label="').concat(i.formatSearch(), '" placeholder="').concat(i.formatSearch(), '" autocomplete="off">'),
|
V = '<input class="'.concat(this.constants.classes.input, "\n ").concat(Al.sprintf(" %s%s", this.constants.classes.inputPrefix, i.iconSize), '\n gridjs-input gridjs-search-input search-input p-2 border rounded" type="search" aria-label="').concat(i.formatSearch(), '" placeholder="').concat(i.formatSearch(), '" autocomplete="off">'),
|
||||||
B = V;
|
B = V;
|
||||||
if (i.showSearchButton || i.showSearchClearButton) {
|
if (i.showSearchButton || i.showSearchClearButton) {
|
||||||
var H = (i.showSearchButton ? L : "") + (i.showSearchClearButton ? _ : "");
|
var H = (i.showSearchButton ? L : "") + (i.showSearchClearButton ? _ : "");
|
||||||
|
|
|
||||||
|
|
@ -3,42 +3,42 @@
|
||||||
@section('css')
|
@section('css')
|
||||||
@endsection
|
@endsection
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="flex flex-col gap-6">
|
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
|
||||||
<div class="card">
|
<div class="bg-white p-8 rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
|
||||||
<div class="card-header">
|
<div class="overflow-x-auto">
|
||||||
<div class="flex justify-between items-center">
|
<div class="mb-4" id="toolbar">
|
||||||
<h4 class="card-title">Data {{$title}}</h4>
|
@if(permission('is_create', $route.'.*','module',false) || permission('is_update', $route.'.*','module',false))
|
||||||
|
<a href="{{route($route.'.update')}}" class="p-2 border border-slate-200 rounded-xl hover:bg-slate-50 transition-colors flex items-center text-sm font-semibold text-slate-600">
|
||||||
|
<i data-lucide="plus" class="w-4 h-4 mr-2"></i> <span>Tambah Data</span>
|
||||||
|
</a>
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<table class="w-full text-left border-collapse"
|
||||||
<div class="p-6">
|
data-search="true"
|
||||||
<div id="toolbar">
|
data-toggle="table"
|
||||||
<a href="{{route($route.'.create')}}" class="btn bg-success text-white"><i class="ri-add-line"></i> Tambah Data</a>
|
data-pagination="true"
|
||||||
</div>
|
data-toolbar="#toolbar"
|
||||||
<table class="gridjs-table"
|
data-show-refresh="true"
|
||||||
data-search="true"
|
data-url="{{route($route.'.grid')}}"
|
||||||
data-toggle="table"
|
data-sort-name="ids"
|
||||||
data-pagination="true"
|
data-sort-order="desc"
|
||||||
data-toolbar="#toolbar"
|
data-page-size="10"
|
||||||
data-show-refresh="false"
|
data-id-field="id"
|
||||||
data-url="{{route($route.'.grid')}}"
|
id="grid-data">
|
||||||
data-sort-name="ids"
|
<thead class="bg-slate-50/50 border-b border-slate-100">
|
||||||
data-sort-order="desc"
|
<tr>
|
||||||
data-page-size="10"
|
<th class="px-6 py-4 text-[10px] font-bold text-slate-400 uppercase tracking-widest" data-width="10" data-field="action">#</th>
|
||||||
data-id-field="id"
|
<th class="px-6 py-4 text-[10px] font-bold text-slate-400 uppercase tracking-widest" data-width="10" data-field="no">No</th>
|
||||||
id="grid-data">
|
<th class="px-6 py-4 text-[10px] font-bold text-slate-400 uppercase tracking-widest" data-field="name">Name</th>
|
||||||
<thead class="gridjs-thead">
|
</tr>
|
||||||
<tr class="gridjs-tr bg-primary-light">
|
</thead>
|
||||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="action">#</th>
|
<tbody></tbody>
|
||||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="no">No</th>
|
</table>
|
||||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="name">Name</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody class="gridjs-tbody"></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
@section('js')
|
@section('js')
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
|
||||||
|
|
@ -1,98 +1,83 @@
|
||||||
@extends('layouts.master')
|
@extends('layouts.master')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="flex flex-col gap-6">
|
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
|
||||||
<div class="card">
|
<div class="p-8 bg-white rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
|
||||||
<div class="card-header">
|
|
||||||
<div class="flex justify-between items-center">
|
|
||||||
<h4 class="card-title">{{$title}}</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<form action="{{route($route.'.store')}}" method="POST" class="" enctype="multipart/form-data">
|
<form action="{{route($route.'.store')}}" method="POST" class="" enctype="multipart/form-data">
|
||||||
{{csrf_field()}}
|
{{csrf_field()}}
|
||||||
<input type="hidden" name="secure_id" value="{{@$keyId}}">
|
<input type="hidden" name="secure_id" value="{{@$keyId}}">
|
||||||
<div class="p-6">
|
<div class="flex flex-col p-3 gap-3">
|
||||||
<div class="card border rounded mb-5">
|
<h5 class="text-lg text-slate-700 font-bold">Informasi Instansi Dataset</h5>
|
||||||
<div class="card-header">
|
<hr>
|
||||||
<h5 class="font-bold text-md">Informasi Instansi Dataset</h5>
|
<div class="flex gap-4 mt-5">
|
||||||
</div>
|
<label class="mb-3 w-1/2 font-semibold required">Instansi</label>
|
||||||
<div class="card-body p-5">
|
<select name="instansi_id" required class="p-2 border rounded w-full instansi_id select2 @error('instansi_id') is-invalid @enderror" id="">
|
||||||
<div class="grid lg:grid-cols-1 gap-3">
|
<option value="">-</option>
|
||||||
<div class="">
|
@foreach($instansi as $dataInstansi)
|
||||||
<label class="mb-3 required">Instansi</label>
|
<option {{@$item->instansi_id == $dataInstansi->MsInstansiId ? 'selected' : ''}} value="{{encode_id($dataInstansi->MsInstansiId)}}">{{$dataInstansi->name}}</option>
|
||||||
<select name="instansi_id" required class="form-input instansi_id select2 @error('instansi_id') is-invalid @enderror" id="">
|
@endforeach
|
||||||
<option value="">-</option>
|
</select>
|
||||||
@foreach($instansi as $dataInstansi)
|
@error('instansi_id')
|
||||||
<option {{@$item->instansi_id == $dataInstansi->MsInstansiId ? 'selected' : ''}} value="{{encode_id($dataInstansi->MsInstansiId)}}">{{$dataInstansi->name}}</option>
|
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||||
@endforeach
|
@enderror
|
||||||
</select>
|
|
||||||
@error('instansi_id')
|
|
||||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
<div class="">
|
|
||||||
<label class="mb-3 required">Resource Data</label>
|
|
||||||
<select name="template_id" required class="form-input template_id select2 @error('template_id') is-invalid @enderror" id="">
|
|
||||||
<option value="">-</option>
|
|
||||||
@foreach($template as $dataTemplate)
|
|
||||||
<option {{@$item->template_id == $dataTemplate->MsTemplateId ? 'selected' : ''}} data-template="{{asset($dataTemplate->template_url)}}" value="{{encode_id($dataTemplate->MsTemplateId)}}">{{$dataTemplate->name}}</option>
|
|
||||||
@endforeach
|
|
||||||
</select>
|
|
||||||
@error('template_id')
|
|
||||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="grid lg:grid-cols-1 gap-3">
|
<div class="flex gap-4">
|
||||||
<div class="mb-3">
|
<label class="mb-3 w-1/2 font-semibold required">Resource Data</label>
|
||||||
<label class="mb-3 required">Nama Dataset</label>
|
<select name="template_id" required class="p-2 border rounded w-full template_id select2 @error('template_id') is-invalid @enderror" id="">
|
||||||
<input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="form-input @error('name') is-invalid @enderror" placeholder="Masukan Nama Dataset" required>
|
<option value="">-</option>
|
||||||
<small><i>*Harap perhatikan nama dataset yang Anda buat. Pastikan tidak ada duplikasi dataset dengan menekan tombol Cek Data.</i></small>
|
@foreach($template as $dataTemplate)
|
||||||
@error('name')
|
<option {{@$item->template_id == $dataTemplate->MsTemplateId ? 'selected' : ''}} data-template="{{asset($dataTemplate->template_url)}}" value="{{encode_id($dataTemplate->MsTemplateId)}}">Tabel {{$dataTemplate->nomor_tabel}} - {{$dataTemplate->name}}</option>
|
||||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
@endforeach
|
||||||
@enderror
|
</select>
|
||||||
</div>
|
@error('template_id')
|
||||||
|
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<h5 class="text-lg text-slate-700 font-bold">Informasi Dataset</h5>
|
||||||
|
<hr>
|
||||||
|
<div class="flex gap-4 mt-5">
|
||||||
|
<label class="mb-3 w-1/2 font-semibold required">Nama Dataset</label>
|
||||||
|
<input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="p-2 border rounded w-full @error('name') is-invalid @enderror" placeholder="Masukan Nama Dataset" required>
|
||||||
|
@error('name')
|
||||||
|
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||||
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="flex gap-4">
|
||||||
<label class="mb-3 required">Upload File</label>
|
<label class="mb-3 w-1/2 font-semibold required">Upload File</label>
|
||||||
<input type="file" accept=".xls,.xlsx" value="{{@$item->file ? @$item->file : old('file')}}" name="file" class="form-input @error('file') is-invalid @enderror" placeholder="Masukan File Dataset" {{@$item->file ? '' : 'required'}}>
|
<div class="flex flex-col w-full justify-center items-start gap-2">
|
||||||
<small><i>Masukan Ekstensi File : .xls,.xlsx</i></small>
|
<input type="file" accept=".xls,.xlsx" value="{{@$item->file ? @$item->file : old('file')}}" name="file" class="p-2 border rounded w-full @error('file') is-invalid @enderror" placeholder="Masukan File Dataset" {{@$item->file ? '' : 'required'}}>
|
||||||
@if(@$item->file)
|
<small><i>Masukan Ekstensi File : .xls,.xlsx</i></small>
|
||||||
<br>
|
@if(@$item->file)
|
||||||
<a href="{{asset('uploads/'.$item->file)}}" class="btn bg-success text-white mt-3"><i class="ri-download-line"></i> Download File</a>
|
<a href="{{asset('uploads/'.$item->file)}}" class="btn bg-success text-white mt-3"><i class="ri-download-line"></i> Download File</a>
|
||||||
@endif
|
@endif
|
||||||
|
</div>
|
||||||
@error('file')
|
@error('file')
|
||||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="flex gap-4">
|
||||||
<label class="mb-3 required">Deskripsi Dataset</label>
|
<label class="mb-3 w-1/2 font-semibold required">Deskripsi Dataset</label>
|
||||||
<textarea name="deskripsi" rows="10" required class="form-input @error('deskripsi') is-invalid @enderror" id="">{{@$item->deskripsi}}</textarea>
|
<textarea name="deskripsi" rows="10" required class="p-2 border rounded w-full @error('deskripsi') is-invalid @enderror" id="">{{@$item->deskripsi}}</textarea>
|
||||||
@error('deskripsi')
|
@error('deskripsi')
|
||||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="flex gap-4">
|
||||||
<label class="mb-3">Data Tahun</label>
|
<label class="mb-3 w-1/2 font-semibold required">Data Tahun</label>
|
||||||
<select name="tahun" class="form-input" id="">
|
<select name="tahun" class="p-2 border rounded w-full" id="">
|
||||||
<option value="{{@$item->tahun ? @$item->tahun : date('Y')}}">{{@$item->tahun ? @$item->tahun : date('Y')}}</option>
|
<option value="{{@$item->tahun ? @$item->tahun : date('Y')}}">{{@$item->tahun ? @$item->tahun : date('Y')}}</option>
|
||||||
{{-- @for($i = (date('Y')-5); date('Y') >= $i ; $i++) --}}
|
|
||||||
{{-- <option {{ (@$item ? (@$item->tahun == $i ? 'selected' : '') : ($i == date('Y') ? 'selected' : '') )}} value="{{$i}}">{{$i}}</option> --}}
|
|
||||||
{{-- @endfor --}}
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-6">
|
<div class="flex justify-center items-center gap-2">
|
||||||
<a href="{{route($route.'.index')}}" class="btn bg-danger text-white"><i class="ri-close-line"></i> Batal</a>
|
<a href="{{route($route.'.index')}}" class="bg-red-500 rounded py-2 px-3 text-white flex items-center"><i data-lucide="arrow-left" class="w-4 h-4 mr-2"></i><span>Batal</span></a>
|
||||||
<button type="submit" class="btn bg-success text-white"><i class="ri-save-line"></i> Simpan</button>
|
<button type="submit" class="bg-emerald-500 rounded py-2 px-3 text-white flex items-center"><i data-lucide="save" class="w-4 h-4 mr-2"></i><span> <span>Simpan</span></button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
@section('js')
|
@section('js')
|
||||||
<script>
|
<script>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
@endsection
|
@endsection
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
|
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
|
||||||
<div class="bg-white rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
|
<div class="bg-white p-8 rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
|
||||||
<div class="p-6 border-b border-slate-100 flex flex-col md:flex-row md:items-center justify-between gap-4">
|
<div class="p-6 border-b border-slate-100 flex flex-col md:flex-row md:items-center justify-between gap-4">
|
||||||
<div>
|
<div>
|
||||||
<h3 class="text-lg font-bold text-slate-900">{{$title}}</h3>
|
<h3 class="text-lg font-bold text-slate-900">{{$title}}</h3>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
@endsection
|
@endsection
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
|
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
|
||||||
<div class="bg-white rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
|
<div class="bg-white p-8 rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
|
||||||
<div class="p-6 border-b border-slate-100 flex flex-col md:flex-row md:items-center justify-between gap-4">
|
<div class="p-6 border-b border-slate-100 flex flex-col md:flex-row md:items-center justify-between gap-4">
|
||||||
<div>
|
<div>
|
||||||
<h3 class="text-lg font-bold text-slate-900">{{$title}}</h3>
|
<h3 class="text-lg font-bold text-slate-900">{{$title}}</h3>
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
<table class="w-full text-left border-collapse"
|
<table class="w-full text-left border-collapse"
|
||||||
data-search="false"
|
data-search="false"
|
||||||
data-toggle="table"
|
data-toggle="table"
|
||||||
data-pagination="false"
|
data-pagination="true"
|
||||||
data-toolbar="#toolbar"
|
data-toolbar="#toolbar"
|
||||||
data-show-refresh="false"
|
data-show-refresh="false"
|
||||||
data-url="{{route($route.'.grid')}}"
|
data-url="{{route($route.'.grid')}}"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue