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