diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index 860fee6e9a61..f15c36286435 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -253,11 +253,9 @@ class TaskController extends BaseController $action = Input::get('action'); $ids = Input::get('public_id') ?: (Input::get('id') ?: Input::get('ids')); - if ($action == 'stop') { + if (in_array($action, ['resume', 'stop'])) { $this->taskRepo->save($ids, ['action' => $action]); - Session::flash('message', trans('texts.stopped_task')); - - return Redirect::to('tasks'); + return Redirect::to('tasks')->withMessage(trans($action == 'stop' ? 'texts.stopped_task' : 'texts.resumed_task')); } elseif ($action == 'invoice' || $action == 'add_to_invoice') { $tasks = Task::scope($ids)->with('client')->orderBy('project_id', 'id')->get(); $clientPublicId = false; diff --git a/app/Ninja/Datatables/TaskDatatable.php b/app/Ninja/Datatables/TaskDatatable.php index 5f7ea1d8ee89..a63460a31b1d 100644 --- a/app/Ninja/Datatables/TaskDatatable.php +++ b/app/Ninja/Datatables/TaskDatatable.php @@ -88,6 +88,15 @@ class TaskDatatable extends EntityDatatable return $model->invoice_number && Auth::user()->can('editByOwner', [ENTITY_INVOICE, $model->invoice_user_id]); }, ], + [ + trans('texts.resume_task'), + function ($model) { + return "javascript:submitForm_task('resume', {$model->public_id})"; + }, + function ($model) { + return ! $model->is_running && Auth::user()->can('editByOwner', [ENTITY_TASK, $model->user_id]); + }, + ], [ trans('texts.stop_task'), function ($model) { @@ -103,7 +112,7 @@ class TaskDatatable extends EntityDatatable 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); + return ! $model->is_running && ! $model->invoice_number && (! $model->deleted_at || $model->deleted_at == '0000-00-00') && Auth::user()->can('create', ENTITY_INVOICE); }, ], ]; diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index d0f72c5140ee..8422dbc927e3 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2252,6 +2252,8 @@ $LANG = array( 'invoiceplane_import' => 'Use :link to migrate your data from InvoicePlane.', 'duplicate_expense_warning' => 'Warning: This :link may be a duplicate', 'expense_link' => 'expense', + 'resume_task' => 'Resume Task', + 'resumed_task' => 'Successfully resumed task', );