Merge pull request #378 from denisdulici/enable-disable

Enable/Disable from list page
This commit is contained in:
Denis Duliçi 2018-06-11 11:57:34 +03:00 committed by GitHub
commit 9a4a31b1a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 497 additions and 12 deletions

View File

@ -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.
*

View File

@ -124,6 +124,56 @@ class Accounts extends Controller
}
}
/**
* Enable the specified resource.
*
* @param Account $account
*
* @return Response
*/
public function enable(Account $account)
{
$account->enabled = 1;
$account->save();
$message = trans('messages.success.enabled', ['type' => trans_choice('general.accounts', 1)]);
flash($message)->success();
return redirect()->route('accounts.index');
}
/**
* Disable the specified resource.
*
* @param Account $account
*
* @return Response
*/
public function disable(Account $account)
{
if ($account->id == setting('general.default_account')) {
$relationships[] = strtolower(trans_choice('general.companies', 1));
}
if (empty($relationships)) {
$account->enabled = 0;
$account->save();
$message = trans('messages.success.disabled', ['type' => trans_choice('general.accounts', 1)]);
flash($message)->success();
} else {
$message = trans('messages.warning.disabled', ['name' => $account->name, 'text' => implode(', ', $relationships)]);
flash($message)->warning();
return redirect()->route('accounts.index');
}
return redirect()->route('accounts.index');
}
/**
* Remove the specified resource from storage.
*

View File

@ -174,6 +174,53 @@ class Companies extends Controller
return redirect('common/companies');
}
/**
* Enable the specified resource.
*
* @param Company $company
*
* @return Response
*/
public function enable(Company $company)
{
$company->enabled = 1;
$company->save();
$message = trans('messages.success.enabled', ['type' => trans_choice('general.companies', 1)]);
flash($message)->success();
return redirect()->route('companies.index');
}
/**
* Disable the specified resource.
*
* @param Company $company
*
* @return Response
*/
public function disable(Company $company)
{
// Check if user can update company
if (!$this->isUserCompany($company)) {
$message = trans('companies.error.not_user_company');
flash($message)->error();
return redirect()->route('companies.index');
}
$company->enabled = 0;
$company->save();
$message = trans('messages.success.disabled', ['type' => trans_choice('general.companies', 1)]);
flash($message)->success();
return redirect()->route('companies.index');
}
/**
* Remove the specified resource from storage.
*

View File

@ -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.
*

View File

@ -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');
}

View File

@ -242,6 +242,44 @@ class Vendors extends Controller
return redirect('expenses/vendors');
}
/**
* Enable the specified resource.
*
* @param Vendor $vendor
*
* @return Response
*/
public function enable(Vendor $vendor)
{
$vendor->enabled = 1;
$vendor->save();
$message = trans('messages.success.enabled', ['type' => trans_choice('general.vendors', 1)]);
flash($message)->success();
return redirect()->route('vendors.index');
}
/**
* Disable the specified resource.
*
* @param Vendor $vendor
*
* @return Response
*/
public function disable(Vendor $vendor)
{
$vendor->enabled = 0;
$vendor->save();
$message = trans('messages.success.disabled', ['type' => trans_choice('general.vendors', 1)]);
flash($message)->success();
return redirect()->route('vendors.index');
}
/**
* Remove the specified resource from storage.
*

View File

@ -278,6 +278,44 @@ class Customers extends Controller
return redirect('incomes/customers');
}
/**
* Enable the specified resource.
*
* @param Customer $customer
*
* @return Response
*/
public function enable(Customer $customer)
{
$customer->enabled = 1;
$customer->save();
$message = trans('messages.success.enabled', ['type' => trans_choice('general.customers', 1)]);
flash($message)->success();
return redirect()->route('customers.index');
}
/**
* Disable the specified resource.
*
* @param Customer $customer
*
* @return Response
*/
public function disable(Customer $customer)
{
$customer->enabled = 0;
$customer->save();
$message = trans('messages.success.disabled', ['type' => trans_choice('general.customers', 1)]);
flash($message)->success();
return redirect()->route('customers.index');
}
/**
* Remove the specified resource from storage.
*

View File

@ -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.
*

View File

@ -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.
*

View File

@ -104,6 +104,58 @@ class Taxes extends Controller
}
}
/**
* Enable the specified resource.
*
* @param Tax $tax
*
* @return Response
*/
public function enable(Tax $tax)
{
$tax->enabled = 1;
$tax->save();
$message = trans('messages.success.enabled', ['type' => trans_choice('general.tax_rates', 1)]);
flash($message)->success();
return redirect()->route('taxes.index');
}
/**
* Disable the specified resource.
*
* @param Tax $tax
*
* @return Response
*/
public function disable(Tax $tax)
{
$relationships = $this->countRelationships($tax, [
'items' => 'items',
'invoice_items' => 'invoices',
'bill_items' => 'bills',
]);
if (empty($relationships)) {
$tax->enabled = 0;
$tax->save();
$message = trans('messages.success.disabled', ['type' => trans_choice('general.tax_rates', 1)]);
flash($message)->success();
} else {
$message = trans('messages.warning.disabled', ['name' => $tax->name, 'text' => implode(', ', $relationships)]);
flash($message)->warning();
return redirect()->route('taxes.index');
}
return redirect()->route('taxes.index');
}
/**
* Remove the specified resource from storage.
*

View File

@ -101,6 +101,8 @@ return [
'partially' => 'Partially',
'partially_paid' => 'Partially Paid',
'export' => 'Export',
'enable' => 'Enable',
'disable' => 'Disable',
'title' => [
'new' => 'New :type',

View File

@ -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.',

View File

@ -72,8 +72,13 @@
<i class="fa fa-ellipsis-h"></i>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('auth/users/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
<li><a href="{{ url('auth/users/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>@if ($item->enabled)
<li><a href="{{ route('users.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('users.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('delete-auth-users')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'auth/users') !!}</li>
@endpermission
</ul>

View File

@ -58,7 +58,13 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('banking/accounts/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
@if ($item->enabled)
<li><a href="{{ route('accounts.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('accounts.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('delete-banking-accounts')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'banking/accounts') !!}</li>
@endpermission
</ul>

View File

@ -63,10 +63,17 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
@if ($item->enabled)
<li><a href="{{ url('common/companies/' . $item->id . '/set') }}">{{ trans('general.switch') }}</a></li>
<li><a href="{{ route('companies.switch', $item->id) }}">{{ trans('general.switch') }}</a></li>
<li class="divider"></li>
@endif
<li><a href="{{ url('common/companies/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
@if ($item->enabled)
<li><a href="{{ route('companies.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('companies.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('delete-common-companies')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'common/companies', '', 'company_name') !!}</li>
@endpermission
</ul>

View File

@ -67,12 +67,17 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ route('items.edit', $item->id) }}">{{ trans('general.edit') }}</a></li>
<li class="divider"></li>
@if ($item->enabled)
<li><a href="{{ route('items.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('items.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('create-common-items')
<li><a href="{{ route('items.duplicate', $item->id) }}">{{ trans('general.duplicate') }}</a></li>
<li class="divider"></li>
<li><a href="{{ route('items.duplicate', $item->id) }}">{{ trans('general.duplicate') }}</a></li>
@endpermission
@permission('delete-common-items')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'common/items') !!}</li>
@endpermission
</ul>

View File

@ -60,13 +60,17 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('expenses/vendors/' . $item->id) }}">{{ trans('general.show') }}</a></li>
<li><a href="{{ url('expenses/vendors/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
<li class="divider"></li>
<li><a href="{{ url('expenses/vendors/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>@if ($item->enabled)
<li><a href="{{ route('vendors.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('vendors.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('create-expenses-vendors')
<li><a href="{{ url('expenses/vendors/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
<li class="divider"></li>
<li><a href="{{ url('expenses/vendors/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
@endpermission
@permission('delete-expenses-vendors')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'expenses/vendors') !!}</li>
@endpermission
</ul>

View File

@ -61,12 +61,17 @@
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('incomes/customers/' . $item->id) }}">{{ trans('general.show') }}</a></li>
<li><a href="{{ url('incomes/customers/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
<li class="divider"></li>
@if ($item->enabled)
<li><a href="{{ route('customers.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('customers.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('create-incomes-customers')
<li><a href="{{ url('incomes/customers/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
<li class="divider"></li>
<li><a href="{{ url('incomes/customers/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li>
@endpermission
@permission('delete-incomes-customers')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'incomes/customers') !!}</li>
@endpermission
</ul>

View File

@ -5,7 +5,7 @@
<h1>
@yield('title')
@yield('new_button')
@if ($suggestion_modules)
@if (!empty($suggestion_modules))
@foreach($suggestion_modules as $s_module)
<span class="new-button">
<a href="{{ url($s_module->action_url) . '?' . http_build_query((array) $s_module->action_parameters) }}" class="btn btn-default btn-sm" target="{{ $s_module->action_target }}"><span class="fa fa-rocket"></span> &nbsp;{{ $s_module->name }}</a>

View File

@ -59,6 +59,11 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('settings/categories/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
@if ($item->enabled)
<li><a href="{{ route('categories.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('categories.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@if ($item->id != $transfer_id)
@permission('delete-settings-categories')
<li class="divider"></li>

View File

@ -56,7 +56,13 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('settings/currencies/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
@if ($item->enabled)
<li><a href="{{ route('currencies.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('currencies.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('delete-settings-currencies')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'settings/currencies') !!}</li>
@endpermission
</ul>

View File

@ -56,7 +56,13 @@
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('settings/taxes/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li>
@if ($item->enabled)
<li><a href="{{ route('taxes.disable', $item->id) }}">{{ trans('general.disable') }}</a></li>
@else
<li><a href="{{ route('taxes.enable', $item->id) }}">{{ trans('general.enable') }}</a></li>
@endif
@permission('delete-settings-taxes')
<li class="divider"></li>
<li>{!! Form::deleteLink($item, 'settings/taxes', 'tax_rates') !!}</li>
@endpermission
</ul>

View File

@ -16,6 +16,8 @@ Route::group(['middleware' => 'language'], function () {
Route::group(['prefix' => 'common'], function () {
Route::get('companies/{company}/set', 'Common\Companies@set')->name('companies.switch');
Route::get('companies/{company}/enable', 'Common\Companies@enable')->name('companies.enable');
Route::get('companies/{company}/disable', 'Common\Companies@disable')->name('companies.disable');
Route::resource('companies', 'Common\Companies');
Route::get('dashboard/cashflow', 'Common\Dashboard@cashFlow')->name('dashboard.cashflow');
Route::get('import/{group}/{type}', 'Common\Import@create')->name('import.create');
@ -24,6 +26,8 @@ Route::group(['middleware' => 'language'], function () {
Route::get('items/{item}/duplicate', 'Common\Items@duplicate')->name('items.duplicate');
Route::post('items/import', 'Common\Items@import')->name('items.import');
Route::get('items/export', 'Common\Items@export')->name('items.export');
Route::get('items/{item}/enable', 'Common\Items@enable')->name('items.enable');
Route::get('items/{item}/disable', 'Common\Items@disable')->name('items.disable');
Route::resource('items', 'Common\Items');
Route::get('search/search', 'Common\Search@search')->name('search.search');
Route::resource('search', 'Common\Search');
@ -35,6 +39,8 @@ Route::group(['middleware' => 'language'], function () {
Route::get('users/{user}/read-bills', 'Auth\Users@readUpcomingBills');
Route::get('users/{user}/read-invoices', 'Auth\Users@readOverdueInvoices');
Route::get('users/{user}/read-items', 'Auth\Users@readItemsOutOfStock');
Route::get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable');
Route::get('users/{user}/disable', 'Auth\Users@disable')->name('users.disable');
Route::resource('users', 'Auth\Users');
Route::resource('roles', 'Auth\Roles');
Route::resource('permissions', 'Auth\Permissions');
@ -62,6 +68,8 @@ Route::group(['middleware' => 'language'], function () {
Route::post('customers/field', 'Incomes\Customers@field');
Route::post('customers/import', 'Incomes\Customers@import')->name('customers.import');
Route::get('customers/export', 'Incomes\Customers@export')->name('customers.export');
Route::get('customers/{customer}/enable', 'Incomes\Customers@enable')->name('customers.enable');
Route::get('customers/{customer}/disable', 'Incomes\Customers@disable')->name('customers.disable');
Route::resource('customers', 'Incomes\Customers');
});
@ -84,10 +92,14 @@ Route::group(['middleware' => 'language'], function () {
Route::post('vendors/vendor', 'Expenses\Vendors@vendor');
Route::post('vendors/import', 'Expenses\Vendors@import')->name('vendors.import');
Route::get('vendors/export', 'Expenses\Vendors@export')->name('vendors.export');
Route::get('vendors/{vendor}/enable', 'Expenses\Vendors@enable')->name('vendors.enable');
Route::get('vendors/{vendor}/disable', 'Expenses\Vendors@disable')->name('vendors.disable');
Route::resource('vendors', 'Expenses\Vendors');
});
Route::group(['prefix' => 'banking'], function () {
Route::get('accounts/{account}/enable', 'Banking\Accounts@enable')->name('accounts.enable');
Route::get('accounts/{account}/disable', 'Banking\Accounts@disable')->name('accounts.disable');
Route::resource('accounts', 'Banking\Accounts');
Route::resource('transactions', 'Banking\Transactions');
Route::resource('transfers', 'Banking\Transfers');
@ -103,12 +115,18 @@ Route::group(['middleware' => 'language'], function () {
Route::group(['prefix' => 'settings'], function () {
Route::post('categories/category', 'Settings\Categories@category');
Route::get('categories/{category}/enable', 'Settings\Categories@enable')->name('categories.enable');
Route::get('categories/{category}/disable', 'Settings\Categories@disable')->name('categories.disable');
Route::resource('categories', 'Settings\Categories');
Route::get('currencies/currency', 'Settings\Currencies@currency');
Route::get('currencies/config', 'Settings\Currencies@config');
Route::get('currencies/{currency}/enable', 'Settings\Currencies@enable')->name('currencies.enable');
Route::get('currencies/{currency}/disable', 'Settings\Currencies@disable')->name('currencies.disable');
Route::resource('currencies', 'Settings\Currencies');
Route::get('settings', 'Settings\Settings@edit');
Route::patch('settings', 'Settings\Settings@update');
Route::get('taxes/{tax}/enable', 'Settings\Taxes@enable')->name('taxes.enable');
Route::get('taxes/{tax}/disable', 'Settings\Taxes@disable')->name('taxes.disable');
Route::resource('taxes', 'Settings\Taxes');
Route::get('apps/{alias}', 'Settings\Modules@edit');
Route::patch('apps/{alias}', 'Settings\Modules@update');