From 8242da88f3964dad1f8f6eaa415b613b1327fbc7 Mon Sep 17 00:00:00 2001 From: cuneytsenturk Date: Tue, 22 May 2018 12:18:34 +0300 Subject: [PATCH] close #352 Fixed: Not running migrations on module install --- app/Http/Controllers/Modules/Item.php | 24 +++++++++++++++++++-- app/Traits/Modules.php | 2 +- app/Utilities/Updater.php | 2 +- resources/views/modules/item/show.blade.php | 2 +- routes/web.php | 1 + 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Modules/Item.php b/app/Http/Controllers/Modules/Item.php index 2e182abcc..bedd378a4 100644 --- a/app/Http/Controllers/Modules/Item.php +++ b/app/Http/Controllers/Modules/Item.php @@ -7,6 +7,7 @@ use App\Models\Module\Module; use App\Models\Module\ModuleHistory; use App\Traits\Modules; use Artisan; +use Module as LModule; use Illuminate\Http\Request; class Item extends Controller @@ -147,8 +148,6 @@ class Item extends Controller $json = $this->installModule($path); if ($json['success']) { - Artisan::call('module:install', ['alias' => $json['data']['alias'], 'company_id' => session('company_id')]); - $message = trans('modules.installed', ['module' => $json['data']['name']]); flash($message)->success(); @@ -266,4 +265,25 @@ class Item extends Controller return redirect('apps/' . $alias)->send(); } + + /** + * Final actions post update. + * + * @param $alias + * @param $old + * @param $new + * @return Response + */ + public function post($alias) + { + Artisan::call('module:install', ['alias' => $alias, 'company_id' => session('company_id')]); + + $module = LModule::findByAlias($alias); + + $message = trans('modules.installed', ['module' => $module->get('name')]); + + flash($message)->success(); + + return redirect('apps/' . $alias); + } } diff --git a/app/Traits/Modules.php b/app/Traits/Modules.php index 3be0078d5..3d08e4332 100644 --- a/app/Traits/Modules.php +++ b/app/Traits/Modules.php @@ -241,7 +241,7 @@ trait Modules return [ 'success' => true, - 'installed' => true, + 'installed' => url("apps/post/" . $module->alias), 'errors' => false, 'data' => $data, ]; diff --git a/app/Utilities/Updater.php b/app/Utilities/Updater.php index d4de51a9c..a7a8a3fcc 100644 --- a/app/Utilities/Updater.php +++ b/app/Utilities/Updater.php @@ -137,7 +137,7 @@ class Updater $data['core'] = $version; } } else { - $module = Module::get($alias); + $module = Module::findByAlias($alias); // Up-to-date if (version_compare($module->get('version'), $version) == 0) { diff --git a/resources/views/modules/item/show.blade.php b/resources/views/modules/item/show.blade.php index a6a7ee2bf..da255406e 100644 --- a/resources/views/modules/item/show.blade.php +++ b/resources/views/modules/item/show.blade.php @@ -231,7 +231,7 @@ } if (json['installed']) { - window.location = '{{ url("apps/" . $module->slug) }}'; + window.location = json['installed']; } }, error: function(xhr, ajaxOptions, thrownError) { diff --git a/routes/web.php b/routes/web.php index 16abc173e..5b055aad6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -125,6 +125,7 @@ Route::group(['middleware' => 'language'], function () { Route::post('download', 'Modules\Item@download'); Route::post('unzip', 'Modules\Item@unzip'); Route::post('install', 'Modules\Item@install'); + Route::get('post/{alias}', 'Modules\Item@post'); Route::get('{alias}/uninstall', 'Modules\Item@uninstall'); Route::get('{alias}/enable', 'Modules\Item@enable'); Route::get('{alias}/disable', 'Modules\Item@disable');