Difference between revisions of "MediaWiki:ExpansionSelector.js"

m
Added derived-class injection
m (Added fan expansion sorting)
m (Added derived-class injection)
Line 140: Line 140:
function doInitLanguageMap()
function doInitLanguageMap()
{
{
  var oDerivedClassesMap = {};
  DerivedClassesTable.forEach( function( oDerivedClass )
  {
    var strClassName = oDerivedClass.className;
    oDerivedClassesMap[ strClassName ] = oDerivedClass;
  } );
   var oHTMLDIV = $( "div#wica-translation-table > div" );
   var oHTMLDIV = $( "div#wica-translation-table > div" );


Line 203: Line 210:
           } );
           } );
            
            
          var strAppendClasses = $(this).data( 'selector-appendclasses' );
          if ( strAppendClasses )
          {
            try
            {
              var arrAppendClassesArray = JSON.parse( strAppendClasses.replaceAll( "'" , '"' ) );
              arrAppendClassesArray.forEach( function( strClassName )
              {
                var oDerivedClass = oDerivedClassesMap[ strClassName ];
                if ( oDerivedClass && ( oDerivedClass.expression[0] == OR ) )
                {
                  oDerivedClass.expression.push( strSelector );
                }
                else
                {
                  console.log( "Required derived class name: " + strClassName + " for fan-expansion: " + strSelector + " not found." );
                }
              } );
            }
            catch ( e )
            {
                console.log( "Bad Code In Expression: " + strAppendClasses, e );
            }
          }
         }
         }
       }
       }