forked from amazingfate/help
Current links from outside (like the wiki) will cause excess history entries when clicking the https://help.libreoffice.org/ link, breaking the back button. See the example of the visited pages below. Ideally only the referring page and the final page should be in the history, allowing the user to navigate back. 1. https://help.libreoffice.org/Main_Page 2. https://help.libreoffice.org/ - 302 redirect 3. https://help.libreoffice.org/help.html - window.location.href 4. https://help.libreoffice.org/latest/index.html - window.location.href 5. https://help.libreoffice.org/latest/en-US/text/shared/05/new_help.html?&DbPAR=WRITER&System=UNIX The second 302 redirect is fine as it simply replaces the history. The two window.location.href assigments however should be replaced with window.location.replace. Change-Id: I6fbe7141de87c939aa816fdfc2fe5255e9792e0b Reviewed-on: https://gerrit.libreoffice.org/c/help/+/106429 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
75 lines
3.9 KiB
HTML
75 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
-->
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' piwik.documentfoundation.org"/>
|
|
<script type="text/javascript" src="polyfills.js"></script>
|
|
<script type="text/javascript" src="hid2file.js"></script>
|
|
<script type="text/javascript" src="languages.js"></script>
|
|
<script type="text/javascript" src="help2.js" defer></script>
|
|
</head>
|
|
<body>
|
|
<script type="text/javascript">
|
|
// We have to wait until both the deferred help2.js and the document have loaded
|
|
window.addEventListener('DOMContentLoaded', function() {
|
|
var url = window.location.href;
|
|
var n = url.indexOf('index.html?');
|
|
if (n != -1) {
|
|
// the URL came from LibreOffice help (F1)
|
|
var target = getParameterByName("Target",url);
|
|
var lang = existingLang(getParameterByName("Language", url));
|
|
var system = getParameterByName("System", url);
|
|
var module;
|
|
var defaultFile;
|
|
var smodule = target.substr(0, target.indexOf('/'));
|
|
switch (smodule) {
|
|
case "swriter": {defaultFile='text/swriter/main0000.html';module="WRITER";break;}
|
|
case "scalc": {defaultFile='text/scalc/main0000.html';module="CALC";break;}
|
|
case "schart": {defaultFile='text/schart/main0000.html';module="CHART";break;}
|
|
case "simpress": {defaultFile='text/simpress/main0000.html';module="IMPRESS";break;}
|
|
case "sdraw": {defaultFile='text/sdraw/main0000.html';module="DRAW";break;}
|
|
case "smath": {defaultFile='text/smath/main0000.html';module="MATH";break;}
|
|
case "sdatabase": {defaultFile='text/sdatabase/main.html';module="BASE";break;}
|
|
case "sbasic": {defaultFile='text/sbasic/shared/main0601.html';module="BASIC";break;}
|
|
default: {defaultFile='text/shared/05/new_help.html';module="WRITER";break;}
|
|
}
|
|
//Special case of application F1 or menu Help -> LibreOffice Help
|
|
if (target.indexOf('.uno:HelpIndex') != -1) {
|
|
window.location.replace(lang + '/' + defaultFile + '?System=' + system + '&DbPAR=' + module);
|
|
}
|
|
var bookmark = target.slice(target.indexOf('/') + 1, target.length);
|
|
var file = hid2fileMap[bookmark];
|
|
// check first if a root bookmark @@nowidget@@ can be used
|
|
if (file === undefined) {
|
|
var b2 = bookmark.substring(0, bookmark.lastIndexOf("/")) + '/@@nowidget@@';
|
|
file = hid2fileMap[b2];
|
|
}
|
|
// rebuild URL
|
|
if (file === undefined) {
|
|
var newURL = lang + '/text/shared/05/err_html.html?System=' + system + '&DbPAR=' + module + '&HID=' + bookmark ;
|
|
} else {
|
|
var indx = file.indexOf('#');
|
|
var bm = file.substr(indx,file.length);
|
|
file = file.substr(0,indx);
|
|
var newURL = lang + '/' + file + '?System=' + system + '&DbPAR=' + module + '&HID=' + bookmark + bm;
|
|
}
|
|
window.location.replace(newURL);
|
|
} else {
|
|
// URL came from elsewhere, direct access to webroot, we redirect to main Help page
|
|
var system = 'WIN';
|
|
if (navigator.userAgent.indexOf("Mac") != -1) system = 'MAC';
|
|
if (navigator.userAgent.indexOf("Linux") != -1) system = 'UNIX';
|
|
window.location.replace(existingLang(navigator.language) + '/text/shared/05/new_help.html?&DbPAR=WRITER&System=' + system);
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|