MediaWiki:Common.js
From ipswichmakerspace
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Clear the cache in Tools → Preferences
/* Any JavaScript here will be loaded for all users on every page load. */ if (mw.config.values.wgTitle == 'Wishlist' || mw.config.values.wgTitle == 'Current wishlist') { var $subtotals = $('tr td b').filter(function(i) { return $(this).text()=='£subtotal'; }); var running_total = 0; var stretch_total = 0; var later_total = 0; var prior = ''; var table = $subtotals.parents('table').first(); var summary = document.createElement('div'); $(summary).append('<h4>Summary:</h4>'); $subtotals.parents('table').addClass('magitable'); $subtotals.parents('tr').addClass('subtotal'); $subtotals.each(function(i, e) { //prior = $(e).parent().parent().prev().children('td:nth-child(3)').text().trim(); prior = $(e).parent().siblings('th').text().trim(); $costs = $('table.magitable td:contains('+prior+')').filter(function(i) { return $(this).text().trim()==prior; }).nextAll('td:nth-child(7)'); var costotal = 0, cost = 0; $costs.each(function(ci,ce) { cost = parseFloat($(ce).text().trim().replace('£','')); costotal += cost; }); if (prior.indexOf(' Stretch')!=-1) { stretch_total += costotal; } else if (prior.indexOf(' Later')!=-1) { later_total += costotal; } else { running_total += costotal; } $(e).text('£' + costotal.toFixed(2)); $(summary).append('<p><strong>' + prior + '</strong> : £' + costotal.toFixed(2)); }); $('td b:contains(£tree.fiddy)').text('£'+running_total.toFixed(2)); if (mw.config.values.wgTitle == 'Wishlist') { $(table).after('<p><strong>Main + Stretch Total</strong> : £'+(running_total+stretch_total).toFixed(2)).after(summary); $(table).after('<p><strong>Later Total</strong> : £'+later_total.toFixed(2)).after(summary); $(table).after('<p><strong>Stretch Total</strong> : £'+stretch_total.toFixed(2)).after(summary); $(table).after('<p><strong>Total</strong> : £'+running_total.toFixed(2)).after(summary); } else if (mw.config.values.wgTitle == 'Current wishlist') { $(table).after('<p><strong>Total</strong> : £'+running_total.toFixed(2)).after(summary); } var $all = $('b:contains($blocktotal)').each(function(i, e) { total = 0; string = $(e).parent('pre').html(); var regex = /£\d*\.\d{2}/gi, result, indices = []; while ( (result = regex.exec(string)) ) { indices.push(result.index); got = string.substring(result.index, result.index + 6); console.log(got); add = parseFloat(got.trim().replace('£','')); console.log(add); total = total + add; } $(e).text('£' + total.toFixed(2)); }); console.log($all); }