amatriain/openreader

View on GitHub
FeedBunch-app/app/assets/javascripts/ng-services/ng-CurrentFolderSvc.js.coffee

Summary

Maintainability
Test Coverage
########################################################
# AngularJS service to set and recover the currently selected folder in the root scope
########################################################

angular.module('feedbunch').service 'currentFolderSvc',
['$rootScope', 'entriesPaginationSvc', 'cleanupSvc', 'findSvc', 'openFolderSvc', 'loadFeedsSvc', 'loadEntriesSvc',
'menuCollapseSvc', 'sidebarVisibleSvc',
($rootScope, entriesPaginationSvc, cleanupSvc, findSvc, openFolderSvc, loadFeedsSvc, loadEntriesSvc,
menuCollapseSvc, sidebarVisibleSvc)->

  set: (folder)->
    if folder?
      entriesPaginationSvc.reset_entries()
      $rootScope.current_feed = null
      if folder=='all' || folder?.id == 'all'
        $rootScope.current_folder = {id: 'all'}
      else
        # Open the folder if it isn't already open.
        openFolderSvc.set folder
        $rootScope.current_folder = folder
      cleanupSvc.hide_read_feeds()
      loadFeedsSvc.load_folder_feeds folder
      loadEntriesSvc.read_entries_page()
      menuCollapseSvc.close()
      sidebarVisibleSvc.set false

  get: ->
    return findSvc.find_folder $rootScope.current_folder?.id
]