From 0b22bb25c1791a25d1f4901cd0acd99bae795f3e Mon Sep 17 00:00:00 2001 From: nickago Date: Wed, 12 Aug 2015 15:27:46 -0700 Subject: Handed control of notification sounds over to browser for firefox --- web/react/components/user_settings.jsx | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) (limited to 'web/react/components') diff --git a/web/react/components/user_settings.jsx b/web/react/components/user_settings.jsx index 1a0c313d3..d2d72884b 100644 --- a/web/react/components/user_settings.jsx +++ b/web/react/components/user_settings.jsx @@ -13,6 +13,7 @@ var assign = require('object-assign'); function getNotificationsStateFromStores() { var user = UserStore.getCurrentUser(); + var soundNeeded = (!navigator || navigator.userAgent.toLowerCase().indexOf("firefox") === -1); var sound = (!user.notify_props || user.notify_props.desktop_sound == undefined) ? "true" : user.notify_props.desktop_sound; var desktop = (!user.notify_props || user.notify_props.desktop == undefined) ? "all" : user.notify_props.desktop; var email = (!user.notify_props || user.notify_props.email == undefined) ? "true" : user.notify_props.email; @@ -58,7 +59,7 @@ function getNotificationsStateFromStores() { } } - return { notify_level: desktop, enable_email: email, enable_sound: sound, username_key: username_key, mention_key: mention_key, custom_keys: custom_keys, custom_keys_checked: custom_keys.length > 0, first_name_key: first_name_key, all_key: all_key, channel_key: channel_key }; + return { notify_level: desktop, enable_email: email, soundNeeded: soundNeeded, enable_sound: sound, username_key: username_key, mention_key: mention_key, custom_keys: custom_keys, custom_keys_checked: custom_keys.length > 0, first_name_key: first_name_key, all_key: all_key, channel_key: channel_key }; } @@ -236,23 +237,35 @@ var NotificationsTab = React.createClass({ var soundSection; if (this.props.activeSection === 'sound') { - var soundActive = ["",""]; - if (this.state.enable_sound === "false") { - soundActive[1] = "active"; - } else { - soundActive[0] = "active"; - } - var inputs = []; - inputs.push( -
-
- - + if(this.state.soundNeeded) { + var soundActive = ["",""]; + if (this.state.enable_sound === "false") { + soundActive[1] = "active"; + } else { + soundActive[0] = "active"; + } + + inputs.push( +
+
+ + +
-
- ); + ); + } else { + inputs.push( +
+
+ + +
+

Please disable notification sounds in your browser settings
+
+ ) + } soundSection = ( Date: Wed, 12 Aug 2015 16:03:36 -0700 Subject: Added extra uAgent check for weird browser implementations --- web/react/components/user_settings.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/react/components') diff --git a/web/react/components/user_settings.jsx b/web/react/components/user_settings.jsx index d2d72884b..fa01d62c2 100644 --- a/web/react/components/user_settings.jsx +++ b/web/react/components/user_settings.jsx @@ -13,7 +13,7 @@ var assign = require('object-assign'); function getNotificationsStateFromStores() { var user = UserStore.getCurrentUser(); - var soundNeeded = (!navigator || navigator.userAgent.toLowerCase().indexOf("firefox") === -1); + var soundNeeded = (!navigator || !navigator.userAgent || navigator.userAgent.toLowerCase().indexOf("firefox") === -1); var sound = (!user.notify_props || user.notify_props.desktop_sound == undefined) ? "true" : user.notify_props.desktop_sound; var desktop = (!user.notify_props || user.notify_props.desktop == undefined) ? "all" : user.notify_props.desktop; var email = (!user.notify_props || user.notify_props.email == undefined) ? "true" : user.notify_props.email; -- cgit v1.2.3-1-g7c22 From c5ee567bacbc55372d526c668fa138c80545498e Mon Sep 17 00:00:00 2001 From: nickago Date: Thu, 13 Aug 2015 08:50:40 -0700 Subject: Refactored such that the menu doesn't open for firefox users --- web/react/components/setting_item_min.jsx | 6 ++++- web/react/components/user_settings.jsx | 45 ++++++++++++------------------- 2 files changed, 22 insertions(+), 29 deletions(-) (limited to 'web/react/components') diff --git a/web/react/components/setting_item_min.jsx b/web/react/components/setting_item_min.jsx index 2209c74d1..135226900 100644 --- a/web/react/components/setting_item_min.jsx +++ b/web/react/components/setting_item_min.jsx @@ -3,10 +3,14 @@ module.exports = React.createClass({ render: function() { + var editButton = ''; + if(!this.props.disableOpen) { + editButton =
  • Edit
  • ; + } return (
    • {this.props.title}
    • -
    • Edit
    • + {editButton}
    • {this.props.describe}
    ); diff --git a/web/react/components/user_settings.jsx b/web/react/components/user_settings.jsx index fa01d62c2..0dfea6543 100644 --- a/web/react/components/user_settings.jsx +++ b/web/react/components/user_settings.jsx @@ -236,36 +236,24 @@ var NotificationsTab = React.createClass({ } var soundSection; - if (this.props.activeSection === 'sound') { - var inputs = []; + if (this.props.activeSection === 'sound' && this.state.soundNeeded) { + var soundActive = ["",""]; + if (this.state.enable_sound === "false") { + soundActive[1] = "active"; + } else { + soundActive[0] = "active"; + } - if(this.state.soundNeeded) { - var soundActive = ["",""]; - if (this.state.enable_sound === "false") { - soundActive[1] = "active"; - } else { - soundActive[0] = "active"; - } + var inputs = []; - inputs.push( -
    -
    - - -
    -
    - ); - } else { - inputs.push( -
    -
    - - -
    -

    Please disable notification sounds in your browser settings
    + inputs.push( +
    +
    + +
    - ) - } +
    + ); soundSection = ( ); } -- cgit v1.2.3-1-g7c22 From 2f431240a4fcbf8b693e6bc1f80192aae3ff92bf Mon Sep 17 00:00:00 2001 From: nickago Date: Thu, 13 Aug 2015 08:54:05 -0700 Subject: Cosmetic refactoring --- web/react/components/setting_item_min.jsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'web/react/components') diff --git a/web/react/components/setting_item_min.jsx b/web/react/components/setting_item_min.jsx index 135226900..3c87e416e 100644 --- a/web/react/components/setting_item_min.jsx +++ b/web/react/components/setting_item_min.jsx @@ -2,16 +2,23 @@ // See License.txt for license information. module.exports = React.createClass({ + displayName: 'SettingsItemMin', + propTypes: { + title: React.PropTypes.string, + disableOpen: React.PropTypes.bool, + updateSection: React.PropTypes.func, + describe: React.PropTypes.string + }, render: function() { var editButton = ''; - if(!this.props.disableOpen) { - editButton =
  • Edit
  • ; + if (!this.props.disableOpen) { + editButton =
  • Edit
  • ; } return ( -
      -
    • {this.props.title}
    • +
        +
      • {this.props.title}
      • {editButton} -
      • {this.props.describe}
      • +
      • {this.props.describe}
      ); } -- cgit v1.2.3-1-g7c22 From 63005366ade33e0c1509fc1517381279b6cbd9ee Mon Sep 17 00:00:00 2001 From: nickago Date: Fri, 14 Aug 2015 14:21:41 -0700 Subject: move browser check functionality into a method --- web/react/components/user_settings.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/react/components') diff --git a/web/react/components/user_settings.jsx b/web/react/components/user_settings.jsx index 0dfea6543..ad7de40bf 100644 --- a/web/react/components/user_settings.jsx +++ b/web/react/components/user_settings.jsx @@ -13,7 +13,7 @@ var assign = require('object-assign'); function getNotificationsStateFromStores() { var user = UserStore.getCurrentUser(); - var soundNeeded = (!navigator || !navigator.userAgent || navigator.userAgent.toLowerCase().indexOf("firefox") === -1); + var soundNeeded = !utils.checkBrowserType('firefox'); var sound = (!user.notify_props || user.notify_props.desktop_sound == undefined) ? "true" : user.notify_props.desktop_sound; var desktop = (!user.notify_props || user.notify_props.desktop == undefined) ? "all" : user.notify_props.desktop; var email = (!user.notify_props || user.notify_props.email == undefined) ? "true" : user.notify_props.email; -- cgit v1.2.3-1-g7c22 From fb9e891246db3b8b69e70697d29be5b36b8c7578 Mon Sep 17 00:00:00 2001 From: nickago Date: Mon, 17 Aug 2015 08:10:49 -0700 Subject: Added hardcoded firefox function --- web/react/components/user_settings.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'web/react/components') diff --git a/web/react/components/user_settings.jsx b/web/react/components/user_settings.jsx index ad7de40bf..66d8c9366 100644 --- a/web/react/components/user_settings.jsx +++ b/web/react/components/user_settings.jsx @@ -13,7 +13,7 @@ var assign = require('object-assign'); function getNotificationsStateFromStores() { var user = UserStore.getCurrentUser(); - var soundNeeded = !utils.checkBrowserType('firefox'); + var soundNeeded = !utils.isBrowserFirefox(); var sound = (!user.notify_props || user.notify_props.desktop_sound == undefined) ? "true" : user.notify_props.desktop_sound; var desktop = (!user.notify_props || user.notify_props.desktop == undefined) ? "all" : user.notify_props.desktop; var email = (!user.notify_props || user.notify_props.email == undefined) ? "true" : user.notify_props.email; -- cgit v1.2.3-1-g7c22