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; this.isEmpty = isEmpty;
} else { } else {
//detect empty //detect empty
if($.trim(this.$element.html()) === '') { //for some inputs we need more smart check
this.isEmpty = true; //e.g. wysihtml5 may have <br>, <p></p>, <img>
} else if($.trim(this.$element.text()) !== '') { if(typeof(this.input.isEmpty) === 'function') {
this.isEmpty = false; this.isEmpty = this.input.isEmpty(this.$element);
} else { } else {
//e.g. '<img>' this.isEmpty = $.trim(this.$element.html()) === '';
this.isEmpty = !this.$element.height() || !this.$element.width();
} }
} }

@ -87,6 +87,17 @@ $(function(){
activate: function() { activate: function() {
this.$input.data("wysihtml5").editor.focus(); 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();
}
} }
}); });

@ -6,13 +6,14 @@ $(function () {
$.support.transition = false; $.support.transition = false;
} }
}); });
//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 //note: sometimes it throws 'nativeSelection is null' error
asyncTest("should load correct value and save new entered value", function () { 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) { if(msieOld) {
expect(0); expect(0);
start(); start();
@ -76,5 +77,26 @@ $(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);
});
}); });