diff --git a/app/Http/Controllers/BatchController.php b/app/Http/Controllers/BatchController.php index d5ad1127..bb2f4c34 100644 --- a/app/Http/Controllers/BatchController.php +++ b/app/Http/Controllers/BatchController.php @@ -164,4 +164,32 @@ public function instanceStore(StoreBatchInstanceRequest $request): RedirectRespo ->withErrors($errors); } + public function instancesList(Request $request): View { + $instanceController = new InstanceController(); + $statusList = $instanceController->getStatusList(); + + return view('admin.batch.instances') + ->with('statusList', $statusList); + } + + public function getInstancesData(Request $request) + { + return datatables() + ->of(Instance::query()) + ->addColumn('checkbox', function ($instance) { + return ''; + }) + ->rawColumns(['checkbox']) + ->make(true); + } + + public function updateStatus(Request $request) + { + $ids = $request->input('ids'); + $status = $request->input('status'); + + Instance::whereIn('id', $ids)->update(['status' => $status]); + + return response()->json(['message' => __('status.updated_successfully')]); + } } diff --git a/app/Http/Controllers/InstanceController.php b/app/Http/Controllers/InstanceController.php index 02fe91ca..b7bda3b3 100644 --- a/app/Http/Controllers/InstanceController.php +++ b/app/Http/Controllers/InstanceController.php @@ -322,6 +322,12 @@ public function getInstances(Request $request): JsonResponse { return new HtmlString('' . $instance->client->name . '
' . $instance->client->dns . ' - ' . $instance->client->code); }) + ->addColumn('client_code', function ($instance) { + return new HtmlString($instance->client->code); + }) + ->addColumn('client_dns', function ($instance) { + return new HtmlString($instance->client->dns); + }) ->addColumn('type', function ($instance) { return new HtmlString($instance->client->type->name . '
' . $instance->modelType->description); @@ -352,6 +358,10 @@ public function getInstances(Request $request): JsonResponse { ->addColumn('actions', static function ($instance) { return view('admin.instance.action', ['instance' => $instance]); }) + ->addColumn('checkbox', function ($instance) { + return ''; + }) + ->rawColumns(['checkbox']) ->make(); } diff --git a/lang/ca/common.php b/lang/ca/common.php index 8f35cb18..424e16ac 100644 --- a/lang/ca/common.php +++ b/lang/ca/common.php @@ -54,6 +54,9 @@ 'table' => 'Taula', 'chart' => 'Gràfic', 'disk_usage' => 'Ús de disc', + 'confirm_changes' => 'Confirma els canvis', + 'are_you_sure_to_change_statuses' => 'Esteu segur/a de voler canviar l\'estat dels elements seleccionats?', + 'change_statuses' => 'Canvia els estats' 'dashboard' => 'Tauler del centre', 'affected_rows' => 'Files afectades', ]; diff --git a/resources/views/admin/batch/instances.blade.php b/resources/views/admin/batch/instances.blade.php new file mode 100644 index 00000000..ebb86d8d --- /dev/null +++ b/resources/views/admin/batch/instances.blade.php @@ -0,0 +1,123 @@ +@extends('layout.default') + +@section('content') +
+ @include('menu.adminmenu') +
+ +
+

{{ __('instance.instance_list') }}

+ + @include('components.messages') + +
+ + +
+ + + + + + + + + + + + + + +
ID{{ __('client.name') }}{{ __('client.dns') }}{{ __('client.code') }}{{ __('instance.db_id') }}{{ __('common.status') }}{{ __('service.service') }} + +
+
+ + + + + +@endsection diff --git a/resources/views/menu/adminmenu.blade.php b/resources/views/menu/adminmenu.blade.php index c25d85dc..5cfc28c9 100644 --- a/resources/views/menu/adminmenu.blade.php +++ b/resources/views/menu/adminmenu.blade.php @@ -66,10 +66,15 @@
  • - url(), 'instance')) class="selected" @endif> + url(), 'instance') && !str_contains(request()->url(), 'instances')) class="selected" @endif> {{ __('batch.batch_creation') }}
  • +
  • + url(), 'instances')) class="selected" @endif> + {{ __('instance.instances') }} + +
  • @endif diff --git a/routes/web.php b/routes/web.php index ba14886d..38593221 100644 --- a/routes/web.php +++ b/routes/web.php @@ -92,6 +92,10 @@ Route::get('/batch/instance/create', [BatchController::class, 'instanceCreate'])->name('batch.instance.create'); Route::post('/batch/instance', [BatchController::class, 'instanceStore'])->name('batch.instance.store'); + Route::get('/batch/instances', [BatchController::class, 'instancesList'])->name('batch.instances.list'); + Route::get('/batch/instances/data', [BatchController::class, 'getInstancesData'])->name('batch.instances.data'); + Route::post('/batch/instances/update-status', [BatchController::class, 'updateStatus'])->name('batch.instances.updateStatus'); + Route::get('/files/{path?}', [DirectoryController::class, 'index'])->name('files.index'); Route::get('/files/download/{path}', [DirectoryController::class, 'download'])->name('files.download'); Route::post('/files/upload/{currentPath}', [DirectoryController::class, 'upload'])->name('files.upload');