diff options
Diffstat (limited to 'js/app')
-rw-r--r-- | js/app/controllers/feedcontroller.coffee | 45 | ||||
-rw-r--r-- | js/app/directives/droppable.coffee | 44 |
2 files changed, 68 insertions, 21 deletions
diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee index 7785f3de6..0e2078b75 100644 --- a/js/app/controllers/feedcontroller.coffee +++ b/js/app/controllers/feedcontroller.coffee @@ -25,63 +25,63 @@ angular.module('News').factory '_FeedController', -> class FeedController - constructor: (@$scope, @_persistence, @_folderBl, @_feedBl, + constructor: (@_$scope, @_persistence, @_folderBl, @_feedBl, @_subscriptionsBl, @_starredBl, @_unreadCountFormatter) -> @_isAddingFolder = false @_isAddingFeed = false # bind internal stuff to scope - @$scope.folderBl = @_folderBl - @$scope.feedBl = @_feedBl - @$scope.subscriptionsBl = @_subscriptionsBl - @$scope.starredBl = @_starredBl - @$scope.unreadCountFormatter = @_unreadCountFormatter + @_$scope.folderBl = @_folderBl + @_$scope.feedBl = @_feedBl + @_$scope.subscriptionsBl = @_subscriptionsBl + @_$scope.starredBl = @_starredBl + @_$scope.unreadCountFormatter = @_unreadCountFormatter - @$scope.isAddingFolder = => + @_$scope.isAddingFolder = => return @_isAddingFolder - @$scope.isAddingFeed = => + @_$scope.isAddingFeed = => return @_isAddingFeed - @$scope.addFeed = (feedUrl, parentFolderId=0) => - @$scope.feedEmptyError = false - @$scope.feedError = false + @_$scope.addFeed = (feedUrl, parentFolderId=0) => + @_$scope.feedEmptyError = false + @_$scope.feedError = false if angular.isUndefined(feedUrl) or feedUrl.trim() == '' - @$scope.feedEmptyError = true + @_$scope.feedEmptyError = true - if not @$scope.feedEmptyError + if not @_$scope.feedEmptyError @_isAddingFeed = true onError = => - @$scope.feedError = true + @_$scope.feedError = true @_isAddingFeed = false onSuccess = (data) => if data.status == 'error' onError() else - @$scope.feedUrl = '' + @_$scope.feedUrl = '' @_isAddingFeed = false @_persistence.createFeed(feedUrl.trim(), parentFolderId, onSuccess, onError) - @$scope.addFolder = (folderName) => - @$scope.folderEmptyError = false - @$scope.folderExistsError = false + @_$scope.addFolder = (folderName) => + @_$scope.folderEmptyError = false + @_$scope.folderExistsError = false if angular.isUndefined(folderName) or folderName.trim() == '' - @$scope.folderEmptyError = true + @_$scope.folderEmptyError = true else folderName = folderName.trim() if @_folderModel.nameExists(folderName) - @$scope.folderExistsError = true + @_$scope.folderExistsError = true - if not (@$scope.folderEmptyError or @$scope.folderExistsError) + if not (@_$scope.folderEmptyError or @_$scope.folderExistsError) @_isAddingFolder = true @_persistence.createFolder folderName, 0, => @$scope.folderName = '' @@ -89,4 +89,7 @@ angular.module('News').factory '_FeedController', -> @_isAddingFolder = false + @_$scope.$on 'moveFeedToFolder', (scope, data) => + console.log data + return FeedController
\ No newline at end of file diff --git a/js/app/directives/droppable.coffee b/js/app/directives/droppable.coffee new file mode 100644 index 000000000..dce9e987b --- /dev/null +++ b/js/app/directives/droppable.coffee @@ -0,0 +1,44 @@ +### + +ownCloud - News + +@author Bernhard Posselt +@copyright 2012 Bernhard Posselt nukeawhale@gmail.com + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +License as published by the Free Software Foundation; either +version 3 of the License, or any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU AFFERO GENERAL PUBLIC LICENSE for more details. + +You should have received a copy of the GNU Affero General Public +License along with this library. If not, see <http://www.gnu.org/licenses/>. + +### + +angular.module('News').directive 'droppable', ['$rootScope', ($rootScope) -> + + return (scope, elm, attr) -> + $elem = $(elm) + + details = + accept: '.feed' + hoverClass: 'drag-and-drop' + greedy: true + drop: (event, ui) -> + # in case jquery ui did something weird + $('.drag-and-drop').removeClass('drag-and-drop') + + data = + folderId: parseInt($elem.data('id'), 10) + feedId: parseInt($(ui.draggable).data('id'), 10) + + $rootScope.$broadcast('moveFeedToFolder', data) + scope.$apply attr.droppable + + $elem.droppable(details) +]
\ No newline at end of file |