fixes
This commit is contained in:
@@ -17,9 +17,19 @@ class CustomerAddressesDataTable extends DataTable
|
|||||||
|
|
||||||
public function query(CustomerAddress $model)
|
public function query(CustomerAddress $model)
|
||||||
{
|
{
|
||||||
|
$model = self::filterByCustomer($model);
|
||||||
|
|
||||||
return $this->buildQuery($model);
|
return $this->buildQuery($model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function filterByCustomer($model, $customerId = false)
|
||||||
|
{
|
||||||
|
$customerId = $customerId ? $customerId : self::isFilteredByField('customer_id');
|
||||||
|
|
||||||
|
return $customerId ? $model->byCustomer($customerId) : $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
protected function getColumns()
|
protected function getColumns()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
|||||||
26
app/Http/Controllers/Admin/Core/Mail/MailLogController.php
Normal file
26
app/Http/Controllers/Admin/Core/Mail/MailLogController.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin\Core\Mail;
|
||||||
|
|
||||||
|
use App\Datatables\Admin\Core\Mail\MailLogsDataTable;
|
||||||
|
use App\Repositories\Core\Mail\MailLogs;
|
||||||
|
|
||||||
|
class MailLogController extends Controller
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
// $this->middleware('ability:admin');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function index(MailLogsDataTable $dataTable)
|
||||||
|
{
|
||||||
|
return $dataTable->render('admin.Core.Mail.MailLog.index', $data ?? []);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
$data['message'] = MailLogs::getParsed($id);
|
||||||
|
|
||||||
|
return view('admin.Core.Mail.MailLog.modal', $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,7 +10,7 @@ class CustomerAddressController extends Controller
|
|||||||
{
|
{
|
||||||
public function index(CustomerAddressesDataTable $dataTable)
|
public function index(CustomerAddressesDataTable $dataTable)
|
||||||
{
|
{
|
||||||
return $dataTable->render('Admin.Shop.Customers.list');
|
return $dataTable->render('Admin.Shop.CustomerAddresses.list');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create()
|
public function create()
|
||||||
|
|||||||
24
app/Http/Controllers/Admin/Shop/DashboardController.php
Normal file
24
app/Http/Controllers/Admin/Shop/DashboardController.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin\Shop;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Repositories\Shop\Dashboards;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class DashboardController extends Controller
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$data = $request->all();
|
||||||
|
$data = Dashboards::getStats($data);
|
||||||
|
dump($data);
|
||||||
|
|
||||||
|
return view('Admin.Shop.Dashboard.index', $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
75
app/Http/Controllers/Admin/Shop/PriceListValueController.php
Normal file
75
app/Http/Controllers/Admin/Shop/PriceListValueController.php
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin\Shop;
|
||||||
|
|
||||||
|
use App\Datatables\Shop\PriceListValuesDataTable;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Repositories\Shop\Packages;
|
||||||
|
use App\Repositories\Shop\PriceListValueCategories;
|
||||||
|
use App\Repositories\Shop\PriceListValues;
|
||||||
|
use App\Repositories\Shop\Taxes;
|
||||||
|
use App\Repositories\Shop\Unities;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class PriceListValueController extends Controller
|
||||||
|
{
|
||||||
|
public function index(PriceListValuesDataTable $dataTable)
|
||||||
|
{
|
||||||
|
$data['categories'] = PriceListValueCategories::getOptions();
|
||||||
|
|
||||||
|
return $dataTable->render('Admin.Shop.PriceListValues.list', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
$data['unities'] = Unities::getOptions();
|
||||||
|
$data['taxes_options'] = Taxes::getOptions();
|
||||||
|
$data['categories'] = PriceListValueCategories::getOptions();
|
||||||
|
|
||||||
|
return view('Admin.Shop.PriceListValues.create', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data['generic'] = PriceListValues::getFull($id)->toArray();
|
||||||
|
$data['packages'] = Packages::getSelectByFamily($data['generic']['category']['article_family_id']);
|
||||||
|
$data['unities'] = ($data['packages']['id'] ?? false) ? Unities::getSelectByPackage($data['packages']['id']) : [];
|
||||||
|
$data['taxes_options'] = Taxes::getOptions();
|
||||||
|
$data['categories'] = PriceListValueCategories::getOptions();
|
||||||
|
|
||||||
|
return view('Admin.Shop.PriceListValues.edit', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$ret = PriceListValues::store($request->all());
|
||||||
|
|
||||||
|
return redirect()->route('Admin.Shop.PriceListValues.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
$data = PriceListValues::get($id);
|
||||||
|
|
||||||
|
return view('Admin.Shop.PriceListValues.view', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
return PriceListValues::destroy($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPrice($id)
|
||||||
|
{
|
||||||
|
$data['generic'] = PriceListValues::getFull($id);
|
||||||
|
|
||||||
|
return view('Admin.Shop.PriceListValues.partials.table-prices', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addPrice($index)
|
||||||
|
{
|
||||||
|
$data['index'] = $index;
|
||||||
|
|
||||||
|
return view('Admin.Shop.PriceListValues.partials.row_price', $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,24 +3,35 @@
|
|||||||
namespace App\Http\Controllers\Shop\Auth;
|
namespace App\Http\Controllers\Shop\Auth;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Requests\Shop\RegisterCustomer;
|
||||||
use App\Repositories\Shop\CustomerAddresses;
|
use App\Repositories\Shop\CustomerAddresses;
|
||||||
use App\Repositories\Shop\Customers;
|
use App\Repositories\Shop\Customers;
|
||||||
use Illuminate\Foundation\Auth\EmailVerificationRequest;
|
use Illuminate\Foundation\Auth\EmailVerificationRequest;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Sebastienheyd\Boilerplate\Rules\Password;
|
||||||
|
|
||||||
|
|
||||||
class RegisterController extends Controller
|
class RegisterController extends Controller
|
||||||
{
|
{
|
||||||
protected $redirectTo;
|
protected $redirectTo;
|
||||||
|
|
||||||
public function showRegistrationForm()
|
public function showRegistrationForm(Request $request)
|
||||||
{
|
{
|
||||||
return view('Shop.auth.register');
|
return view('Shop.auth.register', ['customer' => $request->old()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function register(Request $request)
|
public function register(RegisterCustomer $request)
|
||||||
{
|
{
|
||||||
|
$validatedData = $request->validateWithBag('Errors', [
|
||||||
|
'last_name' => 'required|max:255',
|
||||||
|
'first_name' => 'required|max:255',
|
||||||
|
'email' => 'required|email|max:255|unique:shop_customers,email,NULL,id,deleted_at,NULL',
|
||||||
|
'password' => ['required', 'confirmed', new Password()],
|
||||||
|
|
||||||
|
]);
|
||||||
|
|
||||||
$user = $this->create($request->all());
|
$user = $this->create($request->all());
|
||||||
|
|
||||||
$this->guard()->login($user);
|
$this->guard()->login($user);
|
||||||
@@ -34,7 +45,7 @@ class RegisterController extends Controller
|
|||||||
|
|
||||||
return $request->wantsJson()
|
return $request->wantsJson()
|
||||||
? new JsonResponse([], 201)
|
? new JsonResponse([], 201)
|
||||||
: redirect($this->redirectPath());
|
: redirect('home');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function emailVerify()
|
public function emailVerify()
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ use Illuminate\Support\Facades\Auth;
|
|||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use LangleyFoxall\LaravelNISTPasswordRules\PasswordRules;
|
|
||||||
use Laratrust\Traits\LaratrustUserTrait;
|
use Laratrust\Traits\LaratrustUserTrait;
|
||||||
|
|
||||||
class Users
|
class Users
|
||||||
@@ -113,32 +112,6 @@ class Users
|
|||||||
return $user ? $user->hasRole($role) : false;
|
return $user ? $user->hasRole($role) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function hasPermission($permission, $user = false)
|
|
||||||
{
|
|
||||||
if (self::isAdmin()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
$user = $user ? $user : self::getUser();
|
|
||||||
$permissions = self::getPermissions($user);
|
|
||||||
|
|
||||||
return $user ? self::checkPermission($permissions, $permission) : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function checkPermission($permissions, $permission)
|
|
||||||
{
|
|
||||||
if (! strpos($permission, '*')) {
|
|
||||||
return in_array($permission, $permissions);
|
|
||||||
}
|
|
||||||
$permission = str_replace('*', '', $permission);
|
|
||||||
foreach ($permissions as $item) {
|
|
||||||
if (stripos($item, $permission) !== false) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getRoles($user = false)
|
public static function getRoles($user = false)
|
||||||
{
|
{
|
||||||
$user = $user ? $user : self::getUser();
|
$user = $user ? $user : self::getUser();
|
||||||
@@ -146,33 +119,6 @@ class Users
|
|||||||
return $user ? $user->roles->pluck('name')->toArray() : false;
|
return $user ? $user->roles->pluck('name')->toArray() : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getRolesToEdit()
|
|
||||||
{
|
|
||||||
return Roles::getListByRights();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getPermissions($user = false)
|
|
||||||
{
|
|
||||||
$user = $user ? $user : self::getUser();
|
|
||||||
|
|
||||||
return $user ? $user->allPermissions()->pluck('name')->toArray() : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getByTeam($id)
|
|
||||||
{
|
|
||||||
return User::byTeam($id)->get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getByUniqueTeam($id)
|
|
||||||
{
|
|
||||||
return User::byTeam($id)->byUniqueTeam()->get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function destroyByUniqueTeam($id)
|
|
||||||
{
|
|
||||||
return User::byTeam($id)->byUniqueTeam()->delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getAvatar($user_id)
|
public static function getAvatar($user_id)
|
||||||
{
|
{
|
||||||
$avatar = self::get($user_id)->avatar;
|
$avatar = self::get($user_id)->avatar;
|
||||||
@@ -224,11 +170,6 @@ class Users
|
|||||||
return User::find($id)->update(['password' => $password]);
|
return User::find($id)->update(['password' => $password]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function validate($username, $field = 'current_password')
|
|
||||||
{
|
|
||||||
return PasswordRules::changePassword($username, $field);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getModel()
|
public static function getModel()
|
||||||
{
|
{
|
||||||
return User::query();
|
return User::query();
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
@component('components.card')
|
<x-card>
|
||||||
@include('components.datatable', [
|
@include('components.datatable', [
|
||||||
'route' => route('Admin.Shop.CustomerAddresses.index'),
|
'route' => route('Admin.Shop.CustomerAddresses.index'),
|
||||||
'model' => 'customer_addresses',
|
'model' => 'customer_addresses',
|
||||||
|
'with_print' => false,
|
||||||
|
'with_filters' => false,
|
||||||
])
|
])
|
||||||
@endcomponent
|
<x-layout.modal title="Filtres" id="modal-customer_addresses-filters">
|
||||||
|
@include('Admin.Shop.CustomerAddresses.partials.filters', ['model' => 'customer_addresses'])
|
||||||
|
</x-layout.modal>
|
||||||
|
</x-card>
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<form id="{{ $model }}-filters">
|
||||||
|
<input type="text" name="customer_id" value="{{ $customer['id'] ?? false }}">
|
||||||
|
</form>
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
f{{ Form::open(['route' => 'Admin.Shop.Customers.store', 'id' => 'customer-form', 'autocomplete' => 'off']) }}
|
|
||||||
<input type="hidden" name="id" value="{{ $customer['id'] ?? false }}">
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
|
{{ Form::open(['route' => 'Admin.Shop.Customers.store', 'id' => 'customer-form', 'autocomplete' => 'off']) }}
|
||||||
|
<input type="hidden" name="id" value="{{ $customer['id'] ?? false }}">
|
||||||
<x-card>
|
<x-card>
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@@ -113,13 +112,13 @@ f{{ Form::open(['route' => 'Admin.Shop.Customers.store', 'id' => 'customer-form'
|
|||||||
</div>
|
</div>
|
||||||
</x-card>
|
</x-card>
|
||||||
</div>
|
</div>
|
||||||
|
</form>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<x-layout.box-collapse title='Adresses' id='form-customer-address'>
|
<x-layout.box-collapse title='Adresses' id='form-customer-address'>
|
||||||
@include('Admin.Shop.CustomerAddresses.list', ['dataTable' => $customer_addresses])
|
@include('Admin.Shop.CustomerAddresses.list', ['dataTable' => $customer_addresses])
|
||||||
</x-layout.box-collapse>
|
</x-layout.box-collapse>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
|
|
||||||
<x-save />
|
<x-save />
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
'route' => route('Admin.Shop.Customers.index'),
|
'route' => route('Admin.Shop.Customers.index'),
|
||||||
'model' => 'customers',
|
'model' => 'customers',
|
||||||
'with_filters' => true,
|
'with_filters' => true,
|
||||||
|
'with_print' => false,
|
||||||
])
|
])
|
||||||
<x-layout.modal title="Filtres" id="modal-customers-filters">
|
<x-layout.modal title="Filtres" id="modal-customers-filters">
|
||||||
@include('Admin.Shop.Customers.partials.filters', ['model' => 'customers'])
|
@include('Admin.Shop.Customers.partials.filters', ['model' => 'customers'])
|
||||||
|
|||||||
@@ -1,9 +1,20 @@
|
|||||||
|
@if ($errors->any())
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
<ul>
|
||||||
|
@foreach ($errors->all() as $error)
|
||||||
|
<li>{{ $error }}</li>
|
||||||
|
@endforeach
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@include('components.form.input', [
|
@include('components.form.input', [
|
||||||
'name' => 'first_name',
|
'name' => 'first_name',
|
||||||
'value' => $customer['first_name'] ?? '',
|
'value' => $customer['first_name'] ?? '',
|
||||||
'label' => 'Prénom',
|
'label' => 'Prénom',
|
||||||
|
'required' => true,
|
||||||
])
|
])
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
@@ -11,6 +22,7 @@
|
|||||||
'name' => 'last_name',
|
'name' => 'last_name',
|
||||||
'value' => $customer['last_name'] ?? '',
|
'value' => $customer['last_name'] ?? '',
|
||||||
'label' => 'Nom',
|
'label' => 'Nom',
|
||||||
|
'required' => true,
|
||||||
])
|
])
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{!! Form::open(['route' => 'Shop.register.post', 'method' => 'post', 'autocomplete'=> 'off']) !!}
|
{!! Form::open(['route' => 'Shop.register.post', 'method' => 'post', 'autocomplete' => 'off']) !!}
|
||||||
<div class="row green">
|
<div class="row green">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<x-card title='Créez votre compte' class='mt-3 mb-3'>
|
<x-card title='Créez votre compte' class='mt-3 mb-3'>
|
||||||
|
|
||||||
@@ -8,16 +8,24 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group {{ $errors->has('password') ? 'has-error' : '' }}">
|
<div class="form-group {{ $errors->has('password') ? 'has-error' : '' }}">
|
||||||
<label>Mot de passe</label>
|
<label>Mot de passe *</label>
|
||||||
{{ Form::password('password', ['class' => 'form-control', 'placeholder' => __('boilerplate::auth.fields.password'), 'required']) }}
|
{{ Form::password('password', [
|
||||||
{!! $errors->first('password','<p class="text-danger"><strong>:message</strong></p>') !!}
|
'class' => 'form-control',
|
||||||
|
'placeholder' => __('boilerplate::auth.fields.password'),
|
||||||
|
'required',
|
||||||
|
]) }}
|
||||||
|
{!! $errors->first('password', '<p class="text-danger"><strong>:message</strong></p>') !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<label>Confirmation du mot de passe</label>
|
<label>Confirmation du mot de passe *</label>
|
||||||
<div class="form-group {{ $errors->has('password_confirmation') ? 'has-error' : '' }}">
|
<div class="form-group {{ $errors->has('password_confirmation') ? 'has-error' : '' }}">
|
||||||
{{ Form::password('password_confirmation', ['class' => 'form-control', 'placeholder' => __('boilerplate::auth.fields.password_confirm'), 'required']) }}
|
{{ Form::password('password_confirmation', [
|
||||||
{!! $errors->first('password_confirmation','<p class="text-danger"><strong>:message</strong></p>') !!}
|
'class' => 'form-control',
|
||||||
|
'placeholder' => __('boilerplate::auth.fields.password_confirm'),
|
||||||
|
'required',
|
||||||
|
]) }}
|
||||||
|
{!! $errors->first('password_confirmation', '<p class="text-danger"><strong>:message</strong></p>') !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -36,7 +44,7 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
@include('Shop.Customers.partials.address', [
|
@include('Shop.Customers.partials.address', [
|
||||||
'label' => 'Adresse de livraison',
|
'label' => 'Adresse de livraison',
|
||||||
'prefix' => 'delivery_'
|
'prefix' => 'delivery_',
|
||||||
])
|
])
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -52,7 +60,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@push('js')
|
@push('js')
|
||||||
|
|||||||
@@ -20,7 +20,12 @@
|
|||||||
|
|
||||||
@if (isset($left_buttons))
|
@if (isset($left_buttons))
|
||||||
@foreach ($left_buttons as $button)
|
@foreach ($left_buttons as $button)
|
||||||
@include('components.form.button', ['class' => $button['class'] ?? null, 'icon' => $button['icon'] ?? null, 'txt' => $button['txt'] ?? null, 'id' => $button['id'] ?? null ])
|
@include('components.form.button', [
|
||||||
|
'class' => $button['class'] ?? null,
|
||||||
|
'icon' => $button['icon'] ?? null,
|
||||||
|
'txt' => $button['txt'] ?? null,
|
||||||
|
'id' => $button['id'] ?? null,
|
||||||
|
])
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,12 @@
|
|||||||
<div class="col-lg-2 col-md-1 col-6 text-right">
|
<div class="col-lg-2 col-md-1 col-6 text-right">
|
||||||
@if (isset($right_buttons))
|
@if (isset($right_buttons))
|
||||||
@foreach ($right_buttons as $button)
|
@foreach ($right_buttons as $button)
|
||||||
@include('components.form.button', ['class' => $button['class'] ?? null, 'icon' => $button['icon'] ?? null, 'txt' => $button['txt'] ?? null, 'id' => $button['id'] ?? null ])
|
@include('components.form.button', [
|
||||||
|
'class' => $button['class'] ?? null,
|
||||||
|
'icon' => $button['icon'] ?? null,
|
||||||
|
'txt' => $button['txt'] ?? null,
|
||||||
|
'id' => $button['id'] ?? null,
|
||||||
|
])
|
||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@@ -19,7 +24,7 @@
|
|||||||
{!! $right_content !!}
|
{!! $right_content !!}
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (!(isset($with_add) && (!$with_add)))
|
@if (!(isset($with_add) && !$with_add))
|
||||||
@include('components.datatables.buttons.add')
|
@include('components.datatables.buttons.add')
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
<script>
|
<script>
|
||||||
|
$('#{{ $model }}-table').on('draw.dt', function() {
|
||||||
$('#{{ $model }}-table').on( 'draw.dt', function () {
|
|
||||||
|
|
||||||
var table = getDatatable("{{ $model }}");
|
var table = getDatatable("{{ $model }}");
|
||||||
|
|
||||||
$('#{{ $model }}-table .btn-edit').off('click').click(function(e) {
|
$('#{{ $model }}-table .btn-edit').off('click').click(function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
// var id = table.row(this).id();
|
|
||||||
var id = $(this).data('id');
|
var id = $(this).data('id');
|
||||||
@if (isset($edit_callback))
|
@if (isset($edit_callback))
|
||||||
{{ $edit_callback }}
|
{{ $edit_callback }}
|
||||||
@@ -18,7 +16,6 @@
|
|||||||
|
|
||||||
$('#{{ $model }}-table .btn-show').off('click').click(function(e) {
|
$('#{{ $model }}-table .btn-show').off('click').click(function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
// var id = table.row(this).id();
|
|
||||||
var id = $(this).data('id');
|
var id = $(this).data('id');
|
||||||
@if (isset($show_callback))
|
@if (isset($show_callback))
|
||||||
{{ $show_callback }}
|
{{ $show_callback }}
|
||||||
@@ -28,20 +25,20 @@
|
|||||||
@endif
|
@endif
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#{{ $model }}-table .btn-del').off('click').click(function (e) {
|
$('#{{ $model }}-table .btn-del').off('click').click(function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
// var id = table.row(this).id();
|
|
||||||
var id = $(this).data('id');
|
var id = $(this).data('id');
|
||||||
|
|
||||||
bootbox.confirm("{{ __('fg.confirmdelete') }}", function (result) {
|
bootbox.confirm("{{ __('fg.confirmdelete') }}", function(result) {
|
||||||
if (result === false) return;
|
if (result === false) return;
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '{{ $route }}' + '/destroy/' + id,
|
url: '{{ $route }}' + '/destroy/' + id,
|
||||||
method: 'delete',
|
method: 'delete',
|
||||||
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}'},
|
headers: {
|
||||||
success: function(){
|
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||||
// line.remove();
|
},
|
||||||
|
success: function() {
|
||||||
@if (isset($delete_callback))
|
@if (isset($delete_callback))
|
||||||
{{ $delete_callback }}
|
{{ $delete_callback }}
|
||||||
@else
|
@else
|
||||||
@@ -56,23 +53,5 @@
|
|||||||
{{ $callback ?? '' }}
|
{{ $callback ?? '' }}
|
||||||
|
|
||||||
var state = table.state.loaded();
|
var state = table.state.loaded();
|
||||||
// console.log('state');
|
|
||||||
// console.log(state);
|
|
||||||
if ( state ) {
|
|
||||||
/*
|
|
||||||
table.columns().eq( 0 ).each( function ( colIdx ) {
|
|
||||||
var colSearch = state.columns[colIdx].search;
|
|
||||||
if ( colSearch.search ) {
|
|
||||||
$('.search-input-text').eq(colIdx).val( colSearch.search );
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// datatablesHelper.getDatatableLength('{{ $model }}', 34);
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,30 @@
|
|||||||
@include('components.form.label')
|
@include('components.form.label')
|
||||||
|
|
||||||
@if (($disabled ?? false) || ($readonly ?? false))
|
@if (($disabled ?? false) || ($readonly ?? false))
|
||||||
@include('components.form.input', ['type' => 'hidden', 'label' => false, 'disabled' => false, 'readonly' => false])
|
@include('components.form.input', [
|
||||||
|
'type' => 'hidden',
|
||||||
|
'label' => false,
|
||||||
|
'disabled' => false,
|
||||||
|
'readonly' => false,
|
||||||
|
])
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<input type="{{ $type ?? 'text'}}" name="{{ $name }}" id="{{ $id_name ?? str_slug($name,'-') }}" class="form-control {{ $class ?? ''}}" value="{{ $value ?? null}}"
|
<input type="{{ $type ?? 'text' }}" name="{{ $name }}" id="{{ $id_name ?? str_slug($name, '-') }}"
|
||||||
@if ($required ?? false) required @endif
|
class="form-control {{ $class ?? '' }}" value="{{ $value ?? (old($name) ?? '') }}"
|
||||||
@if ($disabled ?? false) disabled @endif
|
@if ($required ?? false) required @endif @if ($disabled ?? false) disabled @endif
|
||||||
@if ($readonly ?? false) readonly @endif
|
@if ($readonly ?? false) readonly @endif @if ($autofocus ?? false) autofocus @endif
|
||||||
@if ($autofocus ?? false) autofocus @endif
|
@if ($size ?? false) size="{{ $size }}" @endif
|
||||||
@if ($size ?? false) size="{{ $size }}" @endif
|
@if ($autocomplete ?? false) autocomplete="{{ $autocomplete }}" @endif
|
||||||
@if ($autocomplete ?? false) autocomplete="{{ $autocomplete }}" @endif
|
@if ($minlength ?? false) minlength={{ $minlength }} @endif
|
||||||
@if ($minlength ?? false) minlength={{ $minlength }} @endif
|
@if ($maxlength ?? false) maxlength={{ $maxlength }} @endif
|
||||||
@if ($maxlength ?? false) maxlength={{ $maxlength }} @endif
|
@if ($formid ?? false) form="{{ $formid }}" @endif
|
||||||
@if ($formid ?? false) form="{{ $formid }}" @endif
|
@if ($mask ?? false) data-inputmask="'mask': '{{ $mask }}'" @endif
|
||||||
@if ($mask ?? false) data-inputmask="'mask': '{{ $mask }}'" @endif
|
@if ($pattern ?? false) pattern="{{ $pattern }}" @endif
|
||||||
@if ($pattern ?? false) pattern="{{ $pattern }}" @endif
|
@if ($placeholder ?? false) placeholder="{{ $placeholder }}" @endif
|
||||||
@if ($placeholder ?? false) placeholder="{{ $placeholder }}" @endif
|
@if ($step ?? false) step="{{ $step }}" @endif {!! $meta ?? '' !!}>
|
||||||
@if ($step ?? false) step="{{ $step }}" @endif
|
|
||||||
{!! $meta ?? '' !!} >
|
@error($name)
|
||||||
|
<span class="invalid-feedback" role="alert">
|
||||||
|
<strong>{{ $message }}</strong>
|
||||||
|
</span>
|
||||||
|
@enderror
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@if(!defined('LOAD_DATATABLES'))
|
@if (!defined('LOAD_DATATABLES'))
|
||||||
@push('css')
|
@push('css')
|
||||||
<link rel="stylesheet" href="{{ asset('assets/plugins/datatables.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/plugins/datatables.min.css') }}">
|
||||||
@endpush
|
@endpush
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
<script src="{{ asset('vendor/datatables/buttons.server-side.js') }}"></script>
|
<script src="{{ asset('vendor/datatables/buttons.server-side.js') }}"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$.extend( true, $.fn.dataTable.defaults, {
|
$.extend(true, $.fn.dataTable.defaults, {
|
||||||
language: {
|
language: {
|
||||||
url: "/assets/plugins/datatables_lang/{{ \App::getLocale() }}.json"
|
url: "/assets/plugins/datatables_lang/{{ \App::getLocale() }}.json"
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
function removeAccents ( data ) {
|
function removeAccents(data) {
|
||||||
if ( data.normalize ) {
|
if (data.normalize) {
|
||||||
return data +' '+ data.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
return data + ' ' + data.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadDatatable(name) {
|
function reloadDatatable(name) {
|
||||||
getDatatable(name).ajax.reload(null,false);
|
getDatatable(name).ajax.reload(null, false);
|
||||||
// getDatatable(name).columns.adjust().draw();
|
// getDatatable(name).columns.adjust().draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
for (item of tab) {
|
for (item of tab) {
|
||||||
if (item.value) {
|
if (item.value) {
|
||||||
var selector2 = selector + ' input[name="' + item.name + '"]';
|
var selector2 = selector + ' input[name="' + item.name + '"]';
|
||||||
var isHidden = ( $(selector2).attr('type') == 'hidden' );
|
var isHidden = ($(selector2).attr('type') == 'hidden');
|
||||||
if (!isHidden) hasValue = true;
|
if (!isHidden) hasValue = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -109,15 +109,14 @@
|
|||||||
(function() {
|
(function() {
|
||||||
var searchType = jQuery.fn.DataTable.ext.type.search;
|
var searchType = jQuery.fn.DataTable.ext.type.search;
|
||||||
|
|
||||||
searchType.string = function ( data ) {
|
searchType.string = function(data) {
|
||||||
return ! data ? '' : typeof data === 'string' ? removeAccents( data ) : data;
|
return !data ? '' : typeof data === 'string' ? removeAccents(data) : data;
|
||||||
};
|
};
|
||||||
|
|
||||||
searchType.html = function ( data ) {
|
searchType.html = function(data) {
|
||||||
return ! data ? '' : typeof data === 'string' ? removeAccents( data.replace( /<.*?>/g, '' ) ) : data;
|
return !data ? '' : typeof data === 'string' ? removeAccents(data.replace(/<.*?>/g, '')) : data;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user