Introduced a new Livewire component for statistics redirection and added a corresponding route to enhance navigation within the Proxmox extension. This update lays the groundwork for future statistics-related features.
340 lines
22 KiB
PHP
340 lines
22 KiB
PHP
<?php
|
|
$gridDirection = $getGridDirection() ?? 'column';
|
|
$isBulkToggleable = $isBulkToggleable();
|
|
$isDisabled = $isDisabled();
|
|
$isSearchable = $isSearchable();
|
|
$statePath = $getStatePath();
|
|
?>
|
|
|
|
<?php if (isset($component)) { $__componentOriginal511d4862ff04963c3c16115c05a86a9d = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal511d4862ff04963c3c16115c05a86a9d = $attributes; } ?>
|
|
<?php $component = Illuminate\View\DynamicComponent::resolve(['component' => $getFieldWrapperView()] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
|
<?php $component->withName('dynamic-component'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
|
<?php $attributes = $attributes->except(\Illuminate\View\DynamicComponent::ignoredParameterNames()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['field' => $field]); ?>
|
|
<div
|
|
x-data="{
|
|
areAllCheckboxesChecked: false,
|
|
|
|
checkboxListOptions: Array.from(
|
|
$root.querySelectorAll('.fi-fo-checkbox-list-option-label'),
|
|
),
|
|
|
|
search: '',
|
|
|
|
visibleCheckboxListOptions: [],
|
|
|
|
checkIfAllCheckboxesAreChecked: function () {
|
|
this.areAllCheckboxesChecked =
|
|
this.visibleCheckboxListOptions.length ===
|
|
this.visibleCheckboxListOptions.filter((checkboxLabel) =>
|
|
checkboxLabel.querySelector(
|
|
'input[type=checkbox]:checked, input[type=checkbox]:disabled',
|
|
),
|
|
).length
|
|
},
|
|
|
|
toggleAllCheckboxes: function () {
|
|
state = ! this.areAllCheckboxesChecked
|
|
|
|
this.visibleCheckboxListOptions.forEach((checkboxLabel) => {
|
|
checkbox = checkboxLabel.querySelector('input[type=checkbox]')
|
|
|
|
if (checkbox.disabled) {
|
|
return
|
|
}
|
|
|
|
checkbox.checked = state
|
|
checkbox.dispatchEvent(new Event('change'))
|
|
})
|
|
|
|
this.areAllCheckboxesChecked = state
|
|
},
|
|
|
|
updateVisibleCheckboxListOptions: function () {
|
|
this.visibleCheckboxListOptions = this.checkboxListOptions.filter(
|
|
(checkboxListItem) => {
|
|
if (
|
|
checkboxListItem
|
|
.querySelector('.fi-fo-checkbox-list-option-label')
|
|
?.innerText.toLowerCase()
|
|
.includes(this.search.toLowerCase())
|
|
) {
|
|
return true
|
|
}
|
|
|
|
return checkboxListItem
|
|
.querySelector('.fi-fo-checkbox-list-option-description')
|
|
?.innerText.toLowerCase()
|
|
.includes(this.search.toLowerCase())
|
|
},
|
|
)
|
|
},
|
|
}"
|
|
x-init="
|
|
updateVisibleCheckboxListOptions()
|
|
|
|
$nextTick(() => {
|
|
checkIfAllCheckboxesAreChecked()
|
|
})
|
|
|
|
Livewire.hook('commit', ({ component, commit, succeed, fail, respond }) => {
|
|
succeed(({ snapshot, effect }) => {
|
|
$nextTick(() => {
|
|
if (component.id !== <?php echo \Illuminate\Support\Js::from($this->getId())->toHtml() ?>) {
|
|
return
|
|
}
|
|
|
|
checkboxListOptions = Array.from(
|
|
$root.querySelectorAll('.fi-fo-checkbox-list-option-label'),
|
|
)
|
|
|
|
updateVisibleCheckboxListOptions()
|
|
|
|
checkIfAllCheckboxesAreChecked()
|
|
})
|
|
})
|
|
})
|
|
|
|
$watch('search', () => {
|
|
updateVisibleCheckboxListOptions()
|
|
checkIfAllCheckboxesAreChecked()
|
|
})
|
|
"
|
|
>
|
|
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if(! $isDisabled): ?>
|
|
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($isSearchable): ?>
|
|
<?php if (isset($component)) { $__componentOriginal505efd9768415fdb4543e8c564dad437 = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal505efd9768415fdb4543e8c564dad437 = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'filament::components.input.wrapper','data' => ['inlinePrefix' => true,'prefixIcon' => 'heroicon-m-magnifying-glass','prefixIconAlias' => 'forms:components.checkbox-list.search-field','class' => 'mb-4']] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
|
<?php $component->withName('filament::input.wrapper'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
|
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['inline-prefix' => true,'prefix-icon' => 'heroicon-m-magnifying-glass','prefix-icon-alias' => 'forms:components.checkbox-list.search-field','class' => 'mb-4']); ?>
|
|
<?php if (isset($component)) { $__componentOriginal9ad6b66c56a2379ee0ba04e1e358c61e = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal9ad6b66c56a2379ee0ba04e1e358c61e = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'filament::components.input.index','data' => ['inlinePrefix' => true,'placeholder' => $getSearchPrompt(),'type' => 'search','attributes' =>
|
|
\Filament\Support\prepare_inherited_attributes(
|
|
new \Illuminate\View\ComponentAttributeBag([
|
|
'x-model.debounce.' . $getSearchDebounce() => 'search',
|
|
])
|
|
)
|
|
]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
|
<?php $component->withName('filament::input'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
|
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['inline-prefix' => true,'placeholder' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getSearchPrompt()),'type' => 'search','attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(
|
|
\Filament\Support\prepare_inherited_attributes(
|
|
new \Illuminate\View\ComponentAttributeBag([
|
|
'x-model.debounce.' . $getSearchDebounce() => 'search',
|
|
])
|
|
)
|
|
)]); ?>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal9ad6b66c56a2379ee0ba04e1e358c61e)): ?>
|
|
<?php $attributes = $__attributesOriginal9ad6b66c56a2379ee0ba04e1e358c61e; ?>
|
|
<?php unset($__attributesOriginal9ad6b66c56a2379ee0ba04e1e358c61e); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal9ad6b66c56a2379ee0ba04e1e358c61e)): ?>
|
|
<?php $component = $__componentOriginal9ad6b66c56a2379ee0ba04e1e358c61e; ?>
|
|
<?php unset($__componentOriginal9ad6b66c56a2379ee0ba04e1e358c61e); ?>
|
|
<?php endif; ?>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal505efd9768415fdb4543e8c564dad437)): ?>
|
|
<?php $attributes = $__attributesOriginal505efd9768415fdb4543e8c564dad437; ?>
|
|
<?php unset($__attributesOriginal505efd9768415fdb4543e8c564dad437); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal505efd9768415fdb4543e8c564dad437)): ?>
|
|
<?php $component = $__componentOriginal505efd9768415fdb4543e8c564dad437; ?>
|
|
<?php unset($__componentOriginal505efd9768415fdb4543e8c564dad437); ?>
|
|
<?php endif; ?>
|
|
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
|
|
|
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($isBulkToggleable && count($getOptions())): ?>
|
|
<div
|
|
x-cloak
|
|
class="mb-2"
|
|
wire:key="<?php echo e($this->getId()); ?>.<?php echo e($getStatePath()); ?>.<?php echo e($field::class); ?>.actions"
|
|
>
|
|
<span
|
|
x-show="! areAllCheckboxesChecked"
|
|
x-on:click="toggleAllCheckboxes()"
|
|
wire:key="<?php echo e($this->getId()); ?>.<?php echo e($statePath); ?>.<?php echo e($field::class); ?>.actions.select-all"
|
|
>
|
|
<?php echo e($getAction('selectAll')); ?>
|
|
|
|
</span>
|
|
|
|
<span
|
|
x-show="areAllCheckboxesChecked"
|
|
x-on:click="toggleAllCheckboxes()"
|
|
wire:key="<?php echo e($this->getId()); ?>.<?php echo e($statePath); ?>.<?php echo e($field::class); ?>.actions.deselect-all"
|
|
>
|
|
<?php echo e($getAction('deselectAll')); ?>
|
|
|
|
</span>
|
|
</div>
|
|
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
|
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
|
|
|
<?php if (isset($component)) { $__componentOriginal30dbd75eb120a380110a2b340cd88f46 = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal30dbd75eb120a380110a2b340cd88f46 = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'filament::components.grid.index','data' => ['default' => $getColumns('default'),'sm' => $getColumns('sm'),'md' => $getColumns('md'),'lg' => $getColumns('lg'),'xl' => $getColumns('xl'),'twoXl' => $getColumns('2xl'),'direction' => $gridDirection,'xShow' => $isSearchable ? 'visibleCheckboxListOptions.length' : null,'attributes' =>
|
|
\Filament\Support\prepare_inherited_attributes($attributes)
|
|
->merge($getExtraAttributes(), escape: false)
|
|
->class([
|
|
'fi-fo-checkbox-list gap-4',
|
|
'-mt-4' => $gridDirection === 'column',
|
|
])
|
|
]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
|
<?php $component->withName('filament::grid'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
|
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['default' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getColumns('default')),'sm' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getColumns('sm')),'md' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getColumns('md')),'lg' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getColumns('lg')),'xl' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getColumns('xl')),'two-xl' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($getColumns('2xl')),'direction' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($gridDirection),'x-show' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($isSearchable ? 'visibleCheckboxListOptions.length' : null),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(
|
|
\Filament\Support\prepare_inherited_attributes($attributes)
|
|
->merge($getExtraAttributes(), escape: false)
|
|
->class([
|
|
'fi-fo-checkbox-list gap-4',
|
|
'-mt-4' => $gridDirection === 'column',
|
|
])
|
|
)]); ?>
|
|
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php $__empty_1 = true; $__currentLoopData = $getOptions(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $value => $label): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?>
|
|
<div
|
|
wire:key="<?php echo e($this->getId()); ?>.<?php echo e($statePath); ?>.<?php echo e($field::class); ?>.options.<?php echo e($value); ?>"
|
|
<?php if($isSearchable): ?>
|
|
x-show="
|
|
$el
|
|
.querySelector('.fi-fo-checkbox-list-option-label')
|
|
?.innerText.toLowerCase()
|
|
.includes(search.toLowerCase()) ||
|
|
$el
|
|
.querySelector('.fi-fo-checkbox-list-option-description')
|
|
?.innerText.toLowerCase()
|
|
.includes(search.toLowerCase())
|
|
"
|
|
<?php endif; ?>
|
|
class="<?php echo \Illuminate\Support\Arr::toCssClasses([
|
|
'break-inside-avoid pt-4' => $gridDirection === 'column',
|
|
]); ?>"
|
|
>
|
|
<label
|
|
class="fi-fo-checkbox-list-option-label flex gap-x-3"
|
|
>
|
|
<?php if (isset($component)) { $__componentOriginal087b30d649cc1cfb7e9ea8930c92d47d = $component; } ?>
|
|
<?php if (isset($attributes)) { $__attributesOriginal087b30d649cc1cfb7e9ea8930c92d47d = $attributes; } ?>
|
|
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'filament::components.input.checkbox','data' => ['valid' => ! $errors->has($statePath),'attributes' =>
|
|
\Filament\Support\prepare_inherited_attributes($getExtraInputAttributeBag())
|
|
->merge([
|
|
'disabled' => $isDisabled || $isOptionDisabled($value, $label),
|
|
'value' => $value,
|
|
'wire:loading.attr' => 'disabled',
|
|
$applyStateBindingModifiers('wire:model') => $statePath,
|
|
'x-on:change' => $isBulkToggleable ? 'checkIfAllCheckboxesAreChecked()' : null,
|
|
], escape: false)
|
|
->class(['mt-1'])
|
|
]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
|
|
<?php $component->withName('filament::input.checkbox'); ?>
|
|
<?php if ($component->shouldRender()): ?>
|
|
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
|
|
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
|
|
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
|
|
<?php endif; ?>
|
|
<?php $component->withAttributes(['valid' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(! $errors->has($statePath)),'attributes' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(
|
|
\Filament\Support\prepare_inherited_attributes($getExtraInputAttributeBag())
|
|
->merge([
|
|
'disabled' => $isDisabled || $isOptionDisabled($value, $label),
|
|
'value' => $value,
|
|
'wire:loading.attr' => 'disabled',
|
|
$applyStateBindingModifiers('wire:model') => $statePath,
|
|
'x-on:change' => $isBulkToggleable ? 'checkIfAllCheckboxesAreChecked()' : null,
|
|
], escape: false)
|
|
->class(['mt-1'])
|
|
)]); ?>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal087b30d649cc1cfb7e9ea8930c92d47d)): ?>
|
|
<?php $attributes = $__attributesOriginal087b30d649cc1cfb7e9ea8930c92d47d; ?>
|
|
<?php unset($__attributesOriginal087b30d649cc1cfb7e9ea8930c92d47d); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal087b30d649cc1cfb7e9ea8930c92d47d)): ?>
|
|
<?php $component = $__componentOriginal087b30d649cc1cfb7e9ea8930c92d47d; ?>
|
|
<?php unset($__componentOriginal087b30d649cc1cfb7e9ea8930c92d47d); ?>
|
|
<?php endif; ?>
|
|
|
|
<div class="grid text-sm leading-6">
|
|
<span
|
|
class="fi-fo-checkbox-list-option-label overflow-hidden break-words font-medium text-gray-950 dark:text-white"
|
|
>
|
|
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($isHtmlAllowed()): ?>
|
|
<?php echo $label; ?>
|
|
|
|
<?php else: ?>
|
|
<?php echo e($label); ?>
|
|
|
|
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
|
</span>
|
|
|
|
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($hasDescription($value)): ?>
|
|
<p
|
|
class="fi-fo-checkbox-list-option-description text-gray-500 dark:text-gray-400"
|
|
>
|
|
<?php echo e($getDescription($value)); ?>
|
|
|
|
</p>
|
|
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?>
|
|
<div
|
|
wire:key="<?php echo e($this->getId()); ?>.<?php echo e($statePath); ?>.<?php echo e($field::class); ?>.empty"
|
|
></div>
|
|
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal30dbd75eb120a380110a2b340cd88f46)): ?>
|
|
<?php $attributes = $__attributesOriginal30dbd75eb120a380110a2b340cd88f46; ?>
|
|
<?php unset($__attributesOriginal30dbd75eb120a380110a2b340cd88f46); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal30dbd75eb120a380110a2b340cd88f46)): ?>
|
|
<?php $component = $__componentOriginal30dbd75eb120a380110a2b340cd88f46; ?>
|
|
<?php unset($__componentOriginal30dbd75eb120a380110a2b340cd88f46); ?>
|
|
<?php endif; ?>
|
|
|
|
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php endif; ?><?php if($isSearchable): ?>
|
|
<div
|
|
x-cloak
|
|
x-show="search && ! visibleCheckboxListOptions.length"
|
|
class="fi-fo-checkbox-list-no-search-results-message text-sm text-gray-500 dark:text-gray-400"
|
|
>
|
|
<?php echo e($getNoSearchResultsMessage()); ?>
|
|
|
|
</div>
|
|
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
|
|
</div>
|
|
<?php echo $__env->renderComponent(); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__attributesOriginal511d4862ff04963c3c16115c05a86a9d)): ?>
|
|
<?php $attributes = $__attributesOriginal511d4862ff04963c3c16115c05a86a9d; ?>
|
|
<?php unset($__attributesOriginal511d4862ff04963c3c16115c05a86a9d); ?>
|
|
<?php endif; ?>
|
|
<?php if (isset($__componentOriginal511d4862ff04963c3c16115c05a86a9d)): ?>
|
|
<?php $component = $__componentOriginal511d4862ff04963c3c16115c05a86a9d; ?>
|
|
<?php unset($__componentOriginal511d4862ff04963c3c16115c05a86a9d); ?>
|
|
<?php endif; ?>
|
|
<?php /**PATH C:\Users\Owner\Virtnet.bond\vendor\filament\forms\resources\views\components\checkbox-list.blade.php ENDPATH**/ ?>
|