summaryrefslogtreecommitdiffstats
path: root/help3xsl/help.js
diff options
context:
space:
mode:
authorIlmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>2018-02-09 13:42:21 +0200
committerOlivier Hallot <olivier.hallot@libreoffice.org>2018-02-09 19:01:56 +0100
commit863b926ed16b372800f75e8ac467afbf3443f61e (patch)
treedecca01dd7a689436b638707b915bfac8f8715f9 /help3xsl/help.js
parenttdf#115255 and auto-expand contents per subitem (diff)
downloadhelp-863b926ed16b372800f75e8ac467afbf3443f61e.tar.gz
help-863b926ed16b372800f75e8ac467afbf3443f61e.zip
Tweaked contents expansion
Stopped excluding main items. Highlighted current item. Harmonised the help.js indentation. Change-Id: I6b8f22940d077d008662a387071a5d5db04409f7 Reviewed-on: https://gerrit.libreoffice.org/49488 Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org> Tested-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Diffstat (limited to 'help3xsl/help.js')
-rw-r--r--help3xsl/help.js216
1 files changed, 103 insertions, 113 deletions
diff --git a/help3xsl/help.js b/help3xsl/help.js
index 53d9cda4c3..9329f2d0fb 100644
--- a/help3xsl/help.js
+++ b/help3xsl/help.js
@@ -6,179 +6,172 @@
* 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 Application in caseinline=APP
-function setModule(module){
- if (module === null){module="WRITER";}
+function setModule(module) {
+ if (module === null) {
+ module = "WRITER";
+ }
var itemspan = document.getElementsByTagName("span");
var n = itemspan.length;
- for (var i = 0; i < n; i++){
- if (itemspan[i].getAttribute("value") == module){
+ 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){
+function setSystem(system) {
var itemspan = document.getElementsByTagName("span");
- if (system=== null){system="WIN";}
+ if (system === null) {
+ system = "WIN";
+ }
var n = itemspan.length;
- for (var i = 0; i < n; i++){
- if (itemspan[i].getAttribute("value") == system){
+ 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){
+function fixURL(module, system) {
var itemlink = document.getElementById("DisplayArea").getElementsByTagName("a");
- var pSystem = (system=== null) ? "WIN" : system;
- var pAppl = (module=== null) ? "WRITER" : module;
+ var pSystem = (system === null) ? "WIN" : system;
+ var pAppl = (module === null) ? "WRITER" : module;
var n = itemlink.length;
-
- for (var i = 0; i<n; i++) {
+ for (var i = 0; i < n; i++) {
setURLParam(itemlink[i], pSystem, pAppl);
}
-
}
//Set the params inside URL
-function setURLParam (itemlink, pSystem, pAppl) {
+function setURLParam(itemlink, pSystem, pAppl) {
var href = itemlink.getAttribute("href");
- if (href !== null){
+ 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 postf = href.substring(href.lastIndexOf('#'), href.length);
var pref = href.substring(0, href.lastIndexOf('#'));
itemlink.setAttribute("href", pref + "?" + '&DbPAR=' + pAppl + '&System=' + pSystem + postf);
- }else{
+ } else {
itemlink.setAttribute("href", href + "?" + '&DbPAR=' + pAppl + '&System=' + pSystem);
}
}
}
}
-function getSystem (){
- var system="Unknown OS";
- if (navigator.appVersion.indexOf("Win")!=-1) system="WIN";
- if (navigator.appVersion.indexOf("Mac")!=-1) system="MAC";
- if (navigator.appVersion.indexOf("X11")!=-1) system="UNIX";
- if (navigator.appVersion.indexOf("Linux")!=-1) system="UNIX";
+function getSystem() {
+ var system = "Unknown OS";
+ if (navigator.appVersion.indexOf("Win") != -1) system = "WIN";
+ if (navigator.appVersion.indexOf("Mac") != -1) system = "MAC";
+ if (navigator.appVersion.indexOf("X11") != -1) system = "UNIX";
+ if (navigator.appVersion.indexOf("Linux") != -1) system = "UNIX";
return system;
}
-
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, " "));
}
-
// Pagination and fuzzy search
var fuseshown = document.getElementsByClassName("fuseshown");
var indexkids = document.getElementsByClassName("index")[0].children;
var liElements = Array.prototype.slice.call(fuseshown).map(function(elm) {
- var item = elm;
- var linktext = item.textContent;
- var fuseObject = { item: item, linktext: linktext };
- return fuseObject;
+ var item = elm;
+ var linktext = item.textContent;
+ var fuseObject = {
+ item: item,
+ linktext: linktext
+ };
+ return fuseObject;
});
-
var fuse = new Fuse(liElements, {
- keys: ["linktext"],
- distance: 60,
- location: 0,
- threshold: 0.2,
- tokenize: true,
- matchAllTokens: true,
- maxPatternLength: 24,
- minMatchCharLength: 2
+ keys: ["linktext"],
+ distance: 60,
+ location: 0,
+ threshold: 0.2,
+ tokenize: true,
+ matchAllTokens: true,
+ maxPatternLength: 24,
+ minMatchCharLength: 2
});
+var modules = ['CALC', 'WRITER', 'IMPRESS', 'DRAW', 'BASE', 'MATH', 'CHART', 'BASIC', 'SHARED'];
-var modules = [ 'CALC', 'WRITER', 'IMPRESS', 'DRAW', 'BASE', 'MATH', 'CHART', 'BASIC', 'SHARED' ];
-function addIds() {
- for (var i = 0, len = indexkids.length; i < len; i++) {
- indexkids[i].removeAttribute("id");
- }
- modules.forEach(function(module) {
- var fuseshownModule = document.getElementsByClassName("fuseshown " + module)[0];
- if(typeof fuseshownModule !== 'undefined') { fuseshownModule.setAttribute("id", module); }
- });
+function addIds() {
+ for (var i = 0, len = indexkids.length; i < len; i++) {
+ indexkids[i].removeAttribute("id");
+ }
+ modules.forEach(function(module) {
+ var fuseshownModule = document.getElementsByClassName("fuseshown " + module)[0];
+ if (typeof fuseshownModule !== 'undefined') {
+ fuseshownModule.setAttribute("id", module);
+ }
+ });
}
-
var search = document.getElementById('search-bar');
var filter = function() {
- var target = search.value.trim();
- if (target.length < 1) {
+ var target = search.value.trim();
+ if (target.length < 1) {
+ liElements.forEach(function(obj) {
+ obj.item.classList.add('fuseshown');
+ obj.item.classList.remove('fusehidden');
+ });
+ Paginator(document.getElementsByClassName("index")[0]);
+ addIds();
+ return;
+ }
+ var results = fuse.search(target);
liElements.forEach(function(obj) {
+ obj.item.classList.add('fusehidden');
+ obj.item.classList.remove('fuseshown');
+ });
+ results.forEach(function(obj) {
obj.item.classList.add('fuseshown');
obj.item.classList.remove('fusehidden');
});
Paginator(document.getElementsByClassName("index")[0]);
addIds();
- return;
- }
- var results = fuse.search(target);
-
- liElements.forEach(function(obj) {
- obj.item.classList.add('fusehidden');
- obj.item.classList.remove('fuseshown');
- });
- results.forEach(function(obj) {
- obj.item.classList.add('fuseshown');
- obj.item.classList.remove('fusehidden');
- });
-
- Paginator(document.getElementsByClassName("index")[0]);
- addIds();
};
function debounce(fn, wait) {
- var timeout;
- return function () {
- clearTimeout(timeout);
- timeout = setTimeout(function () {
- fn.apply(this, arguments);
- }, (wait || 150));
- };
+ var timeout;
+ return function() {
+ clearTimeout(timeout);
+ timeout = setTimeout(function() {
+ fn.apply(this, arguments);
+ }, (wait || 150));
+ };
}
-
Paginator(document.getElementsByClassName("index")[0]);
search.addEventListener('keyup', debounce(filter, 300));
addIds();
-
// copy useful content to clipboard on mouse click
var copyable = document.getElementsByClassName("input");
-
for (var i = 0, len = copyable.length; i < len; i++) {
(function() {
var item = copyable[i];
+
function changeColor(item, color, colorToChangeBackTo) {
- item.style.backgroundColor = color;
- setTimeout(function() { item.style.backgroundColor = colorToChangeBackTo; }, 150);
+ item.style.backgroundColor = color;
+ setTimeout(function() {
+ item.style.backgroundColor = colorToChangeBackTo;
+ }, 150);
}
-
item.onclick = function() {
document.execCommand("copy");
changeColor(item, "#18A303", "transparent");
};
-
item.addEventListener("copy", function(event) {
event.preventDefault();
if (event.clipboardData) {
@@ -187,39 +180,36 @@ for (var i = 0, len = copyable.length; i < len; i++) {
});
}());
}
-
// auto-expand contents per subitem
var pathname = window.location.pathname;
-var mainRegex = /main[0-9]*\.html$/;
var pathRegex = /text\/.*\.html$/;
var linkIndex = 0;
-
-if(mainRegex.test(pathname) === false) {
- var contentMatch = pathname.match(pathRegex);
- if(contentMatch !== null) {
- var linkMatch = new RegExp(contentMatch);
- var links = document.getElementById("Contents").getElementsByTagName("a");
- for (var i = 0, len = links.length; i < len; i++) {
- if(links[i].href.match(linkMatch)) {
- var linkIndex = i;
- }
- }
-
- var cItem = document.getElementById("Contents").getElementsByTagName("a")[linkIndex].parentElement;
- var parents = [];
-
- while (cItem.parentElement && !cItem.parentElement.matches("#Contents") && parents.indexOf(cItem.parentElement) == -1) {
- parents.push(cItem = cItem.parentElement);
- }
- var liParents = [].filter.call(parents, function(item) {
- return item.matches("li");
- });
-
- for (var i = 0, len = liParents.length; i < len; i++) {
- var input = liParents[i].querySelectorAll(':scope > input');
- document.getElementById(input[0].id).checked = true;
+var contentMatch = pathname.match(pathRegex);
+function linksMatch(content) {
+ var linkMatch = new RegExp(content);
+ var links = document.getElementById("Contents").getElementsByTagName("a");
+ for (var i = 0, len = links.length; i < len; i++) {
+ if (links[i].href.match(linkMatch)) {
+ return i;
}
}
}
+linkIndex = linksMatch(contentMatch);
+if (typeof linkIndex !== "undefined") {
+ var current = document.getElementById("Contents").getElementsByTagName("a")[linkIndex];
+ var cItem = current.parentElement;
+ var parents = [];
+ while (cItem.parentElement && !cItem.parentElement.matches("#Contents") && parents.indexOf(cItem.parentElement) == -1) {
+ parents.push(cItem = cItem.parentElement);
+ }
+ var liParents = [].filter.call(parents, function(item) {
+ return item.matches("li");
+ });
+ for (var i = 0, len = liParents.length; i < len; i++) {
+ var input = liParents[i].querySelectorAll(':scope > input');
+ document.getElementById(input[0].id).checked = true;
+ }
+ current.classList.add('contents-current');
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */