From 66e93ed3abcc71b753b0c987c7219a90659d056a Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Tue, 6 May 2014 11:32:57 +0200 Subject: [PATCH] Limit flash messages to 2 (closes travis-ci/travis-ci#1859) --- assets/scripts/app/controllers/flash.coffee | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/assets/scripts/app/controllers/flash.coffee b/assets/scripts/app/controllers/flash.coffee index 1d2c839a..721b629f 100644 --- a/assets/scripts/app/controllers/flash.coffee +++ b/assets/scripts/app/controllers/flash.coffee @@ -4,10 +4,15 @@ Travis.FlashController = Ember.ArrayController.extend init: -> @_super.apply this, arguments - @set('flashes', Ember.A()) + @set('flashes', Travis.LimitedArray.create(limit: 2, content: [])) content: (-> - @get('unseenBroadcasts').concat(@get('flashes')).filter( (o) -> o ).uniq() + broadcasts = @get('unseenBroadcasts') + flashes = @get('flashes') + content = [] + content = content.concat(broadcasts.toArray()) if broadcasts + content = content.concat(flashes.toArray().reverse()) if flashes + content.uniq() ).property('unseenBroadcasts.length', 'flashes.length') unseenBroadcasts: (-> @@ -22,8 +27,8 @@ Travis.FlashController = Ember.ArrayController.extend for msg in msgs type = Ember.keys(msg)[0] msg = { type: type, message: msg[type] } - @get('flashes').pushObject(msg) - Ember.run.later(this, (-> @get('flashes').removeObject(msg)), 15000) + @get('flashes').unshiftObject(msg) + Ember.run.later(this, (-> @get('flashes.content').removeObject(msg)), 15000) close: (msg) -> if msg instanceof Travis.Broadcast