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