Difference between revisions of "MediaWiki:Gadget-calculator-core.js"
From WikiAnesthesia
Chris Rishel (talk | contribs) |
Chris Rishel (talk | contribs) |
||
Line 1: | Line 1: | ||
( function(){ | ( function() { | ||
mw.calculators = { | mw.calculators = { | ||
variables: {}, | variables: {}, | ||
Line 5: | Line 5: | ||
for( var varName in variables ) { | for( var varName in variables ) { | ||
if( mw.calculators.variables.hasOwnProperty( varName ) ) { | if( mw.calculators.variables.hasOwnProperty( varName ) ) { | ||
console.warn( 'Calculation variable' + varName + ' already defined.' ); | console.warn( 'Calculation variable "' + varName + '" already defined.' ); | ||
continue; | continue; | ||
} | } | ||
Line 69: | Line 69: | ||
init: function() { | init: function() { | ||
mw.calculators.createUnits(); | mw.calculators.createUnits(); | ||
}, | |||
setValue: function( varName, value ) { | |||
// TODO validation | |||
if( !mw.calculators.variables.hasOwnProperty( varName ) ) { | |||
return false; | |||
} | |||
if( mw.calculators.variables[ varName ].hasOwnProperty( 'type' ) && | |||
mw.calculators.variables[ varName ].type === 'number' && | |||
typeof value !== 'object' | |||
) { | |||
value = math.unit( value ); | |||
} | |||
mw.calculators.variables[ varName ].value = value; | |||
return true; | |||
} | } | ||
}; | }; | ||
mw.calculators.init(); | mw.calculators.init(); | ||
}() ); | }() ); |
Revision as of 09:16, 16 July 2021
( function() { mw.calculators = { variables: {}, addVariables: function( variables ) { for( var varName in variables ) { if( mw.calculators.variables.hasOwnProperty( varName ) ) { console.warn( 'Calculation variable "' + varName + '" already defined.' ); continue; } var varData = variables[ varName ]; mw.calculators.variables[ varName ] = varData; } }, createUnits: function() { // Create aliases for abbreviations of existing units math.createUnit( 'dy', { definition: '1 day' } ); math.createUnit( 'mo', { definition: '1 month' } ); math.createUnit( 'yr', { definition: '1 year' } ); // Body weight needs to be treated as a different fundamental unit type compared to mass for stoichiometry // Gram-weight, which uses short SI prefixes (e.g. 1 kgwt = 1000 gwt) math.createUnit( 'gwt', { prefixes: 'short' } ); // Pound-weight, which uses no prefixes math.createUnit( 'lbwt', { definition: '453.59237 gwt' } ); math.createUnit( 'puff' ); math.createUnit( 'unit', { aliases: [ 'units' ] } ); math.createUnit( 'vial', { aliases: [ 'vials' ] } ); }, getCookieKey: function( varName ) { return 'calculators-var-' + varName; }, getVariable: function( varName ) { if( mw.calculators.variables.hasOwnProperty( varName ) ) { return mw.calculators.variables[ varName ]; } else { return null; } }, getValue: function( varName ) { if( mw.calculators.variables.hasOwnProperty( varName ) ) { return mw.calculators.variables[ varName ].value; } else { return null; } }, init: function() { mw.calculators.createUnits(); }, setValue: function( varName, value ) { // TODO validation if( !mw.calculators.variables.hasOwnProperty( varName ) ) { return false; } if( mw.calculators.variables[ varName ].hasOwnProperty( 'type' ) && mw.calculators.variables[ varName ].type === 'number' && typeof value !== 'object' ) { value = math.unit( value ); } mw.calculators.variables[ varName ].value = value; return true; } }; mw.calculators.init(); }() );