X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/258f516ed932787fc3a5e1c970831a885e00872f..e0b4f012ea85b4b1bc58f2b8531cef068bf572df:/src/smartxml/smartxml.js diff --git a/src/smartxml/smartxml.js b/src/smartxml/smartxml.js index 31faef0..c23e06d 100644 --- a/src/smartxml/smartxml.js +++ b/src/smartxml/smartxml.js @@ -583,11 +583,23 @@ $.extend(Document.prototype, Backbone.Events, { this._currentTransaction = null; }, - transaction: function(callback, context, metadata) { + transaction: function(callback, params) { var toret; - this.startTransaction(metadata); - toret = callback.call(context); + params = params || {}; + this.startTransaction(params.metadata); + try { + toret = callback.call(params.context || this); + } catch(e) { + if(params.error) { + params.error(e); + } + this.rollbackTransaction(); + return; + } this.endTransaction(); + if(params.success) { + params.success(toret); + } return toret; },