JavaScript clean-up (Code conventions, cross-browser fixes and JSHint validation)
authorKrinkle <krinkle@users.mediawiki.org>
Fri, 4 Mar 2011 00:15:03 +0000 (00:15 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Fri, 4 Mar 2011 00:15:03 +0000 (00:15 +0000)
; history.js
* Applied whitespace conventions + removed trailing whitespace
* Combining var statements

; mediawiki.action.history.js
* Calling in document.ready instead of directly (jQuery(fn) is short for jQuery(document).ready(fn))
** Originally it was a hookEvent('load'), during rewrite in r74397 it was dropped. Restoring now.
* Wrapping in jQuery-to-$
* Combining document.ready and wrapper into one (jQuery internally calls the ready-fn with jQuery as first argument) ($(function(){ $(function(){ /* domready */ })(jQuery); --> jQuery( function( $ ) { /* domready */ } );
* (http://jqbug.com/8229) Attributes must be quoted, just like CSS requires that.

; mediawiki.action.view.rightClickEdit.js
* Wrapping in jQuery-to-$

; IEFixes.js
* Moving function calls within the if statement since the passed arguments are undefined otherwise

resources/mediawiki.action/mediawiki.action.history.js
resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js
skins/common/IEFixes.js
skins/common/history.js

index 66f90b0..3f96347 100644 (file)
@@ -1,7 +1,8 @@
 /*
  * JavaScript for History action
  */
-
-// Replaces histrowinit
-$( '#pagehistory li input[name=diff], #pagehistory li input[name=oldid]' ).click( diffcheck );
-diffcheck();
\ No newline at end of file
+jQuery( function( $ ) {
+       // Replaces histrowinit
+       $( '#pagehistory li input[name="diff"], #pagehistory li input[name="oldid"]' ).click( diffcheck );
+       diffcheck();
+});
\ No newline at end of file
index 5a7c777..caf9a9f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * JavaScript to enable right click edit functionality
  */
-$( function() {
+jQuery( function( $ ) {
        // Select all h1-h6 elements that contain editsection links
        $( 'h1:has(.editsection a), ' +
                'h2:has(.editsection a), ' +
index ba4dc66..7f3b9c0 100644 (file)
@@ -69,9 +69,9 @@ window.relativeforfloats = function() {
        if ( bc ) {
                var tables = bc.getElementsByTagName( 'table' );
                var divs = bc.getElementsByTagName( 'div' );
+               setrelative( tables );
+               setrelative( divs );
        }
-       setrelative( tables );
-       setrelative( divs );
 };
 
 window.setrelative = function( nodes ) {
index 33845a7..ee14ac9 100644 (file)
@@ -1,8 +1,9 @@
-window.historyRadios = function(parent) {
-       var inputs = parent.getElementsByTagName('input');
-       var radios = [];
-       for (var i = 0; i < inputs.length; i++) {
-               if (inputs[i].name == "diff" || inputs[i].name == "oldid") {
+window.historyRadios = function( parent ) {
+       var     inputs = parent.getElementsByTagName( 'input' );
+       var     radios = [],
+               i = 0;
+       for ( i = 0; i < inputs.length; i++ ) {
+               if ( inputs[i].name == 'diff' || inputs[i].name == 'oldid' ) {
                        radios[radios.length] = inputs[i];
                }
        }
@@ -11,41 +12,42 @@ window.historyRadios = function(parent) {
 
 // check selection and tweak visibility/class onclick
 window.diffcheck = function() {
-       var dli = false; // the li where the diff radio is checked
-       var oli = false; // the li where the oldid radio is checked
-       var hf = document.getElementById('pagehistory');
-       if (!hf) {
+       var     dli = false, // the li where the diff radio is checked
+               oli = false, // the li where the oldid radio is checked
+               i = 0;
+       var hf = document.getElementById( 'pagehistory' );
+       if ( !hf ) {
                return true;
        }
-       var lis = hf.getElementsByTagName('li');
-       for (var i=0;i<lis.length;i++) {
-               var inputs = historyRadios(lis[i]);
-               if (inputs[1] && inputs[0]) {
-                       if (inputs[1].checked || inputs[0].checked) { // this row has a checked radio button
-                               if (inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value) {
+       var lis = hf.getElementsByTagName( 'li' );
+       for ( i = 0; i < lis.length; i++ ) {
+               var inputs = historyRadios( lis[i] );
+               if ( inputs[1] && inputs[0] ) {
+                       if ( inputs[1].checked || inputs[0].checked ) { // this row has a checked radio button
+                               if ( inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value ) {
                                        return false;
                                }
-                               if (oli) { // it's the second checked radio
-                                       if (inputs[1].checked) {
-                                               if ( (typeof oli.className) != 'undefined') {
+                               if ( oli ) { // it's the second checked radio
+                                       if ( inputs[1].checked ) {
+                                               if ( typeof oli.className != 'undefined' ) {
                                                        oli.classNameOriginal = oli.className.replace( 'selected', '' );
                                                } else {
                                                        oli.classNameOriginal = '';
                                                }
-                                               
-                                               oli.className = "selected "+oli.classNameOriginal;
+
+                                               oli.className = 'selected ' + oli.classNameOriginal;
                                                return false;
                                        }
-                               } else if (inputs[0].checked) {
+                               } else if ( inputs[0].checked ) {
                                        return false;
                                }
-                               if (inputs[0].checked) {
+                               if ( inputs[0].checked ) {
                                        dli = lis[i];
                                }
-                               if (!oli) {
+                               if ( !oli ) {
                                        inputs[0].style.visibility = 'hidden';
                                }
-                               if (dli) {
+                               if ( dli ) {
                                        inputs[1].style.visibility = 'hidden';
                                }
                                if ( (typeof lis[i].className) != 'undefined') {
@@ -53,16 +55,16 @@ window.diffcheck = function() {
                                } else {
                                        lis[i].classNameOriginal = '';
                                }
-                                               
-                               lis[i].className = "selected "+lis[i].classNameOriginal;
+
+                               lis[i].className = 'selected ' + lis[i].classNameOriginal;
                                oli = lis[i];
-                       }  else { // no radio is checked in this row
-                               if (!oli) {
+                       } else { // no radio is checked in this row
+                               if ( !oli ) {
                                        inputs[0].style.visibility = 'hidden';
                                } else {
                                        inputs[0].style.visibility = 'visible';
                                }
-                               if (dli) {
+                               if ( dli ) {
                                        inputs[1].style.visibility = 'hidden';
                                } else {
                                        inputs[1].style.visibility = 'visible';
@@ -74,4 +76,4 @@ window.diffcheck = function() {
                }
        }
        return true;
-};
+};
\ No newline at end of file