Implemented poc of issue #55.

This commit is contained in:
Martin Edenhofer 2013-04-17 15:54:04 +02:00
parent 4ad6a42029
commit 7072f88d3e
2 changed files with 27 additions and 40 deletions

View file

@ -6,7 +6,6 @@ class Index extends App.Controller
'submit form': 'submit' 'submit form': 'submit'
'click .submit': 'submit' 'click .submit': 'submit'
'click .cancel': 'cancel' 'click .cancel': 'cancel'
'click .article-type': 'articleTypeSelect'
constructor: (params) -> constructor: (params) ->
super super
@ -20,10 +19,22 @@ class Index extends App.Controller
@navupdate '#ticket_create' @navupdate '#ticket_create'
@edit_form = undefined @edit_form = undefined
@article_type = 'phone' if !@type
@article_type_map = @type = 'call_inbound'
'phone': 'Customer' article_sender_type_map =
'email': 'Agent' 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) @fetch(params)
@ -117,6 +128,7 @@ class Index extends App.Controller
] ]
@html App.view('agent_ticket_create')( @html App.view('agent_ticket_create')(
head: 'New Ticket' head: 'New Ticket'
title: @article_attributes['title']
agent: @isRole('Agent') agent: @isRole('Agent')
admin: @isRole('Admin') admin: @isRole('Admin')
) )
@ -131,12 +143,6 @@ class Index extends App.Controller
form_data: @edit_form form_data: @edit_form
) )
# send chanel type
if defaults['article_type']
@articleTypeSet( defaults['article_type'] )
else
@articleTypeSet( @article_type )
# add elastic to textarea # add elastic to textarea
@el.find('textarea').elastic() @el.find('textarea').elastic()
@ -163,21 +169,6 @@ class Index extends App.Controller
localUserInfo: (params) => localUserInfo: (params) =>
@userInfo( user_id: params.customer_id ) @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) => userNew: (e) =>
e.preventDefault() e.preventDefault()
new UserNew() new UserNew()
@ -197,11 +188,11 @@ class Index extends App.Controller
# create ticket # create ticket
object = new App.Ticket object = new App.Ticket
@log 'updateAttributes', params, @article_type, @article_type_map[@article_type]
# find sender_id # find sender_id
sender = App.Collection.findByAttribute( 'TicketArticleSender', 'name', @article_type_map[@article_type] ) sender = App.Collection.findByAttribute( 'TicketArticleSender', 'name', @article_attributes['sender'] )
type = App.Collection.findByAttribute( 'TicketArticleType', 'name', @article_type ) type = App.Collection.findByAttribute( 'TicketArticleType', 'name', @article_attributes['article'] )
if params.group_id if params.group_id
group = App.Collection.find( 'Group', 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', Index, 'Routes' )
App.Config.set( 'ticket_create/:ticket_id/:article_id', 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' )

View file

@ -1,15 +1,7 @@
<div class="page-header"> <div class="page-header">
<div class="row"> <div class="row">
<div class="span9"> <div class="span12">
<h1 class="pull-left"><%- @T( 'New Ticket' ) %> <% if @admin: %><small><a href="#" data-type="settings" class="icon-edit"></a></small><% end %></h1> <h1 class="pull-left"><%- @T( 'New Ticket' ) %> <small>(<%- @T( @title ) %>)<% if @admin: %> <a href="#" data-type="settings" class="icon-edit"></a><% end %></small></h1>
</div>
<div class="span3">
<% if @agent: %>
<div class="btn-group pull-right" data-toggle="buttons-radio">
<button type="button" class="btn article-type" data-type="phone"><i class="icon-headphones" title="<%- @T('Create an inbound Ticket') %>"></i></button>
<button type="button" class="btn article-type" data-type="email"><i class="icon-envelope" title="<%- @T('Create an outbound Ticket (will send this as email to customer)') %>"></i></button>
</div>
<% end %>
</div> </div>
</div> </div>
</div> </div>