]> git.0d.be Git - panikdb.git/commitdiff
wiki: display breadcrumbs
authorFrédéric Péters <fpeters@0d.be>
Thu, 11 Jun 2020 18:56:30 +0000 (20:56 +0200)
committerFrédéric Péters <fpeters@0d.be>
Thu, 11 Jun 2020 18:56:30 +0000 (20:56 +0200)
panikdb/static/css/style.scss
panikdb/static/js/combo.wiki.js
panikdb/templates/combo/page_template_sidebar.html

index b15b326e6c9f87688cad91a2f68f271c8652dbb9..9519ce8db616a8ee82faa74c7c0768d4bed0b52e 100644 (file)
@@ -778,3 +778,7 @@ div.wiki-section {
 div#content div.wiki-section h4.intertitle {
        margin-bottom: 1em;
 }
+
+.wiki-breadcrumbs-separator {
+       padding-left: 1em;
+}
index d8f75f297076d6bcac9510e30da4175a74650a1e..12efb063b7515d64a0208d392d36660f42ed1677 100644 (file)
@@ -305,6 +305,37 @@ function auto_anchors() {
 }(window, document));
 
 $(function() {
+  if (window.localStorage) {
+    var breadcrumbs = window.localStorage.wiki_breadcrumbs;
+    if (breadcrumbs) {
+      try {
+        breadcrumbs = JSON.parse(breadcrumbs);
+      } catch(e) {
+        breadcrumbs = new Array();
+      }
+    } else {
+      breadcrumbs = new Array();
+    }
+    var page = {href: window.location.pathname, text: $('div.wiki-section > h3 span.title').text()};
+    for (var i=0; i<breadcrumbs.length; i++) {
+      if (breadcrumbs[i].href === page.href) {
+        breadcrumbs.splice(i, 1);
+        break;
+      }
+    }
+    breadcrumbs.reverse();
+    breadcrumbs.push(page);
+    breadcrumbs.reverse();
+    breadcrumbs.splice(5, 1);  // only keep 5 elements
+    window.localStorage.wiki_breadcrumbs = JSON.stringify(breadcrumbs);
+    var $links = $('#more-user-links');
+    $links.append('<span class="wiki-breadcrumbs-separator"></span>');
+    for (var i=1; i<breadcrumbs.length; i++) {
+      var $a = $('<a></a>', breadcrumbs[i]);
+      $links.append(' ');
+      $links.append($a);
+    }
+  }
   $('#quickedit input').on('change', function() {
     var enable = $(this).is(':checked');
     if (enable) {
index c896d11a08d4c85fdd07b9eaeb848a788ff672e2..bfbf8cca458e9e59298faa3502370686f9fde2b0 100644 (file)
@@ -13,7 +13,7 @@
 
 {% block content %}
 <div class="section wiki-section">
-<h3>{{ page.title }} {% if request.user.is_authenticated %}<label id="quickedit"><input type="checkbox"><span>Mode édition</span></label>{% endif %}</h3>
+<h3><span class="title">{{ page.title }}</span> {% if request.user.is_authenticated %}<label id="quickedit"><input type="checkbox"><span>Mode édition</span></label>{% endif %}</h3>
 {% csrf_token %}
 
 <div>