@php /** * @var $modules \Gameap\Models\Modules\MarketplaceModule[] * @var $installedModules array **/ @endphp @php($title = __('modules.marketplace')) @extends('layouts.main') @section('content') @include('components.form.errors_block') @include('modules.migrate_button')
@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; } ])
@endsection