123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- window.onload = function() {
- // model
- QUnit.test( "model ui basic tests", assert => {
- // load ref object
- App.Collection.loadAssets({
- TicketState: {
- 1: {
- name: 'new', id: 1, updated_at: "2014-11-07T23:43:08.000Z",
- },
- 2: {
- name: 'open', id: 2, updated_at: "2014-11-07T23:43:08.000Z",
- },
- 3: {
- name: 'closed <>&', id: 3, updated_at: "2014-11-07T23:43:08.000Z",
- },
- },
- })
- // create ticket
- var attribute1 = {
- name: 'date', display: 'date 1', tag: 'date', null: true
- };
- App.Ticket.configure_attributes.push( attribute1 )
- var attribute2 = {
- name: 'textarea', display: 'textarea 1', tag: 'textarea', null: true
- };
- App.Ticket.configure_attributes.push( attribute2 )
- var attribute3 = {
- name: 'link1', display: 'link 1', linktemplate: 'http://zammad.com', tag: 'input', null: true, translate: true
- };
- App.Ticket.configure_attributes.push( attribute3 )
- var attribute4 = {
- name: 'link2', display: 'link 1', linktemplate: 'http://zammad.com', tag: 'input', null: true
- };
- App.Ticket.configure_attributes.push( attribute4 )
- var attribute5 = {
- name: 'multiselect',
- display: 'Multi Select',
- tag: 'multiselect',
- options: [
- {
- name: 'One',
- value: '1',
- },
- {
- name: 'Two',
- value: '2',
- },
- {
- name: 'Three',
- value: '3',
- },
- {
- name: 'Four',
- value: '4',
- },
- {
- name: 'Five',
- value: '5',
- },
- ],
- linktemplate: '',
- null: true,
- relation: '',
- nulloption: true,
- maxlength: 255,
- multiple: true,
- }
- App.Ticket.configure_attributes.push(attribute5)
- var ticket = new App.Ticket()
- ticket.load({
- id: 1000,
- title: 'some title <>&',
- state_id: 2,
- updated_at: '2014-11-07T23:43:08.000Z',
- date: '2015-02-07',
- textarea: "some new\nline",
- link1: 'closed',
- link2: 'closed',
- multiselect: ['1', '2', '3']
- })
- App.i18n.set('en-us')
- assert.equal( App.viewPrint( ticket, 'id' ), 1000)
- assert.equal( App.viewPrint( ticket, 'title' ), 'some title <>&')
- assert.equal( App.viewPrint( ticket, 'state' ), 'open')
- assert.equal( App.viewPrint( ticket, 'state_id' ), 'open')
- assert.equal( App.viewPrint( ticket, 'not_existing' ), '-')
- assert.equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="11/07/2014 11:43 pm">11/07/2014</time>')
- assert.equal( App.viewPrint( ticket, 'date' ), '02/07/2015')
- assert.equal( App.viewPrint( ticket, 'textarea' ), '<div>some new</div><div>line</div>')
- assert.equal( App.viewPrint( ticket, 'link1' ), '<a href="http://zammad.com" target="_blank">closed</a>')
- assert.equal( App.viewPrint( ticket, 'link2' ), '<a href="http://zammad.com" target="_blank">closed</a>')
- assert.equal( App.viewPrint( ticket, 'multiselect' ), 'One, Two, Three', 'multiselect test 1')
- let stub = sinon.stub(App.Config, 'get')
- stub.withArgs('timezone_default').returns('Example/Timezone')
- let attr = App.Ticket.configure_attributes.find(e => { return e.name == 'updated_at' })
- attr.include_timezone = true
- assert.equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="11/07/2014 11:43 pm Example/Timezone" timezone="Example/Timezone">11/07/2014</time>')
- attr.include_timezone = false
- stub.restore()
- App.i18n.set('de-de')
- assert.equal( App.viewPrint( ticket, 'id' ), 1000)
- assert.equal( App.viewPrint( ticket, 'title' ), 'some title <>&')
- assert.equal( App.viewPrint( ticket, 'state' ), 'offen')
- assert.equal( App.viewPrint( ticket, 'state_id' ), 'offen')
- assert.equal( App.viewPrint( ticket, 'not_existing' ), '-')
- assert.equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="07.11.2014 23:43">07.11.2014</time>')
- assert.equal( App.viewPrint( ticket, 'date' ), '07.02.2015')
- assert.equal( App.viewPrint( ticket, 'textarea' ), '<div>some new</div><div>line</div>')
- assert.equal( App.viewPrint( ticket, 'link1' ), '<a href="http://zammad.com" target="_blank">geschlossen</a>')
- assert.equal( App.viewPrint( ticket, 'link2' ), '<a href="http://zammad.com" target="_blank">closed</a>')
- assert.equal( App.viewPrint( ticket, 'multiselect' ), 'One, Two, Three', 'multiselect test 2')
- App.i18n.set('en-us')
- ticket.state_id = 3
- assert.equal( App.viewPrint( ticket, 'state' ), 'closed <>&')
- assert.equal( App.viewPrint( ticket, 'state_id' ), 'closed <>&')
- App.i18n.set('de')
- assert.equal( App.viewPrint( ticket, 'state' ), 'closed <>&')
- assert.equal( App.viewPrint( ticket, 'state_id' ), 'closed <>&')
- // multiselect single value in array
- ticket.load({
- multiselect: ['4']
- })
- assert.equal( App.viewPrint( ticket, 'multiselect' ), 'Four', 'multiselect single value in array')
- // multiselect single value in string
- ticket.load({
- multiselect: '4'
- })
- assert.equal( App.viewPrint( ticket, 'multiselect' ), 'Four', 'multiselect single value in string')
- // multiselect multiple value
- ticket.load({
- multiselect: ['3', '4', '5']
- })
- assert.equal( App.viewPrint( ticket, 'multiselect' ), 'Three, Four, Five', 'multiselect multiple value')
- // multiselect no value
- ticket.load({
- multiselect: null
- })
- assert.equal( App.viewPrint( ticket, 'multiselect' ), '-', 'multiselect no value')
- // normal string
- data = {
- a: 1,
- b: 'abc',
- c: {
- displayName: function() { return "my displayName <>&" }
- },
- }
- assert.equal( App.viewPrint( data, 'a' ), 1)
- assert.equal( App.viewPrint( data, 'b' ), 'abc')
- assert.equal( App.viewPrint( data, 'c' ), 'my displayName <>&')
- });
- QUnit.test("Object 'active' neither handled nor translated when displayed #4529", assert => {
- App.User.configure_attributes.push({ name: 'active', display: __('Active'), tag: 'active' })
- App.User.refresh([
- {
- login: "nicole.braun@zammad.org",
- firstname: "Nicole",
- lastname: "Braun",
- email: "nicole.braun@zammad.org",
- web: "",
- phone: "",
- fax: "",
- mobile: "",
- street: "",
- zip: "",
- city: "",
- country: "",
- organization_id: 1,
- department: "",
- note: "",
- role_ids: [],
- group_ids: {},
- active: true,
- updated_at: "2023-08-23T08:59:15.437Z",
- organization_ids: [],
- address: "",
- vip: false,
- id: 2
- }
- ])
- App.i18n.set('de-de')
- user = App.User.find(2)
- assert.equal( App.viewPrint(user, 'active'), 'aktiv')
- user.active = false
- assert.equal(App.viewPrint(user, 'active'), 'nicht aktiv')
- user.active = null
- assert.equal( App.viewPrint(user, 'active'), '-')
- })
- }
|