president/public/js/manager/leaderboardprinter.js

266 lines
7.5 KiB
JavaScript
Executable File

var headerHeight = 79;
function headerPrinter(ctx,appts,title) {
ctx.fillStyle = 'yellow';
ctx.font = "400 24px arial";
var canvas = document.getElementById(title.toLowerCase());
$('#' + title.toLowerCase()).show();
ctx.fillStyle = 'black';
var sorts = localStorage.getItem('sorts');
var scope = localStorage.getItem('scope');
var formatted_time = fixedTimeString(numeral(appts['__specs']['timestamp']).value());
if (formatted_time.match('NaN')) {
// formatted_time = appts['__specs']['formatted_timestamp'];
}
ctx.fillText(formatted_time + ' ' + appts['__specs']['birthday'], 5 , 65 );
ctx.font = "400 28px Arial";
ctx.save('init');
if (appts['__stash']) {
/*
ctx.save('stash');
ctx.fillStyle = 'black';
ctx.fillRect(-10, canvas.height * .98, canvas.width, canvas.height * .98);
ctx.fillStyle = 'black';
var vertical = 105;
ctx.fillText('d: ' + numeral(appts['__stash']['day_total_' + sorts]).format('0,0.00'), 5 , vertical );
ctx.fillText('w: ' + numeral(appts['__stash']['week_total_' + sorts]).format('0,0.00'), 5 + 160 , vertical );
ctx.fillText('m: ' + numeral(appts['__stash']['month_total_' + sorts]).format('0,0.00'), 5 + 310 , vertical );
ctx.fillText('y: ' + numeral(appts['__stash']['year_total_' + sorts]).format('0,0.00'), 5 + 460 , vertical );
ctx.restore('stash')
*/
}
ctx.beginPath();
ctx.strokeStyle = 'yellow';
reservedSpots['header'] = headerHeight - 4;
ctx.lineWidth = 10;
ctx.moveTo(0, headerHeight);
reservedSpots['header']['y'] = headerHeight;
ctx.lineTo(canvas.width, reservedSpots['header']);
ctx.fill();
ctx.stroke();
ctx.fillText(scope, 5, 30);
ctx.fill();
}
var appPosition;
function leaderboardPrinter(appts) {
appPosition = [];
var lineHeight = 26;
var scope = localStorage.getItem('scope');
var sorts = localStorage.getItem('sorts');
var filter = scope + '_' + sorts;
$('#leaderboard').show();
var canvas = document.getElementById('leaderboard');
canvas.width = $(window).width();
var translateHeight = 0;
var temp_height = (canvas.height * .13);
$.each(appts,function(i,v) {
if (!v.list) { return true; }
temp_height = (temp_height + (numeral(lineHeight)).value());
});
if (temp_height > $(window).height()) {
$('#leaderboard').height(temp_height);
canvas.height = temp_height;
}
else {
canvas.height = $(window).height();
$('#leaderboard').height(canvas.height);
}
ctx = canvas.getContext('2d');
var outer = canvas.height;
headerPrinter(ctx,appts,'Leaderboard');
ctx.save('leaderboard');
var lineWidth = 2500;
var warrantyHeight = 55;
var startingHeight = 100 + clothesLineHeight;
ctx.translate(7, startingHeight);
var appt_storage = [];
$.each(appts, function(appt_n,appt) {
if (appts[appt_n][filter]) {
var appt_check = $.grep(appt_storage, function(n,i) { return (n.formatted_name == appt.formatted_name) })
if (appt_check.length == 0 ) {
appt.setting.colour = appts[appt_n].setting.colour;
appt_storage.push(appt);
}
}
});
var appt_store = appt_storage.sort((a, b) => b[filter] - a[filter] );
var rightNow = appts.timestamp;
var presently = Date.now();
var nowWatch;
var dateWatch;
ctx.font = "420 " + lineHeight + "px Arial";
for (i = 0; i <= appt_store.length; i++) {
if (appt_store[i] == undefined) { continue; }
if (appt_store[i]['timestamp'] < presently && nowWatch != 'completed') {
// ctx.fillStyle = 'black';
ctx.beginPath();
ctx.fillStyle = appt_store[i].setting.colour || 'black';
ctx.strokeStyle = 'black';
ctx.globalAlpha = 1;
ctx.arc(canvas.width - 17, 0, 33, (Math.PI * 2),.5, true);
ctx.fill();
// ctx.fillText(new_arr[i].name,0,0);
ctx.arc(canvas.width - 17, 0, 31, (Math.PI * 2),.5, true);
ctx.stroke();
nowWatch = 'completed';
}
if (appt_store[i] != undefined) {
var point = appt_store[i][filter];
ctx.fillStyle = appt_store[i].setting.colour || 'black';
ctx.save('u');
if (appt_store[i].setting.status == 'record') {
ctx.globalAlpha = 1;
ctx.fillRect(-10, 0, canvas.width, lineHeight * 1.1);
ctx.fillStyle = 'black';
}
else if (appt_store[i].setting.status == 'start') {
ctx.globalAlpha = 1;
ctx.fillRect(-10, 0, canvas.width, lineHeight * 1.1);
ctx.fillStyle = 'black';
}
else if (appt_store[i].setting.status == 'pause') {
ctx.globalAlpha = 1;
ctx.fillRect(30, 0, $(window).width() - 330, lineHeight * 1.1);
ctx.fillStyle = 'black';
}
else {
ctx.globalAlpha = 0.03
ctx.fillRect(-10, 0, canvas.width, lineHeight * 1.1);
}
ctx.globalAlpha = 1;
ctx.translate(0, lineHeight);
ctx.save('y');
ctx.translate(-2,0);
ctx.fillText(appt_store[i].shorthand_name, 0, 0);
ctx.translate(85,0);
ctx.fillText(appt_store[i]['just_time'], 0, 0);
ctx.translate(120,0);
ctx.fillText(appt_store[i][scope + '_occurrences'], 0, 0);
appPosition.push([0, (lineHeight * i) + startingHeight, lineWidth, ((lineHeight * i) + (lineHeight)) + startingHeight, appt_store[i]]);
ctx.translate(40,0);
ctx.fillText(appt_store[i]['formatted_since'], 0, 0);
ctx.translate(140,0);
ctx.fillText(appt_store[i][scope + '_formatted_duration'], 0, 0);
// ctx.fillText(appt_store[i][scope + '_duration_percent'], 0,0);
point = appt_store[i][scope + '_timestamp'];
//ctx.fillText(point, 0, 0);
if (appt_store[i][scope + '_amount']) {
ctx.fillText('$' + appt_store[i][scope + '_amount'], 110, 0);
ctx.translate(120,0);
if (appt_store[i][scope + '_tax']) {
ctx.fillText('$' + appt_store[i][scope + '_tax'], 110, 0);
}
ctx.translate(120,0);
ctx.fillText('$' + appt_store[i][scope + '_total'], 110, 0);
ctx.translate(120,0);
ctx.fillText((numeral(appt_store[i][scope + '_percent']).format(".2f") * 100) + '%', 110, 0);
}
translateHeight = (lineHeight * i) + startingHeight + lineHeight;
ctx.restore('y');
}
}
console.log(translateHeight);
ctx.translate(0,( -1 * translateHeight));
ctx.closePath();
}
$(document).on('click', '.background', function (e) {
var scroll = $(document).scrollTop();
var x = e.clientX;
var y = (e.clientY + scroll);
var printer = localStorage.getItem('layout');
var app_clicked = 0;
ctx.save('click');
ctx.moveTo(0,0);
$.each(appPosition, function(i,o) {
if (o[0] < x && o[2] > x &&
o[1] < y && o[3] > y) {
app_clicked = 1;
var app = JSON.stringify(o[4]);
var timestamp = Date.now();
var canvas = document.getElementById(printer);
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'black';
ctx.strokeStyle = 'black';
ctx.globalAlpha = 1;
// at the point
var count = 0;
var move = setInterval(function(resp) {
ctx.arc(x, y, 0, count, (Math.PI*2), true);
ctx.stroke();
// ctx.fill();
if (count > 45) {
ctx.restore('click');
clearInterval(move);
}
count++;
},13);
var sapp = JSON.stringify({ 'name': o[4]['name'] });
appointmentGrabber(o[4]['name'],timestamp);
return false;
}
});
if (app_clicked == 0) {
var ph = $('#pseudonym_home').offset();
pseudonymHomeShower(ph.left + 3, ph.top + 3);
}
$('.search_results').hide();
});
$(document).on('dblclick', '.background', function() {
$('#now_toggle').trigger('click');
});
$(document).on('mousemove', '.background', function(e) {
var scroll = $(document).scrollTop();
var x = e.clientX;
var y = (e.clientY + scroll);
var hovering = 0;
$.each(appPosition, function(i,o) {
if (o[0] < x && o[2] > x &&
o[1] < y && o[3] > y) {
hovering = 1;
}
});
if (hovering == 1) {
$('.background').css({'cursor': 'pointer'});
}
else {
$('.background').css({'cursor': 'auto'});
}
});