Prevent submitting attachments without article body.
This commit is contained in:
parent
ce937627d8
commit
453e201912
3 changed files with 53 additions and 7 deletions
|
@ -547,6 +547,15 @@ class App.TicketZoom extends App.Controller
|
|||
# validate article
|
||||
articleParams = @formParam( @$('.article-add') )
|
||||
console.log 'submit article', articleParams
|
||||
|
||||
# check if attachment exists but no body
|
||||
attachmentCount = @$('.article-add .textBubble .attachments .attachment').length
|
||||
if !articleParams['body'] && attachmentCount > 0
|
||||
if !confirm( App.i18n.translateContent('Please fill also some text in!') )
|
||||
@formEnable(e)
|
||||
@autosaveStart()
|
||||
return
|
||||
|
||||
if articleParams['body']
|
||||
articleParams.from = @Session.get().displayName()
|
||||
articleParams.ticket_id = ticket.id
|
||||
|
@ -590,12 +599,11 @@ class App.TicketZoom extends App.Controller
|
|||
|
||||
# check attachment
|
||||
if articleParams['body']
|
||||
if App.Utils.checkAttachmentReference( articleParams['body'] )
|
||||
if @$('.article-add .textBubble .attachments .attachment').length < 1
|
||||
if !confirm( App.i18n.translateContent('You use attachment in text but no attachment is attached. Do you want to continue?') )
|
||||
@formEnable(e)
|
||||
@autosaveStart()
|
||||
return
|
||||
if App.Utils.checkAttachmentReference( articleParams['body'] ) && attachmentCount < 1
|
||||
if !confirm( App.i18n.translateContent('You use attachment in text but no attachment is attached. Do you want to continue?') )
|
||||
@formEnable(e)
|
||||
@autosaveStart()
|
||||
return
|
||||
|
||||
article.load(articleParams)
|
||||
errors = article.validate()
|
||||
|
|
|
@ -107,6 +107,44 @@ class AgentTicketActionLevel6Test < TestCase
|
|||
value: 'test 6 - ticket 1-1',
|
||||
)
|
||||
|
||||
# add attachment without body
|
||||
@browser.execute_script( "App.TestHelper.attachmentUploadFake('.active .article-add .textBubble .attachments')" )
|
||||
|
||||
# submit form
|
||||
click(
|
||||
css: '.active .js-submit',
|
||||
)
|
||||
sleep 2
|
||||
|
||||
# check warning
|
||||
alert = @browser.switch_to.alert
|
||||
alert.dismiss()
|
||||
|
||||
ticket_update(
|
||||
data: {
|
||||
body: 'now submit should work',
|
||||
},
|
||||
do_not_submit: true,
|
||||
)
|
||||
|
||||
# submit form
|
||||
click(
|
||||
css: '.active .js-submit',
|
||||
)
|
||||
sleep 2
|
||||
|
||||
# discard changes should gone away
|
||||
watch_for_disappear(
|
||||
css: '.content.active .js-reset',
|
||||
value: '(Discard your unsaved changes.|Verwerfen der)',
|
||||
no_quote: true,
|
||||
)
|
||||
ticket_verify(
|
||||
data: {
|
||||
body: '',
|
||||
},
|
||||
)
|
||||
|
||||
#
|
||||
# ticket customer change checks
|
||||
#
|
||||
|
|
|
@ -1076,7 +1076,7 @@ wait untill text in selector disabppears
|
|||
element.clear
|
||||
|
||||
# workaround, sometimes focus is not triggered
|
||||
element.send_keys( data[:customer] )
|
||||
element.send_keys( data[:customer] + '*' )
|
||||
sleep 3.5
|
||||
|
||||
# check if pulldown is open, it's not working stable via selenium
|
||||
|
|
Loading…
Reference in a new issue