X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/95d7d373a581746ce68ada33dd890ecc385245ed..af9ccdd1815aea5d1489b9729287bea85519b74f:/src/smartxml/smartxml.js?ds=sidebyside diff --git a/src/smartxml/smartxml.js b/src/smartxml/smartxml.js index 663b332..7d3f332 100644 --- a/src/smartxml/smartxml.js +++ b/src/smartxml/smartxml.js @@ -581,18 +581,26 @@ $.extend(Document.prototype, Backbone.Events, { this.replaceRoot(this._rollbackBackup); this._rollbackBackup = null; this._currentTransaction = null; + this._transformationLevel = 0; }, - transaction: function(callback, context, metadata) { + transaction: function(callback, params) { var toret; - this.startTransaction(metadata); + params = params || {}; + this.startTransaction(params.metadata); try { - toret = callback.call(context); + toret = callback.call(params.context || this); } catch(e) { + if(params.error) { + params.error(e); + } this.rollbackTransaction(); - throw e; + return; } this.endTransaction(); + if(params.success) { + params.success(toret); + } return toret; },