Fixed signature insert.
This commit is contained in:
parent
df232e0024
commit
ae7babcb81
4 changed files with 102 additions and 59 deletions
|
@ -436,12 +436,14 @@ class App.TicketZoomArticleNew extends App.Controller
|
|||
# apply new signature
|
||||
signatureFinished = App.Utils.replaceTags(signature.body, { user: App.Session.get(), ticket: ticketCurrent })
|
||||
|
||||
body = @$('[data-name=body]').html() || ''
|
||||
if App.Utils.signatureCheck(body, signatureFinished)
|
||||
if !App.Utils.lastLineEmpty(body)
|
||||
body = body + '<br>'
|
||||
body = body + "<div><div data-signature=\"true\" data-signature-id=\"#{signature.id}\">#{signatureFinished}</div></div>"
|
||||
@$('[data-name=body]').html(body)
|
||||
body = @$('[data-name=body]')
|
||||
if App.Utils.signatureCheck(body.html() || '', signatureFinished)
|
||||
if !App.Utils.htmlLastLineEmpty(body)
|
||||
body.append('<br><br>')
|
||||
signature = $("<div data-signature=\"true\" data-signature-id=\"#{signature.id}\">#{signatureFinished}</div>")
|
||||
App.Utils.htmlStrip(signature)
|
||||
body.append(signature)
|
||||
@$('[data-name=body]').replaceWith(body)
|
||||
|
||||
# remove old signature
|
||||
else
|
||||
|
|
|
@ -199,13 +199,17 @@ class ArticleViewItem extends App.ObserverController
|
|||
|
||||
# remember bubble heigth
|
||||
heigth = bubbleContent.height()
|
||||
if offsetTop && heigth
|
||||
|
||||
# if signature marker exists and heigth is within maxHeight
|
||||
if offsetTop && heigth < maxHeight
|
||||
newHeigth = offsetTop.top + 30
|
||||
if newHeigth < minHeight
|
||||
newHeigth = minHeight
|
||||
bubbleContent.attr('data-height', heigth)
|
||||
bubbleContent.css('height', "#{newHeigth}px")
|
||||
bubbleOvervlowContainer.removeClass('hide')
|
||||
|
||||
# if heigth is higher then maxHeight
|
||||
else if heigth > maxHeight
|
||||
bubbleContent.attr('data-height', heigth)
|
||||
bubbleContent.css('height', "#{maxHeight}px")
|
||||
|
|
|
@ -113,6 +113,8 @@ test("form params check", function() {
|
|||
textarea2: 'lalu <l> lalu',
|
||||
select1: false,
|
||||
select2: true,
|
||||
select3: null,
|
||||
select4: undefined,
|
||||
selectmulti1: false,
|
||||
selectmulti2: [ false, true ],
|
||||
selectmultioption1: false,
|
||||
|
@ -145,6 +147,8 @@ test("form params check", function() {
|
|||
{ name: 'textarea2', display: 'Textarea2', tag: 'textarea', rows: 6, limit: 100, null: false, upload: true },
|
||||
{ name: 'select1', display: 'Select1', tag: 'select', null: true, options: { true: 'internal', false: 'public' } },
|
||||
{ name: 'select2', display: 'Select2', tag: 'select', null: false, options: { true: 'internal', false: 'public' } },
|
||||
{ name: 'select3', display: 'Select3', tag: 'select', null: false, nulloption: true, options: { aa: 'aa', bb: 'bb', select3: 'select3' } },
|
||||
{ name: 'select4', display: 'Select4', tag: 'select', null: false, nulloption: true, options: { aa: 'aa', bb: 'bb', select3: 'select4' } },
|
||||
{ name: 'selectmulti1', display: 'SelectMulti1', tag: 'select', null: true, multiple: true, options: { true: 'internal', false: 'public' } },
|
||||
{ name: 'selectmulti2', display: 'SelectMulti2', tag: 'select', null: false, multiple: true, options: { true: 'internal', false: 'public' } },
|
||||
{ name: 'selectmultioption1', display: 'SelectMultiOption1', tag: 'select', null: true, multiple: true, options: [{ value: true, name: 'internal' }, { value: false, name: 'public' }] },
|
||||
|
@ -208,6 +212,14 @@ test("form params check", function() {
|
|||
equal(el.find('[name="select2"]').prop('required'), true, 'check select2 required')
|
||||
equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
||||
|
||||
equal(el.find('[name="select3"]').val(), '', 'check select3 value')
|
||||
equal(el.find('[name="select3"]').prop('required'), true, 'check select3 required')
|
||||
equal(el.find('[name="select3"]').is(":focus"), false, 'check select3 focus')
|
||||
|
||||
equal(el.find('[name="select4"]').val(), '', 'check select4 value')
|
||||
equal(el.find('[name="select4"]').prop('required'), true, 'check select4 required')
|
||||
equal(el.find('[name="select4"]').is(":focus"), false, 'check select4 focus')
|
||||
|
||||
equal(el.find('[name="selectmulti1"]').val(), 'false', 'check selectmulti1 value')
|
||||
equal(el.find('[name="selectmulti1"]').prop('required'), false, 'check selectmulti1 required')
|
||||
equal(el.find('[name="selectmulti1"]').is(":focus"), false, 'check selectmulti1 focus')
|
||||
|
@ -229,6 +241,8 @@ test("form params check", function() {
|
|||
textarea2: 'lalu <l> lalu',
|
||||
select1: 'false',
|
||||
select2: 'true',
|
||||
select3: '',
|
||||
select4: '',
|
||||
selectmulti1: 'false',
|
||||
selectmulti2: [ 'true', 'false' ],
|
||||
selectmultioption1: 'false',
|
||||
|
@ -890,4 +904,42 @@ test("form required_if + shown_if", function() {
|
|||
equal(el.find('[name="input3"]').is(":visible"), true, 'check visible attribute of input3')
|
||||
equal(el.find('[name="input4"]').is(":visible"), false, 'check visible attribute of input4')
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
test("form params check", function() {
|
||||
|
||||
$('#forms').append('<hr><h1>form params check</h1><form id="form9"></form>')
|
||||
var el = $('#form9')
|
||||
var defaults = {
|
||||
select1: false,
|
||||
select2: true,
|
||||
select3: null,
|
||||
select4: undefined,
|
||||
}
|
||||
new App.ControllerForm({
|
||||
el: el,
|
||||
model: {
|
||||
configure_attributes: [
|
||||
{ name: 'select1', display: 'Select1', tag: 'select', null: true, options: { true: 'internal', false: 'public' } },
|
||||
{ name: 'select2', display: 'Select2', tag: 'select', null: false, options: { true: 'internal', false: 'public' } },
|
||||
{ name: 'select3', display: 'Select3', tag: 'select', null: false, nulloption: true, options: { aa: 'aa', bb: 'bb', select3: 'select3' } },
|
||||
{ name: 'select4', display: 'Select4', tag: 'select', null: false, nulloption: true, options: { aa: 'aa', bb: 'bb', select3: 'select4' } },
|
||||
],
|
||||
},
|
||||
params: defaults,
|
||||
autofocus: true
|
||||
});
|
||||
|
||||
|
||||
params = App.ControllerForm.params(el)
|
||||
test_params = {
|
||||
select1: 'false',
|
||||
select2: 'true',
|
||||
select3: '',
|
||||
select4: '',
|
||||
}
|
||||
console.log('params', params)
|
||||
console.log('test_params', test_params)
|
||||
deepEqual(params, test_params, 'form param check')
|
||||
|
||||
});
|
||||
|
|
|
@ -66,6 +66,42 @@ test("text2html", function() {
|
|||
|
||||
});
|
||||
|
||||
// htmlStrip
|
||||
test("htmlStrip", function() {
|
||||
|
||||
var source = $('<div><br><b>lala</b></div>')
|
||||
var should = '<div><b>lala</b></div>'
|
||||
App.Utils.htmlStrip(source)
|
||||
equal(source.get(0).outerHTML, should)
|
||||
|
||||
source = $('<div><br><br><br><b>lala</b></div>')
|
||||
should = '<div><b>lala</b></div>'
|
||||
App.Utils.htmlStrip(source)
|
||||
equal(source.get(0).outerHTML, should)
|
||||
|
||||
source = $('<div><br><br><br><b>lala</b><br><br></div>')
|
||||
should = '<div><b>lala</b></div>'
|
||||
App.Utils.htmlStrip(source)
|
||||
equal(source.get(0).outerHTML, should)
|
||||
|
||||
source = $('<div><br><br><div><br></div><b>lala</b><br><br></div>')
|
||||
should = '<div><div><br></div><b>lala</b></div>'
|
||||
App.Utils.htmlStrip(source)
|
||||
equal(source.get(0).outerHTML, should)
|
||||
|
||||
});
|
||||
|
||||
// lastLineEmpty
|
||||
test("htmlLastLineEmpty", function() {
|
||||
|
||||
var source = $('<div><br><b>lala</b></div>')
|
||||
equal(App.Utils.htmlLastLineEmpty(source), false)
|
||||
|
||||
source = $('<div><br><b>lala</b><br></div>')
|
||||
equal(App.Utils.htmlLastLineEmpty(source), true)
|
||||
|
||||
});
|
||||
|
||||
// html2text
|
||||
test("html2text", function() {
|
||||
|
||||
|
@ -954,57 +990,6 @@ test("check replace tags", function() {
|
|||
equal(verify, result)
|
||||
|
||||
|
||||
});
|
||||
|
||||
// check if last line is a empty line
|
||||
test("check if last line is a empty line", function() {
|
||||
|
||||
var message = "123"
|
||||
var result = false
|
||||
var verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<div>123</div>"
|
||||
result = false
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<p><div>123 </div></p>"
|
||||
result = false
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<div></div>"
|
||||
result = true
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<div class=\"some_class\"></div>"
|
||||
result = true
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<div class=\"some_class\"></div> "
|
||||
result = true
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<div class=\"some_class\"></div> \n \n\t"
|
||||
result = true
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<div class=\"some_class\"> </div> \n \n\t"
|
||||
result = true
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
message = "<div class=\"some_class\"\n> \n</div> \n \n\t"
|
||||
result = true
|
||||
verify = App.Utils.lastLineEmpty(message)
|
||||
equal(verify, result, message)
|
||||
|
||||
|
||||
});
|
||||
|
||||
// check attibute validation
|
||||
|
|
Loading…
Reference in a new issue