https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113125

Revision: 113125
Author:   jdlrobson
Date:     2012-03-06 10:46:34 +0000 (Tue, 06 Mar 2012)
Log Message:
-----------
fix removal of legacy buttons for browsers without jquery

follow up to r113028
the minimal library only works with single elements and has
not been written like jQuery to accept several items. Several browsers
don't have jQuery available and thus are breaking

have rewritten remove to work on a single element, looping now
happens further up page

cloned NodeList into normal array since it is going to be iterated
through and change through manipulations

Modified Paths:
--------------
    trunk/extensions/MobileFrontend/javascripts/application.js
    trunk/extensions/MobileFrontend/javascripts/beta_application.js

Modified: trunk/extensions/MobileFrontend/javascripts/application.js
===================================================================
--- trunk/extensions/MobileFrontend/javascripts/application.js  2012-03-06 
10:20:07 UTC (rev 113124)
+++ trunk/extensions/MobileFrontend/javascripts/application.js  2012-03-06 
10:46:34 UTC (rev 113125)
@@ -4,13 +4,16 @@
        var utilities;
 
        function init() {
-               var i, results, languageSelection, a, heading,
+               var i, results, languageSelection, a, heading, btns,
                        sectionHeadings = utilities( '.section_heading' );
                utilities( document.body ).addClass( 'jsEnabled' );
 
                // TODO: remove in future - currently enables toggling in 
Wikipedia Mobile App v < 1.3
                window.wm_toggle_section = wm_toggle_section;
-               utilities( '.section_heading button' ).remove();
+               var btns = utilities( '.section_heading button' );
+               for( i = 0; i < btns.length; i++ ) {
+                       utilities( btns[i] ).remove();
+               }
 
                function openSectionHandler() {
                        var sectionNumber = this.id ? this.id.split( '_' )[1] : 
-1;
@@ -108,7 +111,7 @@
        utilities = typeof jQuery  !== 'undefined' ? jQuery : function( el ) {
                if( typeof(el) === 'string' ) {
                        if( document.querySelectorAll ) {
-                               return document.querySelectorAll( el );
+                               return [].slice.call( 
document.querySelectorAll( el ) );
                        }
                }
                function addClass( name ) {
@@ -134,13 +137,8 @@
                        el.addEventListener( type, handler, false );
                }
 
-               // TODO: support single elements
-               function remove(els) {
-                       var i, el;
-                       for( i = 0; i < els.length; i++ ) {
-                               el = els[i];
-                               el.parentNode.removeChild(el);
-                       }
+               function remove() {
+                       el.parentNode.removeChild(el);
                }
 
                return {

Modified: trunk/extensions/MobileFrontend/javascripts/beta_application.js
===================================================================
--- trunk/extensions/MobileFrontend/javascripts/beta_application.js     
2012-03-06 10:20:07 UTC (rev 113124)
+++ trunk/extensions/MobileFrontend/javascripts/beta_application.js     
2012-03-06 10:46:34 UTC (rev 113125)
@@ -8,13 +8,16 @@
        var utilities;
 
        function init() {
-               var i, search, clearSearch, results, languageSelection, a, 
heading,
+               var i, search, clearSearch, results, languageSelection, a, 
heading, btns,
                        sectionHeadings = utilities( '.section_heading' );
                utilities( document.body ).addClass( 'jsEnabled' );
 
                // TODO: remove in future - currently enables toggling in 
Wikipedia Mobile App v < 1.3
                window.wm_toggle_section = wm_toggle_section;
-               utilities( '.section_heading button' ).remove();
+               var btns = utilities( '.section_heading button' );
+               for( i = 0; i < btns.length; i++ ) {
+                       utilities( btns[i] ).remove();
+               }
 
                function openSectionHandler() {
                        var sectionNumber = this.id ? this.id.split( '_' )[1] : 
-1;
@@ -112,7 +115,7 @@
        utilities = typeof jQuery !== 'undefined' ? jQuery : function( el ) {
                if( typeof(el) === 'string' ) {
                        if( document.querySelectorAll ) {
-                               return document.querySelectorAll( el );
+                               return [].slice.call( 
document.querySelectorAll( el ) );
                        }
                }
 
@@ -139,13 +142,8 @@
                        el.addEventListener( type, handler, false );
                }
 
-               // TODO: support single elements
-               function remove(els) {
-                       var i, el;
-                       for( i = 0; i < els.length; i++ ) {
-                               el = els[i];
-                               el.parentNode.removeChild(el);
-                       }
+               function remove() {
+                       el.parentNode.removeChild(el);
                }
 
                return {


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to