From c4c96d0f2b6ca3bebadebd0c9212b7d5715d85c9 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Wed, 28 Feb 2018 01:11:23 +0100 Subject: [PATCH] Generate list for overview group by based on current ticket attributes. --- .../app/controllers/overview.coffee | 5 ++ .../app/controllers/ticket_overview.coffee | 52 ++++++++----------- .../javascripts/app/models/overview.coffee | 8 +++ 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/app/assets/javascripts/app/controllers/overview.coffee b/app/assets/javascripts/app/controllers/overview.coffee index 377328750..01cd6f043 100644 --- a/app/assets/javascripts/app/controllers/overview.coffee +++ b/app/assets/javascripts/app/controllers/overview.coffee @@ -4,6 +4,11 @@ class Index extends App.ControllerSubContent constructor: -> super + # update group by with current attributes + for attribute in App.Overview.configure_attributes + if attribute.name is 'group_by' + attribute.options = App.Overview.groupByAttributes() + new App.ControllerGenericIndex( el: @el id: @id diff --git a/app/assets/javascripts/app/controllers/ticket_overview.coffee b/app/assets/javascripts/app/controllers/ticket_overview.coffee index 7cf83f63e..328a63a43 100644 --- a/app/assets/javascripts/app/controllers/ticket_overview.coffee +++ b/app/assets/javascripts/app/controllers/ticket_overview.coffee @@ -1430,49 +1430,43 @@ class App.OverviewSettings extends App.ControllerModal }) @configure_attributes_article.push({ - name: "view::#{@view_mode}" - display: 'Attributes' - tag: 'checkboxTicketAttributes' - default: @overview.view[@view_mode] - null: false + name: "view::#{@view_mode}" + display: 'Attributes' + tag: 'checkboxTicketAttributes' + default: @overview.view[@view_mode] + null: false translate: true - sortBy: null + sortBy: null }, { - name: 'order::by' - display: 'Order' - tag: 'selectTicketAttributes' - default: @overview.order.by - null: false + name: 'order::by' + display: 'Order' + tag: 'selectTicketAttributes' + default: @overview.order.by + null: false translate: true - sortBy: null + sortBy: null }, { - name: 'order::direction' - display: 'Direction' - tag: 'select' - default: @overview.order.direction - null: false + name: 'order::direction' + display: 'Direction' + tag: 'select' + default: @overview.order.direction + null: false translate: true options: ASC: 'up' DESC: 'down' }, { - name: 'group_by' - display: 'Group by' - tag: 'select' - default: @overview.group_by - null: true + name: 'group_by' + display: 'Group by' + tag: 'select' + default: @overview.group_by + null: true nulloption: true translate: true - options: - customer: 'Customer' - organization: 'Organization' - state: 'State' - priority: 'Priority' - group: 'Group' - owner: 'Owner' + options: App.Overview.groupByAttributes() }) controller = new App.ControllerForm( diff --git a/app/assets/javascripts/app/models/overview.coffee b/app/assets/javascripts/app/models/overview.coffee index d6ad48a3c..b9b61bc2c 100644 --- a/app/assets/javascripts/app/models/overview.coffee +++ b/app/assets/javascripts/app/models/overview.coffee @@ -74,3 +74,11 @@ Sie können auch individuelle Übersichten für einzelne Agenten oder agenten Gr uiUrl: -> "#ticket/view/#{@link}" + + @groupByAttributes: -> + groupByAttributes = {} + for key, attribute of App.Ticket.attributesGet() + if !key.match(/(_at|_no)$/) && attribute.tag isnt 'datetime' && key isnt 'number' && key isnt 'tags' + key = key.replace(/_(id|ids)$/, '') + groupByAttributes[key] = attribute.display + groupByAttributes