FeedBunch-app/app/assets/javascripts/ng-services/ng-TooltipSvc.js.coffee
########################################################
# AngularJS service to enable tooltips on elements
########################################################
angular.module('feedbunch').service 'tooltipSvc',
['$rootScope', ($rootScope)->
# Media query to enable tooltips only in screens wider than a tablet's
md_min_media_query = 'screen and (min-width: 992px)'
#--------------------------------------------
# PRIVATE FUNCTION: Set the unread entries count of a feed to the passed value
#--------------------------------------------
entry_tooltips_hide = (entry)->
# Tooltips are not enabled in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#entry-#{entry.id} a[data-toggle='tooltip']").tooltip 'hide'
$("#entry-#{entry.id} a[data-share-entry-dropdown]").tooltip 'hide'
service =
#---------------------------------------------
# Enable tooltip on cookies warning "accept" button
#---------------------------------------------
cookies_warning_tooltips: ->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#cookie-notice .close[data-toggle='tooltip']").tooltip(delay: {'show': 500})
#---------------------------------------------
# Enable tooltips on some entry buttons and links (single entry)
#---------------------------------------------
entry_tooltips_show: (entry)->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#entry-#{entry.id} a[data-toggle='tooltip']").tooltip(container: 'body', delay: {'show': 500})
$("#entry-#{entry.id} a[data-share-entry-dropdown]").tooltip(container: 'body', delay: {'show': 500})
#---------------------------------------------
# Hide tooltips on some entry buttons and links (single entry)
#---------------------------------------------
entry_tooltips_hide: entry_tooltips_hide
#---------------------------------------------
# Hide tooltips on some entry buttons and links (all entries)
#---------------------------------------------
all_entries_tooltips_hide: ->
if $rootScope.entries && $rootScope.entries.length > 0
for e in $rootScope.entries
entry_tooltips_hide e
#---------------------------------------------
# Enable tooltips on navbar buttons
#---------------------------------------------
navbar_tooltips: ->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$(".navbar .nav.navbar-nav [data-toggle='tooltip']").tooltip(delay: {'show': 500})
#---------------------------------------------
# Enable tooltips on import state alert "close" button
#---------------------------------------------
import_state_tooltips: ->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#start-info #import-process-state button.close[data-toggle='tooltip']").tooltip(delay: {'show': 500})
#---------------------------------------------
# Enable tooltips on export state alert "close" button
#---------------------------------------------
export_state_tooltips: ->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#start-info #export-process-state button.close[data-toggle='tooltip']").tooltip(delay: {'show': 500})
#---------------------------------------------
# Enable tooltips on refresh feed job's state alert "close" button
#---------------------------------------------
refresh_job_state_tooltips: (job_state)->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#job-states #refresh-state-alerts #refresh-state-#{job_state.id} button.close[data-toggle='tooltip']").tooltip(delay: {'show': 500})
#---------------------------------------------
# Enable tooltips on subscribe job's state alert "close" button
#---------------------------------------------
subscribe_job_state_tooltips: (job_state)->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#job-states #subscribe-state-alerts #subscribe-state-#{job_state.id} button.close[data-toggle='tooltip']").tooltip(delay: {'show': 500})
#---------------------------------------------
# Enable tooltips on the feed title link
#---------------------------------------------
feed_title_tooltip: ->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#feed-title a[data-toggle='tooltip']").tooltip(delay: {'show': 500})
#---------------------------------------------
# Enable tooltips on footer links
#---------------------------------------------
footer_tooltips: ->
# Do not enable tooltips in smartphone and tablet-sized screens
enquire.register md_min_media_query, ->
$("#social-links a[data-toggle='tooltip']").tooltip(delay: {'show': 500})
return service
]