From 967b03fcfc63fbb4393200de6b3b46d2bc94bab0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9gis=20Hanol?= <regis@hanol.fr>
Date: Sun, 17 Mar 2013 16:27:11 -0700
Subject: [PATCH] keep favorite/star button's title in sync with starred status

---
 app/assets/javascripts/discourse/models/topic.js          | 8 ++++++++
 .../templates/list/topic_list_item.js.handlebars          | 2 +-
 .../javascripts/discourse/templates/topic.js.handlebars   | 2 +-
 .../discourse/templates/topic_extra_info.js.handlebars    | 2 +-
 .../discourse/views/topic_footer_buttons_view.js          | 2 +-
 config/locales/client.en.yml                              | 4 +++-
 config/locales/client.fr.yml                              | 4 +++-
 7 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/app/assets/javascripts/discourse/models/topic.js b/app/assets/javascripts/discourse/models/topic.js
index 538093642..4af79a695 100644
--- a/app/assets/javascripts/discourse/models/topic.js
+++ b/app/assets/javascripts/discourse/models/topic.js
@@ -141,6 +141,14 @@ Discourse.Topic = Discourse.Model.extend({
     });
   },
 
+  favoriteTooltipKey: (function() {
+    return this.get('starred') ? 'favorite.help.unstar' : 'favorite.help.star';
+  }).property('starred'),
+
+  favoriteTooltip: (function() {
+    return Em.String.i18n(this.get('favoriteTooltipKey'));
+  }).property('favoriteTooltipKey'),
+
   toggleStar: function() {
     var topic = this;
     topic.toggleProperty('starred');
diff --git a/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars b/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars
index d651cf94e..0f66a1c4f 100644
--- a/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/list/topic_list_item.js.handlebars
@@ -1,7 +1,7 @@
 
   {{#if Discourse.currentUser.id}}
     <td class='star'>
-      <a {{bindAttr class=":star :icon-star starred:starred"}} {{action toggleStar this target="controller"}} href='#' title='{{i18n favorite.help}}'></a>
+      <a {{bindAttr class=":star :icon-star starred:starred"}} {{action toggleStar this target="controller"}} href='#' {{bindAttr title="favoriteTooltip"}}></a>
     </td>
   {{/if}}
 
diff --git a/app/assets/javascripts/discourse/templates/topic.js.handlebars b/app/assets/javascripts/discourse/templates/topic.js.handlebars
index cc163274e..af48dff62 100644
--- a/app/assets/javascripts/discourse/templates/topic.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/topic.js.handlebars
@@ -6,7 +6,7 @@
       <div class='container'>
         <div class='inner'>
           {{#if view.showFavoriteButton}}
-            <a {{bindAttr class=":star view.topic.starred:starred"}} {{action toggleStar target="controller"}} href='#' title="{{i18n favorite.help}}"></a>
+            <a {{bindAttr class=":star view.topic.starred:starred"}} {{action toggleStar target="controller"}} href='#' {{bindAttr title="favoriteTooltip"}}></a>
           {{/if}}
           {{#if view.editingTopic}}
             <input id='edit-title' type='text' {{bindAttr value="view.topic.title"}}>
diff --git a/app/assets/javascripts/discourse/templates/topic_extra_info.js.handlebars b/app/assets/javascripts/discourse/templates/topic_extra_info.js.handlebars
index 8809fa5a7..3880b9421 100644
--- a/app/assets/javascripts/discourse/templates/topic_extra_info.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/topic_extra_info.js.handlebars
@@ -1,5 +1,5 @@
 {{#if view.showFavoriteButton}}
-  <a {{bindAttr class=":star view.topic.starred:starred"}} {{action toggleStar target="controller"}} href='#' title="{{i18n favorite.help}}"></a>
+  <a {{bindAttr class=":star view.topic.starred:starred"}} {{action toggleStar target="controller"}} href='#' {{bindAttr title="view.topic.favoriteTooltip"}}></a>
 {{/if}}
 
 <h1>
diff --git a/app/assets/javascripts/discourse/views/topic_footer_buttons_view.js b/app/assets/javascripts/discourse/views/topic_footer_buttons_view.js
index a68ee7ca4..ae4002e69 100644
--- a/app/assets/javascripts/discourse/views/topic_footer_buttons_view.js
+++ b/app/assets/javascripts/discourse/views/topic_footer_buttons_view.js
@@ -40,7 +40,7 @@ Discourse.TopicFooterButtonsView = Ember.ContainerView.extend({
 
         this.addObject(Discourse.ButtonView.createWithMixins({
           textKey: 'favorite.title',
-          helpKey: 'favorite.help',
+          helpKeyBinding: 'controller.content.favoriteTooltipKey',
 
           favoriteChanged: (function() {
             this.rerender();
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 824057c8b..381c2254d 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -357,7 +357,9 @@ en:
 
     favorite:
       title: 'Favorite'
-      help: 'add this topic to your favorites list'
+      help:
+        star: 'add this topic to your favorites list'
+        unstar: 'remove this topic from your favorites list'
 
     topics:
       none:
diff --git a/config/locales/client.fr.yml b/config/locales/client.fr.yml
index 64a053f0d..5d8ff5267 100644
--- a/config/locales/client.fr.yml
+++ b/config/locales/client.fr.yml
@@ -361,7 +361,9 @@ fr:
 
     favorite:
       title: 'Favoris'
-      help: 'ajouter cette discussion à vos favoris'
+      help:
+        star: 'ajouter cette discussion à vos favoris'
+        unstar: 'enlever cette discussion de vos favoris'
 
     topics:
       none: