jenkins-bot has submitted this change and it was merged.

Change subject: Emit a transact event on the ve.dm.Document when a transaction 
occurs
......................................................................


Emit a transact event on the ve.dm.Document when a transaction occurs

We'll need this to let a MetaList observe a Document and adjust to changes.
We should probably also have SurfaceFragment listen to this event instead.

Change-Id: I9e811e242969eb44afe0b4fa8153d0fb1b0071cd
---
M modules/ve/dm/ve.dm.Document.js
M modules/ve/dm/ve.dm.TransactionProcessor.js
M modules/ve/ve.Document.js
3 files changed, 17 insertions(+), 0 deletions(-)

Approvals:
  Esanders: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/ve/dm/ve.dm.Document.js b/modules/ve/dm/ve.dm.Document.js
index df6939a..8a712f4 100644
--- a/modules/ve/dm/ve.dm.Document.js
+++ b/modules/ve/dm/ve.dm.Document.js
@@ -147,6 +147,14 @@
 
 ve.inheritClass( ve.dm.Document, ve.Document );
 
+/* Events */
+
+/**
+ * @event transact
+ * @param {ve.dm.Transaction} tx Transaction that was just processed
+ * @param {boolean} reversed Whether the transaction was processed in reverse
+ */
+
 /* Static methods */
 
 /**
diff --git a/modules/ve/dm/ve.dm.TransactionProcessor.js 
b/modules/ve/dm/ve.dm.TransactionProcessor.js
index 9737126..4a3ec15 100644
--- a/modules/ve/dm/ve.dm.TransactionProcessor.js
+++ b/modules/ve/dm/ve.dm.TransactionProcessor.js
@@ -144,6 +144,8 @@
        }
        // Mark the transaction as committed or rolled back, as appropriate
        this.transaction.toggleApplied();
+       // Emit an event on the document
+       this.document.emit( 'transact', this.transaction, this.reversed );
 };
 
 /**
diff --git a/modules/ve/ve.Document.js b/modules/ve/ve.Document.js
index 171f1f8..c0c311b 100644
--- a/modules/ve/ve.Document.js
+++ b/modules/ve/ve.Document.js
@@ -9,14 +9,21 @@
  * Generic document.
  *
  * @class
+ * @extends ve.EventEmitter
  * @constructor
  * @param {ve.Node} model Model to observe
  */
 ve.Document = function VeDocument( documentNode ) {
+       // Parent constructor
+       ve.EventEmitter.call( this );
        // Properties
        this.documentNode = documentNode;
 };
 
+/* Inheritance */
+
+ve.inheritClass( ve.Document, ve.EventEmitter );
+
 /* Methods */
 
 /**

-- 
To view, visit https://gerrit.wikimedia.org/r/53950
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I9e811e242969eb44afe0b4fa8153d0fb1b0071cd
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <roan.katt...@gmail.com>
Gerrit-Reviewer: Esanders <esand...@wikimedia.org>
Gerrit-Reviewer: Trevor Parscal <tpars...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to