Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/284679

Change subject: Create MW targets using a factory
......................................................................

Create MW targets using a factory

Move the existing static property 'name' to 'trackingName'
to make way for a real registry index.

Change-Id: Iab0d5be611ece7038234551c4847b07517b4348d
---
M modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
M modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
M modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
M modules/ve-mw/init/ve.init.mw.ArticleTarget.js
M modules/ve-mw/init/ve.init.mw.ArticleTargetEvents.js
M modules/ve-mw/init/ve.init.mw.Target.js
M modules/ve-mw/init/ve.init.mw.js
7 files changed, 30 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/79/284679/1

diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js 
b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
index 5a23c15..d84afcd 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
@@ -139,7 +139,7 @@
                                        // Transfer methods
                                        
ve.init.mw.DesktopArticleTarget.prototype.setupSectionEditLinks = 
init.setupSectionLinks;
 
-                                       target = new 
ve.init.mw.DesktopArticleTarget();
+                                       target = 
ve.init.mw.targetFactory.create( 'desktop' );
                                        $( '#content' ).append( target.$element 
);
                                        return target;
                                }, function ( e ) {
diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js 
b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
index 67e085b..74b7c53 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
@@ -103,6 +103,8 @@
 
 /* Static Properties */
 
+ve.init.mw.DesktopArticleTarget.static.name = 'desktop';
+
 ve.init.mw.DesktopArticleTarget.static.actionGroups = [
        { include: [ 'help', 'notices' ] },
        {
@@ -651,7 +653,7 @@
        this.surface.getModel().getDocument().once( 'transact', function () {
                ve.track( 'mwtiming.behavior.firstTransaction', {
                        duration: ve.now() - surfaceReadyTime,
-                       targetName: target.constructor.static.name
+                       targetName: target.constructor.static.trackingName
                } );
        } );
 
@@ -1451,3 +1453,7 @@
 ve.init.mw.DesktopArticleTarget.prototype.resetDocumentOpacity = function () {
        
this.getSurface().getView().getDocument().getDocumentNode().$element.css( 
'opacity', 1 );
 };
+
+/* Registration */
+
+ve.init.mw.targetFactory.register( ve.init.mw.DesktopArticleTarget );
diff --git a/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js 
b/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
index 7643742..f3d94e2 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
@@ -63,6 +63,8 @@
 
 ve.init.mw.MobileArticleTarget.static.name = 'mobile';
 
+ve.init.mw.MobileArticleTarget.static.trackingName = 'mobile';
+
 // FIXME Some of these users will be on tablets, check for this
 ve.init.mw.MobileArticleTarget.static.platformType = 'phone';
 
@@ -224,6 +226,10 @@
        this.getSurface().getView().blur();
 };
 
+/* Registration */
+
+ve.init.mw.targetFactory.register( ve.init.mw.MobileArticleTarget );
+
 /**
  * Back tool
  */
diff --git a/modules/ve-mw/init/ve.init.mw.ArticleTarget.js 
b/modules/ve-mw/init/ve.init.mw.ArticleTarget.js
index ea476a8..9c928ab 100644
--- a/modules/ve-mw/init/ve.init.mw.ArticleTarget.js
+++ b/modules/ve-mw/init/ve.init.mw.ArticleTarget.js
@@ -161,13 +161,13 @@
 /* Static Properties */
 
 /**
- * Name of target class. Used by ArticleTargetEvents to identify which target 
we are tracking.
+ * Tracking name of target class. Used by ArticleTargetEvents to identify 
which target we are tracking.
  *
  * @static
  * @property {string}
  * @inheritable
  */
-ve.init.mw.ArticleTarget.static.name = 'mwTarget';
+ve.init.mw.ArticleTarget.static.trackingName = 'mwTarget';
 
 /**
  * @inheritdoc
@@ -1679,7 +1679,7 @@
                ) {
                        windowManager.openWindow(
                                'welcome',
-                               { targetName: this.constructor.static.name }
+                               { targetName: 
this.constructor.static.trackingName }
                        )
                                .then( function ( opened ) {
                                        return opened;
diff --git a/modules/ve-mw/init/ve.init.mw.ArticleTargetEvents.js 
b/modules/ve-mw/init/ve.init.mw.ArticleTargetEvents.js
index 182a18f..fb998c2 100644
--- a/modules/ve-mw/init/ve.init.mw.ArticleTargetEvents.js
+++ b/modules/ve-mw/init/ve.init.mw.ArticleTargetEvents.js
@@ -50,7 +50,7 @@
  * @param {Object} data Additional data describing the event, encoded as an 
object
  */
 ve.init.mw.ArticleTargetEvents.prototype.track = function ( topic, data ) {
-       data.targetName = this.target.constructor.static.name;
+       data.targetName = this.target.constructor.static.trackingName;
        ve.track( 'mwtiming.' + topic, data );
 
        if ( topic.indexOf( 'performance.system.serializeforcache' ) === 0 ) {
diff --git a/modules/ve-mw/init/ve.init.mw.Target.js 
b/modules/ve-mw/init/ve.init.mw.Target.js
index c1aac40..2976513 100644
--- a/modules/ve-mw/init/ve.init.mw.Target.js
+++ b/modules/ve-mw/init/ve.init.mw.Target.js
@@ -34,6 +34,15 @@
 
 /* Static Properties */
 
+/**
+ * Symbolic name for this target class.
+ *
+ * @static
+ * @property {string}
+ * @inheritable
+ */
+ve.init.mw.Target.static.name = null;
+
 ve.init.mw.Target.static.toolbarGroups = [
        // History
        { include: [ 'undo', 'redo' ] },
diff --git a/modules/ve-mw/init/ve.init.mw.js b/modules/ve-mw/init/ve.init.mw.js
index c31f119..5d6fabd 100644
--- a/modules/ve-mw/init/ve.init.mw.js
+++ b/modules/ve-mw/init/ve.init.mw.js
@@ -11,4 +11,6 @@
  * @class
  * @singleton
  */
-ve.init.mw = {};
+ve.init.mw = {
+       targetFactory: new OO.Factory()
+};

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iab0d5be611ece7038234551c4847b07517b4348d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to