Fixed issue #705 - Time accounting works only with dot. Fixed issue #670 - Auto Focus on "Time Accounting" Popupbox.
This commit is contained in:
parent
7e947dc4bf
commit
b70b530e2a
5 changed files with 202 additions and 5 deletions
|
@ -678,6 +678,7 @@ class App.ControllerModal extends App.Controller
|
||||||
container: null
|
container: null
|
||||||
buttonClass: 'btn--success'
|
buttonClass: 'btn--success'
|
||||||
centerButtons: []
|
centerButtons: []
|
||||||
|
leftButtons: []
|
||||||
buttonClose: true
|
buttonClose: true
|
||||||
buttonCancel: false
|
buttonCancel: false
|
||||||
buttonCancelClass: 'btn--text btn--subtle'
|
buttonCancelClass: 'btn--text btn--subtle'
|
||||||
|
@ -729,6 +730,7 @@ class App.ControllerModal extends App.Controller
|
||||||
buttonSubmit: @buttonSubmit
|
buttonSubmit: @buttonSubmit
|
||||||
buttonClass: @buttonClass
|
buttonClass: @buttonClass
|
||||||
centerButtons: @centerButtons
|
centerButtons: @centerButtons
|
||||||
|
leftButtons: @leftButtons
|
||||||
)
|
)
|
||||||
modal.find('.modal-body').html content
|
modal.find('.modal-body').html content
|
||||||
if !@initRenderingDone
|
if !@initRenderingDone
|
||||||
|
|
|
@ -1,20 +1,47 @@
|
||||||
class App.TicketZoomTimeAccounting extends App.ControllerModal
|
class App.TicketZoomTimeAccounting extends App.ControllerModal
|
||||||
buttonClose: true
|
buttonClose: true
|
||||||
buttonCancel: 'skip'
|
buttonCancel: false
|
||||||
buttonSubmit: 'Account Time'
|
buttonSubmit: 'Account Time'
|
||||||
buttonClass: 'btn--success'
|
buttonClass: 'btn--success'
|
||||||
|
leftButtons: [{
|
||||||
|
className: 'btn--text btn--subtle js-skip',
|
||||||
|
text: 'skip'
|
||||||
|
}]
|
||||||
head: 'Time Accounting'
|
head: 'Time Accounting'
|
||||||
small: true
|
small: true
|
||||||
|
|
||||||
|
events:
|
||||||
|
'submit form': 'submit'
|
||||||
|
'click .js-submit:not(.is-disabled)': 'submit'
|
||||||
|
'click .js-cancel': 'cancel'
|
||||||
|
'click .js-close': 'cancel'
|
||||||
|
'click .js-skip': 'skip'
|
||||||
|
|
||||||
content: ->
|
content: ->
|
||||||
App.view('ticket_zoom/time_accounting')()
|
App.view('ticket_zoom/time_accounting')()
|
||||||
|
|
||||||
|
onShown: =>
|
||||||
|
@$('[name="time_unit"]').focus()
|
||||||
|
|
||||||
|
skip: (e) =>
|
||||||
|
return if !@submitCallback
|
||||||
|
@submitCallback({})
|
||||||
|
@close(e)
|
||||||
|
|
||||||
onCancel: =>
|
onCancel: =>
|
||||||
if @cancelCallback
|
return if !@cancelCallback
|
||||||
@cancelCallback()
|
@cancelCallback()
|
||||||
|
|
||||||
onSubmit: =>
|
onSubmit: =>
|
||||||
|
@$('[name="time_unit"]').removeClass('has-error')
|
||||||
|
params = @formParams()
|
||||||
|
if params.time_unit
|
||||||
|
params.time_unit = params.time_unit.replace(',', '.')
|
||||||
|
|
||||||
|
if isNaN(parseFloat(params.time_unit)) || params.time_unit.match(/[A-z]|\s/)
|
||||||
|
@$('[name="time_unit"]').addClass('has-error')
|
||||||
|
return
|
||||||
|
|
||||||
@close()
|
@close()
|
||||||
if @submitCallback
|
if @submitCallback
|
||||||
params = @formParams()
|
|
||||||
@submitCallback(params)
|
@submitCallback(params)
|
||||||
|
|
|
@ -15,8 +15,14 @@
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<% if @buttonCancel: %>
|
<% if @buttonCancel: %>
|
||||||
<div class="modal-leftFooter">
|
<div class="modal-leftFooter">
|
||||||
<a class="btn <%= @buttonCancelClass %> js-cancel align-left" href="#/"><%- @T(@buttonCancel) %></a>
|
<a class="btn <%= @buttonCancelClass %> js-cancel align-left" href="#"><%- @T(@buttonCancel) %></a>
|
||||||
</div>
|
</div>
|
||||||
|
<% else if @leftButtons: %>
|
||||||
|
<% for button in @leftButtons: %>
|
||||||
|
<div class="modal-leftFooter">
|
||||||
|
<div class="btn <%= button.className %> align-left" href="#"><%- @T(button.text) %></div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% for button in @centerButtons: %>
|
<% for button in @centerButtons: %>
|
||||||
<div class="modal-centerFooter">
|
<div class="modal-centerFooter">
|
||||||
|
|
|
@ -31,6 +31,7 @@ if [ "$LEVEL" == '1' ]; then
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
rm test/browser/agent_ticket_tag_test.rb
|
rm test/browser/agent_ticket_tag_test.rb
|
||||||
rm test/browser/agent_ticket_text_module_test.rb
|
rm test/browser/agent_ticket_text_module_test.rb
|
||||||
|
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||||
rm test/browser/agent_ticket_update1_test.rb
|
rm test/browser/agent_ticket_update1_test.rb
|
||||||
rm test/browser/agent_ticket_update2_test.rb
|
rm test/browser/agent_ticket_update2_test.rb
|
||||||
rm test/browser/agent_ticket_update3_test.rb
|
rm test/browser/agent_ticket_update3_test.rb
|
||||||
|
@ -87,6 +88,7 @@ elif [ "$LEVEL" == '2' ]; then
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
rm test/browser/agent_ticket_tag_test.rb
|
rm test/browser/agent_ticket_tag_test.rb
|
||||||
# test/browser/agent_ticket_text_module_test.rb
|
# test/browser/agent_ticket_text_module_test.rb
|
||||||
|
# test/browser/agent_ticket_time_accounting_test.rb
|
||||||
# test/browser/agent_ticket_update1_test.rb
|
# test/browser/agent_ticket_update1_test.rb
|
||||||
# test/browser/agent_ticket_update2_test.rb
|
# test/browser/agent_ticket_update2_test.rb
|
||||||
# test/browser/agent_ticket_update3_test.rb
|
# test/browser/agent_ticket_update3_test.rb
|
||||||
|
@ -143,6 +145,7 @@ elif [ "$LEVEL" == '3' ]; then
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
# test/browser/agent_ticket_tag_test.rb
|
# test/browser/agent_ticket_tag_test.rb
|
||||||
rm test/browser/agent_ticket_text_module_test.rb
|
rm test/browser/agent_ticket_text_module_test.rb
|
||||||
|
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||||
rm test/browser/agent_ticket_update1_test.rb
|
rm test/browser/agent_ticket_update1_test.rb
|
||||||
rm test/browser/agent_ticket_update2_test.rb
|
rm test/browser/agent_ticket_update2_test.rb
|
||||||
rm test/browser/agent_ticket_update3_test.rb
|
rm test/browser/agent_ticket_update3_test.rb
|
||||||
|
@ -199,6 +202,7 @@ elif [ "$LEVEL" == '4' ]; then
|
||||||
# test/browser/agent_ticket_overview_tab_test.rb
|
# test/browser/agent_ticket_overview_tab_test.rb
|
||||||
rm test/browser/agent_ticket_tag_test.rb
|
rm test/browser/agent_ticket_tag_test.rb
|
||||||
rm test/browser/agent_ticket_text_module_test.rb
|
rm test/browser/agent_ticket_text_module_test.rb
|
||||||
|
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||||
rm test/browser/agent_ticket_update1_test.rb
|
rm test/browser/agent_ticket_update1_test.rb
|
||||||
rm test/browser/agent_ticket_update2_test.rb
|
rm test/browser/agent_ticket_update2_test.rb
|
||||||
rm test/browser/agent_ticket_update3_test.rb
|
rm test/browser/agent_ticket_update3_test.rb
|
||||||
|
@ -254,6 +258,7 @@ elif [ "$LEVEL" == '5' ]; then
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
rm test/browser/agent_ticket_tag_test.rb
|
rm test/browser/agent_ticket_tag_test.rb
|
||||||
rm test/browser/agent_ticket_text_module_test.rb
|
rm test/browser/agent_ticket_text_module_test.rb
|
||||||
|
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||||
rm test/browser/agent_ticket_update1_test.rb
|
rm test/browser/agent_ticket_update1_test.rb
|
||||||
rm test/browser/agent_ticket_update2_test.rb
|
rm test/browser/agent_ticket_update2_test.rb
|
||||||
rm test/browser/agent_ticket_update3_test.rb
|
rm test/browser/agent_ticket_update3_test.rb
|
||||||
|
@ -312,6 +317,7 @@ elif [ "$LEVEL" == '6' ]; then
|
||||||
rm test/browser/agent_ticket_overview_tab_test.rb
|
rm test/browser/agent_ticket_overview_tab_test.rb
|
||||||
rm test/browser/agent_ticket_tag_test.rb
|
rm test/browser/agent_ticket_tag_test.rb
|
||||||
rm test/browser/agent_ticket_text_module_test.rb
|
rm test/browser/agent_ticket_text_module_test.rb
|
||||||
|
rm test/browser/agent_ticket_time_accounting_test.rb
|
||||||
rm test/browser/agent_ticket_update1_test.rb
|
rm test/browser/agent_ticket_update1_test.rb
|
||||||
rm test/browser/agent_ticket_update2_test.rb
|
rm test/browser/agent_ticket_update2_test.rb
|
||||||
rm test/browser/agent_ticket_update3_test.rb
|
rm test/browser/agent_ticket_update3_test.rb
|
||||||
|
|
156
test/browser/agent_ticket_time_accounting_test.rb
Normal file
156
test/browser/agent_ticket_time_accounting_test.rb
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
# encoding: utf-8
|
||||||
|
require 'browser_test_helper'
|
||||||
|
|
||||||
|
class AgentTicketTimeAccountingTest < TestCase
|
||||||
|
def test_macro
|
||||||
|
@browser = browser_instance
|
||||||
|
login(
|
||||||
|
username: 'master@example.com',
|
||||||
|
password: 'test',
|
||||||
|
url: browser_url,
|
||||||
|
)
|
||||||
|
tasks_close_all()
|
||||||
|
|
||||||
|
# enable time accounting
|
||||||
|
click(
|
||||||
|
css: 'a[href="#manage"]',
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.content.active a[href="#manage/time_accounting"]',
|
||||||
|
)
|
||||||
|
switch(
|
||||||
|
css: '.content.active .js-timeAccountingSetting',
|
||||||
|
type: 'on',
|
||||||
|
)
|
||||||
|
|
||||||
|
ticket1 = ticket_create(
|
||||||
|
data: {
|
||||||
|
customer: 'nico',
|
||||||
|
group: 'Users',
|
||||||
|
title: 'some subject - time accounting#1',
|
||||||
|
body: 'some body - time accounting#1',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
ticket_update(
|
||||||
|
data: {
|
||||||
|
body: 'some note',
|
||||||
|
},
|
||||||
|
do_not_submit: true,
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.active .js-submit',
|
||||||
|
)
|
||||||
|
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active .modal',
|
||||||
|
value: 'Time Accounting',
|
||||||
|
)
|
||||||
|
set(
|
||||||
|
css: '.content.active .modal [name=time_unit]',
|
||||||
|
value: '4',
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.content.active .modal .js-submit',
|
||||||
|
)
|
||||||
|
watch_for_disappear(
|
||||||
|
css: '.content.active .modal',
|
||||||
|
value: 'Time Accounting',
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active .js-timeUnit',
|
||||||
|
value: '4',
|
||||||
|
)
|
||||||
|
|
||||||
|
ticket2 = ticket_create(
|
||||||
|
data: {
|
||||||
|
customer: 'nico',
|
||||||
|
group: 'Users',
|
||||||
|
title: 'some subject - time accounting#2',
|
||||||
|
body: 'some body - time accounting#2',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
ticket_update(
|
||||||
|
data: {
|
||||||
|
body: 'some note',
|
||||||
|
},
|
||||||
|
do_not_submit: true,
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.active .js-submit',
|
||||||
|
)
|
||||||
|
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active .modal',
|
||||||
|
value: 'Time Accounting',
|
||||||
|
)
|
||||||
|
set(
|
||||||
|
css: '.content.active .modal [name=time_unit]',
|
||||||
|
value: '4,6',
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.content.active .modal .js-submit',
|
||||||
|
)
|
||||||
|
watch_for_disappear(
|
||||||
|
css: '.content.active .modal',
|
||||||
|
value: 'Time Accounting',
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active .js-timeUnit',
|
||||||
|
value: '4.6',
|
||||||
|
)
|
||||||
|
|
||||||
|
ticket_update(
|
||||||
|
data: {
|
||||||
|
body: 'some note2',
|
||||||
|
},
|
||||||
|
do_not_submit: true,
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.active .js-submit',
|
||||||
|
)
|
||||||
|
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active .modal',
|
||||||
|
value: 'Time Accounting',
|
||||||
|
)
|
||||||
|
set(
|
||||||
|
css: '.content.active .modal [name=time_unit]',
|
||||||
|
value: '4abc',
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.content.active .modal .js-submit',
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active .modal [name=time_unit].has-error',
|
||||||
|
)
|
||||||
|
set(
|
||||||
|
css: '.content.active .modal [name=time_unit]',
|
||||||
|
value: '4 ',
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.content.active .modal .js-submit',
|
||||||
|
)
|
||||||
|
watch_for_disappear(
|
||||||
|
css: '.content.active .modal',
|
||||||
|
value: 'Time Accounting',
|
||||||
|
)
|
||||||
|
watch_for(
|
||||||
|
css: '.content.active .js-timeUnit',
|
||||||
|
value: '8.6',
|
||||||
|
)
|
||||||
|
|
||||||
|
# disable time accounting
|
||||||
|
click(
|
||||||
|
css: 'a[href="#manage"]',
|
||||||
|
)
|
||||||
|
click(
|
||||||
|
css: '.content.active a[href="#manage/time_accounting"]',
|
||||||
|
)
|
||||||
|
switch(
|
||||||
|
css: '.content.active .js-timeAccountingSetting',
|
||||||
|
type: 'off',
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue