Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/225106
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.SurfaceWidget.js 4 files changed, 15 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor refs/changes/06/225106/1 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.SurfaceWidget.js b/src/ui/widgets/ve.ui.SurfaceWidget.js index 84473e1..599df68 100644 --- a/src/ui/widgets/ve.ui.SurfaceWidget.js +++ b/src/ui/widgets/ve.ui.SurfaceWidget.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: newchange Gerrit-Change-Id: I87d8aa3d37d00a266c3efd2b88e31fd697678d9a Gerrit-PatchSet: 1 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits