From: Aleksander Ɓukasz Date: Sat, 7 Dec 2013 23:19:33 +0000 (+0100) Subject: smartxml: pass transformation instance to impl & undo when needed X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/b0bea8d363c03e64a67eb18c4e8702c69ecb72cc?ds=sidebyside smartxml: pass transformation instance to impl & undo when needed impl needs this to be able to store state that may be needed in undo implementation --- diff --git a/src/smartxml/transformations.js b/src/smartxml/transformations.js index 5e461ee..9aea150 100644 --- a/src/smartxml/transformations.js +++ b/src/smartxml/transformations.js @@ -95,13 +95,14 @@ toret.createGenericTransformation = function(desc, name) { this.changeRootPath = changeRoot.getPath(); } //var toret = desc.impl.call(this.context, this.args); // a argumenty do metody? - var toret = desc.impl.apply(this.context, this.args); + var argsToPass = desc.undo ? [this].concat(this.args) : this.args; + var toret = desc.impl.apply(this.context, argsToPass); this.hasRun = true; return toret; }, undo: function() { if(desc.undo) { - desc.undo.call(this.context); + desc.undo.call(this.context, this); } else { this.document.getNodeByPath(this.changeRootPath).replaceWith(this.snapshot); }