From 6fe84f9acdad3876c4b1b1e033d03161aeab1cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Tue, 7 Nov 2017 18:53:10 +0100 Subject: [PATCH] Add role filtering --- app/coffee/modules/controllerMixins.coffee | 20 ++++++++++++++++++++ app/coffee/modules/issues/list.coffee | 20 ++++++++++++++++++++ app/coffee/modules/taskboard/main.coffee | 20 ++++++++++++++++++++ app/locales/taiga/locale-en.json | 1 + 4 files changed, 61 insertions(+) diff --git a/app/coffee/modules/controllerMixins.coffee b/app/coffee/modules/controllerMixins.coffee index 69688158..9f000f12 100644 --- a/app/coffee/modules/controllerMixins.coffee +++ b/app/coffee/modules/controllerMixins.coffee @@ -194,6 +194,7 @@ class UsFiltersMixin filters.assigned_to = urlfilters.assigned_to filters.owner = urlfilters.owner filters.epic = urlfilters.epic + filters.role = urlfilters.role @filterRemoteStorageService.getFilters(@scope.projectId, @.storeCustomFiltersName).then (userFilters) => userFilters[name] = filters @@ -219,6 +220,7 @@ class UsFiltersMixin loadFilters.assigned_to = urlfilters.assigned_to loadFilters.owner = urlfilters.owner loadFilters.epic = urlfilters.epic + loadFilters.role = urlfilters.role loadFilters.q = urlfilters.q if milestone @@ -249,6 +251,15 @@ class UsFiltersMixin it.name = it.full_name || "Unassigned" + return it + role = _.map data.roles, (it) -> + if it.id + it.id = it.id.toString() + else + it.id = "null" + + it.name = it.name || "Unassigned" + return it owner = _.map data.owners, (it) -> it.id = it.id.toString() @@ -287,6 +298,10 @@ class UsFiltersMixin selected = @.formatSelectedFilters("epic", epic, loadFilters.epic) @.selectedFilters = @.selectedFilters.concat(selected) + if loadFilters.role + selected = @.formatSelectedFilters("role", role, loadFilters.role) + @.selectedFilters = @.selectedFilters.concat(selected) + @.filterQ = loadFilters.q @.filters = [ @@ -307,6 +322,11 @@ class UsFiltersMixin dataType: "assigned_to", content: assignedTo }, + { + title: @translate.instant("COMMON.FILTERS.CATEGORIES.ROLE"), + dataType: "role", + content: role + }, { title: @translate.instant("COMMON.FILTERS.CATEGORIES.CREATED_BY"), dataType: "owner", diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index 6162b669..3abcf2d0 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -137,6 +137,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi filters.priority = urlfilters.priority filters.assigned_to = urlfilters.assigned_to filters.owner = urlfilters.owner + filters.role = urlfilters.role @filterRemoteStorageService.getFilters(@scope.projectId, @.myFiltersHashSuffix).then (userFilters) => userFilters[name] = filters @@ -157,6 +158,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi loadFilters.priority = urlfilters.priority loadFilters.assigned_to = urlfilters.assigned_to loadFilters.owner = urlfilters.owner + loadFilters.role = urlfilters.role loadFilters.q = urlfilters.q return @q.all([ @@ -203,6 +205,15 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi it.id = it.id.toString() it.name = it.full_name + return it + role = _.map data.roles, (it) -> + if it.id + it.id = it.id.toString() + else + it.id = "null" + + it.name = it.name || "Unassigned" + return it @.selectedFilters = [] @@ -235,6 +246,10 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi selected = @.formatSelectedFilters("priority", priority, loadFilters.priority) @.selectedFilters = @.selectedFilters.concat(selected) + if loadFilters.role + selected = @.formatSelectedFilters("role", role, loadFilters.role) + @.selectedFilters = @.selectedFilters.concat(selected) + @.filterQ = loadFilters.q @.filters = [ @@ -270,6 +285,11 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi dataType: "assigned_to", content: assignedTo }, + { + title: @translate.instant("COMMON.FILTERS.CATEGORIES.ROLE"), + dataType: "role", + content: role + }, { title: @translate.instant("COMMON.FILTERS.CATEGORIES.CREATED_BY"), dataType: "owner", diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index 10e7be65..b55899fd 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -141,6 +141,7 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga filters.status = urlfilters.status filters.assigned_to = urlfilters.assigned_to filters.owner = urlfilters.owner + filters.role = urlfilters.role @filterRemoteStorageService.getFilters(@scope.projectId, 'tasks-custom-filters').then (userFilters) => userFilters[name] = filters @@ -159,6 +160,7 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga loadFilters.status = urlfilters.status loadFilters.assigned_to = urlfilters.assigned_to loadFilters.owner = urlfilters.owner + loadFilters.role = urlfilters.role loadFilters.q = urlfilters.q return @q.all([ @@ -188,6 +190,15 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga it.name = it.full_name || "Unassigned" + return it + role = _.map data.roles, (it) -> + if it.id + it.id = it.id.toString() + else + it.id = "null" + + it.name = it.name || "Unassigned" + return it owner = _.map data.owners, (it) -> it.id = it.id.toString() @@ -213,6 +224,10 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga selected = @.formatSelectedFilters("owner", owner, loadFilters.owner) @.selectedFilters = @.selectedFilters.concat(selected) + if loadFilters.role + selected = @.formatSelectedFilters("role", role, loadFilters.role) + @.selectedFilters = @.selectedFilters.concat(selected) + @.filterQ = loadFilters.q @.filters = [ @@ -233,6 +248,11 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga dataType: "assigned_to", content: assignedTo }, + { + title: @translate.instant("COMMON.FILTERS.CATEGORIES.ROLE"), + dataType: "role", + content: role + }, { title: @translate.instant("COMMON.FILTERS.CATEGORIES.CREATED_BY"), dataType: "owner", diff --git a/app/locales/taiga/locale-en.json b/app/locales/taiga/locale-en.json index f96d8b7e..02593ade 100644 --- a/app/locales/taiga/locale-en.json +++ b/app/locales/taiga/locale-en.json @@ -207,6 +207,7 @@ "PRIORITIES": "Priorities", "TAGS": "Tags", "ASSIGNED_TO": "Assigned to", + "ROLE": "Role", "CREATED_BY": "Created by", "CUSTOM_FILTERS": "Custom filters", "EPIC": "Epic"