diff --git a/app/assets/javascripts/app/app.js b/app/assets/javascripts/app/app.js index ce0b43118a787c9dee9879dcc6b52bd66f954039..2c2e219a57cd193864fc89dc8e243b60f1d773ef 100644 --- a/app/assets/javascripts/app/app.js +++ b/app/assets/javascripts/app/app.js @@ -40,6 +40,7 @@ var app = { this.setupHeader(); this.setupBackboneLinks(); this.setupGlobalViews(); + this.setupDisabledLinks(); }, hasPreload : function(prop) { @@ -107,7 +108,13 @@ var app = { instrument : function(type, name, object, callback) { if(!window.mixpanel) { return } window.mixpanel[type](name, object, callback) - } + }, + + setupDisabledLinks: function() { + $("a.disabled").click(function(event) { + event.preventDefault(); + }); + }, }; $(function() { diff --git a/app/assets/javascripts/widgets/notifications.js b/app/assets/javascripts/widgets/notifications.js index 797d94588b96a99717c03faef65ce64eb7370647..0e07bbff0dfb75e20fe5dcc5c814e98f2533fe21 100644 --- a/app/assets/javascripts/widgets/notifications.js +++ b/app/assets/javascripts/widgets/notifications.js @@ -22,7 +22,7 @@ .next(".hidden") .removeClass("hidden"); }); - self.notificationMenu.find('a#mark_all_read_link').click(function() { + self.notificationMenu.find('a#mark_all_read_link').click(function(event) { $.ajax({ url: "/notifications/read_all", type: "GET", @@ -39,6 +39,7 @@ self.resetCount(); } }); + $(event.target).addClass("disabled"); return false; }); }); diff --git a/app/assets/stylesheets/application.css.sass b/app/assets/stylesheets/application.css.sass index 9ae450b9a165c02f6f5eac95b9860cbeaec7a845..46fbc22831bc144708a94d709210503979f83323 100644 --- a/app/assets/stylesheets/application.css.sass +++ b/app/assets/stylesheets/application.css.sass @@ -52,6 +52,13 @@ a :color $blue :text :decoration underline + &.disabled + :color $link-disabled-grey + :cursor default + &.disabled.button:hover + :color $link-disabled-grey + :cursor default + :background #f7f7f7 p :word-wrap break-word diff --git a/app/assets/stylesheets/colors.css.scss b/app/assets/stylesheets/colors.css.scss index f1fa155b3886b05a30ad389869444b2c0f6e54d8..98f6d4fc0133aeb0f894fe9e7bcfb731ea9eb4cd 100644 --- a/app/assets/stylesheets/colors.css.scss +++ b/app/assets/stylesheets/colors.css.scss @@ -7,6 +7,7 @@ $border-grey: #DDDDDD; $background-grey: #EEEEEE; $header-grey: #939393; $link-grey: #777777; +$link-disabled-grey: #999999; $text-grey: #999999; $white: white; diff --git a/app/assets/stylesheets/header.css.scss b/app/assets/stylesheets/header.css.scss index 890a57700c996ea85913d592acd7a5049182ad28..f69e1e9658fded46573573880dd25a5996f8d2f8 100644 --- a/app/assets/stylesheets/header.css.scss +++ b/app/assets/stylesheets/header.css.scss @@ -131,6 +131,10 @@ body > header { } a { color: $blue; } + a.disabled { + color: $link-disabled-grey; + cursor: default; + } .header { padding: 10px; diff --git a/app/assets/templates/header_tpl.jst.hbs b/app/assets/templates/header_tpl.jst.hbs index 92d3a35754dc8924ee1aa853089f7f35ce27aec4..5439cfab3a8a1121ccbcd8a95f93f02dba23d800 100644 --- a/app/assets/templates/header_tpl.jst.hbs +++ b/app/assets/templates/header_tpl.jst.hbs @@ -45,7 +45,7 @@ <div class="header"> <div class="right"> - <a href="#" id="mark_all_read_link"> + <a href="#" id="mark_all_read_link" class="{{#unless current_user.notifications_count}}disabled{{/unless}}"> {{t "header.mark_all_as_read"}} </a> | diff --git a/app/views/notifications/index.html.haml b/app/views/notifications/index.html.haml index afbacb82ceedba5d627eb5f2ab5eb6aad5f79662..9bce83da02cfd749d561a52be9c130b0e391d055 100644 --- a/app/views/notifications/index.html.haml +++ b/app/views/notifications/index.html.haml @@ -5,7 +5,7 @@ = @unread_notification_count = t('.notifications') .span-8.last - = link_to t('.mark_all_as_read'), notifications_read_all_path, :class => 'button' + = link_to t('.mark_all_as_read'), notifications_read_all_path, :class => "button #{'disabled' unless @unread_notification_count > 0}" .span-24.last .stream.notifications - @group_days.each do |day, notes|