diff --git a/app/Http/Controllers/TaskKanbanController.php b/app/Http/Controllers/TaskKanbanController.php index a4b5c59adb1e..4d05fa17c89a 100644 --- a/app/Http/Controllers/TaskKanbanController.php +++ b/app/Http/Controllers/TaskKanbanController.php @@ -12,7 +12,7 @@ class TaskKanbanController extends BaseController /** * @return \Illuminate\Contracts\View\View */ - public function index($clientPublicId = false) + public function index($clientPublicId = false, $projectPublicId = false) { $tasks = Task::scope() ->with(['project', 'client', 'task_status']) @@ -85,6 +85,7 @@ class TaskKanbanController extends BaseController 'clients' => $clients, 'projects' => $projects, 'clientPublicId' => $clientPublicId, + 'projectPublicId' => $projectPublicId, ]; return view('tasks.kanban', $data); diff --git a/app/Models/Project.php b/app/Models/Project.php index 38be8e615283..7b9fac89578e 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -48,7 +48,7 @@ class Project extends EntityModel */ public function getRoute() { - return "/projects/{$this->public_id}/edit"; + return "/projects/{$this->public_id}"; } /** diff --git a/resources/views/list.blade.php b/resources/views/list.blade.php index 5963845143b2..63fac7e01440 100644 --- a/resources/views/list.blade.php +++ b/resources/views/list.blade.php @@ -84,7 +84,7 @@ }); @elseif ($entityType == ENTITY_TASK) - {!! Button::normal(trans('texts.kanban'))->asLinkTo(url('/tasks/kanban' . (! empty($clientId) ? '/' . $clientId : '')))->appendIcon(Icon::create('th')) !!} + {!! Button::normal(trans('texts.kanban'))->asLinkTo(url('/tasks/kanban' . (! empty($clientId) ? ('/' . $clientId . (! empty($projectId) ? '/' . $projectId : '')) : '')))->appendIcon(Icon::create('th')) !!} {!! Button::normal(trans('texts.time_tracker'))->asLinkTo('javascript:openTimeTracker()')->appendIcon(Icon::create('time')) !!} @endif diff --git a/resources/views/projects/edit.blade.php b/resources/views/projects/edit.blade.php index 63f49421e1ef..a6a6e4130705 100644 --- a/resources/views/projects/edit.blade.php +++ b/resources/views/projects/edit.blade.php @@ -61,7 +61,8 @@
{!! Button::normal(trans('texts.cancel'))->large()->asLinkTo(HTMLUtils::previousUrl('/projects'))->appendIcon(Icon::create('remove-circle')) !!} {!! Button::success(trans('texts.save'))->submit()->large()->appendIcon(Icon::create('floppy-disk')) !!} - @if ($project && Auth::user()->can('create', ENTITY_TASK)) + + @if (false && $project && Auth::user()->can('create', ENTITY_TASK)) {!! DropdownButton::normal(trans('texts.more_actions')) ->withContents([ [ diff --git a/resources/views/projects/show.blade.php b/resources/views/projects/show.blade.php index a44e8df76c73..fc4294cfc9f1 100644 --- a/resources/views/projects/show.blade.php +++ b/resources/views/projects/show.blade.php @@ -36,13 +36,6 @@ ] )->split() !!} @endcan - @if ( ! $project->trashed()) - @can('create', ENTITY_TASK) - {!! Button::primary(trans("texts.new_task")) - ->asLinkTo(URL::to("/tasks/create/{$project->client->public_id}/{$project->public_id}")) - ->appendIcon(Icon::create('plus-sign')) !!} - @endcan - @endif @endif @if ($project->trashed()) diff --git a/resources/views/tasks/kanban.blade.php b/resources/views/tasks/kanban.blade.php index b6e4c492b4be..028bce4c3e65 100644 --- a/resources/views/tasks/kanban.blade.php +++ b/resources/views/tasks/kanban.blade.php @@ -650,7 +650,13 @@ window.model = new ViewModel(); ko.applyBindings(model); - if ({{ $clientPublicId ? 'true' : 'false' }}) { + if ({{ $projectPublicId ? 'true' : 'false' }}) { + var project = projectMap[{{ $projectPublicId ?: 0}}]; + if (project) { + model.filter_project_id({{ $projectPublicId }}); + model.filter(project.name()); + } + } else if ({{ $clientPublicId ? 'true' : 'false' }}) { var client = clientMap[{{ $clientPublicId ?: 0 }}]; if (client) { model.filter_client_id({{ $clientPublicId }}); diff --git a/routes/web.php b/routes/web.php index a4d468075deb..0a6a2596e0b6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -143,7 +143,7 @@ Route::group(['middleware' => ['lookup:user', 'auth:user']], function () { Route::get('clients/statement/{client_id}/{status_id?}/{start_date?}/{end_date?}', 'ClientController@statement'); Route::get('time_tracker', 'TimeTrackerController@index'); - Route::get('tasks/kanban/{client_id?}', 'TaskKanbanController@index'); + Route::get('tasks/kanban/{client_id?}/{project_id?}', 'TaskKanbanController@index'); Route::post('task_statuses', 'TaskKanbanController@storeStatus'); Route::put('task_statuses/{task_status_id}', 'TaskKanbanController@updateStatus'); Route::delete('task_statuses/{task_status_id}', 'TaskKanbanController@deleteStatus');