diff --git a/webclient/app.css b/webclient/app.css
index 736aea660c..360263e13f 100755
--- a/webclient/app.css
+++ b/webclient/app.css
@@ -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;
diff --git a/webclient/app.js b/webclient/app.js
index 9370f773b3..31118304c6 100644
--- a/webclient/app.js
+++ b/webclient/app.js
@@ -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() &&
diff --git a/webclient/index.html b/webclient/index.html
index 7e4dcb8345..a9d5cfd4b0 100644
--- a/webclient/index.html
+++ b/webclient/index.html
@@ -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">
© 2014 Matrix.org
</div>
|