From f4497b23e5114e17129c614627421b418d93e98a Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Mon, 28 Dec 2015 21:07:46 -0800 Subject: [PATCH] Keep track of tile state. Add support for canceling other tiles. --- static/babystats.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/static/babystats.js b/static/babystats.js index 4901752..07f6cae 100644 --- a/static/babystats.js +++ b/static/babystats.js @@ -102,6 +102,15 @@ BabyStats.prototype.onMessage_ = function(e) { }; +/** + * @param {string} type + * @private + */ +BabyStats.prototype.findTile_ = function(type) { + return this.tiles_.find(function(tile) { return tile.type == type; }); +}; + + /** * @param {boolean} isEvent * @param {Cosmopolite.typeMessage} message @@ -116,7 +125,17 @@ BabyStats.prototype.handleMessage_ = function(isEvent, message) { } break; default: - console.log('Unknown message type:', message); + var tile = this.findTile_(message.message.type); + if (tile) { + tile.lastSeen = message.created; + tile.canceled = false; + (tile.cancels || []).forEach(function(type) { + tile2 = this.findTile_(type); + tile2.canceled = true; + }.bind(this)); + } else { + console.log('Unknown message type:', message); + } break; } };