fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fnpjs: datetime
[fnpeditor.git]
/
src
/
smartxml
/
smartxml.js
diff --git
a/src/smartxml/smartxml.js
b/src/smartxml/smartxml.js
index
ab4d6fb
..
505ab85
100644
(file)
--- a/
src/smartxml/smartxml.js
+++ b/
src/smartxml/smartxml.js
@@
-476,6
+476,12
@@
$.extend(Document.prototype, Backbone.Events, {
transform: function(Transformation, args) {
var toret, transformation;
transform: function(Transformation, args) {
var toret, transformation;
+ if(!this._currentTransaction) {
+ return this.transaction(function() {
+ return this.transform(Transformation, args);
+ }, this);
+ }
+
if(typeof Transformation === 'function') {
transformation = new Transformation(this, this, args);
} else {
if(typeof Transformation === 'function') {
transformation = new Transformation(this, this, args);
} else {
@@
-491,11
+497,7
@@
$.extend(Document.prototype, Backbone.Events, {
},
function() {
if(this._transformationLevel === 1 && !this._undoInProgress) {
},
function() {
if(this._transformationLevel === 1 && !this._undoInProgress) {
- if(this._currentTransaction) {
- this._currentTransaction.pushTransformation(transformation);
- } else {
- this.undoStack.push(new Transaction([transformation]));
- }
+ this._currentTransaction.pushTransformation(transformation);
}
if(!this._undoInProgress && this._transformationLevel === 1) {
this.redoStack = [];
}
if(!this._undoInProgress && this._transformationLevel === 1) {
this.redoStack = [];
@@
-556,11
+558,11
@@
$.extend(Document.prototype, Backbone.Events, {
}
},
}
},
- startTransaction: function() {
+ startTransaction: function(
metadata
) {
if(this._currentTransaction) {
throw new Error('Nested transactions not supported!');
}
if(this._currentTransaction) {
throw new Error('Nested transactions not supported!');
}
- this._currentTransaction = new Transaction([]);
+ this._currentTransaction = new Transaction([]
, metadata
);
},
endTransaction: function() {
},
endTransaction: function() {
@@
-573,9
+575,9
@@
$.extend(Document.prototype, Backbone.Events, {
this._currentTransaction = null;
},
this._currentTransaction = null;
},
- transaction: function(callback, context) {
+ transaction: function(callback, context
, metadata
) {
var toret;
var toret;
- this.startTransaction();
+ this.startTransaction(
metadata
);
toret = callback.call(context);
this.endTransaction();
return toret;
toret = callback.call(context);
this.endTransaction();
return toret;
@@
-606,8
+608,9
@@
$.extend(Document.prototype, Backbone.Events, {
}
});
}
});
-var Transaction = function(transformations) {
+var Transaction = function(transformations
, metadata
) {
this.transformations = transformations || [];
this.transformations = transformations || [];
+ this.metadata = metadata;
};
$.extend(Transaction.prototype, {
pushTransformation: function(transformation) {
};
$.extend(Transaction.prototype, {
pushTransformation: function(transformation) {