From b9e53e159900593bbfc34a74478dd5cf14ab0732 Mon Sep 17 00:00:00 2001 From: Krinkle Date: Sun, 31 Oct 2010 23:42:08 +0000 Subject: [PATCH] Adding mediawiki.advanced.rightclickedit.js * Removing loadhook from legacy rightclickedit.js * Replacing module adder in OutputPage * Define mediawiki.advanced.rightclickedit module --- includes/OutputPage.php | 2 +- resources/Resources.php | 3 +++ .../mediawiki.advanced.rightclickedit.js | 19 +++++++++++++++++++ skins/common/rightclickedit.js | 4 +--- 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 resources/mediawiki.advanced/mediawiki.advanced.rightclickedit.js diff --git a/includes/OutputPage.php b/includes/OutputPage.php index b78cf568df..cd2a2bfc5e 100644 --- a/includes/OutputPage.php +++ b/includes/OutputPage.php @@ -1641,7 +1641,7 @@ class OutputPage { } if( $wgUser->getBoolOption( 'editsectiononrightclick' ) ) { - $this->addModules( 'mediawiki.legacy.rightclickedit' ); + $this->addModules( 'mediawiki.advanced.rightclickedit' ); } if( $wgUniversalEditButton ) { diff --git a/resources/Resources.php b/resources/Resources.php index bc7ff5fe61..98430bcb4d 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -319,6 +319,9 @@ return array( 'debugScripts' => 'resources/mediawiki/mediawiki.log.js', 'debugRaw' => false ) ), + 'mediawiki.advanced.rightclickedit' => new ResourceLoaderFileModule( array( + 'scripts' => 'resources/mediawiki.advanced/mediawiki.advanced.rightclickedit.js', + ) ), 'mediawiki.specials.preferences' => new ResourceLoaderFileModule( array( 'scripts' => 'resources/mediawiki.specials/mediawiki.specials.preferences.js', 'styles' => 'resources/mediawiki.specials/mediawiki.specials.preferences.css', diff --git a/resources/mediawiki.advanced/mediawiki.advanced.rightclickedit.js b/resources/mediawiki.advanced/mediawiki.advanced.rightclickedit.js new file mode 100644 index 0000000000..2b272b0993 --- /dev/null +++ b/resources/mediawiki.advanced/mediawiki.advanced.rightclickedit.js @@ -0,0 +1,19 @@ +/* + * JavaScript to enable right click edit functionality + */ + +// Select all h1-h6 elements that contain editsection links +$('h1, h2, h3, h4, h5, h6').filter( ':has(.editsection a)' ).bind( 'contextmenu', function( e ) { + + // Get href of the [edit] link + var href = $(this).find( '.editsection a' ).attr( 'href' ); + + // Check if target is the anchor link itself. If so, dont supress the contextmenu + // So that the reader can still do things like copy url, open in new tab etc. + $target = $( e.target ); + if( !$target.is( 'a' ) && !$target.parent().is( '.editsection' ) ){ + window.location = href; + e.preventDefault(); + } + +}); \ No newline at end of file diff --git a/skins/common/rightclickedit.js b/skins/common/rightclickedit.js index 9b8bb27363..6945bfe3d4 100644 --- a/skins/common/rightclickedit.js +++ b/skins/common/rightclickedit.js @@ -43,6 +43,4 @@ window.addRightClickEditHandler = function(el) { } } } -} - -hookEvent("load", setupRightClickEdit); +} \ No newline at end of file -- 2.20.1