Fix flash of bad ve-edit tab on non-wikitext page in enabled namespacea

E.g. when viewing User:Example/common.js there was previously
both Edit and Edit source (or Create and Create source) and the
client-side JavaScript then removed the ve-edit tab after checking
the content model for 've.isAvailable'.

Change-Id: Ic2daeefa439648ef0602f8606773655cf9ab188a
This commit is contained in:
Timo Tijhof 2015-08-25 06:08:50 +02:00
parent 4e3d3acf65
commit d97f85019c

View file

@ -118,9 +118,14 @@ class VisualEditorHooks {
$availableNamespaces = $config->get( 'VisualEditorAvailableNamespaces' );
$title = $skin->getRelevantTitle();
// Don't exit if this namespace isn't VE-enabled, since we should still
// change "Edit" to "Edit source" (especially for NS_MEDIAWIKI).
$namespaceEnabled = $title->inNamespaces( array_keys( array_filter( $availableNamespaces ) ) );
$pageContentModel = $title->getContentModel();
// Don't exit if this page isn't VE-enabled, since we should still
// change "Edit" to "Edit source".
$isAvailable = (
$namespaceEnabled &&
$pageContentModel === CONTENT_MODEL_WIKITEXT
);
// HACK: Exit if we're in the Education Program namespace (even though it's content)
if ( defined( 'EP_NS' ) && $title->inNamespace( EP_NS ) ) {
@ -168,7 +173,7 @@ class VisualEditorHooks {
if ( $editTabMessage !== null ) {
$editTab['text'] = $skin->msg( $editTabMessage )->text();
}
if ( $namespaceEnabled ) {
if ( $isAvailable ) {
// Inject the VE tab before or after the edit tab
if ( $config->get( 'VisualEditorTabPosition' ) === 'before' ) {
$editTab['class'] .= ' collapsible';