-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
118 lines (97 loc) · 2.87 KB
/
main.js
File metadata and controls
118 lines (97 loc) · 2.87 KB
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
let kegs = document.querySelectorAll('.js-kegs');
let kegNames = document.querySelectorAll('.js-nameChnage');
let tempReading = document.querySelector('.js-temp');
let pages = document.querySelectorAll('.js-pages');
const wsUri = "ws://echo.websocket.org/";
const output = document.getElementById("output");
const btnsPour = document.querySelectorAll('.js-pour');
const btnsKegs = document.querySelectorAll('.js-newKeg');
const kegSize = 5; //in gallons
const oZinGallon = 128;
const ozInPint = 16;
const fullKegOz = kegSize * oZinGallon;
let kegFillLevel = [fullKegOz, fullKegOz];
let winWidth = window.innerWidth;
let winHeight = window.innerHeight;
function init() {
for (var i = 0; i < pages.length; i++) {
pages[i].style.height = winHeight + 'px';
}
//setInterval(getFakeData, 500);
//testWebSocket();
}
function testWebSocket() {
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) {
onOpen(evt)
};
websocket.onclose = function(evt) {
onClose(evt)
};
websocket.onmessage = function(evt) {
onMessage(evt)
};
websocket.onerror = function(evt) {
onError(evt)
};
}
function onOpen(evt) {
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt) {
writeToScreen("DISCONNECTED");
}
function onMessage(evt) {
writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data + '</span>');
websocket.close();
}
function onError(evt) {
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
}
function doSend(message) {
writeToScreen("SENT: " + message);
websocket.send(message);
}
function writeToScreen(message) {
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);
}
function precentOfMax(amount, maxAmount) {
return (amount / maxAmount) * 100;
}
function pourMeAColdOne(e) {
e.preventDefault();
const target = e.target;
let kegNum;
let newPercent;
if(target.classList.contains('one')) {
kegNum = 0;
} else {
kegNum = 1;
}
kegFillLevel[kegNum] = kegFillLevel[kegNum] - ozInPint;
newPercent = precentOfMax(kegFillLevel[kegNum], fullKegOz);
kegs[kegNum].querySelector('.progress').style.transform = 'translateY(-' + newPercent + '%)';
kegs[kegNum].querySelector('.keg').textContent = newPercent.toPrecision(2) + '%';
}
function newKeg(e) {
e.preventDefault();
const target = e.target;
if(target.classList.contains('one')) {
kegNum = 0;
} else {
kegNum = 1;
}
kegFillLevel[kegNum] = fullKegOz;
newPercent = precentOfMax(kegFillLevel[kegNum], fullKegOz);
kegs[kegNum].querySelector('.progress').style.transform = 'translateY(-' + newPercent + '%)';
kegs[kegNum].querySelector('.keg').textContent = newPercent + '%';
}
init();
btnsKegs[0].addEventListener('click', newKeg);
btnsKegs[1].addEventListener('click', newKeg);
btnsPour[0].addEventListener('click', pourMeAColdOne);
btnsPour[1].addEventListener('click', pourMeAColdOne);