diff --git a/app/assets/javascripts/discourse.js b/app/assets/javascripts/discourse.js index a6e831349be..82b54d0cb30 100644 --- a/app/assets/javascripts/discourse.js +++ b/app/assets/javascripts/discourse.js @@ -75,7 +75,7 @@ Discourse = Ember.Application.createWithMixins({ $('title').text(title); var notifyCount = this.get('notifyCount'); - if (notifyCount > 0 && !Discourse.SiteSettings.dynamic_favicon) { + if (notifyCount > 0 && !Discourse.User.current('dynamic_favicon')) { title = "(" + notifyCount + ") " + title; } // chrome bug workaround see: http://stackoverflow.com/questions/2952384/changing-the-window-title-when-focussing-the-window-doesnt-work-in-chrome @@ -86,7 +86,7 @@ Discourse = Ember.Application.createWithMixins({ }.observes('title', 'hasFocus', 'notifyCount'), faviconChanged: function() { - if(Discourse.SiteSettings.dynamic_favicon) { + if(Discourse.User.current('dynamic_favicon')) { $.faviconNotify( Discourse.SiteSettings.favicon_url, this.get('notifyCount') ); diff --git a/app/assets/javascripts/discourse/models/user.js b/app/assets/javascripts/discourse/models/user.js index 6cfa31ccf7c..de049ad8153 100644 --- a/app/assets/javascripts/discourse/models/user.js +++ b/app/assets/javascripts/discourse/models/user.js @@ -153,6 +153,7 @@ Discourse.User = Discourse.Model.extend({ 'email_digests', 'email_direct', 'email_private_messages', + 'dynamic_favicon', 'digest_after_days', 'new_topic_duration_minutes', 'external_links_in_new_tab', @@ -162,6 +163,7 @@ Discourse.User = Discourse.Model.extend({ user.set('bio_excerpt',data.user.bio_excerpt); Discourse.User.current().set('enable_quoting', user.get('enable_quoting')); Discourse.User.current().set('external_links_in_new_tab', user.get('external_links_in_new_tab')); + Discourse.User.current().set('dynamic_favicon', user.get('dynamic_favicon')); }); }, diff --git a/app/assets/javascripts/discourse/templates/user/preferences.js.handlebars b/app/assets/javascripts/discourse/templates/user/preferences.js.handlebars index e8a3133ee39..6ee825ecb26 100644 --- a/app/assets/javascripts/discourse/templates/user/preferences.js.handlebars +++ b/app/assets/javascripts/discourse/templates/user/preferences.js.handlebars @@ -84,6 +84,16 @@ +
+ +
+ +
+
+
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f9684a99bca..c74f3884061 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -51,7 +51,7 @@ class UsersController < ApplicationController u.new_topic_duration_minutes = params[:new_topic_duration_minutes].to_i if params[:new_topic_duration_minutes] [:email_digests, :email_direct, :email_private_messages, - :external_links_in_new_tab, :enable_quoting].each do |i| + :external_links_in_new_tab, :enable_quoting, :dynamic_favicon].each do |i| if params[i].present? u.send("#{i.to_s}=", params[i] == 'true') end diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index c448e2cbc9b..6163a52fb95 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -78,7 +78,6 @@ class SiteSetting < ActiveRecord::Base setting(:active_user_rate_limit_secs, 60) setting(:previous_visit_timeout_hours, 1) client_setting(:favicon_url, '/assets/default-favicon.ico') - client_setting(:dynamic_favicon, false) setting(:apple_touch_icon_url, '/assets/default-apple-touch-icon.png') setting(:ninja_edit_window, 5.minutes.to_i) diff --git a/app/serializers/current_user_serializer.rb b/app/serializers/current_user_serializer.rb index 270d5116131..69079b4f369 100644 --- a/app/serializers/current_user_serializer.rb +++ b/app/serializers/current_user_serializer.rb @@ -12,6 +12,7 @@ class CurrentUserSerializer < BasicUserSerializer :topic_count, :enable_quoting, :external_links_in_new_tab, + :dynamic_favicon, :trust_level, :can_edit diff --git a/app/serializers/user_serializer.rb b/app/serializers/user_serializer.rb index f33aec45cef..e1224bcf2d0 100644 --- a/app/serializers/user_serializer.rb +++ b/app/serializers/user_serializer.rb @@ -48,6 +48,7 @@ class UserSerializer < BasicUserSerializer :auto_track_topics_after_msecs, :new_topic_duration_minutes, :external_links_in_new_tab, + :dynamic_favicon, :enable_quoting diff --git a/config/locales/client.de.yml b/config/locales/client.de.yml index dbd24f57f52..2f554286dc7 100644 --- a/config/locales/client.de.yml +++ b/config/locales/client.de.yml @@ -175,6 +175,7 @@ de: bio: "Über mich" invited_by: "Eingeladen von" trust_level: "Stufe" + dynamic_favicon: "Zeige eingehende Nachrichten im Favicon" external_links_in_new_tab: "Öffne alle externen Links in neuen Tabs" enable_quoting: "Markierten Text bei Antwort zitieren" diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index cfcb40d5b44..b6d6c05d862 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -172,6 +172,8 @@ en: bio: "About me" invited_by: "Invited By" trust_level: "Trust Level" + notifications: "Notifications" + dynamic_favicon: "Show incoming message notifications on favicon" external_links_in_new_tab: "Open all external links in a new tab" enable_quoting: "Enable quote reply for highlighted text" diff --git a/config/locales/client.ru.yml b/config/locales/client.ru.yml index 207aee30099..1d5f54d4894 100644 --- a/config/locales/client.ru.yml +++ b/config/locales/client.ru.yml @@ -205,6 +205,7 @@ ru: bio: Обо мне invited_by: Приглашен пользователем trust_level: Уровень доверия + dynamic_favicon: Отображать события на favicon external_links_in_new_tab: Открывать все внешние ссылки в новой вкладке enable_quoting: Позволить отвечать с цитированием выделенного текста moderator: '{{user}} - модератор' diff --git a/config/locales/server.de.yml b/config/locales/server.de.yml index 624e916f9df..e95ad9c507a 100644 --- a/config/locales/server.de.yml +++ b/config/locales/server.de.yml @@ -456,7 +456,6 @@ de: logo_url: "Das Logo deiner Seite, zum Beispiel: http://example.com/logo.png" logo_small_url: "Kleines Logo deiner Seite, das beim Herunterscrollen in einem Thema gezeigt wird, zum Beispiel: http://example.com/logo-small.png" favicon_url: "Das Favicon deiner Seite, siehe http://de.wikipedia.org/wiki/Favicon" - dynamic_favicon: "Zeige eingehende Nachrichten im Favicon" apple_touch_icon_url: "Icon für berührungsempfindliche Apple Geräte. Empfohlene Grösse ist 144px auf 144px." notification_email: "Die Antwortadresse, die in Systemmails (zum Beispiel zur Passwortwiederherstellung, neuen Konten, etc.) eingetragen wird." diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 274f17112dc..c9fd59d5b84 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -457,7 +457,6 @@ en: logo_url: "The logo for your site eg: http://example.com/logo.png" logo_small_url: "The small logo for your site used when scrolling down on topics eg: http://example.com/logo-small.png" favicon_url: "A favicon for your site, see http://en.wikipedia.org/wiki/Favicon" - dynamic_favicon: "Show incoming message notifications on favicon" apple_touch_icon_url: "Icon used for Apple touch devices. Recommended size is 144px by 144px." notification_email: "The return email address used when sending system emails such as notifying users of lost passwords, new accounts etc" diff --git a/config/locales/server.ru.yml b/config/locales/server.ru.yml index a35fb23eac2..549569eddc8 100644 --- a/config/locales/server.ru.yml +++ b/config/locales/server.ru.yml @@ -505,7 +505,6 @@ ru: logo_url: 'Логотип вашего сайта, например: http://example.com/logo.png' logo_small_url: 'Уменьшенный логотип вашего сайта, используется при прокрутке списка тем, например: http://example.com/logo-small.png' favicon_url: 'favicon вашего сайта, дополнительная информация: http://en.wikipedia.org/wiki/Favicon' - dynamic_favicon: Отображать события на favicon apple_touch_icon_url: Иконка используемая для тач-устройств Apple. Рекомендуемый размер 144 x 144 px. notification_email: Обратный электронный адрес, используемый для отправки системных электронных писем пользователям, таких как оповещение пользователей о потерянном пароле, новой учетной записи и т.д. use_ssl: Будет ли сайт доступен по SSL? (НЕ РЕАЛИЗОВАНО, ЭКСПЕРИМЕНТАЛЬНАЯ ФУНКЦИЯ)