Skip to content

Commit 502774a

Browse files
committed
Merge pull request #844 from squirrelo/fix-firefox-validation
Change way browser and version found
2 parents 17da9c2 + d86181f commit 502774a

File tree

2 files changed

+36
-56
lines changed

2 files changed

+36
-56
lines changed

qiita_pet/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
allowed_min_browser_versions = {
1010
'chrome': 39,
1111
'firefox': 34,
12-
'safari': 7
12+
'safari': 7,
13+
'IE': 10
1314
}
1415

1516
__version__ = "0.0.1-dev"

qiita_pet/templates/sitebase.html

Lines changed: 34 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -24,69 +24,40 @@
2424
<link rel="shortcut icon" href="/static/img/favicon.ico">
2525

2626
<script>
27-
$(document).ready(function() {
28-
function overlay() {
29-
overlay = document.getElementById("overlay");
30-
overlay.style.visibility = "visible";
27+
function overlay_check() {
28+
// from http://stackoverflow.com/q/5916900/379593
29+
var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
30+
if(/trident/i.test(M[1])){
31+
tem=/\brv[ :]+(\d+)/g.exec(ua) || [];
32+
return 'IE '+(tem[1]||'');
33+
}
34+
if(M[1]==='Chrome'){
35+
tem=ua.match(/\bOPR\/(\d+)/)
36+
if(tem!=null) {return 'Opera '+tem[1];}
37+
}
38+
M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
39+
if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);}
40+
objbrowserName = M[0];
41+
objBrMajorVersion = M[1];
42+
43+
if ((objbrowserName == "Chrome" && objBrMajorVersion < {{allowed_min_browser_versions['chrome']}}) ||
44+
(objbrowserName == "Firefox" && objBrMajorVersion < {{allowed_min_browser_versions['firefox']}}) ||
45+
(objbrowserName == "Safari" && objBrMajorVersion < {{allowed_min_browser_versions['safari']}}) ||
46+
((objbrowserName == "IE" || objbrowserName == "MSIE") && objBrMajorVersion < {{allowed_min_browser_versions['IE']}})) {
47+
// Show overlay because too old a browser
48+
ol = document.getElementById("overlay");
49+
ol.style.visibility = "visible";
3150
navbar = document.getElementById("navigation-bar");
3251
navbar.style.visibility = "hidden";
3352
jumbotron = document.getElementById("jumbotron");
3453
jumbotron.style.visibility = "hidden";
3554
}
36-
37-
// from http://mrbool.com/how-to-detect-different-browsers-and-their-versions-using-javascript/25424
38-
var objappVersion = navigator.appVersion;
39-
var objAgent = navigator.userAgent;
40-
var objbrowserName = navigator.appName;
41-
var objfullVersion = ''+parseFloat(navigator.appVersion);
42-
var objBrMajorVersion = parseInt(navigator.appVersion,10);
43-
var objOffsetName,objOffsetVersion,ix;
44-
// In Chrome
45-
if ((objOffsetVersion=objAgent.indexOf("Chrome"))!=-1) {
46-
objbrowserName = "Chrome";
47-
objfullVersion = objAgent.substring(objOffsetVersion+7);
48-
} // In Firefox
49-
else if ((objOffsetVersion=objAgent.indexOf("Firefox"))!=-1) {
50-
objbrowserName = "Firefox";
51-
} // In Safari
52-
else if ((objOffsetVersion=objAgent.indexOf("Safari"))!=-1) {
53-
objbrowserName = "Safari";
54-
objfullVersion = objAgent.substring(objOffsetVersion+7);
55-
if ((objOffsetVersion=objAgent.indexOf("Version"))!=-1)
56-
objfullVersion = objAgent.substring(objOffsetVersion+8);
57-
}
58-
// trimming the fullVersion string at semicolon/space if present
59-
if ((ix=objfullVersion.indexOf(";"))!=-1)
60-
objfullVersion=objfullVersion.substring(0,ix);
61-
if ((ix=objfullVersion.indexOf(" "))!=-1)
62-
objfullVersion=objfullVersion.substring(0,ix);
63-
objBrMajorVersion = parseInt(''+objfullVersion,10);
64-
if (isNaN(objBrMajorVersion)) {
65-
objfullVersion = ''+parseFloat(navigator.appVersion);
66-
objBrMajorVersion = parseInt(navigator.appVersion,10);
67-
}
68-
69-
if ((objbrowserName == "Chrome" && objBrMajorVersion < {{allowed_min_browser_versions['chrome']}}) ||
70-
(objbrowserName == "Firefox" && objBrMajorVersion < {{allowed_min_browser_versions['firefox']}}) ||
71-
(objbrowserName == "Safari" && objBrMajorVersion < {{allowed_min_browser_versions['safari']}})) {
72-
overlay();
73-
}
74-
75-
});
76-
</script>
55+
}
56+
</script>
7757
{% block head %}{% end %}
7858
</head>
7959

80-
<body style="padding-top: 65px; height: 100%">
81-
<div id="overlay" class="navbar-brand" style="visibility: hidden; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; font-size: 13px; text-align: center; z-index: 1000; background-color: #333333; color: #FFFFFF;">
82-
<div>
83-
<img src="/static/img/logo-clear.png" alt="Emperor" id="small-logo"/>
84-
<h1>This site only works on newer browsers.</h1>
85-
<p id="explanation"><strong>Chrome >= {{allowed_min_browser_versions['chrome']}}:</strong> You can download Chrome from <a href="https://www.google.com/chrome/browser/">here</a> or you can find instructions on how to update it <a href="https://support.google.com/chrome/answer/95414?hl=en">here</a></p>
86-
<p id="explanation"><strong>Safari >= {{allowed_min_browser_versions['safari']}}:</strong> You can update Safari following <a href="http://support.apple.com/en-us/HT6104">these</a> instructions.</p>
87-
<p id="explanation"><strong>Firefox >= {{allowed_min_browser_versions['firefox']}}:</strong> For instructions on how to install or update Firefox go <a href="https://support.mozilla.org/en-US/kb/update-firefox-latest-version">here.</a></p>
88-
</div>
89-
</div>
60+
<body style="padding-top: 65px; height: 100%" onload='overlay_check();'>
9061
{% set level = globals().get('level', '') %}
9162
{% set message = globals().get('message', '') %}
9263
{% if maintenance is not None %}
@@ -246,5 +217,13 @@ <h4 class="modal-title" id="myModalLabel">Create new meta-analysis</h4>
246217

247218
<div id="footer">
248219
</div>
220+
<div id="overlay" class="navbar-brand" style="visibility: hidden; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; font-size: 13px; text-align: center; z-index: 1000; background-color: #333333; color: #FFFFFF;">
221+
<img src="/static/img/logo-clear.png" alt="Qiita logo" id="small-logo"/>
222+
<h1>This site only works with the following browsers</h1>
223+
<p id="explanation"><strong>Chrome >= {{allowed_min_browser_versions['chrome']}}:</strong> You can download Chrome from <a href="https://www.google.com/chrome/browser/">here</a> or you can find instructions on how to update it <a href="https://support.google.com/chrome/answer/95414?hl=en">here</a></p>
224+
<p id="explanation"><strong>Safari >= {{allowed_min_browser_versions['safari']}}:</strong> You can update Safari following <a href="http://support.apple.com/en-us/HT6104">these</a> instructions.</p>
225+
<p id="explanation"><strong>Firefox >= {{allowed_min_browser_versions['firefox']}}:</strong> For instructions on how to install or update Firefox go <a href="https://support.mozilla.org/en-US/kb/update-firefox-latest-version">here.</a></p>
226+
<p id="explanation"><strong>Internet Explorer >= {{allowed_min_browser_versions['IE']}}:</strong> For instructions on how to update IE go <a href="http://windows.microsoft.com/en-us/internet-explorer">here.</a></p>
227+
</div>
249228
</body>
250229
</html>

0 commit comments

Comments
 (0)