Do not load module 'ext.CodeMirror' when CodeEditor is active

Change-Id: I8fd0de727f2ebb1bf9f23981438d6cafa962ad17
This commit is contained in:
Fomafix 2019-03-11 07:04:20 +01:00 committed by TheDJ
parent f6c86b9867
commit f0757cb0dc
2 changed files with 9 additions and 7 deletions

View file

@ -5,10 +5,16 @@ class CodeMirrorHooks {
/** /**
* Checks if CodeMirror for textarea wikitext editor should be loaded on this page or not. * Checks if CodeMirror for textarea wikitext editor should be loaded on this page or not.
* *
* @param IContextSource $context The current ContextSource object * @param OutputPage $out
* @return bool * @return bool
*/ */
private static function isCodeMirrorOnPage( IContextSource $context ) { private static function isCodeMirrorOnPage( OutputPage $out ) {
// Disable CodeMirror when CodeEditor is active on this page
// Depends on ext.codeEditor being added by EditPage::showEditForm:initial
if ( in_array( 'ext.codeEditor', $out->getModules() ) ) {
return false;
}
$context = $out->getContext();
return in_array( Action::getActionName( $context ), [ 'edit', 'submit' ] ) && return in_array( Action::getActionName( $context ), [ 'edit', 'submit' ] ) &&
// CodeMirror on textarea wikitext editors doesn't support RTL (T170001) // CodeMirror on textarea wikitext editors doesn't support RTL (T170001)
!$context->getTitle()->getPageLanguage()->isRTL(); !$context->getTitle()->getPageLanguage()->isRTL();
@ -23,7 +29,7 @@ class CodeMirrorHooks {
* @param Skin &$skin * @param Skin &$skin
*/ */
public static function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) { public static function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) {
if ( self::isCodeMirrorOnPage( $out->getContext() ) ) { if ( self::isCodeMirrorOnPage( $out ) ) {
$out->addModules( 'ext.CodeMirror' ); $out->addModules( 'ext.CodeMirror' );
} }
// TODO: for backwards compatibility. Remove in 2019. // TODO: for backwards compatibility. Remove in 2019.

View file

@ -3,10 +3,6 @@
$textbox1, $textbox1,
enableContentEditable = true; enableContentEditable = true;
if ( mw.config.get( 'wgCodeEditorCurrentLanguage' ) ) { // If the CodeEditor is used then just exit;
return;
}
// Exit if WikiEditor is disabled // Exit if WikiEditor is disabled
// usebetatoolbar can be the string "0" if the user disabled the preference - Bug T54542#555387 // usebetatoolbar can be the string "0" if the user disabled the preference - Bug T54542#555387
if ( !( mw.loader.getState( 'ext.wikiEditor' ) && mw.user.options.get( 'usebetatoolbar' ) > 0 ) ) { if ( !( mw.loader.getState( 'ext.wikiEditor' ) && mw.user.options.get( 'usebetatoolbar' ) > 0 ) ) {