summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <Raydiation@users.noreply.github.com>2013-12-19 04:32:34 -0800
committerBernhard Posselt <Raydiation@users.noreply.github.com>2013-12-19 04:32:34 -0800
commit43f86e58d2976d4c56f1921b272380b66758ae67 (patch)
tree7ec302037c8f436635387ce145b0436bfb29dd32 /js
parent98d3328c5ea97b91faa184206799f4e7e7ccfd57 (diff)
parentfd6137741f6331da70432e063a576a63f5588466 (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.coffee9
-rw-r--r--js/app/services/businesslayer/feedbusinesslayer.coffee8
-rw-r--r--js/app/services/persistence.coffee13
-rw-r--r--js/public/app.js38
-rw-r--r--js/tests/services/businesslayer/feedbusinesslayerSpec.coffee11
-rw-r--r--js/tests/services/persistenceSpec.coffee12
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: