Fixes #4054 - Searches display all groups and owners on bulk selections.
This commit is contained in:
parent
3f81df1925
commit
81408f7e87
5 changed files with 73 additions and 7 deletions
|
@ -205,6 +205,7 @@ class App.Search extends App.Controller
|
||||||
items.slice(startId+1, endId).find('[name="bulk"]').prop('checked', (-> !@checked))
|
items.slice(startId+1, endId).find('[name="bulk"]').prop('checked', (-> !@checked))
|
||||||
|
|
||||||
@lastChecked = e.currentTarget
|
@lastChecked = e.currentTarget
|
||||||
|
@bulkForm.updateTicketIdsBulkForm(e)
|
||||||
|
|
||||||
ticket_ids = []
|
ticket_ids = []
|
||||||
for item in localList
|
for item in localList
|
||||||
|
|
|
@ -1107,8 +1107,7 @@ class Table extends App.Controller
|
||||||
items.slice(startId+1, endId).find('[name="bulk"]').prop('checked', (-> !@checked))
|
items.slice(startId+1, endId).find('[name="bulk"]').prop('checked', (-> !@checked))
|
||||||
|
|
||||||
@lastChecked = e.currentTarget
|
@lastChecked = e.currentTarget
|
||||||
|
@bulkForm.updateTicketIdsBulkForm(e)
|
||||||
@updateTicketIdsBulkForm()
|
|
||||||
|
|
||||||
callbackIconHeader = (headers) ->
|
callbackIconHeader = (headers) ->
|
||||||
attribute =
|
attribute =
|
||||||
|
@ -1250,11 +1249,6 @@ class Table extends App.Controller
|
||||||
bulkAll.prop('indeterminate', true)
|
bulkAll.prop('indeterminate', true)
|
||||||
)
|
)
|
||||||
|
|
||||||
updateTicketIdsBulkForm: =>
|
|
||||||
items = $('.content.active .table-overview .table').find('[name="bulk"]:checked')
|
|
||||||
ticket_ids = _.map(items, (el) -> $(el).val() )
|
|
||||||
@bulkForm.el.find('input[name=ticket_ids]').val(ticket_ids.join(',')).trigger('change')
|
|
||||||
|
|
||||||
renderCustomerNotTicketExistIfNeeded: (ticketListShow) =>
|
renderCustomerNotTicketExistIfNeeded: (ticketListShow) =>
|
||||||
user = App.User.current()
|
user = App.User.current()
|
||||||
@stopListening user, 'refresh'
|
@stopListening user, 'refresh'
|
||||||
|
|
|
@ -243,3 +243,8 @@ class App.TicketBulkForm extends App.Controller
|
||||||
@render()
|
@render()
|
||||||
@hide()
|
@hide()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
updateTicketIdsBulkForm: (e) ->
|
||||||
|
items = $(e.target).closest('table').find('input[name="bulk"]:checked')
|
||||||
|
ticket_ids = _.map(items, (el) -> $(el).val() )
|
||||||
|
@el.find('input[name=ticket_ids]').val(ticket_ids.join(',')).trigger('change')
|
||||||
|
|
|
@ -9,6 +9,7 @@ class TicketOverviewsController < ApplicationController
|
||||||
# get attributes to update
|
# get attributes to update
|
||||||
attributes_to_change = Ticket::ScreenOptions.attributes_to_change(
|
attributes_to_change = Ticket::ScreenOptions.attributes_to_change(
|
||||||
view: 'ticket_overview',
|
view: 'ticket_overview',
|
||||||
|
screen: 'overview_bulk',
|
||||||
current_user: current_user,
|
current_user: current_user,
|
||||||
)
|
)
|
||||||
render json: attributes_to_change
|
render json: attributes_to_change
|
||||||
|
|
|
@ -232,4 +232,69 @@ RSpec.describe 'Search', type: :system, authenticated: true, searchindex: true d
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'Searches display all groups and owners on bulk selections #4054', authenticated_as: :authenticate do
|
||||||
|
let(:group1) { create(:group) }
|
||||||
|
let(:group2) { create(:group) }
|
||||||
|
let(:agent1) { create(:agent, groups: [group1]) }
|
||||||
|
let(:agent2) { create(:agent, groups: [group2]) }
|
||||||
|
let(:agent_all) { create(:agent, groups: [group1, group2]) }
|
||||||
|
let(:ticket1) { create(:ticket, group: group1, title: '4054 group 1') }
|
||||||
|
let(:ticket2) { create(:ticket, group: group2, title: '4054 group 2') }
|
||||||
|
|
||||||
|
def authenticate
|
||||||
|
agent1 && agent2 && agent_all
|
||||||
|
ticket1 && ticket2
|
||||||
|
agent_all
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_owner_empty
|
||||||
|
expect(page).to have_select('owner_id', text: '-', visible: :all)
|
||||||
|
expect(page).to have_no_select('owner_id', text: agent1.fullname, visible: :all)
|
||||||
|
expect(page).to have_no_select('owner_id', text: agent2.fullname, visible: :all)
|
||||||
|
end
|
||||||
|
|
||||||
|
def click_ticket(ticket)
|
||||||
|
page.find(".js-tableBody tr.item[data-id='#{ticket.id}'] td.js-checkbox-field").click
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_owner_agent1_shown
|
||||||
|
expect(page).to have_select('owner_id', text: agent1.fullname)
|
||||||
|
expect(page).to have_no_select('owner_id', text: agent2.fullname)
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_owner_agent2_shown
|
||||||
|
expect(page).to have_no_select('owner_id', text: agent1.fullname)
|
||||||
|
expect(page).to have_select('owner_id', text: agent2.fullname)
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_owner_field
|
||||||
|
check_owner_empty
|
||||||
|
click_ticket(ticket1)
|
||||||
|
check_owner_agent1_shown
|
||||||
|
click_ticket(ticket1)
|
||||||
|
click_ticket(ticket2)
|
||||||
|
check_owner_agent2_shown
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when search is used' do
|
||||||
|
before do
|
||||||
|
visit '#search/4054'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'does show the correct owner selection for each bulk action' do
|
||||||
|
check_owner_field
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when ticket overview is used' do
|
||||||
|
before do
|
||||||
|
visit '#ticket/view/all_unassigned'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'does show the correct owner selection for each bulk action' do
|
||||||
|
check_owner_field
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue