Added html quoting, text2html and linkify.

This commit is contained in:
Martin Edenhofer 2015-01-02 11:31:52 +01:00
parent 69420df8a5
commit 3a44804c96
3 changed files with 66 additions and 44 deletions

View file

@ -489,15 +489,15 @@ class App.ControllerModal extends App.Controller
@button = 'Submit' @button = 'Submit'
@html App.view('modal') @html App.view('modal')
head: @head head: @head
message: @message message: @message
detail: @detail detail: @detail
close: @close close: @close
cancel: @cancel cancel: @cancel
button: @button button: @button
buttonClass: @buttonClass buttonClass: @buttonClass
centerButtons:@centerButtons centerButtons: @centerButtons
content: content content: content
if @content if @content
@body.html @content @body.html @content
@ -507,8 +507,8 @@ class App.ControllerModal extends App.Controller
show: true show: true
backdrop: @backdrop backdrop: @backdrop
.on .on
'show.bs.modal': @onShow 'show.bs.modal': @onShow
'shown.bs.modal': @onShown 'shown.bs.modal': @onShown
'hidden.bs.modal': => 'hidden.bs.modal': =>
@onHide() @onHide()
# remove modal from dom # remove modal from dom
@ -543,7 +543,7 @@ class App.ErrorModal extends App.ControllerModal
class App.SessionMessage extends App.ControllerModal class App.SessionMessage extends App.ControllerModal
constructor: -> constructor: ->
super super
@show() @show(@content)
# reload page on modal hidden # reload page on modal hidden
onHide: (e) => onHide: (e) =>

View file

@ -16,9 +16,13 @@ class Widget extends App.Controller
@disconnectClient() @disconnectClient()
button = 'Reload application' button = 'Reload application'
# convert to html and linkify
message.message = App.Utils.textCleanup( message.message )
message.message = App.Utils.text2html( message.message )
new App.SessionMessage( new App.SessionMessage(
head: message.head head: message.head
message: message.message content: message.message
keyboard: true keyboard: true
backdrop: true backdrop: true
close: true close: true

View file

@ -3,8 +3,12 @@ require 'browser_test_helper'
class MaintenanceMessageTest < TestCase class MaintenanceMessageTest < TestCase
def test_websocket def test_websocket
message = 'message 1äöüß ' + rand(99999999999999999).to_s string = rand(99999999999999999).to_s
tests = [ title_html = "test <b>#{string}</b>"
title_text = "test <b>#{string}<\/b>"
message_html = "message <b>1äöüß</b> #{string}\n\n\nhttp://zammad.org"
message_text = "message <b>1äöüß<\/b> #{string}\n\nhttp:\/\/zammad.org"
tests = [
{ {
:name => 'check #1', :name => 'check #1',
:instance1 => browser_instance, :instance1 => browser_instance,
@ -33,13 +37,13 @@ class MaintenanceMessageTest < TestCase
:where => :instance1, :where => :instance1,
:execute => 'set', :execute => 'set',
:css => '#content input[name="head"]', :css => '#content input[name="head"]',
:value => message, :value => title_html,
}, },
{ {
:where => :instance1, :where => :instance1,
:execute => 'set', :execute => 'set',
:css => '#content textarea[name="message"]', :css => '#content textarea[name="message"]',
:value => message, :value => message_html,
}, },
{ {
:where => :instance1, :where => :instance1,
@ -50,19 +54,25 @@ class MaintenanceMessageTest < TestCase
:execute => 'wait', :execute => 'wait',
:value => 5, :value => 5,
}, },
{
:where => :instance2,
:execute => 'watch_for',
:area => '.modal',
:value => title_text,
},
{
:where => :instance2,
:execute => 'watch_for',
:area => '.modal',
:value => message_text,
},
{ {
:where => :instance1, :where => :instance1,
:execute => 'match', :execute => 'match',
:css => 'body', :css => 'body',
:value => message, :value => message_text,
:match_result => false, :match_result => false,
}, },
{
:where => :instance2,
:execute => 'watch_for',
:area => '.modal',
:value => message,
},
{ {
:where => :instance2, :where => :instance2,
:execute => 'click', :execute => 'click',
@ -91,13 +101,13 @@ class MaintenanceMessageTest < TestCase
:where => :instance1, :where => :instance1,
:execute => 'set', :execute => 'set',
:css => '#content input[name="head"]', :css => '#content input[name="head"]',
:value => message + ' #2', :value => title_html + ' #2',
}, },
{ {
:where => :instance1, :where => :instance1,
:execute => 'set', :execute => 'set',
:css => '#content textarea[name="message"]', :css => '#content textarea[name="message"]',
:value => message + ' #2', :value => message_html + ' #2',
}, },
{ {
:where => :instance1, :where => :instance1,
@ -105,22 +115,24 @@ class MaintenanceMessageTest < TestCase
:css => '#content button[type="submit"]', :css => '#content button[type="submit"]',
}, },
{ {
:execute => 'wait', :where => :instance2,
:value => 5, :execute => 'watch_for',
:area => '.modal',
:value => title_text,
},
{
:where => :instance2,
:execute => 'watch_for',
:area => '.modal',
:value => message_text + ' #2',
}, },
{ {
:where => :instance1, :where => :instance1,
:execute => 'match', :execute => 'match',
:css => 'body', :css => 'body',
:value => message + ' #2', :value => message_text + ' #2',
:match_result => false, :match_result => false,
}, },
{
:where => :instance2,
:execute => 'watch_for',
:area => '.modal',
:value => message + ' #2',
},
{ {
:where => :instance2, :where => :instance2,
:execute => 'click', :execute => 'click',
@ -149,13 +161,13 @@ class MaintenanceMessageTest < TestCase
:where => :instance1, :where => :instance1,
:execute => 'set', :execute => 'set',
:css => '#content input[name="head"]', :css => '#content input[name="head"]',
:value => message + ' #3' , :value => title_html + ' #3' ,
}, },
{ {
:where => :instance1, :where => :instance1,
:execute => 'set', :execute => 'set',
:css => '#content textarea[name="message"]', :css => '#content textarea[name="message"]',
:value => message + ' #3', :value => message_html + ' #3',
}, },
{ {
:where => :instance1, :where => :instance1,
@ -178,17 +190,23 @@ class MaintenanceMessageTest < TestCase
:result => false, :result => false,
}, },
{ {
:where => :instance1, :where => :instance2,
:execute => 'match', :execute => 'watch_for',
:css => 'body', :area => '.modal',
:value => message + ' #3', :value => title_text,
:match_result => false,
}, },
{ {
:where => :instance2, :where => :instance2,
:execute => 'watch_for', :execute => 'watch_for',
:area => '.modal', :area => '.modal',
:value => message + ' #3', :value => message_text + ' #3',
},
{
:where => :instance1,
:execute => 'match',
:css => 'body',
:value => message_text + ' #3',
:match_result => false,
}, },
{ {
:where => :instance2, :where => :instance2,