From 3733d5e0527a89111f9e33bb8380fed20ea768fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Fri, 19 Apr 2013 12:59:13 +0200 Subject: [PATCH] Visual editor: preserving all attributes from wlxml nodes --- modules/visualEditor.transformations.js | 29 ++++++++++++++++++++----- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/modules/visualEditor.transformations.js b/modules/visualEditor.transformations.js index 57049e7..1e8c2e0 100644 --- a/modules/visualEditor.transformations.js +++ b/modules/visualEditor.transformations.js @@ -23,8 +23,11 @@ if(typeof module !== 'undefined' && module.exports) { if(currentTag.attr('wlxml-tag')) return; var toret = $('
').attr('wlxml-tag', tagName); - if(currentTag.attr('class')) - toret.attr('wlxml-class', currentTag.attr('class').replace(/\./g, '-')); + 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; }); @@ -37,8 +40,11 @@ if(typeof module !== 'undefined' && module.exports) { if(currentTag.attr('wlxml-tag')) return; var toret = $('').attr('wlxml-tag', tagName); - if(currentTag.attr('class')) - toret.attr('wlxml-class', currentTag.attr('class').replace(/\./g, '-')); + 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; }); @@ -72,8 +78,19 @@ if(typeof module !== 'undefined' && module.exports) { var div = $(this); var tagName = div.attr('wlxml-tag'); var toret = $('<'+tagName+'>'); - if(div.attr('wlxml-class')) - toret.attr('class', div.attr('wlxml-class').replace(/-/g, '.')) + + for(var i = 0; i < this.attributes.length; i++) { + var attr = this.attributes.item(i); + var split = attr.name.split('-') + console.log(split); + if(split[0] !== 'wlxml' || (split.length > 1 && split[1] === 'tag')) + continue; + var wlxmlName = split.splice(1).join('-'); + var value = wlxmlName === 'class' ? attr.value.replace(/-/g, '.') : attr.value; + console.log(name + ': ' + value); + toret.attr(wlxmlName, value); + } + toret.append(div.contents()); return toret; }); -- 2.20.1