Fixes #3213 - Relative fields get copied on macro
This commit is contained in:
parent
a557a52c12
commit
03b56b8fc8
3 changed files with 55 additions and 5 deletions
|
@ -333,7 +333,15 @@ class App.UiElement.ticket_perform_action
|
||||||
'relative'
|
'relative'
|
||||||
]
|
]
|
||||||
|
|
||||||
if _.include(relative_operators, meta.operator)
|
upcoming_operator = meta.operator
|
||||||
|
|
||||||
|
if !_.include(config.operator, upcoming_operator)
|
||||||
|
if Array.isArray(config.operator)
|
||||||
|
upcoming_operator = config.operator[0]
|
||||||
|
else
|
||||||
|
upcoming_operator = null
|
||||||
|
|
||||||
|
if _.include(relative_operators, upcoming_operator)
|
||||||
config['name'] = "#{attribute.name}::#{groupAndAttribute}"
|
config['name'] = "#{attribute.name}::#{groupAndAttribute}"
|
||||||
if attribute.value && attribute.value[groupAndAttribute]
|
if attribute.value && attribute.value[groupAndAttribute]
|
||||||
config['value'] = _.clone(attribute.value[groupAndAttribute])
|
config['value'] = _.clone(attribute.value[groupAndAttribute])
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// ticket_perform_action
|
// ticket_perform_action
|
||||||
test( "ticket_perform_action check", function() {
|
test( "ticket_perform_action check", function(assert) {
|
||||||
|
|
||||||
App.TicketPriority.refresh([
|
App.TicketPriority.refresh([
|
||||||
{
|
{
|
||||||
|
@ -251,7 +251,6 @@ test( "ticket_perform_action check", function() {
|
||||||
row.find('.js-datepicker').datepicker('setDate')
|
row.find('.js-datepicker').datepicker('setDate')
|
||||||
row.find('.js-timepicker').val(date_parsed.getHours() + ':' + date_parsed.getMinutes()).trigger('blur')
|
row.find('.js-timepicker').val(date_parsed.getHours() + ':' + date_parsed.getMinutes()).trigger('blur')
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
|
||||||
test_params = {
|
test_params = {
|
||||||
ticket_perform_action1: {
|
ticket_perform_action1: {
|
||||||
'ticket.state_id': {
|
'ticket.state_id': {
|
||||||
|
@ -288,7 +287,14 @@ test( "ticket_perform_action check", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var done = assert.async()
|
||||||
|
|
||||||
|
setTimeout(function(){
|
||||||
|
params = App.ControllerForm.params(el)
|
||||||
deepEqual(params, test_params, 'form param check')
|
deepEqual(params, test_params, 'form param check')
|
||||||
|
done()
|
||||||
|
}, 0);
|
||||||
|
|
||||||
// switch pending time to relative
|
// switch pending time to relative
|
||||||
|
|
||||||
|
@ -504,3 +510,39 @@ test( "ticket_perform_action backwards check after PR#2862", function() {
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
deepEqual(params, test_params, 'form param check')
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test( "ticket_perform_action orphan time fields", function() {
|
||||||
|
$('#forms').append('<hr><h1>ticket_perform_action orphan time fields</h1><form id="form4"></form>')
|
||||||
|
|
||||||
|
var el = $('#form4')
|
||||||
|
|
||||||
|
var defaults = {
|
||||||
|
ticket_perform_action4: {
|
||||||
|
'ticket.pending_time': {
|
||||||
|
operator: 'relative',
|
||||||
|
value: '1'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new App.ControllerForm({
|
||||||
|
el: el,
|
||||||
|
model: {
|
||||||
|
configure_attributes: [
|
||||||
|
{
|
||||||
|
name: 'ticket_perform_action4',
|
||||||
|
display: 'TicketPerformAction4',
|
||||||
|
tag: 'ticket_perform_action',
|
||||||
|
null: true,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
params: defaults,
|
||||||
|
autofocus: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// change to another attribute
|
||||||
|
el.find('select:first').val('ticket.tags').trigger('change')
|
||||||
|
|
||||||
|
equal(el.find('.js-valueRangeSelector').length, 0)
|
||||||
|
});
|
||||||
|
|
|
@ -107,7 +107,7 @@ RSpec.describe 'QUnit', type: :system, authenticated_as: false, set_up: true, we
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'Ticket perform action' do
|
it 'Ticket perform action' do
|
||||||
q_unit_tests('form_ticket_perform_action')
|
async_q_unit_tests('form_ticket_perform_action')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'Ticket macro' do
|
it 'Ticket macro' do
|
||||||
|
|
Loading…
Reference in a new issue