Compare commits
154 commits
Author | SHA1 | Date | |
---|---|---|---|
eb3563dff5 | |||
0e9f962a5e | |||
67bbdfde84 | |||
7edbe86c6c | |||
6f7f5e3dd3 | |||
258590dc24 | |||
9c5ea6f397 | |||
1db2abd612 | |||
15f01d5e37 | |||
214c23a3eb | |||
631e9f9b71 | |||
daa373fc2e | |||
313a15d7b2 | |||
d159e91cd1 | |||
fd5b66000f | |||
166e90dae0 | |||
bf1ddd6657 | |||
16ef97f28d | |||
92704df096 | |||
04d60d0aaa | |||
6b1d47bdcb | |||
f11a341f75 | |||
![]() |
107c6b6d83 | ||
![]() |
2ebf2b84f4 | ||
96848371e4 | |||
0db7f7906a | |||
![]() |
70a561ae84 | ||
![]() |
06d92d6e8d | ||
![]() |
dcfb17856b | ||
d5721d1d48 | |||
![]() |
8fadf30f2f | ||
9a890d08ee | |||
f88d30718c | |||
9b3026c485 | |||
d75afa6305 | |||
8f543d1e68 | |||
![]() |
f4f837d19d | ||
![]() |
4c1aa596f3 | ||
![]() |
0b461e9605 | ||
![]() |
f38a5a4708 | ||
d87cf361d7 | |||
e201890a1f | |||
393b805e25 | |||
![]() |
fb7bccd853 | ||
![]() |
2577b4c8a8 | ||
![]() |
ef47dfa35f | ||
![]() |
7c53c79909 | ||
aad030deb0 | |||
![]() |
6597a750e5 | ||
![]() |
7d8c144b0f | ||
![]() |
770d899e05 | ||
![]() |
c43aa646b0 | ||
6ab16d7848 | |||
![]() |
7cc5057409 | ||
![]() |
3dbce2253c | ||
![]() |
94ed653519 | ||
![]() |
0fdc72ca32 | ||
![]() |
48445cfd78 | ||
![]() |
c933019a2f | ||
![]() |
4969868784 | ||
![]() |
a55c5ddc59 | ||
![]() |
122e1b283f | ||
![]() |
1343a41eed | ||
![]() |
3d3881592b | ||
![]() |
113a0f9165 | ||
![]() |
f49d468f9d | ||
634bf28adc | |||
![]() |
0d63da02b2 | ||
36f5c0d023 | |||
![]() |
9714679207 | ||
![]() |
be2b3dd32d | ||
![]() |
b7b97c9641 | ||
![]() |
e03c06f2f5 | ||
![]() |
46a1622475 | ||
![]() |
4930f127cc | ||
![]() |
0970c329ba | ||
![]() |
45e003bf5b | ||
![]() |
62c0efb9cb | ||
4044f5ec88 | |||
d8b08024e8 | |||
![]() |
7472d834a0 | ||
![]() |
e9b1d7df89 | ||
![]() |
a1b2148c49 | ||
039dcfae2e | |||
![]() |
fbb94b2f35 | ||
![]() |
2ad91043b2 | ||
![]() |
9340a3587f | ||
![]() |
4c2fdc51c2 | ||
![]() |
ee5b41c4f9 | ||
![]() |
397f29b83e | ||
![]() |
ee82cb0f51 | ||
![]() |
d4186f4558 | ||
![]() |
fec44a297d | ||
![]() |
3d4b377430 | ||
![]() |
e31b92fae2 | ||
![]() |
e76bff1430 | ||
![]() |
7352adc725 | ||
![]() |
844734824a | ||
836fd45f3c | |||
![]() |
aaa5b644a6 | ||
![]() |
5d884b22fe | ||
![]() |
f06e7db358 | ||
![]() |
69e3037351 | ||
975a778b04 | |||
![]() |
b7d6345338 | ||
e4c4293a35 | |||
![]() |
6b2b1be952 | ||
![]() |
f5b8d7d43d | ||
![]() |
30516cbf03 | ||
![]() |
3b40cd5d8a | ||
![]() |
b620a439ba | ||
![]() |
899b2e6d17 | ||
![]() |
9e8ee41438 | ||
b49f169474 | |||
43ff4e44a8 | |||
![]() |
8867d26392 | ||
![]() |
954e3ffdab | ||
![]() |
7028373270 | ||
6617262a81 | |||
![]() |
7580e40cc4 | ||
bc426ec4a1 | |||
4627c9c22c | |||
4ee8db0022 | |||
0e1614a31a | |||
00c35dbd17 | |||
5b77aaf75f | |||
d3328ebf96 | |||
88244a461d | |||
1b04a58afc | |||
7556de1437 | |||
7eea134629 | |||
65be4fce1c | |||
b5ca5b32ed | |||
faf9615b15 | |||
7b92143572 | |||
7d29e55b40 | |||
2330615e77 | |||
![]() |
79be5fbe3c | ||
![]() |
6fb235afd4 | ||
![]() |
a54c66fecf | ||
67c7d2c363 | |||
![]() |
62676eb756 | ||
![]() |
f320f1c567 | ||
b851995e60 | |||
032667a87e | |||
6e0eb8cb01 | |||
be8ee67e1b | |||
![]() |
2ed94eb668 | ||
![]() |
0ad3937fb7 | ||
db8f9bd0fe | |||
17d7a8c227 | |||
a134b9f98d | |||
5b91f360d7 | |||
0c8163070b |
|
@ -1,46 +1,73 @@
|
||||||
@prefix : <http://vitro.mannlib.cornell.edu/ns/vitro/ApplicationSetup#> .
|
@prefix : <http://vitro.mannlib.cornell.edu/ns/vitro/ApplicationSetup#> .
|
||||||
|
@prefix searchIndex: <java:edu.cornell.mannlib.vitro.webapp.searchindex#> .
|
||||||
|
|
||||||
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||||
|
|
||||||
:vivodocumentModifier_excerptsInArticles
|
:vivodocumentModifier_excerptsInComplexPublications
|
||||||
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
rdfs:label "Elenph article excerpts" ;
|
rdfs:label "Populate complex publications with excerpts" ;
|
||||||
:hasTargetField "ALLTEXT" ;
|
:hasTargetField "ALLTEXT" ;
|
||||||
:hasSelectQuery """
|
:hasSelectQuery """
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?value
|
SELECT DISTINCT ?value
|
||||||
WHERE {
|
WHERE {
|
||||||
?uri rdf:type ts_:elenphArticle .
|
?uri ts:hasTOC ?toc .
|
||||||
?uri ts_:hasTOC ?toc .
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
VALUES ?property { ts:works ts:bibliography ts:htmlExcerpt ts:keywords }
|
||||||
VALUES ?property { ts_:works ts_:bibliography ts_:htmlExcerpt ts_:keywords }
|
?excerpt ?property ?value .
|
||||||
?elenphExcerpt ?property ?value .
|
|
||||||
}
|
}
|
||||||
""" .
|
""" .
|
||||||
|
|
||||||
:vivodocumentModifier_PopulateText
|
: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
|
||||||
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
rdfs:label "Html text to text field" ;
|
rdfs:label "Html text to text field" ;
|
||||||
:hasTargetField "text" ;
|
:hasTargetField "text" ;
|
||||||
:hasSelectQuery """
|
:hasSelectQuery """
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?htmlExcerpt
|
SELECT DISTINCT ?htmlExcerpt
|
||||||
WHERE {
|
WHERE {
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:textExcerpt .
|
?uri rdf:type ts:textExcerpt .
|
||||||
?uri ts_:htmlExcerpt ?htmlExcerpt .
|
?uri ts:htmlExcerpt ?htmlExcerpt .
|
||||||
}
|
}
|
||||||
UNION
|
UNION
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:publication .
|
?uri rdf:type ts:complexPublication .
|
||||||
?uri ts_:hasTOC ?toc .
|
?uri ts:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
|
||||||
?artExcerpt ts_:htmlExcerpt ?htmlExcerpt .
|
?excerpt ts:htmlExcerpt ?htmlExcerpt .
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
""" .
|
""" .
|
||||||
|
@ -52,22 +79,22 @@
|
||||||
:hasTargetField "rubrics" ;
|
:hasTargetField "rubrics" ;
|
||||||
:hasSelectQuery """
|
:hasSelectQuery """
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
PREFIX pr: <https://iph.ras.ru/relationships#>
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
SELECT DISTINCT ?rubric
|
SELECT DISTINCT ?rubric
|
||||||
WHERE {
|
WHERE {
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:elenphExcerpt .
|
?uri rdf:type ts:textExcerpt .
|
||||||
?uri pr:belongsTo ?assignedRubric .
|
?uri pr:belongsTo ?assignedRubric .
|
||||||
?assignedRubric (pr:hasParent)* ?rubric .
|
?assignedRubric (pr:hasParent)* ?rubric .
|
||||||
}
|
}
|
||||||
UNION
|
UNION
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:elenphArticle .
|
?uri rdf:type ts:complexPublication .
|
||||||
?uri ts_:hasTOC ?toc .
|
?uri ts:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
|
||||||
?artExcerpt pr:belongsTo ?assignedRubric .
|
?excerpt pr:belongsTo ?assignedRubric .
|
||||||
?assignedRubric (pr:hasParent)* ?rubric .
|
?assignedRubric (pr:hasParent)* ?rubric .
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,20 +122,20 @@
|
||||||
:hasTargetField "keywords" ;
|
:hasTargetField "keywords" ;
|
||||||
:hasSelectQuery """
|
:hasSelectQuery """
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?keywords
|
SELECT DISTINCT ?keywords
|
||||||
WHERE {
|
WHERE {
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:elenphArticle .
|
?uri rdf:type ts:elenphArticle .
|
||||||
?uri ts_:hasTOC ?toc .
|
?uri ts:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt .
|
||||||
?elenphExcerpt ts_:keywords ?keywords .
|
?elenphExcerpt ts:keywords ?keywords .
|
||||||
}
|
}
|
||||||
UNION
|
UNION
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:elenphExcerpt .
|
?uri rdf:type ts:elenphExcerpt .
|
||||||
?uri ts_:keywords ?keywords .
|
?uri ts:keywords ?keywords .
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
""" .
|
""" .
|
||||||
|
@ -120,20 +147,20 @@
|
||||||
:hasTargetField "bibliography" ;
|
:hasTargetField "bibliography" ;
|
||||||
:hasSelectQuery """
|
:hasSelectQuery """
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?bibliography
|
SELECT DISTINCT ?bibliography
|
||||||
WHERE {
|
WHERE {
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:elenphArticle .
|
?uri rdf:type ts:elenphArticle .
|
||||||
?uri ts_:hasTOC ?toc .
|
?uri ts:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt .
|
||||||
?elenphExcerpt ts_:bibliography ?bibliography .
|
?elenphExcerpt ts:bibliography ?bibliography .
|
||||||
}
|
}
|
||||||
UNION
|
UNION
|
||||||
{
|
{
|
||||||
?uri rdf:type ts_:elenphExcerpt .
|
?uri rdf:type ts:elenphExcerpt .
|
||||||
?uri ts_:bibliography ?bibliography .
|
?uri ts:bibliography ?bibliography .
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
""" .
|
""" .
|
||||||
|
|
|
@ -42,11 +42,11 @@ display:getCompilationExcerptPathsDataGetter
|
||||||
display:saveToVar "paths";
|
display:saveToVar "paths";
|
||||||
display:query
|
display:query
|
||||||
"""
|
"""
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) ?tocElement ?elenphExcerpt
|
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
|
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
|
||||||
?tmpTOCItem rdf:type ts_:TOCItem .
|
?tmpTOCItem rdf:type ts_:TOCItem .
|
||||||
|
@ -56,10 +56,10 @@ display:getCompilationExcerptPathsDataGetter
|
||||||
?tocElement ts_:hasText ?elenphExcerpt .
|
?tocElement ts_:hasText ?elenphExcerpt .
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
SELECT ?tocElement
|
SELECT ?tocElement
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
|
||||||
?tocElement rdf:type ts_:TOCLevel .
|
?tocElement rdf:type ts_:TOCLevel .
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,11 +74,11 @@ display:getCompilationBibliographyDataGetter
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?bibliography ?elenphExcerpt
|
SELECT DISTINCT ?bibliography ?excerpt
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
?elenphExcerpt ts_:bibliography ?bibliography .
|
?excerpt ts_:bibliography ?bibliography .
|
||||||
} ORDER BY ?bibliography
|
} ORDER BY ?bibliography
|
||||||
""" .
|
""" .
|
||||||
|
|
||||||
|
@ -90,11 +90,11 @@ display:getCompilationWorksDataGetter
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?works ?elenphExcerpt
|
SELECT DISTINCT ?works ?excerpt
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
?elenphExcerpt ts_:works ?works .
|
?excerpt ts_:works ?works .
|
||||||
} ORDER BY ?works
|
} ORDER BY ?works
|
||||||
""" .
|
""" .
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,10 @@
|
||||||
""" .
|
""" .
|
||||||
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDeleteQuery """
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDeleteQuery """
|
||||||
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc ?excerpt
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc ?excerpt ?author ?organization
|
||||||
WHERE {
|
WHERE {
|
||||||
|
?individualURI rdf:type ts:elenphArticle .
|
||||||
OPTIONAL {
|
OPTIONAL {
|
||||||
?individualURI ts:hasTOC ?toc .
|
?individualURI ts:hasTOC ?toc .
|
||||||
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
|
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
|
||||||
|
@ -23,7 +25,13 @@
|
||||||
?tocElement ts:hasTOCItem ?tocItem .
|
?tocElement ts:hasTOCItem ?tocItem .
|
||||||
}
|
}
|
||||||
OPTIONAL {
|
OPTIONAL {
|
||||||
?tocElement ts_:hasText ?excerpt .
|
?tocElement ts:hasText ?excerpt .
|
||||||
|
OPTIONAL {
|
||||||
|
?excerpt ts:hasAuthor ?author .
|
||||||
|
OPTIONAL {
|
||||||
|
?author ts:affiliatedWith ?organization .
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +43,6 @@
|
||||||
WHERE
|
WHERE
|
||||||
{
|
{
|
||||||
?tocElement ts:hasText ?individualURI .
|
?tocElement ts:hasText ?individualURI .
|
||||||
NOT EXISTS {?tocElement ts:hasTOCItem ?tocItem }
|
FILTER NOT EXISTS {?tocElement ts:hasTOCItem ?tocItem }
|
||||||
}
|
}
|
||||||
""" .
|
""" .
|
||||||
|
|
|
@ -42,11 +42,11 @@ display:getArticleExcerptPathsDataGetter
|
||||||
display:saveToVar "paths";
|
display:saveToVar "paths";
|
||||||
display:query
|
display:query
|
||||||
"""
|
"""
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) ?tocElement ?elenphExcerpt
|
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
|
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
|
||||||
?tmpTOCItem rdf:type ts_:TOCItem .
|
?tmpTOCItem rdf:type ts_:TOCItem .
|
||||||
|
@ -56,12 +56,11 @@ display:getArticleExcerptPathsDataGetter
|
||||||
?tocElement ts_:hasText ?elenphExcerpt .
|
?tocElement ts_:hasText ?elenphExcerpt .
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
SELECT ?elenphArticle ?tocElement
|
SELECT ?elenphArticle ?tocElement
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
|
||||||
?tocElement rdf:type ts_:TOCLevel .
|
?tocElement rdf:type ts_:TOCLevel .
|
||||||
?individualURI rdf:type ts_:elenphArticle .
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
|
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
|
||||||
|
@ -75,11 +74,11 @@ display:getArticleBibliographyDataGetter
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?bibliography ?elenphExcerpt
|
SELECT DISTINCT ?bibliography ?excerpt
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
?elenphExcerpt ts_:bibliography ?bibliography .
|
?excerpt ts_:bibliography ?bibliography .
|
||||||
} ORDER BY ?bibliography
|
} ORDER BY ?bibliography
|
||||||
""" .
|
""" .
|
||||||
|
|
||||||
|
@ -91,11 +90,11 @@ display:getArticleWorksDataGetter
|
||||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
SELECT DISTINCT ?works ?elenphExcerpt
|
SELECT DISTINCT ?works ?excerpt
|
||||||
WHERE {
|
WHERE {
|
||||||
?individualURI ts_:hasTOC ?toc .
|
?individualURI ts_:hasTOC ?toc .
|
||||||
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
?elenphExcerpt ts_:works ?works .
|
?excerpt ts_:works ?works .
|
||||||
} ORDER BY ?works
|
} ORDER BY ?works
|
||||||
""" .
|
""" .
|
||||||
|
|
||||||
|
|
27
webapp/src/main/webapp/WEB-INF/resources/shortview_config.n3
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
@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 .
|
||||||
|
}
|
||||||
|
""" .
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
@ -22,4 +22,3 @@ Disallow: /vis/ # VIVO addition
|
||||||
Disallow: /visualizationAjax/ # VIVO addition
|
Disallow: /visualizationAjax/ # VIVO addition
|
||||||
Disallow: /visualizationData/ # VIVO addition
|
Disallow: /visualizationData/ # VIVO addition
|
||||||
Disallow: /qrcode # VIVO addition
|
Disallow: /qrcode # VIVO addition
|
||||||
Disallow: /individual # VIVO addition
|
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
<#-- $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>
|
|
@ -4,8 +4,10 @@
|
||||||
|
|
||||||
<#import "lib-vivo-properties.ftl" as p>
|
<#import "lib-vivo-properties.ftl" as p>
|
||||||
|
|
||||||
|
<div class="searchResult">
|
||||||
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
|
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
|
||||||
|
|
||||||
<@p.displayTitle individual />
|
<@p.displayTitle individual />
|
||||||
|
|
||||||
<p class="snippet">${individual.snippet}</p>
|
<p class="snippet">${individual.snippet}</p>
|
||||||
|
</div>
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<#-- $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" >
|
|
@ -0,0 +1,49 @@
|
||||||
|
<#-- $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>
|
|
@ -0,0 +1,252 @@
|
||||||
|
<#-- $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>')}
|
|
@ -1,42 +0,0 @@
|
||||||
<#-- $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 >
|
|
|
@ -1,38 +0,0 @@
|
||||||
|
|
||||||
<#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>
|
|
|
@ -87,7 +87,6 @@ button.btn.btn-xs.btn-danger {
|
||||||
/*box-shadow: 0px 0px 0px #000000;*/
|
/*box-shadow: 0px 0px 0px #000000;*/
|
||||||
border-left: 1px solid #ead6a2 !important;
|
border-left: 1px solid #ead6a2 !important;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.query-builder .btn-success.active, .query-builder .btn-success.focus,
|
.query-builder .btn-success.active, .query-builder .btn-success.focus,
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
menu_contactus = Contact Us
|
menu_contactus = Контакты
|
||||||
menu_welcomestart = Welcome
|
menu_welcomestart = Добро пожаловать
|
||||||
menu_copyright = copyright
|
menu_copyright = права
|
||||||
menu_support = Support
|
menu_support = Поддержка
|
||||||
menu_logout = Log out
|
menu_logout = Выйти
|
||||||
menu_loginfull = Log in to manage this site
|
menu_loginfull = Log in to manage this site
|
||||||
menu_login = Log in
|
menu_login = Войти
|
||||||
menu_version = Version
|
menu_version = Версия
|
||||||
menu_about = About
|
menu_about = О нас
|
||||||
menu_termuse = Terms of Use
|
menu_termuse = Правила использования
|
||||||
menu_powered = Powered by
|
menu_powered = Сделано с помощью
|
||||||
|
|
||||||
intro_title = Welcome to VIVO
|
intro_title = Добро пожаловать в VIVO
|
||||||
intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scholars of all disciplines.
|
intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scholars of all disciplines.
|
||||||
intro_para2 = Browse or search information on people, departments, courses, grants, and publications.
|
intro_para2 = Browse or search information on people, departments, courses, grants, and publications.
|
||||||
intro_searchvivo = Search VIVO
|
intro_searchvivo = Поиск VIVO
|
||||||
intro_filtersearch = Filter search
|
intro_filtersearch = Ограничить поиск
|
||||||
|
|
||||||
identity_title = VIVO | connect share discover
|
identity_title = VIVO | соединяй делись познавай
|
||||||
identity_index = Index
|
identity_index = Index
|
||||||
identity_edit = Edit Page
|
identity_edit = Редактировать страницу
|
||||||
identity_admin = Site Admin
|
identity_admin = Админка
|
||||||
identity_myprofile = My profile
|
identity_myprofile = Мой профиль
|
||||||
identity_myaccount = My account
|
identity_myaccount = Моя учётная запись
|
||||||
identity_user = user
|
identity_user = пользователь
|
||||||
|
|
||||||
collection_capitalized = Collection
|
collection_capitalized = Коллекция
|
||||||
place_of_grant = Place of grant
|
place_of_grant = Место получения гранта
|
||||||
email_address = Email Address
|
email_address = email адрес
|
||||||
|
|
||||||
#
|
#
|
||||||
# menupage templates ( /templates/freemarker/body/menupage )
|
# menupage templates ( /templates/freemarker/body/menupage )
|
||||||
|
@ -41,69 +41,126 @@ grants_two = This technique could be used to define pages without menu items, th
|
||||||
grants_text_three = This would create a page that would use about.ftl as the body. The page would be \
|
grants_text_three = This would create a page that would use about.ftl as the body. The page would be \
|
||||||
accessed via /about and would override all servlet mappings in web.xml.
|
accessed via /about and would override all servlet mappings in web.xml.
|
||||||
|
|
||||||
address_street_one = address street one
|
address_street_one = первая строка адреса
|
||||||
address_street_two = address street two
|
address_street_two = вторая строка адреса
|
||||||
address_street_three = address street three
|
address_street_three = третья строка адреса
|
||||||
address_label = address label
|
address_label = подпись адреса
|
||||||
|
|
||||||
loading_website_image = Loading website image
|
loading_website_image = Загрузка изображения сайта
|
||||||
|
|
||||||
researchers_in = researchers in
|
researchers_in = исследователь в
|
||||||
view = view
|
view = вид
|
||||||
grant_type = grant Type
|
grant_type = тип гранта
|
||||||
grant_entry_for = grant entry for
|
grant_entry_for = grant entry for
|
||||||
regions = regions
|
regions = регионы
|
||||||
grant_date = grant Date
|
grant_date = дата получения гранта
|
||||||
map_states_string = states.
|
map_states_string = штатов.
|
||||||
map_state_string = state.
|
map_state_string = штат.
|
||||||
unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals.
|
unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals.
|
||||||
unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals.
|
unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals.
|
||||||
currently_no_papers_for = Currently there are no {0} papers for
|
currently_no_papers_for = Currently there are no {0} papers for
|
||||||
change_selection = change selection
|
change_selection = Изменить выделенное
|
||||||
view_all_departments = view all academic departments
|
view_all_departments = view all academic departments
|
||||||
first_name = First name
|
first_name = Имя
|
||||||
last_name = Last name
|
last_name = Фамилия
|
||||||
first_grant = First Grant
|
first_grant = Первый грант
|
||||||
last_grant = Last Grant
|
last_grant = Последний грант
|
||||||
currently_no_researchers = There are currently no researchers with a defined geographic focus.
|
currently_no_researchers = There are currently no researchers with a defined geographic focus.
|
||||||
reviewer_role = Reviewer Role
|
reviewer_role = Роль рецензента
|
||||||
vivo_profile = VIVO profile
|
vivo_profile = профиль VIVO
|
||||||
loading_data = loading data
|
loading_data = данные загружаются
|
||||||
select_award = Selected Award
|
select_award = Selected Award
|
||||||
grants_in_vivo = grants in VIVO
|
grants_in_vivo = гранты в VIVO
|
||||||
service_provider_role = Service Provider Role
|
service_provider_role = Роль предоставителя услуг
|
||||||
view_all_faculty = view all faculty
|
view_all_faculty = просмотреть весь факультет
|
||||||
no_grants_for = Currently there are no grants for
|
no_grants_for = В данный момент грантов нет грантов для
|
||||||
statewide_locations = state-wide locations.
|
statewide_locations = state-wide locations.
|
||||||
faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization.
|
faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization.
|
||||||
indiv_foafperson_for = for
|
indiv_foafperson_for = к
|
||||||
indiv_foafperson_return = return to
|
indiv_foafperson_return = вернуться к
|
||||||
no_departments_found = No academic departments found.
|
no_departments_found = Университетских департаментов не найдено.
|
||||||
leadership_role = Leadership Role
|
leadership_role = Управляющая роль
|
||||||
countries = countries
|
countries = страны
|
||||||
first_publication = First publication
|
first_publication = Первая публикация
|
||||||
last_publication = Last publication
|
last_publication = Последняя публикация
|
||||||
research_area = individuals in the department with this research area
|
research_area = сотрудников департамента спецализирующихся на данной области исследования
|
||||||
password = password
|
password = пароль
|
||||||
limit_search = limit search
|
limit_search = ограничить поиск
|
||||||
placeholder_image = placeholder image
|
placeholder_image = Изображение-заполнитель
|
||||||
view_all_members_of_org = View all the members of this organization.
|
view_all_members_of_org = Просмотреть всех участников данной организации.
|
||||||
display_more = more
|
display_more = больше
|
||||||
create_entry = Create Entry
|
create_entry = Создать запись
|
||||||
attendee_capitalized = Attendee
|
attendee_capitalized = Посетитель
|
||||||
no_faculty_found = No faculty members found.
|
no_faculty_found = Членов факультета найдено не было.
|
||||||
create_capitalized = Create
|
create_capitalized = Создать
|
||||||
to = to
|
to = к
|
||||||
enter_new_role_value = Please enter a new value in the Role field.
|
enter_new_role_value = Введеите новое значение в поле Роль.
|
||||||
countries_and_regions = countries and regions.
|
countries_and_regions = страны и регионы.
|
||||||
province_or_region = Province or Region
|
province_or_region = Провинция или регион
|
||||||
full_name = Full name
|
full_name = Полное имя
|
||||||
researchers = researchers
|
researchers = исследователи
|
||||||
years_participation_in = Years of Participation in
|
years_participation_in = Годы участия в
|
||||||
return_to_grant = Return to grant
|
return_to_grant = Вернуться к гранту
|
||||||
profile_capitalized = Profile
|
profile_capitalized = Профиль
|
||||||
organizer_role = Organizer Role
|
organizer_role = Роль организатора
|
||||||
faculty_memberships = Faculty Memberships
|
faculty_memberships = Членство в факультете
|
||||||
edit_mailing_address = Edit Mailing Address
|
edit_mailing_address = Изменить email адрес
|
||||||
add_capitalized = Add
|
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 = Для создания подоборки необходимо ввести её название
|
||||||
|
|
||||||
|
|
||||||
|
|
115
webapp/src/main/webapp/themes/iph/i18n/all_en_US.properties
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
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
|
||||||
|
|
|
@ -106,4 +106,4 @@ organizer_role = Organizer Role
|
||||||
faculty_memberships = Faculty Memberships
|
faculty_memberships = Faculty Memberships
|
||||||
edit_mailing_address = Edit Mailing Address
|
edit_mailing_address = Edit Mailing Address
|
||||||
add_capitalized = Add
|
add_capitalized = Add
|
||||||
|
remove_doc_from_search_results=Удалить из результатов поиска
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 393 B |
|
@ -0,0 +1,6 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 390 B |
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 172 B |
BIN
webapp/src/main/webapp/themes/iph/images/arrow-down-small.png
Normal file
After Width: | Height: | Size: 318 B |
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 172 B |
3
webapp/src/main/webapp/themes/iph/images/arrow-down.svg
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 126 B |
61
webapp/src/main/webapp/themes/iph/images/arrow-right.svg
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 173 B |
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 173 B |
3
webapp/src/main/webapp/themes/iph/images/arrow-top.svg
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 188 B |
Before Width: | Height: | Size: 294 B After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 94 B |
3
webapp/src/main/webapp/themes/iph/images/check-icon.svg
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 218 B |
3
webapp/src/main/webapp/themes/iph/images/circle-item.svg
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 165 B |
79
webapp/src/main/webapp/themes/iph/images/download-icon.svg
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 2.7 KiB |
|
@ -0,0 +1,3 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 157 B |
BIN
webapp/src/main/webapp/themes/iph/images/expand_button.png
Normal file
After Width: | Height: | Size: 665 B |
68
webapp/src/main/webapp/themes/iph/images/exportPdf.svg
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 4.1 KiB |
BIN
webapp/src/main/webapp/themes/iph/images/print-icon.png
Normal file
After Width: | Height: | Size: 886 B |
108
webapp/src/main/webapp/themes/iph/images/print.svg
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 3.8 KiB |
BIN
webapp/src/main/webapp/themes/iph/images/save-icon.png
Normal file
After Width: | Height: | Size: 741 B |
BIN
webapp/src/main/webapp/themes/iph/images/save-pdf-icon.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
99
webapp/src/main/webapp/themes/iph/images/save.svg
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 3.3 KiB |
111
webapp/src/main/webapp/themes/iph/images/settings.svg
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 3.7 KiB |
BIN
webapp/src/main/webapp/themes/iph/images/share-icon.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
webapp/src/main/webapp/themes/iph/images/small-dot.png
Normal file
After Width: | Height: | Size: 191 B |
BIN
webapp/src/main/webapp/themes/iph/images/to_up.png
Normal file
After Width: | Height: | Size: 452 B |
BIN
webapp/src/main/webapp/themes/iph/images/to_up_hover.png
Normal file
After Width: | Height: | Size: 459 B |
BIN
webapp/src/main/webapp/themes/iph/images/uricon-icon.png
Normal file
After Width: | Height: | Size: 917 B |
123
webapp/src/main/webapp/themes/iph/js/collapsible_elements.js
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
178
webapp/src/main/webapp/themes/iph/js/toc.js
Normal file
|
@ -0,0 +1,178 @@
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
|
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
|
||||||
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
|
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
|
||||||
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
|
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
|
||||||
|
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
|
||||||
|
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/toc.js"></script>')}
|
||||||
<#import "individual-qrCodeGenerator.ftl" as qr>
|
<#import "individual-qrCodeGenerator.ftl" as qr>
|
||||||
<#import "lib-vivo-properties.ftl" as vp>
|
<#import "lib-vivo-properties.ftl" as vp>
|
||||||
<#include "text-lib.ftl">
|
<#include "text-lib.ftl">
|
||||||
|
@ -32,6 +34,8 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
|
||||||
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
||||||
<#include "individual-adminPanel.ftl">
|
<#include "individual-adminPanel.ftl">
|
||||||
<header>
|
<header>
|
||||||
|
<div id="articleHeaderWrapper">
|
||||||
|
<div id="articleTitleWrapper">
|
||||||
<#if relatedSubject??>
|
<#if relatedSubject??>
|
||||||
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
||||||
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
||||||
|
@ -39,7 +43,9 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
|
||||||
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
|
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
|
||||||
<#-- Label -->
|
<#-- Label -->
|
||||||
<@p.label individual editable labelCount localesCount/>
|
<@p.label individual editable labelCount localesCount/>
|
||||||
<@p.deleteIndividualLink individual />
|
<#if editable>
|
||||||
|
<@p.deleteIndividualLink individual />
|
||||||
|
</#if>
|
||||||
</h1>
|
</h1>
|
||||||
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
|
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
|
||||||
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
|
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
|
||||||
|
@ -64,19 +70,32 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
|
||||||
<@p.mostSpecificTypesPerson individual editable/>
|
<@p.mostSpecificTypesPerson individual editable/>
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
|
</div>
|
||||||
<#include "individual-iconControls.ftl">
|
<div class="articleToolsContainer">
|
||||||
</span>
|
<div class="metadataSwitch">
|
||||||
<#if editable && profilePageTypesEnabled >
|
<@expandMetadataSwitch />
|
||||||
<#include "individual-profilePageTypes.ftl">
|
</div>
|
||||||
</#if>
|
<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>
|
||||||
</header>
|
</header>
|
||||||
<!-- Positions -->
|
<!-- Positions -->
|
||||||
<#include "individual-positions.ftl">
|
<#include "individual-positions.ftl">
|
||||||
|
|
||||||
<!-- Overview -->
|
<!-- Overview -->
|
||||||
<#if !editable>
|
<#if !editable>
|
||||||
<p></p>
|
|
||||||
</#if>
|
</#if>
|
||||||
<#include "individual-overview.ftl">
|
<#include "individual-overview.ftl">
|
||||||
|
|
||||||
|
@ -107,149 +126,37 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
|
||||||
<#list rawQuery.statements as statement>
|
<#list rawQuery.statements as statement>
|
||||||
<#assign rawQueryString = statement.value!>
|
<#assign rawQueryString = statement.value!>
|
||||||
</#list>
|
</#list>
|
||||||
<form action="${urls.base}/customsearch" method="post">
|
<#if queryBuilderRulesString?? && rawQueryString??>
|
||||||
<input type="hidden" id="queryBuilderRules" name="queryBuilderRules" value='${queryBuilderRulesString}' />
|
<form action="${urls.base}/customsearch" method="post">
|
||||||
<input type="hidden" id="querytext" name="querytext" value='${rawQueryString}' />
|
<input type="hidden" id="queryBuilderRules" name="queryBuilderRules" value='${queryBuilderRulesString}' />
|
||||||
<input type="submit" id="submit" value="Поисковый запрос"/>
|
<input type="hidden" id="querytext" name="querytext" value='${rawQueryString}' />
|
||||||
</form>
|
<input type="submit" id="submit" value="${i18n().metadata_query}"/>
|
||||||
|
</form>
|
||||||
|
</#if>
|
||||||
|
|
||||||
</#if>
|
</#if>
|
||||||
|
<div class="metaDataName collapsible collapsed">
|
||||||
|
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div>
|
||||||
<div class="expandSwitch">
|
</div>
|
||||||
<label class="switch">Раскрыть статью
|
<div class="autoMetadataExpand" style="display:none;">
|
||||||
<input id="expandlCB" type="checkbox" onclick="switchExpand();">
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div id="TOC"></div>
|
|
||||||
<#assign firstPub = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#firstPublication")!>
|
<#assign firstPub = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#firstPublication")!>
|
||||||
<#if firstPub.statements?has_content && firstPub.type == "data">
|
<#if firstPub.statements?has_content && firstPub.type == "data">
|
||||||
<div class="firstPub" style="list-style:none;">
|
<div class="firstPub" style="list-style:none;">
|
||||||
<div class="label">Первая публикация статьи
|
<div class="label">${i18n().metadata_firstPublication}
|
||||||
</div>
|
</div>
|
||||||
<@p.dataPropertyList firstPub editable />
|
<@p.dataPropertyList firstPub editable />
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#if authors??>
|
<@authors_metadata />
|
||||||
<#list authors as author>
|
|
||||||
<div class="affiliations" >
|
|
||||||
<b><#if author.authorFamily??>${author.authorFamily} </#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}, </#if>${author.orgAddress} </span>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
</div>
|
<@documentRubrics />
|
||||||
</#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 > 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 > 0>
|
|
||||||
<div>
|
|
||||||
<button type="button" class="collapsible" style="background-color:white;border:none;padding: 18px;width: 100%; text-align: left;">Литература</button>
|
|
||||||
<div class="bibliography" style="display:none;">
|
|
||||||
<#list bibliography as one_bibliography>
|
|
||||||
<#if one_bibliography.elenphExcerpt == order.elenphExcerpt >
|
|
||||||
<div class="bibliography_entry" style="list-style:none;">
|
|
||||||
<p> ${one_bibliography.bibliography} </p>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</div> <#-- articleExcerpt -->
|
|
||||||
</#list>
|
|
||||||
|
|
||||||
<#if works?? && works?has_content>
|
|
||||||
<div>
|
|
||||||
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Работы</button>
|
|
||||||
<div class="works" style="display:none;">
|
|
||||||
<#list works as work>
|
|
||||||
<div class="work" style="list-style:none;">
|
|
||||||
<p> ${work.works} </p>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<#if bibliography?? && bibliography?has_content>
|
|
||||||
<div>
|
|
||||||
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%; text-align: left;">Литература</button>
|
|
||||||
<div class="bibliography" style="display:none;">
|
|
||||||
<#list bibliography as one_bibliography>
|
|
||||||
<div class="bibliography_entry" style="list-style:none;">
|
|
||||||
<p> ${one_bibliography.bibliography} </p>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<#if authors??>
|
<@arrangeDocumentParts />
|
||||||
<#list authors as author>
|
|
||||||
<div class="authors" style="display:block;float:right; margin:15px;">
|
|
||||||
<#if author.authorFamily??>${author.authorFamily}</#if> <#if author.authorInitials??>${author.authorInitials}</#if>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<script>
|
<@authors_underline />
|
||||||
var coll = document.getElementsByClassName("collapsible");
|
|
||||||
var i;
|
|
||||||
|
|
||||||
for (i = 0; i < coll.length; i++) {
|
|
||||||
coll[i].addEventListener("click", function() {
|
|
||||||
this.classList.toggle("active");
|
|
||||||
var content = this.nextElementSibling;
|
|
||||||
if (content.style.display === "block") {
|
|
||||||
content.style.display = "none";
|
|
||||||
} else {
|
|
||||||
content.style.display = "block";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<#-- <@dumpAll /> -->
|
<#-- <@dumpAll /> -->
|
||||||
|
|
||||||
<#assign selectedTemplate = "individual--foaf-person-2column.ftl" >
|
<#assign selectedTemplate = "individual--foaf-person-2column.ftl" >
|
||||||
|
@ -277,24 +184,6 @@ for (i = 0; i < coll.length; i++) {
|
||||||
</span>
|
</span>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<script>
|
|
||||||
console.log(localStorage.getItem('switchExpand'));
|
|
||||||
if (localStorage.getItem('switchExpand') === true || localStorage.getItem('switchExpand') === 'true') {
|
|
||||||
console.log("show html excerpts");
|
|
||||||
$('.htmlExcerpt').show();
|
|
||||||
}
|
|
||||||
function switchExpand(){
|
|
||||||
var checkBox = document.getElementById("expandlCB");
|
|
||||||
if (checkBox.checked == true){
|
|
||||||
$('.htmlExcerpt').show();
|
|
||||||
localStorage.setItem('switchExpand',true);
|
|
||||||
} else {
|
|
||||||
$('.htmlExcerpt').hide();
|
|
||||||
localStorage.setItem('switchExpand',false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#if !editable>
|
<#if !editable>
|
||||||
<script>
|
<script>
|
||||||
var title = $('div#titleContainer').width();
|
var title = $('div#titleContainer').width();
|
|
@ -8,8 +8,12 @@
|
||||||
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
|
${scripts.add('<script async type="text/javascript" src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>')}
|
||||||
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
|
${scripts.add('<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
|
||||||
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
|
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
|
||||||
|
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
|
||||||
|
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/toc.js"></script>')}
|
||||||
<#import "individual-qrCodeGenerator.ftl" as qr>
|
<#import "individual-qrCodeGenerator.ftl" as qr>
|
||||||
<#import "lib-vivo-properties.ftl" as vp>
|
<#import "lib-vivo-properties.ftl" as vp>
|
||||||
|
<#include "text-lib.ftl">
|
||||||
|
|
||||||
<#--Number of labels present-->
|
<#--Number of labels present-->
|
||||||
<#if !labelCount??>
|
<#if !labelCount??>
|
||||||
<#assign labelCount = 0 >
|
<#assign labelCount = 0 >
|
||||||
|
@ -30,13 +34,18 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
|
||||||
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
||||||
<#include "individual-adminPanel.ftl">
|
<#include "individual-adminPanel.ftl">
|
||||||
<header>
|
<header>
|
||||||
|
<div id="articleHeaderWrapper">
|
||||||
|
<div id="articleTitleWrapper">
|
||||||
<#if relatedSubject??>
|
<#if relatedSubject??>
|
||||||
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
||||||
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
||||||
<#else>
|
<#else>
|
||||||
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
|
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="border-right:1px solid #A6B1B0;"</#if>>
|
||||||
<#-- Label -->
|
<#-- Label -->
|
||||||
<@p.label individual editable labelCount localesCount/>
|
<@p.label individual editable labelCount localesCount/>
|
||||||
|
<#if editable>
|
||||||
|
<@p.deleteIndividualLink individual />
|
||||||
|
</#if>
|
||||||
</h1>
|
</h1>
|
||||||
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
|
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
|
||||||
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
|
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
|
||||||
|
@ -61,19 +70,33 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
|
||||||
<@p.mostSpecificTypesPerson individual editable/>
|
<@p.mostSpecificTypesPerson individual editable/>
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
|
</div>
|
||||||
<#include "individual-iconControls.ftl">
|
<div class="articleToolsContainer">
|
||||||
</span>
|
<div class="metadataSwitch">
|
||||||
<#if editable && profilePageTypesEnabled >
|
<@expandMetadataSwitch />
|
||||||
<#include "individual-profilePageTypes.ftl">
|
</div>
|
||||||
</#if>
|
<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>
|
||||||
</header>
|
</header>
|
||||||
<!-- Positions -->
|
<!-- Positions -->
|
||||||
<#include "individual-positions.ftl">
|
<#include "individual-positions.ftl">
|
||||||
|
|
||||||
<!-- Overview -->
|
<!-- Overview -->
|
||||||
<#if !editable>
|
<#if !editable>
|
||||||
<p></p>
|
|
||||||
</#if>
|
</#if>
|
||||||
<#include "individual-overview.ftl">
|
<#include "individual-overview.ftl">
|
||||||
|
|
||||||
|
@ -93,165 +116,26 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph
|
||||||
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
|
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
|
||||||
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
|
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
|
||||||
</#if>
|
</#if>
|
||||||
<div class="expandSwitch">
|
<div class="metaDataName collapsible collapsed">
|
||||||
<label class="switch">Раскрыть статью
|
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div>
|
||||||
<input id="expandlCB" type="checkbox" onclick="switchExpand();">
|
</div>
|
||||||
</label>
|
<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>
|
</div>
|
||||||
<#assign firstPub = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#firstPublication")!>
|
<@arrangeDocumentParts />
|
||||||
<#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 year = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#year")!>
|
<#assign selectedTemplate = "individual--foaf-person-2column.ftl" >
|
||||||
<#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} </#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}, </#if>${author.orgAddress} </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 > 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 > 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> <#if author.authorInitials??>${author.authorInitials}</#if>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
var coll = document.getElementsByClassName("collapsible");
|
|
||||||
var i;
|
|
||||||
|
|
||||||
for (i = 0; i < coll.length; i++) {
|
|
||||||
coll[i].addEventListener("click", function() {
|
|
||||||
this.classList.toggle("active");
|
|
||||||
var content = this.nextElementSibling;
|
|
||||||
if (content.style.display === "block") {
|
|
||||||
content.style.display = "none";
|
|
||||||
} else {
|
|
||||||
content.style.display = "block";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<#-- <@dumpAll /> -->
|
|
||||||
|
|
||||||
<#assign selectedTemplate = "individual--foaf-person-2column.ftl" >
|
|
||||||
|
|
||||||
<#if profilePageTypesEnabled >
|
<#if profilePageTypesEnabled >
|
||||||
<#assign profilePageType = profileType >
|
<#assign profilePageType = profileType >
|
||||||
|
@ -276,24 +160,6 @@ for (i = 0; i < coll.length; i++) {
|
||||||
</span>
|
</span>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<script>
|
|
||||||
console.log(localStorage.getItem('switchExpand'));
|
|
||||||
if (localStorage.getItem('switchExpand') === true || localStorage.getItem('switchExpand') === 'true') {
|
|
||||||
console.log("show html excerpts");
|
|
||||||
$('.htmlExcerpt').show();
|
|
||||||
}
|
|
||||||
function switchExpand(){
|
|
||||||
var checkBox = document.getElementById("expandlCB");
|
|
||||||
if (checkBox.checked == true){
|
|
||||||
$('.htmlExcerpt').show();
|
|
||||||
localStorage.setItem('switchExpand',true);
|
|
||||||
} else {
|
|
||||||
$('.htmlExcerpt').hide();
|
|
||||||
localStorage.setItem('switchExpand',false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#if !editable>
|
<#if !editable>
|
||||||
<script>
|
<script>
|
||||||
var title = $('div#titleContainer').width();
|
var title = $('div#titleContainer').width();
|
|
@ -1,12 +1,23 @@
|
||||||
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<#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>')}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<#-- Individual profile page template for foaf:Person individuals -->
|
<#-- Individual profile page template for foaf:Person individuals -->
|
||||||
|
|
||||||
<!--[if IE 7]>
|
<!--[if IE 7]>
|
||||||
<link rel="stylesheet" href="${urls.base}/css/individual/ie7-standard-view.css" />
|
<link rel="stylesheet" href="${urls.base}/css/individual/ie7-standard-view.css" />
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
<#-- <#include "individual-setup.ftl"> -->
|
<#-- <#include "individual-setup.ftl"> -->
|
||||||
<#import "individual-qrCodeGenerator.ftl" as qr>
|
<#import "individual-qrCodeGenerator.ftl" as qr>
|
||||||
<#import "lib-vivo-properties.ftl" as vp>
|
<#import "lib-vivo-properties.ftl" as vp>
|
||||||
|
<#include "text-lib.ftl">
|
||||||
|
|
||||||
<#--Number of labels present-->
|
<#--Number of labels present-->
|
||||||
<#if !labelCount??>
|
<#if !labelCount??>
|
||||||
<#assign labelCount = 0 >
|
<#assign labelCount = 0 >
|
||||||
|
@ -27,6 +38,8 @@
|
||||||
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
||||||
<#include "individual-adminPanel.ftl">
|
<#include "individual-adminPanel.ftl">
|
||||||
<header>
|
<header>
|
||||||
|
<div id="articleHeaderWrapper">
|
||||||
|
<div id="articleTitleWrapper">
|
||||||
<#if relatedSubject??>
|
<#if relatedSubject??>
|
||||||
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
||||||
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
||||||
|
@ -58,20 +71,31 @@
|
||||||
<@p.mostSpecificTypesPerson individual editable/>
|
<@p.mostSpecificTypesPerson individual editable/>
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
<span id="iconControlsRightSide" class="<#if editable>iconControlsEditable<#else>iconControlsNotEditable</#if>" <#if !user.hasSiteAdminAccess>style="top:5px"</#if>>
|
</div>
|
||||||
<#include "individual-iconControls.ftl">
|
<div class="articleToolsContainer">
|
||||||
</span>
|
<div class="metadataSwitch">
|
||||||
<#if editable && profilePageTypesEnabled >
|
<@expandMetadataSwitch />
|
||||||
<#include "individual-profilePageTypes.ftl">
|
</div>
|
||||||
</#if>
|
<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>
|
||||||
</header>
|
</header>
|
||||||
<!-- Positions -->
|
<!-- Positions -->
|
||||||
<#include "individual-positions.ftl">
|
<#include "individual-positions.ftl">
|
||||||
|
|
||||||
<!-- Overview -->
|
<!-- Overview -->
|
||||||
<#if !editable>
|
<#if !editable>
|
||||||
<p></p>
|
</#if>
|
||||||
</#if>
|
|
||||||
<#include "individual-overview.ftl">
|
<#include "individual-overview.ftl">
|
||||||
|
|
||||||
<!-- Research Areas -->
|
<!-- Research Areas -->
|
||||||
|
@ -90,64 +114,77 @@
|
||||||
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
|
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/firstName")!>
|
||||||
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
|
<#assign skipThis = propertyGroups.pullProperty("http://xmlns.com/foaf/0.1/lastName")!>
|
||||||
</#if>
|
</#if>
|
||||||
<#if !editable>
|
<div class="metaDataName collapsible collapsed">
|
||||||
<#if authors??>
|
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_label}</div>
|
||||||
<#list authors as author>
|
</div>
|
||||||
<div class="affiliations" >
|
<div class="autoMetadataExpand" style="display:none;">
|
||||||
<b><#if author.authorFamily??>${author.authorFamily} </#if><#if author.authorGivenName??>${author.authorGivenName}</#if></b>
|
<#if !editable>
|
||||||
<#if author.orgName??>
|
<@authors_metadata />
|
||||||
<br><span style="color:rgba(0,0,0,0.54);">${author.orgName}</span>
|
<#else>
|
||||||
</#if>
|
<#assign pubAuthors = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#hasAuthor")!>
|
||||||
<#if author.orgAddress??>
|
<#if pubAuthors?has_content>
|
||||||
<br>
|
<div class="
|
||||||
<span style="color:rgba(0,0,0,0.54);">Адрес организации: <#if author.orgPostalCode??>${author.orgPostalCode}, </#if>${author.orgAddress} </span>
|
<#if pubAuthors.statements?has_content >
|
||||||
</#if>
|
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>
|
||||||
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</#if>
|
|
||||||
<#else>
|
|
||||||
<#assign pubAuthors = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#hasAuthor")!>
|
|
||||||
<#if pubAuthors?has_content>
|
|
||||||
<div class="label">Авторы: <@p.addLink pubAuthors editable /> <@p.verboseDisplay pubAuthors /> </div>
|
|
||||||
<#if pubAuthors.statements?has_content >
|
|
||||||
<div class="pubAuthors" style="list-style:none;">
|
|
||||||
<@p.objectProperty pubAuthors editable />
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
</#if>
|
|
||||||
</#if>
|
|
||||||
<#if articles?has_content>
|
<#if articles?has_content>
|
||||||
<div class="label">В составе статей: </div>
|
<div class="collapsible collapsed">
|
||||||
<div>
|
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_in_articles}</div>
|
||||||
<#list articles as article>
|
</div>
|
||||||
<#if article?has_content >
|
<div class="expandedArticles autoMetadataExpand" style="display:none;">
|
||||||
<div style="list-style:none;border:none;width: 100%;text-align:left;" class="article">
|
<#list articles as article>
|
||||||
<a href="${urls.base}/individual?uri=${article.articleUri?url}"">${article.articleName}</a>
|
<#if article?has_content >
|
||||||
</div>
|
<div class="articleList" style="list-style:none;">
|
||||||
</#if>
|
<a href="${urls.base}/individual?uri=${article.articleUri?url}">${article.articleName}</a>
|
||||||
</#list>
|
</div>
|
||||||
|
</#if>
|
||||||
|
</#list>
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#assign rubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
|
<#assign rubrics = propertyGroups.pullProperty("https://iph.ras.ru/relationships#belongsTo")!>
|
||||||
<#if rubrics?has_content>
|
<#if rubrics?has_content>
|
||||||
<div class="label">Относится к: <@p.addLink rubrics editable /> <@p.verboseDisplay rubrics /> </div>
|
<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;">
|
||||||
<#if rubrics.statements?has_content >
|
<#if rubrics.statements?has_content >
|
||||||
<div class="rubrics" style="list-style:none;">
|
<div class="rubricsList" style="list-style:none;">
|
||||||
<@p.objectProperty rubrics editable />
|
<@p.objectProperty rubrics editable />
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#assign keywords = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#keywords")!>
|
<#assign keywords = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#keywords")!>
|
||||||
<#if keywords?has_content >
|
<#if keywords?has_content >
|
||||||
<div class="label">Ключевые слова: <@p.addLink keywords editable /> <@p.verboseDisplay keywords /> </div>
|
<div class="collapsible collapsed">
|
||||||
<#if keywords.statements?has_content && keywords.type == "data">
|
<div class="collapsibleLink" style="display:inline;">${i18n().metadata_keywords} <@p.addLink keywords editable /> <@p.verboseDisplay keywords /></div>
|
||||||
<div class="keywords" style="list-style:none;">
|
</div>
|
||||||
<@p.dataPropertyList keywords editable />
|
<div class="expandedKeywords autoMetadataExpand" style="display:none;">
|
||||||
</div>
|
<div class="wrapperExpandedKeywords">
|
||||||
</#if>
|
<#if keywords.statements?has_content && keywords.type == "data">
|
||||||
|
<@p.dataPropertyList keywords editable />
|
||||||
|
</#if>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
</div>
|
||||||
<#assign htmlExcerpt = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#htmlExcerpt")!>
|
<#assign htmlExcerpt = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#htmlExcerpt")!>
|
||||||
<#if htmlExcerpt?has_content >
|
<#if htmlExcerpt?has_content >
|
||||||
<#if htmlExcerpt.statements?has_content && htmlExcerpt.type == "data">
|
<#if htmlExcerpt.statements?has_content && htmlExcerpt.type == "data">
|
||||||
|
@ -156,24 +193,22 @@
|
||||||
<#-- object property -->
|
<#-- object property -->
|
||||||
</div>
|
</div>
|
||||||
<#else>
|
<#else>
|
||||||
<div class="label">Текст отрывка: <@p.addLink htmlExcerpt editable /> <@p.verboseDisplay htmlExcerpt /> </div>
|
<div class="label">${i18n().metadata_html_text} <@p.addLink htmlExcerpt editable /> <@p.verboseDisplay htmlExcerpt /> </div>
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#assign works = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#works")!>
|
<#assign works = propertyGroups.pullProperty("https://litvinovg.pro/text_structures#works")!>
|
||||||
<#if works.statements?has_content || editable >
|
<#if works.statements?has_content || editable >
|
||||||
<br/>
|
|
||||||
<div class="works" style="list-style:none;">
|
<div class="works" style="list-style:none;">
|
||||||
<h2 class="label">Работы: <@p.addLink works editable /> <@p.verboseDisplay works /></h2>
|
<h2 class="label">${i18n().sources_excerpt_button_text} <@p.addLink works editable /> <@p.verboseDisplay works /></h2>
|
||||||
<@p.dataPropertyList works editable />
|
<@p.dataPropertyList works editable />
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#assign biblio= propertyGroups.pullProperty("https://litvinovg.pro/text_structures#bibliography")!>
|
<#assign biblio= propertyGroups.pullProperty("https://litvinovg.pro/text_structures#bibliography")!>
|
||||||
<#if biblio.statements?has_content || editable >
|
<#if biblio.statements?has_content || editable >
|
||||||
<br/>
|
|
||||||
<div class="biblio" style="list-style:none;">
|
<div class="biblio" style="list-style:none;">
|
||||||
<h2 class="label">Литература: <@p.addLink biblio editable /> <@p.verboseDisplay biblio /></h2>
|
<h2 class="label">${i18n().literature_excerpt_button_text} <@p.addLink biblio editable /> <@p.verboseDisplay biblio /></h2>
|
||||||
<@p.dataPropertyList biblio editable />
|
<@p.dataPropertyList biblio editable />
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
|
@ -4,7 +4,6 @@
|
||||||
<#import "lib-vivo-properties.ftl" as p>
|
<#import "lib-vivo-properties.ftl" as p>
|
||||||
|
|
||||||
<#-- <@dumpAll /> -->
|
<#-- <@dumpAll /> -->
|
||||||
<div class="virtualArticlePart" partUri="${individual.uri}" style="display:none;">
|
|
||||||
<#list excerptInfo as excerptProperties>
|
<#list excerptInfo as excerptProperties>
|
||||||
<#if excerptProperties.property == "https://litvinovg.pro/text_structures#htmlExcerpt">
|
<#if excerptProperties.property == "https://litvinovg.pro/text_structures#htmlExcerpt">
|
||||||
<#assign excerptText = excerptProperties.value >
|
<#assign excerptText = excerptProperties.value >
|
||||||
|
@ -17,7 +16,8 @@
|
||||||
</#if>
|
</#if>
|
||||||
</#list>
|
</#list>
|
||||||
<#if excerptText?? && excerptTextName?? && excerptTextName?has_content && excerptText?has_content>
|
<#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="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>
|
||||||
<div class="htmlExcerpt" style="list-style:none; display:none;">
|
<div class="htmlExcerpt" style="list-style:none; display:none;">
|
||||||
${excerptText}
|
${excerptText}
|
||||||
<#if excerptAuthor?? && excerptAuthor?has_content>
|
<#if excerptAuthor?? && excerptAuthor?has_content>
|
||||||
|
@ -38,10 +38,10 @@
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="excerptSearchResult">
|
<div class="searchResult">
|
||||||
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
|
<a href="${individual.profileUrl}" title="${i18n().individual_name}">${individual.name}</a>
|
||||||
<@p.displayTitle individual />
|
<@p.displayTitle individual />
|
||||||
<p class="snippet">${individual.snippet}</p>
|
<p class="snippet">${individual.snippet}</p>
|
|
@ -5,16 +5,16 @@
|
||||||
<#if !issueName??>
|
<#if !issueName??>
|
||||||
<#assign issueName = article.issue>
|
<#assign issueName = article.issue>
|
||||||
<#assign divOpened = true >
|
<#assign divOpened = true >
|
||||||
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${issueName}</button>
|
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible active">${issueName}</button>
|
||||||
<div clas="issue" style="list-style:none; display:none; padding: 18px;">
|
<div class="issue" style="list-style:none; padding: 18px;">
|
||||||
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
|
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
|
||||||
<#elseif issueName == article.issue>
|
<#elseif issueName == article.issue>
|
||||||
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
|
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
|
||||||
<#else>
|
<#else>
|
||||||
<#assign issueName = article.issue>
|
<#assign issueName = article.issue>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible">${issueName}</button>
|
<button type="button" style="border:none;padding: 18px;width: 100%; text-align:left;" class="collapsible active">${issueName}</button>
|
||||||
<div clas="issue" style="list-style:none; display:none;padding: 18px;">
|
<div class="issue" style="list-style:none; padding: 18px;">
|
||||||
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
|
<p><a href="${urls.base}/individual?uri=${article.uri?url}">${article.name}</a></p>
|
||||||
</#if>
|
</#if>
|
||||||
</#list>
|
</#list>
|
||||||
|
@ -38,4 +38,8 @@ for (i = 0; i < coll.length; i++) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
var issueContents = document.getElementsByClassName("issue");
|
||||||
|
for (i = 0; i < issueContents.length; i++) {
|
||||||
|
issueContents[i].style.display = "none";
|
||||||
|
}
|
||||||
</script>
|
</script>
|
|
@ -13,26 +13,35 @@
|
||||||
<#else>
|
<#else>
|
||||||
${copyright.text}
|
${copyright.text}
|
||||||
</#if>
|
</#if>
|
||||||
| <a class="terms" href="${urls.termsOfUse}" title="${i18n().menu_termuse}">${i18n().menu_termuse}</a></small> |
|
<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>
|
||||||
</#if>
|
</#if>
|
||||||
${i18n().menu_powered} <a class="powered-by-vivo" href="http://vivoweb.org" target="_blank" title="${i18n().menu_powered} VIVO"><strong>VIVO</strong></a>
|
<a class="powered-by-vivo" href="http://vivoweb.org" target="_blank" title="${i18n().menu_powered} VIVO">Powered by <strong>VIVO</strong></a>
|
||||||
<#if user.hasRevisionInfoAccess>
|
<#if user.hasRevisionInfoAccess>
|
||||||
| ${i18n().menu_version} <a href="${version.moreInfoUrl}" title="${i18n().menu_version}">${version.label}</a>
|
${i18n().menu_version} <a href="${version.moreInfoUrl}" title="${i18n().menu_version}">${version.label}</a>
|
||||||
</#if>
|
</#if>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<#-- <nav role="navigation">
|
||||||
|
<ul id="footer-nav" role="list">
|
||||||
|
<li role="listitem"><a href="${urls.about}" title="${i18n().menu_about}">${i18n().menu_about}</a></li>-->
|
||||||
<nav role="navigation">
|
<#-- <#if urls.contact??>
|
||||||
<ul id="footer-nav" role="list">
|
|
||||||
<li role="listitem"><a href="${urls.about}" title="${i18n().menu_about}">${i18n().menu_about}</a></li>
|
|
||||||
<#if urls.contact??>
|
|
||||||
<li role="listitem"><a href="${urls.contact}" title="${i18n().menu_contactus}">${i18n().menu_contactus}</a></li>
|
<li role="listitem"><a href="${urls.contact}" title="${i18n().menu_contactus}">${i18n().menu_contactus}</a></li>
|
||||||
</#if>
|
</#if>
|
||||||
<li role="listitem"><a href="http://www.vivoweb.org/support" target="blank" title="${i18n().menu_support}">${i18n().menu_support}</a></li>
|
<li role="listitem"><a href="http://www.vivoweb.org/support" target="blank" title="${i18n().menu_support}">${i18n().menu_support}</a></li> -->
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
<button id="scrollToTopBtn">${i18n().scroll_to_top_label}</button>
|
||||||
|
<script>
|
||||||
|
var scrollToTopBtn = document.getElementById("scrollToTopBtn");
|
||||||
|
var rootElement = document.documentElement;
|
||||||
|
function scrollToTop() {
|
||||||
|
rootElement.scrollTo({
|
||||||
|
top: 0,
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
scrollToTopBtn.addEventListener("click", scrollToTop)
|
||||||
|
</script>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|
|
@ -36,3 +36,4 @@ an individual profile page. -->
|
||||||
${headContent!}
|
${headContent!}
|
||||||
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="${urls.base}/favicon.ico">
|
<link rel="shortcut icon" type="image/x-icon" href="${urls.base}/favicon.ico">
|
||||||
|
<#include "statistic_counters.ftl">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<header id="branding" role="banner">
|
<header id="branding" role="banner">
|
||||||
|
<div id="topArea">
|
||||||
<h1 class="vivo-logo"><a title="${i18n().identity_title}" href="${urls.home}"><span class="displace">${siteName}</span></a></h1>
|
<h1 class="vivo-logo"><a title="${i18n().identity_title}" href="${urls.home}"><span class="displace">${siteName}</span></a></h1>
|
||||||
<#-- Since we are using a graphic text for the tagline, we won't render ${siteTagline}
|
<#-- Since we are using a graphic text for the tagline, we won't render ${siteTagline}
|
||||||
<#if siteTagline?has_content>
|
<#if siteTagline?has_content>
|
||||||
|
@ -50,4 +50,5 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</div>
|
||||||
|
</header>
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<!-- Contact Info -->
|
<!-- Contact Info -->
|
||||||
<div id="individual-tools-people">
|
<div id="individual-tools-people">
|
||||||
<span id="iconControlsLeftSide">
|
<span id="iconControlsLeftSide">
|
||||||
<img id="uriIcon" title="${individual.uri}" src="${urls.images}/individual/uriIcon.gif" alt="${i18n().uri_icon}"/>
|
<img id="uriIcon" title="${individual.uri}" src="${urls.base}/themes/iph/images/uricon-icon.png" alt="${i18n().uri_icon}"/>
|
||||||
<#if checkNamesResult?has_content >
|
<#if checkNamesResult?has_content >
|
||||||
<img id="qrIcon" src="${urls.images}/individual/qr_icon.png" alt="${i18n().qr_icon}" />
|
<img id="qrIcon" src="${urls.images}/individual/qr_icon.png" alt="${i18n().qr_icon}" />
|
||||||
<span id="qrCodeImage" class="hidden">${qrCodeLinkedImage!}
|
<span id="qrCodeImage" class="hidden">${qrCodeLinkedImage!}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
<#-- $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>
|
||||||
|
|
||||||
|
-->
|
|
@ -7,19 +7,17 @@
|
||||||
<head>
|
<head>
|
||||||
<#include "head.ftl">
|
<#include "head.ftl">
|
||||||
</head>
|
</head>
|
||||||
|
<script>var urlsBase = "${urls.base}";</script>
|
||||||
<body class="${bodyClasses!}" onload="${bodyOnload!}">
|
<body class="${bodyClasses!}" onload="${bodyOnload!}">
|
||||||
<#include "identity.ftl">
|
<#include "identity.ftl">
|
||||||
<#include "menu.ftl">
|
<#include "menu.ftl">
|
||||||
|
|
||||||
<div id="articleWrapper">
|
<div id="articleWrapper">
|
||||||
<#if currentServlet = "individual" && currentServlet != "display">
|
<#if currentServlet = "individual"||currentServlet = "display"||currentServlet = "entity">
|
||||||
<div id="searchRightpanel">
|
<#include "rightPanel.ftl">
|
||||||
<#include "customsearchpanel.ftl" >
|
|
||||||
</div>
|
|
||||||
</#if>
|
</#if>
|
||||||
<#include "contentWrapper.ftl">
|
<#include "contentWrapper.ftl">
|
||||||
<#if currentServlet != "individual" && currentServlet != "login" && currentServlet != "display">
|
<#if currentServlet != "individual" && currentServlet != "login" && currentServlet != "display" && currentServlet != "customsearch" && currentServlet != "entity">
|
||||||
<section id="search-home" role="region">
|
<section id="search-home" role="region">
|
||||||
<h3><span class="search-filter-selected">filteredSearch</span></h3>
|
<h3><span class="search-filter-selected">filteredSearch</span></h3>
|
||||||
|
|
||||||
|
|
|
@ -1,36 +1,29 @@
|
||||||
<div id="querybuilder-container" style="display:none;">
|
<div id="querybuilder-container" style="display:none;">
|
||||||
<div id="CounterSearchWrapper">
|
<div id="CounterSearchWrapper">
|
||||||
<div id="builder">
|
<div id="builder">
|
||||||
<div id="SearchTitle">Параметры поиска</div>
|
<div id="SearchTitle">${i18n().extended_search_label}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group-bottom">
|
<div class="btn-group-bottom">
|
||||||
<div id="settingsButtons">
|
<div id="settingsButtons">
|
||||||
<div id="OuterWrapperButtons">
|
<div id="OuterWrapperButtons">
|
||||||
<div id="wrapperButtons">
|
<div id="wrapperButtons">
|
||||||
<button id="btn-set" class="btn btn-success set-json" data-target="basic">Пример заполнения</button>
|
<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">Очистить</button>
|
<button id="btn-reset-button" class="btn btn-warning reset" data-target="basic">${i18n().extended_search_clean}</button>
|
||||||
<!-- <button id="btn-get" class="btn btn-primary parse-json" data-target="basic">Get rules</button> -->
|
<!-- <button id="btn-get" class="btn btn-primary parse-json" data-target="basic">Get rules</button> -->
|
||||||
<div id="SelectResults">
|
<div id="SelectResults">
|
||||||
<label style="display:inline;" for="hitsPerPage">Результатов на страницу</label>
|
<label style="display:inline;" for="hitsPerPage">${i18n().extended_search_results_on_page}</label>
|
||||||
<select name="hitsPerPage" id="hitsPerPageSelect">
|
<@selectHitsPerPage/>
|
||||||
<option value="20" selected="selected">20</option>
|
|
||||||
<option value="40">40</option>
|
|
||||||
<option value="60">60</option>
|
|
||||||
<option value="80">80</option>
|
|
||||||
<option value="100">100</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button id="btn-search-expand" class="btn btn-warning reset" data-target="basic">Поиск</button>
|
<button id="btn-search-expand" class="btn btn-warning reset" data-target="basic">${i18n().extended_search_execute_search}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="backgroundForm">
|
<div id="backgroundForm">
|
||||||
<button id="btn-get-standard-searchform" class="btn btn-warning reset" data-target="basic">Стандартная форма поиска</button>
|
<button id="btn-get-standard-searchform" class="btn btn-warning reset" data-target="basic">${i18n().open_standard_search_form}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="themes/iph/js/query-builder.standalone.min.js"></script>
|
<script src="themes/iph/js/query-builder.standalone.min.js"></script>
|
||||||
<script src="themes/iph/js/query-builder.ru.js"></script>
|
<script src="themes/iph/js/query-builder.ru.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
@ -123,7 +116,7 @@
|
||||||
rules: rules_start
|
rules: rules_start
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn-reset').on('click', function() {
|
$('#btn-reset-button').on('click', function() {
|
||||||
$('#builder').queryBuilder('reset');
|
$('#builder').queryBuilder('reset');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -138,24 +131,13 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//$('#btn-get').on('click', function() {
|
$('#btn-search-expand').on('click', function() {
|
||||||
// var result = $('#builder').queryBuilder('getRules');
|
var json_result = $('#builder').queryBuilder('getRules', { get_flags: true });
|
||||||
//
|
|
||||||
// if (!$.isEmptyObject(result)) {
|
|
||||||
// alert(JSON.stringify(result, null, 2));
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
|
|
||||||
$('#btn-search').on('click', function() {
|
|
||||||
var json_result = $('#builder').queryBuilder('getRules');
|
|
||||||
var query_string = format_query_string(json_result,"");
|
var query_string = format_query_string(json_result,"");
|
||||||
var hits = $("#hitsPerPageSelect :selected");
|
var hits = $("#hitsPerPageSelect :selected");
|
||||||
if (!$.isEmptyObject(query_string)) {
|
if (!$.isEmptyObject(query_string)) {
|
||||||
<#if !queryBuilderRules??>
|
localStorage.setItem('queryBuilderForm',JSON.stringify(json_result));
|
||||||
localStorage.setItem('queryBuilderForm',JSON.stringify(json_result));
|
localStorage.setItem('queryBuilderFormSaved',true);
|
||||||
localStorage.setItem('queryBuilderFormSaved',true);
|
|
||||||
</#if>
|
|
||||||
var queryURL = "${urls.base}/customsearch?querytext=" + query_string;
|
var queryURL = "${urls.base}/customsearch?querytext=" + query_string;
|
||||||
if (hits !== null){
|
if (hits !== null){
|
||||||
queryURL = queryURL.concat("&hitsPerPage=",hits.text());
|
queryURL = queryURL.concat("&hitsPerPage=",hits.text());
|
||||||
|
@ -168,29 +150,90 @@
|
||||||
//}
|
//}
|
||||||
});
|
});
|
||||||
|
|
||||||
function format_query_string(json_query, string_query){
|
function format_query_string(json_query, string_query, htmlEncode = true){
|
||||||
if ('condition' in json_query && 'rules' in json_query ){
|
if ('condition' in json_query && 'rules' in json_query ){
|
||||||
if (json_query.rules.length > 1 ) {
|
if (json_query.rules.length > 1 ) {
|
||||||
string_query +=" ( ";
|
string_query +=" ( ";
|
||||||
var i;
|
var i;
|
||||||
for (i = 0; i < json_query.rules.length; i++) {
|
for (i = 0; i < json_query.rules.length; i++) {
|
||||||
string_query = format_query_string(json_query.rules[i], string_query);
|
string_query = format_query_string(json_query.rules[i], string_query, htmlEncode);
|
||||||
if (i + 1 < json_query.rules.length){
|
if (i + 1 < json_query.rules.length){
|
||||||
string_query += " " + json_query.condition + " ";
|
string_query += " " + json_query.condition + " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
string_query +=" ) ";
|
string_query +=" ) ";
|
||||||
} else {
|
} else {
|
||||||
string_query = format_query_string(json_query.rules[0], string_query);
|
string_query = format_query_string(json_query.rules[0], string_query, htmlEncode);
|
||||||
}
|
}
|
||||||
} else if ( 'field' in json_query && 'value' in json_query ){
|
} else if ( 'field' in json_query && 'value' in json_query ){
|
||||||
if ('operator' in json_query && json_query.operator.startsWith("not_")){
|
if ('operator' in json_query && json_query.operator.startsWith("not_")){
|
||||||
string_query += "NOT ";
|
string_query += "NOT ";
|
||||||
}
|
}
|
||||||
string_query += json_query.field + ":" + json_query.value.toString().replace(/[']+/g,'').replace(/#/g,'%23') ;
|
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,'');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return string_query;
|
return string_query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function excludeDocByURI(name, uri){
|
||||||
|
var allRules = $('#builder').queryBuilder('getRules', { get_flags: true });
|
||||||
|
var excludeRuleString = '{ "id": "URI", "field": "URI", "type": "string", "flags":{}, "input": "text", "operator": "not_contains", "data":{} }';
|
||||||
|
var excludeRule = JSON.parse(excludeRuleString);
|
||||||
|
excludeRule.data.value = uri;
|
||||||
|
excludeRule.flags.value_readonly = true;
|
||||||
|
excludeRule.flags.filter_readonly = true;
|
||||||
|
excludeRule.flags.operator_readonly = true;
|
||||||
|
excludeRule.value = name;
|
||||||
|
if (allRules !== null){
|
||||||
|
if (allRules.condition === "AND"){
|
||||||
|
allRules.rules.push(excludeRule);
|
||||||
|
} else {
|
||||||
|
var outerRulesString = '{ "condition": "AND", "rules": [] }';
|
||||||
|
var outerRules = JSON.parse(outerRulesString);
|
||||||
|
outerRules.rules.push(allRules);
|
||||||
|
outerRules.rules.push(excludeRule);
|
||||||
|
allRules = outerRules;
|
||||||
|
}
|
||||||
|
$('#builder').queryBuilder('setRules', allRules);
|
||||||
|
var elements = document.querySelectorAll('[parturi="' + uri + '"]');
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < elements.length; i++) {
|
||||||
|
elements[i].parentElement.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createRemoveButtons(){
|
||||||
|
$('.compilationDraftExcerpt').each(function(index){ createRemoveButton(this)});
|
||||||
|
}
|
||||||
|
|
||||||
|
function createRemoveButton(element){
|
||||||
|
var uri = element.getAttribute('parturi');
|
||||||
|
var button = element.querySelector('button');
|
||||||
|
var name = button.textContent;
|
||||||
|
var a = document.createElement('a');
|
||||||
|
a.setAttribute('href',"javascript:excludeDocByURI(\'" + escapeQutes(name) + "\',\'" + escapeQutes(uri) + "\');");
|
||||||
|
a.setAttribute('class',"removeDocFromSearch");
|
||||||
|
|
||||||
|
a.textContent = "${i18n().remove_doc_from_search_results}" ;
|
||||||
|
|
||||||
|
button.appendChild(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
function escapeQutes(input) {
|
||||||
|
return input
|
||||||
|
.replace(/"/g, """)
|
||||||
|
.replace(/'/g, "'")
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<#macro freeField field >
|
<#macro freeField field >
|
||||||
{
|
{
|
||||||
|
@ -227,3 +270,19 @@
|
||||||
operators: ['contains', 'not_contains']
|
operators: ['contains', 'not_contains']
|
||||||
},
|
},
|
||||||
</#macro>
|
</#macro>
|
||||||
|
|
||||||
|
<#macro selectHitsPerPage>
|
||||||
|
<#if !hitsPerPage?? >
|
||||||
|
<#assign hitsPerPage = 20 >
|
||||||
|
</#if>
|
||||||
|
<#assign hitsValues= [20,40,60,80,100]>
|
||||||
|
<select name="hitsPerPage" id="hitsPerPageSelect">
|
||||||
|
<option value="${hitsPerPage}" selected="selected">${hitsPerPage}</option>
|
||||||
|
<#list hitsValues as hppValue>
|
||||||
|
<#if hppValue != hitsPerPage>
|
||||||
|
<option value="${hppValue}">${hppValue}</option>
|
||||||
|
</#if>
|
||||||
|
</#list>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</#macro>
|
||||||
|
|
17
webapp/src/main/webapp/themes/iph/templates/rightPanel.ftl
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<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>
|
||||||
|
|
|
@ -1,16 +1,20 @@
|
||||||
<#import "lib-vivo-properties.ftl" as vp>
|
<#import "lib-vivo-properties.ftl" as vp>
|
||||||
<#include "individual-setup.ftl">
|
<#include "individual-setup.ftl">
|
||||||
|
|
||||||
|
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
|
||||||
|
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
|
||||||
|
|
||||||
<section id="individual-intro" class="vcard person" role="region">
|
<section id="individual-intro" class="vcard person" role="region">
|
||||||
<span itemscope itemtype="http://schema.org/Person">
|
<span itemscope itemtype="http://schema.org/Person">
|
||||||
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
<section id="individual-info" ${infoClass!} role="region" style="width: 100%;">
|
||||||
<#include "individual-adminPanel.ftl">
|
<#include "individual-adminPanel.ftl">
|
||||||
<header>
|
<header>
|
||||||
|
<div id="articleTitleWrapper">
|
||||||
<#if relatedSubject??>
|
<#if relatedSubject??>
|
||||||
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
<h2>${relatedSubject.relatingPredicateDomainPublic} ${i18n().for} ${relatedSubject.name}</h2>
|
||||||
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
<p><a href="${relatedSubject.url}" title="${i18n().return_to(relatedSubject.name)}">← ${i18n().return_to(relatedSubject.name)}</a></p>
|
||||||
<#else>
|
<#else>
|
||||||
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;width:100%;border-right:1px solid #A6B1B0;"</#if>>
|
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="width:100%;border-right:1px solid #A6B1B0;"</#if>>
|
||||||
<@p.label individual editable labelCount localesCount/>
|
<@p.label individual editable labelCount localesCount/>
|
||||||
</h1>
|
</h1>
|
||||||
</#if>
|
</#if>
|
||||||
|
@ -18,6 +22,7 @@
|
||||||
<#if editable && profilePageTypesEnabled >
|
<#if editable && profilePageTypesEnabled >
|
||||||
<#include "individual-profilePageTypes.ftl">
|
<#include "individual-profilePageTypes.ftl">
|
||||||
</#if>
|
</#if>
|
||||||
|
</div>
|
||||||
</header>
|
</header>
|
||||||
</section>
|
</section>
|
||||||
</span>
|
</span>
|
||||||
|
@ -25,7 +30,7 @@
|
||||||
|
|
||||||
<#assign parent = propertyGroups.pullProperty("https://iph.ras.ru/relationships#hasParent")!>
|
<#assign parent = propertyGroups.pullProperty("https://iph.ras.ru/relationships#hasParent")!>
|
||||||
<#if parent?has_content>
|
<#if parent?has_content>
|
||||||
<div class="label">Родительская рубрика<#if !parent.statements?has_content> <@p.addLink parent editable /></#if> <@p.verboseDisplay parent /></div>
|
<div class="label">${i18n().rubricator_parent_rubric}<#if !parent.statements?has_content> <@p.addLink parent editable /></#if> <@p.verboseDisplay parent /></div>
|
||||||
<#if parent.statements?has_content >
|
<#if parent.statements?has_content >
|
||||||
<div style="list-style:none;" class="parentRubric">
|
<div style="list-style:none;" class="parentRubric">
|
||||||
<@p.objectProperty parent editable />
|
<@p.objectProperty parent editable />
|
||||||
|
@ -36,7 +41,7 @@
|
||||||
|
|
||||||
<#assign order = propertyGroups.pullProperty("https://iph.ras.ru/relationships#rubricOrder")!>
|
<#assign order = propertyGroups.pullProperty("https://iph.ras.ru/relationships#rubricOrder")!>
|
||||||
<#if order?has_content>
|
<#if order?has_content>
|
||||||
<div class="label">Порядок рубрики<#if !order.statements?has_content> <@p.addLink order editable /></#if> <@p.verboseDisplay order /></div>
|
<div class="label">${i18n().rubricator_rubric_order}<#if !order.statements?has_content> <@p.addLink order editable /></#if> <@p.verboseDisplay order /></div>
|
||||||
<#if order.statements?has_content >
|
<#if order.statements?has_content >
|
||||||
<div style="list-style:none;" class="rubricOrder">
|
<div style="list-style:none;" class="rubricOrder">
|
||||||
<@p.dataPropertyList order editable />
|
<@p.dataPropertyList order editable />
|
||||||
|
@ -46,11 +51,11 @@
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#if childRubrics?has_content>
|
<#if childRubrics?has_content>
|
||||||
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Подрубрики</button>
|
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_subrubrics}</button>
|
||||||
<div style="display:none;">
|
<div style="display:none;">
|
||||||
<#list childRubrics as childRubric>
|
<#list childRubrics as childRubric>
|
||||||
<#if childRubric?has_content >
|
<#if childRubric?has_content >
|
||||||
<div style="list-style:none;border:none;padding: 18px;width: 100%;text-align:left;" class="childRubric">
|
<div class="childRubric">
|
||||||
<a href="${urls.base}/individual?uri=${childRubric.rubricID?url}"">${childRubric.rubricName}</a>
|
<a href="${urls.base}/individual?uri=${childRubric.rubricID?url}"">${childRubric.rubricName}</a>
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
@ -59,11 +64,11 @@
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#if childArticles?has_content>
|
<#if childArticles?has_content>
|
||||||
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Статьи в подрубриках</button>
|
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_articles_in_subrubrics}</button>
|
||||||
<div style="display:none;">
|
<div style="display:none;">
|
||||||
<#list childArticles as childArticle>
|
<#list childArticles as childArticle>
|
||||||
<#if childArticle?has_content >
|
<#if childArticle?has_content >
|
||||||
<div style="list-style:none;border:none;padding: 18px;width: 100%;text-align:left;" class="childArticle">
|
<div class="childArticle">
|
||||||
<a href="${urls.base}/individual?uri=${childArticle.childArticleID?url}"">${childArticle.childArticleName}</a>
|
<a href="${urls.base}/individual?uri=${childArticle.childArticleID?url}"">${childArticle.childArticleName}</a>
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
@ -72,11 +77,11 @@
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#if childExcerpts?has_content>
|
<#if childExcerpts?has_content>
|
||||||
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Отрывки в подрубриках</button>
|
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_excerpts_in_subrubrics}</button>
|
||||||
<div style="display:none;">
|
<div style="display:none;">
|
||||||
<#list childExcerpts as childExcerpt>
|
<#list childExcerpts as childExcerpt>
|
||||||
<#if childExcerpt?has_content >
|
<#if childExcerpt?has_content >
|
||||||
<div style="list-style:none;border:none;padding: 18px;width: 100%;text-align:left;" class="childExcerpt">
|
<div class="childExcerpt">
|
||||||
<a href="${urls.base}/individual?uri=${childExcerpt.childExcerptID?url}"">${childExcerpt.childExcerptName}</a>
|
<a href="${urls.base}/individual?uri=${childExcerpt.childExcerptID?url}"">${childExcerpt.childExcerptName}</a>
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
@ -85,7 +90,7 @@
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#if articles?has_content>
|
<#if articles?has_content>
|
||||||
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Статьи в данной рубрике</button>
|
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_articles_in_rubric}</button>
|
||||||
<div class="articles" style="display:none;">
|
<div class="articles" style="display:none;">
|
||||||
<#list articles as article>
|
<#list articles as article>
|
||||||
<#if article?has_content >
|
<#if article?has_content >
|
||||||
|
@ -98,7 +103,7 @@
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#if excerpts?has_content>
|
<#if excerpts?has_content>
|
||||||
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">Отрывки в данной рубрике</button>
|
<button type="button" class="collapsible" style="border:none;padding: 18px;width: 100%;text-align:left;">${i18n().rubricator_excerpts_in_rubric}</button>
|
||||||
<div style="display:none;" class="excerpts">
|
<div style="display:none;" class="excerpts">
|
||||||
<#list excerpts as excerpt>
|
<#list excerpts as excerpt>
|
||||||
<#if excerpt?has_content >
|
<#if excerpt?has_content >
|
||||||
|
@ -109,23 +114,3 @@
|
||||||
</#list>
|
</#list>
|
||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
|
||||||
var coll = document.getElementsByClassName("collapsible");
|
|
||||||
var i;
|
|
||||||
|
|
||||||
for (i = 0; i < coll.length; i++) {
|
|
||||||
coll[i].addEventListener("click", function() {
|
|
||||||
this.classList.toggle("active");
|
|
||||||
var content = this.nextElementSibling;
|
|
||||||
if (content.style.display === "block") {
|
|
||||||
content.style.display = "none";
|
|
||||||
} else {
|
|
||||||
content.style.display = "block";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,15 @@
|
||||||
|
${scripts.add('<script type="text/javascript" src="${urls.base}/themes/iph/js/collapsible_elements.js"></script>')}
|
||||||
|
${scripts.add('<script async type="text/javascript" src="${urls.base}/themes/iph/js/print.js"></script>')}
|
||||||
|
|
||||||
<#list rubrics as rubric>
|
<#list rubrics as rubric>
|
||||||
<#if !rubric.parentUri??>
|
<#if !rubric.parentUri??>
|
||||||
<#assign childs = rubric.childs?number>
|
<#assign childs = rubric.childs?number>
|
||||||
<button type="button" style="border:none;padding: 15px;text-align:left; width:100%;" class="collapsible">
|
<button type="button" style="border:none;padding: 15px;text-align:left; width:100%;" class="collapsible">
|
||||||
<@openButton childs=childs/><a style="padding-left:15px;" href="individual?uri=${rubric.uri?url}">${rubric.name}</a></button>
|
<@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>
|
||||||
<div class="rubricContents" style="display:none;">
|
<div class="rubricContents" style="display:none;">
|
||||||
<#if (childs > 0) >
|
<#if (childs > 0) >
|
||||||
<@nestedRubrics allrubrics=rubrics parentUri=rubric.uri deep=10 level=1 />
|
<@nestedRubrics allrubrics=rubrics parentUri=rubric.uri deep=10 level=1 />
|
||||||
|
@ -13,24 +20,6 @@
|
||||||
</#list>
|
</#list>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
|
||||||
var coll = document.getElementsByClassName("collapsible");
|
|
||||||
var i;
|
|
||||||
for (i = 0; i < coll.length; i++) {
|
|
||||||
coll[i].addEventListener("click", function() {
|
|
||||||
this.classList.toggle("active");
|
|
||||||
var content = this.nextElementSibling;
|
|
||||||
if (content.style.display === "block") {
|
|
||||||
content.style.display = "none";
|
|
||||||
$(this).children('.collapsibleSign').text('+');
|
|
||||||
} else {
|
|
||||||
content.style.display = "block";
|
|
||||||
$(this).children('.collapsibleSign').text('–');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<#macro openButton childs>
|
<#macro openButton childs>
|
||||||
<#if childs > 0>
|
<#if childs > 0>
|
||||||
<div class="collapsibleSign" style="display:inline-block;width:10px;">+</div>
|
<div class="collapsibleSign" style="display:inline-block;width:10px;">+</div>
|
||||||
|
@ -45,7 +34,11 @@
|
||||||
<#if innerRubric.parentUri?? && innerRubric.parentUri == parentUri>
|
<#if innerRubric.parentUri?? && innerRubric.parentUri == parentUri>
|
||||||
<#assign childs = innerRubric.childs?number>
|
<#assign childs = innerRubric.childs?number>
|
||||||
<#assign count = count + 1 >
|
<#assign count = count + 1 >
|
||||||
<button type="button" style="border:none;padding: 15px 0px 15px ${15+15*level}px;width: 100%; text-align:left;" class="collapsible"><@openButton childs=childs /><a style="padding-left:15px;" href="individual?uri=${innerRubric.uri?url}">${innerRubric.name}</a></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;">${innerRubric.name}</a>
|
||||||
|
<div id="rubricFollow">
|
||||||
|
<a href="individual?uri=${innerRubric.uri?url}">${i18n().metadata_to_rubric}</a>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
<div class="rubricContents" style="display:none;">
|
<div class="rubricContents" style="display:none;">
|
||||||
<#if (deep > 1) && (childs > 0)>
|
<#if (deep > 1) && (childs > 0)>
|
||||||
<@nestedRubrics allrubrics=rubrics parentUri=innerRubric.uri deep=deep-1 level=level+1 />
|
<@nestedRubrics allrubrics=rubrics parentUri=innerRubric.uri deep=deep-1 level=level+1 />
|
|
@ -1,6 +1,6 @@
|
||||||
<div id="simple-search-container">
|
<div id="simple-search-container">
|
||||||
<#include "customSearchForm.ftl">
|
<#include "customSearchForm.ftl">
|
||||||
<button id="switch-to-extended-searchform">Расширенный поиск</button>
|
<button id="switch-to-extended-searchform">${i18n().extended_search_label}</button>
|
||||||
</div>
|
</div>
|
||||||
<#include "queryBuilder.ftl">
|
<#include "queryBuilder.ftl">
|
||||||
|
|
||||||
|
|
254
webapp/src/main/webapp/themes/iph/templates/text-lib.ftl
Normal file
|
@ -0,0 +1,254 @@
|
||||||
|
<#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 > 0>
|
||||||
|
<@openDocPart depth path />
|
||||||
|
<#else >
|
||||||
|
<@closeDocPart -depth+1 />
|
||||||
|
<@openDocPart 1 path />
|
||||||
|
</#if>
|
||||||
|
</#macro>
|
||||||
|
|
||||||
|
<#macro endDocumentPart lastLevel newLevel=0>
|
||||||
|
<#assign depth = lastLevel - newLevel >
|
||||||
|
<#if depth > 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 > 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 > 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} </#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}, </#if>${author.orgAddress} </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??> ${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">×</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>
|
||||||
|
|
||||||
|
|
||||||
|
|