From f3e54217fcd5f26e3f83ec93b809801d50464036 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Mon, 11 Jun 2018 11:19:30 +0300 Subject: [PATCH] enable/disable from index --- app/Http/Controllers/Auth/Users.php | 38 ++++++++++++ app/Http/Controllers/Common/Items.php | 38 ++++++++++++ app/Http/Controllers/Controller.php | 4 +- app/Http/Controllers/Settings/Categories.php | 54 +++++++++++++++++ app/Http/Controllers/Settings/Currencies.php | 59 +++++++++++++++++++ resources/lang/en-GB/general.php | 2 + resources/lang/en-GB/messages.php | 2 + resources/views/auth/users/index.blade.php | 7 ++- resources/views/common/items/index.blade.php | 9 ++- .../views/partials/admin/content.blade.php | 2 +- .../views/settings/categories/index.blade.php | 5 ++ .../views/settings/currencies/index.blade.php | 6 ++ routes/web.php | 8 +++ 13 files changed, 228 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Auth/Users.php b/app/Http/Controllers/Auth/Users.php index d33650a65..3f5016311 100644 --- a/app/Http/Controllers/Auth/Users.php +++ b/app/Http/Controllers/Auth/Users.php @@ -151,6 +151,44 @@ class Users extends Controller return redirect('auth/users'); } + /** + * Enable the specified resource. + * + * @param User $user + * + * @return Response + */ + public function enable(User $user) + { + $user->enabled = 1; + $user->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.users', 1)]); + + flash($message)->success(); + + return redirect()->route('users.index'); + } + + /** + * Disable the specified resource. + * + * @param User $user + * + * @return Response + */ + public function disable(User $user) + { + $user->enabled = 0; + $user->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.users', 1)]); + + flash($message)->success(); + + return redirect()->route('users.index'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Controllers/Common/Items.php b/app/Http/Controllers/Common/Items.php index 887691a0d..d38c43efd 100644 --- a/app/Http/Controllers/Common/Items.php +++ b/app/Http/Controllers/Common/Items.php @@ -170,6 +170,44 @@ class Items extends Controller return redirect()->route('items.index'); } + /** + * Enable the specified resource. + * + * @param Item $item + * + * @return Response + */ + public function enable(Item $item) + { + $item->enabled = 1; + $item->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.items', 1)]); + + flash($message)->success(); + + return redirect()->route('items.index'); + } + + /** + * Disable the specified resource. + * + * @param Item $item + * + * @return Response + */ + public function disable(Item $item) + { + $item->enabled = 0; + $item->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.items', 1)]); + + flash($message)->success(); + + return redirect()->route('items.index'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index f0a5e7297..8bc3fadef 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -50,8 +50,8 @@ class Controller extends BaseController // Add CRUD permission check $this->middleware('permission:create-' . $controller)->only(['create', 'store', 'duplicate', 'import']); - $this->middleware('permission:read-' . $controller)->only(['index', 'show', 'edit']); - $this->middleware('permission:update-' . $controller)->only(['update']); + $this->middleware('permission:read-' . $controller)->only(['index', 'show', 'edit', 'export']); + $this->middleware('permission:update-' . $controller)->only(['update', 'enable', 'disable']); $this->middleware('permission:delete-' . $controller)->only('destroy'); } diff --git a/app/Http/Controllers/Settings/Categories.php b/app/Http/Controllers/Settings/Categories.php index b0a6d85e9..5b856b953 100644 --- a/app/Http/Controllers/Settings/Categories.php +++ b/app/Http/Controllers/Settings/Categories.php @@ -131,6 +131,60 @@ class Categories extends Controller } } + /** + * Enable the specified resource. + * + * @param Category $category + * + * @return Response + */ + public function enable(Category $category) + { + $category->enabled = 1; + $category->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.categories', 1)]); + + flash($message)->success(); + + return redirect()->route('categories.index'); + } + + /** + * Disable the specified resource. + * + * @param Category $category + * + * @return Response + */ + public function disable(Category $category) + { + $relationships = $this->countRelationships($category, [ + 'items' => 'items', + 'invoices' => 'invoices', + 'revenues' => 'revenues', + 'bills' => 'bills', + 'payments' => 'payments', + ]); + + if (empty($relationships)) { + $category->enabled = 0; + $category->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.categories', 1)]); + + flash($message)->success(); + } else { + $message = trans('messages.warning.disabled', ['name' => $category->name, 'text' => implode(', ', $relationships)]); + + flash($message)->warning(); + + return redirect()->route('categories.index'); + } + + return redirect()->route('categories.index'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Controllers/Settings/Currencies.php b/app/Http/Controllers/Settings/Currencies.php index 54c44c748..bea816f42 100644 --- a/app/Http/Controllers/Settings/Currencies.php +++ b/app/Http/Controllers/Settings/Currencies.php @@ -170,6 +170,65 @@ class Currencies extends Controller } } + /** + * Enable the specified resource. + * + * @param Currency $currency + * + * @return Response + */ + public function enable(Currency $currency) + { + $currency->enabled = 1; + $currency->save(); + + $message = trans('messages.success.enabled', ['type' => trans_choice('general.currencies', 1)]); + + flash($message)->success(); + + return redirect()->route('currencies.index'); + } + + /** + * Disable the specified resource. + * + * @param Currency $currency + * + * @return Response + */ + public function disable(Currency $currency) + { + $relationships = $this->countRelationships($currency, [ + 'accounts' => 'accounts', + 'customers' => 'customers', + 'invoices' => 'invoices', + 'revenues' => 'revenues', + 'bills' => 'bills', + 'payments' => 'payments', + ]); + + if ($currency->code == setting('general.default_currency')) { + $relationships[] = strtolower(trans_choice('general.companies', 1)); + } + + if (empty($relationships)) { + $currency->enabled = 0; + $currency->save(); + + $message = trans('messages.success.disabled', ['type' => trans_choice('general.currencies', 1)]); + + flash($message)->success(); + } else { + $message = trans('messages.warning.disabled', ['name' => $currency->name, 'text' => implode(', ', $relationships)]); + + flash($message)->warning(); + + return redirect()->route('currencies.index'); + } + + return redirect()->route('currencies.index'); + } + /** * Remove the specified resource from storage. * diff --git a/resources/lang/en-GB/general.php b/resources/lang/en-GB/general.php index 730280f04..8d289c4ec 100644 --- a/resources/lang/en-GB/general.php +++ b/resources/lang/en-GB/general.php @@ -101,6 +101,8 @@ return [ 'partially' => 'Partially', 'partially_paid' => 'Partially Paid', 'export' => 'Export', + 'enable' => 'Enable', + 'disable' => 'Disable', 'title' => [ 'new' => 'New :type', diff --git a/resources/lang/en-GB/messages.php b/resources/lang/en-GB/messages.php index fee6c43ff..ce5ea6127 100644 --- a/resources/lang/en-GB/messages.php +++ b/resources/lang/en-GB/messages.php @@ -8,6 +8,8 @@ return [ 'deleted' => ':type deleted!', 'duplicated' => ':type duplicated!', 'imported' => ':type imported!', + 'enabled' => ':type enabled!', + 'disabled' => ':type disabled!', ], 'error' => [ 'over_payment' => 'Error: Payment not added! Amount passes the total.', diff --git a/resources/views/auth/users/index.blade.php b/resources/views/auth/users/index.blade.php index 00058867e..b7226679f 100644 --- a/resources/views/auth/users/index.blade.php +++ b/resources/views/auth/users/index.blade.php @@ -72,8 +72,13 @@ diff --git a/resources/views/common/items/index.blade.php b/resources/views/common/items/index.blade.php index 4248fc250..7bbc0c04f 100644 --- a/resources/views/common/items/index.blade.php +++ b/resources/views/common/items/index.blade.php @@ -67,12 +67,17 @@ diff --git a/resources/views/partials/admin/content.blade.php b/resources/views/partials/admin/content.blade.php index e2bd7504e..ee91ec608 100644 --- a/resources/views/partials/admin/content.blade.php +++ b/resources/views/partials/admin/content.blade.php @@ -5,7 +5,7 @@

@yield('title') @yield('new_button') - @if ($suggestion_modules) + @if (!empty($suggestion_modules)) @foreach($suggestion_modules as $s_module)  {{ $s_module->name }} diff --git a/resources/views/settings/categories/index.blade.php b/resources/views/settings/categories/index.blade.php index 2aa986649..cba533480 100644 --- a/resources/views/settings/categories/index.blade.php +++ b/resources/views/settings/categories/index.blade.php @@ -59,6 +59,11 @@