From 4702f3775d40ede77979fa6529c56046461e501c Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Mon, 18 Mar 2013 11:55:33 -0700 Subject: [PATCH] Calling collapseAllPaths creates elements for every Dom node --- src/packages/command-panel/lib/preview-list.coffee | 7 +++++-- .../command-panel/spec/preview-list-spec.coffee | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/packages/command-panel/lib/preview-list.coffee b/src/packages/command-panel/lib/preview-list.coffee index 1a3a62b13..6e35f3586 100644 --- a/src/packages/command-panel/lib/preview-list.coffee +++ b/src/packages/command-panel/lib/preview-list.coffee @@ -30,6 +30,7 @@ class PreviewList extends ScrollView @children().each (index, element) -> $(element).view().expand() collapseAllPaths: -> + @renderOperations(renderAll: true) @children().each (index, element) -> $(element).view().collapse() destroy: -> @@ -46,15 +47,17 @@ class PreviewList extends ScrollView @show() @renderOperations() + @find('.operation:first').addClass('selected') - renderOperations: -> + renderOperations: ({renderAll}={}) -> + renderAll ?= false startingScrollHeight = @prop('scrollHeight') for operation in @operations[@lastRenderedOperationIndex..] pathView = @pathViewForPath(operation.getPath()) pathView.addOperation(operation) @lastRenderedOperationIndex++ - break if @prop('scrollHeight') >= startingScrollHeight + @pixelOverdraw and @prop('scrollHeight') > @height() + @pixelOverdraw + break if not renderAll and @prop('scrollHeight') >= startingScrollHeight + @pixelOverdraw and @prop('scrollHeight') > @height() + @pixelOverdraw pathViewForPath: (path) -> pathView = @viewsForPath[path] diff --git a/src/packages/command-panel/spec/preview-list-spec.coffee b/src/packages/command-panel/spec/preview-list-spec.coffee index c4530678b..4fecb0f2d 100644 --- a/src/packages/command-panel/spec/preview-list-spec.coffee +++ b/src/packages/command-panel/spec/preview-list-spec.coffee @@ -32,3 +32,14 @@ describe "Preview List", -> previewList.trigger('scroll') # Not sure why scroll event isn't being triggered on it's own expect(previewList.prop('scrollHeight')).toBeGreaterThan previousScrollHeight expect(previewList.find("li").length).toBeGreaterThan previousOperationCount + + it "renders all operations if the preview items are collapsed", -> + waitsForPromise -> + commandPanelView.execute('X x/so/') + + runs -> + expect(previewList.prop('scrollHeight')).toBeGreaterThan previewList.height() + previousScrollHeight = previewList.prop('scrollHeight') + previousOperationCount = previewList.find("li").length + previewList.collapseAllPaths() + expect(previewList.find("li").length).toBeGreaterThan previousOperationCount