diff --git a/app/Database/seeds/permissions.yml b/app/Database/seeds/permissions.yml index f6304354..a1fd89f6 100644 --- a/app/Database/seeds/permissions.yml +++ b/app/Database/seeds/permissions.yml @@ -39,3 +39,6 @@ - name: settings display_name: Settings description: Edit VA settings +- name: maintenance + display_name: Maintenance + description: Run maintenance tasks diff --git a/app/Http/Controllers/Admin/MaintenanceController.php b/app/Http/Controllers/Admin/MaintenanceController.php new file mode 100644 index 00000000..94d3c638 --- /dev/null +++ b/app/Http/Controllers/Admin/MaintenanceController.php @@ -0,0 +1,52 @@ +get('type'); + + // When clearing the application, clear the config and the app itself + if ($type === 'application' || $type === 'all') { + $calls[] = 'config:cache'; + $calls[] = 'cache:clear'; + $calls[] = 'route:cache'; + } + + // If we want to clear only the views but keep everything else + if ($type === 'views' || $type === 'all') { + $calls[] = 'view:clear'; + } + + foreach ($calls as $call) { + Artisan::call($call); + } + + Flash::success('Cache cleared!'); + return redirect(route('admin.maintenance.index')); + } +} diff --git a/app/Http/Routes/admin.php b/app/Http/Routes/admin.php index 766dbddf..a736e996 100644 --- a/app/Http/Routes/admin.php +++ b/app/Http/Routes/admin.php @@ -71,6 +71,10 @@ Route::group([ Route::match(['get'], 'settings', 'SettingsController@index'); Route::match(['post', 'put'], 'settings', 'SettingsController@update')->name('settings.update'); + // maintenance + Route::match(['get'], 'maintenance', 'MaintenanceController@index')->name('maintenance.index'); + Route::match(['post'], 'maintenance', 'MaintenanceController@cache')->name('maintenance.cache'); + // subfleet Route::get('subfleets/export', 'SubfleetController@export')->name('subfleets.export'); Route::match(['get', 'post'], 'subfleets/import', 'SubfleetController@import')->name('subfleets.import'); diff --git a/resources/views/admin/aircraft/fields.blade.php b/resources/views/admin/aircraft/fields.blade.php index ad9c014e..95b634e5 100644 --- a/resources/views/admin/aircraft/fields.blade.php +++ b/resources/views/admin/aircraft/fields.blade.php @@ -30,7 +30,6 @@ - diff --git a/resources/views/admin/maintenance/caches.blade.php b/resources/views/admin/maintenance/caches.blade.php new file mode 100644 index 00000000..ecf893b8 --- /dev/null +++ b/resources/views/admin/maintenance/caches.blade.php @@ -0,0 +1,29 @@ +
+
+
+
+  Reset Caches +
+
+
+ {{ Form::open(['route' => 'admin.maintenance.cache']) }} + {{ Form::hidden('type', 'all') }} + {{ Form::button('Clear all caches', ['type' => 'submit', 'class' => 'btn btn-success']) }} + {{ Form::close() }} +
+
+ {{ Form::open(['route' => 'admin.maintenance.cache']) }} + {{ Form::hidden('type', 'application') }} + {{ Form::button('Application', ['type' => 'submit', 'class' => 'btn btn-success']) }} + {{ Form::close() }} +
+
+ {{ Form::open(['route' => 'admin.maintenance.cache']) }} + {{ Form::hidden('type', 'views') }} + {{ Form::button('Views', ['type' => 'submit', 'class' => 'btn btn-success']) }} + {{ Form::close() }} +
+
+
+
+
diff --git a/resources/views/admin/maintenance/index.blade.php b/resources/views/admin/maintenance/index.blade.php new file mode 100644 index 00000000..4dec5ae3 --- /dev/null +++ b/resources/views/admin/maintenance/index.blade.php @@ -0,0 +1,12 @@ +@extends('admin.app') + +@section('title', 'Maintenance') +@section('content') + @include('flash::message') + +
+
+ @include('admin.maintenance.caches') +
+
+@endsection diff --git a/resources/views/admin/menu.blade.php b/resources/views/admin/menu.blade.php index 0d265f67..92508324 100644 --- a/resources/views/admin/menu.blade.php +++ b/resources/views/admin/menu.blade.php @@ -74,6 +74,10 @@ @ability('admin', 'settings')
  • settings
  • @endability + + @ability('admin', 'maintenance') +
  • maintenance
  • + @endability