diff options
author | Bernhard Posselt <Raydiation@users.noreply.github.com> | 2013-12-19 04:32:34 -0800 |
---|---|---|
committer | Bernhard Posselt <Raydiation@users.noreply.github.com> | 2013-12-19 04:32:34 -0800 |
commit | 43f86e58d2976d4c56f1921b272380b66758ae67 (patch) | |
tree | 7ec302037c8f436635387ce145b0436bfb29dd32 /js | |
parent | 98d3328c5ea97b91faa184206799f4e7e7ccfd57 (diff) | |
parent | fd6137741f6331da70432e063a576a63f5588466 (diff) |
Merge pull request #411 from sub/issue242
Make feed title editable (FIX #242)
Diffstat (limited to 'js')
-rw-r--r-- | js/app/controllers/itemcontroller.coffee | 9 | ||||
-rw-r--r-- | js/app/services/businesslayer/feedbusinesslayer.coffee | 8 | ||||
-rw-r--r-- | js/app/services/persistence.coffee | 13 | ||||
-rw-r--r-- | js/public/app.js | 38 | ||||
-rw-r--r-- | js/tests/services/businesslayer/feedbusinesslayerSpec.coffee | 11 | ||||
-rw-r--r-- | js/tests/services/persistenceSpec.coffee | 12 |
6 files changed, 91 insertions, 0 deletions
diff --git a/js/app/controllers/itemcontroller.coffee b/js/app/controllers/itemcontroller.coffee index c9a97285f..cc9898397 100644 --- a/js/app/controllers/itemcontroller.coffee +++ b/js/app/controllers/itemcontroller.coffee @@ -37,6 +37,15 @@ Language, AutoPageLoading) -> @_$scope.itemBusinessLayer = @_itemBusinessLayer @_$scope.feedBusinessLayer = @_feedBusinessLayer + @_$scope.edit = (feedId) => + feed = @_feedModel.getById(feedId) + feed.editing = true + feed.originalValue = feed.title + + @_$scope.cancel = (feedId) => + feed = @_feedModel.getById(feedId) + feed.editing = false + feed.title = feed.originalValue @_$scope.isLoading = => return @_feedLoading.isLoading() diff --git a/js/app/services/businesslayer/feedbusinesslayer.coffee b/js/app/services/businesslayer/feedbusinesslayer.coffee index fd92209ab..03ff178dd 100644 --- a/js/app/services/businesslayer/feedbusinesslayer.coffee +++ b/js/app/services/businesslayer/feedbusinesslayer.coffee @@ -66,6 +66,14 @@ FeedModel, NewLoading, _ExistsError, Utils, $rootScope, NewestItem)-> @_persistence.deleteFeed(feedId) + renameFeed: (feedId, feedTitle) -> + feed = @_feedModel.getById(feedId) + feed.editing = false + + if angular.isDefined(feed) and feedTitle != "" + @_persistence.renameFeed(feedId, feedTitle) + + markRead: (feedId) -> feed = @_feedModel.getById(feedId) newestItemId = @_newestItem.getId() diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee index d51c7acb1..bfca4ccaa 100644 --- a/js/app/services/persistence.coffee +++ b/js/app/services/persistence.coffee @@ -243,6 +243,19 @@ $rootScope, $q) -> @_request.post 'news_feeds_move', params + renameFeed: (feedId, feedTitle) -> + ### + rename a feed + ### + params = + routeParams: + feedId: feedId + data: + feedTitle: feedTitle + + @_request.post 'news_feeds_rename', params + + setFeedRead: (feedId, highestItemId) -> ### sets all items of a feed as read diff --git a/js/public/app.js b/js/public/app.js index db3ccd5c7..30a8a6506 100644 --- a/js/public/app.js +++ b/js/public/app.js @@ -813,6 +813,18 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. this._autoPaging = true; this._$scope.itemBusinessLayer = this._itemBusinessLayer; this._$scope.feedBusinessLayer = this._feedBusinessLayer; + this._$scope.edit = function(feedId) { + var feed; + feed = _this._feedModel.getById(feedId); + feed.editing = true; + return feed.originalValue = feed.title; + }; + this._$scope.cancel = function(feedId) { + var feed; + feed = _this._feedModel.getById(feedId); + feed.editing = false; + return feed.title = feed.originalValue; + }; this._$scope.isLoading = function() { return _this._feedLoading.isLoading(); }; @@ -1113,6 +1125,15 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. return this._persistence.deleteFeed(feedId); }; + FeedBusinessLayer.prototype.renameFeed = function(feedId, feedTitle) { + var feed; + feed = this._feedModel.getById(feedId); + feed.editing = false; + if (angular.isDefined(feed) && feedTitle !== "") { + return this._persistence.renameFeed(feedId, feedTitle); + } + }; + FeedBusinessLayer.prototype.markRead = function(feedId) { var feed, item, newestItemId, _i, _len, _ref; feed = this._feedModel.getById(feedId); @@ -2900,6 +2921,23 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. return this._request.post('news_feeds_move', params); }; + Persistence.prototype.renameFeed = function(feedId, feedTitle) { + /* + rename a feed + */ + + var params; + params = { + routeParams: { + feedId: feedId + }, + data: { + feedTitle: feedTitle + } + }; + return this._request.post('news_feeds_rename', params); + }; + Persistence.prototype.setFeedRead = function(feedId, highestItemId) { /* sets all items of a feed as read diff --git a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee index 26e5a2973..6061d8767 100644 --- a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee +++ b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee @@ -345,3 +345,14 @@ describe 'FeedBusinessLayer', -> jasmine.any(Function)) expect(callback).toHaveBeenCalled() + + it 'should make a rename feed request and disable editing', => + @persistence.renameFeed = jasmine.createSpy('Rename feed') + @FeedModel.add({id: 2, unreadCount:134, url: 'a1', folderId: 3}) + @FeedBusinessLayer.renameFeed(2, "New Title") + + expect(@persistence.renameFeed).toHaveBeenCalledWith(2, "New Title") + expect(@FeedModel.getById(2).editing).toBe(false) + + + diff --git a/js/tests/services/persistenceSpec.coffee b/js/tests/services/persistenceSpec.coffee index 38e02705a..708a68b07 100644 --- a/js/tests/services/persistenceSpec.coffee +++ b/js/tests/services/persistenceSpec.coffee @@ -178,6 +178,18 @@ describe 'Persistence', -> expect(@req.post).toHaveBeenCalledWith('news_feeds_move', params) + it 'create a correct request for renaming a feed', => + params = + data: + feedTitle: "New Feed Title" + routeParams: + feedId: 3 + + @Persistence.renameFeed(params.routeParams.feedId, params.data.feedTitle) + + expect(@req.post).toHaveBeenCalledWith('news_feeds_rename', params) + + it 'shoud send a correct request for marking all items of a feed read', => params = data: |