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,17 +5,40 @@ function addCollapsibleOnClick() {
var coll = document.getElementsByClassName("collapsible"); var coll = document.getElementsByClassName("collapsible");
var i; var i;
for (i = 0; i < coll.length; i++) { for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() { var collapsibleLink = coll[i].querySelector('.collapsibleLink');
this.classList.toggle("active"); if (collapsibleLink === null){
var content = this.nextElementSibling; collapseNextElementOnClick(coll[i]);
if (content.style.display === "block") { } else {
content.style.display = "none"; collapseNextOuterElementOnClick(collapsibleLink);
} else { }
content.style.display = "block";
}
});
} }
} }
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") {
content.style.display = "none";
} else {
content.style.display = "block";
}
});
}
function applyExpandSettings() { function applyExpandSettings() {
if (localStorage.getItem('switchExpand') === true || localStorage.getItem('switchExpand') === 'true') { if (localStorage.getItem('switchExpand') === true || localStorage.getItem('switchExpand') === 'true') {
var expandSwitchCB = document.getElementById("expandCB"); 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>
</#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")!> <#assign firstPub = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#firstPublication")!>
<#if firstPub.statements?has_content && firstPub.type == "data"> <#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> </#if>
<@authors_metadata /> <@authors_metadata />
</div>
<button type="button" class="collapsible metadataRubrics">Относится к рубрикам</button>
<div class="metadataRubrics" style="display:block;">
<@documentRubrics /> <@documentRubrics />
</div>
<@arrangeDocumentParts /> <@arrangeDocumentParts />

View file

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

View file

@ -2,7 +2,7 @@
<#macro showRubrics> <#macro showRubrics>
<#assign currentRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!> <#assign currentRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if currentRubrics?? && currentRubrics?has_content> <#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> <#if rubrics?? && rubrics?has_content>
<#list rubrics as rubric> <#list rubrics as rubric>
<li role="listitem" style="list-style:none;"> <li role="listitem" style="list-style:none;">
@ -37,18 +37,20 @@
<#macro documentRubrics > <#macro documentRubrics >
<#assign docRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!> <#assign docRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if ( docRubrics?? && docRubrics?has_content ) || (rubrics?? && rubrics?has_content)> <#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 > <#if docRubrics?? && docRubrics?has_content >
<@p.addLink docRubrics editable /> <@p.verboseDisplay docRubrics /><br/> <@p.addLink docRubrics editable /> <@p.verboseDisplay docRubrics /><br/>
</#if> </#if>
</div> </div>
</#if> </#if>
<#if rubrics?? && rubrics?has_content> <#if rubrics?? && rubrics?has_content>
<#list rubrics as rubric> <div>
<li role="listitem" style="list-style:none;"> <#list rubrics as rubric>
<a href="${urls.base}/individual?uri=${rubric.rubricID?url}"">${rubric.rubricName}</a> <li role="listitem" style="list-style:none;">
</li> <a href="${urls.base}/individual?uri=${rubric.rubricID?url}"">${rubric.rubricName}</a>
</#list> </li>
</#list>
</div>
</#if> </#if>
</#macro> </#macro>