diff options
author | Corey Hulen <corey@hulen.com> | 2015-06-25 11:36:47 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2015-06-25 11:36:47 -0400 |
commit | 9a81e76de0861a3e855ca734af90dcace6000734 (patch) | |
tree | f5c1365c06afcbc5e9c9dc1fc93ebd7cf564fba5 /web | |
parent | a8e078d367db2ddbf9888ed1068ad7bb5b1c887e (diff) | |
parent | 2082ee5bdc69d6331db64af64ff686b99ddddd55 (diff) | |
download | chat-9a81e76de0861a3e855ca734af90dcace6000734.tar.gz chat-9a81e76de0861a3e855ca734af90dcace6000734.tar.bz2 chat-9a81e76de0861a3e855ca734af90dcace6000734.zip |
Merge pull request #32 from rgarmsen2295/mm-1282
MM-1282
Diffstat (limited to 'web')
-rw-r--r-- | web/react/components/login.jsx | 14 | ||||
-rw-r--r-- | web/react/components/signup_team_complete.jsx | 12 | ||||
-rw-r--r-- | web/react/utils/utils.jsx | 15 |
3 files changed, 40 insertions, 1 deletions
diff --git a/web/react/components/login.jsx b/web/react/components/login.jsx index 65f1da1f8..85df5f797 100644 --- a/web/react/components/login.jsx +++ b/web/react/components/login.jsx @@ -21,6 +21,12 @@ var FindTeamDomain = React.createClass({ return; } + if (!utils.isLocalStorageSupported()) { + state.server_error = "This service requires local storage to be enabled. Please enable it or exit private browsing."; + this.setState(state); + return; + } + state.server_error = ""; this.setState(state); @@ -94,7 +100,7 @@ module.exports = React.createClass({ return; } - var email = this.refs.email.getDOMNode().value.trim(); + var email = this.refs.email.getDOMNode().value.trim(); if (!email) { state.server_error = "An email is required" this.setState(state); @@ -108,6 +114,12 @@ module.exports = React.createClass({ return; } + if (!utils.isLocalStorageSupported()) { + state.server_error = "This service requires local storage to be enabled. Please enable it or exit private browsing."; + this.setState(state); + return; + } + state.server_error = ""; this.setState(state); diff --git a/web/react/components/signup_team_complete.jsx b/web/react/components/signup_team_complete.jsx index d548c6652..99dcf6f5f 100644 --- a/web/react/components/signup_team_complete.jsx +++ b/web/react/components/signup_team_complete.jsx @@ -9,6 +9,10 @@ var constants = require('../utils/constants.jsx') WelcomePage = React.createClass({ submitNext: function (e) { + if (!utils.isLocalStorageSupported()) { + this.setState({ storage_error: "This service requires local storage to be enabled. Please enable it or exit private browsing."} ); + return; + } e.preventDefault(); this.props.state.wizard = "team_name"; this.props.updateParent(this.props.state); @@ -26,6 +30,12 @@ WelcomePage = React.createClass({ if (!email || !utils.isEmail(email)) { state.email_error = "Please enter a valid email address"; this.setState(state); + return; + } + else if (!utils.isLocalStorageSupported()) { + state.email_error = "This service requires local storage to be enabled. Please enable it or exit private browsing."; + this.setState(state); + return; } else { state.email_error = ""; @@ -50,6 +60,7 @@ WelcomePage = React.createClass({ client.track('signup', 'signup_team_01_welcome'); + var storage_error = this.state.storage_error ? <label className="control-label">{ this.state.storage_error }</label> : null; var email_error = this.state.email_error ? <label className="control-label">{ this.state.email_error }</label> : null; var server_error = this.state.server_error ? <div className={ "form-group has-error" }><label className="control-label">{ this.state.server_error }</label></div> : null; @@ -66,6 +77,7 @@ WelcomePage = React.createClass({ </p> <div className="form-group"> <button className="btn-primary btn form-group" onClick={this.submitNext}><i className="glyphicon glyphicon-ok"></i>Yes, this address is correct</button> + { storage_error } </div> <hr /> <p>If this is not correct, you can switch to a different email. We'll send you a new invite right away.</p> diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index a5d1e8895..75c583c8f 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -96,6 +96,21 @@ module.exports.getCookie = function(name) { if (parts.length == 2) return parts.pop().split(";").shift(); } +module.exports.isLocalStorageSupported = function() { + try { + sessionStorage.setItem("testSession", '1'); + sessionStorage.removeItem("testSession"); + + localStorage.setItem("testLocal", '1'); + localStorage.removeItem("testLocal", '1'); + + return true; + } + catch (e) { + return false; + } +} + module.exports.notifyMe = function(title, body, channel) { if ("Notification" in window && Notification.permission !== 'denied') { Notification.requestPermission(function (permission) { |