Revert r34559 and fix r34542 -- include rightclickedit.js for 'edit on right click...
authorBrion Vibber <brion@users.mediawiki.org>
Mon, 12 May 2008 23:37:51 +0000 (23:37 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Mon, 12 May 2008 23:37:51 +0000 (23:37 +0000)
includes/OutputPage.php
includes/Skin.php
includes/SkinTemplate.php
skins/common/rightclickedit.js [new file with mode: 0644]
skins/common/wikibits.js

index dbd275d..67a050d 100644 (file)
@@ -794,6 +794,10 @@ class OutputPage {
                                $this->addScriptFile( 'mwsuggest.js' );
                        }
                }
+               
+               if( $wgUser->getBoolOption( 'editsectiononrightclick' ) ) {
+                       $this->addScriptFile( 'rightclickedit.js' );
+               }
 
 
                # Buffer output; final headers may depend on later processing
index 9ee07ac..dbb6001 100644 (file)
@@ -544,12 +544,6 @@ END;
 
                }
                $a['onload'] = $wgOut->getOnloadHandler();
-               if( $wgUser->getOption( 'editsectiononrightclick' ) ) {
-                       if( $a['onload'] != '' ) {
-                               $a['onload'] .= ';';
-                       }
-                       $a['onload'] .= 'setupRightClickEdit()';
-               }
                $a['class'] =
                        'mediawiki ns-'.$wgTitle->getNamespace().
                        ' '.($wgContLang->isRTL() ? "rtl" : "ltr").
index 0c73d15..3422ee1 100644 (file)
@@ -436,11 +436,7 @@ class SkinTemplate extends Skin {
                } else {
                        $tpl->set('body_ondblclick', false);
                }
-               if( $this->iseditable && $wgUser->getOption( 'editsectiononrightclick' ) ) {
-                       $tpl->set( 'body_onload', 'setupRightClickEdit()' );
-               } else {
-                       $tpl->set( 'body_onload', false );
-               }
+               $tpl->set( 'body_onload', false );
                $tpl->set( 'sidebar', $this->buildSidebar() );
                $tpl->set( 'nav_urls', $this->buildNavUrls() );
 
diff --git a/skins/common/rightclickedit.js b/skins/common/rightclickedit.js
new file mode 100644 (file)
index 0000000..83d552a
--- /dev/null
@@ -0,0 +1,48 @@
+function setupRightClickEdit() {
+       if (document.getElementsByTagName) {
+               var spans = document.getElementsByTagName('span');
+               for (var i = 0; i < spans.length; i++) {
+                       var el = spans[i];
+                       if(el.className == 'editsection') {
+                               addRightClickEditHandler(el);
+                       }
+               }
+       }
+}
+
+function addRightClickEditHandler(el) {
+       for (var i = 0; i < el.childNodes.length; i++) {
+               var link = el.childNodes[i];
+               if (link.nodeType == 1 && link.nodeName.toLowerCase() == 'a') {
+                       var editHref = link.getAttribute('href');
+                       // find the enclosing (parent) header
+                       var prev = el.parentNode;
+                       if (prev && prev.nodeType == 1 &&
+                       prev.nodeName.match(/^[Hh][1-6]$/)) {
+                               prev.oncontextmenu = function(e) {
+                                       if (!e) { e = window.event; }
+                                       // e is now the event in all browsers
+                                       var targ;
+                                       if (e.target) { targ = e.target; }
+                                       else if (e.srcElement) { targ = e.srcElement; }
+                                       if (targ.nodeType == 3) { // defeat Safari bug
+                                               targ = targ.parentNode;
+                                       }
+                                       // targ is now the target element
+
+                                       // We don't want to deprive the noble reader of a context menu
+                                       // for the section edit link, do we?  (Might want to extend this
+                                       // to all <a>'s?)
+                                       if (targ.nodeName.toLowerCase() != 'a'
+                                       || targ.parentNode.className != 'editsection') {
+                                               document.location = editHref;
+                                               return false;
+                                       }
+                                       return true;
+                               };
+                       }
+               }
+       }
+}
+
+hookEvent("load", setupRightClickEdit);
index 839e624..812710b 100644 (file)
@@ -461,53 +461,6 @@ function akeytt( doId ) {
        }
 }
 
-function setupRightClickEdit() {
-       if (document.getElementsByTagName) {
-               var spans = document.getElementsByTagName('span');
-               for (var i = 0; i < spans.length; i++) {
-                       var el = spans[i];
-                       if(el.className == 'editsection') {
-                               addRightClickEditHandler(el);
-                       }
-               }
-       }
-}
-
-function addRightClickEditHandler(el) {
-       for (var i = 0; i < el.childNodes.length; i++) {
-               var link = el.childNodes[i];
-               if (link.nodeType == 1 && link.nodeName.toLowerCase() == 'a') {
-                       var editHref = link.getAttribute('href');
-                       // find the enclosing (parent) header
-                       var prev = el.parentNode;
-                       if (prev && prev.nodeType == 1 &&
-                       prev.nodeName.match(/^[Hh][1-6]$/)) {
-                               prev.oncontextmenu = function(e) {
-                                       if (!e) { e = window.event; }
-                                       // e is now the event in all browsers
-                                       var targ;
-                                       if (e.target) { targ = e.target; }
-                                       else if (e.srcElement) { targ = e.srcElement; }
-                                       if (targ.nodeType == 3) { // defeat Safari bug
-                                               targ = targ.parentNode;
-                                       }
-                                       // targ is now the target element
-
-                                       // We don't want to deprive the noble reader of a context menu
-                                       // for the section edit link, do we?  (Might want to extend this
-                                       // to all <a>'s?)
-                                       if (targ.nodeName.toLowerCase() != 'a'
-                                       || targ.parentNode.className != 'editsection') {
-                                               document.location = editHref;
-                                               return false;
-                                       }
-                                       return true;
-                               };
-                       }
-               }
-       }
-}
-
 var checkboxes;
 var lastCheckbox;