handleEmpty checks only html by default, excluding wysihtml5, refers to ,

This commit is contained in:
vitalets 2013-09-22 00:11:37 +04:00
parent 3166073666
commit 207f30b266
3 changed files with 41 additions and 9 deletions
src
element
inputs-ext/wysihtml5
test/unit

@ -284,13 +284,12 @@ Makes editable any HTML element on the page. Applied as jQuery method.
this.isEmpty = isEmpty;
} else {
//detect empty
if($.trim(this.$element.html()) === '') {
this.isEmpty = true;
} else if($.trim(this.$element.text()) !== '') {
this.isEmpty = false;
//for some inputs we need more smart check
//e.g. wysihtml5 may have <br>, <p></p>, <img>
if(typeof(this.input.isEmpty) === 'function') {
this.isEmpty = this.input.isEmpty(this.$element);
} else {
//e.g. '<img>'
this.isEmpty = !this.$element.height() || !this.$element.width();
this.isEmpty = $.trim(this.$element.html()) === '';
}
}

@ -87,6 +87,17 @@ $(function(){
activate: function() {
this.$input.data("wysihtml5").editor.focus();
},
isEmpty: function($element) {
if($.trim($element.html()) === '') {
return true;
} else if($.trim($element.text()) !== '') {
return false;
} else {
//e.g. '<img>', '<br>', '<p></p>'
return !$element.height() || !$element.width();
}
}
});

@ -7,12 +7,13 @@ $(function () {
}
});
//skip test for ie7 as it is not supported by wysihtml5
var msieOld = /msie\s*(7|6)/i.test(navigator.userAgent);
//note: sometimes it throws 'nativeSelection is null' error
asyncTest("should load correct value and save new entered value", function () {
//skip test for ie7 as it is not supported by wysihtml5
var msieOld = /msie\s*(7|6)/i.test(navigator.userAgent);
if(msieOld) {
expect(0);
start();
@ -77,4 +78,25 @@ $(function () {
});
asyncTest("empty value", function () {
if(msieOld) {
expect(0);
start();
return;
}
var v1 = '<p></p><br>',
e = $('<a href="#" data-pk="1" data-url="post.php">'+v1+'</a>').appendTo(fx).editable({
type: 'wysihtml5'
});
setTimeout(function() {
equal(e.html(), 'Empty', '`Empty` shown');
e.remove();
start();
}, timeout);
});
});