gergelypolonkai-web-jekyll/failmeter/js/failmeter.js

71 lines
2.0 KiB
JavaScript
Raw Normal View History

2015-08-18 08:16:50 +00:00
var max_points = 0;
var points = 0;
function append_point_values() {
$('li[data-points]').each(function() {
points = $(this).attr('data-points');
$(this).append(' [' + points + ' points of FAIL]');
});
}
function calc_max_points() {
$('ul:not(.choose-one) > li[data-points]').each(function() {
points = $(this).attr('data-points');
max_points += +points;
});
$('li:has(ul.choose-one)').each(function() {
var this_max = NaN;
$(this).children('ul.choose-one').children('li').each(function() {
points = +$(this).attr('data-points');
if (isNaN(this_max) || points > this_max) {
this_max = points;
}
});
max_points += this_max;
});
}
function update_points() {
var points = 0;
$('.active').each(function() {
points += +$(this).attr('data-points');
});
if (max_points == 0) {
percent = 0;
} else {
percent = points / max_points * 100;
}
$('#failmeter').attr('aria-valuenow', percent).css('width', percent + '%');
$('#points').html(points + '/' + max_points);
if (percent == 0) {
failtext = 'Perfect! All signs point to succes!';
type = 'success';
2015-08-18 08:16:50 +00:00
} else if (percent < 1.6) {
failtext = 'You are probably doing okay, but you could be better.';
type = 'success';
2015-08-18 08:16:50 +00:00
} else if (percent < 3.8) {
failtext = 'Babies cry when your code is downloaded.';
type = 'info';
2015-08-18 08:16:50 +00:00
} else if (percent < 5.7) {
failtext = 'Kittens die when your code is downloaded.';
type = 'warning';
2015-08-18 08:16:50 +00:00
} else if (percent < 8.2) {
failtext = 'HONK HONK. THE FAILBOAT HAS ARRIVED!';
type = 'danger';
2015-08-18 08:16:50 +00:00
} else {
failtext = 'So much fail, your code should have its own reality show.';
type = 'danger';
2015-08-18 08:16:50 +00:00
}
$('#failmeter').removeClass('progress-bar-success progress-bar-info progress-bar-warning progress-bar-danger');
$('#failmeter').addClass('progress-bar-' + type);
2015-08-18 08:16:50 +00:00
$('#failtext').html(failtext);
}