From: Aleksander Ɓukasz Date: Wed, 14 May 2014 14:20:14 +0000 (+0200) Subject: wlxml: comments X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/2e65999ad3791878b245ead3d0fa8442d74fd1b2?ds=inline;hp=b53d709d888332da35d991ef449ddfc60633273f wlxml: comments --- diff --git a/src/wlxml/extensions/comments/comments.js b/src/wlxml/extensions/comments/comments.js new file mode 100644 index 0000000..521bad8 --- /dev/null +++ b/src/wlxml/extensions/comments/comments.js @@ -0,0 +1,36 @@ +define(function() { + +'use strict'; + +var extension = {wlxmlClass: {comment: { + methods: { + describesParent: true, + getText: function() { + var text = ''; + this.contents() + .filter(function(node) { + /* globals Node */ + return node && node.nodeType === Node.TEXT_NODE; + }) + .forEach(function(node) { + text = text + node.getText(); + }); + return text; + }, + setText: function(text) { + var contents = this.contents(); + if(contents.length === 1 && contents[0].nodeType === Node.TEXT_NODE) { + contents[0].setText(text); + } else { + contents.forEach(function(node) { + node.detach(); + }); + this.append({text: text}); + } + } + } +}}}; + +return extension; + +}); \ No newline at end of file diff --git a/src/wlxml/wlxml.js b/src/wlxml/wlxml.js index bbd6233..e9e5d5b 100644 --- a/src/wlxml/wlxml.js +++ b/src/wlxml/wlxml.js @@ -3,8 +3,9 @@ define([ 'libs/underscore', 'smartxml/smartxml', 'smartxml/transformations', - 'wlxml/extensions/metadata/metadata' -], function($, _, smartxml, transformations, metadataExtension) { + 'wlxml/extensions/metadata/metadata', + 'wlxml/extensions/comments/comments' +], function($, _, smartxml, transformations, metadataExtension, commentExtension) { 'use strict'; @@ -213,7 +214,7 @@ $.extend(WLXMLTextNode.prototype, WLXMLDocumentNodeMethods); var WLXMLDocument = function(xml, options) { this.classMethods = {}; this.classTransformations = {}; - smartxml.Document.call(this, xml, [metadataExtension]); + smartxml.Document.call(this, xml, [metadataExtension, commentExtension]); this.options = options; };