@include('components.grid', [
'modelsList' => $modules,
'labels' => [__('modules.name'), __('modules.description'), __('modules.tags')],
'attributes' => [
'name',
'summary',
[
'lambda',
static function(\Gameap\Models\Modules\MarketplaceModule $module) {
return implode(', ', $module->tags);
}
],
],
'customActionsBefore' => static function(string $modelKey, \Gameap\Models\Modules\MarketplaceModule $module) use ($installedModules) {
$buttons = '';
if (!array_key_exists($module->id, $installedModules)) {
// Install Button
$buttons .= Form::submitButton([
'id' => 'install-module-' . $module->id,
'route' => route('modules.install'),
'data' => ['module' => $module->id, 'version' => $module->latestVersion],
'icon' => '',
'text' => __('modules.install'),
'class' => 'btn btn-success btn-sm'
]);
} else if (version_compare($module->latestVersion, $installedModules[$module->id], '>')) {
// Update Button
$buttons .= Form::submitButton([
'id' => 'update-module-' . $module->id,
'route' => route('modules.install'),
'data' => ['module' => $module->id, 'version' => $module->latestVersion],
'icon' => '',
'text' => __('modules.update'),
'class' => 'btn btn-warning btn-sm'
]);
} else {
$buttons .= '';
$buttons .= ' ' . __('modules.already_installed') . '';
$buttons .= '';
}
return $buttons;
}
])