Skip to content

Commit

Permalink
refactored bulk actions
Browse files Browse the repository at this point in the history
  • Loading branch information
denisdulici committed Dec 23, 2019
1 parent d4efb90 commit a3dc7b8
Show file tree
Hide file tree
Showing 20 changed files with 324 additions and 663 deletions.
84 changes: 64 additions & 20 deletions app/Abstracts/BulkAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

namespace App\Abstracts;

use App\Jobs\Common\DeleteContact;
use App\Jobs\Common\UpdateContact;
use App\Jobs\Banking\DeleteTransaction;
use App\Traits\Jobs;
use App\Traits\Relationships;
use Artisan;
Expand All @@ -16,24 +19,34 @@ abstract class BulkAction
'enable' => [
'name' => 'general.enable',
'message' => 'bulk_actions.message.enable',
'permission' => 'update-common-items'
'permission' => 'update-common-items',
],
'disable' => [
'name' => 'general.disable',
'message' => 'bulk_actions.message.disable',
'permission' => 'update-common-items'
'permission' => 'update-common-items',
],
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_actions.message.delete',
'permission' => 'delete-common-items',
],
'export' => [
'name' => 'general.export',
'message' => 'bulk_actions.message.exports',
'message' => 'bulk_actions.message.export',
],
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_actions.message.deletes',
'permission' => 'delete-common-items'
]
];

public function getSelectedRecords($request)
{
return $this->model::find($this->getSelectedInput($request));
}

public function getSelectedInput($request)
{
return $request->get('selected', []);
}

/**
* Duplicate the specified resource.
*
Expand All @@ -43,9 +56,7 @@ abstract class BulkAction
*/
public function duplicate($request)
{
$selected = $request->get('selected', []);

$items = $this->model::find($selected);
$items = $this->getSelectedRecords($request);

foreach ($items as $item) {
$item->duplicate();
Expand All @@ -61,9 +72,7 @@ public function duplicate($request)
*/
public function enable($request)
{
$selected = $request->get('selected', []);

$items = $this->model::find($selected);
$items = $this->getSelectedRecords($request);

foreach ($items as $item) {
$item->enabled = 1;
Expand All @@ -80,9 +89,7 @@ public function enable($request)
*/
public function disable($request)
{
$selected = $request->get('selected', []);

$items = $this->model::find($selected);
$items = $this->getSelectedRecords($request);

foreach ($items as $item) {
$item->enabled = 0;
Expand Down Expand Up @@ -111,14 +118,51 @@ public function delete($request)
*/
public function destroy($request)
{
$selected = $request->get('selected', []);

$items = $this->model::find($selected);
$items = $this->getSelectedRecords($request);

foreach ($items as $item) {
$item->delete();
}

Artisan::call('cache:clear');
}

public function disableContacts($request)
{
$contacts = $this->getSelectedRecords($request);

foreach ($contacts as $contact) {
try {
$this->dispatch(new UpdateContact($contact, request()->merge(['enabled' => 0])));
} catch (\Exception $e) {
flash($e->getMessage())->error();
}
}
}

public function deleteContacts($request)
{
$contacts = $this->getSelectedRecords($request);

foreach ($contacts as $contact) {
try {
$this->dispatch(new DeleteContact($contact));
} catch (\Exception $e) {
flash($e->getMessage())->error();
}
}
}

public function deleteTransactions($request)
{
$transactions = $this->getSelectedRecords($request);

foreach ($transactions as $transaction) {
try {
$this->dispatch(new DeleteTransaction($transaction));
} catch (\Exception $e) {
flash($e->getMessage())->error();
}
}
}
}
6 changes: 3 additions & 3 deletions app/BulkActions/Auth/Permissions.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ class Permissions extends BulkAction
public $actions = [
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_actions.message.deletes',
'permission' => 'delete-auth-permissions'
]
'message' => 'bulk_actions.message.delete',
'permission' => 'delete-auth-permissions',
],
];
}
6 changes: 3 additions & 3 deletions app/BulkActions/Auth/Roles.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ class Roles extends BulkAction
public $actions = [
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_actions.message.deletes',
'permission' => 'delete-auth-roles'
]
'message' => 'bulk_actions.message.delete',
'permission' => 'delete-auth-roles',
],
];
}
37 changes: 13 additions & 24 deletions app/BulkActions/Auth/Users.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use App\Abstracts\BulkAction;
use App\Jobs\Auth\DeleteUser;
use App\Jobs\Auth\UpdateUser;
use App\Models\Auth\User;

class Users extends BulkAction
Expand All @@ -14,54 +15,42 @@ class Users extends BulkAction
'enable' => [
'name' => 'general.enable',
'message' => 'bulk_actions.message.enable',
'permission' => 'update-auth-users'
'permission' => 'update-auth-users',
],
'disable' => [
'name' => 'general.disable',
'message' => 'bulk_actions.message.disable',
'permission' => 'update-auth-users'
'permission' => 'update-auth-users',
],
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_actions.message.deletes',
'permission' => 'delete-auth-users'
]
'message' => 'bulk_actions.message.delete',
'permission' => 'delete-auth-users',
],
];

public function disable($request)
{
$selected = $request->get('selected', []);

$users = $this->model::find($selected);
$users = $this->getSelectedRecords($request);

foreach ($users as $user) {
// Can't disable yourself
if ($user->id == user()->id) {
continue;
//$this->response->errorMethodNotAllowed(trans('auth.error.self_delete'));
try {
$this->dispatch(new UpdateUser($user, $request->merge(['enabled' => 0])));
} catch (\Exception $e) {
flash($e->getMessage())->error();
}

$user->enabled = 0;
$user->save();
}
}

public function delete($request)
{
$this->destroy($request);
}

public function destroy($request)
{
$selected = $request->get('selected', []);

$users = $this->model::find($selected);
$users = $this->getSelectedRecords($request);

foreach ($users as $user) {
try {
$this->dispatch(new DeleteUser($user));
} catch (\Exception $e) {
return $e->getMessage();
flash($e->getMessage())->error();
}
}
}
Expand Down
29 changes: 10 additions & 19 deletions app/BulkActions/Banking/Accounts.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,51 +15,42 @@ class Accounts extends BulkAction
'enable' => [
'name' => 'general.enable',
'message' => 'bulk_actions.message.enable',
'permission' => 'update-banking-accounts'
'permission' => 'update-banking-accounts',
],
'disable' => [
'name' => 'general.disable',
'message' => 'bulk_actions.message.disable',
'permission' => 'update-banking-accounts'
'permission' => 'update-banking-accounts',
],
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_actions.message.deletes',
'permission' => 'delete-banking-accounts'
]
'message' => 'bulk_actions.message.delete',
'permission' => 'delete-banking-accounts',
],
];

public function disable($request)
{
$selected = $request->get('selected', []);

$accounts = $this->model::find($selected);
$accounts = $this->getSelectedRecords($request);

foreach ($accounts as $account) {
try {
$this->dispatch(new UpdateAccount($account, request()->merge(['enabled' => 1])));
$this->dispatch(new UpdateAccount($account, $request->merge(['enabled' => 0])));
} catch (\Exception $e) {
return $e->getMessage();
flash($e->getMessage())->error();
}
}
}

public function delete($request)
{
$this->destroy($request);
}

public function destroy($request)
{
$selected = $request->get('selected', []);

$accounts = $this->model::find($selected);
$accounts = $this->getSelectedRecords($request);

foreach ($accounts as $account) {
try {
$this->dispatch(new DeleteAccount($account));
} catch (\Exception $e) {
return $e->getMessage();
flash($e->getMessage())->error();
}
}
}
Expand Down
27 changes: 8 additions & 19 deletions app/BulkActions/Banking/Reconciliations.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,23 @@ class Reconciliations extends BulkAction
'enable' => [
'name' => 'general.enable',
'message' => 'bulk_actions.message.enable',
'permission' => 'update-banking-reconciliations'
'permission' => 'update-banking-reconciliations',
],
'disable' => [
'name' => 'general.disable',
'message' => 'bulk_actions.message.disable',
'permission' => 'update-banking-reconciliations'
'permission' => 'update-banking-reconciliations',
],
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_actions.message.deletes',
'permission' => 'delete-banking-reconciliations'
]
'message' => 'bulk_actions.message.delete',
'permission' => 'delete-banking-reconciliations',
],
];

public function enable($request)
{
$selected = $request->get('selected', []);

$reconciliations = $this->model::find($selected);
$reconciliations = $this->getSelectedRecords($request);

foreach ($reconciliations as $reconciliation) {
$reconciliation->enabled = 1;
Expand All @@ -49,9 +47,7 @@ public function enable($request)

public function disable($request)
{
$selected = $request->get('selected', []);

$reconciliations = $this->model::find($selected);
$reconciliations = $this->getSelectedRecords($request);

foreach ($reconciliations as $reconciliation) {
$reconciliation->enabled = 0;
Expand All @@ -66,16 +62,9 @@ public function disable($request)
}
}

public function delete($request)
{
$this->destroy($request);
}

public function destroy($request)
{
$selected = $request->get('selected', []);

$reconciliations = $this->model::find($selected);
$reconciliations = $this->getSelectedRecords($request);

foreach ($reconciliations as $reconciliation) {
$reconciliation->delete();
Expand Down
19 changes: 8 additions & 11 deletions app/BulkActions/Banking/Transfers.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,20 @@ class Transfers extends BulkAction
'delete' => [
'name' => 'general.delete',
'message' => 'bulk_action.message.deletes',
'permission' => 'delete-banking-transfers'
]
'permission' => 'delete-banking-transfers',
],
];

public function delete($request)
{
$this->destroy($request);
}

public function destroy($request)
{
$selected = $request->get('selected', []);

$transfers = $this->model::find($selected);
$transfers = $this->getSelectedRecords($request);

foreach ($transfers as $transfer) {
$this->dispatch(new DeleteTransfer($transfer));
try {
$this->dispatch(new DeleteTransfer($transfer));
} catch (\Exception $e) {
flash($e->getMessage())->error();
}
}
}
}

0 comments on commit a3dc7b8

Please sign in to comment.