Mercurial > code > home > repos > homeauto
annotate service/wallscreen/gui.js @ 918:c6e6f717fabe
wallscreen show map of people and their distances from home
Ignore-this: f7ff288f146881a55529d9a11585aeb4
darcs-hash:20130910073652-312f9-213c4a5fe56d3b5d9b46ddc40a4e3a2bd3d16963
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Tue, 10 Sep 2013 00:36:52 -0700 |
parents | d74460cc73da |
children |
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 | 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 }); |