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

Change subject: Provide a command whitelist feature for targets
......................................................................


Provide a command whitelist feature for targets

Bug: T106061
Change-Id: I87d8aa3d37d00a266c3efd2b88e31fd697678d9a
---
M src/init/sa/ve.init.sa.Target.js
M src/init/ve.init.Target.js
M src/ui/ve.ui.Surface.js
M src/ui/widgets/ve.ui.TargetWidget.js
4 files changed, 15 insertions(+), 1 deletion(-)

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



diff --git a/src/init/sa/ve.init.sa.Target.js b/src/init/sa/ve.init.sa.Target.js
index 382bb30..a351702 100644
--- a/src/init/sa/ve.init.sa.Target.js
+++ b/src/init/sa/ve.init.sa.Target.js
@@ -91,6 +91,7 @@
  */
 ve.init.sa.Target.prototype.createSurface = function ( dmDoc, config ) {
        config = ve.extendObject( {
+               includeCommands: this.constructor.static.includeCommands,
                excludeCommands: OO.simpleArrayUnion(
                        this.constructor.static.excludeCommands,
                        this.constructor.static.documentCommands,
diff --git a/src/init/ve.init.Target.js b/src/init/ve.init.Target.js
index 3162eb3..76e26c6 100644
--- a/src/init/ve.init.Target.js
+++ b/src/init/ve.init.Target.js
@@ -131,6 +131,15 @@
 ve.init.Target.static.targetCommands = [ 'findAndReplace', 'findNext', 
'findPrevious' ];
 
 /**
+ * List of commands to include in the target
+ *
+ * Null means all commands in the registry are used (excluding excludeCommands)
+ *
+ * @type {string[]|null} List of command names
+ */
+ve.init.Target.static.includeCommands = null;
+
+/**
  * List of commands to exclude from the target entirely
  *
  * @type {string[]} List of command names
@@ -230,6 +239,7 @@
  */
 ve.init.Target.prototype.createSurface = function ( dmDoc, config ) {
        config = ve.extendObject( {
+               includeCommands: this.constructor.static.includeCommands,
                excludeCommands: OO.simpleArrayUnion(
                        this.constructor.static.excludeCommands,
                        this.constructor.static.documentCommands,
diff --git a/src/ui/ve.ui.Surface.js b/src/ui/ve.ui.Surface.js
index 3e410d3..7d2aef1 100644
--- a/src/ui/ve.ui.Surface.js
+++ b/src/ui/ve.ui.Surface.js
@@ -15,6 +15,7 @@
  * @constructor
  * @param {HTMLDocument|Array|ve.dm.LinearData|ve.dm.Document} dataOrDoc 
Document data to edit
  * @param {Object} [config] Configuration options
+ * @cfg {string[]|null} [includeCommands] List of commands to include, null 
for all registered commands
  * @cfg {string[]} [excludeCommands] List of commands to exclude
  * @cfg {Object} [importRules] Import rules
  * @cfg {string} [placeholder] Placeholder text to display when the surface is 
empty
@@ -41,7 +42,7 @@
        this.$menus = $( '<div>' );
        this.$placeholder = $( '<div>' ).addClass( 've-ui-surface-placeholder' 
);
        this.triggerListener = new ve.TriggerListener( OO.simpleArrayDifference(
-               Object.keys( ve.ui.commandRegistry.registry ), 
config.excludeCommands || []
+               config.includeCommands || Object.keys( 
ve.ui.commandRegistry.registry ), config.excludeCommands || []
        ) );
        if ( dataOrDoc instanceof ve.dm.Document ) {
                // ve.dm.Document
diff --git a/src/ui/widgets/ve.ui.TargetWidget.js 
b/src/ui/widgets/ve.ui.TargetWidget.js
index d46b5c1..bd6647e 100644
--- a/src/ui/widgets/ve.ui.TargetWidget.js
+++ b/src/ui/widgets/ve.ui.TargetWidget.js
@@ -15,6 +15,7 @@
  * @param {ve.dm.Document} doc Document model
  * @param {Object} [config] Configuration options
  * @cfg {Object[]} [tools] Toolbar configuration
+ * @cfg {string[]|null} [includeCommands] List of commands to include, null 
for all registered commands
  * @cfg {string[]} [excludeCommands] List of commands to exclude
  * @cfg {Object} [importRules] Import rules
  * @cfg {string} [inDialog] The name of the dialog this surface widget is in
@@ -28,6 +29,7 @@
 
        // Properties
        this.surface = ve.init.target.createSurface( doc, {
+               includeCommands: config.includeCommands,
                excludeCommands: config.excludeCommands,
                importRules: config.importRules,
                inDialog: config.inDialog

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I87d8aa3d37d00a266c3efd2b88e31fd697678d9a
Gerrit-PatchSet: 2
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Alex Monk <[email protected]>
Gerrit-Reviewer: Catrope <[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