annotate service/wallscreen/gui.js @ 1229:02e4b84821d5

talk to store graph, second button for holding unlocked, etc Ignore-this: c2ae7d756e743c26e5e01d99772899bd darcs-hash:a0750d0bbc4dc7c0f65f63f3e7342b35a175141b
author drewp <drewp@bigasterisk.com>
date Thu, 04 Apr 2019 02:16:22 -0700
parents c6e6f717fabe
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
866
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
1 var reloadData;
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
2 $(function () {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
3
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
4 setTimeout(function () {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
5 window.resizeTo(702,480);
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
6 }, 10000);
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
7
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
8 var model = {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
9 requestedF: ko.observable(),
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
10 tasks: ko.observableArray([]),
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
11 events: ko.observableArray([]),
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
12 isToday: function (ev) {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
13 var today = moment().format("YYYY-MM-DD");
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
14 return ev.date == today;
918
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
15 },
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
16 mapPersonData: ko.observable(),
866
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
17 };
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
18 reloadData = function() {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
19 $.getJSON("content", function (data) {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
20 model.tasks(data.tasks);
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
21 model.events(data.events);
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
22 });
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
23 }
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
24 setInterval(reloadData, 30*60*1000);
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
25 reloadData();
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
26
918
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
27 reloadMap = function () {
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
28 $.getJSON("content/map", function (data) {
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
29 var personData = [];
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
30 data.pts.forEach(function (pt) {
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
31 // this is in another config but not yet in the graph
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
32 var initial = pt.who.split("#")[1].substr(0, 1).toUpperCase();
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
33 pt.initial = initial;
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
34 pt.topFrac = initial == 'K' ? 0 : .5;
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
35 personData.push(pt);
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
36 });
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
37 model.mapPersonData(personData);
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
38 });
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
39 };
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
40 setInterval(reloadMap, 2*60*1000);
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
41 reloadMap();
c6e6f717fabe wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents: 873
diff changeset
42
866
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
43 function onMessage(d) {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
44 if (d.tempF) {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
45 model.requestedF(d.tempF);
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
46 }
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
47 }
873
d74460cc73da wallscreen hostname and size
drewp <drewp@bigasterisk.com>
parents: 866
diff changeset
48 reconnectingWebSocket("ws://bang.bigasterisk.com:9102/live", onMessage);
866
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
49
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
50 ko.applyBindings(model);
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
51
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
52 if (navigator.userAgent == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/18.0 Firefox/18.0") {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
53 $(".rot").removeClass("rot");
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
54 }
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
55
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
56 function updateClock() {
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
57 var now = moment();
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
58 var s = (new Date()).toLocaleTimeString();
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
59 $("#clock").html(
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
60 "<div>"+now.format("dddd")+"</div>"+
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
61 "<div>"+now.format("MMM Do")+"</div>"+
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
62 "<div>"+now.format("HH:mm")+"</div>"
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
63 )
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
64 }
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
65 setInterval(updateClock, 20000)
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
66 updateClock();
a99b4d5afb83 use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff changeset
67 });