@php
$access = (function() use ($crud, $button) {
if (isset($button->meta['access']) && $button->meta['access'] !== null && $button->meta['access'] !== false) {
return $button->meta['access'];
}
return !is_null($crud->get(Str::of($button->name)->studly().'.access')) ? Str::of($button->name)->studly() : $button->name;
})();
$icon = $button->meta['icon'] ?? '';
$label = $button->meta['label'] ?? Str::of($button->name)->headline();
$defaultHref = url($crud->route. ($entry?->getKey() ? '/'.$entry?->getKey().'/' : '/') . Str::of($button->name)->kebab());
$defaultClass = match ($button->stack) {
'line' => 'btn btn-sm btn-link',
'top' => 'btn btn-outline-primary',
'bottom' => 'btn btn-sm btn-secondary',
default => 'btn btn-outline-primary',
};
$wrapper = $button->meta['wrapper'] ?? [];
$wrapper['element'] = $wrapper['element'] ?? 'a';
$wrapper['href'] = $wrapper['href'] ?? $defaultHref;
if (is_a($wrapper['href'], \Closure::class, true)) {
$wrapper['href'] = ($wrapper['href'])($entry, $crud);
}
$wrapper['class'] = $wrapper['class'] ?? $defaultClass;
//if ajax enabled
$buttonAjaxConfiguration = $button->meta['ajax'] ?? false;
if($buttonAjaxConfiguration) {
$wrapper['data-route'] = $wrapper['href'];
$wrapper['data-method'] = $button->meta['ajax']['method'] ?? 'GET';
$wrapper['data-refresh-table'] = $button->meta['ajax']['refreshCrudTable'] ?? false;
$wrapper['href'] = 'javascript:void(0)';
$wrapper['onclick'] = 'sendQuickButtonAjaxRequest(this)';
$wrapper['data-button-type'] = 'quick-ajax';
//success message
$wrapper['data-success-title'] = $button->meta['ajax']['success_title'] ?? trans('backpack::crud.quick_button_ajax_success_title');
$wrapper['data-success-message'] = $button->meta['ajax']['success_message'] ?? trans('backpack::crud.quick_button_ajax_success_message');
//error message
$wrapper['data-error-title'] = $button->meta['ajax']['error_title'] ?? trans('backpack::crud.quick_button_ajax_error_title');
$wrapper['data-error-message'] = $button->meta['ajax']['error_message'] ?? trans('backpack::crud.quick_button_ajax_error_message');
}
//endif ajax enabled
@endphp
@if ($access === true || $crud->hasAccess($access, isset($entry) ? $entry : null))
<{{ $wrapper['element'] }}
bp-button="{{ $button->name }}"
@foreach ($wrapper as $attribute => $value)
@if (is_string($attribute))
{{ $attribute }}="{{ $value }}"
@endif
@endforeach
>
@if ($icon) @endif
{{ $label }}
{{ $wrapper['element'] }}>
@endif
@if($buttonAjaxConfiguration)
{{-- Button Javascript --}}
{{-- Pushed to the end of the page, after jQuery is loaded --}}
@push('after_scripts') @if (request()->ajax()) @endpush @endif
@bassetBlock('backpack/crud/buttons/quick-button.js')
@endBassetBlock
@if (!request()->ajax()) @endpush @endif
@endif