Compare commits

..

No commits in common. "texts" and "design" have entirely different histories.

70 changed files with 801 additions and 3435 deletions

View file

@ -1,73 +1,46 @@
@prefix : <http://vitro.mannlib.cornell.edu/ns/vitro/ApplicationSetup#> . @prefix : <http://vitro.mannlib.cornell.edu/ns/vitro/ApplicationSetup#> .
@prefix searchIndex: <java:edu.cornell.mannlib.vitro.webapp.searchindex#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:vivodocumentModifier_excerptsInComplexPublications :vivodocumentModifier_excerptsInArticles
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> , a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ; <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
rdfs:label "Populate complex publications with excerpts" ; rdfs:label "Elenph article excerpts" ;
:hasTargetField "ALLTEXT" ; :hasTargetField "ALLTEXT" ;
:hasSelectQuery """ :hasSelectQuery """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?value SELECT DISTINCT ?value
WHERE { WHERE {
?uri ts:hasTOC ?toc . ?uri rdf:type ts_:elenphArticle .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt . ?uri ts_:hasTOC ?toc .
VALUES ?property { ts:works ts:bibliography ts:htmlExcerpt ts:keywords } ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?excerpt ?property ?value . VALUES ?property { ts_:works ts_:bibliography ts_:htmlExcerpt ts_:keywords }
?elenphExcerpt ?property ?value .
} }
""" . """ .
:vivoUriFinder_excerptsInComplexPublications :vivodocumentModifier_PopulateText
a searchIndex:indexing.IndexingUriFinder ,
searchIndex:indexing.SelectQueryUriFinder ;
rdfs:label "When excerpts change" ;
:hasSelectQuery """
PREFIX ts: <https://litvinovg.pro/text_structures#>
SELECT ?uri
WHERE {
?uri ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?subject .
}
""" .
:vivoUriFinder_onRubricsAssign
a searchIndex:indexing.IndexingUriFinder ,
searchIndex:indexing.SelectQueryUriFinder ;
rdfs:label "When rubric was assigned" ;
:hasSelectQuery """
PREFIX ts: <https://litvinovg.pro/text_structures#>
SELECT ?uri
WHERE {
?subject a ts:textExcerpt .
VALUES ?uri { ?subject }
}
""" .
:vivodocumentModifier_PopulateTextWithHTMLContentsOfExcerpts
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> , a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ; <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
rdfs:label "Html text to text field" ; rdfs:label "Html text to text field" ;
:hasTargetField "text" ; :hasTargetField "text" ;
:hasSelectQuery """ :hasSelectQuery """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?htmlExcerpt SELECT DISTINCT ?htmlExcerpt
WHERE { WHERE {
{ {
?uri rdf:type ts:textExcerpt . ?uri rdf:type ts_:textExcerpt .
?uri ts:htmlExcerpt ?htmlExcerpt . ?uri ts_:htmlExcerpt ?htmlExcerpt .
} }
UNION UNION
{ {
?uri rdf:type ts:complexPublication . ?uri rdf:type ts_:publication .
?uri ts:hasTOC ?toc . ?uri ts_:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
?excerpt ts:htmlExcerpt ?htmlExcerpt . ?artExcerpt ts_:htmlExcerpt ?htmlExcerpt .
} }
} }
""" . """ .
@ -79,22 +52,22 @@
:hasTargetField "rubrics" ; :hasTargetField "rubrics" ;
:hasSelectQuery """ :hasSelectQuery """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX pr: <https://iph.ras.ru/relationships#> PREFIX pr: <https://iph.ras.ru/relationships#>
SELECT DISTINCT ?rubric SELECT DISTINCT ?rubric
WHERE { WHERE {
{ {
?uri rdf:type ts:textExcerpt . ?uri rdf:type ts_:elenphExcerpt .
?uri pr:belongsTo ?assignedRubric . ?uri pr:belongsTo ?assignedRubric .
?assignedRubric (pr:hasParent)* ?rubric . ?assignedRubric (pr:hasParent)* ?rubric .
} }
UNION UNION
{ {
?uri rdf:type ts:complexPublication . ?uri rdf:type ts_:elenphArticle .
?uri ts:hasTOC ?toc . ?uri ts_:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
?excerpt pr:belongsTo ?assignedRubric . ?artExcerpt pr:belongsTo ?assignedRubric .
?assignedRubric (pr:hasParent)* ?rubric . ?assignedRubric (pr:hasParent)* ?rubric .
} }
} }
@ -122,20 +95,20 @@
:hasTargetField "keywords" ; :hasTargetField "keywords" ;
:hasSelectQuery """ :hasSelectQuery """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?keywords SELECT DISTINCT ?keywords
WHERE { WHERE {
{ {
?uri rdf:type ts:elenphArticle . ?uri rdf:type ts_:elenphArticle .
?uri ts:hasTOC ?toc . ?uri ts_:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts:keywords ?keywords . ?elenphExcerpt ts_:keywords ?keywords .
} }
UNION UNION
{ {
?uri rdf:type ts:elenphExcerpt . ?uri rdf:type ts_:elenphExcerpt .
?uri ts:keywords ?keywords . ?uri ts_:keywords ?keywords .
} }
} }
""" . """ .
@ -147,20 +120,20 @@
:hasTargetField "bibliography" ; :hasTargetField "bibliography" ;
:hasSelectQuery """ :hasSelectQuery """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?bibliography SELECT DISTINCT ?bibliography
WHERE { WHERE {
{ {
?uri rdf:type ts:elenphArticle . ?uri rdf:type ts_:elenphArticle .
?uri ts:hasTOC ?toc . ?uri ts_:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts:bibliography ?bibliography . ?elenphExcerpt ts_:bibliography ?bibliography .
} }
UNION UNION
{ {
?uri rdf:type ts:elenphExcerpt . ?uri rdf:type ts_:elenphExcerpt .
?uri ts:bibliography ?bibliography . ?uri ts_:bibliography ?bibliography .
} }
} }
""" . """ .

View file

@ -42,11 +42,11 @@ display:getCompilationExcerptPathsDataGetter
display:saveToVar "paths"; display:saveToVar "paths";
display:query display:query
""" """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ts_: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) ?tocElement ?elenphExcerpt
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem . ?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
?tmpTOCItem rdf:type ts_:TOCItem . ?tmpTOCItem rdf:type ts_:TOCItem .
@ -56,10 +56,10 @@ display:getCompilationExcerptPathsDataGetter
?tocElement ts_:hasText ?elenphExcerpt . ?tocElement ts_:hasText ?elenphExcerpt .
} }
{ {
SELECT ?tocElement SELECT ?tocElement
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement . ?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
?tocElement rdf:type ts_:TOCLevel . ?tocElement rdf:type ts_:TOCLevel .
} }
} }
@ -74,11 +74,11 @@ display:getCompilationBibliographyDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?bibliography ?excerpt SELECT DISTINCT ?bibliography ?elenphExcerpt
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?excerpt ts_:bibliography ?bibliography . ?elenphExcerpt ts_:bibliography ?bibliography .
} ORDER BY ?bibliography } ORDER BY ?bibliography
""" . """ .
@ -90,11 +90,11 @@ display:getCompilationWorksDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?works ?excerpt SELECT DISTINCT ?works ?elenphExcerpt
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?excerpt ts_:works ?works . ?elenphExcerpt ts_:works ?works .
} ORDER BY ?works } ORDER BY ?works
""" . """ .

View file

@ -14,10 +14,8 @@
""" . """ .
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDeleteQuery """ <https://litvinovg.pro/text_structures#elenphArticle> display:hasDeleteQuery """
PREFIX ts: <https://litvinovg.pro/text_structures#> PREFIX ts: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> DESCRIBE ?individualURI ?tocElement ?tocItem ?toc ?excerpt
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc ?excerpt ?author ?organization
WHERE { WHERE {
?individualURI rdf:type ts:elenphArticle .
OPTIONAL { OPTIONAL {
?individualURI ts:hasTOC ?toc . ?individualURI ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement . ?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
@ -25,13 +23,7 @@
?tocElement ts:hasTOCItem ?tocItem . ?tocElement ts:hasTOCItem ?tocItem .
} }
OPTIONAL { OPTIONAL {
?tocElement ts:hasText ?excerpt . ?tocElement ts_:hasText ?excerpt .
OPTIONAL {
?excerpt ts:hasAuthor ?author .
OPTIONAL {
?author ts:affiliatedWith ?organization .
}
}
} }
} }
} }
@ -43,6 +35,6 @@
WHERE WHERE
{ {
?tocElement ts:hasText ?individualURI . ?tocElement ts:hasText ?individualURI .
FILTER NOT EXISTS {?tocElement ts:hasTOCItem ?tocItem } NOT EXISTS {?tocElement ts:hasTOCItem ?tocItem }
} }
""" . """ .

View file

@ -42,11 +42,11 @@ display:getArticleExcerptPathsDataGetter
display:saveToVar "paths"; display:saveToVar "paths";
display:query display:query
""" """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ts_: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) ?tocElement ?elenphExcerpt
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem . ?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
?tmpTOCItem rdf:type ts_:TOCItem . ?tmpTOCItem rdf:type ts_:TOCItem .
@ -56,11 +56,12 @@ display:getArticleExcerptPathsDataGetter
?tocElement ts_:hasText ?elenphExcerpt . ?tocElement ts_:hasText ?elenphExcerpt .
} }
{ {
SELECT ?elenphArticle ?tocElement SELECT ?elenphArticle ?tocElement
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement . ?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
?tocElement rdf:type ts_:TOCLevel . ?tocElement rdf:type ts_:TOCLevel .
?individualURI rdf:type ts_:elenphArticle .
} }
} }
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path } GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
@ -74,11 +75,11 @@ display:getArticleBibliographyDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?bibliography ?excerpt SELECT DISTINCT ?bibliography ?elenphExcerpt
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?excerpt ts_:bibliography ?bibliography . ?elenphExcerpt ts_:bibliography ?bibliography .
} ORDER BY ?bibliography } ORDER BY ?bibliography
""" . """ .
@ -90,11 +91,11 @@ display:getArticleWorksDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#> PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?works ?excerpt SELECT DISTINCT ?works ?elenphExcerpt
WHERE { WHERE {
?individualURI ts_:hasTOC ?toc . ?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt . ?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?excerpt ts_:works ?works . ?elenphExcerpt ts_:works ?works .
} ORDER BY ?works } ORDER BY ?works
""" . """ .

View file

@ -1,27 +0,0 @@
@prefix ts_: <https://litvinovg.pro/text_structures#> .
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
@prefix mydomain: <http://vivo.mydomain.edu/individual/> .
ts_:elenphExcerpt display:hasCustomView mydomain:elenphExcerptShortView .
mydomain:elenphExcerptShortView
a display:customViewForIndividual ;
display:appliesToContext "SEARCH" ;
display:hasTemplate "elenphExcerptShortView.ftl" ;
display:hasDataGetter mydomain:elenphExcerptShortViewDataGetter .
mydomain:elenphExcerptShortViewDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "excerptInfo";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX vivo: <http://vivoweb.org/ontology/core#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT ?property ?value
WHERE {
?individualUri ?property ?value .
?individualUri rdf:type ts_:elenphExcerpt .
}
""" .

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -22,3 +22,4 @@ Disallow: /vis/ # VIVO addition
Disallow: /visualizationAjax/ # VIVO addition Disallow: /visualizationAjax/ # VIVO addition
Disallow: /visualizationData/ # VIVO addition Disallow: /visualizationData/ # VIVO addition
Disallow: /qrcode # VIVO addition Disallow: /qrcode # VIVO addition
Disallow: /individual # VIVO addition

View file

@ -1,49 +0,0 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#-- Template for browsing individuals in class groups for menupages -->
<#import "lib-string.ftl" as str>
<noscript>
<p style="padding: 20px 20px 20px 20px;background-color:#f8ffb7">${i18n().browse_page_javascript_one} <a href="${urls.base}/browse" title="${i18n().index_page}">${i18n().index_page}</a> ${i18n().browse_page_javascript_two}</p>
</noscript>
<section id="noJavascriptContainer" class="hidden">
<section id="browse-by" role="region">
<nav role="navigation">
<ul id="browse-classes">
<#list vClassGroup?sort_by("displayRank") as vClass>
<#------------------------------------------------------------
Need to replace vClassCamel with full URL that allows function
to degrade gracefully in absence of JavaScript. Something
similar to what Brian had setup with widget-browse.ftl
------------------------------------------------------------->
<#assign vClassCamel = str.camelCase(vClass.name) />
<#-- Only display vClasses with individuals -->
<#if (vClass.entityCount > 0)>
<li id="${vClassCamel}"><a href="#${vClassCamel}" title="${i18n().browse_all_in_class}" data-uri="${vClass.URI}">${vClass.name} <span class="count-classes">(${vClass.entityCount})</span></a></li>
</#if>
</#list>
</ul>
<nav id="alpha-browse-container" role="navigation">
<h3 class="selected-class"></h3>
<#assign alphabet = ["А", "Б", "В", "Г", "Д", "Е", "Ё" "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Э", "Ю", "Я" ] />
<ul id="alpha-browse-individuals">
<li><a href="#" class="selected" data-alpha="all" title="${i18n().select_all}">${i18n().all}</a></li>
<#list alphabet as letter>
<li><a href="#" data-alpha="${letter?lower_case}" title="${i18n().browse_all_starts_with(letter)}">${letter}</a></li>
</#list>
</ul>
</nav>
</nav>
<section id="individuals-in-class" role="region">
<ul role="list">
<#-- Will be populated dynamically via AJAX request -->
</ul>
</section>
</section>
</section>
<script type="text/javascript">
$('section#noJavascriptContainer').removeClass('hidden');
</script>

View file

@ -4,10 +4,8 @@
<#import "lib-vivo-properties.ftl" as p> <#import "lib-vivo-properties.ftl" as p>
<div class="searchResult">
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a> <a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
<@p.displayTitle individual /> <@p.displayTitle individual />
<p class="snippet">${individual.snippet}</p> <p class="snippet">${individual.snippet}</p>
</div>

View file

@ -1,16 +0,0 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#-- Template for displaying search error message -->
<#if title??>
<div class="errorPageTitle">
<h2>${title?html}</h2>
</div>
</#if>
<div id="nomatchingTitle">
<p>
${message?html}
</p>
</div>
<#include "searchSelector.ftl">
<#include "search-help.ftl" >

View file

@ -1,49 +0,0 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#if origination?has_content && origination == "helpLink">
<div id="searchTipsTitleH2">
<h2>Search Tips</h2>
</div>
<span id="searchHelp">
<a href="#" onClick="history.back();return false;" title="back to results">Back to results</a>
</span>
<#else>
<div id="searchTipsTitleH3">
<h3>Search Tips</h3>
</div>
</#if>
<ul class="searchTips">
<li>Keep it simple! Use short, single terms unless your searches are returning too many results.</li>
<li>Use quotes to search for an entire phrase -- e.g., "<i>protein folding</i>".</li>
<li>Except for boolean operators, searches are <strong>not</strong> case-sensitive, so "Geneva" and "geneva" are equivalent</li>
<li>If you are unsure of the correct spelling, put ~ at the end of your search term -- e.g., <i>cabage~</i> finds <i>cabbage</i>, <i>steven~</i> finds <i>Stephen</i> and <i>Stefan</i> (as well as other similar names).</li>
</ul>
<div id="advancedTipsWrapper">
<h4><a id="advTipsLink" href="#">Advanced Tips</a></h4>
</div>
<ul id="advanced" class="searchTips" style="visibility:hidden">
<li>When you enter more than one term, search will return results containing all of them unless you add the Boolean "OR" -- e.g., <i>chicken</i> OR <i>egg</i>.</li>
<li>NOT" can help limit searches -- e.g., <i>climate</i> NOT <i>change</i>.</li>
<li>Phrase searches may be combined with Boolean operators -- e.g. "<i>climate change</i>" OR "<i>global warming</i>".</li>
<li>Close word variations will also be found -- e.g., <i>sequence</i> matches <i>sequences</i> and <i>sequencing</i>.</li>
<li>Use the wildcard * character to match an even wider variation -- e.g., <i>nano*</i> will match both <i>nanotechnology</i> and <i>nanofabrication</i>.</li>
<li>Search uses shortened versions of words -- e.g., a search for <i>cogniti*</i> finds nothing, while <i>cognit*</i> finds both <i>cognitive</i> and <i>cognition</i>.</li>
</ul>
<a id="closeLink" href="#" style="visibility:hidden;font-size:.825em;padding-left:8px">Close</a>
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/css/search.css" />')}
<script type="text/javascript">
$(document).ready(function(){
$('a#advTipsLink').click(function() {
$('ul#advanced').css("visibility","visible");
$('a#closeLink').css("visibility","visible");
$('a#closeLink').click(function() {
$('ul#advanced').css("visibility","hidden");
$('a#closeLink').css("visibility","hidden");
return false;
});
return false;
});
});
</script>

View file

@ -1,252 +0,0 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#-- Template for displaying paged search results -->
<h2 class="searchResultsHeader">
<#include "searchSelector.ftl">
<#escape x as x?html>
<div id='searchQueryResults'> ${i18n().search_results_for} '${querytext}'</div>
<div id='limitedToClassGroup'> <#if classGroupName?has_content>${i18n().limited_to_type} '${classGroupName}'</#if> </div>
<div id='limitedToType'> <#if typeName?has_content>${i18n().limited_to_type} '${typeName}'</#if> </div>
</#escape>
<script type="text/javascript">
var url = window.location.toString();
if (url.indexOf("?") == -1){
var queryText = 'querytext=${querytext}';
} else {
var urlArray = url.split("?");
var queryText = urlArray[1];
}
var urlsBase = '${urls.base}';
</script>
<img id="downloadIcon" src="images/download-icon.png" alt="${i18n().download_results}" title="${i18n().download_results}" />
<#-- <span id="downloadResults" style="float:left"></span> -->
</h2>
<span id="searchHelp"><a href="${urls.base}/searchHelp" title="${i18n().search_help}">${i18n().not_expected_results}</a></span>
<div class="contentsBrowseGroup">
<#-- Refinement links -->
<#if classGroupLinks?has_content && classGroupLinks?size gt 1>
<div class="searchTOC">
<h4>${i18n().display_only}</h4>
<ul>
<#list classGroupLinks as link>
<li><a href="${link.url}" title="${i18n().class_group_link}">${link.text}</a><span>(${link.count})</span></li>
</#list>
</ul>
</div>
</#if>
<#if classLinks?has_content && classLinks?size gt 1 >
<div class="searchTOC">
<#if classGroupName?has_content>
<h4>${i18n().limit} ${classGroupName} ${i18n().to}</h4>
<#else>
<h4>${i18n().limit_to}</h4>
</#if>
<ul>
<#list classLinks as link>
<li><a href="${link.url}" title="${i18n().class_link}">${link.text}</a><span>(${link.count})</span></li>
</#list>
</ul>
</div>
</#if>
<div class="virtualArticleSwitch">
<label class="switch">${i18n().show_virtual_article}
<input id="virtualArticleCheck" type="checkbox" checked="false" onclick="showVirtualArticles();">
</label>
<#if user.loggedIn>
<button onclick="createNewCompilation()">${i18n().create_compilation_button}</button>
</#if>
</div>
<#-- Search results -->
<ul class="searchhits">
<#list individuals as individual>
<li>
<@shortView uri=individual.uri viewContext="search" />
</li>
</#list>
</ul>
<#-- Paging controls -->
<#if (pagingLinks?size > 0)>
<div class="searchpages">
${i18n().pages}:
<#if prevPage??><a class="prev" href="${prevPage}" title="${i18n().previous}">${i18n().previous}</a></#if>
<#list pagingLinks as link>
<#if link.url??>
<a href="${link.url}" title="${i18n().page_link}">${link.text}</a>
<#else>
<span>${link.text}</span> <#-- no link if current page -->
</#if>
</#list>
<#if nextPage??><a class="next" href="${nextPage}" title="${i18n().next_capitalized}">${i18n().next_capitalized}</a></#if>
</div>
</#if>
<br />
<#-- VIVO OpenSocial Extension by UCSF -->
<#if openSocial??>
<#if openSocial.visible>
<h3>OpenSocial</h3>
<script type="text/javascript" language="javascript">
// find the 'Search' gadget(s).
var searchGadgets = my.findGadgetsAttachingTo("gadgets-search");
var keyword = '${querytext}';
// add params to these gadgets
if (keyword) {
for (var i = 0; i < searchGadgets.length; i++) {
var searchGadget = searchGadgets[i];
searchGadget.additionalParams = searchGadget.additionalParams || {};
searchGadget.additionalParams["keyword"] = keyword;
}
}
else { // remove these gadgets
my.removeGadgets(searchGadgets);
}
</script>
<div id="gadgets-search" class="gadgets-gadget-parent" style="display:inline-block"></div>
</#if>
</#if>
</div> <!-- end contentsBrowseGroup -->
<script>
document.addEventListener('DOMContentLoaded', createVirtualCompilation(), false);
$('input[type=checkbox]').removeAttr('checked');
function showVirtualArticles(){
var checkBox = document.getElementById("virtualArticleCheck");
if (checkBox.checked == true){
$('.searchResult').hide();
$('.virtualArticlePart').show();
} else {
$('.searchResult').show();
$('.virtualArticlePart').hide();
}
}
function createNewCompilation() {
var excerpts = $('.compilationDraftExcerpt').toArray();
if (excerpts.length == 0){
alert("${i18n().create_compilation_no_excerpts}");
return;
}
var compilationName = window.prompt("${i18n().create_compilation_enter_name_notification}");
if (!compilationName){
alert("${i18n().create_compilation_no_name_entered_error}");
return;
}
var iframe = document.createElement("iframe");
var excerptsCounter = $('.compilationDraftExcerpt').length;
iframe.setAttribute("src", "${urls.base}/editRequestDispatch?typeOfNew=https%3A%2F%2Flitvinovg.pro%2Ftext_structures%23compilation&editForm=edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.CompilationGenerator&excerptsCount=" + excerptsCounter);
iframe.style.width = "1px";
iframe.style.height = "1px";
iframe.id="newCompilationIframe";
//iframe.style.display="none";
document.body.appendChild(iframe);
$('#newCompilationIframe').on('load', function(){
fillOutForm(compilationName);
});
}
function fillOutForm(compilationName){
var iframeDoc = document.getElementById('newCompilationIframe').contentWindow.document;
var rules = $('#builder').queryBuilder('getRules', { get_flags: true });
var query = format_query_string(rules, "", false);
iframeDoc.getElementById('queryBuilderRules').value = JSON.stringify(rules);
iframeDoc.getElementById('rawQueryString').value = query;
iframeDoc.getElementById('newCompilationLabel').value = compilationName;
var excerpts = $('.compilationDraftExcerpt').toArray();
for (i = 0;i < excerpts.length;i++){
var excerptUri = excerpts[i].getAttribute('partUri');
var excerptName = excerpts[i].getAttribute('partName');
var number = i + 1;
iframeDoc.getElementById("tocLevel" + number + "Name").value = excerptName + " (" + compilationName + ")";
iframeDoc.getElementById("tocItem" + number + "Name").value = excerptName + " (" + compilationName + ")";
iframeDoc.getElementById("excerpt" + number).value = excerptUri;
}
$('#newCompilationIframe').off('load');
iframeDoc.getElementById('submit').click();
$('#newCompilationIframe').on('load', function(){
redirectToNewCompilation();
});
}
function redirectToNewCompilation(){
var newURL = document.getElementById('newCompilationIframe').contentWindow.location.href;
window.open(newURL,"_self");
}
function createVirtualCompilation(){
let workSet = new Set();
let biblioSet = new Set();
var workDivs = $('.virtualArticleWork');
var biblioDivs = $('.virtualArticleBibliography');
biblioDivs.each(function() {
biblioSet.add($(this).html());
});
workDivs.each(function() {
workSet.add($(this).html());
});
var workArr = Array.from(workSet);
workArr.sort();
var biblioArr = Array.from(biblioSet);
biblioArr.sort();
if (workArr.length > 0 ) {
$('<div class="virtualWorks virtualArticlePart"><button type="button" style="border:none;width: 100%; text-align:left;" class="collapsible">${i18n().sources_excerpt_button_text}</button><div class="virtualWorks"></div></div>').insertAfter($('.virtualArticlePart').last());
for (let value of workArr){
$('.virtualWorks').last().append( '<div class="work"><p>' + value + '</p></div>' );
}
}
if (biblioArr.length > 0 ) {
$('<div class="virtualBibliography virtualArticlePart"><button type="button" style="border:none;width: 100%; text-align:left;" class="collapsible">${i18n().literature_excerpt_button_text}</button><div class="virtualBibliography"></div></div>').insertAfter($('.virtualArticlePart').last());
for (let value of biblioArr){
$('.virtualBibliography').last().append( '<div class="bibliography"><p>' + value + '</p></div>' );
}
}
$('.virtualWorks').hide();
$('.virtualBibliography').hide();
$('.virtualArticlePart').hide();
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].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";
}
});
}
createRemoveButtons();
}
</script>
${stylesheets.add('<link rel="stylesheet" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />',
'<link rel="stylesheet" href="${urls.base}/css/search.css" />',
'<link rel="stylesheet" type="text/css" href="${urls.base}/css/jquery_plugins/qtip/jquery.qtip.min.css" />')}
${headScripts.add('<script src="//code.jquery.com/ui/1.10.3/jquery-ui.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/qtip/jquery.qtip.min.js"></script>',
'<script type="text/javascript" src="${urls.base}/js/tiny_mce/tiny_mce.js"></script>'
)}
${scripts.add('<script type="text/javascript" src="${urls.base}/js/searchDownload.js"></script>')}

View file

@ -8,8 +8,6 @@
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')} ${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')} ${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')} ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/toc.js"></script>')}
<#import "individual-qrCodeGenerator.ftl" as qr> <#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp> <#import "lib-vivo-properties.ftl" as vp>
<#include "text-lib.ftl"> <#include "text-lib.ftl">
@ -34,8 +32,6 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;"> <section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
<#include "individual-adminPanel.ftl"> <#include "individual-adminPanel.ftl">
<header> <header>
<div id="articleHeaderWrapper">
<div id="articleTitleWrapper">
<#if relatedSubject??> <#if relatedSubject??>
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2> <h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p> <p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p>
@ -43,9 +39,7 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>> <h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
<#-- Label --> <#-- Label -->
<@p.label individual editable labelCount localesCount/> <@p.label individual editable labelCount localesCount/>
<#if editable> <@p.deleteIndividualLink individual />
<@p.deleteIndividualLink individual />
</#if>
</h1> </h1>
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes --> <#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!> <#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
@ -70,32 +64,19 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<@p.mostSpecificTypesPerson individual editable/> <@p.mostSpecificTypesPerson individual editable/>
</#if> </#if>
</#if> </#if>
</div> <span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<div class="articleToolsContainer"> <#include "individual-iconControls.ftl">
<div class="metadataSwitch"> </span>
<@expandMetadataSwitch /> <#if editable && profilePageTypesEnabled >
</div> <#include "individual-profilePageTypes.ftl">
<div class="toolsWrapper"> </#if>
<div class="articleButtons">
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess></#if>>
<#include "individual-iconControls-iph.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
<@userSettingsModal />
<button id="print"><img onclick="javascript:printPageContent();" src="${urls.base}/themes/iph/images/print.svg"></button>
</div>
<@expandSwitch />
</div>
</div>
</header> </header>
<!-- Positions --> <!-- Positions -->
<#include "individual-positions.ftl"> <#include "individual-positions.ftl">
<!-- Overview --> <!-- Overview -->
<#if !editable> <#if !editable>
<p></p>
</#if> </#if>
<#include "individual-overview.ftl"> <#include "individual-overview.ftl">
@ -126,37 +107,149 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<#list rawQuery.statements as statement> <#list rawQuery.statements as statement>
<#assign rawQueryString = statement.value!> <#assign rawQueryString = statement.value!>
</#list> </#list>
<#if queryBuilderRulesString?? && rawQueryString??> <form action="${urls.base}/customsearch" method="post">
<form action="${urls.base}/customsearch" method="post"> <input type="hidden" id="queryBuilderRules" name="queryBuilderRules" value='${queryBuilderRulesString}' />
<input type="hidden" id="queryBuilderRules" name="queryBuilderRules" value='${queryBuilderRulesString}' /> <input type="hidden" id="querytext" name="querytext" value='${rawQueryString}' />
<input type="hidden" id="querytext" name="querytext" value='${rawQueryString}' /> <input type="submit" id="submit" value="Поисковый запрос"/>
<input type="submit" id="submit" value="${i18n().metadata_query}"/> </form>
</form>
</#if>
</#if> </#if>
<div class="metaDataName collapsible collapsed">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div>
</div> <div class="expandSwitch">
<div class="autoMetadataExpand" style="display:none;"> <label class="switch">Раскрыть статью
<input id="expandlCB" type="checkbox" onclick="switchExpand();">
</label>
</div>
<div id="TOC"></div>
<#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">
<div class="firstPub" style="list-style:none;"> <div class="firstPub" style="list-style:none;">
<div class="label">${i18n().metadata_firstPublication} <div class="label">Первая публикация статьи
</div> </div>
<@p.dataPropertyList firstPub editable /> <@p.dataPropertyList firstPub editable />
</div> </div>
</#if> </#if>
<@authors_metadata /> <#if authors??>
<#list authors as author>
<div class="affiliations" >
<b><#if author.authorFamily??>${author.authorFamily}&nbsp;</#if><#if author.authorGivenName??>${author.authorGivenName}</#if></b>
<#if author.orgName??>
<br><span style="color:rgba(0,0,0,0.54);">${author.orgName}</span>
</#if>
<#if author.orgAddress??>
<br>
<span style="color:rgba(0,0,0,0.54);">Адрес организации: <#if author.orgPostalCode??>${author.orgPostalCode},&nbsp;</#if>${author.orgAddress}&nbsp;</span>
</#if>
<@documentRubrics /> </div>
</#list>
</#if>
<@showRubrics />
<div class="articleParts" style="display:block;">
<#list paths as order>
<#-- ${order.path} -->
<#list excerpts as excerptProperties>
<#if order.elenphExcerpt?has_content && excerptProperties.elenphExcerpt == order.elenphExcerpt>
<#assign excerptText = excerptProperties.htmlContent >
<#assign excerptTextName = excerptProperties.htmlLabel >
<#assign worksCounter = excerptProperties.worksCounter >
<#assign bibliographyCounter = excerptProperties.bibliographyCounter >
</#if>
</#list>
<div class = "articleExcerpt">
<#if excerptText?? && excerptTextName?? && excerptTextName?has_content && excerptText?has_content>
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${excerptTextName}</button>
<div class="htmlExcerpt" style="list-style:none; display:none;">
${excerptText}
<#if works?? && works?has_content && worksCounter?number &gt; 0 >
<div>
<button type="button" class="collapsible" style="background-color:white;border:none;padding: 18px;width: 100%;text-align:left;">Работы</button>
<div class="works" style="display:none;">
<#list works as work>
<#if work.elenphExcerpt == order.elenphExcerpt >
<div class="work" style="list-style:none;">
<p> ${work.works} </p>
</div>
</#if>
</#list>
</div>
</div>
</#if>
<#if bibliography?? && bibliography?has_content && bibliographyCounter?number &gt; 0>
<div>
<button type="button" class="collapsible" style="background-color:white;border:none;padding: 18px;width: 100%; text-align: left;">Литература</button>
<div class="bibliography" style="display:none;">
<#list bibliography as one_bibliography>
<#if one_bibliography.elenphExcerpt == order.elenphExcerpt >
<div class="bibliography_entry" style="list-style:none;">
<p> ${one_bibliography.bibliography} </p>
</div>
</#if>
</#list>
</div>
</div>
</#if>
</div>
</#if>
</div> <#-- articleExcerpt -->
</#list>
<#if works?? && works?has_content>
<div>
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Работы</button>
<div class="works" style="display:none;">
<#list works as work>
<div class="work" style="list-style:none;">
<p> ${work.works} </p>
</div>
</#list>
</div>
</div>
</#if>
<#if bibliography?? && bibliography?has_content>
<div>
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%; text-align: left;">Литература</button>
<div class="bibliography" style="display:none;">
<#list bibliography as one_bibliography>
<div class="bibliography_entry" style="list-style:none;">
<p> ${one_bibliography.bibliography} </p>
</div>
</#list>
</div>
</div>
</#if>
</div> </div>
<@arrangeDocumentParts /> <#if authors??>
<#list authors as author>
<div class="authors" style="display:block;float:right; margin:15px;">
<#if author.authorFamily??>${author.authorFamily}</#if>&nbsp;<#if author.authorInitials??>${author.authorInitials}</#if>
</div>
</#list>
</#if>
<@authors_underline /> <script>
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].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";
}
});
}
</script>
<#-- <@dumpAll /> --> <#-- <@dumpAll /> -->
<#assign selectedTemplate = "individual--foaf-person-2column.ftl" > <#assign selectedTemplate = "individual--foaf-person-2column.ftl" >
@ -184,6 +277,24 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
</span> </span>
</#if> </#if>
<script>
console.log(localStorage.getItem('switchExpand'));
if (localStorage.getItem('switchExpand') === true || localStorage.getItem('switchExpand') === 'true') {
console.log("show html excerpts");
$('.htmlExcerpt').show();
}
function switchExpand(){
var checkBox = document.getElementById("expandlCB");
if (checkBox.checked == true){
$('.htmlExcerpt').show();
localStorage.setItem('switchExpand',true);
} else {
$('.htmlExcerpt').hide();
localStorage.setItem('switchExpand',false);
}
}
</script>
<#if !editable> <#if !editable>
<script> <script>
var title = $('div#titleContainer').width(); var title = $('div#titleContainer').width();

View file

@ -8,12 +8,8 @@
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')} ${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')} ${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')} ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/toc.js"></script>')}
<#import "individual-qrCodeGenerator.ftl" as qr> <#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp> <#import "lib-vivo-properties.ftl" as vp>
<#include "text-lib.ftl">
<#--Number of labels present--> <#--Number of labels present-->
<#if !labelCount??> <#if !labelCount??>
<#assign labelCount = 0 > <#assign labelCount = 0 >
@ -34,18 +30,13 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;"> <section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
<#include "individual-adminPanel.ftl"> <#include "individual-adminPanel.ftl">
<header> <header>
<div id="articleHeaderWrapper">
<div id="articleTitleWrapper">
<#if relatedSubject??> <#if relatedSubject??>
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2> <h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p> <p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p>
<#else> <#else>
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="border-right:1px solid #A6B1B0;"</#if>> <h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
<#-- Label --> <#-- Label -->
<@p.label individual editable labelCount localesCount/> <@p.label individual editable labelCount localesCount/>
<#if editable>
<@p.deleteIndividualLink individual />
</#if>
</h1> </h1>
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes --> <#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!> <#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
@ -70,33 +61,19 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<@p.mostSpecificTypesPerson individual editable/> <@p.mostSpecificTypesPerson individual editable/>
</#if> </#if>
</#if> </#if>
</div> <span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<div class="articleToolsContainer"> <#include "individual-iconControls.ftl">
<div class="metadataSwitch"> </span>
<@expandMetadataSwitch /> <#if editable && profilePageTypesEnabled >
</div> <#include "individual-profilePageTypes.ftl">
<div class="toolsWrapper"> </#if>
<div class="articleButtons">
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess></#if>>
<#include "individual-iconControls-iph.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
<@userSettingsModal />
<button id="print"><img onclick="javascript:printPageContent();" src="${urls.base}/themes/iph/images/print.svg"></button>
</div>
<@expandSwitch />
</div>
</div>
</header> </header>
<!-- Positions --> <!-- Positions -->
<#include "individual-positions.ftl"> <#include "individual-positions.ftl">
<!-- Overview --> <!-- Overview -->
<#if !editable> <#if !editable>
<p></p>
</#if> </#if>
<#include "individual-overview.ftl"> <#include "individual-overview.ftl">
@ -116,26 +93,165 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!> <#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!> <#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
</#if> </#if>
<div class="metaDataName collapsible collapsed"> <div class="expandSwitch">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div> <label class="switch">Раскрыть статью
</div> <input id="expandlCB" type="checkbox" onclick="switchExpand();">
<div class="autoMetadataExpand" style="display:none;"> </label>
<#assign firstPub = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#firstPublication")!>
<#if firstPub.statements?has_content && firstPub.type == "data">
<div class="firstPub" style="list-style:none;">
<div class="label">${i18n().metadata_firstPublication}
</div>
<@p.dataPropertyList firstPub editable />
</div>
</#if>
<@authors_metadata />
<@documentRubrics />
</div> </div>
<@arrangeDocumentParts /> <#assign firstPub = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#firstPublication")!>
<#if firstPub.statements?has_content && firstPub.type == "data">
<div class="firstPub" style="list-style:none;">
<div class="label">Первая публикация статьи
</div>
<@p.dataPropertyList firstPub editable />
</div>
</#if>
<@authors_underline /> <#--
<#assign issue = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#issue")!>
<#if issue.statements?has_content && issue.type == "data">
<div class="issue" style="list-style:none;">
<div class="label">Выпуск</div>
<@p.dataPropertyList issue editable />
</div>
</#if>
<#assign selectedTemplate = "individual--foaf-person-2column.ftl" > <#assign year = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#year")!>
<#if year.statements?has_content && year.type == "data">
<div class="year" style="list-style:none;">
<div class="label">Год</div>
<@p.dataPropertyList year editable />
</div>
</#if>
-->
<#if authors??>
<#list authors as author>
<div class="affiliations" >
<b><#if author.authorFamily??>${author.authorFamily}&nbsp;</#if><#if author.authorGivenName??>${author.authorGivenName}</#if></b>
<#if author.orgName??>
<br><span style="color:rgba(0,0,0,0.54);">${author.orgName}</span>
</#if>
<#if author.orgAddress??>
<br>
<span style="color:rgba(0,0,0,0.54);">Адрес организации: <#if author.orgPostalCode??>${author.orgPostalCode},&nbsp;</#if>${author.orgAddress}&nbsp;</span>
</#if>
</div>
</#list>
</#if>
<#assign articleRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if articleRubrics?? && articleRubrics?has_content>
<div class="label">Относится к рубрикам: <@p.addLink articleRubrics editable /> <@p.verboseDisplay articleRubrics /></div>
<#if rubrics?? && rubrics?has_content>
<#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>
</#if>
<br/>
</#if>
<div class="articleParts" style="display:block;">
<#list paths as order>
<div class = "articleExcerpt">
<#-- ${order.path} -->
<#list excerpts as excerptProperties>
<#if order.elenphExcerpt?has_content && excerptProperties.elenphExcerpt == order.elenphExcerpt>
<#assign excerptText = excerptProperties.htmlContent >
<#assign excerptTextName = excerptProperties.htmlLabel >
<#assign worksCounter = excerptProperties.worksCounter >
<#assign bibliographyCounter = excerptProperties.bibliographyCounter >
</#if>
</#list>
<#if excerptText?? && excerptTextName?? && excerptTextName?has_content && excerptText?has_content>
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${excerptTextName}</button>
<div class="htmlExcerpt" style="list-style:none; display:none;">
${excerptText}
<#if works?? && works?has_content && worksCounter?number &gt; 0 >
<button type="button" class="collapsible" style="background-color:white;border:none;padding: 18px;width: 100%;text-align:left; background-image: url(${urls.base}/themes/iph/images/book_icon.png); background-repeat: no-repeat; background-position: left center;">Работы</button>
<div class="works" style="display:none;">
<#list works as work>
<#if work.elenphExcerpt == order.elenphExcerpt >
<div class="work" style="display:list-item;list-style-image:url(${urls.base}/themes/iph/images/bullet_icon.png); font-style: italic; font-family: PT Serif;">
<p> ${work.works} </p>
</div>
</#if>
</#list>
</div>
</#if>
<#if bibliography?? && bibliography?has_content && bibliographyCounter?number &gt; 0>
<button type="button" class="collapsible" style="background-color:white;border:none;padding: 18px;width: 100%; text-align: left; background-image: url(${urls.base}/themes/iph/images/book_icon.png); background-repeat: no-repeat; background-position: left center;">Литература</button>
<div class="bibliography" style="display:none;">
<#list bibliography as one_bibliography>
<#if one_bibliography.elenphExcerpt == order.elenphExcerpt >
<div class="bibliography_entry" style="display:list-item;list-style-image:url(${urls.base}/themes/iph/images/bullet_icon.png); font-style: italic; font-family: PT Serif;">
<p> ${one_bibliography.bibliography} </p>
</div>
</#if>
</#list>
</div>
</#if>
</div>
</#if>
</div> <#-- articleExcerpt -->
</#list>
</div>
<#if works?? && works?has_content>
<button type="button" class="collapsible" style="border: none; color: #8B4513; padding: 18px;width: 100%;text-align:left; background-color: #ffffff; background-image: url(${urls.base}/themes/iph/images/book_icon.png); background-repeat: no-repeat; background-position: left center;">Работы</button>
<div class="works" style="display:block;">
<#list works as work>
<div class="work" style="display:list-item;list-style-image:url(${urls.base}/themes/iph/images/bullet_icon.png); font-style: italic; font-family: PT Serif;">
<p> ${work.works} </p>
</div>
</#list>
</div>
</#if>
<#if bibliography?? && bibliography?has_content>
<button type="button" class="collapsible" style="border:none; color: #8B4513; padding: 18px;width: 100%; text-align: left; background-color: #ffffff; background-image: url(${urls.base}/themes/iph/images/book_icon.png); background-repeat: no-repeat; background-position: left center;">Литература</button>
<div class="bibliography" style="display:block;">
<#list bibliography as one_bibliography>
<div class="bibliography_entry" style="display:list-item;list-style-image:url(${urls.base}/themes/iph/images/bullet_icon.png); font-style: italic; font-family: PT Serif;">
<p> ${one_bibliography.bibliography} </p>
</div>
</#list>
</div>
</#if>
<#if authors??>
<#list authors as author>
<div class="authors" style="display:block;">
<#if author.authorFamily??>${author.authorFamily}</#if>&nbsp;<#if author.authorInitials??>${author.authorInitials}</#if>
</div>
</#list>
</#if>
<script>
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].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";
}
});
}
</script>
<#-- <@dumpAll /> -->
<#assign selectedTemplate = "individual--foaf-person-2column.ftl" >
<#if profilePageTypesEnabled > <#if profilePageTypesEnabled >
<#assign profilePageType = profileType > <#assign profilePageType = profileType >
@ -160,6 +276,24 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
</span> </span>
</#if> </#if>
<script>
console.log(localStorage.getItem('switchExpand'));
if (localStorage.getItem('switchExpand') === true || localStorage.getItem('switchExpand') === 'true') {
console.log("show html excerpts");
$('.htmlExcerpt').show();
}
function switchExpand(){
var checkBox = document.getElementById("expandlCB");
if (checkBox.checked == true){
$('.htmlExcerpt').show();
localStorage.setItem('switchExpand',true);
} else {
$('.htmlExcerpt').hide();
localStorage.setItem('switchExpand',false);
}
}
</script>
<#if !editable> <#if !editable>
<script> <script>
var title = $('div#titleContainer').width(); var title = $('div#titleContainer').width();

View file

@ -1,23 +1,12 @@
<#include "individual-setup.ftl"> <#-- $This file is distributed under the terms of the license in LICENSE$ -->
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/toc.js"></script>')}
<#-- Individual profile page template for foaf:Person individuals --> <#-- Individual profile page template for foaf:Person individuals -->
<!--[if IE 7]> <!--[if IE 7]>
<link rel="stylesheet" href="${urls.base}/css/individual/ie7-standard-view.css" /> <link rel="stylesheet" href="${urls.base}/css/individual/ie7-standard-view.css" />
<![endif]--> <![endif]-->
<#-- <#include "individual-setup.ftl"> --> <#-- <#include "individual-setup.ftl"> -->
<#import "individual-qrCodeGenerator.ftl" as qr> <#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp> <#import "lib-vivo-properties.ftl" as vp>
<#include "text-lib.ftl">
<#--Number of labels present--> <#--Number of labels present-->
<#if !labelCount??> <#if !labelCount??>
<#assign labelCount = 0 > <#assign labelCount = 0 >
@ -38,8 +27,6 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;"> <section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
<#include "individual-adminPanel.ftl"> <#include "individual-adminPanel.ftl">
<header> <header>
<div id="articleHeaderWrapper">
<div id="articleTitleWrapper">
<#if relatedSubject??> <#if relatedSubject??>
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2> <h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p> <p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p>
@ -71,31 +58,20 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<@p.mostSpecificTypesPerson individual editable/> <@p.mostSpecificTypesPerson individual editable/>
</#if> </#if>
</#if> </#if>
</div> <span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<div class="articleToolsContainer"> <#include "individual-iconControls.ftl">
<div class="metadataSwitch"> </span>
<@expandMetadataSwitch /> <#if editable && profilePageTypesEnabled >
</div> <#include "individual-profilePageTypes.ftl">
<div class="toolsWrapper"> </#if>
<div class="articleButtons">
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess></#if>>
<#include "individual-iconControls-iph.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
<@userSettingsModal />
<button id="print"><img onclick="javascript:printPageContent();" src="${urls.base}/themes/iph/images/print.svg"></button>
</div>
</div>
</div>
</header> </header>
<!-- Positions --> <!-- Positions -->
<#include "individual-positions.ftl"> <#include "individual-positions.ftl">
<!-- Overview --> <!-- Overview -->
<#if !editable> <#if !editable>
</#if> <p></p>
</#if>
<#include "individual-overview.ftl"> <#include "individual-overview.ftl">
<!-- Research Areas --> <!-- Research Areas -->
@ -114,77 +90,64 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!> <#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!> <#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
</#if> </#if>
<div class="metaDataName collapsible collapsed"> <#if !editable>
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div> <#if authors??>
</div> <#list authors as author>
<div class="autoMetadataExpand" style="display:none;"> <div class="affiliations" >
<#if !editable> <b><#if author.authorFamily??>${author.authorFamily}&nbsp;</#if><#if author.authorGivenName??>${author.authorGivenName}</#if></b>
<@authors_metadata /> <#if author.orgName??>
<#else> <br><span style="color:rgba(0,0,0,0.54);">${author.orgName}</span>
<#assign pubAuthors = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#hasAuthor")!> </#if>
<#if pubAuthors?has_content> <#if author.orgAddress??>
<div class=" <br>
<#if pubAuthors.statements?has_content > <span style="color:rgba(0,0,0,0.54);">Адрес организации: <#if author.orgPostalCode??>${author.orgPostalCode},&nbsp;</#if>${author.orgAddress}&nbsp;</span>
collapsible collapsed </#if>
<#else>
nonePubAuthors
</#if>
">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_authors} <@p.addLink pubAuthors editable /> <@p.verboseDisplay pubAuthors /></div>
</div>
<div class="expandedAuthors autoMetadataExpand" style="display:none;">
<#if pubAuthors.statements?has_content >
<div class="pubAuthors" style="list-style:none;">
<@p.objectProperty pubAuthors editable />
</div>
</#if>
</div>
</#if>
</#if>
</div>
</#list>
</#if>
<#else>
<#assign pubAuthors = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#hasAuthor")!>
<#if pubAuthors?has_content>
<div class="label">Авторы: <@p.addLink pubAuthors editable /> <@p.verboseDisplay pubAuthors /> </div>
<#if pubAuthors.statements?has_content >
<div class="pubAuthors" style="list-style:none;">
<@p.objectProperty pubAuthors editable />
</div>
</#if>
</#if>
</#if>
<#if articles?has_content> <#if articles?has_content>
<div class="collapsible collapsed"> <div class="label">В составе статей: </div>
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_in_articles}</div> <div>
</div> <#list articles as article>
<div class="expandedArticles autoMetadataExpand" style="display:none;"> <#if article?has_content >
<#list articles as article> <div style="list-style:none;border:none;width: 100%;text-align:left;" class="article">
<#if article?has_content > <a href="${urls.base}/individual?uri=${article.articleUri?url}"">${article.articleName}</a>
<div class="articleList" style="list-style:none;"> </div>
<a href="${urls.base}/individual?uri=${article.articleUri?url}">${article.articleName}</a> </#if>
</div> </#list>
</#if>
</#list>
</div> </div>
</#if> </#if>
<#assign rubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!> <#assign rubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if rubrics?has_content> <#if rubrics?has_content>
<div class="collapsible collapsed"> <div class="label">Относится к: <@p.addLink rubrics editable /> <@p.verboseDisplay rubrics /> </div>
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_relates_to_rubrics} <@p.addLink rubrics editable /> <@p.verboseDisplay rubrics /></div>
</div>
<div class="expandedRubrics autoMetadataExpand" style="display:none;">
<#if rubrics.statements?has_content > <#if rubrics.statements?has_content >
<div class="rubricsList" style="list-style:none;"> <div class="rubrics" style="list-style:none;">
<@p.objectProperty rubrics editable /> <@p.objectProperty rubrics editable />
</div> </div>
</#if> </#if>
</div>
</#if> </#if>
<#assign keywords = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#keywords")!> <#assign keywords = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#keywords")!>
<#if keywords?has_content > <#if keywords?has_content >
<div class="collapsible collapsed"> <div class="label">Ключевые слова: <@p.addLink keywords editable /> <@p.verboseDisplay keywords /> </div>
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_keywords} <@p.addLink keywords editable /> <@p.verboseDisplay keywords /></div> <#if keywords.statements?has_content && keywords.type == "data">
</div> <div class="keywords" style="list-style:none;">
<div class="expandedKeywords autoMetadataExpand" style="display:none;"> <@p.dataPropertyList keywords editable />
<div class="wrapperExpandedKeywords"> </div>
<#if keywords.statements?has_content && keywords.type == "data"> </#if>
<@p.dataPropertyList keywords editable />
</#if>
</div>
</div>
</#if> </#if>
</div>
<#assign htmlExcerpt = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#htmlExcerpt")!> <#assign htmlExcerpt = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#htmlExcerpt")!>
<#if htmlExcerpt?has_content > <#if htmlExcerpt?has_content >
<#if htmlExcerpt.statements?has_content && htmlExcerpt.type == "data"> <#if htmlExcerpt.statements?has_content && htmlExcerpt.type == "data">
@ -193,22 +156,24 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<#-- object property --> <#-- object property -->
</div> </div>
<#else> <#else>
<div class="label">${i18n().metadata_html_text} <@p.addLink htmlExcerpt editable /> <@p.verboseDisplay htmlExcerpt /> </div> <div class="label">Текст отрывка: <@p.addLink htmlExcerpt editable /> <@p.verboseDisplay htmlExcerpt /> </div>
</#if> </#if>
</#if> </#if>
<#assign works = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#works")!> <#assign works = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#works")!>
<#if works.statements?has_content || editable > <#if works.statements?has_content || editable >
<br/>
<div class="works" style="list-style:none;"> <div class="works" style="list-style:none;">
<h2 class="label">${i18n().sources_excerpt_button_text} <@p.addLink works editable /> <@p.verboseDisplay works /></h2> <h2 class="label">Работы: <@p.addLink works editable /> <@p.verboseDisplay works /></h2>
<@p.dataPropertyList works editable /> <@p.dataPropertyList works editable />
</div> </div>
</#if> </#if>
<#assign biblio= propertyGroups.pullProperty("https://litvinovg.pro/text_structures#bibliography")!> <#assign biblio= propertyGroups.pullProperty("https://litvinovg.pro/text_structures#bibliography")!>
<#if biblio.statements?has_content || editable > <#if biblio.statements?has_content || editable >
<br/>
<div class="biblio" style="list-style:none;"> <div class="biblio" style="list-style:none;">
<h2 class="label">${i18n().literature_excerpt_button_text} <@p.addLink biblio editable /> <@p.verboseDisplay biblio /></h2> <h2 class="label">Литература: <@p.addLink biblio editable /> <@p.verboseDisplay biblio /></h2>
<@p.dataPropertyList biblio editable /> <@p.dataPropertyList biblio editable />
</div> </div>
</#if> </#if>

View file

@ -0,0 +1,42 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#--
This version of individual--foaf-person.ftl is a "router" template. The original VIVO
version of this template now resides in the /themes/wilma/templates directory.
This version of the template is used when the profile page types feature is enabled.
This template serves to "rout" the user to the correct template based (1) the
profile page type of the foaf person being displayed or (2) the targeted view that
the user wants to see. For example, when a user is routed to a quick view template,
the user has the option of displaying the full view. If the user chooses that option,
the targetedView variable gets set.
This template could also be used to load just the "individual--foaf-person-2column.ftl"
without enabling profile page types. "individual--foaf-person-2column.ftl" is a slightly
different design than the "individual--foaf-person.ftl" template in the themes/wilma
directory.
-->
<#include "individual-setup.ftl">
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
<#assign selectedTemplate = "elenphExcerpt-internal.ftl" >
<#if profilePageTypesEnabled >
<#assign profilePageType = profileType >
<#-- targetedView takes precedence over the profilePageType. -->
<#if targetedView?has_content>
<#if targetedView != "standardView">
<#assign selectedTemplate = "individual--foaf-person-quickview.ftl" >
</#if>
<#elseif profilePageType == "quickView" >
<#assign selectedTemplate = "individual--foaf-person-quickview.ftl" >
</#if>
</#if>
<#include selectedTemplate >

View file

@ -4,6 +4,7 @@
<#import "lib-vivo-properties.ftl" as p> <#import "lib-vivo-properties.ftl" as p>
<#-- <@dumpAll /> --> <#-- <@dumpAll /> -->
<div class="virtualArticlePart" partUri="${individual.uri}" style="display:none;">
<#list excerptInfo as excerptProperties> <#list excerptInfo as excerptProperties>
<#if excerptProperties.property == "https://litvinovg.pro/text_structures#htmlExcerpt"> <#if excerptProperties.property == "https://litvinovg.pro/text_structures#htmlExcerpt">
<#assign excerptText = excerptProperties.value > <#assign excerptText = excerptProperties.value >
@ -16,8 +17,7 @@
</#if> </#if>
</#list> </#list>
<#if excerptText?? && excerptTextName?? && excerptTextName?has_content && excerptText?has_content> <#if excerptText?? && excerptTextName?? && excerptTextName?has_content && excerptText?has_content>
<div class="virtualArticlePart compilationDraftExcerpt" partUri="${individual.uri}" partName="${excerptTextName}" style="display:none;"> <button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${excerptTextName}</button>
<button type="button" style="border:none;width: 100%; text-align:left;" class="collapsible">${excerptTextName}</button>
<div class="htmlExcerpt" style="list-style:none; display:none;"> <div class="htmlExcerpt" style="list-style:none; display:none;">
${excerptText} ${excerptText}
<#if excerptAuthor?? && excerptAuthor?has_content> <#if excerptAuthor?? && excerptAuthor?has_content>
@ -38,10 +38,10 @@
</div> </div>
</div>
</#if> </#if>
</div>
<div class="searchResult"> <div class="excerptSearchResult">
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a> <a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
<@p.displayTitle individual /> <@p.displayTitle individual />
<p class="snippet">${individual.snippet}</p> <p class="snippet">${individual.snippet}</p>

View file

@ -5,16 +5,16 @@
<#if !issueName??> <#if !issueName??>
<#assign issueName = article.issue> <#assign issueName = article.issue>
<#assign divOpened = true > <#assign divOpened = true >
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible active">${issueName}</button> <button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${issueName}</button>
<div class="issue" style="list-style:none; padding: 18px;"> <div clas="issue" style="list-style:none; display:none; padding: 18px;">
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p> <p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
<#elseif issueName == article.issue> <#elseif issueName == article.issue>
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p> <p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
<#else> <#else>
<#assign issueName = article.issue> <#assign issueName = article.issue>
</div> </div>
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible active">${issueName}</button> <button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${issueName}</button>
<div class="issue" style="list-style:none; padding: 18px;"> <div clas="issue" style="list-style:none; display:none;padding: 18px;">
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p> <p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
</#if> </#if>
</#list> </#list>
@ -38,8 +38,4 @@ for (i = 0; i < coll.length; i++) {
} }
}); });
} }
var issueContents = document.getElementsByClassName("issue");
for (i = 0; i < issueContents.length; i++) {
issueContents[i].style.display = "none";
}
</script> </script>

View file

@ -1,20 +1,16 @@
<#import "lib-vivo-properties.ftl" as vp> <#import "lib-vivo-properties.ftl" as vp>
<#include "individual-setup.ftl"> <#include "individual-setup.ftl">
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
<section id="individual-intro" class="vcard person" role="region"> <section id="individual-intro" class="vcard person" role="region">
<span itemscope itemtype="http://schema.org/Person"> <span itemscope itemtype="http://schema.org/Person">
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;"> <section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
<#include "individual-adminPanel.ftl"> <#include "individual-adminPanel.ftl">
<header> <header>
<div id="articleTitleWrapper">
<#if relatedSubject??> <#if relatedSubject??>
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2> <h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p> <p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">&larr; ${i18n().return_to(relatedSubject.name)}</a></p>
<#else> <#else>
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="width:100%;border-right:1px solid #A6B1B0;"</#if>> <h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;width:100%;border-right:1px solid #A6B1B0;"</#if>>
<@p.label individual editable labelCount localesCount/> <@p.label individual editable labelCount localesCount/>
</h1> </h1>
</#if> </#if>
@ -22,7 +18,6 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
<#if editable && profilePageTypesEnabled > <#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl"> <#include "individual-profilePageTypes.ftl">
</#if> </#if>
</div>
</header> </header>
</section> </section>
</span> </span>
@ -30,7 +25,7 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
<#assign parent = propertyGroups.pullProperty("https://iph.ras.ru/relationships#hasParent")!> <#assign parent = propertyGroups.pullProperty("https://iph.ras.ru/relationships#hasParent")!>
<#if parent?has_content> <#if parent?has_content>
<div class="label">${i18n().rubricator_parent_rubric}<#if !parent.statements?has_content> <@p.addLink parent editable /></#if> <@p.verboseDisplay parent /></div> <div class="label">Родительская рубрика<#if !parent.statements?has_content> <@p.addLink parent editable /></#if> <@p.verboseDisplay parent /></div>
<#if parent.statements?has_content > <#if parent.statements?has_content >
<div style="list-style:none;" class="parentRubric"> <div style="list-style:none;" class="parentRubric">
<@p.objectProperty parent editable /> <@p.objectProperty parent editable />
@ -41,7 +36,7 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
<#assign order = propertyGroups.pullProperty("https://iph.ras.ru/relationships#rubricOrder")!> <#assign order = propertyGroups.pullProperty("https://iph.ras.ru/relationships#rubricOrder")!>
<#if order?has_content> <#if order?has_content>
<div class="label">${i18n().rubricator_rubric_order}<#if !order.statements?has_content> <@p.addLink order editable /></#if> <@p.verboseDisplay order /></div> <div class="label">Порядок рубрики<#if !order.statements?has_content> <@p.addLink order editable /></#if> <@p.verboseDisplay order /></div>
<#if order.statements?has_content > <#if order.statements?has_content >
<div style="list-style:none;" class="rubricOrder"> <div style="list-style:none;" class="rubricOrder">
<@p.dataPropertyList order editable /> <@p.dataPropertyList order editable />
@ -51,11 +46,11 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if> </#if>
<#if childRubrics?has_content> <#if childRubrics?has_content>
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_subrubrics}</button> <button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Подрубрики</button>
<div style="display:none;"> <div style="display:none;">
<#list childRubrics as childRubric> <#list childRubrics as childRubric>
<#if childRubric?has_content > <#if childRubric?has_content >
<div class="childRubric"> <div style="list-style:none;border:none;padding: 18px;width: 100%;text-align:left;" class="childRubric">
<a href="${urls.base}/individual?uri=${childRubric.rubricID?url}"">${childRubric.rubricName}</a> <a href="${urls.base}/individual?uri=${childRubric.rubricID?url}"">${childRubric.rubricName}</a>
</div> </div>
</#if> </#if>
@ -64,11 +59,11 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if> </#if>
<#if childArticles?has_content> <#if childArticles?has_content>
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_articles_in_subrubrics}</button> <button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Статьи в подрубриках</button>
<div style="display:none;"> <div style="display:none;">
<#list childArticles as childArticle> <#list childArticles as childArticle>
<#if childArticle?has_content > <#if childArticle?has_content >
<div class="childArticle"> <div style="list-style:none;border:none;padding: 18px;width: 100%;text-align:left;" class="childArticle">
<a href="${urls.base}/individual?uri=${childArticle.childArticleID?url}"">${childArticle.childArticleName}</a> <a href="${urls.base}/individual?uri=${childArticle.childArticleID?url}"">${childArticle.childArticleName}</a>
</div> </div>
</#if> </#if>
@ -77,11 +72,11 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if> </#if>
<#if childExcerpts?has_content> <#if childExcerpts?has_content>
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_excerpts_in_subrubrics}</button> <button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Отрывки в подрубриках</button>
<div style="display:none;"> <div style="display:none;">
<#list childExcerpts as childExcerpt> <#list childExcerpts as childExcerpt>
<#if childExcerpt?has_content > <#if childExcerpt?has_content >
<div class="childExcerpt"> <div style="list-style:none;border:none;padding: 18px;width: 100%;text-align:left;" class="childExcerpt">
<a href="${urls.base}/individual?uri=${childExcerpt.childExcerptID?url}"">${childExcerpt.childExcerptName}</a> <a href="${urls.base}/individual?uri=${childExcerpt.childExcerptID?url}"">${childExcerpt.childExcerptName}</a>
</div> </div>
</#if> </#if>
@ -90,7 +85,7 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if> </#if>
<#if articles?has_content> <#if articles?has_content>
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_articles_in_rubric}</button> <button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Статьи в данной рубрике</button>
<div class="articles" style="display:none;"> <div class="articles" style="display:none;">
<#list articles as article> <#list articles as article>
<#if article?has_content > <#if article?has_content >
@ -103,7 +98,7 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if> </#if>
<#if excerpts?has_content> <#if excerpts?has_content>
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_excerpts_in_rubric}</button> <button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Отрывки в данной рубрике</button>
<div style="display:none;" class="excerpts"> <div style="display:none;" class="excerpts">
<#list excerpts as excerpt> <#list excerpts as excerpt>
<#if excerpt?has_content > <#if excerpt?has_content >
@ -114,3 +109,23 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#list> </#list>
</div> </div>
</#if> </#if>
<script>
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].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";
}
});
}
</script>

View file

@ -1,15 +1,8 @@
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
<#list rubrics as rubric> <#list rubrics as rubric>
<#if !rubric.parentUri??> <#if !rubric.parentUri??>
<#assign childs = rubric.childs?number> <#assign childs = rubric.childs?number>
<button type="button" style="border:none;padding: 15px;text-align:left; width:100%;" class="collapsible"> <button type="button" style="border:none;padding: 15px;text-align:left; width:100%;" class="collapsible">
<@openButton childs=childs/><a style="padding-left:15px;">${rubric.name}</a> <@openButton childs=childs/><a style="padding-left:15px;" href="individual?uri=${rubric.uri?url}">${rubric.name}</a></button>
<div id="rubricFollow">
<a href="individual?uri=${rubric.uri?url}">${i18n().metadata_to_rubric}</a>
</div>
</button>
<div class="rubricContents" style="display:none;"> <div class="rubricContents" style="display:none;">
<#if (childs &gt; 0) > <#if (childs &gt; 0) >
<@nestedRubrics allrubrics=rubrics parentUri=rubric.uri deep=10 level=1 /> <@nestedRubrics allrubrics=rubrics parentUri=rubric.uri deep=10 level=1 />
@ -20,6 +13,24 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#list> </#list>
<script>
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
$(this).children('.collapsibleSign').text('+');
} else {
content.style.display = "block";
$(this).children('.collapsibleSign').text('');
}
});
}
</script>
<#macro openButton childs> <#macro openButton childs>
<#if childs &gt; 0> <#if childs &gt; 0>
<div class="collapsibleSign" style="display:inline-block;width:10px;">+</div> <div class="collapsibleSign" style="display:inline-block;width:10px;">+</div>
@ -34,11 +45,7 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
<#if innerRubric.parentUri?? && innerRubric.parentUri == parentUri> <#if innerRubric.parentUri?? && innerRubric.parentUri == parentUri>
<#assign childs = innerRubric.childs?number> <#assign childs = innerRubric.childs?number>
<#assign count = count + 1 > <#assign count = count + 1 >
<button type="button" style="border:none;padding: 15px 0px 15px ${15+15*level}px;width: 100%; text-align:left;" class="collapsible"><@openButton childs=childs /><a style="padding-left:15px;">${innerRubric.name}</a> <button type="button" style="border:none;padding: 15px 0px 15px ${15+15*level}px;width: 100%; text-align:left;" class="collapsible"><@openButton childs=childs /><a style="padding-left:15px;" href="individual?uri=${innerRubric.uri?url}">${innerRubric.name}</a></button>
<div id="rubricFollow">
<a href="individual?uri=${innerRubric.uri?url}">${i18n().metadata_to_rubric}</a>
</div>
</button>
<div class="rubricContents" style="display:none;"> <div class="rubricContents" style="display:none;">
<#if (deep &gt; 1) && (childs &gt; 0)> <#if (deep &gt; 1) && (childs &gt; 0)>
<@nestedRubrics allrubrics=rubrics parentUri=innerRubric.uri deep=deep-1 level=level+1 /> <@nestedRubrics allrubrics=rubrics parentUri=innerRubric.uri deep=deep-1 level=level+1 />

View file

@ -0,0 +1,38 @@
<#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>
<#if rubrics?? && rubrics?has_content>
<#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>
</#if>
<br/>
</#if>
</#macro>
<#macro showIssue>
<#assign issue = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#issue")!>
<#if issue.statements?has_content && issue.type == "data">
<div class="issue" style="list-style:none;">
<div class="label">Входит в выпуск</div>
<@p.dataPropertyList issue editable />
</div>
</#if>
</#macro>
<#macro showYear>
<#assign year = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#year")!>
<#if year.statements?has_content && year.type == "data">
<div class="year" style="list-style:none;">
<div class="label">Год</div>
<@p.dataPropertyList year editable />
</div>
</#if>
</#macro>
<#macro showWorks works >
</#macro>

File diff suppressed because it is too large Load diff

View file

@ -87,6 +87,7 @@ button.btn.btn-xs.btn-danger {
/*box-shadow: 0px 0px 0px #000000;*/ /*box-shadow: 0px 0px 0px #000000;*/
border-left: 1px solid #ead6a2 !important; border-left: 1px solid #ead6a2 !important;
font-family: Roboto; font-family: Roboto;
} }
.query-builder .btn-success.active, .query-builder .btn-success.focus, .query-builder .btn-success.active, .query-builder .btn-success.focus,

View file

@ -1,32 +1,32 @@
menu_contactus = Контакты menu_contactus = Contact Us
menu_welcomestart = Добро пожаловать menu_welcomestart = Welcome
menu_copyright = права menu_copyright = copyright
menu_support = Поддержка menu_support = Support
menu_logout = Выйти menu_logout = Log out
menu_loginfull = Log in to manage this site menu_loginfull = Log in to manage this site
menu_login = Войти menu_login = Log in
menu_version = Версия menu_version = Version
menu_about = О нас menu_about = About
menu_termuse = Правила использования menu_termuse = Terms of Use
menu_powered = Сделано с помощью menu_powered = Powered by
intro_title = Добро пожаловать в VIVO intro_title = Welcome to VIVO
intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scholars of all disciplines. intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scholars of all disciplines.
intro_para2 = Browse or search information on people, departments, courses, grants, and publications. intro_para2 = Browse or search information on people, departments, courses, grants, and publications.
intro_searchvivo = Поиск VIVO intro_searchvivo = Search VIVO
intro_filtersearch = Ограничить поиск intro_filtersearch = Filter search
identity_title = VIVO | соединяй делись познавай identity_title = VIVO | connect share discover
identity_index = Index identity_index = Index
identity_edit = Редактировать страницу identity_edit = Edit Page
identity_admin = Админка identity_admin = Site Admin
identity_myprofile = Мой профиль identity_myprofile = My profile
identity_myaccount = Моя учётная запись identity_myaccount = My account
identity_user = пользователь identity_user = user
collection_capitalized = Коллекция collection_capitalized = Collection
place_of_grant = Место получения гранта place_of_grant = Place of grant
email_address = email адрес email_address = Email Address
# #
# menupage templates ( /templates/freemarker/body/menupage ) # menupage templates ( /templates/freemarker/body/menupage )
@ -41,126 +41,69 @@ grants_two = This technique could be used to define pages without menu items, th
grants_text_three = This would create a page that would use about.ftl as the body. The page would be \ grants_text_three = This would create a page that would use about.ftl as the body. The page would be \
accessed via /about and would override all servlet mappings in web.xml. accessed via /about and would override all servlet mappings in web.xml.
address_street_one = первая строка адреса address_street_one = address street one
address_street_two = вторая строка адреса address_street_two = address street two
address_street_three = третья строка адреса address_street_three = address street three
address_label = подпись адреса address_label = address label
loading_website_image = Загрузка изображения сайта loading_website_image = Loading website image
researchers_in = исследователь в researchers_in = researchers in
view = вид view = view
grant_type = тип гранта grant_type = grant Type
grant_entry_for = grant entry for grant_entry_for = grant entry for
regions = регионы regions = regions
grant_date = дата получения гранта grant_date = grant Date
map_states_string = штатов. map_states_string = states.
map_state_string = штат. map_state_string = state.
unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals. unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals.
unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals. unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals.
currently_no_papers_for = Currently there are no {0} papers for currently_no_papers_for = Currently there are no {0} papers for
change_selection = Изменить выделенное change_selection = change selection
view_all_departments = view all academic departments view_all_departments = view all academic departments
first_name = Имя first_name = First name
last_name = Фамилия last_name = Last name
first_grant = Первый грант first_grant = First Grant
last_grant = Последний грант last_grant = Last Grant
currently_no_researchers = There are currently no researchers with a defined geographic focus. currently_no_researchers = There are currently no researchers with a defined geographic focus.
reviewer_role = Роль рецензента reviewer_role = Reviewer Role
vivo_profile = профиль VIVO vivo_profile = VIVO profile
loading_data = данные загружаются loading_data = loading data
select_award = Selected Award select_award = Selected Award
grants_in_vivo = гранты в VIVO grants_in_vivo = grants in VIVO
service_provider_role = Роль предоставителя услуг service_provider_role = Service Provider Role
view_all_faculty = просмотреть весь факультет view_all_faculty = view all faculty
no_grants_for = В данный момент грантов нет грантов для no_grants_for = Currently there are no grants for
statewide_locations = state-wide locations. statewide_locations = state-wide locations.
faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization. faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization.
indiv_foafperson_for = к indiv_foafperson_for = for
indiv_foafperson_return = вернуться к indiv_foafperson_return = return to
no_departments_found = Университетских департаментов не найдено. no_departments_found = No academic departments found.
leadership_role = Управляющая роль leadership_role = Leadership Role
countries = страны countries = countries
first_publication = Первая публикация first_publication = First publication
last_publication = Последняя публикация last_publication = Last publication
research_area = сотрудников департамента спецализирующихся на данной области исследования research_area = individuals in the department with this research area
password = пароль password = password
limit_search = ограничить поиск limit_search = limit search
placeholder_image = Изображение-заполнитель placeholder_image = placeholder image
view_all_members_of_org = Просмотреть всех участников данной организации. view_all_members_of_org = View all the members of this organization.
display_more = больше display_more = more
create_entry = Создать запись create_entry = Create Entry
attendee_capitalized = Посетитель attendee_capitalized = Attendee
no_faculty_found = Членов факультета найдено не было. no_faculty_found = No faculty members found.
create_capitalized = Создать create_capitalized = Create
to = к to = to
enter_new_role_value = Введеите новое значение в поле Роль. enter_new_role_value = Please enter a new value in the Role field.
countries_and_regions = страны и регионы. countries_and_regions = countries and regions.
province_or_region = Провинция или регион province_or_region = Province or Region
full_name = Полное имя full_name = Full name
researchers = исследователи researchers = researchers
years_participation_in = Годы участия в years_participation_in = Years of Participation in
return_to_grant = Вернуться к гранту return_to_grant = Return to grant
profile_capitalized = Профиль profile_capitalized = Profile
organizer_role = Роль организатора organizer_role = Organizer Role
faculty_memberships = Членство в факультете faculty_memberships = Faculty Memberships
edit_mailing_address = Изменить email адрес edit_mailing_address = Edit Mailing Address
add_capitalized = Добавить add_capitalized = Add
#Design labels
scroll_to_top_label = Наверх
toc_label = Содержание
collapse_something = Свернуть
expand_something = Раскрыть
user_settings_label = Выберите настройки:
user_settings_always_open_full_doc = Всегда раскрывать документ при открытии
user_settings_always_open_metadata = Всегда раскрывать метаданные при открытии
expand_doc_switch = Раскрыть документ
collapse_doc_switch = Свернуть документ
expand_metadata_switch = Раскрыть метаданные
collapse_metadata_switch = Свернуть метаданные
literature_excerpt_button_text = Литература
literature_all_button_text = Сводная литература
sources_excerpt_button_text = Источники
sources_all_button_text = Сводные источники
extended_search_label = Расширенный поиск
metadata_label = Метаданные
metadata_query = Поисковый запрос
metadata_relates_to_rubrics = Относится к рубрикам:
metadata_relates_to_issue = Входит в выпуск
metadata_year = Год
metadata_to_rubric = перейти в рубрику
metadata_firstPublication = Первая публикация
metadata_authors = Авторы:
metadata_keywords = Ключевые слова:
metadata_html_text = Текст:
metadata_org_address = Адрес организации:
metadata_in_articles = В составе статей:
#Philosophical classifier
rubricator_parent_rubric = Родительская рубрика:
rubricator_rubric_order = Порядок рубрики
rubricator_subrubrics = Подрубрики
rubricator_articles_in_subrubrics = Статьи в подрубриках
rubricator_excerpts_in_subrubrics = Отрывки в подрубриках
rubricator_articles_in_rubric = Статьи в данной рубрике
rubricator_excerpts_in_rubric = Отрывки в данной рубрике
#Extended search form
extended_search_example = Пример заполнения
extended_search_results_on_page = Результатов на страницу
extended_search_clean = Очистить
extended_search_execute_search = Поиск
open_standard_search_form = Стандартная форма поиска
#Virtual articles creation
show_virtual_article = Показать виртуальную статью
create_compilation_button = Сохранить
create_compilation_no_excerpts = Отрывков не найдено
create_compilation_enter_name_notification = Введите название подобрки
create_compilation_no_name_entered_error = Для создания подоборки необходимо ввести её название

View file

@ -1,115 +0,0 @@
menu_contactus = Contact Us
menu_welcomestart = Welcome
menu_copyright = copyright
menu_support = Support
menu_logout = Log out
menu_loginfull = Log in to manage this site
menu_login = Log in
menu_version = Version
menu_about = About
menu_termuse = Terms of Use
menu_powered = Powered by
intro_title = Welcome to VIVO
intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scholars of all disciplines.
intro_para2 = Browse or search information on people, departments, courses, grants, and publications.
intro_searchvivo = Search VIVO
intro_filtersearch = Filter search
identity_title = VIVO | connect share discover
identity_index = Index
identity_edit = Edit Page
identity_admin = Site Admin
identity_myprofile = My profile
identity_myaccount = My account
identity_user = user
collection_capitalized = Collection
place_of_grant = Place of grant
email_address = Email Address
#
# menupage templates ( /templates/freemarker/body/menupage )
#
grants_text_one = This body is from the the template file \
vivo/productMods/templates/freemarker/body/menupage/grants.ftl. \
In the display model, the grants page has a display:requiresBodyTemplate \
property that defines that the grants page overrides the default template. \
The default template for these pages is at /vitro/webapp/web/templates/freemarker/body/menupage/menupage.ftl
grants_two = This technique could be used to define pages without menu items, that get \
their content from a freemarker template. An example would be the about page.
grants_text_three = This would create a page that would use about.ftl as the body. The page would be \
accessed via /about and would override all servlet mappings in web.xml.
address_street_one = address street one
address_street_two = address street two
address_street_three = address street three
address_label = address label
loading_website_image = Loading website image
researchers_in = researchers in
view = view
grant_type = grant Type
grant_entry_for = grant entry for
regions = regions
grant_date = grant Date
map_states_string = states.
map_state_string = state.
unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals.
unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals.
currently_no_papers_for = Currently there are no {0} papers for
change_selection = change selection
view_all_departments = view all academic departments
first_name = First name
last_name = Last name
first_grant = First Grant
last_grant = Last Grant
currently_no_researchers = There are currently no researchers with a defined geographic focus.
reviewer_role = Reviewer Role
vivo_profile = VIVO profile
loading_data = loading data
select_award = Selected Award
grants_in_vivo = grants in VIVO
service_provider_role = Service Provider Role
view_all_faculty = view all faculty
no_grants_for = Currently there are no grants for
statewide_locations = state-wide locations.
faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization.
indiv_foafperson_for = for
indiv_foafperson_return = return to
no_departments_found = No academic departments found.
leadership_role = Leadership Role
countries = countries
first_publication = First publication
last_publication = Last publication
research_area = individuals in the department with this research area
password = password
limit_search = limit search
placeholder_image = placeholder image
view_all_members_of_org = View all the members of this organization.
display_more = more
create_entry = Create Entry
attendee_capitalized = Attendee
no_faculty_found = No faculty members found.
create_capitalized = Create
to = to
enter_new_role_value = Please enter a new value in the Role field.
countries_and_regions = countries and regions.
province_or_region = Province or Region
full_name = Full name
researchers = researchers
years_participation_in = Years of Participation in
return_to_grant = Return to grant
profile_capitalized = Profile
organizer_role = Organizer Role
faculty_memberships = Faculty Memberships
edit_mailing_address = Edit Mailing Address
add_capitalized = Add
literature_excerpt_button_text = Bibliography
literature_all_button_text = All bibliorgraphy
sources_excerpt_button_text = Sources
sources_all_button_text = All sources
remove_doc_from_search_results = Remove from search results

View file

@ -106,4 +106,4 @@ organizer_role = Organizer Role
faculty_memberships = Faculty Memberships faculty_memberships = Faculty Memberships
edit_mailing_address = Edit Mailing Address edit_mailing_address = Edit Mailing Address
add_capitalized = Add add_capitalized = Add
remove_doc_from_search_results=Удалить из результатов поиска

View file

@ -1,6 +0,0 @@
<svg width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 8.21428H20" stroke="#8B4513"/>
<path d="M0 10.3571H20" stroke="#8B4513"/>
<path d="M6.09782 16.2857L9.64279 12.1923L13.1878 16.2857H6.09782Z" fill="#8B4513" stroke="#8B4513"/>
<path d="M6.09782 2.28571L9.64279 6.37909L13.1878 2.28571H6.09782Z" fill="#8B4513" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 393 B

View file

@ -1,6 +0,0 @@
<svg width="20" height="18" viewBox="0 0 20 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 7.5H20" stroke="#8B4513"/>
<path d="M0 9.64285H20" stroke="#8B4513"/>
<path d="M6.09782 4.85714L9.64279 0.763763L13.1878 4.85714H6.09782Z" fill="#8B4513" stroke="#8B4513"/>
<path d="M6.09782 12.2857L9.64279 16.3791L13.1878 12.2857H6.09782Z" fill="#8B4513" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 390 B

View file

@ -1,3 +0,0 @@
<svg width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.09926 1L6.5 7.23624L11.9007 1H1.09926Z" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

View file

@ -1,3 +0,0 @@
<svg width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.09926 1L6.5 7.23624L11.9007 1H1.09926Z" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 172 B

View file

@ -1,3 +0,0 @@
<svg width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.09926 1L6.5 7.23624L11.9007 1H1.09926Z" fill="#8B4513" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 183 B

View file

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="5.7735262"
height="10"
viewBox="0 0 5.7735262 9.9999996"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="arrow-right.svg"
inkscape:version="1.0 (4035a4f, 2020-05-01)">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="994"
id="namedview6"
showgrid="false"
inkscape:zoom="26.25"
inkscape:cx="3.61814"
inkscape:cy="6.3770448"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="M 0.38490149,9.1574888 5.1855781,4.9999822 0.38490149,0.84250696 Z"
fill="#8b4513"
stroke="#8b4513"
id="path2"
inkscape:export-xdpi="300"
inkscape:export-ydpi="300"
style="stroke-width:0.769803" />
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -1,3 +0,0 @@
<svg width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.09926 7L6.5 0.763763L11.9007 7H1.09926Z" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 173 B

View file

@ -1,3 +0,0 @@
<svg width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.09926 7L6.5 0.763763L11.9007 7H1.09926Z" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 173 B

View file

@ -1,3 +0,0 @@
<svg width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.09926 7L6.5 0.763763L11.9007 7H1.09926Z" fill="#8B4513" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 B

After

Width:  |  Height:  |  Size: 281 B

View file

@ -1,3 +0,0 @@
<svg width="16" height="12" viewBox="0 0 16 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 5L7.5 10.5L14 2" stroke="#8B4513" stroke-width="2.5" stroke-linecap="square" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 218 B

View file

@ -1,3 +0,0 @@
<svg width="7" height="7" viewBox="0 0 7 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="3.5" cy="3.5" r="3" fill="#F6F6F6" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 165 B

View file

@ -1,79 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="download-icon.svg"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
id="svg8"
version="1.1"
viewBox="0 0 7.9375008 7.9375008"
height="7.9375005mm"
width="7.9375005mm">
<defs
id="defs2" />
<sodipodi:namedview
inkscape:guide-bbox="true"
showguides="true"
inkscape:snap-global="true"
inkscape:window-maximized="1"
inkscape:window-y="24"
inkscape:window-x="0"
inkscape:window-height="994"
inkscape:window-width="1920"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="7.9763814"
inkscape:cx="33.471871"
inkscape:zoom="7.9195959"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base">
<sodipodi:guide
id="guide947"
orientation="1,0"
position="15.213542,-3.8742594" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-25.897388,-204.35973)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<circle
style="fill:#8b4513;fill-opacity:1;stroke:#8b4513;stroke-width:0.187897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path907-0"
cx="29.866138"
cy="208.32848"
r="3.8748016" />
<path
sodipodi:nodetypes="cccccccc"
id="path847"
d="m 28.816703,205.08758 h 2.032528 v 2.51321 h 0.965451 l -1.956309,2.2502 -2.091166,-2.40532 h 1.032785 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.0762951px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path945"
d="m 27.287496,209.99817 0.127737,0.46383 h 4.95888 l 0.127738,-0.3881"
style="fill:none;stroke:#ffffff;stroke-width:0.57;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,3 +0,0 @@
<svg width="200" height="32" viewBox="0 0 200 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1 31L13.9836 1H199V31" stroke="#8B4513"/>
</svg>

Before

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

View file

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
height="30.000002"
width="30"
sodipodi:docname="exportPdf.svg"
version="1.1"
viewBox="0 0 30 30.000002"
id="Layer_1"
data-name="Layer 1">
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:current-layer="Layer_1"
inkscape:window-maximized="1"
inkscape:window-y="24"
inkscape:window-x="0"
inkscape:cy="20.288771"
inkscape:cx="13.261527"
inkscape:zoom="9.2807765"
showgrid="false"
id="namedview17"
inkscape:window-height="994"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
bordercolor="#666666"
pagecolor="#ffffff" />
<defs
id="defs4">
<style
id="style2">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}</style>
<style
id="style879">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}.cls-2{fill:#078cd6;}</style>
</defs>
<rect
y="0"
x="0"
height="30.000002"
width="30"
id="rect844"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.31713;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<path
style="fill:#8b4513;fill-opacity:1;fill-rule:evenodd;stroke:#8b4513;stroke-width:0.477;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 19.029941,11.978389 v -2.8599261 0 L 13.31009,2.4453032 H 2.8263273 c -1.054445,0 -1.90924435,0.8563933 -1.90924435,1.9136048 v 21.912121 c 0,1.056855 0.84932735,1.913605 1.90416325,1.913605 H 17.125783 c 1.051643,0 1.904158,-0.856273 1.904158,-1.897842 V 24.3714 h 7.619952 c 1.583093,0 2.866446,-1.279592 2.866446,-2.858769 v -6.675474 c 0,-1.578854 -1.27361,-2.858768 -2.866446,-2.858768 z M 18.076632,24.3714 v 1.91291 c 0,0.522844 -0.426786,0.947015 -0.95327,0.947015 H 2.8236581 c -0.5197915,0 -0.9532704,-0.424871 -0.9532704,-0.948977 V 4.3475893 c 0,-0.5149715 0.4249277,-0.9489776 0.9490949,-0.9489776 h 9.5372984 v 4.7609001 c 0,1.0670992 0.852735,1.9122592 1.904634,1.9122592 h 3.815217 v 1.906618 h -7.619938 c -1.5830923,0 -2.8664553,1.279592 -2.8664553,2.858768 v 6.675474 c 0,1.578855 1.2736202,2.858769 2.8664553,2.858769 z M 13.31009,3.875266 v 4.2815136 c 0,0.5311235 0.429618,0.9616833 0.9502,0.9616833 h 3.530312 z m -2.865102,9.056432 c -1.0501363,0 -1.9014408,0.858145 -1.9014408,1.899006 v 6.68838 c 0,1.048793 0.860218,1.899007 1.9014408,1.899007 H 26.6616 c 1.050136,0 1.901431,-0.858145 1.901431,-1.899007 v -6.68838 c 0,-1.048793 -0.860209,-1.899006 -1.901431,-1.899006 z M 22.84318,17.69824 v -1.906617 h 3.813234 v -0.953308 h -4.766543 v 6.673159 h 0.953309 v -2.859925 h 2.859925 V 17.69824 Z M 10.450164,16.744932 v 4.766542 h 0.953309 v -2.859925 h 1.901965 c 1.05557,0 1.911269,-0.846281 1.911269,-1.906617 0,-1.052996 -0.852163,-1.906617 -1.911269,-1.906617 h -2.855274 z m 0.953309,-0.953309 v 1.906617 h 1.907618 c 0.52595,0 0.952307,-0.42314 0.952307,-0.953308 0,-0.526498 -0.421991,-0.953309 -0.952307,-0.953309 z m 4.766542,-0.953308 v 6.673159 h 2.855274 c 1.05557,0 1.911274,-0.84516 1.911274,-1.91226 v -2.84864 c 0,-1.056111 -0.852168,-1.912259 -1.911274,-1.912259 z m 0.953309,0.953308 v 4.766543 h 1.907618 c 0.52595,0 0.952307,-0.423 0.952307,-0.953126 v -2.860292 c 0,-0.526396 -0.421991,-0.953125 -0.952307,-0.953125 z"
id="document-file-pdf" />
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 886 B

View file

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
data-name="Layer 1"
id="Layer_1"
viewBox="0 0 27.650404 25"
version="1.1"
sodipodi:docname="print.svg"
width="27.650404"
height="25"
inkscape:version="1.0 (4035a4f, 2020-05-01)">
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="994"
id="namedview17"
showgrid="false"
inkscape:zoom="13.125"
inkscape:cx="12.832916"
inkscape:cy="18.850271"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<defs
id="defs4">
<style
id="style2">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}</style>
<style
id="style879">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}.cls-2{fill:#078cd6;}</style>
</defs>
<rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.09761;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="rect844"
width="24.999998"
height="25"
x="-0.42861053"
y="-1.4384998" />
<g
style="fill:none;fill-opacity:1;stroke:#8b4513;stroke-width:2.16261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.53008093,0,0,0.53008093,-3.1373873,-4.7276301)"
id="g909">
<path
style="fill:none;fill-opacity:1;stroke:#8b4513;stroke-width:2.16261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="cls-1"
d="M 16,46 H 11 A 4,4 0 0 1 7,42 V 24 a 4,4 0 0 1 4,-4 h 42 a 4,4 0 0 1 4,4 v 18 a 4,4 0 0 1 -4,4 h -5"
id="path885" />
<line
style="fill:none;fill-opacity:1;stroke:#8b4513;stroke-width:2.16261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="cls-1"
x1="15"
x2="49"
y1="41"
y2="41"
id="line887" />
<path
style="fill:none;fill-opacity:1;stroke:#8b4513;stroke-width:2.16261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="cls-1"
d="m 20,41 h 24 v 12 a 2,2 0 0 1 -2,2 H 22 a 2,2 0 0 1 -2,-2 z"
id="path889" />
<circle
style="fill:none;fill-opacity:1;stroke:#8b4513;stroke-width:2.16261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="cls-2"
cx="45.5"
cy="29.5"
r="2"
id="circle891" />
<path
style="fill:none;fill-opacity:1;stroke:#8b4513;stroke-width:2.16261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="cls-1"
d="m 39,10 v 4 a 2,2 0 0 0 2,2 h 4.06 L 39.77,10 H 21 a 2,2 0 0 0 -2,2 v 7"
id="path893" />
<line
style="fill:none;fill-opacity:1;stroke:#8b4513;stroke-width:2.16261;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
class="cls-1"
x1="26"
x2="38"
y1="45"
y2="45"
id="line895" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 741 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,99 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
data-name="Layer 1"
id="Layer_1"
viewBox="0 0 30 30.000002"
version="1.1"
sodipodi:docname="save.svg"
width="30"
height="30.000002"
inkscape:version="1.0 (4035a4f, 2020-05-01)">
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="994"
id="namedview17"
showgrid="false"
inkscape:zoom="13.125"
inkscape:cx="13.261527"
inkscape:cy="20.288771"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<defs
id="defs4">
<style
id="style2">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}</style>
<style
id="style879">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}.cls-2{fill:#078cd6;}</style>
</defs>
<g
id="g859"
transform="matrix(1.2842715,0,0,1.2842715,-4.8150373,-3.5364063)"
style="stroke:#8b4513;stroke-width:0.93438187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
<path
style="stroke:#8b4513;stroke-width:0.93438187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path8"
d="M 20.768612,24.539185 H 7.3302333 A 1.7917839,1.7917839 0 0 1 5.5384493,22.747401 V 6.6213458 a 1.7917839,1.7917839 0 0 1 1.791784,-1.791784 H 23.456288 a 1.7917839,1.7917839 0 0 1 1.791784,1.791784 V 20.059725 Z"
class="cls-1" />
<rect
style="stroke:#8b4513;stroke-width:0.93438187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect10"
y="4.8295612"
x="9.5699596"
width="11.646596"
height="11.198649"
class="cls-1" />
<rect
style="stroke:#8b4513;stroke-width:0.93438187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect12"
y="21.403564"
x="11.80969"
width="7.1671357"
height="3.1356218"
class="cls-1" />
<line
style="stroke:#8b4513;stroke-width:0.93438187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="line14"
y2="24.539188"
y1="21.403564"
x2="17.185043"
x1="17.185043"
class="cls-1" />
</g>
<rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.31713;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="rect844"
width="30"
height="30.000002"
x="0"
y="0" />
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -1,111 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
data-name="Layer 1"
id="Layer_1"
viewBox="0 0 30 30.000002"
version="1.1"
sodipodi:docname="settings.svg"
width="30"
height="30.000002"
inkscape:version="1.0 (4035a4f, 2020-05-01)">
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:guide-bbox="true"
showguides="true"
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="994"
id="namedview17"
showgrid="false"
inkscape:zoom="13.125"
inkscape:cx="15.771404"
inkscape:cy="17.140427"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1">
<sodipodi:guide
id="guide903"
orientation="1,0"
position="28.631436,15.572509" />
</sodipodi:namedview>
<defs
id="defs4">
<style
id="style2">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}</style>
<style
id="style879">.cls-1{fill:none;stroke:#078cd6;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;}.cls-2{fill:#078cd6;}</style>
</defs>
<rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.31713;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="rect844"
width="30"
height="30.000002"
x="0"
y="2" />
<rect
style="fill:#8b4513;fill-opacity:1;stroke:none;stroke-width:0.433367;stroke-linecap:round;stroke-linejoin:round"
id="rect839-9"
width="27.259666"
height="2"
x="1.3717704"
y="21.941746" />
<circle
r="3.0169961"
cy="22.709797"
cx="20.447834"
id="path871-6-8"
style="fill:#ffffff;fill-opacity:1;stroke:#8b4513;stroke-width:1.03267;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="13.560791"
x="1.392127"
height="2"
width="27.259666"
id="rect839-9-9"
style="fill:#8b4513;fill-opacity:1;stroke:none;stroke-width:0.433367;stroke-linecap:round;stroke-linejoin:round" />
<rect
style="fill:#8b4513;fill-opacity:1;stroke:none;stroke-width:0.433367;stroke-linecap:round;stroke-linejoin:round"
id="rect839-9-9-0"
width="27.259666"
height="2"
x="1.3717698"
y="5.9417448" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#8b4513;stroke-width:1.03267;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path871-6-8-3"
cx="8.6420794"
cy="14.481617"
r="3.0169961" />
<circle
r="3.0169961"
cy="7.061132"
cx="20.396233"
id="path871-6-8-3-3"
style="fill:#ffffff;fill-opacity:1;stroke:#8b4513;stroke-width:1.03267;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 917 B

View file

@ -1,123 +0,0 @@
document.addEventListener('DOMContentLoaded', addCollapsibleOnClick(), false);
document.addEventListener('DOMContentLoaded', applyExpandSettings(), false);
document.addEventListener('DOMContentLoaded', hideUserSettingsModal(), false);
function showUserSettingsModal() {
var modalElement = document.getElementById("userSettingsModal");
if (modalElement != null) {
modalElement.style.display = 'block';
}
}
function hideUserSettingsModal() {
window.onclick = function(event) {
var modalElement = document.getElementById("userSettingsModal");
var closeElement = document.getElementById("closeModalWindow");
if (event.target == modalElement || event.target == closeElement) {
modalElement.style.display = 'none';
}
}
}
function addCollapsibleOnClick() {
var coll = document.getElementsByClassName("collapsible");
var i;
for (i = 0; i < coll.length; i++) {
var collapsibleLink = coll[i].querySelector('.collapsibleLink');
if (collapsibleLink === null) {
collapseNextElementOnClick(coll[i]);
} else {
expandableNextOuterElementOnClick(collapsibleLink);
}
}
}
function expandableNextOuterElementOnClick(element) {
element.addEventListener("click", function() {
this.parentElement.classList.toggle("expanded");
this.parentElement.classList.toggle("collapsed");
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() {
applyDocumentExpandSettings('switchExpand', 'expandCB', 'expandSettingsCB', '.autoExpand');
applyDocumentExpandSettings('metadataExpandSetting', 'metadataExpandCB', 'metadataExpandSettingCB', '.autoMetadataExpand');
}
function applyDocumentExpandSettings(settingName, buttonId, settingButtonId, targetElementsClass) {
if (localStorage.getItem(settingName) === true || localStorage.getItem(settingName) === 'true') {
var expandSwitchCB = document.getElementById(buttonId);
if (expandSwitchCB != null) {
expandSwitchCB.checked = true;
}
var expandSwitchSettingsCB = document.getElementById(settingButtonId);
if (expandSwitchSettingsCB != null) {
expandSwitchSettingsCB.checked = true;
}
$(targetElementsClass).show();
showDocumentCollapseButton(buttonId);
} else {
$(targetElementsClass).hide();
showDocumentExpandButton(buttonId);
}
}
function switchExpand(inputID, elementsClass) {
var checkBox = document.getElementById(inputID);
if (checkBox.checked == true) {
$(elementsClass).show();
showDocumentCollapseButton(inputID);
} else {
$(elementsClass).hide();
showDocumentExpandButton(inputID);
}
}
function showDocumentCollapseButton(inputID) {
var inputElement = document.getElementById(inputID);
if (inputElement === null) {
return;
}
var collapseTextControl = inputElement.parentElement.querySelector('.collapseTextControl');
collapseTextControl.style.display = "inline";
var expandTextControl = inputElement.parentElement.querySelector('.expandTextControl');
expandTextControl.style.display = "none";
}
function showDocumentExpandButton(inputID) {
var inputElement = document.getElementById(inputID);
if (inputElement === null) {
return;
}
var collapseTextControl = inputElement.parentElement.querySelector('.collapseTextControl');
collapseTextControl.style.display = "none";
var expandTextControl = inputElement.parentElement.querySelector('.expandTextControl');
expandTextControl.style.display = "inline";
}
function switchExpandSettings(checkboxID, settingName) {
var checkBox = document.getElementById(checkboxID);
if (checkBox.checked == true) {
localStorage.setItem(settingName, true);
} else {
localStorage.setItem(settingName, false);
}
}

View file

@ -1,178 +0,0 @@
document.addEventListener('DOMContentLoaded', createTOC(), false);
function createTOC(){
var complexDocElement = document.getElementById("complexDocument");
var tocElement = document.getElementById("tocPlaceHolder");
if (complexDocElement === null || tocElement === null){
console.log("no complex document or no placeholder");
return;
}
addItemsToTOC(complexDocElement,tocElement);
collapseAllTOCElements("tocPlaceHolder");
//show created TOC
tocElement.style.display = "block";
}
function addItemsToTOC(docPart, tocElement){
var docPartChilds = docPart.childNodes;
for (var i = 0; i < docPartChilds.length; i++){
var docPartChild = docPartChilds[i];
if ( docPartChild.nodeType === Node.ELEMENT_NODE && docPartChild.classList.contains("documentPart")){
var tocElementChild = createTOCItem(docPartChild, tocElement);
addItemsToTOC(docPartChild,tocElementChild);
addElementControls(tocElementChild);
}
}
}
function addElementControls(tocElement){
var nameContainer = tocElement.querySelector('.tocElementName');
if (nameContainer === null){
console.log("no nameContainer found");
return;
}
if (tocElement.id === null){
console.log("no tocElement id found");
return;
}
var elementChild = tocElement.querySelector('.tocElement');
if (elementChild === null){
var leafImage = document.createElement("img");
leafImage.className = "tocElementLeafImage";
leafImage.src = urlsBase + "/themes/iph/images/circle-item.svg";
nameContainer.prepend(leafImage);
} else {
var switchImage = document.createElement("img");
switchImage.onclick = function() {switchTOCElement(tocElement.id);};
switchImage.className = "tocElementSwitchImage";
nameContainer.prepend(switchImage);
}
}
function switchTOCElement(id){
var tocElement = document.getElementById(id);
var elementChild = tocElement.querySelector('.tocElement');
if (elementChild.style.display === "none"){
expandTOCElementChilds(id);
setCollapseImageToElement(id);
} else {
collapseTOCElementDescendants(id);
setExpandImageToElement(id);
}
}
function setCollapseImageToElement(id){
var tocElement = document.getElementById(id);
var nameContainer = tocElement.querySelector('.tocElementName');
if (nameContainer === null){
console.log("no nameContainer found");
return;
}
$.extend(this, urlsBase);
var imgElement = nameContainer.querySelector('.tocElementSwitchImage');
if (imgElement != null){
imgElement.src = urlsBase + "/themes/iph/images/arrow-top-small.svg";
}
}
function setExpandImageToElement(id){
var tocElement = document.getElementById(id);
var nameContainer = tocElement.querySelector('.tocElementName');
if (nameContainer === null){
console.log("no nameContainer found");
return;
}
$.extend(this, urlsBase);
var imgElement = nameContainer.querySelector('.tocElementSwitchImage');
if (imgElement != null){
imgElement.src = urlsBase + "/themes/iph/images/arrow-down-small.svg";
}
}
function expandTOCElementChilds(id){
var tocElement = document.getElementById(id);
var elementChilds = tocElement.querySelectorAll(':scope > .tocElement');
for (let i = 0; i < elementChilds.length; i++) {
elementChilds[i].style.display = "block";
setExpandImageToElement(elementChilds[i].id);
}
}
function expandTOCElementDescendants(id){
var tocElement = document.getElementById(id);
var elementChilds = tocElement.querySelectorAll('.tocElement');
for (let i = 0; i < elementChilds.length; i++) {
elementChilds[i].style.display = "block";
setExpandImageToElement(elementChilds[i].id);
}
}
function collapseAllTOCElements(placeHolderId){
var tocRoot = document.getElementById(placeHolderId);
var elementChilds = tocRoot.querySelectorAll('.tocElement');
for (let i = 0; i < elementChilds.length; i++) {
collapseTOCElementDescendants(elementChilds[i].id);
setExpandImageToElement(elementChilds[i].id);
}
}
function expandAllTOCElements(placeHolderId){
var tocRoot = document.getElementById(placeHolderId);
var elementChilds = tocRoot.querySelectorAll('.tocElement');
for (let i = 0; i < elementChilds.length; i++) {
expandTOCElementDescendants(elementChilds[i].id);
setCollapseImageToElement(elementChilds[i].id);
}
}
function collapseTOCElementDescendants(id){
var tocElement = document.getElementById(id);
var elementChilds = tocElement.querySelectorAll('.tocElement');
for (let i = 0; i < elementChilds.length; i++) {
elementChilds[i].style.display = "none";
setCollapseImageToElement(elementChilds[i].id);
}
}
function createTOCItem(docPart, tocElement){
var newTOCElement = document.createElement("div");
var newTOCElementName = document.createElement("div");
var anchor = docPart.getAttribute('id');
var tocElementID = "toc-" + anchor;
newTOCElement.id = tocElementID;
var docPartButton = docPart.previousElementSibling;
var itemName = docPartButton.textContent;
var link = document.createElement("a");
link.setAttribute("href", "javascript:goToDocumentPart(\"" + anchor + "\");" );
link.innerText = itemName;
newTOCElement.appendChild(newTOCElementName);
newTOCElementName.appendChild(link);
newTOCElement.className = "tocElement";
newTOCElementName.className = "tocElementName";
tocElement.appendChild(newTOCElement);
return newTOCElement;
}
function goToDocumentPart(targetId){
if (targetId ===""){
return;
}
var targetNode = document.getElementById(targetId);
if (targetNode === null){
console.log("document has no target node to go to")
return;
}
showParents(targetNode);
document.getElementById(targetId).scrollIntoView();
}
function showParents(targetNode){
if (targetNode != null && "complexDocument" !== targetNode.id){
if (targetNode.style.display === "none") {
targetNode.style.display = "block";
}
showParents(targetNode.parentElement);
}
}

View file

@ -13,35 +13,26 @@
<#else> <#else>
${copyright.text} ${copyright.text}
</#if> </#if>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/"><img alt="Creative Commons" style="border-width:0;" src="https://i.creativecommons.org/l/by-nc-nd/4.0/80x15.png" /></a></small> | <a class="terms" href="${urls.termsOfUse}" title="${i18n().menu_termuse}">${i18n().menu_termuse}</a></small> |
</#if> </#if>
<a class="powered-by-vivo" href="http://vivoweb.org" target="_blank" title="${i18n().menu_powered} VIVO">Powered by <strong>VIVO</strong></a> ${i18n().menu_powered} <a class="powered-by-vivo" href="http://vivoweb.org" target="_blank" title="${i18n().menu_powered} VIVO"><strong>VIVO</strong></a>
<#if user.hasRevisionInfoAccess> <#if user.hasRevisionInfoAccess>
${i18n().menu_version} <a href="${version.moreInfoUrl}" title="${i18n().menu_version}">${version.label}</a> | ${i18n().menu_version} <a href="${version.moreInfoUrl}" title="${i18n().menu_version}">${version.label}</a>
</#if> </#if>
</p> </p>
<#-- <nav role="navigation">
<ul id="footer-nav" role="list">
<li role="listitem"><a href="${urls.about}" title="${i18n().menu_about}">${i18n().menu_about}</a></li>-->
<#-- <#if urls.contact??> <nav role="navigation">
<ul id="footer-nav" role="list">
<li role="listitem"><a href="${urls.about}" title="${i18n().menu_about}">${i18n().menu_about}</a></li>
<#if urls.contact??>
<li role="listitem"><a href="${urls.contact}" title="${i18n().menu_contactus}">${i18n().menu_contactus}</a></li> <li role="listitem"><a href="${urls.contact}" title="${i18n().menu_contactus}">${i18n().menu_contactus}</a></li>
</#if> </#if>
<li role="listitem"><a href="http://www.vivoweb.org/support" target="blank" title="${i18n().menu_support}">${i18n().menu_support}</a></li> --> <li role="listitem"><a href="http://www.vivoweb.org/support" target="blank" title="${i18n().menu_support}">${i18n().menu_support}</a></li>
</ul> </ul>
</nav> </nav>
<button id="scrollToTopBtn">${i18n().scroll_to_top_label}</button>
<script>
var scrollToTopBtn = document.getElementById("scrollToTopBtn");
var rootElement = document.documentElement;
function scrollToTop() {
rootElement.scrollTo({
top: 0,
behavior: "smooth"
});
}
scrollToTopBtn.addEventListener("click", scrollToTop)
</script>
</div> </div>
</footer> </footer>

View file

@ -36,4 +36,3 @@ an individual profile page. -->
${headContent!} ${headContent!}
<link rel="shortcut icon" type="image/x-icon" href="${urls.base}/favicon.ico"> <link rel="shortcut icon" type="image/x-icon" href="${urls.base}/favicon.ico">
<#include "statistic_counters.ftl">

View file

@ -1,7 +1,7 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ --> <#-- $This file is distributed under the terms of the license in LICENSE$ -->
<header id="branding" role="banner"> <header id="branding" role="banner">
<div id="topArea">
<h1 class="vivo-logo"><a title="${i18n().identity_title}" href="${urls.home}"><span class="displace">${siteName}</span></a></h1> <h1 class="vivo-logo"><a title="${i18n().identity_title}" href="${urls.home}"><span class="displace">${siteName}</span></a></h1>
<#-- Since we are using a graphic text for the tagline, we won't render ${siteTagline} <#-- Since we are using a graphic text for the tagline, we won't render ${siteTagline}
<#if siteTagline?has_content> <#if siteTagline?has_content>
@ -50,5 +50,4 @@
</ul> </ul>
</nav> </nav>
</div> </header>
</header>

View file

@ -44,7 +44,7 @@
<!-- Contact Info --> <!-- Contact Info -->
<div id="individual-tools-people"> <div id="individual-tools-people">
<span id="iconControlsLeftSide"> <span id="iconControlsLeftSide">
<img id="uriIcon" title="${individual.uri}" src="${urls.base}/themes/iph/images/uricon-icon.png" alt="${i18n().uri_icon}"/> <img id="uriIcon" title="${individual.uri}" src="${urls.images}/individual/uriIcon.gif" alt="${i18n().uri_icon}"/>
<#if checkNamesResult?has_content > <#if checkNamesResult?has_content >
<img id="qrIcon" src="${urls.images}/individual/qr_icon.png" alt="${i18n().qr_icon}" /> <img id="qrIcon" src="${urls.images}/individual/qr_icon.png" alt="${i18n().qr_icon}" />
<span id="qrCodeImage" class="hidden">${qrCodeLinkedImage!} <span id="qrCodeImage" class="hidden">${qrCodeLinkedImage!}

View file

@ -1,28 +0,0 @@
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#-- Icon controls displayed in upper-right corner -->
<img id="uriIcon" title="${individual.uri}" src="${urls.base}/themes/iph/images/share-icon.png" alt="${i18n().share_the_uri}"/>
<#if checkNamesResult?has_content >
<img id="qrIcon" src="${urls.images}/individual/qr-code-icon.png" alt="${i18n().qr_icon}" />
<span id="qrCodeImage" class="hidden">${qrCodeLinkedImage!}
<a class="qrCloseLink" href="#" title="${i18n().qr_code}">${i18n().close_capitalized}</a>
</span>
</#if>
<#--
Some contact information is displayed on the profile page by default; e.g., phone numbes and
email addresses. If an institution has an additional location for contact info, such as a
university directory, a third "contact" icon is available that can be used to direct users to
that directory. The <a> tag below shows an example using Cornell University's directory.
<#assign netid = individual.selfEditingId()!>
<#if netid?has_content>
<a href="http://www.cornell.edu/search/?tab=people&netid=${netid}" title="Cornell University directory entry for ${netid}" target="_blank">
<img src="${urls.images}/individual/contact-info-icon.png" title="view additional contact information" alt="contact info" />
</a>
</#if>
-->

View file

@ -7,17 +7,19 @@
<head> <head>
<#include "head.ftl"> <#include "head.ftl">
</head> </head>
<script>var urlsBase = "${urls.base}";</script>
<body class="${bodyClasses!}" onload="${bodyOnload!}"> <body class="${bodyClasses!}" onload="${bodyOnload!}">
<#include "identity.ftl"> <#include "identity.ftl">
<#include "menu.ftl"> <#include "menu.ftl">
<div id="articleWrapper"> <div id="articleWrapper">
<#if currentServlet = "individual"||currentServlet = "display"||currentServlet = "entity"> <#if currentServlet = "individual" && currentServlet != "display">
<#include "rightPanel.ftl"> <div id="searchRightpanel">
<#include "customsearchpanel.ftl" >
</div>
</#if> </#if>
<#include "contentWrapper.ftl"> <#include "contentWrapper.ftl">
<#if currentServlet != "individual" && currentServlet != "login" && currentServlet != "display" && currentServlet != "customsearch" && currentServlet != "entity"> <#if currentServlet != "individual" && currentServlet != "login" && currentServlet != "display">
<section id="search-home" role="region"> <section id="search-home" role="region">
<h3><span class="search-filter-selected">filteredSearch</span></h3> <h3><span class="search-filter-selected">filteredSearch</span></h3>

View file

@ -1,29 +1,36 @@
<div id="querybuilder-container" style="display:none;"> <div id="querybuilder-container" style="display:none;">
<div id="CounterSearchWrapper"> <div id="CounterSearchWrapper">
<div id="builder"> <div id="builder">
<div id="SearchTitle">${i18n().extended_search_label}</div> <div id="SearchTitle">Параметры поиска</div>
</div> </div>
<div class="btn-group-bottom"> <div class="btn-group-bottom">
<div id="settingsButtons"> <div id="settingsButtons">
<div id="OuterWrapperButtons"> <div id="OuterWrapperButtons">
<div id="wrapperButtons"> <div id="wrapperButtons">
<button id="btn-set" class="btn btn-success set-json" data-target="basic">${i18n().extended_search_example}</button> <button id="btn-set" class="btn btn-success set-json" data-target="basic">Пример заполнения</button>
<button id="btn-reset-button" class="btn btn-warning reset" data-target="basic">${i18n().extended_search_clean}</button> <button id="btn-reset-button" class="btn btn-warning reset" data-target="basic">Очистить</button>
<!-- <button id="btn-get" class="btn btn-primary parse-json" data-target="basic">Get rules</button> --> <!-- <button id="btn-get" class="btn btn-primary parse-json" data-target="basic">Get rules</button> -->
<div id="SelectResults"> <div id="SelectResults">
<label style="display:inline;" for="hitsPerPage">${i18n().extended_search_results_on_page}</label> <label style="display:inline;" for="hitsPerPage">Результатов на страницу</label>
<@selectHitsPerPage/> <select name="hitsPerPage" id="hitsPerPageSelect">
<option value="20" selected="selected">20</option>
<option value="40">40</option>
<option value="60">60</option>
<option value="80">80</option>
<option value="100">100</option>
</select>
</div> </div>
</div> </div>
</div> </div>
<button id="btn-search-expand" class="btn btn-warning reset" data-target="basic">${i18n().extended_search_execute_search}</button> <button id="btn-search-expand" class="btn btn-warning reset" data-target="basic">Поиск</button>
</div> </div>
</div> </div>
</div> </div>
<div id="backgroundForm"> <div id="backgroundForm">
<button id="btn-get-standard-searchform" class="btn btn-warning reset" data-target="basic">${i18n().open_standard_search_form}</button> <button id="btn-get-standard-searchform" class="btn btn-warning reset" data-target="basic">Стандартная форма поиска</button>
</div> </div>
</div> </div>
<script src="themes/iph/js/query-builder.standalone.min.js"></script> <script src="themes/iph/js/query-builder.standalone.min.js"></script>
<script src="themes/iph/js/query-builder.ru.js"></script> <script src="themes/iph/js/query-builder.ru.js"></script>
<script> <script>
@ -116,7 +123,7 @@
rules: rules_start rules: rules_start
}); });
$('#btn-reset-button').on('click', function() { $('#btn-reset').on('click', function() {
$('#builder').queryBuilder('reset'); $('#builder').queryBuilder('reset');
}); });
@ -131,13 +138,24 @@
}); });
$('#btn-search-expand').on('click', function() { //$('#btn-get').on('click', function() {
var json_result = $('#builder').queryBuilder('getRules', { get_flags: true }); // var result = $('#builder').queryBuilder('getRules');
//
// if (!$.isEmptyObject(result)) {
// alert(JSON.stringify(result, null, 2));
// }
//
// });
$('#btn-search').on('click', function() {
var json_result = $('#builder').queryBuilder('getRules');
var query_string = format_query_string(json_result,""); var query_string = format_query_string(json_result,"");
var hits = $("#hitsPerPageSelect :selected"); var hits = $("#hitsPerPageSelect :selected");
if (!$.isEmptyObject(query_string)) { if (!$.isEmptyObject(query_string)) {
localStorage.setItem('queryBuilderForm',JSON.stringify(json_result)); <#if !queryBuilderRules??>
localStorage.setItem('queryBuilderFormSaved',true); localStorage.setItem('queryBuilderForm',JSON.stringify(json_result));
localStorage.setItem('queryBuilderFormSaved',true);
</#if>
var queryURL = "${urls.base}/customsearch?querytext=" + query_string; var queryURL = "${urls.base}/customsearch?querytext=" + query_string;
if (hits !== null){ if (hits !== null){
queryURL = queryURL.concat("&hitsPerPage=",hits.text()); queryURL = queryURL.concat("&hitsPerPage=",hits.text());
@ -150,90 +168,29 @@
//} //}
}); });
function format_query_string(json_query, string_query, htmlEncode = true){ function format_query_string(json_query, string_query){
if ('condition' in json_query && 'rules' in json_query ){ if ('condition' in json_query && 'rules' in json_query ){
if (json_query.rules.length > 1 ) { if (json_query.rules.length > 1 ) {
string_query +=" ( "; string_query +=" ( ";
var i; var i;
for (i = 0; i < json_query.rules.length; i++) { for (i = 0; i < json_query.rules.length; i++) {
string_query = format_query_string(json_query.rules[i], string_query, htmlEncode); string_query = format_query_string(json_query.rules[i], string_query);
if (i + 1 < json_query.rules.length){ if (i + 1 < json_query.rules.length){
string_query += " " + json_query.condition + " "; string_query += " " + json_query.condition + " ";
} }
} }
string_query +=" ) "; string_query +=" ) ";
} else { } else {
string_query = format_query_string(json_query.rules[0], string_query, htmlEncode); string_query = format_query_string(json_query.rules[0], string_query);
} }
} else if ( 'field' in json_query && 'value' in json_query ){ } else if ( 'field' in json_query && 'value' in json_query ){
if ('operator' in json_query && json_query.operator.startsWith("not_")){ if ('operator' in json_query && json_query.operator.startsWith("not_")){
string_query += "NOT "; string_query += "NOT ";
} }
if (json_query.hasOwnProperty('data') && json_query.data.hasOwnProperty('value')){ string_query += json_query.field + ":" + json_query.value.toString().replace(/[']+/g,'').replace(/#/g,'%23') ;
var value = "\"" + json_query.data.value.toString()+ "\"";
} else {
var value = json_query.value.toString();
}
if (htmlEncode){
string_query += json_query.field + ":" + value.replace(/[']+/g,'').replace(/#/g,'%23') ;
} else {
string_query += json_query.field + ":" + value.replace(/[']+/g,'');
}
} }
return string_query; return string_query;
} }
function excludeDocByURI(name, uri){
var allRules = $('#builder').queryBuilder('getRules', { get_flags: true });
var excludeRuleString = '{ "id": "URI", "field": "URI", "type": "string", "flags":{}, "input": "text", "operator": "not_contains", "data":{} }';
var excludeRule = JSON.parse(excludeRuleString);
excludeRule.data.value = uri;
excludeRule.flags.value_readonly = true;
excludeRule.flags.filter_readonly = true;
excludeRule.flags.operator_readonly = true;
excludeRule.value = name;
if (allRules !== null){
if (allRules.condition === "AND"){
allRules.rules.push(excludeRule);
} else {
var outerRulesString = '{ "condition": "AND", "rules": [] }';
var outerRules = JSON.parse(outerRulesString);
outerRules.rules.push(allRules);
outerRules.rules.push(excludeRule);
allRules = outerRules;
}
$('#builder').queryBuilder('setRules', allRules);
var elements = document.querySelectorAll('[parturi="' + uri + '"]');
var i;
for (i = 0; i < elements.length; i++) {
elements[i].parentElement.remove();
}
}
}
function createRemoveButtons(){
$('.compilationDraftExcerpt').each(function(index){ createRemoveButton(this)});
}
function createRemoveButton(element){
var uri = element.getAttribute('parturi');
var button = element.querySelector('button');
var name = button.textContent;
var a = document.createElement('a');
a.setAttribute('href',"javascript:excludeDocByURI(\'" + escapeQutes(name) + "\',\'" + escapeQutes(uri) + "\');");
a.setAttribute('class',"removeDocFromSearch");
a.textContent = "${i18n().remove_doc_from_search_results}" ;
button.appendChild(a);
}
function escapeQutes(input) {
return input
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;")
}
</script> </script>
<#macro freeField field > <#macro freeField field >
{ {
@ -270,19 +227,3 @@
operators: ['contains', 'not_contains'] operators: ['contains', 'not_contains']
}, },
</#macro> </#macro>
<#macro selectHitsPerPage>
<#if !hitsPerPage?? >
<#assign hitsPerPage = 20 >
</#if>
<#assign hitsValues= [20,40,60,80,100]>
<select name="hitsPerPage" id="hitsPerPageSelect">
<option value="${hitsPerPage}" selected="selected">${hitsPerPage}</option>
<#list hitsValues as hppValue>
<#if hppValue != hitsPerPage>
<option value="${hppValue}">${hppValue}</option>
</#if>
</#list>
</select>
</#macro>

View file

@ -1,17 +0,0 @@
<div id="searchRightpanel">
<div id="articleIconsWrapper">
</div>
<#include "customsearchpanel.ftl" >
<div id="tocPlaceHolder" style="display:none;">
<div id="tocName">${i18n().toc_label}</div>
<div id="wrapperTocButtons">
<div id="tocExpandAll" onclick="javascript:expandAllTOCElements('tocPlaceHolder');">${i18n().expand_something}
<img id="tocExpandImageAll" onclick="javascript:expandAllTOCElements('tocPlaceHolder');" src="${urls.base}/themes/iph/images/all-toc-expand.svg"/>
</div>
<div id="tocCollapseAll" onclick="javascript:collapseAllTOCElements('tocPlaceHolder');">${i18n().collapse_something}
<img id="tocCollapseImageAll" onclick="javascript:collapseAllTOCElements('tocPlaceHolder');" src="${urls.base}/themes/iph/images/all-toc-collapse.svg"/>
</div>
</div>
</div>
</div>

View file

@ -1,6 +1,6 @@
<div id="simple-search-container"> <div id="simple-search-container">
<#include "customSearchForm.ftl"> <#include "customSearchForm.ftl">
<button id="switch-to-extended-searchform">${i18n().extended_search_label}</button> <button id="switch-to-extended-searchform">Расширенный поиск</button>
</div> </div>
<#include "queryBuilder.ftl"> <#include "queryBuilder.ftl">

View file

@ -1,254 +0,0 @@
<#macro showRubrics>
<#assign currentRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if currentRubrics?? && currentRubrics?has_content>
<div class="label collapsible">${i18n().metadata_relates_to_rubrics} <@p.addLink currentRubrics editable /> <@p.verboseDisplay currentRubrics /></div>
<#if rubrics?? && rubrics?has_content>
<#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>
</#if>
<br/>
</#if>
</#macro>
<#macro showIssue>
<#assign issue = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#issue")!>
<#if issue.statements?has_content && issue.type == "data">
<div class="issue" style="list-style:none;">
<div class="label">${i18n().metadata_relates_to_issue}</div>
<@p.dataPropertyList issue editable />
</div>
</#if>
</#macro>
<#macro showYear>
<#assign year = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#year")!>
<#if year.statements?has_content && year.type == "data">
<div class="year" style="list-style:none;">
<div class="label">${i18n().metadata_year}</div>
<@p.dataPropertyList year editable />
</div>
</#if>
</#macro>
<#macro documentRubrics >
<#assign docRubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if ( docRubrics?? && docRubrics?has_content ) || (rubrics?? && rubrics?has_content)>
<div class="<#if rubrics?? && rubrics?has_content>collapsible collapsed</#if>" ><div class="collapsibleLink" style="display:inline;">${i18n().metadata_relates_to_rubrics}</div>
<#if docRubrics?? && docRubrics?has_content >
<@p.addLink docRubrics editable /> <@p.verboseDisplay docRubrics /><br/>
</#if>
</div>
</#if>
<#if rubrics?? && rubrics?has_content>
<div class="expandedContent autoMetadataExpand" style="display:none;">
<#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>
<#macro arrangeDocumentParts >
<div id="complexDocument" class="complexDocument articleParts" style="display:block;">
<#assign lastLevel = 0 >
<#list paths as order>
<#-- ${order.path} -->
<#list excerpts as excerptProperties>
<#if order.elenphExcerpt?has_content && excerptProperties.elenphExcerpt == order.elenphExcerpt>
<#assign excerptText = excerptProperties.htmlContent >
<#assign excerptTextName = excerptProperties.htmlLabel >
<#assign worksCounter = excerptProperties.worksCounter >
<#assign bibliographyCounter = excerptProperties.bibliographyCounter >
</#if>
</#list>
<@startDocumentPart order.level?number order.path lastLevel/>
<#if excerptText?? && excerptTextName?? && excerptTextName?has_content && excerptText?has_content>
<div class="htmlExcerpt" style="list-style:none;">
${excerptText}
</div>
<@arrangeSources works worksCounter?number order.path order.elenphExcerpt />
<@arrangeLiterature bibliography bibliographyCounter?number order.path order.elenphExcerpt />
</#if>
<#assign lastLevel = order.level?number >
</#list>
<@endDocumentPart lastLevel />
<@arrangeSources works works?size "anchor-all-sources" />
<@arrangeLiterature bibliography bibliography?size "anchor-all-literature" />
</div>
</#macro>
<#macro startDocumentPart newLevel path lastLevel=0 >
<#assign depth = newLevel - lastLevel >
<#if depth == 0>
<@closeDocPart 1 />
<@openDocPart 1 path />
<#elseif depth &gt; 0>
<@openDocPart depth path />
<#else >
<@closeDocPart -depth+1 />
<@openDocPart 1 path />
</#if>
</#macro>
<#macro endDocumentPart lastLevel newLevel=0>
<#assign depth = lastLevel - newLevel >
<#if depth &gt; 0>
<@closeDocPart depth />
</#if>
</#macro>
<#macro closeDocPart count>
<#list 1..count as x>
</div>
</#list>
</#macro>
<#macro openDocPart count path >
<#if excerptTextName??>
<#assign buttonText = excerptTextName >
<#else>
<#assign buttonText = "No text" >
</#if>
<#list 1..count as x>
<button type="button" style="border:none;width: 100%; text-align:left;" class="collapsible">${buttonText}</button>
<div class="documentPart autoExpand articleExcerpt" id="anchor-${path}" style="display:block;">
</#list>
</#macro>
<#macro arrangeSources sources counter identifier filter="none">
<#if sources?? && sources?has_content && counter &gt; 0>
<@compress single_line=true>
<button type="button" class="collapsible" style="border: none; color: #8B4513;width: 100%;text-align:left; background-color: #ffffff; background-image: url(${urls.base}/themes/iph/images/book_icon.png); background-repeat: no-repeat; background-position: left center;">
<#if filter="none">
${i18n().sources_all_button_text}
<#else>
${i18n().sources_excerpt_button_text}
</#if>
</button>
</@compress>
<div class="autoExpand documentPart works" id="anchor-${identifier}-sources" style="display:block;">
<#assign lastSource = ""/>
<#list sources as source>
<#if filter == "none" && lastSource != source.works || source.excerpt == filter >
<#assign lastSource = source.works/>
<div class="work" style="display:list-item;list-style-image:url(${urls.base}/themes/iph/images/bullet_icon.png); font-style: italic; font-family: PT Serif;">
<p> ${source.works} </p>
</div>
</#if>
</#list>
</div>
</#if>
</#macro>
<#macro arrangeLiterature literature counter identifier filter="none">
<#if literature?? && literature?has_content && counter &gt; 0>
<@compress single_line=true>
<button type="button" class="collapsible" style="border:none; color: #8B4513;width: 100%; text-align: left; background-color: #ffffff; background-image: url(${urls.base}/themes/iph/images/book_icon.png); background-repeat: no-repeat; background-position: left center;">
<#if filter="none">
${i18n().literature_all_button_text}
<#else>
${i18n().literature_excerpt_button_text}
</#if>
</button>
</@compress>
<div class="autoExpand documentPart bibliography" id="anchor-${identifier}-literature" style="display:block;">
<#assign lastLiterature = ""/>
<#list literature as literatureItem>
<#if filter == "none" && lastLiterature != literatureItem.bibliography || literatureItem.excerpt == filter >
<#assign lastLiterature = literatureItem.bibliography/>
<div class="bibliography_entry" style="display:list-item;list-style-image:url(${urls.base}/themes/iph/images/bullet_icon.png); font-style: italic; font-family: PT Serif;">
<p> ${literatureItem.bibliography} </p>
</div>
</#if>
</#list>
</div>
</#if>
</#macro>
<#macro authors_metadata>
<#if authors?? && authors?has_content>
<div class="collapsible collapsed">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_authors}</div>
</div>
<div class="expandedAuthors autoMetadataExpand" style="display:none;">
<#list authors as author>
<div class="affilation">
<b><#if author.authorFamily??>${author.authorFamily}&nbsp;</#if><#if author.authorGivenName??>${author.authorGivenName}</#if></b>
<#if author.orgName??>
<span class="authorOrgName">${author.orgName}</span>
</#if>
<#if author.orgAddress??>
<br>
<span class="authorOrgAdress">${i18n().metadata_org_address}<#if author.orgPostalCode??>${author.orgPostalCode},&nbsp;</#if>${author.orgAddress}&nbsp;</span>
<br>
</#if>
</div>
</#list>
</div>
</#if>
</#macro>
<#macro authors_underline>
<#if authors?? && authors?has_content>
<div class="authors" style="display:block;float:right; margin:15px;">
<#list authors as author>
<#if author.authorFamily??>${author.authorFamily?trim}<#if author.authorInitials??>&nbsp;${author.authorInitials?trim}</#if></#if><#sep>, </#sep>
</#list>
</div>
</#if>
</#macro>
<#macro expandMetadataSwitch>
<div class="expandSwitch">
<label class="switch">
<div class="expandTextControl">${i18n().expand_metadata_switch}<img src="${urls.base}/themes/iph/images/arrow-down.svg"/></div>
<div class="collapseTextControl">${i18n().collapse_metadata_switch}<img src="${urls.base}/themes/iph/images/arrow-top.svg"/></div>
<input id="metadataExpandCB" type="checkbox" onclick="switchExpand('metadataExpandCB','.autoMetadataExpand');">
</label>
</div>
</#macro>
<#macro expandSwitch>
<div class="expandSwitch">
<label class="switch">
<div class="expandTextControl">${i18n().expand_doc_switch}<img src="${urls.base}/themes/iph/images/arrow-down.svg"/></div>
<div class="collapseTextControl">${i18n().collapse_doc_switch}<img src="${urls.base}/themes/iph/images/arrow-top.svg"/></div>
<input id="expandCB" type="checkbox" onclick="switchExpand('expandCB','.autoExpand');">
</label>
</div>
</#macro>
<#macro userSettingsModal>
<button id="userViewSettings">
<img onclick="javascript:showUserSettingsModal();" src="${urls.base}/themes/iph/images/settings.svg">
</button>
<div id="userSettingsModal" class="modal" style="display:none;">
<div class="modal-content">
<div class="modalWrapper">
<div id="titleSettings">${i18n().user_settings_label}</div>
<span id="closeModalWindow">&times;</span>
</div>
<label>
<div>${i18n().user_settings_always_open_full_doc}</div>
<input id="expandSettingsCB" type="checkbox" onclick="switchExpandSettings('expandSettingsCB','switchExpand');">
</label>
<label>
<div>${i18n().user_settings_always_open_metadata}</div>
<input id="metadataExpandSettingsCB" type="checkbox" onclick="switchExpandSettings('metadataExpandSettingsCB','metadataExpandSetting');">
</label>
</div>
</div>
</#macro>