Adding mediawiki.advanced.rightclickedit.js
authorKrinkle <krinkle@users.mediawiki.org>
Sun, 31 Oct 2010 23:42:08 +0000 (23:42 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Sun, 31 Oct 2010 23:42:08 +0000 (23:42 +0000)
* Removing loadhook from legacy rightclickedit.js
* Replacing module adder in OutputPage
* Define mediawiki.advanced.rightclickedit module

includes/OutputPage.php
resources/Resources.php
resources/mediawiki.advanced/mediawiki.advanced.rightclickedit.js [new file with mode: 0644]
skins/common/rightclickedit.js

index b78cf56..cd2a2bf 100644 (file)
@@ -1641,7 +1641,7 @@ class OutputPage {
                }
 
                if( $wgUser->getBoolOption( 'editsectiononrightclick' ) ) {
-                       $this->addModules( 'mediawiki.legacy.rightclickedit' );
+                       $this->addModules( 'mediawiki.advanced.rightclickedit' );
                }
 
                if( $wgUniversalEditButton ) {
index bc7ff5f..98430bc 100644 (file)
@@ -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 (file)
index 0000000..2b272b0
--- /dev/null
@@ -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
index 9b8bb27..6945bfe 100644 (file)
@@ -43,6 +43,4 @@ window.addRightClickEditHandler = function(el) {
                        }
                }
        }
-}
-
-hookEvent("load", setupRightClickEdit);
+}
\ No newline at end of file