From bd199545c04ad69d156df7cfa0660978abe4a1ba Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 21 Oct 2015 20:22:20 -0600 Subject: [PATCH] In PaneContainer.prototype.saveAll, only save modified items --- spec/pane-container-spec.coffee | 29 ++++++++++++++++++++++++----- src/pane.coffee | 3 ++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/spec/pane-container-spec.coffee b/spec/pane-container-spec.coffee index b94815e45..2002bccd1 100644 --- a/spec/pane-container-spec.coffee +++ b/spec/pane-container-spec.coffee @@ -292,17 +292,36 @@ describe "PaneContainer", -> ] describe "::saveAll()", -> - it "saves all open pane items", -> + it "saves all modified pane items", -> container = new PaneContainer(params) pane1 = container.getRoot() pane2 = pane1.splitRight() - pane1.addItem(item1 = {getURI: (-> ''), save: -> @saved = true}) - pane1.addItem(item2 = {getURI: (-> ''), save: -> @saved = true}) - pane2.addItem(item3 = {getURI: (-> ''), save: -> @saved = true}) + item1 = { + saved: false + getURI: -> '' + isModified: -> true, + save: -> @saved = true + } + item2 = { + saved: false + getURI: -> '' + isModified: -> false, + save: -> @saved = true + } + item3 = { + saved: false + getURI: -> '' + isModified: -> true, + save: -> @saved = true + } + + pane1.addItem(item1) + pane1.addItem(item2) + pane1.addItem(item3) container.saveAll() expect(item1.saved).toBe true - expect(item2.saved).toBe true + expect(item2.saved).toBe false expect(item3.saved).toBe true diff --git a/src/pane.coffee b/src/pane.coffee index 5f0d8dc1b..a47f2c724 100644 --- a/src/pane.coffee +++ b/src/pane.coffee @@ -525,7 +525,8 @@ class Pane extends Model # Public: Save all items. saveItems: -> - @saveItem(item) for item in @getItems() + for item in @getItems() + @saveItem(item) if item.isModified?() return # Public: Return the first item that matches the given URI or undefined if