Difference between revisions of "MediaWiki:Common.js"

From ipswichmakerspace
Jump to: navigation, search
m
m
 
(9 intermediate revisions by the same user not shown)
Line 23: Line 23:
 
 
  
$costs = $('td:contains('+prior+')').filter(function(i) { return $(this).text().trim()==prior; }).nextAll('td:nth-child(7)');
+
$costs = $('table.magitable td:contains('+prior+')').filter(function(i) { return $(this).text().trim()==prior; }).nextAll('td:nth-child(7)');
 
var costotal = 0, cost = 0;
 
var costotal = 0, cost = 0;
 
$costs.each(function(ci,ce) {
 
$costs.each(function(ci,ce) {
Line 58: Line 58:
  
  
$('b:contains($blocktotal)').each(function(i, e) {
+
var $all = $('b:contains($blocktotal)').each(function(i, e) {
  
  
Line 64: Line 64:
 
string = $(e).parent('pre').html();
 
string = $(e).parent('pre').html();
  
var str = "I learned to play the Ukulele in Lebanon."
 
var regex = /le/gi, result, indices = [];
 
while ( (result = regex.exec(str)) ) {
 
    indices.push(result.index);
 
got = string.substring(result.index, result.index + 6);
 
console.log(got);
 
  
    total = total + parseFloat($(got).text().trim().replace('£',''));
+
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;
 
}
 
}
  
Line 81: Line 83:
  
  
 
+
console.log($all);
  
  

Latest revision as of 18:10, 16 July 2018

/* 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);












}