297 lines
8.6 KiB
JavaScript
Executable File
297 lines
8.6 KiB
JavaScript
Executable File
var ap;
|
|
|
|
function appointmentEventMaker(appts,sort) {
|
|
var appointment_events = { day: [], hour: [], week: [], month: [], year: [], decade: [], century: [], millenium: [], age: [] };
|
|
$('#clockface').show();
|
|
$.each(appts, function(i,v) {
|
|
$.each(['list','transactions'],function(n,val) {
|
|
var size = val.length;
|
|
$.each(v[val],function(numero,value) {
|
|
if (value.age_percent) {
|
|
var minute = numeral(60 * (value.age_percent)).format('0');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.age.push({
|
|
'minute': minute,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
size: size,
|
|
colour: v.setting.colour,
|
|
name: v.formatted_name
|
|
});
|
|
}
|
|
if (value.millenium_percent) {
|
|
var minute = numeral(60 * (value.millenium_percent)).format('0');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.decade.push({
|
|
'minute': minute,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
size: size,
|
|
colour: v.setting.colour,
|
|
name: v.formatted_name
|
|
});
|
|
}
|
|
if (value.decade_percent) {
|
|
var minute = numeral(60 * (value.decade_percent)).format('0');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.decade.push({
|
|
'minute': minute,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
size: size,
|
|
colour: v.setting.colour,
|
|
name: v.formatted_name
|
|
});
|
|
}
|
|
if (value.year_percent) {
|
|
var minute = numeral(60 * (value.year_percent)).format('0');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.month.push({
|
|
'minute': minute,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
size: size,
|
|
colour: v.setting.colour,
|
|
name: v.formatted_name
|
|
});
|
|
}
|
|
if (value.month_percent) {
|
|
var minute = numeral(60 * (value.month_percent)).format('0');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.month.push({
|
|
'minute': minute,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
size: size,
|
|
colour: v.setting.colour,
|
|
name: v.formatted_name
|
|
});
|
|
}
|
|
if (value.week_percent) {
|
|
var minute = numeral(60 * (value.week_percent)).format('0');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.week.push({
|
|
'minute': minute,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
size: size,
|
|
colour: v.setting.colour,
|
|
name: v.formatted_name
|
|
});
|
|
}
|
|
if (value.day_percent) {
|
|
var minute = numeral(60 * (value.day_percent)).format('0');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.day.push({
|
|
'minute': minute,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
size: size,
|
|
colour: v.setting.colour,
|
|
name: v.formatted_name
|
|
});
|
|
}
|
|
if (value.hour_percent) {
|
|
var minute = moment((value.timestamp)).format('m');
|
|
var hour = moment((value.timestamp)).format('h');
|
|
appointment_events.hour.push({
|
|
'minute': minute,
|
|
'hour': hour,
|
|
'timestamp': value.timestamp,
|
|
'value': value,
|
|
'size': size,
|
|
colour: v.setting.colour,
|
|
formatted_name: v.formatted_name
|
|
});
|
|
}
|
|
|
|
});
|
|
});
|
|
});
|
|
|
|
// appointment_events.age.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
// appointment_events.millenium.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
// appointment_events.century.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
// appointment_events.decade.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
appointment_events.year.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
appointment_events.month.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
appointment_events.week.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
appointment_events.day.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
appointment_events.hour.sort((a, b) => (a[sort] > b[sort]) ? 1 : -1);
|
|
return appointment_events;
|
|
}
|
|
|
|
var lastY;
|
|
$(document).ready(function() {
|
|
localStorage.setItem('scrollPositioner', .4);
|
|
document.getElementById('clockface').addEventListener('wheel',function(event){
|
|
if (event.wheelDelta > 0) {
|
|
localStorage.setItem('scrollPositioner', localStorage.getItem('scrollPositioner') * 1.05);
|
|
}
|
|
else {
|
|
localStorage.setItem('scrollPositioner', localStorage.getItem('scrollPositioner') * .95);
|
|
}
|
|
|
|
calculator();
|
|
return false;
|
|
}, false);
|
|
document.getElementById('clockface').addEventListener('wheel',function(event){
|
|
if (event.touches[0].clientY > lastY) {
|
|
localStorage.setItem('scrollPositioner', localStorage.getItem('scrollPositioner') * 1.05);
|
|
}
|
|
else {
|
|
localStorage.setItem('scrollPositioner', localStorage.getItem('scrollPositioner') * .95);
|
|
}
|
|
lastY = event.touches[0].clientY > lastY ;
|
|
calculator();
|
|
return false;
|
|
}, false);
|
|
});
|
|
var appPosition;
|
|
function clockfacePrinter(appts) {
|
|
appPosition = [];
|
|
var scope = localStorage.getItem('scope');
|
|
var canvas = document.getElementById('clockface');
|
|
ctx = canvas.getContext('2d');
|
|
ctx.strokeStyle = 'black';
|
|
canvas.width = $(window).width() ;
|
|
canvas.height = $(window).height();
|
|
|
|
var outer = canvas.height * ( localStorage.getItem('scrollPositioner'));
|
|
var appointment_events = appointmentEventMaker(appts,'size');
|
|
var d = Date.now();
|
|
var day = moment(d).format('d');
|
|
var hour = moment(d).format('h');
|
|
var hourWatch = hour;
|
|
var min = moment(d).format('m');
|
|
var second = moment(d).format('s');
|
|
var radius;
|
|
var height = canvas.height / 2;
|
|
var width = canvas.width / 2;
|
|
ctx.font = "300 42px Arial";
|
|
ctx.fillStyle = '#566778';
|
|
|
|
ctx.font = "400 20px Arial";
|
|
$.each([.999,.6,.5,.4,.3,.2],function(i,v) {
|
|
radius = (outer * v);
|
|
ctx.beginPath();
|
|
ctx.lineWidth = 8;
|
|
ctx.stroke();
|
|
ctx.closePath();
|
|
var num;
|
|
var ang;
|
|
ctx.save('b');
|
|
ctx.translate(width, height);
|
|
|
|
for(num = 1; num <= 60; num++) {
|
|
ctx.beginPath();
|
|
ang = num * Math.PI / 30;
|
|
ctx.rotate(ang);
|
|
ctx.translate(0, -radius - 15);
|
|
ctx.rotate(-ang);
|
|
var whole = num / 5;
|
|
ctx.save('c');
|
|
var minute_mover = Math.trunc((hour * 5) + ((min / 60) * 5));
|
|
var new_arr = [];
|
|
var ball_size = 60;
|
|
if (i == 9) {
|
|
new_arr = $.grep(appointment_events.age, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 8) {
|
|
new_arr = $.grep(appointment_events.millenium, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 7) {
|
|
new_arr = $.grep(appointment_events.century, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 6) {
|
|
new_arr = $.grep(appointment_events.decade, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 4) {
|
|
new_arr = $.grep(appointment_events.year, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 3) {
|
|
new_arr = $.grep(appointment_events.month, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 2) {
|
|
new_arr = $.grep(appointment_events.week, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 1) {
|
|
new_arr = $.grep(appointment_events.day, function(n, i){
|
|
ball_size = 60;
|
|
return n.minute == num;
|
|
});
|
|
}
|
|
if (i == 0) {
|
|
new_arr = $.grep(appointment_events.hour, function(n, i){
|
|
return n.minute == num;
|
|
});
|
|
ball_size = 130;
|
|
}
|
|
if (new_arr.length > 0) {
|
|
ctx.save('z');
|
|
ctx.beginPath();
|
|
ctx.strokeStyle = 'black';
|
|
ctx.lineWidth = 2;
|
|
ctx.font = "700 22px Arial";
|
|
ctx.fill();
|
|
ctx.closePath();
|
|
ctx.beginPath();
|
|
$.each(new_arr,function(i,v) {
|
|
ctx.fillStyle = new_arr[i].colour || 'black';
|
|
ctx.globalAlpha = 1;
|
|
ctx.arc(0, 0, 30, (Math.PI * 2),.5, true);
|
|
ctx.fill();
|
|
|
|
|
|
// appPosition.push([position , placement_number * 25 - 16, position + ctx.measureText(l['formatted_name']).width, placement_number * 25 +10, v]);
|
|
ctx.arc(0, 0, 31, (Math.PI * 2),.5, true);
|
|
ctx.fillText(new_arr[i].value.formatted_name,35,-10);
|
|
ctx.stroke();
|
|
});
|
|
ctx.closePath();
|
|
ctx.restore('z');
|
|
}
|
|
if (hour == whole || (hour == 12 && whole == 0) ) {
|
|
if ( hour == 12 ) { hour = 0; }
|
|
hourWatch = hour;
|
|
}
|
|
ctx.restore('c');
|
|
if ((num % 5) == 0 && i == 0) {
|
|
ctx.font = "700 32px Arial";
|
|
ctx.fillStyle = '#566778';
|
|
ctx.fillText((num / 5), -(Math.PI * 2), 0);
|
|
ctx.arc(0, 0, 32, (Math.PI * 2),0, true);
|
|
}
|
|
ctx.rotate(ang);
|
|
ctx.translate(0, radius + 15);
|
|
ctx.rotate(-ang);
|
|
ctx.closePath();
|
|
console.log(i);
|
|
}
|
|
ctx.restore('b');
|
|
});
|
|
headerPrinter(ctx,appts,'Clockface');
|
|
ctx.closePath();
|
|
}
|