MediaWiki:Gadget-HexConverter.js: Difference between revisions
From OpenGK
No edit summary |
No edit summary |
||
Line 43: | Line 43: | ||
var dynamicField = $('<div class="hex-converter-live"></div>'); | var dynamicField = $('<div class="hex-converter-live"></div>'); | ||
dynamicField.append($('<pre>' + | dynamicField.append($('<pre>' + initialHexValue + '</pre>')); | ||
dynamicField.append($('<pre>' + | dynamicField.append($('<pre>' + initialHexValue.toString(16) + '</pre>')); | ||
return dynamicField; | return dynamicField; |
Revision as of 02:39, 28 December 2024
/* _____________________________________________________________________________
* | |
* | === WARNING: GLOBAL GADGET FILE === |
* | Changes to this page affect many users. |
* | Please discuss changes on the talk page or on [[WT:Gadget]] before editing. |
* |_____________________________________________________________________________|
*
* Imported from version XXXX as of DATE from [[SCRIPT_SOURCE]]
* SHORT_DESCRIPTION, see [[SCRIPT_HOME_PAGE]]
*/
(function(){
console.log('js hex conv loaded');
var setup = function ( $content ) {
console.log('setup called');
var fields = Array.from( $content.find( '.hex-converter-field' ) );
console.log(fields);
new ConverterWidgets(fields, $content[0]);
}
var ConverterWidgets = function( elements, parent ) {
this.parent = parent;
this.elementsList = {};
var that = this;
if (elements.length > 1000) {
console.log( "Too many converter widgets on page" );
return;
}
for (var i in elements) {
var field = elements[i];
console.log(field.dataset);
let initialHexValue = getInitialHexValue(field.dataset.hexConverterHex);
if (!initialHexValue) {
console.log('Invalid hex value supplied: ' + field.dataset.hexConverterHex);
return;
}
$(field).replaceWith(function(){
var dynamicField = $('<div class="hex-converter-live"></div>');
dynamicField.append($('<pre>' + initialHexValue + '</pre>'));
dynamicField.append($('<pre>' + initialHexValue.toString(16) + '</pre>'));
return dynamicField;
});
}
}
var getInitialHexValue = function (input) {
if (input.startsWith('0x')){
input = input.substring(2);
}
input.replace(' ', '');
if (!Boolean(input.match(/[0-9a-f]+$/i))) {
return false;
}
return parseInt(Number('0x' + input), 10);
}
mw.hook( 'wikipage.content' ).add( setup );
})();