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

Change subject: Bring in target 'mode' property from MW
......................................................................


Bring in target 'mode' property from MW

Part of upstreaming visual/source switching.

Change-Id: I9d501cb77c714fbd299b5816d302b0bdde7833cd
---
M src/init/ve.init.Target.js
1 file changed, 44 insertions(+), 0 deletions(-)

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



diff --git a/src/init/ve.init.Target.js b/src/init/ve.init.Target.js
index c3327c2..d31e9be 100644
--- a/src/init/ve.init.Target.js
+++ b/src/init/ve.init.Target.js
@@ -15,6 +15,8 @@
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {Object} [toolbarConfig] Configuration options for the toolbar
+ * @cfg {Object} [modes] Available editing modes. Defaults to static.modes
+ * @cfg {Object} [mode] Initial editing mode. Must be in this.modes and 
defaults to first item.
  */
 ve.init.Target = function VeInitTarget( config ) {
        config = config || {};
@@ -36,6 +38,9 @@
        this.toolbarConfig = config.toolbarConfig;
        this.$scrollContainer = this.getScrollContainer();
        this.toolbarScrollOffset = 0;
+
+       this.modes = config.modes || this.constructor.static.modes;
+       this.setMode( config.mode );
 
        this.setupTriggerListeners();
 
@@ -66,6 +71,17 @@
 OO.mixinClass( ve.init.Target, OO.EventEmitter );
 
 /* Static Properties */
+
+/**
+ * Editing modes available in the target.
+ *
+ * Must contain at least one mode. Overridden if the #modes config option is 
used.
+ *
+ * @static
+ * @property {string[]}
+ * @inheritable
+ */
+ve.init.Target.static.modes = [ 'visual' ];
 
 ve.init.Target.static.toolbarGroups = [
        // History
@@ -178,6 +194,34 @@
 /* Methods */
 
 /**
+ * Set editing mode
+ *
+ * @param {string} mode Editing mode, see static.modes
+ */
+ve.init.Target.prototype.setMode = function ( mode ) {
+       // Mode is not available
+       if ( this.modes.indexOf( mode ) === -1 ) {
+               if ( !this.mode ) {
+                       // Use default mode if nothing has been set
+                       mode = this.modes[ 0 ];
+               } else {
+                       // Fail if we already have a valid mode
+                       return;
+               }
+       }
+       if ( mode !== this.mode ) {
+               // The follow classes are used here:
+               // * ve-init-target-visual
+               // * ve-init-target-[modename]
+               if ( this.mode ) {
+                       this.$element.removeClass( 've-init-target-' + 
this.mode );
+               }
+               this.$element.addClass( 've-init-target-' + mode );
+               this.mode = mode;
+       }
+};
+
+/**
  * Bind event handlers to target and document
  */
 ve.init.Target.prototype.bindHandlers = function () {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I9d501cb77c714fbd299b5816d302b0bdde7833cd
Gerrit-PatchSet: 3
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to