Made rubric list collapsible

This commit is contained in:
Georgy Litvinov 2021-03-10 19:58:51 +01:00
parent d878f9c59a
commit a03aca3b66
4 changed files with 43 additions and 28 deletions

View file

@ -5,7 +5,30 @@ function addCollapsibleOnClick() {
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
var collapsibleLink = coll[i].querySelector('.collapsibleLink');
if (collapsibleLink === null){
collapseNextElementOnClick(coll[i]);
} else {
collapseNextOuterElementOnClick(collapsibleLink);
}
}
}
function collapseNextOuterElementOnClick(element){
element.addEventListener("click", function() {
this.classList.toggle("active");
var content = this.parentElement.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
} else {
content.style.display = "block";
}
});
}
function collapseNextElementOnClick(element){
element.addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
@ -15,7 +38,7 @@ function addCollapsibleOnClick() {
}
});
}
}
function applyExpandSettings() {
if (localStorage.getItem('switchExpand') === true || localStorage.getItem('switchExpand') === 'true') {
var expandSwitchCB = document.getElementById("expandCB");

View file

@ -122,8 +122,6 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
</#if>
</#if>
<button type="button" class="collapsible metadataAuthors">Информация об авторах</button>
<div class="metadataAuthors" style="display:block;">
<#assign firstPub = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#firstPublication")!>
<#if firstPub.statements?has_content && firstPub.type == "data">
@ -135,11 +133,8 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
</#if>
<@authors_metadata />
</div>
<button type="button" class="collapsible metadataRubrics">Относится к рубрикам</button>
<div class="metadataRubrics" style="display:block;">
<@documentRubrics />
</div>
<@arrangeDocumentParts />

View file

@ -109,14 +109,9 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<@p.dataPropertyList firstPub editable />
</div>
</#if>
<button type="button" class="collapsible metadataAuthors">Информация об авторах</button>
<div class="metadataAuthors" style="display:block;">
<@authors_metadata />
</div>
<button type="button" class="collapsible metadataRubrics">Относится к рубрикам</button>
<div class="metadataRubrics" style="display:block;">
<@documentRubrics />
</div>
<@arrangeDocumentParts />
<@authors_underline />

View file

@ -2,7 +2,7 @@
<#macro showRubrics>
<#assign currentRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if currentRubrics?? && currentRubrics?has_content>
<div class="label">Относится к рубрикам: <@p.addLink currentRubrics editable /> <@p.verboseDisplay currentRubrics /></div>
<div class="label collapsible">Относится к рубрикам: <@p.addLink currentRubrics editable /> <@p.verboseDisplay currentRubrics /></div>
<#if rubrics?? && rubrics?has_content>
<#list rubrics as rubric>
<li role="listitem" style="list-style:none;">
@ -37,18 +37,20 @@
<#macro documentRubrics >
<#assign docRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if ( docRubrics?? && docRubrics?has_content ) || (rubrics?? && rubrics?has_content)>
<div class="label">Относится к рубрикам:
<div class="label collapsible" ><div class="collapsibleLink" style="display:inline;">Относится к рубрикам:</div>
<#if docRubrics?? && docRubrics?has_content >
<@p.addLink docRubrics editable /> <@p.verboseDisplay docRubrics /><br/>
</#if>
</div>
</#if>
<#if rubrics?? && rubrics?has_content>
<div>
<#list rubrics as rubric>
<li role="listitem" style="list-style:none;">
<a href="${urls.base}/individual?uri=${rubric.rubricID?url}"">${rubric.rubricName}</a>
</li>
</#list>
</div>
</#if>
</#macro>