SYWEB-13: Do not start the app if the browser does not support WEBStorage.

Internet Explorer case: Launch the app only for versions 9 and higher.
This commit is contained in:
Emmanuel ROHEE 2014-09-19 15:18:30 +02:00
parent 28bcd01e8d
commit f9688d7519
3 changed files with 37 additions and 4 deletions

View file

@ -20,7 +20,7 @@ a:visited { color: #666; }
a:hover { color: #000; }
a:active { color: #000; }
#page {
.page {
min-height: 100%;
margin-bottom: -32px; /* to make room for the footer */
}
@ -34,6 +34,11 @@ a:active { color: #000; }
padding-right: 20px;
}
#unsupportedBrowser {
padding-top: 240px;
text-align: center;
}
#header
{
position: absolute;

View file

@ -80,7 +80,24 @@ matrixWebClient.config(['$routeProvider', '$provide', '$httpProvider',
$httpProvider.interceptors.push('AccessTokenInterceptor');
}]);
matrixWebClient.run(['$location', 'matrixService', function($location, matrixService) {
matrixWebClient.run(['$location', '$rootScope', 'matrixService', function($location, $rootScope, matrixService) {
// Check browser support
// Support IE from 9.0. AngularJS needs some tricks to run on IE8 and below
var version = parseFloat($.browser.version);
if ($.browser.msie && version < 9.0) {
$rootScope.unsupportedBrowser = {
browser: navigator.userAgent,
reason: "Internet Explorer is supported from version 9"
};
}
// The app requires localStorage
if(typeof(Storage) === "undefined") {
$rootScope.unsupportedBrowser = {
browser: navigator.userAgent,
reason: "It does not support HTML local storage"
};
}
// If user auth details are not in cache, go to the login page
if (!matrixService.isUserLoggedIn() &&

View file

@ -100,9 +100,20 @@
</div>
</div>
<div id="page" ng-view></div>
<div class="page" ng-hide="unsupportedBrowser" ng-view></div>
<div id="footer" ng-hide="location.indexOf('/room') == 0">
<div class="page" ng-show="unsupportedBrowser">
<div id="unsupportedBrowser" ng-show="unsupportedBrowser">
Sorry, your browser is not supported. <br/>
Reason: {{ unsupportedBrowser.reason }}
<br/><br/>
Your browser: <br/>
{{ unsupportedBrowser.browser }}
</div>
</div>
<div id="footer" ng-hide="location.indexOf('/room') === 0">
<div id="footerContent">
&copy; 2014 Matrix.org
</div>