diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index c583f919b86f..213843aa8eee 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -1,6 +1,7 @@ datatable, FILTER_VALIDATE_BOOLEAN); + $referer = Request::server('HTTP_REFERER'); $entityTypes = Utils::pluralizeEntityType($entityType); - if ($action == 'restore' && count($ids) == 1) { + if (strpos($referer, '/clients/')) { + // when restoring redirect to entity + return redirect($referer); + } elseif ($action == 'restore' && count($ids) == 1) { return redirect("{$entityTypes}/" . $ids[0]); + // when viewing from a datatable list } elseif ($isDatatable || ($action == 'archive' || $action == 'delete')) { return redirect("{$entityTypes}"); + // when viewing individual entity } elseif (count($ids)) { return redirect("{$entityTypes}/" . $ids[0]); } else { diff --git a/app/Ninja/Datatables/ExpenseDatatable.php b/app/Ninja/Datatables/ExpenseDatatable.php index 536e9dcbf419..6bf432e6d02b 100644 --- a/app/Ninja/Datatables/ExpenseDatatable.php +++ b/app/Ninja/Datatables/ExpenseDatatable.php @@ -114,7 +114,7 @@ class ExpenseDatatable extends EntityDatatable [ trans('texts.invoice_expense'), function ($model) { - return "javascript:invoiceEntity({$model->public_id})"; + return "javascript:submitForm_expense('invoice', {$model->public_id})"; }, function ($model) { return ! $model->invoice_id && (!$model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('create', ENTITY_INVOICE); diff --git a/app/Ninja/Datatables/InvoiceDatatable.php b/app/Ninja/Datatables/InvoiceDatatable.php index 4203d47d3444..5d90107d03c3 100644 --- a/app/Ninja/Datatables/InvoiceDatatable.php +++ b/app/Ninja/Datatables/InvoiceDatatable.php @@ -110,8 +110,8 @@ class InvoiceDatatable extends EntityDatatable ], [ trans('texts.mark_sent'), - function ($model) { - return "javascript:markEntity({$model->public_id})"; + function ($model) use ($entityType) { + return "javascript:submitForm_{$entityType}('markSent', {$model->public_id})"; }, function ($model) { return $model->invoice_status_id < INVOICE_STATUS_SENT && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); @@ -147,7 +147,7 @@ class InvoiceDatatable extends EntityDatatable [ trans('texts.convert_to_invoice'), function ($model) { - return "javascript:convertEntity({$model->public_id})"; + return "javascript:submitForm_quote('convert', {$model->public_id})"; }, function ($model) use ($entityType) { return $entityType == ENTITY_QUOTE && ! $model->quote_invoice_id && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->user_id]); diff --git a/app/Ninja/Datatables/TaskDatatable.php b/app/Ninja/Datatables/TaskDatatable.php index 78647f49c5cb..a65e28b8de83 100644 --- a/app/Ninja/Datatables/TaskDatatable.php +++ b/app/Ninja/Datatables/TaskDatatable.php @@ -78,7 +78,7 @@ class TaskDatatable extends EntityDatatable [ trans('texts.stop_task'), function ($model) { - return "javascript:stopTask({$model->public_id})"; + return "javascript:submitForm_task('stop', {$model->public_id})"; }, function ($model) { return $model->is_running && Auth::user()->can('editByOwner', [ENTITY_TASK, $model->user_id]); @@ -87,7 +87,7 @@ class TaskDatatable extends EntityDatatable [ trans('texts.invoice_task'), function ($model) { - return "javascript:invoiceEntity({$model->public_id})"; + return "javascript:submitForm_task('invoice', {$model->public_id})"; }, function ($model) { return ! $model->invoice_number && (!$model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('create', ENTITY_INVOICE); diff --git a/app/Services/DatatableService.php b/app/Services/DatatableService.php index 82223ffc324f..7eb8029bc9d4 100644 --- a/app/Services/DatatableService.php +++ b/app/Services/DatatableService.php @@ -116,16 +116,16 @@ class DatatableService } if (($datatable->entityType != ENTITY_USER || $model->public_id) && $can_edit) { - $dropdown_contents .= "