Another set of missing semicolons
[fnpeditor.git] / modules / documentCanvas / transformations.js
index cd20d2b..79c28b6 100644 (file)
@@ -1,5 +1,7 @@
 define(['libs/jquery-1.9.1.min'], function($) {\r
 \r
+    'use strict';\r
+\r
     var transformations = {};\r
 \r
     transformations.fromXML = {\r
@@ -24,17 +26,31 @@ define(['libs/jquery-1.9.1.min'], function($) {
                         for(var i = 0; i < this.attributes.length; i++) {\r
                             var attr = this.attributes.item(i);\r
                             var value = attr.name === 'class' ? attr.value.replace(/\./g, '-') : attr.value;\r
-                            toret.attr('wlxml-' + attr.name, value)\r
+                            toret.attr('wlxml-' + attr.name, value);\r
                         }\r
                         toret.append(currentTag.contents());\r
                         return toret;\r
                     });\r
                 });\r
-            }\r
+            };\r
             \r
             transform(toBlock, 'div');\r
             transform(toInline, 'span');\r
 \r
+            toret.find(":not(iframe)").addBack().contents().filter(function() {\r
+                return this.nodeType == 3;} ).each(function() {\r
+                    var n = $(this); \r
+                    var hasText = /\S/g.test(n.text());\r
+                    if(!hasText) {\r
+                        n.remove();\r
+                        return;\r
+                    }\r
+                    var startSpace = /\s/g.test(n.text().substr(0,1));\r
+                    var endSpace = /\s/g.test(n.text().substr(-1)) && n.text().length > 1;\r
+                    var trimmed = $.trim(n.text());\r
+                    n.get(0).data = (startSpace ? ' ' : '') + trimmed + (endSpace ? ' ' : '');\r
+            });\r
+            \r
             return toret.children();\r
         },\r
         getMetaData: function(xml) {\r
@@ -42,21 +58,21 @@ define(['libs/jquery-1.9.1.min'], function($) {
             $(xml).find('metadata').children().each(function() {\r
                 var node = $(this);\r
                 toret[this.nodeName.split(':')[1].toLowerCase()] = node.text();\r
-            })\r
+            });\r
             return toret;\r
         },\r
         getDocumentDescription: function(xml) {\r
             return {\r
                 HTMLTree: this.getHTMLTree(xml),\r
                 metadata: this.getMetaData(xml)\r
-            }\r
+            };\r
         }\r
-    }\r
+    };\r
 \r
     transformations.toXML = {\r
-        getXML: function(documentDescription) {\r
+        getXML: function(body) {\r
             \r
-            var inner = $(documentDescription.HTMLTree);\r
+            var inner = body.clone();\r
             var toret = $('<div></div>');\r
             toret.append(inner);\r
             \r
@@ -67,41 +83,24 @@ define(['libs/jquery-1.9.1.min'], function($) {
                                    \r
                 for(var i = 0; i < this.attributes.length; i++) {\r
                     var attr = this.attributes.item(i);\r
-                    var split = attr.name.split('-')\r
+                    var split = attr.name.split('-');\r
                     console.log(split);\r
                     if(split[0] !== 'wlxml' || (split.length > 1 && split[1] === 'tag')) \r
                         continue;\r
                     var wlxmlName = split.splice(1).join('-');\r
                     var value = wlxmlName === 'class' ? attr.value.replace(/-/g, '.') : attr.value;\r
                     console.log(name + ': ' + value);\r
-                    toret.attr(wlxmlName, value);\r
+                    if(value.length && value.length > 0)\r
+                        toret.attr(wlxmlName, value);\r
                 }\r
                     \r
                 toret.append(div.contents());\r
                 return toret;\r
             });\r
-            \r
-            var meta = $('<metadata></metadata>\n');\r
-            _.each(_.keys(documentDescription.metadata), function(key) {\r
-                meta.append('\n\t<dc:'+key+'>' + documentDescription.metadata[key] + '</dc:'+key+'>');\r
-            });\r
-            meta.append('\n');\r
-            \r
-            var metadata = toret.find('metadata');\r
-            if(metadata.length === 0) {\r
-                var section = toret.find('section');\r
-                section = section.length ? $(section[0]) : null;\r
-                if(section) {\r
-                    section.prepend(meta)\r
-                }\r
-            } else {\r
-                metadata.replaceWith(meta);\r
-            }\r
-            \r
-            \r
+\r
             return vkbeautify.xml(toret.html());\r
         }\r
-    }\r
+    };\r
 \r
     return transformations;\r
 \r