help3xsl/default.css |    8 +
 help3xsl/help.js     |  216 ++++++++++++++++++++++++---------------------------
 2 files changed, 108 insertions(+), 116 deletions(-)

New commits:
commit 863b926ed16b372800f75e8ac467afbf3443f61e
Author: Ilmari Lauhakangas <ilmari.lauhakan...@libreoffice.org>
Date:   Fri Feb 9 13:42:21 2018 +0200

    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.hal...@libreoffice.org>
    Tested-by: Olivier Hallot <olivier.hal...@libreoffice.org>

diff --git a/help3xsl/default.css b/help3xsl/default.css
index dc2a19972..e797cd68c 100644
--- a/help3xsl/default.css
+++ b/help3xsl/default.css
@@ -579,9 +579,6 @@ li.disabled a {
     line-height: 16px;
     vertical-align: middle;
 }
-.contents-treeview label {
-    background-position: 18px 0;
-}
 .contents-treeview label:before {
     content: "⊞";
     color: #18A303;
@@ -592,6 +589,11 @@ li.disabled a {
 .contents-treeview input:checked + label::before {
     content: "⊟";
 }
+.contents-current {
+    background-color: #18A303;
+    color: #FFF;
+    padding-right: 1px;
+}
 /* webkit adjacent element selector bugfix */
 
 @media screen and (-webkit-min-device-pixel-ratio: 0) {
diff --git a/help3xsl/help.js b/help3xsl/help.js
index 53d9cda4c..9329f2d0f 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: */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to