diff options
author | Olivier Hallot <olivier.hallot@libreoffice.org> | 2017-06-20 00:04:54 -0300 |
---|---|---|
committer | Olivier Hallot <olivier.hallot@edx.srv.br> | 2017-06-25 01:55:11 +0200 |
commit | 181b72469b27cc2f711525838463e98a0920161c (patch) | |
tree | 671e2cc4f601c6237fb00a95944a0b062ac5b2b2 /help3xsl/help.js | |
parent | bd033eb897b7c43f1f6e8c35cc50d4a73ace84af (diff) |
Help-in-browser: several improvements
* tabs for Contents/Index/Search
* product version (6.0, 5.3, 5.2, etc...)
* capable to receive URL from LibreOffice help call
(need to change help url in sfx2/:
protocol://<host>/index.html?<params>
Change-Id: I2244336ea47cdb923884ae97b9f4a586d85ec706
Reviewed-on: https://gerrit.libreoffice.org/39227
Reviewed-by: Olivier Hallot <olivier.hallot@edx.srv.br>
Tested-by: Olivier Hallot <olivier.hallot@edx.srv.br>
Diffstat (limited to 'help3xsl/help.js')
-rw-r--r-- | help3xsl/help.js | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/help3xsl/help.js b/help3xsl/help.js new file mode 100644 index 0000000000..982f4bc8e1 --- /dev/null +++ b/help3xsl/help.js @@ -0,0 +1,110 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +// Used to set Apllication in caseinlie=APP +function setModule(module){ + if (module == null){module="SHARED"} + document.getElementById("bookmark"+module).hidden=false; + var itemspan = document.getElementsByTagName("span"); + var n = itemspan.length; + for (var i = 0; i < n; i++){ + if (itemspan[i].getAttribute("value") == module){ + itemspan[i].removeAttribute("hidden"); + } + } +} + +// Used to set system in caseinline=SYSTEM +function setSystem(system){ + var itemspan = document.getElementsByTagName("span"); + if (system == null){system="WIN"} + var n = itemspan.length; + for (var i = 0; i < n; i++){ + if (itemspan[i].getAttribute("value") == system){ + itemspan[i].removeAttribute("hidden"); + } + } +} +/* add &DbPAR= and &System= to the links in DisplayArea div */ +function fixURL(module, system){ + var itemlink = document.getElementById("DisplayArea").getElementsByTagName("a"); + var pSystem = (system == null) ? "WIN" : system; + var pAppl = (module == null) ? "SHARED" : module; + var n = itemlink.length; + var item; + for (var i = 0; i<n; i++) {setURLParam(itemlink[i], pSystem, pAppl) + } +} +//Set the params inside URL +function setURLParam (itemlink, pSystem, pAppl) { + var href = itemlink.getAttribute("href"); + if (href != null){ + // skip external links + if (!href.startsWith("http")) { + // handle bookmark. + if (href.lastIndexOf('#') != -1) { + var postf = href.substring(href.lastIndexOf('#'),href.length); + var pref = href.substring(0, href.lastIndexOf('#')); + itemlink.setAttribute("href", pref + "?" + '&DbPAR=' + pAppl + '&System=' + pSystem + postf); + }else{ + itemlink.setAttribute("href", href + "?"+ '&DbPAR=' + pAppl + '&System=' + pSystem); + } + } + } +} +// Set System change buttons +function setSystemURLButton (module) { + if (module == null){module="SHARED"} + var button = document.getElementById("lin").getElementsByTagName("a"); + setURLParam(button[0],'UNIX', module); + button = document.getElementById("win").getElementsByTagName("a"); + setURLParam(button[0],'WIN', module); + button = document.getElementById("mac").getElementsByTagName("a"); + setURLParam(button[0],'MAC', module); +} + +function getParameterByName(name, url) { + if (!url) { + url = window.location.href; + } + + name = name.replace(/[\[\]]/g, "\\$&"); + var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"); + var results = regex.exec(url); + + if (!results) { + return null; + } + + if (!results[2]) { + return ''; + } + + return decodeURIComponent(results[2].replace(/\+/g, " ")); +} + +var debouncer = null; +$(document).ready(function() { + $('#search-bar').keyup(function() { + if (debouncer) { + clearTimeout(debouncer); + } + debouncer = setTimeout(function(){ + if ($('#search-bar').val()) { + $("#BottomLeft ul a:not(:contains('" + $('#search-bar').val() + "'))" ).parent().hide(); + $("#BottomLeft ul a:contains('" + $('#search-bar').val() + "')" ).parent().show(); + } + else { + $("#BottomLeft ul li" ).show(); + } + }, 200); + }); +}); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |