Compare commits

...
Sign in to create a new pull request.

263 commits

Author SHA1 Message Date
eb3563dff5 fix: remove individuals from robots.txt disallowed 2021-10-04 16:30:03 +02:00
0e9f962a5e fix: do not encode uri # in queiries for POST #2 2021-10-01 12:19:23 +02:00
67bbdfde84 fix: do not encode uri # in queiries for POST 2021-10-01 12:06:59 +02:00
7edbe86c6c fix: always save current search settings 2021-10-01 11:41:31 +02:00
6f7f5e3dd3 fix: use attribute for excerpts names 2021-09-28 22:21:19 +02:00
258590dc24 Revert "fix: new compilation creation path should be relative to current url"
This reverts commit 9c5ea6f397.
2021-09-28 20:46:10 +02:00
9c5ea6f397 fix: new compilation creation path should be relative to current url 2021-09-28 19:22:35 +02:00
1db2abd612 Merge branch 'excludeDocFromSearch' into texts 2021-09-28 18:11:08 +02:00
15f01d5e37 Added buttons to remove document from search results 2021-09-28 18:10:46 +02:00
214c23a3eb Eng language translations 2021-09-28 18:09:19 +02:00
631e9f9b71 fix: for prev commits 2021-09-28 15:38:18 +02:00
daa373fc2e fix: don't hide articles by default 2021-09-28 14:47:39 +02:00
313a15d7b2 fix: don't hide articles by default 2021-09-28 14:41:26 +02:00
d159e91cd1 More progress 2021-07-19 19:24:39 +02:00
fd5b66000f Some progress 2021-07-15 23:01:42 +02:00
166e90dae0 Added script to exclude uri from search 2021-07-15 16:56:48 +02:00
bf1ddd6657 Moved shortconfig from Vitro branch 2021-06-28 20:01:27 +02:00
16ef97f28d Improved iph theme localization 2021-06-28 18:55:40 +02:00
92704df096 Moved localizations to properties 2021-06-28 17:39:15 +02:00
04d60d0aaa Move alphabetical classifier to VIVO branch 2021-06-28 14:41:57 +02:00
6b1d47bdcb Moved templates from Vitro branch 2021-06-28 14:30:08 +02:00
f11a341f75 Added empty template for statistic counters 2021-05-05 13:21:36 +02:00
Svetlana Rastegina
107c6b6d83 Added settings icon image 2021-04-27 16:39:48 +02:00
Svetlana Rastegina
2ebf2b84f4 Modified style modal window and added close button. 2021-04-27 15:33:27 +02:00
96848371e4 Merge branch 'texts' into modalSettings 2021-04-26 12:35:34 +02:00
0db7f7906a Added user modal settings 2021-04-26 12:35:06 +02:00
Svetlana Rastegina
70a561ae84 Fixed metadata font size. 2021-04-19 13:12:03 +02:00
Svetlana Rastegina
06d92d6e8d Modified favicon icon image. 2021-04-19 13:11:59 +02:00
Svetlana Rastegina
dcfb17856b Modified favicon icon image. 2021-04-19 13:11:54 +02:00
d5721d1d48 Differentiated sources and literature lists for excerpts and complex texts 2021-04-15 17:03:10 +02:00
Svetlana Rastegina
8fadf30f2f Added favicon ico image. 2021-04-12 17:16:17 +02:00
9a890d08ee Autoselect hits per page from query 2021-04-07 18:03:03 +02:00
f88d30718c Fix for prev commit 2021-04-01 01:06:36 +02:00
9b3026c485 Fix top background 2021-04-01 00:39:32 +02:00
d75afa6305 Revert "Fix bad background"
This reverts commit 8f543d1e68.
2021-04-01 00:25:47 +02:00
8f543d1e68 Fix bad background 2021-04-01 00:16:40 +02:00
Svetlana Rastegina
f4f837d19d Modified style on no page result. 2021-03-31 15:10:22 +02:00
Svetlana Rastegina
4c1aa596f3 Added image for literature and source items on right content panel. 2021-03-31 00:08:33 +02:00
Svetlana Rastegina
0b461e9605 Fixed literature and source lists on search results page. 2021-03-30 16:26:11 +02:00
Svetlana Rastegina
f38a5a4708 Fixed title rubric class. 2021-03-30 16:25:53 +02:00
d87cf361d7 Added delete button to article page 2021-03-29 18:16:49 +02:00
e201890a1f Fix article delete query 2021-03-26 18:34:08 +01:00
393b805e25 Fix compilation creation 2021-03-26 14:10:53 +01:00
Svetlana Rastegina
fb7bccd853 Fixed copyright information. 2021-03-25 20:14:00 +01:00
Svetlana Rastegina
2577b4c8a8 Added follow button to rubrics page. 2021-03-25 20:13:57 +01:00
Svetlana Rastegina
ef47dfa35f Fixed expand content on Exerpt page. 2021-03-25 10:56:25 +01:00
Svetlana Rastegina
7c53c79909 Added metadata switch button on compilation page. 2021-03-24 20:16:45 +01:00
aad030deb0 Fix for collapsible metadata and doc parts js 2021-03-24 19:41:29 +01:00
Svetlana Rastegina
6597a750e5 Added metadata switch button. 2021-03-24 19:23:10 +01:00
Svetlana Rastegina
7d8c144b0f Fixed sitch metadata image. 2021-03-24 17:27:54 +01:00
Svetlana Rastegina
770d899e05 Fixed metadata name. 2021-03-24 14:45:43 +01:00
Svetlana Rastegina
c43aa646b0 Added metadata switcher. 2021-03-24 14:40:05 +01:00
6ab16d7848 Added collapsible metadata scripts 2021-03-24 11:49:28 +01:00
Svetlana Rastegina
7cc5057409 Modified custom style check button on search page result. 2021-03-24 10:50:01 +01:00
Svetlana Rastegina
3dbce2253c Fixed entity page width size on all resolutions. 2021-03-24 10:49:53 +01:00
Svetlana Rastegina
94ed653519 Fixed margin bottom p. 2021-03-24 10:49:46 +01:00
Svetlana Rastegina
0fdc72ca32 Fixed padding top text exerpts. 2021-03-24 10:49:39 +01:00
Svetlana Rastegina
48445cfd78 Removed double quote. 2021-03-24 10:49:33 +01:00
Svetlana Rastegina
c933019a2f Fixed metadata information on Exerpt page. 2021-03-24 10:49:28 +01:00
Svetlana Rastegina
4969868784 Modified metadata styles on Exerpt page. 2021-03-24 10:49:24 +01:00
Svetlana Rastegina
a55c5ddc59 Modified page result styles. 2021-03-23 00:08:10 +01:00
Svetlana Rastegina
122e1b283f Modified collupsible button paddings on search result page. 2021-03-22 23:49:07 +01:00
Svetlana Rastegina
1343a41eed Modified collupsible button paddings. 2021-03-22 23:49:04 +01:00
Svetlana Rastegina
3d3881592b Removed double quotes. 2021-03-22 23:49:00 +01:00
Svetlana Rastegina
113a0f9165 Modified authors affilation style. 2021-03-22 23:48:56 +01:00
Svetlana Rastegina
f49d468f9d Fixed title article font-size. 2021-03-22 19:21:40 +01:00
634bf28adc Add standard container for search results 2021-03-22 19:18:50 +01:00
Svetlana Rastegina
0d63da02b2 Modified save button style. 2021-03-22 16:27:31 +01:00
36f5c0d023 Collapsible authors in elenph excerpts 2021-03-22 13:21:38 +01:00
Svetlana Rastegina
9714679207 Deleted empty raw. 2021-03-22 13:12:38 +01:00
Svetlana Rastegina
be2b3dd32d Added new class for tool shelf on compilation page. 2021-03-19 14:31:42 +01:00
Svetlana Rastegina
b7b97c9641 Fixed title break on article page. 2021-03-19 14:31:38 +01:00
Svetlana Rastegina
e03c06f2f5 Fixed shelf tools width for article page. 2021-03-19 14:31:34 +01:00
Svetlana Rastegina
46a1622475 Fixed shelf tools for article page. 2021-03-19 14:31:29 +01:00
Svetlana Rastegina
4930f127cc Fixed main navigation link font size. 2021-03-19 14:31:24 +01:00
Svetlana Rastegina
0970c329ba Added download-icon. 2021-03-19 14:31:21 +01:00
Svetlana Rastegina
45e003bf5b Fixed search result headline and download icon. 2021-03-19 14:31:18 +01:00
Svetlana Rastegina
62c0efb9cb Fixed padding for switch document button. 2021-03-19 14:31:12 +01:00
4044f5ec88 Remove sequential duplicates in literature and sources lists 2021-03-18 12:52:17 +01:00
d8b08024e8 Workaround for broken documents 2021-03-18 12:13:59 +01:00
Svetlana Rastegina
7472d834a0 Changed title font size on page rezult. 2021-03-17 12:14:01 +01:00
Svetlana Rastegina
e9b1d7df89 Fixed search button outline style. 2021-03-17 12:13:40 +01:00
Svetlana Rastegina
a1b2148c49 Modified first publication style. 2021-03-17 12:13:15 +01:00
039dcfae2e Switch text and image on collpase/expand document 2021-03-16 15:39:57 +01:00
Svetlana Rastegina
fbb94b2f35 Added new image. 2021-03-15 16:20:45 +01:00
Svetlana Rastegina
2ad91043b2 Added print button to compilation page. 2021-03-15 16:20:42 +01:00
Svetlana Rastegina
9340a3587f Fixed title style. 2021-03-15 15:00:28 +01:00
Svetlana Rastegina
4c2fdc51c2 Fixed authors page width. 2021-03-15 15:00:22 +01:00
Svetlana Rastegina
ee5b41c4f9 Fixed expand article button. 2021-03-15 14:04:11 +01:00
Svetlana Rastegina
397f29b83e Modified print button position. 2021-03-15 14:04:08 +01:00
Svetlana Rastegina
ee82cb0f51 Modified affilations style. 2021-03-15 14:04:03 +01:00
Svetlana Rastegina
d4186f4558 Hid right top buttons.Modified result page style. 2021-03-14 12:39:43 +01:00
Svetlana Rastegina
fec44a297d Removed online css styles. 2021-03-12 11:57:07 +01:00
Svetlana Rastegina
3d4b377430 Fixed metadata styles. 2021-03-12 11:55:50 +01:00
Svetlana Rastegina
e31b92fae2 Fixed expand button style and metadata content style. 2021-03-11 21:32:07 +01:00
Svetlana Rastegina
e76bff1430 Added page result pagination border. 2021-03-11 19:51:38 +01:00
Svetlana Rastegina
7352adc725 Fixed page result pagination styles. 2021-03-11 19:42:11 +01:00
Svetlana Rastegina
844734824a Modified collapse/expande button style and hided right block on result search page. 2021-03-11 19:30:33 +01:00
836fd45f3c Improved collapsible element 2021-03-11 14:46:36 +01:00
Svetlana Rastegina
aaa5b644a6 Added images for buttons. 2021-03-11 14:16:47 +01:00
Svetlana Rastegina
5d884b22fe Fixed padding top on article title. 2021-03-11 13:15:34 +01:00
Svetlana Rastegina
f06e7db358 Added print function in right panel. 2021-03-10 21:03:37 +01:00
Svetlana Rastegina
69e3037351 Modified page pagination style. 2021-03-10 21:03:34 +01:00
975a778b04 Made rubric list collapsible 2021-03-10 19:58:51 +01:00
Svetlana Rastegina
b7d6345338 Added expand and collapse buttons. 2021-03-10 12:43:34 +01:00
e4c4293a35 Added TOC collapse/expand scripts 2021-03-09 15:09:53 +01:00
Svetlana Rastegina
6b2b1be952 Added expand button for articles metadata. 2021-03-09 10:44:29 +01:00
Svetlana Rastegina
f5b8d7d43d Modified right menu styles. 2021-03-09 10:44:24 +01:00
Svetlana Rastegina
30516cbf03 Added new styles for affilations and metadata. 2021-03-09 10:44:13 +01:00
Svetlana Rastegina
3b40cd5d8a Modified a hover style.Fixed icons padding. 2021-03-05 11:56:13 +01:00
Svetlana Rastegina
b620a439ba Added right search panel on Compilations page.Modified title block. 2021-03-05 11:56:08 +01:00
Svetlana Rastegina
899b2e6d17 Fixed right icons padding. 2021-03-05 11:55:56 +01:00
Svetlana Rastegina
9e8ee41438 Added print,save,export PDF buttons. 2021-03-05 11:55:46 +01:00
b49f169474 Open parent document parts when go to part from TOC 2021-03-05 00:04:59 +01:00
43ff4e44a8 Added table of contents js functions 2021-03-04 16:03:05 +01:00
Svetlana Rastegina
8867d26392 Merge branch 'css' into texts 2021-03-03 21:20:26 +01:00
Svetlana Rastegina
954e3ffdab Added button to top. 2021-03-03 21:11:09 +01:00
Svetlana Rastegina
7028373270 Replaced share link image. 2021-03-03 21:10:16 +01:00
6617262a81 Improved document structure 2021-03-03 20:46:02 +01:00
Svetlana Rastegina
7580e40cc4 Added button To top. 2021-03-03 18:43:46 +01:00
bc426ec4a1 Fix for sources and literature output for document parts 2021-03-03 17:48:22 +01:00
4627c9c22c Move authors metadata to macro 2021-03-03 17:26:00 +01:00
4ee8db0022 Get level of excerpts in document 2021-03-03 17:25:29 +01:00
0e1614a31a Refactoring document structure 2021-03-03 16:15:03 +01:00
00c35dbd17 Add closing tag to sep directive 2021-03-03 15:03:30 +01:00
5b77aaf75f Renamed expand switch settings function 2021-03-03 15:01:08 +01:00
d3328ebf96 Fix underline authors' list 2021-03-03 15:00:38 +01:00
88244a461d Improved article delete query 2021-03-03 14:28:07 +01:00
1b04a58afc Split expand switch into two: setttings switch and one-time switch 2021-03-03 13:43:03 +01:00
7556de1437 Moved freemarker templates into theme 2021-03-02 21:15:21 +01:00
7eea134629 Fix authors sign 2021-03-02 15:40:32 +01:00
65be4fce1c Refactoring rubric and rubrics templates 2021-03-02 15:19:25 +01:00
b5ca5b32ed Fixing expand switch 2021-03-02 15:15:47 +01:00
faf9615b15 Refactoring expand scripts 2021-03-02 15:01:26 +01:00
7b92143572 Refactoring expand scripts 2021-03-02 14:56:17 +01:00
7d29e55b40 Cleaning up elenph excerpt template 2021-03-02 14:14:48 +01:00
2330615e77 Fixed text excerpt delete query 2021-03-01 12:30:55 +01:00
Svetlana Rastegina
79be5fbe3c Fixed literature lists image url. 2021-02-28 22:11:24 +01:00
Svetlana Rastegina
6fb235afd4 Fixed literature lists margins. 2021-02-28 21:58:16 +01:00
Svetlana Rastegina
a54c66fecf Merge branch 'texts' of dev.litvinovg.pro:litvinovg/vivo into texts 2021-02-28 21:39:00 +01:00
67c7d2c363 Temporary hack 2021-02-26 22:00:00 +01:00
Svetlana Rastegina
62676eb756 Fixed margin top lists on search result page. 2021-02-26 20:42:17 +01:00
Svetlana Rastegina
f320f1c567 Fixed literature lists on search result page. 2021-02-26 20:26:27 +01:00
b851995e60 Rewrite indexing rules for more generic cases 2021-02-26 17:37:43 +01:00
032667a87e Add excerpts of any complex publication to ALLTEXT field 2021-02-26 16:57:25 +01:00
6e0eb8cb01 Rename prefix 2021-02-26 16:51:46 +01:00
be8ee67e1b Reindex complex publications on excerpt change 2021-02-26 16:50:04 +01:00
Svetlana Rastegina
2ed94eb668 Fixed literature lists on exerpts page. 2021-02-26 13:40:38 +01:00
Svetlana Rastegina
0ad3937fb7 Fixed fonts size. 2021-02-26 12:33:15 +01:00
db8f9bd0fe Hide duplicate search panel on search results page 2021-02-25 17:17:08 +01:00
17d7a8c227 Fixed buttons ids 2021-02-25 16:50:07 +01:00
a134b9f98d Renamed Работы to Источники 2021-02-25 16:13:15 +01:00
5b91f360d7 Show delete button only if it is usable 2021-02-25 15:17:33 +01:00
0c8163070b Fix compilation template 2021-02-25 15:13:32 +01:00
db103e6293 Merge branch 'design' of dev.litvinovg.pro:litvinovg/vivo into texts 2021-02-25 15:05:47 +01:00
Svetlana Rastegina
6146cbc644 Fixed blocks width on article page. 2021-02-25 12:46:21 +01:00
Svetlana Rastegina
506df325f9 Fixed request right search panel on article page. 2021-02-25 12:37:26 +01:00
Svetlana Rastegina
94c30c094f Hid statistic information. 2021-02-25 12:25:10 +01:00
Svetlana Rastegina
00bb148293 Hid select option in search panel on main page . 2021-02-25 12:05:21 +01:00
Svetlana Rastegina
74b5c642f2 Fixed wrapper-content width on all pages. 2021-02-24 14:09:46 +01:00
Svetlana Rastegina
5c515bc1ef Fixed expand search buttons. 2021-02-24 11:39:38 +01:00
Svetlana Rastegina
177b89c439 Fixed accounts loggedin page. 2021-02-24 00:21:33 +01:00
Svetlana Rastegina
aa46b60153 Fixed articles page and rubrics page. 2021-02-23 23:57:58 +01:00
baf2353bfc Run saved query from compilation page 2021-02-23 22:46:00 +01:00
74545944e4 Save query and rules at compilation creation 2021-02-23 22:31:14 +01:00
Svetlana Rastegina
51fcd68078 Fixed main page styles on various screen resolutions. 2021-02-23 22:14:56 +01:00
Svetlana Rastegina
1a3857bf1a Fixed right search panel and home search region. 2021-02-23 18:42:50 +01:00
293804fcfb Custom template for compilation 2021-02-23 14:57:55 +01:00
Svetlana Rastegina
a148013a20 Added font files on site. 2021-02-22 12:50:19 +01:00
385c42d415 Added elenph excerpt delete query 2021-02-22 11:11:09 +01:00
5008806a8c Added delete queries 2021-02-22 09:01:52 +01:00
bd3b2f31ea Added modification time to compilation generator 2021-02-21 21:54:21 +01:00
Svetlana Rastegina
bb626da213 Changed log in page styles. 2021-02-21 21:28:52 +01:00
Svetlana Rastegina
3f8ef9ca33 Changed right search styles for all screen resolutions. 2021-02-19 17:45:30 +01:00
Svetlana Rastegina
a751682e99 Fixed right search panel. 2021-02-18 22:44:05 +01:00
Svetlana Rastegina
a800ac8b0a Added list style for literature lists. 2021-02-17 22:43:33 +01:00
Svetlana Rastegina
bc323b06fd Added list style for article literature. 2021-02-17 15:34:37 +01:00
Svetlana Rastegina
3abd97ec0a Modified article page styles and added new images. 2021-02-17 15:22:32 +01:00
Svetlana Rastegina
87b05c8af4 Modified alphabetical index page styles. 2021-02-16 22:38:58 +01:00
Svetlana Rastegina
39bd1017a0 Modified alphabetical index page styles. 2021-02-16 21:33:02 +01:00
Svetlana Rastegina
a0b93ad247 Added image for search button on main page. 2021-02-16 13:51:25 +01:00
Svetlana Rastegina
58d3beb31c Fixed select input orange arrow. 2021-02-12 00:11:58 +01:00
Svetlana Rastegina
6e7476fc1d Added new images. 2021-02-11 21:34:50 +01:00
Svetlana Rastegina
b4637a865a Fixed custom search button (background and width on various resolutions). 2021-02-11 21:33:40 +01:00
Svetlana Rastegina
a0f232c149 Fixed fonts size in search block on various screen resolutions. 2021-02-11 14:11:34 +01:00
Svetlana Rastegina
9ba9f62d38 Fixed search block borders. 2021-02-11 12:35:06 +01:00
Svetlana Rastegina
2025fd2a5a Fixed top and bootom margins in search rows. 2021-02-11 12:06:15 +01:00
Svetlana Rastegina
505a0a6a06 Changed search block structure. 2021-02-11 00:07:57 +01:00
Svetlana Rastegina
3143abeed2 Changed css styles on main page. 2021-02-09 21:03:18 +01:00
Svetlana Rastegina
42b1e6206e Fixed width statistic block on all screen resolutions. 2021-02-09 17:33:28 +01:00
Svetlana Rastegina
1e09dfcba8 Added dot image for Title on main page. 2021-02-09 16:40:01 +01:00
Svetlana Rastegina
f9fb3c84a8 Added settings for adaptive designe. 2021-02-09 14:57:39 +01:00
Svetlana Rastegina
a1b6bf1e40 Fixed hesder block for 720px screen size. 2021-02-09 12:30:45 +01:00
Svetlana Rastegina
9791e9d141 Changed extand search styles. 2021-02-08 23:29:06 +01:00
Svetlana Rastegina
b2e3913be2 Modified search block structure. 2021-02-05 23:09:30 +01:00
Svetlana Rastegina
2cb66eb4c6 Modified extenden search form. 2021-02-05 21:06:42 +01:00
Svetlana Rastegina
1c3fb3ad4c Added shadow properties to right button block. 2021-02-05 20:33:56 +01:00
Svetlana Rastegina
3115396e20 Fixed paddings on top right menu. 2021-02-05 19:06:48 +01:00
Svetlana Rastegina
3250f36208 Reterned Index link on top right menu. 2021-02-05 16:56:31 +01:00
Svetlana Rastegina
59395df2e0 Modified expanded search block and fix width properties custom search block on main page. 2021-02-05 14:30:54 +01:00
Svetlana Rastegina
cd351c44e9 Modified text styles on main page. 2021-02-04 19:26:25 +01:00
Svetlana Rastegina
2eabcce5c4 Fixed statistic block appearance on main and others pages. 2021-02-04 17:20:21 +01:00
Svetlana Rastegina
374758c9a5 Fixed footer wrapper. 2021-02-04 14:28:40 +01:00
Svetlana Rastegina
e3ac21683d Modified statistic block styles. 2021-02-04 14:04:57 +01:00
Svetlana Rastegina
15947abdc8 Transfered statistic block from Intro section to Footer section. 2021-02-04 12:09:01 +01:00
Svetlana Rastegina
1fc4503cab Changed text style on main page. 2021-02-03 21:51:12 +01:00
Svetlana Rastegina
cfbc0a3ec9 Removed Search title and modified search form style. 2021-02-03 20:38:33 +01:00
Svetlana Rastegina
ba4b5d00b0 Changed custom search properties on main page. 2021-02-03 17:29:54 +01:00
Svetlana Rastegina
fe39997c0e Fixed search position and properties. 2021-02-03 16:58:23 +01:00
Svetlana Rastegina
7d5f583d4a Modified footer styles. 2021-02-03 13:10:36 +01:00
Svetlana Rastegina
99c71efe81 Modified header menu (Login button) styles. 2021-02-03 12:58:50 +01:00
Svetlana Rastegina
cc1666c2fe Modified header images and main menu styles. 2021-02-03 12:46:05 +01:00
Svetlana Rastegina
9b8e2013f3 Added title name image and refined header-image background. 2021-02-02 23:30:15 +01:00
Svetlana Rastegina
2f518b2d49 Added settings for header image proportionally scaling. 2021-02-02 22:49:43 +01:00
Svetlana Rastegina
0bc8119094 Hidden Index link in top right menu. 2021-02-02 22:34:56 +01:00
Svetlana Rastegina
b5f9fca3d6 Added header image. Changed header width and height. Commented Index link in top right menu. Changed background colour in navigation menu and Log in menu. 2021-02-02 22:15:22 +01:00
7d33caee8a Fix broken js on empty search configuration 2021-02-01 14:37:34 +01:00
e7699bdd14 Removed mistakenly added spaces from uri 2021-01-30 15:14:15 +01:00
163240e98a Added code to create compilation from search results 2021-01-27 16:47:07 +01:00
0a6f45cd02 Added template to display compilation 2021-01-24 21:56:09 +01:00
b6927cb128 Added compilation to text structures ontology 2021-01-24 21:19:50 +01:00
acbd96f852 Added compilation generator 2021-01-24 21:18:21 +01:00
aae4c521d5 Added to print script 2021-01-15 17:42:57 +01:00
2e8f2266a7 Hide login on main page 2020-12-08 12:16:59 +01:00
5a874c80f4 Removed double quotes for input fields in extended search 2020-12-08 12:16:31 +01:00
95dccbf4ec Revert "Try to fix queries"
This reverts commit 6498d194cd.
2020-12-08 12:16:12 +01:00
58ba70e4d4 Fixed field values sorting for extended search 2020-12-08 12:05:45 +01:00
0281f72e2e Save extended search var in browser local storage 2020-12-08 12:05:45 +01:00
f6c64476fe Try to fix queries 2020-12-08 12:05:45 +01:00
3b78730e5d Remove publication participant and organization from search 2020-12-08 12:05:45 +01:00
6e905508b4 Modifications for correct affiliation display 2020-12-08 12:05:45 +01:00
d27dc44f43 Set white background for works and biblio in elenph article excerpts 2020-11-30 21:29:54 +01:00
da3f8ed514 Remove checked attribute from checkbox 2020-11-30 21:29:45 +01:00
eb9ea9f7b0 Hide VIVO logo temporary 2020-11-30 21:29:34 +01:00
9c8e01c22d Fixed url path in issues 2020-11-24 17:21:34 +01:00
4f77bb803f Print info about first article publication 2020-11-12 11:56:22 +01:00
1b9c5fc55c Added home info 2020-11-06 12:01:58 +01:00
4175049a61 Added margin between collapsible elements 2020-11-06 10:40:19 +01:00
82f1660b0c Added expand button to article page 2020-11-06 10:39:38 +01:00
1ac49647a3 Output biblio and works for each excerpt 2020-11-03 15:06:35 +01:00
6196cbc8b3 Added values of allowed properties in ALLTEXT Elenph article 2020-11-02 13:26:50 +01:00
6552ff98b9 Remove entity name from indexed field. 2020-11-02 12:39:16 +01:00
305dfc8a85 Remove property name from indexed field 2020-11-02 12:27:22 +01:00
ec75b995c4 Buttons to add Bibliography and Works 2020-10-30 17:42:11 +01:00
13ddaad34d Remove width 2020-09-21 18:14:31 +02:00
15023940ea Hits per page option 2020-09-21 15:19:53 +02:00
ab2cc8e54a Fix for previous commit 2020-09-15 23:26:14 +02:00
8af3732fb2 Added formGenerator for excerpts and articles 2020-09-15 18:30:49 +02:00
81f31ef123 Update for article page 2020-09-15 16:04:28 +02:00
551c22bdff Updates for ontologies 2020-09-15 16:04:13 +02:00
bfd33fb943 Remove classes from search index 2020-09-04 13:36:44 +02:00
b8112693f3 Added left margin to search form 2020-09-03 21:02:30 +02:00
f56f919789 Fix for previous commit 2020-09-03 15:58:00 +02:00
3196c0e091 New search form 2020-09-03 15:38:28 +02:00
df8e363b08 Made search notes smaller 2020-09-02 16:09:18 +02:00
47edb5af55 Fix search form 2020-09-02 15:53:25 +02:00
e78a01d2f8 Escape search query string 2020-09-02 14:50:26 +02:00
c651511fec Populated text field 2020-08-31 10:03:33 +02:00
37e06f9b72 New example 2020-08-29 10:47:28 +02:00
800e7bb2ff Changed example 2020-08-29 10:08:37 +02:00
274b529c3f Fixed styles 2020-08-29 10:08:23 +02:00
4fd99f49ea New example query 2020-08-25 11:50:48 +02:00
6b6c7db242 Save to local storage at search 2020-08-25 10:47:35 +02:00
144 changed files with 7057 additions and 839 deletions

View file

@ -0,0 +1,649 @@
/* $This file is distributed under the terms of the license in LICENSE$ */
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import static edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames.DISPLAY;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpSession;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.JspToGeneratorMapping;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jena.ontology.OntModel;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.rdf.model.Literal;
import edu.cornell.mannlib.vitro.webapp.application.ApplicationUtils;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
import edu.cornell.mannlib.vitro.webapp.dao.vclassgroup.ProhibitedFromSearch;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaObjectPropetyOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchEngine;
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchEngineException;
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchQuery;
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchResponse;
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchResultDocumentList;
import edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
/**
* Generates the edit configuration for a default property form.
* This handles the default object property auto complete.
*
* If a default property form is request and the number of indivdiuals
* found in the range is too large, the the auto complete setup and
* template will be used instead.
*/
public class AddRubricToELENPHArticleGenerator implements EditConfigurationGenerator {
private Log log = LogFactory.getLog(AddRubricToELENPHArticleGenerator.class);
private String subjectUri = null;
private String predicateUri = null;
private String objectUri = null;
private String objectPropertyTemplate = "defaultPropertyForm.ftl";
private String acObjectPropertyTemplate = "autoCompleteObjectPropForm.ftl";
private ArrayList<String> excerptIDs= new ArrayList<String>();
protected boolean doAutoComplete = false;
protected boolean tooManyRangeIndividuals = false;
protected long maxNonACRangeIndividualCount = 300;
protected String customErrorMessages = null;
@Override
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq,
HttpSession session) throws Exception {
if(!EditConfigurationUtils.isObjectProperty(EditConfigurationUtils.getPredicateUri(vreq), vreq)) {
throw new Exception("DefaultObjectPropertyFormGenerator does not handle data properties.");
}
//Custom error can also be represented as an exception above, but in this case
//we would like the page to enable the user to go back to the profile page
customErrorMessages = getCustomErrorMessages(vreq);
if(customErrorMessages != null) {
return this.getCustomErrorEditConfiguration(vreq, session);
}
if( tooManyRangeOptions( vreq, session ) ){
tooManyRangeIndividuals = true;
doAutoComplete = true;
}
//Check if create new and return specific edit configuration from that generator.
if(DefaultAddMissingIndividualFormGenerator.isCreateNewIndividual(vreq, session)) {
EditConfigurationGenerator generator = JspToGeneratorMapping.createFor("defaultAddMissingIndividualForm.jsp", DefaultAddMissingIndividualFormGenerator.class);
return generator.getEditConfiguration(vreq, session);
}
//TODO: Add a generator for delete: based on command being delete - propDelete.jsp
//Generate a edit configuration for the default object property form and return it.
//if(DefaultDeleteGenerator.isDelete( vreq,session)){
// return (new DefaultDeleteGenerator()).getEditConfiguration(vreq,session);
return getDefaultObjectEditConfiguration(vreq, session);
}
private String getCustomErrorMessages(VitroRequest vreq) {
String errorMessages = null;
String rangeUri = vreq.getParameter("rangeUri");
VClass rangeVClass = null;
if(rangeUri != null && !rangeUri.isEmpty()) {
WebappDaoFactory ctxDaoFact = vreq.getLanguageNeutralWebappDaoFactory();
rangeVClass = ctxDaoFact.getVClassDao().getVClassByURI(rangeUri);
if(rangeVClass == null) {
errorMessages = I18n.text(vreq,"the_range_class_does_not_exist");
}
}
return errorMessages;
}
protected List<VClass> getRangeTypes(VitroRequest vreq) {
// This first part needs a WebappDaoFactory with no filtering/RDFService
// funny business because it needs to be able to retrieve anonymous union
// classes by their "pseudo-bnode URIs".
// Someday we'll need to figure out a different way of doing this.
//WebappDaoFactory ctxDaoFact = ModelAccess.on(
// vreq.getSession().getServletContext()).getWebappDaoFactory();
WebappDaoFactory ctxDaoFact = vreq.getLanguageNeutralWebappDaoFactory();
List<VClass> types = new ArrayList<VClass>();
Individual subject = EditConfigurationUtils.getSubjectIndividual(vreq);
String predicateUri = EditConfigurationUtils.getPredicateUri(vreq);
String rangeUri = EditConfigurationUtils.getRangeUri(vreq);
if (rangeUri != null && !rangeUri.isEmpty()) {
VClass rangeVClass = ctxDaoFact.getVClassDao().getVClassByURI(rangeUri);
if(rangeVClass != null) {
if (!rangeVClass.isUnion()) {
types.add(rangeVClass);
} else {
types.addAll(rangeVClass.getUnionComponents());
}
return types;
} else {
log.error("Range VClass does not exist for " + rangeUri);
}
}
WebappDaoFactory wDaoFact = vreq.getWebappDaoFactory();
//Get all vclasses applicable to subject
if(subject != null) {
List<VClass> vClasses = subject.getVClasses();
HashMap<String, VClass> typesHash = new HashMap<String, VClass>();
for(VClass vclass: vClasses) {
List<VClass> rangeVclasses = wDaoFact.getVClassDao().getVClassesForProperty(vclass.getURI(),predicateUri);
if(rangeVclasses != null) {
for(VClass range: rangeVclasses) {
//a hash will keep a unique list of types and so prevent duplicates
typesHash.put(range.getURI(), range);
}
}
}
types.addAll(typesHash.values());
} else {
log.error("Subject individual was null for");
}
return types;
}
private boolean tooManyRangeOptions(VitroRequest vreq, HttpSession session ) throws SearchEngineException {
List<VClass> rangeTypes = getRangeTypes(vreq);
SearchEngine searchEngine = ApplicationUtils.instance().getSearchEngine();
List<String> types = new ArrayList<String>();
for (VClass vclass : rangeTypes) {
if (vclass.getURI() != null) {
types.add(vclass.getURI());
}
}
//empty list means the range is not set to anything, force Thing
if(types.size() == 0 ){
types.add(VitroVocabulary.OWL_THING);
}
long count = 0;
for( String type:types){
//search query for type count.
SearchQuery query = searchEngine.createQuery();
if( VitroVocabulary.OWL_THING.equals( type )){
query.setQuery( "*:*" );
}else{
query.setQuery( VitroSearchTermNames.RDFTYPE + ":" + type);
}
query.setRows(0);
SearchResponse rsp = searchEngine.query(query);
SearchResultDocumentList docs = rsp.getResults();
long found = docs.getNumFound();
count = count + found;
if( count > maxNonACRangeIndividualCount )
break;
}
return count > maxNonACRangeIndividualCount ;
}
private EditConfigurationVTwo getDefaultObjectEditConfiguration(VitroRequest vreq, HttpSession session) throws Exception {
EditConfigurationVTwo editConfiguration = new EditConfigurationVTwo();
//process subject, predicate, object parameters
this.initProcessParameters(vreq, session, editConfiguration);
//Assumes this is a simple case of subject predicate var
editConfiguration.setN3Required(this.generateN3Required(vreq));
//n3 optional
editConfiguration.setN3Optional(this.generateN3Optional());
//Todo: what do new resources depend on here?
//In original form, these variables start off empty
editConfiguration.setNewResources(new HashMap<String, String>());
//In scope
this.setUrisAndLiteralsInScope(editConfiguration);
//on Form
this.setUrisAndLiteralsOnForm(editConfiguration, vreq);
editConfiguration.setFilesOnForm(new ArrayList<String>());
//Sparql queries
this.setSparqlQueries(editConfiguration);
//set fields
setFields(editConfiguration, vreq, EditConfigurationUtils.getPredicateUri(vreq), getRangeTypes(vreq));
// No need to put in session here b/c put in session within edit request dispatch controller instead
//placing in session depends on having edit key which is handled in edit request dispatch controller
// editConfiguration.putConfigInSession(editConfiguration, session);
prepareForUpdate(vreq, session, editConfiguration);
//After the main processing is done, check if select from existing process
processProhibitedFromSearch(vreq, session, editConfiguration);
//Form title and submit label moved to template
setTemplate(editConfiguration, vreq);
editConfiguration.addValidator(new AntiXssValidation());
//Set edit key
setEditKey(editConfiguration, vreq);
//Adding additional data, specifically edit mode
if( doAutoComplete ){
addFormSpecificDataForAC(editConfiguration, vreq, session);
}else{
addFormSpecificData(editConfiguration, vreq);
}
return editConfiguration;
}
//We only need enough for the error message to show up
private EditConfigurationVTwo getCustomErrorEditConfiguration(VitroRequest vreq, HttpSession session) {
EditConfigurationVTwo editConfiguration = new EditConfigurationVTwo();
//process subject, predicate, object parameters
this.initProcessParameters(vreq, session, editConfiguration);
this.setUrisAndLiteralsInScope(editConfiguration);
//Sparql queries
this.setSparqlQueries(editConfiguration);
prepareForUpdate(vreq, session, editConfiguration);
editConfiguration.setTemplate("customErrorMessages.ftl");
//Set edit key
setEditKey(editConfiguration, vreq);
//if custom error messages is not null, then add to form specific data
if(customErrorMessages != null) {
//at this point, it shouldn't be null
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
formSpecificData.put("customErrorMessages", customErrorMessages);
editConfiguration.setFormSpecificData(formSpecificData);
}
return editConfiguration;
}
private void setEditKey(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
String editKey = EditConfigurationUtils.getEditKey(vreq);
editConfiguration.setEditKey(editKey);
}
private void setTemplate(EditConfigurationVTwo editConfiguration,
VitroRequest vreq) {
if( doAutoComplete )
editConfiguration.setTemplate(acObjectPropertyTemplate);
else
editConfiguration.setTemplate(objectPropertyTemplate);
}
//Initialize setup: process parameters
private void initProcessParameters(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
String formUrl = EditConfigurationUtils.getFormUrlWithoutContext(vreq);
subjectUri = EditConfigurationUtils.getSubjectUri(vreq);
predicateUri = EditConfigurationUtils.getPredicateUri(vreq);
editConfiguration.setFormUrl(formUrl);
editConfiguration.setUrlPatternToReturnTo("/individual");
editConfiguration.setVarNameForSubject("subject");
editConfiguration.setSubjectUri(subjectUri);
editConfiguration.setEntityToReturnTo(subjectUri);
editConfiguration.setVarNameForPredicate("predicate");
editConfiguration.setPredicateUri(predicateUri);
//this needs to be set for the editing to be triggered properly, otherwise the 'prepare' method
//pretends this is a data property editing statement and throws an error
//"object" : [ "objectVar" , "${objectUriJson}" , "URI"],
if(EditConfigurationUtils.isObjectProperty(predicateUri, vreq)) {
log.debug("This is an predicate property: " + predicateUri);
log.debug("This is an subject property: " + subjectUri);
this.initObjectParameters(vreq);
log.debug("This is an object property: " + objectUri);
this.processObjectPropForm(vreq, editConfiguration);
} else {
log.debug("This is a data property: " + predicateUri);
}
}
private void initObjectParameters(VitroRequest vreq) {
//in case of object property
objectUri = EditConfigurationUtils.getObjectUri(vreq);
}
private void processObjectPropForm(VitroRequest vreq, EditConfigurationVTwo editConfiguration) {
editConfiguration.setVarNameForObject("objectVar");
editConfiguration.setObject(objectUri);
//this needs to be set for the editing to be triggered properly, otherwise the 'prepare' method
//pretends this is a data property editing statement and throws an error
//TODO: Check if null in case no object uri exists but this is still an object property
}
//Get N3 required
//Handles both object and data property
private List<String> generateN3Required(VitroRequest vreq) {
List<String> n3ForEdit = new ArrayList<String>();
getTextExcerpts(vreq);
if (excerptIDs.isEmpty()) {
String editString = "?subject ?predicate ?objectVar .";
n3ForEdit.add(editString);
} else {
for (String excerptID : excerptIDs) {
String editString = "<"+excerptID+">" + " ?predicate ?objectVar .";
log.debug(editString);
n3ForEdit.add(editString);
}
}
return n3ForEdit;
}
private List<String> generateN3Optional() {
List<String> n3Inverse = new ArrayList<String>();
n3Inverse.add("?objectVar ?inverseProp ?subject .");
return n3Inverse;
}
private void getTextExcerpts(VitroRequest vreq) {
ResultSet excerptResults = QueryUtils.getLanguageNeutralQueryResults(getExcerptsQueryString(), vreq);
while (excerptResults.hasNext()) {
QuerySolution solution = excerptResults.nextSolution();
String excerptID = solution.get("excerptID").asResource().toString();
log.debug(excerptID);
excerptIDs.add(excerptID);
}
}
private String getExcerptsQueryString() {
return "PREFIX ts_: <https://litvinovg.pro/text_structures#> "
+"SELECT DISTINCT ?excerptID "
+"WHERE { "
+"<" + subjectUri + "> ts_:hasTOC ?toc . "
+"?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerptID . "
+"} ";
}
//Set queries
private String retrieveQueryForInverse () {
String queryForInverse = "PREFIX owl: <http://www.w3.org/2002/07/owl#>"
+ " SELECT ?inverse_property "
+ " WHERE { ?inverse_property owl:inverseOf ?predicate } ";
return queryForInverse;
}
private void setUrisAndLiteralsInScope(EditConfigurationVTwo editConfiguration) {
HashMap<String, List<String>> urisInScope = new HashMap<String, List<String>>();
//note that at this point the subject, predicate, and object var parameters have already been processed
urisInScope.put(editConfiguration.getVarNameForSubject(),
Arrays.asList(new String[]{editConfiguration.getSubjectUri()}));
urisInScope.put(editConfiguration.getVarNameForPredicate(),
Arrays.asList(new String[]{editConfiguration.getPredicateUri()}));
//this shoudl happen in edit configuration prepare for object prop update
//urisInScope.put(editConfiguration.getVarNameForObject(),
// Arrays.asList(new String[]{editConfiguration.getObject()}));
//inverse property uris should be included in sparql for additional uris in edit configuration
editConfiguration.setUrisInScope(urisInScope);
//Uris in scope include subject, predicate, and object var
editConfiguration.setLiteralsInScope(new HashMap<String, List<Literal>>());
}
//n3 should look as follows
//?subject ?predicate ?objectVar
private void setUrisAndLiteralsOnForm(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
List<String> urisOnForm = new ArrayList<String>();
List<String> literalsOnForm = new ArrayList<String>();
//uris on form should be empty if data property
urisOnForm.add("objectVar");
editConfiguration.setUrisOnform(urisOnForm);
editConfiguration.setLiteralsOnForm(literalsOnForm);
}
//This is for various items
private void setSparqlQueries(EditConfigurationVTwo editConfiguration) {
//Sparql queries defining retrieval of literals etc.
editConfiguration.setSparqlForAdditionalLiteralsInScope(new HashMap<String, String>());
Map<String, String> urisInScope = new HashMap<String, String>();
urisInScope.put("inverseProp", this.retrieveQueryForInverse());
editConfiguration.setSparqlForAdditionalUrisInScope(urisInScope);
editConfiguration.setSparqlForExistingLiterals(generateSparqlForExistingLiterals());
editConfiguration.setSparqlForExistingUris(generateSparqlForExistingUris());
}
//Get page uri for object
private HashMap<String, String> generateSparqlForExistingUris() {
HashMap<String, String> map = new HashMap<String, String>();
return map;
}
private HashMap<String, String> generateSparqlForExistingLiterals() {
HashMap<String, String> map = new HashMap<String, String>();
return map;
}
protected void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq, String predicateUri) throws Exception {
setFields(editConfiguration, vreq, predicateUri, null);
}
protected void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq, String predicateUri, List<VClass> rangeTypes) throws Exception {
FieldVTwo field = new FieldVTwo();
field.setName("objectVar");
List<String> validators = new ArrayList<String>();
validators.add("nonempty");
field.setValidators(validators);
if( ! doAutoComplete ){
field.setOptions( new IndividualsViaObjectPropetyOptions(
subjectUri,
predicateUri,
rangeTypes,
objectUri,
vreq ));
}else{
field.setOptions(null);
}
Map<String, FieldVTwo> fields = new HashMap<String, FieldVTwo>();
fields.put(field.getName(), field);
editConfiguration.setFields(fields);
}
private void prepareForUpdate(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
//Here, retrieve model from
OntModel model = ModelAccess.on(session.getServletContext()).getOntModel();
//if object property
if(EditConfigurationUtils.isObjectProperty(EditConfigurationUtils.getPredicateUri(vreq), vreq)){
Individual objectIndividual = EditConfigurationUtils.getObjectIndividual(vreq);
if(objectIndividual != null) {
//update existing object
editConfiguration.prepareForObjPropUpdate(model);
} else {
//new object to be created
editConfiguration.prepareForNonUpdate( model );
}
} else {
throw new Error("DefaultObjectPropertyForm does not handle data properties.");
}
}
private boolean isSelectFromExisting(VitroRequest vreq) {
String predicateUri = EditConfigurationUtils.getPredicateUri(vreq);
if(EditConfigurationUtils.isDataProperty(predicateUri, vreq)) {
return false;
}
ObjectProperty objProp = EditConfigurationUtils.getObjectPropertyForPredicate(vreq, EditConfigurationUtils.getPredicateUri(vreq));
return objProp.getSelectFromExisting();
}
//Additional processing, eg. select from existing
//This is really process prohibited from search
private void processProhibitedFromSearch(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfig) {
if(isSelectFromExisting(vreq)) {
// set ProhibitedFromSearch object so picklist doesn't show
// individuals from classes that should be hidden from list views
OntModel displayOntModel = ModelAccess.on(session.getServletContext()).getOntModel(DISPLAY);
ProhibitedFromSearch pfs = new ProhibitedFromSearch(
DisplayVocabulary.SEARCH_INDEX_URI, displayOntModel);
if( editConfig != null )
editConfig.setProhibitedFromSearch(pfs);
}
}
//Form specific data
public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
//range options need to be stored for object property
//Store field names
List<String> objectSelect = new ArrayList<String>();
objectSelect.add(editConfiguration.getVarNameForObject());
//TODO: Check if this is the proper way to do this?
formSpecificData.put("objectSelect", objectSelect);
if(customErrorMessages != null && !customErrorMessages.isEmpty()) {
formSpecificData.put("customErrorMessages", customErrorMessages);
}
editConfiguration.setFormSpecificData(formSpecificData);
}
public void addFormSpecificDataForAC(EditConfigurationVTwo editConfiguration, VitroRequest vreq, HttpSession session) throws SearchEngineException {
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
//Get the edit mode
formSpecificData.put("editMode", getEditMode(vreq).toString().toLowerCase());
//We also need the type of the object itself
List<VClass> types = getRangeTypes(vreq);
//if types array contains only owl:Thing, the search will not return any results
//In this case, set an empty array
if(types.size() == 1 && types.get(0).getURI().equals(VitroVocabulary.OWL_THING) ){
types = new ArrayList<VClass>();
}
StringBuilder typesBuff = new StringBuilder();
for (VClass type : types) {
if (type.getURI() != null) {
typesBuff.append(type.getURI()).append(",");
}
}
formSpecificData.put("objectTypes", typesBuff.toString());
log.debug("autocomplete object types : " + formSpecificData.get("objectTypes"));
//Get label for individual if it exists
if(EditConfigurationUtils.getObjectIndividual(vreq) != null) {
String objectLabel = EditConfigurationUtils.getObjectIndividual(vreq).getName();
formSpecificData.put("objectLabel", objectLabel);
}
//TODO: find out if there are any individuals in the classes of objectTypes
formSpecificData.put("rangeIndividualsExist", rangeIndividualsExist(types) );
formSpecificData.put("sparqlForAcFilter", getSparqlForAcFilter(vreq));
if(customErrorMessages != null && !customErrorMessages.isEmpty()) {
formSpecificData.put("customErrorMessages", customErrorMessages);
}
editConfiguration.setTemplate(acObjectPropertyTemplate);
editConfiguration.setFormSpecificData(formSpecificData);
}
private Object rangeIndividualsExist(List<VClass> types) throws SearchEngineException {
SearchEngine searchEngine = ApplicationUtils.instance().getSearchEngine();
boolean rangeIndividualsFound = false;
for( VClass type:types){
//search for type count.
SearchQuery query = searchEngine.createQuery();
query.setQuery( VitroSearchTermNames.RDFTYPE + ":" + type.getURI());
query.setRows(0);
SearchResponse rsp = searchEngine.query(query);
SearchResultDocumentList docs = rsp.getResults();
if( docs.getNumFound() > 0 ){
rangeIndividualsFound = true;
break;
}
}
return rangeIndividualsFound;
}
public String getSubjectUri() {
return subjectUri;
}
public String getPredicateUri() {
return predicateUri;
}
public String getObjectUri() {
return objectUri;
}
/** get the auto complete edit mode */
public EditMode getEditMode(VitroRequest vreq) {
//In this case, the original jsp didn't rely on FrontEndEditingUtils
//but instead relied on whether or not the object Uri existed
String objectUri = EditConfigurationUtils.getObjectUri(vreq);
EditMode editMode = FrontEndEditingUtils.EditMode.ADD;
if(objectUri != null && !objectUri.isEmpty()) {
editMode = FrontEndEditingUtils.EditMode.EDIT;
}
return editMode;
}
public String getSparqlForAcFilter(VitroRequest vreq) {
String subject = EditConfigurationUtils.getSubjectUri(vreq);
String predicate = EditConfigurationUtils.getPredicateUri(vreq);
//Get all objects for existing predicate, filters out results from addition and edit
String query = "SELECT ?objectVar WHERE { " +
"<" + subject + "> <" + predicate + "> ?objectVar .} ";
return query;
}
}

View file

@ -0,0 +1,306 @@
/* $This file is distributed under the terms of the license in LICENSE$ */
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TimeZone;
import javax.servlet.http.HttpSession;
import org.apache.jena.rdf.model.Literal;
import org.apache.jena.vocabulary.RDFS;
import org.apache.jena.vocabulary.XSD;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.common.HasAssociatedIndividual;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.admin.ShowAuthController.AssociatedIndividual;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
/**
* Generates the edit configuration for a default property form.
* ModelChangePreprocessor creates the rdfs:label statement.
*/
public class CompilationGenerator extends BaseEditConfigurationGenerator implements EditConfigurationGenerator {
private String associatedProfile;
private int excerptsCounter;
@Override
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq, HttpSession session) {
EditConfigurationVTwo config = new EditConfigurationVTwo();
associatedProfile = getAssociatedProfile(vreq);
excerptsCounter = parseCounter(vreq);
config.setTemplate( "compilationForm.ftl" );
config.setN3Required( generateN3Required(vreq));
//Optional because user may have selected either person or individual of another kind
//Person uses first name and last name whereas individual of other class would use label
//middle name is also optional
//config.setN3Optional(generateN3Optional());
config.addNewResource("newCompilation", vreq.getWebappDaoFactory().getDefaultNamespace());
config.addNewResource("newCompilationTOC", vreq.getWebappDaoFactory().getDefaultNamespace());
config.addField(new FieldVTwo().
setName("rawQueryString").
setRangeDatatypeUri(XSD.xstring.getURI()).
setValidators(getCompilationNameValidators(vreq)));
config.addField(new FieldVTwo().
setName("queryBuilderRules").
setRangeDatatypeUri(XSD.xstring.getURI()).
setValidators(getCompilationNameValidators(vreq)));
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
String tocItem = "tocItem" + itemN;
config.addNewResource(tocItem, vreq.getWebappDaoFactory().getDefaultNamespace());
String tocLevel = "tocLevel" + itemN;
config.addNewResource(tocLevel, vreq.getWebappDaoFactory().getDefaultNamespace());
String tocItemName = tocItem + "Name";
config.addField(new FieldVTwo().
setName(tocItemName).
setRangeDatatypeUri(XSD.xstring.getURI()).
setValidators(getCompilationNameValidators(vreq)));
String tocLevelName = tocLevel + "Name";
config.addField(new FieldVTwo().
setName(tocLevelName).
setRangeDatatypeUri(XSD.xstring.getURI()).
setValidators(getCompilationNameValidators(vreq)));
String excerpt = "excerpt" + itemN;
config.addField(new FieldVTwo().
setName(excerpt).
setRangeDatatypeUri(XSD.xstring.getURI()).
setValidators(getCompilationNameValidators(vreq)));
}
config.setUrisOnform(getUrisOnForm());
config.setLiteralsOnForm( getLiteralsOnForm());
setUrisAndLiteralsInScope(config);
//No SPARQL queries for existing since this is only used to create new, never for edit
config.addField(new FieldVTwo().
setName("newCompilationLabel").
setRangeDatatypeUri(XSD.xstring.getURI()).
setValidators(getCompilationNameValidators(vreq)));
addFormSpecificData(config, vreq);
config.addValidator(new AntiXssValidation());
//This combines the first and last name into the rdfs:label
// currently being done via javascript in the template. May use this again
// when/if updated to ISF ontology. tlw72
// config.addModelChangePreprocessor(new FoafNameToRdfsLabelPreprocessor());
String formUrl = EditConfigurationUtils.getFormUrlWithoutContext(vreq);
config.setFormUrl(formUrl);
//Note, the spaces are important - they were added by ProcessRdfFormController earlier
//as a means of ensuring the substitution worked correctly - as the regex expects spaces
config.setEntityToReturnTo(" ?newCompilation ");
prepare(vreq, config);
return config;
}
private List<String> getUrisOnForm() {
List<String> uris = list();
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
String excerpt = "excerpt" + itemN;
uris.add(excerpt);
}
return uris;
}
private List<String> getLiteralsOnForm() {
List<String> literals = list( "newCompilationLabel");
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
String tocItemName = "tocItem" + itemN + "Name";
String tocLevelName = "tocLevel" + itemN + "Name";
literals.add(tocItemName);
literals.add(tocLevelName);
literals.add("rawQueryString");
literals.add("queryBuilderRules");
}
return literals;
}
private String getAssociatedProfile(VitroRequest vreq) {
String associatedProfile;
IdentifierBundle ids = RequestIdentifiers.getIdBundleForRequest(vreq);
Collection<String> individualURIs = HasAssociatedIndividual.getIndividualUris(ids);
Iterator<String> uriIterator = individualURIs.iterator();
if (uriIterator.hasNext()) {
associatedProfile = uriIterator.next();
} else {
associatedProfile = "";
}
return associatedProfile;
}
private List<String> generateN3Required(VitroRequest vreq) {
StringBuilder n3Req = new StringBuilder();
n3Req.append("@prefix ts: <https://litvinovg.pro/text_structures#> .\n");
n3Req.append("?newCompilation <" + VitroVocabulary.RDF_TYPE + "> <" + getTypeOfNew(vreq) + "> .\n");
n3Req.append("?newCompilation <https://litvinovg.pro/text_structures#modificationTime> " + getModificationTime() + " .\n");
n3Req.append("?newCompilation ts:rawQueryString ?rawQueryString .\n");
n3Req.append("?newCompilation ts:queryBuilderRules ?queryBuilderRules .\n");
n3Req.append("?newCompilation <" + RDFS.label.getURI() + "> ?newCompilationLabel .\n");
n3Req.append("?newCompilation ts:hasTOC ?newCompilationTOC .\n");
n3Req.append("?newCompilationTOC <" + VitroVocabulary.RDF_TYPE + "> ts:TOC .\n");
n3Req.append("?newCompilationTOC <" + RDFS.label.getURI() + "> ?newCompilationLabel .\n");
if (!associatedProfile.isEmpty()) {
n3Req.append("<" + associatedProfile + "> ts:compilatorOf ?newCompilation .\n");
}
//n3Req.append();
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
String tocItemVar = "?tocItem" + itemN ;
String tocItemNameVar = tocItemVar + "Name" ;
String tocLevelVar = "?tocLevel" + itemN ;
String tocLevelVarName = tocLevelVar + "Name" ;
String excerptVar = "?excerpt" + itemN ;
n3Req.append("?newCompilationTOC ts:hasTOCItem " + tocItemVar + " .\n");
n3Req.append(tocItemVar + " <" + VitroVocabulary.RDF_TYPE + "> ts:TOCItem .\n");
n3Req.append(tocItemVar + " <" + RDFS.label.getURI() + "> " + tocItemNameVar + " .\n");
n3Req.append(tocItemVar + " ts:itemNumber " + itemN + " .\n");
n3Req.append(tocItemVar + " ts:pointsTo " + tocLevelVar + " .\n");
n3Req.append(tocLevelVar + " <" + VitroVocabulary.RDF_TYPE + "> ts:TOCLevel .\n");
n3Req.append(tocLevelVar + " <" + RDFS.label.getURI() + "> " + tocLevelVarName + " .\n");
n3Req.append(tocLevelVar + " ts:hasText " + excerptVar + ".\n");
}
return list(n3Req.toString());
}
private List<String> generateN3Optional() {
List<String> n3OptList = list();
StringBuilder n3Opt = new StringBuilder();
n3Opt.append("@prefix ts: <https://litvinovg.pro/text_structures#> .\n");
n3Opt.append("?newCompilation ts:rawQueryString ?rawQueryString .\n");
n3Opt.append("?newCompilation ts:queryBuilderRules ?queryBuilderRules .\n");
n3OptList.add(n3Opt.toString());
return n3OptList;
}
private String getModificationTime() {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
sd.setTimeZone(TimeZone.getTimeZone("GMT"));
Date currentTime = Calendar.getInstance().getTime();
String todayAsString = "\"" + sd.format(currentTime) + "\"^^<http://www.w3.org/2001/XMLSchema#dateTime>";
return todayAsString;
}
private static Integer parseCounter(VitroRequest vreq) {
String text = vreq.getParameter("excerptsCount");
if (text == null ) {
return 0;
}
try {
return Integer.parseInt(text);
} catch (NumberFormatException e) {
return 0;
}
}
private List<String> getCompilationNameValidators(VitroRequest vreq) {
List<String> validators = new ArrayList<String>();
if (isCompilationType(vreq)) {
validators.add("nonempty");
}
return validators;
}
//Get parameter from HTTP request for type of new individual
private String getTypeOfNew(VitroRequest vreq) {
String typeUri = vreq.getParameter("typeOfNew");
if( typeUri == null || typeUri.trim().isEmpty() )
return getCompilationClassURI();
else
return typeUri;
}
//Form specific data
public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
formSpecificData.put("typeName", getTypeName(vreq));
//Put in whether or not person type
if(isCompilationType(vreq)) {
//Doing this b/c unsure how freemarker will handle boolean value from JAVA
formSpecificData.put("isCompilationType", "true");
} else {
formSpecificData.put("isCompilationType", "false");
}
formSpecificData.put("excerptsCounter", excerptsCounter);
editConfiguration.setFormSpecificData(formSpecificData);
}
private String getTypeName(VitroRequest vreq) {
String typeOfNew = getTypeOfNew(vreq);
VClass type = vreq.getWebappDaoFactory().getVClassDao().getVClassByURI(typeOfNew);
return type.getName();
}
public String getCompilationClassURI() {
return "https://litvinovg.pro/text_structures#compilation";
}
public boolean isCompilationType(VitroRequest vreq) {
WebappDaoFactory wdf = vreq.getWebappDaoFactory();
Boolean isCompilationType = Boolean.FALSE;
String foafPersonType = getCompilationClassURI();
String typeOfNew = getTypeOfNew(vreq);
List<String> superTypes = wdf.getVClassDao().getAllSuperClassURIs(typeOfNew);
//add the actual type as well so we can add that for the list to be checked
superTypes.add(typeOfNew);
if( superTypes != null ){
for( String typeUri : superTypes){
if( foafPersonType.equals(typeUri)) {
isCompilationType = Boolean.TRUE;
break;
}
}
}
return isCompilationType;
}
private void setUrisAndLiteralsInScope(EditConfigurationVTwo editConfiguration) {
HashMap<String, List<String>> urisInScope = new HashMap<String, List<String>>();
//note that at this point the subject, predicate, and object var parameters have already been processed
urisInScope.put(editConfiguration.getVarNameForSubject(),
Arrays.asList(new String[]{editConfiguration.getSubjectUri()}));
urisInScope.put(editConfiguration.getVarNameForPredicate(),
Arrays.asList(new String[]{editConfiguration.getPredicateUri()}));
editConfiguration.setUrisInScope(urisInScope);
//Uris in scope include subject, predicate, and object var
editConfiguration.setLiteralsInScope(new HashMap<String, List<Literal>>());
}
private String N3_PREFIX = "@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n";
}

View file

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

View file

@ -0,0 +1,144 @@
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix ts_: <https://litvinovg.pro/text_structures#> .
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationExcerptsContentDataGetter .
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationExcerptPathsDataGetter .
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationWorksDataGetter .
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationBibliographyDataGetter .
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationAuthorsDataGetter .
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationRubricsDataGetter .
display:getCompilationExcerptsContentDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "excerpts";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT ?elenphExcerpt ?htmlLabel ?htmlContent (COUNT (distinct ?excerptWorks) as ?worksCounter) (COUNT (distinct ?excerptBibliography) as ?bibliographyCounter)
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:htmlExcerpt ?htmlContent .
?elenphExcerpt rdfs:label ?htmlLabel .
OPTIONAL{ ?elenphExcerpt ts_:works ?excerptWorks . }
OPTIONAL{ ?elenphExcerpt ts_:bibliography ?excerptBibliography . }
} GROUP BY ?elenphExcerpt ?htmlLabel ?htmlContent ORDER BY ?elenphExcerpt
""" .
display:getCompilationExcerptPathsDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "paths";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
?tmpTOCItem rdf:type ts_:TOCItem .
?tmpTOCItem ts_:pointsTo/(ts_:hasTOCItem/ts_:pointsTo)* ?tocElement .
?tmpTOCItem ts_:itemNumber ?outline .
OPTIONAL {
?tocElement ts_:hasText ?elenphExcerpt .
}
{
SELECT ?tocElement
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
?tocElement rdf:type ts_:TOCLevel .
}
}
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
""" .
display:getCompilationBibliographyDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "bibliography";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?bibliography ?excerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
?excerpt ts_:bibliography ?bibliography .
} ORDER BY ?bibliography
""" .
display:getCompilationWorksDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "works";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?works ?excerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
?excerpt ts_:works ?works .
} ORDER BY ?works
""" .
display:getCompilationAuthorsDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "authors";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?authorInitials ?authorFamily ?authorGivenName ?orgName ?orgPostalCode ?orgAddress
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:hasAuthor ?participant .
?participant ts_:participantFamily ?authorFamily .
?participant ts_:participantInitials ?authorInitials .
?participant ts_:participantGivenName ?authorGivenName .
OPTIONAL { ?participant ts_:affiliatedWith ?organization .
OPTIONAL { ?organization ts_:officialOrganizationName ?orgName } .
OPTIONAL { ?organization ts_:organizationPostalCode ?orgPostalCode } .
OPTIONAL { ?organization ts_:organizationAddress ?orgAddress } .
}
} ORDER BY ?authorFamily
""" .
display:getCompilationRubricsDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "rubrics";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX pr: <https://iph.ras.ru/relationships#>
SELECT DISTINCT ?rubricID ?rubricName
WHERE {
?uri ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
?artExcerpt pr:belongsTo ?rubricID .
?rubricID rdfs:label ?rubricName .
} ORDER BY ?rubricID
""" .

View file

@ -35,7 +35,8 @@ display:customSearchFiltersDataGetter
?searchFilter search:id ?id .
?searchFilter search:filterFiled ?searchField .
?searchField search:indexField ?field .
BIND (replace ( ?name, "«", "" ) AS ?sortName)
} ORDER BY ?field ?name
} ORDER BY ?field ?sortName
""" .

View file

@ -0,0 +1,48 @@
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
<https://litvinovg.pro/text_structures#compilation> display:hasDeleteQuery """
PREFIX ts: <https://litvinovg.pro/text_structures#>
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc
WHERE {
OPTIONAL {
?individualURI ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
OPTIONAL {
?tocElement ts:hasTOCItem ?tocItem .
}
}
}
""" .
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDeleteQuery """
PREFIX ts: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc ?excerpt ?author ?organization
WHERE {
?individualURI rdf:type ts:elenphArticle .
OPTIONAL {
?individualURI ts:hasTOC ?toc .
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
OPTIONAL {
?tocElement ts:hasTOCItem ?tocItem .
}
OPTIONAL {
?tocElement ts:hasText ?excerpt .
OPTIONAL {
?excerpt ts:hasAuthor ?author .
OPTIONAL {
?author ts:affiliatedWith ?organization .
}
}
}
}
}
""" .
<https://litvinovg.pro/text_structures#elenphExcerpt> display:hasDeleteQuery """
PREFIX ts: <https://litvinovg.pro/text_structures#>
DESCRIBE ?individualURI ?tocElement
WHERE
{
?tocElement ts:hasText ?individualURI .
FILTER NOT EXISTS {?tocElement ts:hasTOCItem ?tocItem }
}
""" .

View file

@ -26,12 +26,15 @@ display:getArticleExcerptsContentDataGetter
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT ?elenphExcerpt ?property ?value
SELECT ?elenphExcerpt ?htmlLabel ?htmlContent (COUNT (distinct ?excerptWorks) as ?worksCounter) (COUNT (distinct ?excerptBibliography) as ?bibliographyCounter)
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ?property ?value .
} ORDER BY ?elenphExcerpt
?elenphExcerpt ts_:htmlExcerpt ?htmlContent .
?elenphExcerpt rdfs:label ?htmlLabel .
OPTIONAL{ ?elenphExcerpt ts_:works ?excerptWorks . }
OPTIONAL{ ?elenphExcerpt ts_:bibliography ?excerptBibliography . }
} GROUP BY ?elenphExcerpt ?htmlLabel ?htmlContent ORDER BY ?elenphExcerpt
""" .
display:getArticleExcerptPathsDataGetter
@ -42,7 +45,7 @@ display:getArticleExcerptPathsDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) ?tocElement ?elenphExcerpt
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
@ -58,7 +61,6 @@ display:getArticleExcerptPathsDataGetter
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
?tocElement rdf:type ts_:TOCLevel .
?individualURI rdf:type ts_:elenphArticle .
}
}
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
@ -72,11 +74,11 @@ display:getArticleBibliographyDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?bibliography
SELECT DISTINCT ?bibliography ?excerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:bibliography ?bibliography .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
?excerpt ts_:bibliography ?bibliography .
} ORDER BY ?bibliography
""" .
@ -88,11 +90,11 @@ display:getArticleWorksDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?works
SELECT DISTINCT ?works ?excerpt
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:works ?works .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
?excerpt ts_:works ?works .
} ORDER BY ?works
""" .
@ -104,12 +106,21 @@ display:getArticleAuthorsDataGetter
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?author
SELECT DISTINCT ?authorInitials ?authorFamily ?authorGivenName ?orgName ?orgPostalCode ?orgAddress
WHERE {
?individualURI ts_:hasTOC ?toc .
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
?elenphExcerpt ts_:author ?author .
} ORDER BY ?author
?elenphExcerpt ts_:hasAuthor ?participant .
?participant ts_:participantFamily ?authorFamily .
?participant ts_:participantInitials ?authorInitials .
?participant ts_:participantGivenName ?authorGivenName .
OPTIONAL { ?participant ts_:affiliatedWith ?organization .
OPTIONAL { ?organization ts_:officialOrganizationName ?orgName } .
OPTIONAL { ?organization ts_:organizationPostalCode ?orgPostalCode } .
OPTIONAL { ?organization ts_:organizationAddress ?orgAddress } .
}
} ORDER BY ?authorFamily
""" .
display:getArticleRubricsDataGetter

View file

@ -8,6 +8,7 @@
<https://litvinovg.pro/text_structures#elenphExcerpt> display:hasDataGetter display:getExcerptAssignedArticlesDataGetter .
<https://litvinovg.pro/text_structures#elenphExcerpt> display:hasDataGetter display:getExcerptAuthorsDataGetter .
display:getExcerptAssignedArticlesDataGetter
@ -27,3 +28,25 @@ display:getExcerptAssignedArticlesDataGetter
} ORDER BY ?articleName
""" .
display:getExcerptAuthorsDataGetter
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
display:saveToVar "authors";
display:query
"""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ts_: <https://litvinovg.pro/text_structures#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?authorInitials ?authorFamily ?authorGivenName ?orgName ?orgPostalCode ?orgAddress
WHERE {
?individualURI ts_:hasAuthor ?participant .
?participant ts_:participantFamily ?authorFamily .
?participant ts_:participantInitials ?authorInitials .
?participant ts_:participantGivenName ?authorGivenName .
OPTIONAL { ?participant ts_:affiliatedWith ?organization .
OPTIONAL { ?organization ts_:officialOrganizationName ?orgName } .
OPTIONAL { ?organization ts_:organizationPostalCode ?orgPostalCode } .
OPTIONAL { ?organization ts_:organizationAddress ?orgAddress } .
}
} ORDER BY ?authorFamily
""" .

View file

@ -0,0 +1,11 @@
@prefix vitroDisplay: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#filter> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#statement> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#searchField> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#sort> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#TOC> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#TOCLevel> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#TOCItem> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#publicationParticipant> .
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#organization> .

View file

@ -72,6 +72,7 @@
<rdfs:domain rdf:resource="https://iph.ras.ru/relationships#rubric"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="https://iph.ras.ru/relationships#belongsTo">
<vitro:customEntryFormAnnot>edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.AddRubricToELENPHArticleGenerator</vitro:customEntryFormAnnot>
<rdfs:range rdf:resource="https://iph.ras.ru/relationships#rubric"/>
<rdfs:label xml:lang="en-US">belongs to</rdfs:label>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
@ -79,7 +80,7 @@
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>true</vitro:selectFromExistingAnnot>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publication"/>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:about="https://iph.ras.ru/relationships#rubricOrder">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF
xmlns:ns="http://www.w3.org/2003/06/sw-vocab-status/ns#"
xmlns:search="https://litvinovg.pro/search_ontology#"
xmlns:scires="http://vivoweb.org/ontology/scientific-research#"
xmlns:ocresst="http://purl.org/net/OCRe/statistics.owl#"
xmlns:ocresd="http://purl.org/net/OCRe/study_design.owl#"
@ -29,40 +30,34 @@
xmlns:vcard="http://www.w3.org/2006/vcard/ns#"
xmlns:bibo="http://purl.org/ontology/bibo/"
xmlns:fabio="http://purl.org/spar/fabio/"
xmlns:search="https://dideside.com/searchOntology#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<owl:Ontology rdf:about="https://litvinovg.pro/text_structures">
<vitro:ontologyPrefixAnnot>ts</vitro:ontologyPrefixAnnot>
<rdfs:label xml:lang="ru-RU">Text structures Ontology</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Text structures Ontology</rdfs:label>
<vitro:ontologyPrefixAnnot>ts</vitro:ontologyPrefixAnnot>
</owl:Ontology>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#book">
<rdfs:subClassOf>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publication"/>
</rdfs:subClassOf>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<rdfs:label xml:lang="en-US">Book</rdfs:label>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOC">
<rdfs:label xml:lang="en-US">Table of contents</rdfs:label>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label xml:lang="en-US">Table of contents</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Table of contents</rdfs:label>
<rdfs:subClassOf>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOCLevel"/>
</rdfs:subClassOf>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayRankAnnot>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayLimitAnnot>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publication">
<rdfs:label xml:lang="en-US">Publication</rdfs:label>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#complexPublication">
<rdfs:label xml:lang="en-US">Complex Publication</rdfs:label>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
@ -70,6 +65,116 @@
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publication"/>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publication">
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayLimitAnnot>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label xml:lang="en-US">Publication</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Publication</rdfs:label>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayRankAnnot>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publicationParticipant">
<rdfs:label xml:lang="en-US">Publication Participant</rdfs:label>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOCItem">
<rdfs:label xml:lang="en-US">TOC Item</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>TOC Item</rdfs:label>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#organization">
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label xml:lang="en-US">Organization</rdfs:label>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#elenphArticle">
<rdfs:subClassOf>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#encArticle"/>
</rdfs:subClassOf>
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
<vitro:customDisplayViewAnnot>elenphAritcle.ftl</vitro:customDisplayViewAnnot>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Electronic philosophical encyclopedia article</rdfs:label>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupElenpharticles"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#compilation">
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:customDisplayViewAnnot>compilation.ftl</vitro:customDisplayViewAnnot>
<rdfs:label xml:lang="en-US">Compilation</rdfs:label>
<vitro:customEntryFormAnnot>edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.CompilationGenerator</vitro:customEntryFormAnnot>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#textExcerpt">
<vitro:inClassGroup rdf:resource="http://research.iph.ras.ru/vivo/individual/vitroClassGroupTableofcontents"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#publication"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Text excerpt</rdfs:label>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#book">
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label xml:lang="en-US">Book</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Book</rdfs:label>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayLimitAnnot>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayRankAnnot>
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#journalArticle">
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayLimitAnnot>
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayRankAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Journal Article</rdfs:label>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#encArticle">
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
@ -81,13 +186,7 @@
>-1</vitro:displayRankAnnot>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>-1</vitro:displayLimitAnnot>
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#publication"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOCItem">
<rdfs:label xml:lang="en-US">TOC Item</rdfs:label>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#elenphExcerpt">
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
@ -96,56 +195,53 @@
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
<vitro:customDisplayViewAnnot>elenphExcerpt.ftl</vitro:customDisplayViewAnnot>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#textExcerpt"/>
</rdfs:subClassOf>
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Elenph Excerpt</rdfs:label>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#elenphArticle">
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#encArticle"/>
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
<vitro:customDisplayViewAnnot>elenphAritcle.ftl</vitro:customDisplayViewAnnot>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Electronic philosophical encyclopedia article</rdfs:label>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupElenpharticles"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#textExcerpt">
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Text excerpt</rdfs:label>
<vitro:inClassGroup rdf:resource="http://research.iph.ras.ru/vivo/individual/vitroClassGroupTableofcontents"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#journal">
<rdfs:label xml:lang="en-US">Journal</rdfs:label>
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayLimitAnnot>
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>-1</vitro:displayRankAnnot>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#publication"/>
</owl:Class>
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOCLevel">
<vitro:inClassGroup rdf:resource="http://research.iph.ras.ru/vivo/individual/vitroClassGroupTableofcontents"/>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<obo:IAO_0000115>Table of contents element</obo:IAO_0000115>
<rdfs:label xml:lang="en-US">TOC Level</rdfs:label>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#TOCLevel"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label xml:lang="en-US">TOC Level</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>TOC Level</rdfs:label>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<obo:IAO_0000115>Table of contents element</obo:IAO_0000115>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:Class>
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#hasAuthor">
<rdfs:label xml:lang="en-US">has author</rdfs:label>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>true</vitro:selectFromExistingAnnot>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#affiliatedWith">
<rdfs:label xml:lang="en-US">affiliated with</rdfs:label>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#organization"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>true</vitro:selectFromExistingAnnot>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#compilatorOf">
<rdfs:label xml:lang="en-US">compilatorOf</rdfs:label>
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#compilation"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>true</vitro:selectFromExistingAnnot>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#hasTOCItem">
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#TOCLevel"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
@ -160,22 +256,13 @@
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#TOCItem"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#hasTOC">
<rdfs:label xml:lang="en-US">has TOC</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publication"/>
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#TOC"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>true</vitro:selectFromExistingAnnot>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#hasText">
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#TOCLevel"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label xml:lang="en-US">has text</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>has text</rdfs:label>
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
@ -200,29 +287,31 @@
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>true</vitro:selectFromExistingAnnot>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#author">
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>author</rdfs:label>
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#queryBuilderRules">
<rdfs:label xml:lang="en-US">Query Builder Rules</rdfs:label>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#compilation"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#author"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#works">
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#rawQueryString">
<rdfs:label xml:lang="en-US">Raw Query String</rdfs:label>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#compilation"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#works"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Works</rdfs:label>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantInitials">
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
<rdfs:label xml:lang="en-US">Publication Participant Initials</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#doi">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
@ -237,6 +326,14 @@
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantGivenName">
<rdfs:label xml:lang="en-US">Publication Participant Given Name</rdfs:label>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#firstPublication">
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#firstPublication"/>
@ -249,6 +346,15 @@
>First publication</rdfs:label>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#modificationTime">
<rdfs:label xml:lang="en-US">Modification time</rdfs:label>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publication"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#keywords">
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Keywords</rdfs:label>
@ -274,6 +380,46 @@
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>html Excerpt</rdfs:label>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantFamily">
<rdfs:label xml:lang="en-US">Publication Participant Family</rdfs:label>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#issue">
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Issue</rdfs:label>
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#issue"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantEmail">
<rdfs:label xml:lang="en-US">Publication Participant email</rdfs:label>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#works">
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#works"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Works</rdfs:label>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#yearAndMonth">
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Year and month</rdfs:label>
@ -287,18 +433,6 @@
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#yearAndMonth"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#affiliation">
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#affiliation"/>
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Affiliation</rdfs:label>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#bibliography">
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
@ -324,18 +458,31 @@
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#year"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#issue">
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>Issue</rdfs:label>
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#issue"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#organizationAddress">
<rdfs:label xml:lang="en-US">Organization Address</rdfs:label>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
</owl:DatatypeProperty>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#organization"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
</owl:FunctionalProperty>
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#organizationPostalCode">
<rdfs:label xml:lang="en-US">Organization Postal Code</rdfs:label>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#organization"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
</owl:FunctionalProperty>
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#officialOrganizationName">
<rdfs:label xml:lang="en-US">Official Organization Name</rdfs:label>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#organization"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
</owl:FunctionalProperty>
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#">
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"/>
@ -362,4 +509,17 @@
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#TOCItem"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
</owl:FunctionalProperty>
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#hasTOC">
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#TOC"/>
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
>true</vitro:selectFromExistingAnnot>
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
<rdfs:label xml:lang="en-US">has TOC</rdfs:label>
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
>has TOC</rdfs:label>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
</owl:FunctionalProperty>
</rdf:RDF>

View 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 .
}
""" .

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,18 @@
{
let content = document.getElementById("wrapper-content");
let toc = document.getElementById("TOC");
createTOC(content, toc);
function createTOC(content, toc){
if (toc === null){
alert("no TOC element found");
return;
}
if (content === null){
alert("no content element found");
return;
}
}
}

View file

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

View file

@ -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>

View file

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

View file

@ -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" >

View file

@ -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>

View file

@ -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>')}

View file

@ -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 >

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@ icons: {
}
.rule-value-container > select{
max-width: 800px;
max-width: 380px;
}
.query-builder, .query-builder * {
@ -16,6 +16,7 @@ icons: {
.query-builder {
font-family: sans-serif;
width: 100%;
}
.query-builder .hide {
@ -24,6 +25,7 @@ icons: {
.query-builder .pull-right {
float: right !important;
/*box-shadow: 0px 4px 2px #aeaeae;*/
}
.query-builder .btn {
@ -31,7 +33,7 @@ icons: {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.42857;
text-align: center;
@ -41,12 +43,11 @@ icons: {
cursor: pointer;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
/*border: 1px solid transparent;*/
/*border-radius: 4px;*/
}
.query-builder .btn.focus, .query-builder .btn:focus, .query-builder .btn:hover
{
.query-builder .btn.focus, .query-builder .btn:focus, .query-builder .btn:hover {
color: #333;
text-decoration: none;
}
@ -54,48 +55,62 @@ icons: {
.query-builder .btn.active, .query-builder .btn:active {
background-image: none;
outline: 0px none;
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.125) inset;
/* box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.125) inset; */
}
.query-builder .btn-success {
color: #FFF;
background-color: #5CB85C;
border-color: #4CAE4C;
color: #000000;
background-color: #ffffff;
border: 0px;
font-family: Roboto;
/*box-shadow: 0px 4px 2px #aeaeae;*/
}
.btn-group.pull-right.group-actions {
box-shadow: 0px 4px 2px #aeaeae;
/*margin-right: 10px;*/
}
.query-builder .btn-primary {
color: #FFF;
background-color: #337AB7;
border-color: #2E6DA4;
color: #000000;
background-color: #ffffff;
border: 1px dashed #000000 !important;
}
.query-builder .btn-danger {
color: #FFF;
background-color: #D9534F;
border-color: #D43F3A;
color: #000000;
background-color: #ffffff;
border: 0px;
box-shadow: 0px;
}
button.btn.btn-xs.btn-danger {
/*box-shadow: 0px 0px 0px #000000;*/
border-left: 1px solid #ead6a2 !important;
font-family: Roboto;
}
.query-builder .btn-success.active, .query-builder .btn-success.focus,
.query-builder .btn-success:active, .query-builder .btn-success:focus,
.query-builder .btn-success:hover {
color: #FFF;
background-color: #449D44;
border-color: #398439;
color: #000000;
background-color: #EAD6A2;
border: 0px;
/*border-color: #398439;*/
}
.query-builder .btn-primary.active, .query-builder .btn-primary.focus,
.query-builder .btn-primary:active, .query-builder .btn-primary:focus,
.query-builder .btn-primary:hover {
color: #FFF;
background-color: #286090;
border-color: #204D74;
color: #000000;
background-color: #EAD6A2;
border-color: #000000;
}
.query-builder .btn-danger.active, .query-builder .btn-danger.focus,
.query-builder .btn-danger:active, .query-builder .btn-danger:focus,
.query-builder .btn-danger:hover {
color: #FFF;
background-color: #C9302C;
color: #000000;
background-color: #ffffff;
border-color: #AC2925;
}
@ -108,10 +123,12 @@ icons: {
.query-builder .btn-group>.btn {
position: relative;
float: left;
border-left: 1px solid #ead6a2;
}
.query-builder .btn-group>.btn:first-child {
margin-left: 0px;
border-left: none;
}
.query-builder .btn-group>.btn:first-child:not(:last-child) {
@ -131,8 +148,8 @@ icons: {
}
.query-builder .btn-xs, .query-builder .btn-group-xs>.btn {
padding: 1px 5px;
font-size: 12px;
padding: 5px 8px;
font-size: 1rem;
line-height: 1.5;
border-radius: 3px;
/*border-radius: 3px;*/
}

View file

@ -6,26 +6,61 @@
.query-builder .rules-group-container, .query-builder .rule-container,
.query-builder .rule-placeholder {
position: relative;
margin: 4px 0;
border-radius: 5px;
/*margin: 10px 10px 0 10px;*/
/*border-radius: 5px;*/
padding: 5px;
border: 1px solid #EEE;
/*border-top: 1px dashed #000000;
border-left: 1px dashed #000000;
border-right: 1px dashed #000000;*/
background: rgba(255, 255, 255, 0.9);
}
.rule-container {
box-shadow: 0px 4px 4px #aeaeae;
margin-bottom: 10px;
margin-top: 10px;
}
.query-builder .rule-container .rule-filter-container, .query-builder .rule-container .rule-operator-container,
.query-builder .rule-container .rule-value-container, .query-builder .error-container,
.query-builder .drag-handle {
display: inline-block;
margin: 0 5px 0 0;
vertical-align: middle;
/*vertical-align: middle;*/
}
.query-builder .rules-group-container {
padding: 10px;
padding-bottom: 6px;
border: 1px solid #DCC896;
background: rgba(250, 240, 210, 0.5);
padding: 12px 20px 10px 20px;
/*border-right: 1px solid #8B4513;
border-left: 1px solid #8B4513;
border-top: 1px solid #8B4513;
border-bottom: 1px solid #8B4513;*/
background-color: #efe9d9;
outline: 1px dashed #000000;
outline-offset: 0px;
margin-bottom: 10px;
font-family: Roboto;
}
#builder_group_0 {
background-color: #F1F1F1;
margin-bottom: 0;
outline: 1px solid #F1F1F1;
outline-offset: -1px;
border-left: 1px solid #8B4513;
border-right: 1px solid #8B4513;
}
#builder_rule_1 {
margin-bottom: 10px;
}
#builder_group_1 {
margin-top: 10px;
/*border: 1px dashed #000000;*/
}
.query-builder .rules-group-header {
@ -52,12 +87,13 @@
.query-builder .rules-list {
list-style: none;
padding: 0 0 0 15px;
padding: 0 0 0 10px;
margin: 0;
box-shadow: 0px 0px #aeaeae;
}
.query-builder .rule-value-container {
border-left: 1px solid #DDD;
/*border-left: 1px solid #DDD;*/
padding-left: 5px;
}
@ -72,7 +108,7 @@
.query-builder .rule-value-container select, .query-builder .rule-value-container input[type='text'],
.query-builder .rule-value-container input[type='number'] {
padding: 1px;
padding: 5px;
}
.query-builder .error-container {
@ -97,18 +133,18 @@
left: -10px;
width: 10px;
height: calc(50% + 4px);
border-color: #CCC;
border-style: solid;
border-color: #000000;
border-style: dashed;
}
.query-builder .rules-list>*::before {
top: -4px;
border-width: 0 0 2px 2px;
border-width: 0 0 1px 1px;
}
.query-builder .rules-list>*::after {
top: 50%;
border-width: 0 0 0 2px;
border-width: 0 0 0 1px;
}
.query-builder .rules-list>*:first-child::before {
@ -117,7 +153,7 @@
}
.query-builder .rules-list>*:last-child::before {
border-radius: 0 0 0 4px;
/*border-radius: 0 0 0 4px;*/
}
.query-builder .rules-list>*:last-child::after {

View file

@ -0,0 +1,173 @@
/*!
* jQuery QueryBuilder 2.5.2
* Copyright 2014-2018 Damien "Mistic" Sorel (http://www.strangeplanet.fr)
* Licensed under MIT (https://opensource.org/licenses/MIT)
*/
.query-builder .rules-group-container, .query-builder .rule-container, .query-builder .rule-placeholder {
position: relative;
margin: 4px 0;
border-radius: 5px;
padding: 5px;
border: 1px solid #EEE;
background: rgba(255, 255, 255, 0.9);
}
.query-builder .rule-container .rule-filter-container,
.query-builder .rule-container .rule-operator-container,
.query-builder .rule-container .rule-value-container, .query-builder .error-container, .query-builder .drag-handle {
display: inline-block;
margin: 0 5px 0 0;
vertical-align: middle;
}
.query-builder .rules-group-container {
padding: 10px;
padding-bottom: 6px;
border: 1px solid #DCC896;
background: rgba(250, 240, 210, 0.5);
}
.query-builder .rules-group-header {
margin-bottom: 10px;
}
.query-builder .rules-group-header .group-conditions .btn.readonly:not(.active),
.query-builder .rules-group-header .group-conditions input[name$='_cond'] {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
white-space: nowrap;
}
.query-builder .rules-group-header .group-conditions .btn.readonly {
border-radius: 3px;
}
.query-builder .rules-list {
list-style: none;
padding: 0 0 0 15px;
margin: 0;
}
.query-builder .rule-value-container {
border-left: 1px solid #DDD;
padding-left: 5px;
}
.query-builder .rule-value-container label {
margin-bottom: 0;
font-weight: normal;
}
.query-builder .rule-value-container label.block {
display: block;
}
.query-builder .rule-value-container select,
.query-builder .rule-value-container input[type='text'],
.query-builder .rule-value-container input[type='number'] {
padding: 1px;
}
.query-builder .error-container {
display: none;
cursor: help;
color: #F00;
}
.query-builder .has-error {
background-color: #FDD;
border-color: #F99;
}
.query-builder .has-error .error-container {
display: inline-block !important;
}
.query-builder .rules-list > *::before, .query-builder .rules-list > *::after {
content: '';
position: absolute;
left: -10px;
width: 10px;
height: calc(50% + 4px);
border-color: #CCC;
border-style: solid;
}
.query-builder .rules-list > *::before {
top: -4px;
border-width: 0 0 2px 2px;
}
.query-builder .rules-list > *::after {
top: 50%;
border-width: 0 0 0 2px;
}
.query-builder .rules-list > *:first-child::before {
top: -12px;
height: calc(50% + 14px);
}
.query-builder .rules-list > *:last-child::before {
border-radius: 0 0 0 4px;
}
.query-builder .rules-list > *:last-child::after {
display: none;
}
.query-builder.bt-checkbox-glyphicons .checkbox input[type='checkbox']:checked + label::after {
font-family: 'Glyphicons Halflings';
content: '\e013';
}
.query-builder.bt-checkbox-glyphicons .checkbox label::after {
padding-left: 4px;
padding-top: 2px;
font-size: 9px;
}
.query-builder .error-container + .tooltip .tooltip-inner {
color: #F99 !important;
}
.query-builder p.filter-description {
margin: 5px 0 0 0;
background: #D9EDF7;
border: 1px solid #BCE8F1;
color: #31708F;
border-radius: 5px;
padding: 2.5px 5px;
font-size: .8em;
}
.query-builder .rules-group-header [data-invert] {
margin-left: 5px;
}
.query-builder .drag-handle {
cursor: move;
vertical-align: middle;
margin-left: 5px;
}
.query-builder .dragging {
position: fixed;
opacity: .5;
z-index: 100;
}
.query-builder .dragging::before, .query-builder .dragging::after {
display: none;
}
.query-builder .rule-placeholder {
border: 1px dashed #BBB;
opacity: .7;
}

View file

@ -0,0 +1,6 @@
/*!
* jQuery QueryBuilder 2.5.2
* Copyright 2014-2018 Damien "Mistic" Sorel (http://www.strangeplanet.fr)
* Licensed under MIT (https://opensource.org/licenses/MIT)
*/
.query-builder .rule-container,.query-builder .rule-placeholder,.query-builder .rules-group-container{position:relative;margin:4px 0;border-radius:5px;padding:5px;border:1px solid #eee;background:rgba(255,255,255,.9)}.query-builder .drag-handle,.query-builder .error-container,.query-builder .rule-container .rule-filter-container,.query-builder .rule-container .rule-operator-container,.query-builder .rule-container .rule-value-container{display:inline-block;margin:0 5px 0 0;vertical-align:middle}.query-builder .rules-group-container{padding:10px;padding-bottom:6px;border:1px solid #dcc896;background:rgba(250,240,210,.5)}.query-builder .rules-group-header{margin-bottom:10px}.query-builder .rules-group-header .group-conditions .btn.readonly:not(.active),.query-builder .rules-group-header .group-conditions input[name$='_cond']{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.query-builder .rules-group-header .group-conditions .btn.readonly{border-radius:3px}.query-builder .rules-list{list-style:none;padding:0 0 0 15px;margin:0}.query-builder .rule-value-container{border-left:1px solid #ddd;padding-left:5px}.query-builder .rule-value-container label{margin-bottom:0;font-weight:400}.query-builder .rule-value-container label.block{display:block}.query-builder .rule-value-container input[type=number],.query-builder .rule-value-container input[type=text],.query-builder .rule-value-container select{padding:1px}.query-builder .error-container{display:none;cursor:help;color:red}.query-builder .has-error{background-color:#fdd;border-color:#f99}.query-builder .has-error .error-container{display:inline-block!important}.query-builder .rules-list>::after,.query-builder .rules-list>::before{content:'';position:absolute;left:-10px;width:10px;height:calc(50% + 4px);border-color:#ccc;border-style:solid}.query-builder .rules-list>::before{top:-4px;border-width:0 0 2px 2px}.query-builder .rules-list>::after{top:50%;border-width:0 0 0 2px}.query-builder .rules-list>:first-child::before{top:-12px;height:calc(50% + 14px)}.query-builder .rules-list>:last-child::before{border-radius:0 0 0 4px}.query-builder .rules-list>:last-child::after{display:none}.query-builder.bt-checkbox-glyphicons .checkbox input[type=checkbox]:checked+label::after{font-family:'Glyphicons Halflings';content:'\e013'}.query-builder.bt-checkbox-glyphicons .checkbox label::after{padding-left:4px;padding-top:2px;font-size:9px}.query-builder .error-container+.tooltip .tooltip-inner{color:#f99!important}.query-builder p.filter-description{margin:5px 0 0 0;background:#d9edf7;border:1px solid #bce8f1;color:#31708f;border-radius:5px;padding:2.5px 5px;font-size:.8em}.query-builder .rules-group-header [data-invert]{margin-left:5px}.query-builder .drag-handle{cursor:move;vertical-align:middle;margin-left:5px}.query-builder .dragging{position:fixed;opacity:.5;z-index:100}.query-builder .dragging::after,.query-builder .dragging::before{display:none}.query-builder .rule-placeholder{border:1px dashed #bbb;opacity:.7}

View file

@ -56,7 +56,7 @@ td {
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
color: #595b5b;
color: #000000;
font-weight: normal;
}
body {

View file

@ -1,32 +1,32 @@
menu_contactus = Contact Us
menu_welcomestart = Welcome
menu_copyright = copyright
menu_support = Support
menu_logout = Log out
menu_contactus = Контакты
menu_welcomestart = Добро пожаловать
menu_copyright = права
menu_support = Поддержка
menu_logout = Выйти
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
menu_login = Войти
menu_version = Версия
menu_about = О нас
menu_termuse = Правила использования
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_para2 = Browse or search information on people, departments, courses, grants, and publications.
intro_searchvivo = Search VIVO
intro_filtersearch = Filter search
intro_searchvivo = Поиск VIVO
intro_filtersearch = Ограничить поиск
identity_title = VIVO | connect share discover
identity_title = VIVO | соединяй делись познавай
identity_index = Index
identity_edit = Edit Page
identity_admin = Site Admin
identity_myprofile = My profile
identity_myaccount = My account
identity_user = user
identity_edit = Редактировать страницу
identity_admin = Админка
identity_myprofile = Мой профиль
identity_myaccount = Моя учётная запись
identity_user = пользователь
collection_capitalized = Collection
place_of_grant = Place of grant
email_address = Email Address
collection_capitalized = Коллекция
place_of_grant = Место получения гранта
email_address = email адрес
#
# 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 \
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
address_street_one = первая строка адреса
address_street_two = вторая строка адреса
address_street_three = третья строка адреса
address_label = подпись адреса
loading_website_image = Loading website image
loading_website_image = Загрузка изображения сайта
researchers_in = researchers in
view = view
grant_type = grant Type
researchers_in = исследователь в
view = вид
grant_type = тип гранта
grant_entry_for = grant entry for
regions = regions
grant_date = grant Date
map_states_string = states.
map_state_string = state.
regions = регионы
grant_date = дата получения гранта
map_states_string = штатов.
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_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals.
currently_no_papers_for = Currently there are no {0} papers for
change_selection = change selection
change_selection = Изменить выделенное
view_all_departments = view all academic departments
first_name = First name
last_name = Last name
first_grant = First Grant
last_grant = Last Grant
first_name = Имя
last_name = Фамилия
first_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
reviewer_role = Роль рецензента
vivo_profile = профиль VIVO
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
grants_in_vivo = гранты в VIVO
service_provider_role = Роль предоставителя услуг
view_all_faculty = просмотреть весь факультет
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
indiv_foafperson_for = к
indiv_foafperson_return = вернуться к
no_departments_found = Университетских департаментов не найдено.
leadership_role = Управляющая роль
countries = страны
first_publication = Первая публикация
last_publication = Последняя публикация
research_area = сотрудников департамента спецализирующихся на данной области исследования
password = пароль
limit_search = ограничить поиск
placeholder_image = Изображение-заполнитель
view_all_members_of_org = Просмотреть всех участников данной организации.
display_more = больше
create_entry = Создать запись
attendee_capitalized = Посетитель
no_faculty_found = Членов факультета найдено не было.
create_capitalized = Создать
to = к
enter_new_role_value = Введеите новое значение в поле Роль.
countries_and_regions = страны и регионы.
province_or_region = Провинция или регион
full_name = Полное имя
researchers = исследователи
years_participation_in = Годы участия в
return_to_grant = Вернуться к гранту
profile_capitalized = Профиль
organizer_role = Роль организатора
faculty_memberships = Членство в факультете
edit_mailing_address = Изменить email адрес
add_capitalized = Добавить
#Design labels
scroll_to_top_label = Наверх
toc_label = Содержание
collapse_something = Свернуть
expand_something = Раскрыть
user_settings_label = Выберите настройки:
user_settings_always_open_full_doc = Всегда раскрывать документ при открытии
user_settings_always_open_metadata = Всегда раскрывать метаданные при открытии
expand_doc_switch = Раскрыть документ
collapse_doc_switch = Свернуть документ
expand_metadata_switch = Раскрыть метаданные
collapse_metadata_switch = Свернуть метаданные
literature_excerpt_button_text = Литература
literature_all_button_text = Сводная литература
sources_excerpt_button_text = Источники
sources_all_button_text = Сводные источники
extended_search_label = Расширенный поиск
metadata_label = Метаданные
metadata_query = Поисковый запрос
metadata_relates_to_rubrics = Относится к рубрикам:
metadata_relates_to_issue = Входит в выпуск
metadata_year = Год
metadata_to_rubric = перейти в рубрику
metadata_firstPublication = Первая публикация
metadata_authors = Авторы:
metadata_keywords = Ключевые слова:
metadata_html_text = Текст:
metadata_org_address = Адрес организации:
metadata_in_articles = В составе статей:
#Philosophical classifier
rubricator_parent_rubric = Родительская рубрика:
rubricator_rubric_order = Порядок рубрики
rubricator_subrubrics = Подрубрики
rubricator_articles_in_subrubrics = Статьи в подрубриках
rubricator_excerpts_in_subrubrics = Отрывки в подрубриках
rubricator_articles_in_rubric = Статьи в данной рубрике
rubricator_excerpts_in_rubric = Отрывки в данной рубрике
#Extended search form
extended_search_example = Пример заполнения
extended_search_results_on_page = Результатов на страницу
extended_search_clean = Очистить
extended_search_execute_search = Поиск
open_standard_search_form = Стандартная форма поиска
#Virtual articles creation
show_virtual_article = Показать виртуальную статью
create_compilation_button = Сохранить
create_compilation_no_excerpts = Отрывков не найдено
create_compilation_enter_name_notification = Введите название подобрки
create_compilation_no_name_entered_error = Для создания подоборки необходимо ввести её название

View 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

View file

@ -0,0 +1,109 @@
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 = Электронная Философская Энциклопедия
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
remove_doc_from_search_results=Удалить из результатов поиска

View file

@ -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

View file

@ -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

View 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" stroke="#8B4513"/>
</svg>

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

View 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" stroke="#8B4513"/>
</svg>

After

Width:  |  Height:  |  Size: 172 B

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 75 B

View 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

View 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" stroke="#8B4513"/>
</svg>

After

Width:  |  Height:  |  Size: 173 B

View 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" stroke="#8B4513"/>
</svg>

After

Width:  |  Height:  |  Size: 173 B

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 B

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

View 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

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 B

View 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

View file

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

Some files were not shown because too many files have changed in this diff Show more