diff --git a/assets/scripts/app/templates/queues/list.hbs b/assets/scripts/app/templates/queues/list.hbs
index dd56242f..2fbbca0b 100644
--- a/assets/scripts/app/templates/queues/list.hbs
+++ b/assets/scripts/app/templates/queues/list.hbs
@@ -20,7 +20,7 @@
{{#if queue.isMore}}
-
+
{{queue.leftLength}} more jobs - show all
{{/if}}
diff --git a/assets/scripts/app/views/sidebar.coffee b/assets/scripts/app/views/sidebar.coffee
index 14b2d96c..4823c3bc 100644
--- a/assets/scripts/app/views/sidebar.coffee
+++ b/assets/scripts/app/views/sidebar.coffee
@@ -38,12 +38,9 @@
templateName: 'queues/list'
controller: Em.ArrayController.create()
- loadMoreJobs: (event) ->
+ showAll: (event) ->
queue = event.context
- # nasty hack to not have to implement showAll for
- # limitedArray
- # TODO: implement it properly later
- queue.incrementProperty('limit', 1000000)
+ queue.showAll()
didInsertElement: ->
queues = for queue in Travis.QUEUES
diff --git a/assets/scripts/lib/travis/limited_array.coffee b/assets/scripts/lib/travis/limited_array.coffee
index 1aa11412..2d9b6a52 100644
--- a/assets/scripts/lib/travis/limited_array.coffee
+++ b/assets/scripts/lib/travis/limited_array.coffee
@@ -6,9 +6,12 @@ Travis.LimitedArray = Em.ArrayProxy.extend
@_super.apply this, arguments
arrangedContent: (->
- if content = @get('content')
+ content = @get('content')
+ if @get('disable')
+ content
+ else if content
content.slice(0, @get('limit'))
- ).property('content', 'limit')
+ ).property('content', 'limit', 'disable')
totalLength: (->
@get('content.length')
@@ -27,9 +30,15 @@ Travis.LimitedArray = Em.ArrayProxy.extend
@get('leftLength') > 0
).property('leftLength')
+ showAll: ->
+ @set 'limit', 1000000000
+ @set 'disable', true
+
contentArrayDidChange: (array, index, removedCount, addedCount) ->
@_super.apply this, arguments
+ return if @get('disable')
+
limit = @get 'limit'
arrangedContent = @get('arrangedContent')
length = arrangedContent.get 'length'