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 searchIndex: <java:edu.cornell.mannlib.vitro.webapp.searchindex#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:vivodocumentModifier_excerptsInComplexPublications
:vivodocumentModifier_excerptsInArticles
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
rdfs:label "Populate complex publications with excerpts" ;
rdfs:label "Elenph article excerpts" ;
:hasTargetField "ALLTEXT" ;
:hasSelectQuery """
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#>
SELECT DISTINCT ?value
WHERE {
?uri ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
VALUES ?property { ts:works ts:bibliography ts:htmlExcerpt ts:keywords }
?excerpt ?property ?value .
?uri rdf:type ts_:elenphArticle .
?uri ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
VALUES ?property { ts_:works ts_:bibliography ts_:htmlExcerpt ts_:keywords }
?elenphExcerpt ?property ?value .
}
""" .
:vivoUriFinder_excerptsInComplexPublications
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
:vivodocumentModifier_PopulateText
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
rdfs:label "Html text to text field" ;
:hasTargetField "text" ;
:hasSelectQuery """
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#>
SELECT DISTINCT ?htmlExcerpt
WHERE {
{
?uri rdf:type ts:textExcerpt .
?uri ts:htmlExcerpt ?htmlExcerpt .
?uri rdf:type ts_:textExcerpt .
?uri ts_:htmlExcerpt ?htmlExcerpt .
}
UNION
{
?uri rdf:type ts:complexPublication .
?uri ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
?excerpt ts:htmlExcerpt ?htmlExcerpt .
?uri rdf:type ts_:publication .
?uri ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
?artExcerpt ts_:htmlExcerpt ?htmlExcerpt .
}
}
""" .
@ -79,22 +52,22 @@
:hasTargetField "rubrics" ;
:hasSelectQuery """
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 pr: <https://iph.ras.ru/relationships#>
SELECT DISTINCT ?rubric
WHERE {
{
?uri rdf:type ts:textExcerpt .
?uri rdf:type ts_:elenphExcerpt .
?uri pr:belongsTo ?assignedRubric .
?assignedRubric (pr:hasParent)* ?rubric .
}
UNION
{
?uri rdf:type ts:complexPublication .
?uri ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
?excerpt pr:belongsTo ?assignedRubric .
?uri rdf:type ts_:elenphArticle .
?uri ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
?artExcerpt pr:belongsTo ?assignedRubric .
?assignedRubric (pr:hasParent)* ?rubric .
}
}
@ -122,20 +95,20 @@
:hasTargetField "keywords" ;
:hasSelectQuery """
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#>
SELECT DISTINCT ?keywords
WHERE {
{
?uri rdf:type ts:elenphArticle .
?uri ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt .
?elenphExcerpt ts:keywords ?keywords .
?uri rdf:type ts_:elenphArticle .
?uri ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:keywords ?keywords .
}
UNION
{
?uri rdf:type ts:elenphExcerpt .
?uri ts:keywords ?keywords .
?uri rdf:type ts_:elenphExcerpt .
?uri ts_:keywords ?keywords .
}
}
""" .
@ -147,20 +120,20 @@
:hasTargetField "bibliography" ;
:hasSelectQuery """
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#>
SELECT DISTINCT ?bibliography
WHERE {
{
?uri rdf:type ts:elenphArticle .
?uri ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt .
?elenphExcerpt ts:bibliography ?bibliography .
?uri rdf:type ts_:elenphArticle .
?uri ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:bibliography ?bibliography .
}
UNION
{
?uri rdf:type ts:elenphExcerpt .
?uri ts:bibliography ?bibliography .
?uri rdf:type ts_:elenphExcerpt .
?uri ts_:bibliography ?bibliography .
}
}
""" .

View file

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

View file

@ -14,10 +14,8 @@
""" .
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDeleteQuery """
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 ?author ?organization
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc ?excerpt
WHERE {
?individualURI rdf:type ts:elenphArticle .
OPTIONAL {
?individualURI ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
@ -25,13 +23,7 @@
?tocElement ts:hasTOCItem ?tocItem .
}
OPTIONAL {
?tocElement ts:hasText ?excerpt .
OPTIONAL {
?excerpt ts:hasAuthor ?author .
OPTIONAL {
?author ts:affiliatedWith ?organization .
}
}
?tocElement ts_:hasText ?excerpt .
}
}
}
@ -43,6 +35,6 @@
WHERE
{
?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:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
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
WHERE {
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) ?tocElement ?elenphExcerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
?tmpTOCItem rdf:type ts_:TOCItem .
@ -56,11 +56,12 @@ display:getArticleExcerptPathsDataGetter
?tocElement ts_:hasText ?elenphExcerpt .
}
{
SELECT ?elenphArticle ?tocElement
SELECT ?elenphArticle ?tocElement
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
?tocElement rdf:type ts_:TOCLevel .
?individualURI rdf:type ts_:elenphArticle .
}
}
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
@ -74,11 +75,11 @@ display:getArticleBibliographyDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?bibliography ?excerpt
SELECT DISTINCT ?bibliography ?elenphExcerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
?excerpt ts_:bibliography ?bibliography .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:bibliography ?bibliography .
} ORDER BY ?bibliography
""" .
@ -90,11 +91,11 @@ display:getArticleWorksDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?works ?excerpt
SELECT DISTINCT ?works ?elenphExcerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
?excerpt ts_:works ?works .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:works ?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: /visualizationData/ # 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>
<div class="searchResult">
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
<@p.displayTitle individual />
<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="//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>')}
<#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp>
<#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%;">
<#include "individual-adminPanel.ftl">
<header>
<div id="articleHeaderWrapper">
<div id="articleTitleWrapper">
<#if relatedSubject??>
<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>
@ -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>>
<#-- Label -->
<@p.label individual editable labelCount localesCount/>
<#if editable>
<@p.deleteIndividualLink individual />
</#if>
<@p.deleteIndividualLink individual />
</h1>
<#-- 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")!>
@ -70,32 +64,19 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<@p.mostSpecificTypesPerson individual editable/>
</#if>
</#if>
</div>
<div class="articleToolsContainer">
<div class="metadataSwitch">
<@expandMetadataSwitch />
</div>
<div class="toolsWrapper">
<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>
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<#include "individual-iconControls.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
</header>
<!-- Positions -->
<#include "individual-positions.ftl">
<!-- Overview -->
<#if !editable>
<p></p>
</#if>
<#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>
<#assign rawQueryString = statement.value!>
</#list>
<#if queryBuilderRulesString?? && rawQueryString??>
<form action="${urls.base}/customsearch" method="post">
<input type="hidden" id="queryBuilderRules" name="queryBuilderRules" value='${queryBuilderRulesString}' />
<input type="hidden" id="querytext" name="querytext" value='${rawQueryString}' />
<input type="submit" id="submit" value="${i18n().metadata_query}"/>
</form>
</#if>
<form action="${urls.base}/customsearch" method="post">
<input type="hidden" id="queryBuilderRules" name="queryBuilderRules" value='${queryBuilderRulesString}' />
<input type="hidden" id="querytext" name="querytext" value='${rawQueryString}' />
<input type="submit" id="submit" value="Поисковый запрос"/>
</form>
</#if>
<div class="metaDataName collapsible collapsed">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div>
</div>
<div class="autoMetadataExpand" style="display:none;">
<div class="expandSwitch">
<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")!>
<#if firstPub.statements?has_content && firstPub.type == "data">
<div class="firstPub" style="list-style:none;">
<div class="label">${i18n().metadata_firstPublication}
<div class="label">Первая публикация статьи
</div>
<@p.dataPropertyList firstPub editable />
</div>
</#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>
<@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 /> -->
<#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>
</#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>
<script>
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="//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>')}
<#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp>
<#include "text-lib.ftl">
<#--Number of labels present-->
<#if !labelCount??>
<#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%;">
<#include "individual-adminPanel.ftl">
<header>
<div id="articleHeaderWrapper">
<div id="articleTitleWrapper">
<#if relatedSubject??>
<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>
<#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 -->
<@p.label individual editable labelCount localesCount/>
<#if editable>
<@p.deleteIndividualLink individual />
</#if>
</h1>
<#-- 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")!>
@ -70,33 +61,19 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<@p.mostSpecificTypesPerson individual editable/>
</#if>
</#if>
</div>
<div class="articleToolsContainer">
<div class="metadataSwitch">
<@expandMetadataSwitch />
</div>
<div class="toolsWrapper">
<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>
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<#include "individual-iconControls.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
</header>
<!-- Positions -->
<#include "individual-positions.ftl">
<!-- Overview -->
<#if !editable>
<p></p>
</#if>
<#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/lastName")!>
</#if>
<div class="metaDataName collapsible collapsed">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div>
</div>
<div class="autoMetadataExpand" style="display:none;">
<#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 class="expandSwitch">
<label class="switch">Раскрыть статью
<input id="expandlCB" type="checkbox" onclick="switchExpand();">
</label>
</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 >
<#assign profilePageType = profileType >
@ -160,6 +276,24 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
</span>
</#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>
<script>
var title = $('div#titleContainer').width();

View file

@ -1,23 +1,12 @@
<#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>')}
${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>')}
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
<#-- Individual profile page template for foaf:Person individuals -->
<!--[if IE 7]>
<link rel="stylesheet" href="${urls.base}/css/individual/ie7-standard-view.css" />
<![endif]-->
<#-- <#include "individual-setup.ftl"> -->
<#import "individual-qrCodeGenerator.ftl" as qr>
<#import "lib-vivo-properties.ftl" as vp>
<#include "text-lib.ftl">
<#--Number of labels present-->
<#if !labelCount??>
<#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%;">
<#include "individual-adminPanel.ftl">
<header>
<div id="articleHeaderWrapper">
<div id="articleTitleWrapper">
<#if relatedSubject??>
<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>
@ -71,31 +58,20 @@ ${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/to
<@p.mostSpecificTypesPerson individual editable/>
</#if>
</#if>
</div>
<div class="articleToolsContainer">
<div class="metadataSwitch">
<@expandMetadataSwitch />
</div>
<div class="toolsWrapper">
<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>
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
<#include "individual-iconControls.ftl">
</span>
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
</header>
<!-- Positions -->
<#include "individual-positions.ftl">
<!-- Overview -->
<#if !editable>
</#if>
<p></p>
</#if>
<#include "individual-overview.ftl">
<!-- 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/lastName")!>
</#if>
<div class="metaDataName collapsible collapsed">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div>
</div>
<div class="autoMetadataExpand" style="display:none;">
<#if !editable>
<@authors_metadata />
<#else>
<#assign pubAuthors = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#hasAuthor")!>
<#if pubAuthors?has_content>
<div class="
<#if pubAuthors.statements?has_content >
collapsible collapsed
<#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>
<#if !editable>
<#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>
<#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>
<div class="collapsible collapsed">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_in_articles}</div>
</div>
<div class="expandedArticles autoMetadataExpand" style="display:none;">
<#list articles as article>
<#if article?has_content >
<div class="articleList" style="list-style:none;">
<a href="${urls.base}/individual?uri=${article.articleUri?url}">${article.articleName}</a>
</div>
</#if>
</#list>
<div class="label">В составе статей: </div>
<div>
<#list articles as article>
<#if article?has_content >
<div style="list-style:none;border:none;width: 100%;text-align:left;" class="article">
<a href="${urls.base}/individual?uri=${article.articleUri?url}"">${article.articleName}</a>
</div>
</#if>
</#list>
</div>
</#if>
<#assign rubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
<#if rubrics?has_content>
<div class="collapsible collapsed">
<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;">
<div class="label">Относится к: <@p.addLink rubrics editable /> <@p.verboseDisplay rubrics /> </div>
<#if rubrics.statements?has_content >
<div class="rubricsList" style="list-style:none;">
<div class="rubrics" style="list-style:none;">
<@p.objectProperty rubrics editable />
</div>
</div>
</#if>
</div>
</#if>
<#assign keywords = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#keywords")!>
<#if keywords?has_content >
<div class="collapsible collapsed">
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_keywords} <@p.addLink keywords editable /> <@p.verboseDisplay keywords /></div>
</div>
<div class="expandedKeywords autoMetadataExpand" style="display:none;">
<div class="wrapperExpandedKeywords">
<#if keywords.statements?has_content && keywords.type == "data">
<@p.dataPropertyList keywords editable />
</#if>
</div>
</div>
<div class="label">Ключевые слова: <@p.addLink keywords editable /> <@p.verboseDisplay keywords /> </div>
<#if keywords.statements?has_content && keywords.type == "data">
<div class="keywords" style="list-style:none;">
<@p.dataPropertyList keywords editable />
</div>
</#if>
</#if>
</div>
<#assign htmlExcerpt = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#htmlExcerpt")!>
<#if htmlExcerpt?has_content >
<#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 -->
</div>
<#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>
<#assign works = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#works")!>
<#if works.statements?has_content || editable >
<br/>
<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 />
</div>
</#if>
<#assign biblio= propertyGroups.pullProperty("https://litvinovg.pro/text_structures#bibliography")!>
<#if biblio.statements?has_content || editable >
<br/>
<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 />
</div>
</#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>
<#-- <@dumpAll /> -->
<div class="virtualArticlePart" partUri="${individual.uri}" style="display:none;">
<#list excerptInfo as excerptProperties>
<#if excerptProperties.property == "https://litvinovg.pro/text_structures#htmlExcerpt">
<#assign excerptText = excerptProperties.value >
@ -16,8 +17,7 @@
</#if>
</#list>
<#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;width: 100%; text-align:left;" class="collapsible">${excerptTextName}</button>
<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 excerptAuthor?? && excerptAuthor?has_content>
@ -38,10 +38,10 @@
</div>
</div>
</#if>
</div>
<div class="searchResult">
<div class="excerptSearchResult">
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
<@p.displayTitle individual />
<p class="snippet">${individual.snippet}</p>

View file

@ -5,16 +5,16 @@
<#if !issueName??>
<#assign issueName = article.issue>
<#assign divOpened = true >
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible active">${issueName}</button>
<div class="issue" style="list-style:none; padding: 18px;">
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${issueName}</button>
<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>
<#elseif issueName == article.issue>
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
<#else>
<#assign issueName = article.issue>
</div>
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible active">${issueName}</button>
<div class="issue" style="list-style:none; padding: 18px;">
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${issueName}</button>
<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>
</#if>
</#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>

View file

@ -1,20 +1,16 @@
<#import "lib-vivo-properties.ftl" as vp>
<#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">
<span itemscope itemtype="http://schema.org/Person">
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
<#include "individual-adminPanel.ftl">
<header>
<div id="articleTitleWrapper">
<#if relatedSubject??>
<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>
<#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/>
</h1>
</#if>
@ -22,7 +18,6 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
<#if editable && profilePageTypesEnabled >
<#include "individual-profilePageTypes.ftl">
</#if>
</div>
</header>
</section>
</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")!>
<#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 >
<div style="list-style:none;" class="parentRubric">
<@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")!>
<#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 >
<div style="list-style:none;" class="rubricOrder">
<@p.dataPropertyList order editable />
@ -51,11 +46,11 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if>
<#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;">
<#list childRubrics as childRubric>
<#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>
</div>
</#if>
@ -64,11 +59,11 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if>
<#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;">
<#list childArticles as childArticle>
<#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>
</div>
</#if>
@ -77,11 +72,11 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if>
<#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;">
<#list childExcerpts as childExcerpt>
<#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>
</div>
</#if>
@ -90,7 +85,7 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if>
<#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;">
<#list articles as article>
<#if article?has_content >
@ -103,7 +98,7 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#if>
<#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">
<#list excerpts as excerpt>
<#if excerpt?has_content >
@ -114,3 +109,23 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
</#list>
</div>
</#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>
<#if !rubric.parentUri??>
<#assign childs = rubric.childs?number>
<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>
<div id="rubricFollow">
<a href="individual?uri=${rubric.uri?url}">${i18n().metadata_to_rubric}</a>
</div>
</button>
<@openButton childs=childs/><a style="padding-left:15px;" href="individual?uri=${rubric.uri?url}">${rubric.name}</a></button>
<div class="rubricContents" style="display:none;">
<#if (childs &gt; 0) >
<@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>
<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>
<#if childs &gt; 0>
<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>
<#assign childs = innerRubric.childs?number>
<#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>
<div id="rubricFollow">
<a href="individual?uri=${innerRubric.uri?url}">${i18n().metadata_to_rubric}</a>
</div>
</button>
<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 class="rubricContents" style="display:none;">
<#if (deep &gt; 1) && (childs &gt; 0)>
<@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;*/
border-left: 1px solid #ead6a2 !important;
font-family: Roboto;
}
.query-builder .btn-success.active, .query-builder .btn-success.focus,

View file

@ -1,32 +1,32 @@
menu_contactus = Контакты
menu_welcomestart = Добро пожаловать
menu_copyright = права
menu_support = Поддержка
menu_logout = Выйти
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 = Войти
menu_version = Версия
menu_about = О нас
menu_termuse = Правила использования
menu_powered = Сделано с помощью
menu_login = Log in
menu_version = Version
menu_about = About
menu_termuse = Terms of Use
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_para2 = Browse or search information on people, departments, courses, grants, and publications.
intro_searchvivo = Поиск VIVO
intro_filtersearch = Ограничить поиск
intro_searchvivo = Search VIVO
intro_filtersearch = Filter search
identity_title = VIVO | соединяй делись познавай
identity_title = VIVO | connect share discover
identity_index = Index
identity_edit = Редактировать страницу
identity_admin = Админка
identity_myprofile = Мой профиль
identity_myaccount = Моя учётная запись
identity_user = пользователь
identity_edit = Edit Page
identity_admin = Site Admin
identity_myprofile = My profile
identity_myaccount = My account
identity_user = user
collection_capitalized = Коллекция
place_of_grant = Место получения гранта
email_address = email адрес
collection_capitalized = Collection
place_of_grant = Place of grant
email_address = Email Address
#
# 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 \
accessed via /about and would override all servlet mappings in web.xml.
address_street_one = первая строка адреса
address_street_two = вторая строка адреса
address_street_three = третья строка адреса
address_label = подпись адреса
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 = Loading website image
researchers_in = исследователь в
view = вид
grant_type = тип гранта
researchers_in = researchers in
view = view
grant_type = grant Type
grant_entry_for = grant entry for
regions = регионы
grant_date = дата получения гранта
map_states_string = штатов.
map_state_string = штат.
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 = change selection
view_all_departments = view all academic departments
first_name = Имя
last_name = Фамилия
first_grant = Первый грант
last_grant = Последний грант
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 = Роль рецензента
vivo_profile = профиль VIVO
loading_data = данные загружаются
reviewer_role = Reviewer Role
vivo_profile = VIVO profile
loading_data = loading data
select_award = Selected Award
grants_in_vivo = гранты в VIVO
service_provider_role = Роль предоставителя услуг
view_all_faculty = просмотреть весь факультет
no_grants_for = В данный момент грантов нет грантов для
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 = к
indiv_foafperson_return = вернуться к
no_departments_found = Университетских департаментов не найдено.
leadership_role = Управляющая роль
countries = страны
first_publication = Первая публикация
last_publication = Последняя публикация
research_area = сотрудников департамента спецализирующихся на данной области исследования
password = пароль
limit_search = ограничить поиск
placeholder_image = Изображение-заполнитель
view_all_members_of_org = Просмотреть всех участников данной организации.
display_more = больше
create_entry = Создать запись
attendee_capitalized = Посетитель
no_faculty_found = Членов факультета найдено не было.
create_capitalized = Создать
to = к
enter_new_role_value = Введеите новое значение в поле Роль.
countries_and_regions = страны и регионы.
province_or_region = Провинция или регион
full_name = Полное имя
researchers = исследователи
years_participation_in = Годы участия в
return_to_grant = Вернуться к гранту
profile_capitalized = Профиль
organizer_role = Роль организатора
faculty_memberships = Членство в факультете
edit_mailing_address = Изменить email адрес
add_capitalized = Добавить
#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 = Для создания подоборки необходимо ввести её название
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

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
edit_mailing_address = Edit Mailing Address
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>
${copyright.text}
</#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>
<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>
${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>
</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>
</#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>
</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>
</footer>

View file

@ -36,4 +36,3 @@ an individual profile page. -->
${headContent!}
<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$ -->
<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>
<#-- Since we are using a graphic text for the tagline, we won't render ${siteTagline}
<#if siteTagline?has_content>
@ -50,5 +50,4 @@
</ul>
</nav>
</div>
</header>
</header>

View file

@ -44,7 +44,7 @@
<!-- Contact Info -->
<div id="individual-tools-people">
<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 >
<img id="qrIcon" src="${urls.images}/individual/qr_icon.png" alt="${i18n().qr_icon}" />
<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>
<#include "head.ftl">
</head>
<script>var urlsBase = "${urls.base}";</script>
<body class="${bodyClasses!}" onload="${bodyOnload!}">
<#include "identity.ftl">
<#include "menu.ftl">
<div id="articleWrapper">
<#if currentServlet = "individual"||currentServlet = "display"||currentServlet = "entity">
<#include "rightPanel.ftl">
<#if currentServlet = "individual" && currentServlet != "display">
<div id="searchRightpanel">
<#include "customsearchpanel.ftl" >
</div>
</#if>
<#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">
<h3><span class="search-filter-selected">filteredSearch</span></h3>

View file

@ -1,29 +1,36 @@
<div id="querybuilder-container" style="display:none;">
<div id="CounterSearchWrapper">
<div id="builder">
<div id="SearchTitle">${i18n().extended_search_label}</div>
<div id="SearchTitle">Параметры поиска</div>
</div>
<div class="btn-group-bottom">
<div id="settingsButtons">
<div id="OuterWrapperButtons">
<div id="wrapperButtons">
<button id="btn-set" class="btn btn-success set-json" data-target="basic">${i18n().extended_search_example}</button>
<button id="btn-reset-button" class="btn btn-warning reset" data-target="basic">${i18n().extended_search_clean}</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">Очистить</button>
<!-- <button id="btn-get" class="btn btn-primary parse-json" data-target="basic">Get rules</button> -->
<div id="SelectResults">
<label style="display:inline;" for="hitsPerPage">${i18n().extended_search_results_on_page}</label>
<@selectHitsPerPage/>
<label style="display:inline;" for="hitsPerPage">Результатов на страницу</label>
<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>
<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 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>
<script src="themes/iph/js/query-builder.standalone.min.js"></script>
<script src="themes/iph/js/query-builder.ru.js"></script>
<script>
@ -116,7 +123,7 @@
rules: rules_start
});
$('#btn-reset-button').on('click', function() {
$('#btn-reset').on('click', function() {
$('#builder').queryBuilder('reset');
});
@ -131,13 +138,24 @@
});
$('#btn-search-expand').on('click', function() {
var json_result = $('#builder').queryBuilder('getRules', { get_flags: true });
//$('#btn-get').on('click', function() {
// 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 hits = $("#hitsPerPageSelect :selected");
if (!$.isEmptyObject(query_string)) {
localStorage.setItem('queryBuilderForm',JSON.stringify(json_result));
localStorage.setItem('queryBuilderFormSaved',true);
<#if !queryBuilderRules??>
localStorage.setItem('queryBuilderForm',JSON.stringify(json_result));
localStorage.setItem('queryBuilderFormSaved',true);
</#if>
var queryURL = "${urls.base}/customsearch?querytext=" + query_string;
if (hits !== null){
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 (json_query.rules.length > 1 ) {
string_query +=" ( ";
var 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){
string_query += " " + json_query.condition + " ";
}
}
string_query +=" ) ";
} 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 ){
if ('operator' in json_query && json_query.operator.startsWith("not_")){
string_query += "NOT ";
}
if (json_query.hasOwnProperty('data') && json_query.data.hasOwnProperty('value')){
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,'');
}
string_query += json_query.field + ":" + json_query.value.toString().replace(/[']+/g,'').replace(/#/g,'%23') ;
}
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>
<#macro freeField field >
{
@ -270,19 +227,3 @@
operators: ['contains', 'not_contains']
},
</#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">
<#include "customSearchForm.ftl">
<button id="switch-to-extended-searchform">${i18n().extended_search_label}</button>
<button id="switch-to-extended-searchform">Расширенный поиск</button>
</div>
<#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>