123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 |
- // ticket_perform_action
- test( "ticket_perform_action check", function() {
- App.TicketPriority.refresh([
- {
- id: 2,
- name: '2 normal',
- active: false,
- },
- {
- id: 1,
- name: '1 low',
- active: true,
- },
- ])
- App.TicketState.refresh([
- {
- id: 1,
- name: 'new',
- active: true,
- },
- {
- id: 2,
- name: 'open',
- active: true,
- },
- {
- id: 3,
- name: 'closed',
- active: false,
- },
- ])
- $('#forms').append('<hr><h1>ticket_perform_action check</h1><form id="form1"></form>')
- var el = $('#form1')
- var defaults = {
- ticket_perform_action1: {
- 'ticket.state_id': {
- value: '2'
- }
- },
- ticket_perform_action2: {
- 'ticket.state_id': {
- value: '1'
- },
- 'ticket.priority_id': {
- value: '2'
- },
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: ['ticket_owner', 'ticket_customer'],
- subject: 'some subject'
- },
- },
- ticket_perform_action3: {
- 'ticket.state_id': {
- value: '3'
- },
- }
- }
- new App.ControllerForm({
- el: el,
- model: {
- configure_attributes: [
- {
- name: 'ticket_perform_action1',
- display: 'TicketPerformAction1',
- tag: 'ticket_perform_action',
- null: true,
- },
- {
- name: 'ticket_perform_action2',
- display: 'TicketPerformAction2',
- tag: 'ticket_perform_action',
- null: false,
- notification: true,
- },
- {
- name: 'ticket_perform_action3',
- display: 'TicketPerformAction3',
- tag: 'ticket_perform_action',
- null: true,
- notification: true,
- },
- ]
- },
- params: defaults,
- autofocus: true
- })
- var params = App.ControllerForm.params(el)
- var test_params = {
- ticket_perform_action1: {
- 'ticket.state_id': {
- value: '2'
- }
- },
- ticket_perform_action2: {
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: ['ticket_owner', 'ticket_customer'],
- subject: 'some subject'
- },
- 'ticket.priority_id': {
- value: '2'
- },
- 'ticket.state_id': {
- value: '1'
- },
- },
- ticket_perform_action3: {
- 'ticket.state_id': {
- value: '3'
- }
- }
- }
- deepEqual(params, test_params, 'form param check')
- // add email notification
- $('[data-attribute-name="ticket_perform_action3"] .js-add').click()
- $('[data-attribute-name="ticket_perform_action3"] .js-attributeSelector .form-control').last().val('notification.email').trigger('change')
- $('[data-attribute-name="ticket_perform_action3"] .js-setNotification [name="ticket_perform_action3::notification.email::subject"]').val('some subject').trigger('change')
- $('[data-attribute-name="ticket_perform_action3"] .js-setNotification [data-name="ticket_perform_action3::notification.email::body"]').html('some body').trigger('change')
- $('[data-attribute-name="ticket_perform_action3"] .js-setNotification .js-recipient .js-option[data-value="ticket_owner"]').click()
- params = App.ControllerForm.params(el)
- test_params = {
- ticket_perform_action1: {
- 'ticket.state_id': {
- value: '2'
- }
- },
- ticket_perform_action2: {
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: ['ticket_owner', 'ticket_customer'],
- subject: 'some subject'
- },
- 'ticket.priority_id': {
- value: '2'
- },
- 'ticket.state_id': {
- value: '1'
- },
- },
- ticket_perform_action3: {
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: 'ticket_owner',
- subject: 'some subject'
- },
- 'ticket.state_id': {
- value: '3'
- }
- }
- }
- deepEqual(params, test_params, 'form param check')
- // remove recipient
- $('[data-attribute-name="ticket_perform_action2"] .js-setNotification .js-recipient .js-remove.js-option[data-value="ticket_owner"]').click()
- params = App.ControllerForm.params(el)
- test_params = {
- ticket_perform_action1: {
- 'ticket.state_id': {
- value: '2'
- }
- },
- ticket_perform_action2: {
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: 'ticket_customer',
- subject: 'some subject'
- },
- 'ticket.priority_id': {
- value: '2'
- },
- 'ticket.state_id': {
- value: '1'
- },
- },
- ticket_perform_action3: {
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: 'ticket_owner',
- subject: 'some subject'
- },
- 'ticket.state_id': {
- value: '3'
- }
- }
- }
- deepEqual(params, test_params, 'form param check')
- // set notification to internal
- $('[data-attribute-name="ticket_perform_action2"] .js-internal select').val('true').trigger('change')
- params = App.ControllerForm.params(el)
- test_params = {
- ticket_perform_action1: {
- 'ticket.state_id': {
- value: '2'
- }
- },
- ticket_perform_action2: {
- 'notification.email': {
- body: 'some body',
- internal: 'true',
- recipient: 'ticket_customer',
- subject: 'some subject'
- },
- 'ticket.priority_id': {
- value: '2'
- },
- 'ticket.state_id': {
- value: '1'
- },
- },
- ticket_perform_action3: {
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: 'ticket_owner',
- subject: 'some subject'
- },
- 'ticket.state_id': {
- value: '3'
- }
- }
- }
- deepEqual(params, test_params, 'form param check')
- });
- // Test for backwards compatibility after issue is fixed https://github.com/zammad/zammad/issues/2782
- test( "ticket_perform_action backwards check after issue #2782", function() {
- $('#forms').append('<hr><h1>ticket_perform_action check</h1><form id="form2"></form>')
- var el = $('#form2')
- var defaults = {
- ticket_perform_action5: {
- 'notification.email': {
- body: 'some body',
- recipient: ['ticket_owner', 'ticket_customer'],
- subject: 'some subject'
- },
- },
- }
- new App.ControllerForm({
- el: el,
- model: {
- configure_attributes: [
- {
- name: 'ticket_perform_action5',
- display: 'TicketPerformAction5',
- tag: 'ticket_perform_action',
- null: true,
- },
- ]
- },
- params: defaults,
- autofocus: true
- })
- var params = App.ControllerForm.params(el)
- var test_params = {
- ticket_perform_action5: {
- 'notification.email': {
- body: 'some body',
- internal: 'false',
- recipient: ['ticket_owner', 'ticket_customer'],
- subject: 'some subject'
- },
- }
- }
- deepEqual(params, test_params, 'form param check')
- });
- test( "ticket_perform_action rows manipulation", function() {
- App.TicketPriority.refresh([
- {
- id: 2,
- name: '2 normal',
- active: false,
- },
- {
- id: 1,
- name: '1 low',
- active: true,
- },
- ])
- App.TicketState.refresh([
- {
- id: 1,
- name: 'new',
- active: true,
- },
- {
- id: 2,
- name: 'open',
- active: true,
- },
- {
- id: 3,
- name: 'closed',
- active: false,
- },
- ])
- $('#forms').append('<hr><h1>ticket_perform_action rows manipulation</h1><form id="form99"></form>')
- var el = $('#form99')
- var defaults = {
- ticket_perform_action1: {
- 'ticket.state_id': {
- value: '2'
- }
- }
- }
- new App.ControllerForm({
- el: el,
- model: {
- configure_attributes: [
- {
- name: 'ticket_perform_action99',
- display: 'TicketPerformAction99',
- tag: 'ticket_perform_action',
- null: true,
- },
- ]
- },
- params: defaults,
- autofocus: true
- })
- equal(true, true)
- var selector = '[data-attribute-name="ticket_perform_action99"] '
- $(selector + '.js-remove').click()
- equal($(selector + '.js-filterElement').length, 1, 'prevents removing single initial row')
- $(selector + '.js-add').click()
- equal($(selector + '.js-filterElement').length, 2, 'adds 2nd row')
- $(selector + ' .js-remove:last').click()
- equal($(selector + '.js-filterElement').length, 1, 'removes 2nd row')
- $(selector + '.js-remove:last').click()
- equal($(selector + ' .js-filterElement').length, 1, 'prevents removing last row')
- });
|