amatriain/openreader

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

Summary

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

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

  set: (feed)->
    if feed?
      entriesPaginationSvc.reset_entries()
      $rootScope.current_folder = null
      $rootScope.current_feed = feed
      cleanupSvc.hide_read_feeds()
      # Open the folder under which is the feed, if it isn't already open.
      if feed.folder_id != 'none'
        folder = findSvc.find_folder feed.folder_id
        openFolderSvc.set folder
      tooltipSvc.feed_title_tooltip()
      loadFeedsSvc.load_feed feed.id
      loadEntriesSvc.read_entries_page()
      menuCollapseSvc.close()
      sidebarVisibleSvc.set false
      tourSvc.show_feed_tour()

  get: ->
    return findSvc.find_feed $rootScope.current_feed?.id
]