Hashar has uploaded a new change for review. https://gerrit.wikimedia.org/r/316010
Change subject: Skip registering RL modules depending on VisualEditor ...................................................................... Skip registering RL modules depending on VisualEditor When VisualEditor is not installed, there is no point in registered resource loader modules that depends on it. A use case is trying to run tests for the MediaWiki tarball. It comes with Cite but without VisualEditor. The patch is based on GuidedTour patch by Matthew Flaschen https://gerrit.wikimedia.org/r/#/c/305691/ for T143297 Change-Id: Idf769e0149f93c099a94b1b7a6cb203273dab881 --- M extension.json M includes/CiteHooks.php 2 files changed, 114 insertions(+), 88 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Cite refs/changes/10/316010/1 diff --git a/extension.json b/extension.json index b3aa8af..35d451c 100644 --- a/extension.json +++ b/extension.json @@ -33,6 +33,9 @@ "ResourceLoaderTestModules": [ "CiteHooks::onResourceLoaderTestModules" ], + "ResourceLoaderRegisterModules": [ + "CiteHooks::onResourceLoaderRegisterModules" + ], "LinksUpdate": [ "CiteHooks::onLinksUpdate" ], @@ -66,94 +69,6 @@ "class": "CiteCSSFileModule", "styles": "ext.cite.style.css", "position": "top", - "targets": [ - "desktop", - "mobile" - ] - }, - "ext.cite.visualEditor.core": { - "scripts": [ - "ve-cite/ve.dm.MWReferenceModel.js", - "ve-cite/ve.dm.MWReferencesListNode.js", - "ve-cite/ve.dm.MWReferenceNode.js", - "ve-cite/ve.ce.MWReferencesListNode.js", - "ve-cite/ve.ce.MWReferenceNode.js", - "ve-cite/ve.ui.MWReferencesListCommand.js" - ], - "styles": [ - "ve-cite/ve.ce.MWReferencesListNode.css", - "ve-cite/ve.ce.MWReferenceNode.css" - ], - "dependencies": [ - "ext.visualEditor.mwcore" - ], - "messages": [ - "cite-ve-referenceslist-isempty", - "cite-ve-referenceslist-isempty-default", - "cite-ve-referenceslist-missingref" - ], - "targets": [ - "desktop", - "mobile" - ] - }, - "ext.cite.visualEditor.data": { - "class": "CiteDataModule" - }, - "ext.cite.visualEditor": { - "scripts": [ - "ve-cite/ve.ui.MWReferenceGroupInputWidget.js", - "ve-cite/ve.ui.MWReferenceSearchWidget.js", - "ve-cite/ve.ui.MWReferenceResultWidget.js", - "ve-cite/ve.ui.MWUseExistingReferenceCommand.js", - "ve-cite/ve.ui.MWCitationDialog.js", - "ve-cite/ve.ui.MWReferencesListDialog.js", - "ve-cite/ve.ui.MWReferenceDialog.js", - "ve-cite/ve.ui.MWReferenceDialogTool.js", - "ve-cite/ve.ui.MWCitationDialogTool.js", - "ve-cite/ve.ui.MWReferenceContextItem.js", - "ve-cite/ve.ui.MWReferencesListContextItem.js", - "ve-cite/ve.ui.MWCitationContextItem.js", - "ve-cite/ve.ui.MWCitationAction.js", - "ve-cite/ve.ui.MWReference.init.js" - ], - "styles": [ - "ve-cite/ve.ui.MWReferenceContextItem.css", - "ve-cite/ve.ui.MWReferenceGroupInputWidget.css", - "ve-cite/ve.ui.MWReferenceIcons.css", - "ve-cite/ve.ui.MWReferenceResultWidget.css", - "ve-cite/ve.ui.MWReferenceSearchWidget.css" - ], - "dependencies": [ - "ext.cite.visualEditor.core", - "ext.cite.visualEditor.data", - "ext.cite.style", - "ext.visualEditor.mwtransclusion", - "ext.visualEditor.mediawiki" - ], - "messages": [ - "cite-ve-dialog-reference-editing-reused", - "cite-ve-dialog-reference-options-group-label", - "cite-ve-dialog-reference-options-group-placeholder", - "cite-ve-dialog-reference-options-name-label", - "cite-ve-dialog-reference-options-section", - "cite-ve-dialog-reference-title", - "cite-ve-dialog-reference-useexisting-full-label", - "cite-ve-dialog-reference-useexisting-label", - "cite-ve-dialog-reference-useexisting-tool", - "cite-ve-dialog-referenceslist-contextitem-description-general", - "cite-ve-dialog-referenceslist-contextitem-description-named", - "cite-ve-dialog-referenceslist-title", - "cite-ve-dialogbutton-citation-educationpopup-title", - "cite-ve-dialogbutton-citation-educationpopup-text", - "cite-ve-dialogbutton-reference-full-label", - "cite-ve-dialogbutton-reference-tooltip", - "cite-ve-dialogbutton-reference-title", - "cite-ve-dialogbutton-referenceslist-tooltip", - "cite-ve-reference-input-placeholder", - "cite-ve-toolbar-group-label", - "cite-ve-othergroup-item" - ], "targets": [ "desktop", "mobile" diff --git a/includes/CiteHooks.php b/includes/CiteHooks.php index efa7c5e..7e3c5bf 100644 --- a/includes/CiteHooks.php +++ b/includes/CiteHooks.php @@ -70,6 +70,117 @@ } /** + * Conditionally register resource loader modules that depends on the + * VisualEditor MediaWiki extension. + * + * @param $resourceLoader + * @return true + */ + public static function onResourceLoaderRegisterModules( &$resourceLoader ) { + + if ( ! class_exists( 'VisualEditorHooks' ) ) { + return true; + } + + $dir = dirname( __DIR__ ) . DIRECTORY_SEPARATOR; + + $resourceLoader->register( "ext.cite.visualEditor.core", [ + 'localBasePath' => $dir . 'modules', + 'remoteExtPath' => 'Cite/modules', + "scripts" => [ + "ve-cite/ve.dm.MWReferenceModel.js", + "ve-cite/ve.dm.MWReferencesListNode.js", + "ve-cite/ve.dm.MWReferenceNode.js", + "ve-cite/ve.ce.MWReferencesListNode.js", + "ve-cite/ve.ce.MWReferenceNode.js", + "ve-cite/ve.ui.MWReferencesListCommand.js" + ], + "styles" => [ + "ve-cite/ve.ce.MWReferencesListNode.css", + "ve-cite/ve.ce.MWReferenceNode.css" + ], + "dependencies" => [ + "ext.visualEditor.mwcore" + ], + "messages" => [ + "cite-ve-referenceslist-isempty", + "cite-ve-referenceslist-isempty-default", + "cite-ve-referenceslist-missingref" + ], + "targets" => [ + "desktop", + "mobile" + ] + ] ); + + $resourceLoader->register( "ext.cite.visualEditor.data", + [ "class" => "CiteDataModule" ] ); + + $resourceLoader->register( "ext.cite.visualEditor", [ + 'localBasePath' => $dir . 'modules', + 'remoteExtPath' => 'Cite/modules', + "scripts" => [ + "ve-cite/ve.ui.MWReferenceGroupInputWidget.js", + "ve-cite/ve.ui.MWReferenceSearchWidget.js", + "ve-cite/ve.ui.MWReferenceResultWidget.js", + "ve-cite/ve.ui.MWUseExistingReferenceCommand.js", + "ve-cite/ve.ui.MWCitationDialog.js", + "ve-cite/ve.ui.MWReferencesListDialog.js", + "ve-cite/ve.ui.MWReferenceDialog.js", + "ve-cite/ve.ui.MWReferenceDialogTool.js", + "ve-cite/ve.ui.MWCitationDialogTool.js", + "ve-cite/ve.ui.MWReferenceContextItem.js", + "ve-cite/ve.ui.MWReferencesListContextItem.js", + "ve-cite/ve.ui.MWCitationContextItem.js", + "ve-cite/ve.ui.MWCitationAction.js", + "ve-cite/ve.ui.MWReference.init.js" + ], + "styles" => [ + "ve-cite/ve.ui.MWReferenceContextItem.css", + "ve-cite/ve.ui.MWReferenceGroupInputWidget.css", + "ve-cite/ve.ui.MWReferenceIcons.css", + "ve-cite/ve.ui.MWReferenceResultWidget.css", + "ve-cite/ve.ui.MWReferenceSearchWidget.css" + ], + "dependencies" => [ + "ext.cite.visualEditor.core", + "ext.cite.visualEditor.data", + "ext.cite.style", + "ext.visualEditor.mwtransclusion", + "ext.visualEditor.mediawiki" + ], + "messages" => [ + "cite-ve-dialog-reference-editing-reused", + "cite-ve-dialog-reference-options-group-label", + "cite-ve-dialog-reference-options-group-placeholder", + "cite-ve-dialog-reference-options-name-label", + "cite-ve-dialog-reference-options-section", + "cite-ve-dialog-reference-title", + "cite-ve-dialog-reference-useexisting-full-label", + "cite-ve-dialog-reference-useexisting-label", + "cite-ve-dialog-reference-useexisting-tool", + "cite-ve-dialog-referenceslist-contextitem-description-general", + "cite-ve-dialog-referenceslist-contextitem-description-named", + "cite-ve-dialog-referenceslist-title", + "cite-ve-dialogbutton-citation-educationpopup-title", + "cite-ve-dialogbutton-citation-educationpopup-text", + "cite-ve-dialogbutton-reference-full-label", + "cite-ve-dialogbutton-reference-tooltip", + "cite-ve-dialogbutton-reference-title", + "cite-ve-dialogbutton-referenceslist-tooltip", + "cite-ve-reference-input-placeholder", + "cite-ve-toolbar-group-label", + "cite-ve-othergroup-item" + ], + "targets" => [ + "desktop", + "mobile" + ] + ] ); + return true; + } + + /** * Callback for LinksUpdate hook * Post-output processing of references property, for proper db storage * Deferred to avoid performance overhead when outputting the page -- To view, visit https://gerrit.wikimedia.org/r/316010 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idf769e0149f93c099a94b1b7a6cb203273dab881 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Cite Gerrit-Branch: master Gerrit-Owner: Hashar <has...@free.fr> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits