@php use KFramework\Components\Visual\Button; use KFramework\Components\Visual\ButtonsGroup; use KFramework\Helpers\ReflectionHelper; use KFramework\Helpers\RolesHelper; use Laravel\SerializableClosure\SerializableClosure; $groupable = false; $groups = []; $searchable = false; $hideableSchema = []; $searchableCols = []; $columnsLabel = []; if(!empty($schema)) { foreach($schema as $item) { $itemHidden = $item->hidden ?? false; $itemAuthorize = $item->authorize ?? null; if($itemHidden instanceof SerializableClosure || $itemHidden instanceof \Closure) { $itemHidden = ReflectionHelper::reflectAnything($itemHidden, [], 'hidden'); } if($itemAuthorize instanceof SerializableClosure || $itemAuthorize instanceof \Closure) { $itemAuthorize = ReflectionHelper::reflectAnything($itemAuthorize, [], 'authorize'); } if($itemHidden) { continue; } if($itemAuthorize === false) { continue; } if(config('k-framework.roles.enabled', false) && isset($itemAuthorize) && !RolesHelper::hasPermission($itemAuthorize)) { continue; } if(isset($item->groupable) && $item->groupable) { $groupable = true; $groups[$item->name] = ($item->label ?? $item->name); } if(isset($item->searchable) && $item->searchable) { $searchable = true; $searchableCols[$item->name] = $item->label ?? $item->name; } $columnsLabel[$item->name] = $item->label ?? $item->name; } } foreach($columnsLabel as $key => $col) { $hideableSchema[] = \KFramework\Components\Visual\Button::make($col) ->setType('badge') ->setColor('primary') ->setPreIcon('eye-outline') ->setOnClick('kfwTableHideColumn(\'' . $uuid .'\',\'' . $key .'\')'); } @endphp
| @endif @if(isset($accordableSchema)) | @endif @if($buttons && !empty($buttons)) | @endif @foreach($schema as $column) {!! $column->setCustomProperty('kfw_orderable_column_table', $orderableColumns) !!} @endforeach | |
|---|---|---|---|
|
@php
$buttonsHTML = ' ';
foreach ($buttons as $button) {
if (!is_object($button)) {
continue;
}
$buttonInstance = clone $button;
if ($buttonInstance instanceof Button) {
$buttonInstance->setCustomProperty('kfw_original_uuid', $button->uuid);
$buttonInstance->setCustomProperty('kfw_table_uuid', $uuid);
} elseif ($buttonInstance instanceof ButtonsGroup && !empty($buttonInstance->schema)) {
foreach ($buttonInstance->schema as $key => $groupButton) {
if (is_object($groupButton)) {
$groupButton->setCustomProperty('kfw_original_uuid', $button->schema[$key]->uuid);
$groupButton->setCustomProperty('kfw_table_uuid', $uuid);
}
}
}
if (method_exists($buttonInstance, 'executeCallbacks')) {
$buttonInstance->executeCallbacks([
'record' => $value,
]);
}
$buttonsHTML .= $buttonInstance;
}
$buttonsHTML .= ' ';
@endphp
{!! $buttonsHTML !!}
|
@endif
@php
$kfwFlexibleColumnsCount = collect($schema)->filter(function ($column) {
return !(isset($column->maxContent) && $column->maxContent);
})->count();
$kfwFlexibleColumnWidth = $kfwFlexibleColumnsCount > 0 ? (100 / $kfwFlexibleColumnsCount) . '%' : 'auto';
@endphp
@foreach($schema as $column)
@if(isset($column->value) && isset($column->name) && isset($value[$column->name]))
maxContent) && $column->maxContent) style="width: max-content; min-width: max-content; max-width: max-content; white-space: nowrap;" @else style="width: {{ $kfwFlexibleColumnWidth }}; min-width: 0;" @endif>{!! \KFramework\Helpers\ReflectionHelper::reflectAnything($column->value, ['record' => $value]) !!} | @elseif(isset($column->name) && isset($value[$column->name]))maxContent) && $column->maxContent) style="width: max-content; min-width: max-content; max-width: max-content; white-space: nowrap;" @else style="width: {{ $kfwFlexibleColumnWidth }}; min-width: 0;" @endif>{!! $value[$column->name] !!} | @elsemaxContent) && $column->maxContent) style="width: max-content; min-width: max-content; max-width: max-content; white-space: nowrap;" @else style="width: {{ $kfwFlexibleColumnWidth }}; min-width: 0;" @endif> | @endif @endforeach