-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
130 lines (125 loc) · 3.94 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// on window load
window.onload = function () {
// get input value for januaryIncome
var { februaryIncome, marchIncome, aprilIncome, mayIncome, juneIncome } =
getIncome();
// get input value for januaryExpense
var {
januaryExpenses,
februaryExpenses,
marchExpenses,
aprilExpenses,
mayExpenses,
juneExpenses,
} = getExpenses();
// create chart js bar chart for id myChart
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, {
type: "bar",
data: {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [
{
label: "Income",
data: getIncome(),
backgroundColor: [
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
],
borderColor: [
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
"rgba(255, 99, 132, 0.2)",
],
borderWidth: 1,
},
{
label: "Expenses",
data: getExpenses(),
backgroundColor: [
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
],
borderColor: [
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
"rgb(54, 162, 235)",
],
borderWidth: 1,
},
],
},
});
// click handler for chartTab
document.getElementById("chartTab").addEventListener("click", function () {
// update chart
myChart.data.datasets[0].data = getIncome();
myChart.data.datasets[1].data = getExpenses();
myChart.update();
});
// handler to download chart as png
document.getElementById("download").addEventListener("click", function () {
var downloadChart = document.getElementById("myChart");
var image = downloadChart.toDataURL("image/png", 1.0);
var link = document.createElement("a");
link.download = "myChart.png";
link.href = image;
link.click();
});
};
function getExpenses() {
var januaryExpenses = document.getElementById("januaryExpenses").value;
// get input value for februaryExpense
var februaryExpenses = document.getElementById("februaryExpenses").value;
// get input value for marchExpense
var marchExpenses = document.getElementById("marchExpenses").value;
// get input value for aprilExpense
var aprilExpenses = document.getElementById("aprilExpenses").value;
// get input value for mayExpense
var mayExpenses = document.getElementById("mayExpenses").value;
// get input value for juneExpense
var juneExpenses = document.getElementById("juneExpenses").value;
return [
januaryExpenses,
februaryExpenses,
marchExpenses,
aprilExpenses,
mayExpenses,
juneExpenses,
];
}
function getIncome() {
var januaryIncome = document.getElementById("januaryIncome").value;
// get input value for februaryIncome
var februaryIncome = document.getElementById("februaryIncome").value;
// get input value for marchIncome
var marchIncome = document.getElementById("marchIncome").value;
// get input value for aprilIncome
var aprilIncome = document.getElementById("aprilIncome").value;
// get input value for mayIncome
var mayIncome = document.getElementById("mayIncome").value;
// get input value for juneIncome
var juneIncome = document.getElementById("juneIncome").value;
return [
januaryIncome,
februaryIncome,
marchIncome,
aprilIncome,
mayIncome,
juneIncome,
];
}