From 7072f88d3e963dcee4462b0f1b475a6084272d83 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Wed, 17 Apr 2013 15:54:04 +0200 Subject: [PATCH] Implemented poc of issue #55. --- .../controllers/agent_ticket_create.js.coffee | 55 +++++++++---------- .../app/views/agent_ticket_create.jst.eco | 12 +--- 2 files changed, 27 insertions(+), 40 deletions(-) diff --git a/app/assets/javascripts/app/controllers/agent_ticket_create.js.coffee b/app/assets/javascripts/app/controllers/agent_ticket_create.js.coffee index 002b33baa..e6062ced9 100644 --- a/app/assets/javascripts/app/controllers/agent_ticket_create.js.coffee +++ b/app/assets/javascripts/app/controllers/agent_ticket_create.js.coffee @@ -6,7 +6,6 @@ class Index extends App.Controller 'submit form': 'submit' 'click .submit': 'submit' 'click .cancel': 'cancel' - 'click .article-type': 'articleTypeSelect' constructor: (params) -> super @@ -20,10 +19,22 @@ class Index extends App.Controller @navupdate '#ticket_create' @edit_form = undefined - @article_type = 'phone' - @article_type_map = - 'phone': 'Customer' - 'email': 'Agent' + if !@type + @type = 'call_inbound' + article_sender_type_map = + call_inbound: + sender: 'Customer' + article: 'phone' + title: 'Call Inbound' + call_outbound: + sender: 'Agent' + article: 'phone' + title: 'Call Outbound' + email: + sender: 'Agent' + article: 'email' + title: 'Email' + @article_attributes = article_sender_type_map[@type] @fetch(params) @@ -117,6 +128,7 @@ class Index extends App.Controller ] @html App.view('agent_ticket_create')( head: 'New Ticket' + title: @article_attributes['title'] agent: @isRole('Agent') admin: @isRole('Admin') ) @@ -131,12 +143,6 @@ class Index extends App.Controller form_data: @edit_form ) - # send chanel type - if defaults['article_type'] - @articleTypeSet( defaults['article_type'] ) - else - @articleTypeSet( @article_type ) - # add elastic to textarea @el.find('textarea').elastic() @@ -163,21 +169,6 @@ class Index extends App.Controller localUserInfo: (params) => @userInfo( user_id: params.customer_id ) - articleTypeSet: (name) => - console.log 'SET', name - @el.find('.article-type').removeClass('active') - @el.find('.article-type[data-type="' + name + '"]').addClass('active') - @el.find('[name="article_type"]').val(name) - - articleTypeSelect: (e) => - console.log 'SELECT', e - e.preventDefault() - article_type = $(e.target).parent().data('type') - if !article_type - article_type = $(e.target).data('type') - @articleTypeSet( article_type ) - @article_type = article_type - userNew: (e) => e.preventDefault() new UserNew() @@ -197,11 +188,11 @@ class Index extends App.Controller # create ticket object = new App.Ticket - @log 'updateAttributes', params, @article_type, @article_type_map[@article_type] # find sender_id - sender = App.Collection.findByAttribute( 'TicketArticleSender', 'name', @article_type_map[@article_type] ) - type = App.Collection.findByAttribute( 'TicketArticleType', 'name', @article_type ) + sender = App.Collection.findByAttribute( 'TicketArticleSender', 'name', @article_attributes['sender'] ) + type = App.Collection.findByAttribute( 'TicketArticleType', 'name', @article_attributes['article'] ) + if params.group_id group = App.Collection.find( 'Group', params.group_id ) @@ -328,6 +319,10 @@ class UserNew extends App.ControllerModal App.Config.set( 'ticket_create', Index, 'Routes' ) App.Config.set( 'ticket_create/:ticket_id/:article_id', Index, 'Routes' ) +App.Config.set( 'ticket_create/:type', Index, 'Routes' ) -App.Config.set( 'TicketNew', { prio: 8000, parent: '', name: 'New', target: '#ticket_create', role: ['Agent'] }, 'NavBarRight' ) +App.Config.set( 'New', { prio: 8000, parent: '', name: 'New', target: '#new', role: ['Agent'] }, 'NavBarRight' ) +App.Config.set( 'TicketNewCallOutbound', { prio: 8001, parent: '#new', name: 'Call Outbound', target: '#ticket_create/call_outbound', role: ['Agent'] }, 'NavBarRight' ) +App.Config.set( 'TicketNewCallInbound', { prio: 8002, parent: '#new', name: 'Call Inbound', target: '#ticket_create/call_inbound', role: ['Agent'] }, 'NavBarRight' ) +App.Config.set( 'TicketNewEmail', { prio: 8003, parent: '#new', name: 'Email', target: '#ticket_create/email', role: ['Agent'] }, 'NavBarRight' ) diff --git a/app/assets/javascripts/app/views/agent_ticket_create.jst.eco b/app/assets/javascripts/app/views/agent_ticket_create.jst.eco index 6cc2a4d4e..c1f83658d 100644 --- a/app/assets/javascripts/app/views/agent_ticket_create.jst.eco +++ b/app/assets/javascripts/app/views/agent_ticket_create.jst.eco @@ -1,15 +1,7 @@