|
@@ -1,10 +1,99 @@
|
|
|
class App.TicketMerge extends App.ControllerModal
|
|
|
constructor: ->
|
|
|
super
|
|
|
- @render()
|
|
|
+ @fetch()
|
|
|
+
|
|
|
+ fetch: ->
|
|
|
+
|
|
|
+ # merge tickets
|
|
|
+ App.Com.ajax(
|
|
|
+ id: 'ticket_merge_list',
|
|
|
+ type: 'GET',
|
|
|
+ url: '/api/ticket_merge_list/' + @ticket_id,
|
|
|
+ data: {
|
|
|
+# view: @view
|
|
|
+ }
|
|
|
+ processData: true,
|
|
|
+ success: (data, status, xhr) =>
|
|
|
+
|
|
|
+ if data.customer
|
|
|
+ App.Collection.load( type: 'Ticket', data: data.customer.tickets )
|
|
|
+ App.Collection.load( type: 'User', data: data.customer.users )
|
|
|
+
|
|
|
+ if data.recent
|
|
|
+ App.Collection.load( type: 'Ticket', data: data.recent.tickets )
|
|
|
+ App.Collection.load( type: 'User', data: data.recent.users )
|
|
|
+
|
|
|
+ @render( data )
|
|
|
+ )
|
|
|
+
|
|
|
+ render: (data) ->
|
|
|
|
|
|
- render: ->
|
|
|
@html App.view('agent_ticket_merge')()
|
|
|
+
|
|
|
+ list = []
|
|
|
+ for t in data.customer.tickets
|
|
|
+ ticketItem = App.Collection.find( 'Ticket', t.id )
|
|
|
+ list.push ticketItem
|
|
|
+ new App.ControllerTable(
|
|
|
+ el: @el.find('#ticket-merge-customer-tickets'),
|
|
|
+ overview_extended: [
|
|
|
+ { name: 'number', link: true },
|
|
|
+ { name: 'title', link: true },
|
|
|
+# { name: 'customer', class: 'user-data', data: { id: true } },
|
|
|
+ { name: 'ticket_state', translate: true },
|
|
|
+# { name: 'ticket_priority', translate: true },
|
|
|
+ { name: 'group' },
|
|
|
+# { name: 'owner', class: 'user-data', data: { id: true } },
|
|
|
+ { name: 'created_at', callback: @humanTime },
|
|
|
+# { name: 'last_contact', callback: @frontendTime },
|
|
|
+# { name: 'last_contact_agent', callback: @frontendTime },
|
|
|
+# { name: 'last_contact_customer', callback: @frontendTime },
|
|
|
+# { name: 'first_response', callback: @frontendTime },
|
|
|
+# { name: 'close_time', callback: @frontendTime },
|
|
|
+ ],
|
|
|
+ model: App.Ticket,
|
|
|
+ objects: list,
|
|
|
+ radio: true,
|
|
|
+ )
|
|
|
+
|
|
|
+ list = []
|
|
|
+ for t in data.recent.tickets
|
|
|
+ ticketItem = App.Collection.find( 'Ticket', t.id )
|
|
|
+ list.push ticketItem
|
|
|
+ new App.ControllerTable(
|
|
|
+ el: @el.find('#ticket-merge-recent-tickets'),
|
|
|
+ overview_extended: [
|
|
|
+ { name: 'number', link: true },
|
|
|
+ { name: 'title', link: true },
|
|
|
+# { name: 'customer', class: 'user-data', data: { id: true } },
|
|
|
+ { name: 'ticket_state', translate: true },
|
|
|
+# { name: 'ticket_priority', translate: true },
|
|
|
+ { name: 'group' },
|
|
|
+# { name: 'owner', class: 'user-data', data: { id: true } },
|
|
|
+ { name: 'created_at', callback: @humanTime },
|
|
|
+# { name: 'last_contact', callback: @frontendTime },
|
|
|
+# { name: 'last_contact_agent', callback: @frontendTime },
|
|
|
+# { name: 'last_contact_customer', callback: @frontendTime },
|
|
|
+# { name: 'first_response', callback: @frontendTime },
|
|
|
+# { name: 'close_time', callback: @frontendTime },
|
|
|
+ ],
|
|
|
+ model: App.Ticket,
|
|
|
+ objects: list,
|
|
|
+ radio: true,
|
|
|
+ )
|
|
|
+
|
|
|
+ @el.delegate('[name="master_ticket_number"]', 'focus', (e) ->
|
|
|
+ $(e.target).parents().find('[name="radio"]').attr( 'checked', false )
|
|
|
+ )
|
|
|
+
|
|
|
+ @el.delegate('[name="radio"]', 'click', (e) ->
|
|
|
+ if $(e.target).attr('checked')
|
|
|
+ ticket_id = $(e.target).val()
|
|
|
+ ticket = App.Collection.find( 'Ticket', ticket_id )
|
|
|
+ $(e.target).parents().find('[name="master_ticket_number"]').val( ticket.number )
|
|
|
+ )
|
|
|
+
|
|
|
@modalShow()
|
|
|
|
|
|
submit: (e) =>
|