* @return array Array of modules with helper keys for easy overriding
*/
public function getDefaultModules() {
- global $wgUseAjax, $wgAjaxWatch, $wgEnableAPI, $wgEnableWriteAPI;
+ global $wgUseAjax, $wgEnableAPI, $wgEnableWriteAPI;
$out = $this->getOutput();
$user = $out->getUser();
);
// Add various resources if required
- if ( $wgUseAjax ) {
- if ( $wgEnableAPI ) {
- if ( $wgEnableWriteAPI && $wgAjaxWatch && $user->isLoggedIn()
- && $user->isAllowed( 'writeapi' )
- ) {
- $modules['watch'][] = 'mediawiki.page.watch.ajax';
- }
-
- $modules['search'][] = 'mediawiki.searchSuggest';
+ if ( $wgUseAjax && $wgEnableAPI ) {
+ if ( $wgEnableWriteAPI && $user->isLoggedIn()
+ && $user->isAllowedAll( 'writeapi', 'viewmywatchlist', 'editmywatchlist' )
+ && $this->getRelevantTitle()->canExist()
+ ) {
+ $modules['watch'][] = 'mediawiki.page.watch.ajax';
}
+
+ $modules['search'][] = 'mediawiki.searchSuggest';
}
if ( $user->getBoolOption( 'editsectiononrightclick' ) ) {
$titles[] = $user->getTalkPage();
}
- // Other tab link
- if ( $title->isSpecialPage() ) {
+ // Check, if the page can hold some kind of content, otherwise do nothing
+ if ( !$title->canExist() ) {
// nothing
} elseif ( $title->isTalkPage() ) {
$titles[] = $title->getSubjectPage();