Fixed signature insert.

This commit is contained in:
Martin Edenhofer 2016-06-30 01:27:03 +02:00
parent df232e0024
commit ae7babcb81
4 changed files with 102 additions and 59 deletions

View file

@ -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

View file

@ -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")

View file

@ -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')
});

View file

@ -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