diff --git a/app/assets/javascripts/app/controllers/report.js.coffee b/app/assets/javascripts/app/controllers/report.js.coffee index 3d63b9357..e3f3ebfd7 100644 --- a/app/assets/javascripts/app/controllers/report.js.coffee +++ b/app/assets/javascripts/app/controllers/report.js.coffee @@ -188,11 +188,12 @@ class Download extends App.Controller reports = [] # select first backend, if no backend is selected - $('.js-backendSelector:checked').each( (index, element) -> - if $(element).hasClass('download') - value = $(element).val() - reports.push value - ) + @backendSelected = undefined + if @config.metric[@params.metric] + for backend in @config.metric[@params.metric].backend + console.log('bac', backend) + if backend.dataDownload && !@backendSelected + @backendSelected = backend.name # get used profiles profiles = [] @@ -203,26 +204,10 @@ class Download extends App.Controller profiles.push App.ReportProfile.find(key) @html App.view('report/download_header')( - reports: reports - profiles: profiles - metric: @config.metric[@params.metric] - ) - - @backendSelected = '' - - active = false - @el.find('.js-dataDownloadBackendSelector').each( (index, element) -> - if $(element).parent().hasClass('is-active') - active = true - ) - if !active - @el.find('.js-dataDownloadBackendSelector').first().parent().addClass('is-active') - - # rerender view after backend is selected - @el.find('.js-dataDownloadBackendSelector').each( (index, element) => - if $(element).parent().hasClass('is-active') - @profileSelectedId = $(element).data('profile-id') - @backendSelected = $(element).data('backend') + reports: reports + profiles: profiles + backendSelected: @backendSelected + metric: @config.metric[@params.metric] ) @tableUpdate() @@ -240,7 +225,7 @@ class Download extends App.Controller if App.Config.get('import_mode') url = App.Config.get('import_otrs_endpoint') + '/index.pl?Action=AgentTicketZoom;TicketID=' if _.isEmpty(tickets) - @el.find('js-dataDownloadTable').html('') + @el.find('.js-dataDownloadTable').html('') else html = App.view('report/download_list')( tickets: tickets @@ -248,7 +233,7 @@ class Download extends App.Controller url: url download: @apiPath + '/reports/csvforset/' + name ) - @el.find('js-dataDownloadTable').html(html) + @el.find('.js-dataDownloadTable').html(html) @startLoading() @ajax( @@ -267,14 +252,11 @@ class Download extends App.Controller processData: true success: (data) => @stopLoading() - - # load ticket collection / do not save in localStorage - App.Collection.load( type: 'TicketReport', data: data.tickets, localStorage: true ) + App.Collection.loadAssets(data.assets) ticket_collection = [] - - if data.tickets - for record in data.tickets - ticket = App.TicketReport.fullLocal( record.id ) + if data.ticket_ids + for record_id in data.ticket_ids + ticket = App.Ticket.fullLocal( record_id ) ticket_collection.push ticket table(ticket_collection, data.count) diff --git a/app/assets/javascripts/app/views/report/download_header.jst.eco b/app/assets/javascripts/app/views/report/download_header.jst.eco index d772fe768..03e04c277 100644 --- a/app/assets/javascripts/app/views/report/download_header.jst.eco +++ b/app/assets/javascripts/app/views/report/download_header.jst.eco @@ -4,7 +4,7 @@ <% for profile in @profiles: %> <% for backend in @metric.backend: %> <% if backend.dataDownload: %> -
<%- @P(ticket, 'number') %> | +target="_blank"<% end %> href="<%= @url %><%= ticket.id %>"><%- @P(ticket, 'number') %> | <%- @P(ticket, 'title') %> | <%- @P(ticket, 'state') %> | <%- @P(ticket, 'group') %> | diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index 612f991fa..787361c6b 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -76,12 +76,18 @@ class ReportsController < ApplicationController end # get data - + ticket_ids = [] + assets = {} + Ticket.select('id').all.each {|ticket_part| + ticket = Ticket.lookup(id: ticket_part.id) + assets = ticket.assets(assets) + ticket_ids.push ticket_part.id + } + count = Ticket.count render json: { - data: { - start: start, - stop: stop, - } + ticket_ids: ticket_ids, + assets: assets, + count: count, } end diff --git a/app/models/report.rb b/app/models/report.rb index 22cb72ff2..3f33539a9 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -123,36 +123,36 @@ class Report name: 'first_response_average', display: 'First Response average', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'first_response_max', display: 'First Response max', - selected: true, + selected: false, dataDownload: true, }, { name: 'first_response_min', display: 'First Response min', - selected: true, + selected: false, dataDownload: true, }, { name: 'solution_time_average', display: 'Solution Time average', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'solution_time_max', display: 'Solution Time max', - selected: true, + selected: false, dataDownload: true, }, { name: 'solution_time_min', display: 'Solution Time min', - selected: true, + selected: false, dataDownload: true, }, ] @@ -168,43 +168,43 @@ class Report name: 'phone_in', display: 'Phone (in)', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'phone_out', display: 'Phone (out)', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'email_in', display: 'Email (in)', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'email_out', display: 'Email (out)', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'web_in', display: 'Web (in)', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'twitter_in', display: 'Twitter (in)', selected: true, - dataDownload: true, + dataDownload: false, }, { name: 'twitter_out', display: 'Twitter (out)', selected: true, - dataDownload: true, + dataDownload: false, }, ] config[:metric][:communication][:backend] = backend