MediaWiki:Common.js: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 13: Line 13:
// operation types are strings like "_reset" or "" for the default toggle operation
// operation types are strings like "_reset" or "" for the default toggle operation
var togglers = [];   
var togglers = [];   
var togglerStates = [];   
var togglerStates = {};   
var allClasses = {}; // associative map of class names to page elements
var allClasses = {}; // associative map of class names to page elements


Line 64: Line 64:
function areAllTogglersOff(elem)
function areAllTogglersOff(elem)
{
{
     for (var i = 0; i < allClasses.length; i++)
     for (var i = 0; i < togglers.length; i++)
     {
     {
if (allClasses[toggles[i]].includes(elem) && togglerStates[i] === true)
if (allClasses[togglers[i][1]].includes(elem) && togglerStates[togglers[i][1]] === true)
{
{
return false;
return false;
Line 92: Line 92:
     // initialize/clear any old information
     // initialize/clear any old information
     togglers = [];   
     togglers = [];   
togglerStates = [];
togglerStates = {};
     allClasses = {};
     allClasses = {};
          
          
Line 149: Line 149:
for (var a=[], k=collection.length; k;) a[--k] = collection[k];
for (var a=[], k=collection.length; k;) a[--k] = collection[k];
if (! allClasses[toBeToggled])
if (!allClasses[toBeToggled])
allClasses[toBeToggled] = a;
allClasses[toBeToggled] = a;
                 togglers[togglerID].push(new Array(op, toBeToggled));
                 togglers[togglerID].push(new Array(op, toBeToggled));
togglerStates[togglerID] = togglerState;
if (!togglerStates[toBeToggled])
togglerStates[toBeToggled] = togglerState;
             }
             }
         }
         }