Documentation
This function displays part of the hierarchy a topic is situated in.
It tries to provide a sense of "location" for the topic based on
the way it is classified.
TODO: what do we display for topics that are not categorized?
Implementation
%STARTINCLUDE%<div class="clsSideBar clsBrowser" id="clsSideBarCategoryBrowser" style="display:none">
%HIERARCHY{
web="%BASEWEB%"
open="$percntIF{
\"$percntDISTANCE{
from=\"$name\"
to=\"%URLPARAM{"catname" default="%BASETOPIC%"}%\"
undef=\"-1\"
}$percnt >= 0\"
then=\"$name\"
}$percnt, %TOP{default="TopCategory"}%"
placeholder="<li><span class='placeholder'> </span></li>"
top="%TOP{default="TopCategory"}%"
exclude="%TOP{default="TopCategory"}%"
header="<ul>"
footer="</ul>"
format="<li id=\"$name\" class=\"$percntIF{\"'$subcats'!='0'\" then=\"hasChildren\"}$percnt\">
<a style='background-image:url($icon);' class='clsCategoryLink $percntIF{
\"( $percntISA{
\"%BASETOPIC%\"
cat=\"$name\"
}$percnt = 1
and
$percntDISTANCE{
from=\"$name\"
to=\"%BASETOPIC%\"
undef=\"-1\"
}$percnt = 1
) or $percntDISTANCE{
from=\"$name\"
to=\"%URLPARAM{"catname" default="%BASETOPIC%"}%\"
undef=\"-1\"
}$percnt = 0
\"
then=\"current\"
}$percnt' href=\"$url\" title=\"$percntENCODE{$summary}$percnt\"><noautolink>$title</noautolink>
</a>$children</li>"
}%</div>%JQREQUIRE{"treeview"}%
%ADDTOZONE{"script"
text="<script type='text/javascript' src='%PUBURLPATH%/Applications/ClassificationApp/RenderSideBar/render-sidebar.js'></script>"
id="RENDERSIDEBAR::JS"
requires="JQUERYPLUGIN"
}%%STARTATTACH{"render-sidebar.js" hidecontent="on"}%
"use strict";
jQuery(function ($) {
$("#clsSideBarCategoryBrowser > ul").each(function() {
var $this = $(this);
$this.find("li ul").parent().addClass("open collapsable");
$this.find(".placeholder").parent().parent().parent().removeClass("open collapsable");
$this.find(".hasChildren.open").removeClass("hasChildren");
$this.treeview({
url: "%SCRIPTURL{"rest"}%/RenderPlugin/tag?name=DBCALL;param=Applications.ClassificationApp.RenderHierarchyAsJSON;t=%GMTIME{"$epoch"}%;depth=2;format=sidebar;topic=%BASEWEB%.%BASETOPIC%",
animated: 'fast'
}).parent().show();
$this.find(".open").removeClass("expandable").
find(".open-hitarea.expandable-hitarea").removeClass("expandable-hitarea").addClass("collapsable-hitarea");
});
});
%ENDATTACH%%STOPINCLUDE%
Test
%STARTATTACH{"render-sidebar.js" hidecontent="on"}%
"use strict";
jQuery(function ($) {
$("#clsSideBarCategoryBrowser > ul").each(function() {
var $this = $(this);
$this.find("li ul").parent().addClass("open collapsable");
$this.find(".placeholder").parent().parent().parent().removeClass("open collapsable");
$this.find(".hasChildren.open").removeClass("hasChildren");
$this.treeview({
url: "https://ntlawhandbook.org/foswiki/bin/rest/RenderPlugin/tag?name=DBCALL;param=Applications.ClassificationApp.RenderHierarchyAsJSON;t=1735277170;depth=2;format=sidebar;topic=Applications/ClassificationApp.RenderSideBar",
animated: 'fast'
}).parent().show();
$this.find(".open").removeClass("expandable").
find(".open-hitarea.expandable-hitarea").removeClass("expandable-hitarea").addClass("collapsable-hitarea");
});
});
%ENDATTACH%
Calls to 'RenderSideBar'
Copyright
© 2006-2019 Michael Daum
http://michaeldaumconsulting.com
This file is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version. For
more details read the
LICENSE.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.