Refactoring - using DocumentNodeElement.createDOM when creating document from wlxml
[fnpeditor.git] / modules / documentCanvas / canvas / canvas.js
index 9506049..4344730 100644 (file)
@@ -22,15 +22,13 @@ $.extend(Canvas.prototype, {
                 var currentTag = $(this);
                 if(currentTag.attr('wlxml-tag'))
                     return;
-                var toret = $('<div>').attr('wlxml-tag', currentTag.prop('tagName').toLowerCase());
-                //toret.attr('id', 'xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);}));
-                for(var i = 0; i < this.attributes.length; i++) {
-                    var attr = this.attributes.item(i);
-                    var value = attr.name === 'class' ? attr.value.replace(/\./g, '-') : attr.value;
-                    toret.attr('wlxml-' + attr.name, value);
-                }
-                toret.append(currentTag.contents());
-                return toret;
+                var element = documentElement.DocumentNodeElement.createDOM({
+                    tag: currentTag.prop('tagName').toLowerCase(),
+                    klass: currentTag.attr('class')
+                });
+
+                element.append(currentTag.contents());
+                return element;
             });
 
             wrapper.find(':not(iframe)').addBack().contents()
@@ -57,9 +55,15 @@ $.extend(Canvas.prototype, {
                         this.data = $.trim(this.data);
                         if(this.data.length === 0 && oldLength > 0 && el.parent().contents().length === 1)
                             this.data = ' ';
-                        if(this.data.length === 0)
+                        if(this.data.length === 0) {
                             $(this).remove();
+                            return true; // continue
+                        }
                     }
+
+                    var wrapper = documentElement.DocumentTextElement.create({text: this.data});
+                    $(this).before(wrapper.dom());
+                    $(this).remove();
                 });
             
             this.d = wrapper.children(0);