Compare commits

..

293 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
5cf377d488 add css rule 2020-08-21 15:11:55 +02:00
ecd0651553 Modified logical search query 2020-08-21 10:49:41 +02:00
7abcdf832b Escape search value 2020-08-21 09:47:03 +02:00
0ab7173351 Changed quotes in search form 2020-08-21 09:28:50 +02:00
84476b3c95 query builder first try 2020-08-21 09:14:06 +02:00
0ffbbf0d67 Removed link to js 2020-08-20 17:38:40 +02:00
f6b8f491f6 Added search ontology 2020-08-20 17:23:11 +02:00
ae141a822a Fill queryBuiler with fields and filters 2020-08-20 17:03:44 +02:00
af1372ef3c Added buttons 2020-08-19 20:21:34 +02:00
e7166f55a7 Added example rules and values 2020-08-19 17:09:13 +02:00
a1c0638347 Fixed query builder configuration 2020-08-19 16:00:26 +02:00
9dedbb01d6 Loading dummy query builder 2020-08-19 13:20:20 +02:00
9afa45ac3c Article's rubrics 2020-08-18 16:03:52 +02:00
e402425daa Sum all rubrics of article while indexing 2020-08-18 15:26:22 +02:00
288facad06 Use custom search service 2020-08-18 15:08:50 +02:00
f0b7a0d850 Styles modifications 2020-08-18 15:08:32 +02:00
9037843731 Fix article page 2020-08-18 15:08:12 +02:00
7c6e16e3de Added issue template 2020-08-18 13:21:30 +02:00
c5733042ba Copied wilma 2020-08-18 13:21:08 +02:00
e9b7bac503 Issue template added 2020-08-17 16:28:52 +02:00
aac411ce41 Added ontologies 2020-08-17 14:44:46 +02:00
ac75d757a8 Modified ontology 2020-08-13 19:36:57 +02:00
48636ef3ce Modifications for fixed ontology 2020-08-13 18:21:03 +02:00
4bd5b3df21 Fixed mistake in query 2020-08-10 11:24:21 +02:00
ce3840e8a5 Added custom fields 2020-08-10 11:18:37 +02:00
3ee4e6de2c Fix for previous commit 2020-08-05 16:54:14 +02:00
b2d0d80acc Added articles info to excerpt 2020-08-05 16:26:26 +02:00
b258e500f8 templates update 2020-08-03 17:42:45 +02:00
cdc8848c72 Updates for templates 2020-08-03 17:30:00 +02:00
e80962629c Templates and SPARQL requests for rubrics, elenph excerpts and articles 2020-07-08 13:20:58 +02:00
219 changed files with 10004 additions and 2219 deletions

4
.env
View file

@ -1,4 +0,0 @@
LOCAL_VIVO_HOME=./vivo-home
RESET_HOME=false
RESET_CORE=false
VERBOSE=no

2
.gitattributes vendored
View file

@ -1,2 +0,0 @@
# Convert to LF line endings on checkout.
*.sh text eol=lf

View file

@ -1,34 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
- OS: [e.g. Windows, Linux]
- Browser [e.g. chrome, safari]
- Tomcat version [e.g. 8, 9]
- VIVO version [e.g. 1.11.0, 1.12.0]
- Apache Solr or ElasticSearch version
**Additional context**
Add any other context about the problem here.

View file

@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View file

@ -1,7 +1,7 @@
**Thank you for submitting a pull request! Title this pull request with a brief description of what the pull request fixes/improves/changes. Please describe the pull request in detail using the template below.** **Thank you for submitting a pull request! Title this pull request with a brief description of what the pull request fixes/improves/changes. Please describe the pull request in detail using the template below.**
* * * * * *
**[JIRA Issue](https://jira.lyrasis.org/projects/VIVO)**: (please link to issue) **[JIRA Issue](https://jira.duraspace.org/projects/VIVO)**: (please link to issue)
* Other Relevant Links (Mailing list discussion, related pull requests, etc.) * Other Relevant Links (Mailing list discussion, related pull requests, etc.)

View file

@ -1,31 +0,0 @@
name: Build
on: [ push, pull_request, workflow_dispatch ]
jobs:
build:
runs-on: ubuntu-latest
env:
MAVEN_OPTS: -Xmx1024M
steps:
- uses: actions/checkout@v2
- name: Clone Vitro
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
- name: Maven Cache
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-cache-m2-
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Maven Build
run: mvn clean package -s installer/example-settings.xml

View file

@ -1,41 +0,0 @@
name: Deploy
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
env:
MAVEN_OPTS: -Xmx1024M
steps:
- uses: actions/checkout@v2
- name: Clone Vitro
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
- name: Maven Cache
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-cache-m2-
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 11
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
- name: Maven Deploy
run: mvn --batch-mode deploy -Pskip
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}

View file

@ -1,59 +0,0 @@
name: Docker
on:
push:
branches:
- main
workflow_dispatch:
jobs:
docker:
runs-on: ubuntu-latest
env:
MAVEN_OPTS: -Xmx1024M
steps:
- uses: actions/checkout@v2
- name: Clone Vitro
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
- name: Maven Cache
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-cache-m2-
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Maven Build
run: mvn clean package -s installer/example-settings.xml
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: vivoweb/vivo:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

5
.gitignore vendored
View file

@ -20,8 +20,3 @@ utilities/rdbmigration/.work
**/.classpath **/.classpath
**/.project **/.project
**/bin/ **/bin/
vivo-home/
.fake
.ionide

22
.travis.yml Normal file
View file

@ -0,0 +1,22 @@
language: java
dist: trusty
sudo: false
jdk:
- openjdk8
- oraclejdk8
env:
# Give Maven 1GB of memory to work with
- MAVEN_OPTS=-Xmx1024M
cache:
directories:
- .autoconf
- $HOME/.m2
install:
- git clone https://github.com/vivo-project/Vitro.git ../Vitro
script:
- "mvn clean package -Dmaven.test.skip=false"

View file

@ -1,20 +0,0 @@
FROM tomcat:9-jdk11-openjdk
ARG SOLR_URL=http://localhost:8983/solr/vivocore
ARG VIVO_DIR=/usr/local/vivo/home
ARG TDB_FILE_MODE=direct
ENV SOLR_URL=${SOLR_URL}
ENV JAVA_OPTS="${JAVA_OPTS} -Dtdb:fileMode=$TDB_FILE_MODE"
RUN mkdir /usr/local/vivo
RUN mkdir /usr/local/vivo/home
COPY ./installer/home/target/vivo /vivo-home
COPY ./installer/webapp/target/vivo.war /usr/local/tomcat/webapps/ROOT.war
COPY start.sh /start.sh
EXPOSE 8080
CMD ["/bin/bash", "/start.sh"]

View file

@ -1,4 +1,4 @@
Copyright (c) 2021, Cornell University Copyright (c) 2018, Cornell University
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

View file

@ -1,6 +1,6 @@
# VIVO: Connect, Share, Discover # VIVO: Connect, Share, Discover
[![Build](https://github.com/vivo-project/VIVO/workflows/Build/badge.svg)](https://github.com/vivo-project/VIVO/actions?query=workflow%3ABuild) [![Deploy](https://github.com/vivo-project/VIVO/workflows/Deploy/badge.svg)](https://github.com/vivo-project/VIVO/actions?query=workflow%3ADeploy) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2639714.svg)](https://doi.org/10.5281/zenodo.2639713) [![Build Status](https://travis-ci.org/vivo-project/VIVO.png?branch=develop)](https://travis-ci.org/vivo-project/VIVO) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2639714.svg)](https://doi.org/10.5281/zenodo.2639713)
VIVO is an open source semantic web tool for research discovery -- finding people and the research they do. VIVO is an open source semantic web tool for research discovery -- finding people and the research they do.
@ -14,60 +14,12 @@ desired information across disciplines.
http://vivoweb.org/ http://vivoweb.org/
### VIVO Project Wiki ### VIVO Project Wiki
https://wiki.lyrasis.org/display/VIVO/ https://wiki.duraspace.org/display/VIVO/
### Installation Instructions ### Installation Instructions
Installation instructions for the latest release can be found at this location on the wiki: Installation instructions for the latest release can be found at this location on the wiki:
https://wiki.lyrasis.org/display/VIVODOC112x/Installing+VIVO https://wiki.duraspace.org/display/VIVODOC110x/Installing+VIVO
### Docker
VIVO docker container is available at [vivoweb/vivo](https://hub.docker.com/repository/docker/vivoweb/vivo) with accompanying [vivoweb/vivo-solr](https://hub.docker.com/repository/docker/vivoweb/vivo-solr). These can be used independently or with docker-compose.
### Docker Compose
Docker Compose environment variables:
.env defaults
```
LOCAL_VIVO_HOME=./vivo-home
RESET_HOME=false
RESET_CORE=false
```
- `LOCAL_VIVO_HOME`: VIVO home directory on your host machine which will mount to volume in docker container. Set this environment variable to persist your VIVO data on your host machine.
- `RESET_HOME`: Convenience to reset VIVO home when starting container. **Caution**, will delete local configuration, content, and configuration model.
- `RESET_CORE`: Convenience to reset VIVO Solr core when starting container. **Caution**, will require complete reindex.
Before building VIVO, you will also need to clone (and switch to the same branch, if other than main) of [Vitro](https://github.com/vivo-project/Vitro). The Vitro project must be cloned to a sibling directory next to VIVO so that it can be found during the build. You will also need to clone (and switch to the appropriate branch) of [Vitro-languages](https://github.com/vivo-project/Vitro-languages) and [VIVO-languages](https://github.com/vivo-project/VIVO-languages).
Build and start VIVO.
1. In Vitro-languages, run:
```
mvn install
```
2. In VIVO-languages, run:
```
mvn install
```
3. In VIVO (with Vitro cloned alongside it), run:
```
mvn clean package -s installer/example-settings.xml
docker-compose up
```
### Docker Image
To build and run local Docker image.
```
docker build -t vivoweb/vivo:development .
docker run -p 8080:8080 vivoweb/vivo:development
```
## Contact us ## Contact us
There are several ways to contact the VIVO community. There are several ways to contact the VIVO community.
@ -92,7 +44,7 @@ development, implementation, and testing.
## Contributing Code ## Contributing Code
If you would like to contribute code to the VIVO project, please open a ticket If you would like to contribute code to the VIVO project, please open a ticket
in our [JIRA](https://jira.lyrasis.org/projects/VIVO), and prepare a in our [JIRA](https://jira.duraspace.org/projects/VIVO), and prepare a
pull request that references your ticket. Contributors welcome! pull request that references your ticket. Contributors welcome!
## Citing VIVO ## Citing VIVO

View file

@ -7,13 +7,13 @@
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-api</artifactId> <artifactId>vivo-api</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<parent> <parent>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-project</artifactId> <artifactId>vivo-project</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<relativePath>..</relativePath> <relativePath>..</relativePath>
</parent> </parent>
@ -83,7 +83,7 @@
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.13.1</version> <version>4.11</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>

View file

@ -58,7 +58,7 @@ public class AgrovocService implements ExternalConceptService {
protected final String dbpedia_endpoint = " http://dbpedia.org/sparql"; protected final String dbpedia_endpoint = " http://dbpedia.org/sparql";
// URL to get all the information for a concept // URL to get all the information for a concept
protected final String conceptSkosMosBase = "https://agrovoc.uniroma2.it/agrovoc/rest/v1/"; protected final String conceptSkosMosBase = "http://agrovoc.uniroma2.it/agrovoc/rest/v1/";
protected final String conceptsSkosMosSearch = conceptSkosMosBase + "search?"; protected final String conceptsSkosMosSearch = conceptSkosMosBase + "search?";
protected final String conceptSkosMosURL = conceptSkosMosBase + "data?"; protected final String conceptSkosMosURL = conceptSkosMosBase + "data?";
@Override @Override

View file

@ -35,7 +35,7 @@ public class LCSHService implements ExternalConceptService {
protected final Log log = LogFactory.getLog(getClass()); protected final Log log = LogFactory.getLog(getClass());
private final String skosSuffix = ".skos.rdf"; private final String skosSuffix = ".skos.rdf";
private final String hostUri = "https://id.loc.gov"; private final String hostUri = "http://id.loc.gov";
private final String schemeUri = hostUri + "/authorities/subjects"; private final String schemeUri = hostUri + "/authorities/subjects";
private final String baseUri = hostUri + "/search/"; private final String baseUri = hostUri + "/search/";
@ -94,7 +94,7 @@ public class LCSHService implements ExternalConceptService {
bestMatch = "false"; bestMatch = "false";
} }
log.debug("-" + uri + "-"); log.debug("-" + uri + "-");
//This is the URL for retrieving the concept - the pattern is https://id.loc.gov/authorities/subjects/sh85014203.skos.rdf //This is the URL for retrieving the concept - the pattern is http://id.loc.gov/authorities/subjects/sh85014203.skos.rdf
//This is not the URI itself which would be http://id.loc.gov/authorities/subjects/sh85014203 //This is not the URI itself which would be http://id.loc.gov/authorities/subjects/sh85014203
String conceptURLString = getSKOSURL(uri); String conceptURLString = getSKOSURL(uri);
String baseConceptURI = uri; String baseConceptURI = uri;
@ -152,7 +152,7 @@ public class LCSHService implements ExternalConceptService {
private String getSKOSURL(String uri) { private String getSKOSURL(String uri) {
String skosURI = uri.replaceFirst("http://", "https://") + skosSuffix; String skosURI = uri + skosSuffix;
return skosURI; return skosURI;
} }

View file

@ -4,18 +4,12 @@ package edu.cornell.mannlib.semservices.service.impl;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpVersion;
import org.apache.http.client.fluent.Form;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.utils.URIBuilder;
import org.springframework.util.StringUtils;
import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
@ -24,6 +18,11 @@ import edu.cornell.mannlib.semservices.bo.Concept;
import edu.cornell.mannlib.semservices.exceptions.ConceptsNotFoundException; import edu.cornell.mannlib.semservices.exceptions.ConceptsNotFoundException;
import edu.cornell.mannlib.semservices.service.ExternalConceptService; import edu.cornell.mannlib.semservices.service.ExternalConceptService;
import edu.cornell.mannlib.vitro.webapp.utils.json.JacksonUtils; import edu.cornell.mannlib.vitro.webapp.utils.json.JacksonUtils;
import org.apache.http.HttpVersion;
import org.apache.http.client.fluent.Form;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.utils.URIBuilder;
import org.springframework.util.StringUtils;
/** /**
* @author jaf30 * @author jaf30
@ -55,13 +54,11 @@ public class UMLSService implements ExternalConceptService {
private static String UMLS_AUTH_USER_URL = "https://utslogin.nlm.nih.gov/cas/v1/tickets"; private static String UMLS_AUTH_USER_URL = "https://utslogin.nlm.nih.gov/cas/v1/tickets";
private static String UMLS_AUTH_KEY_URL = "https://utslogin.nlm.nih.gov/cas/v1/api-key"; private static String UMLS_AUTH_KEY_URL = "https://utslogin.nlm.nih.gov/cas/v1/api-key";
private static String UTS_SERVICE_URL = "http://umlsks.nlm.nih.gov"; private static String UTS_SERVICE_URL = "http://umlsks.nlm.nih.gov";
private static final String UMLS_PROPERTIES = "/umls.properties";
private static final Log log = LogFactory.getLog(UMLSService.class);
{ {
if (username == null || apikey == null) { if (username == null || apikey == null) {
final Properties properties = new Properties(); final Properties properties = new Properties();
try (InputStream stream = getClass().getResourceAsStream(UMLS_PROPERTIES)) { try (InputStream stream = getClass().getResourceAsStream("/umls.properties")) {
properties.load(stream); properties.load(stream);
username = properties.getProperty("username"); username = properties.getProperty("username");
password = properties.getProperty("password"); password = properties.getProperty("password");
@ -76,19 +73,12 @@ public class UMLSService implements ExternalConceptService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e, e);
} }
} catch (IOException e) { } catch (IOException e) {
log.error(e, e);
} }
} }
} }
public static boolean configurationFileExists() {
URL config = UMLSService.class.getResource(UMLS_PROPERTIES);
return (config != null);
}
public boolean isConfigured() { public boolean isConfigured() {
return !(StringUtils.isEmpty(username) && StringUtils.isEmpty(apikey)); return !(StringUtils.isEmpty(username) && StringUtils.isEmpty(apikey));
} }

View file

@ -69,7 +69,7 @@ public class ManagePublicationsForIndividualController extends FreemarkerHttpSer
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n" + "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n" + "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
+ "SELECT DISTINCT ?subclass ?authorship (?label as ?title) ?pub ?hideThis WHERE { \n" + "SELECT DISTINCT ?subclass ?authorship (str(?label) as ?title) ?pub ?hideThis WHERE { \n"
+ " ?subject core:relatedBy ?authorship . \n" + " ?subject core:relatedBy ?authorship . \n"
+ " ?authorship a core:Authorship . \n" + " ?authorship a core:Authorship . \n"
+ " OPTIONAL { \n " + " OPTIONAL { \n "

View file

@ -11,18 +11,15 @@ import org.apache.jena.rdf.model.Literal;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.N3ValidatorVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.N3ValidatorVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission;
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
public class FirstAndLastNameValidator implements N3ValidatorVTwo { public class FirstAndLastNameValidator implements N3ValidatorVTwo {
private static String MISSING_FIRST_NAME_ERROR = "first_name_empty_msg"; private static String MISSING_FIRST_NAME_ERROR = "You must enter a value in the First Name field.";
private static String MISSING_LAST_NAME_ERROR = "last_name_empty_msg"; private static String MISSING_LAST_NAME_ERROR = "You must enter a value in the Last Name field.";
private static String MALFORMED_LAST_NAME_ERROR = "malformed_last_name_msg"; private static String MALFORMED_LAST_NAME_ERROR = "The last name field may not contain a comma. Please enter first name in First Name field.";
private I18nBundle i18n;
private String uriReceiver; private String uriReceiver;
public FirstAndLastNameValidator(String uriReceiver, I18nBundle i18n) { public FirstAndLastNameValidator(String uriReceiver) {
this.i18n = i18n;
this.uriReceiver = uriReceiver; this.uriReceiver = uriReceiver;
} }
@ -71,14 +68,14 @@ public class FirstAndLastNameValidator implements N3ValidatorVTwo {
} }
if (lastName == null) { if (lastName == null) {
errors.put("lastName", i18n.text(MISSING_LAST_NAME_ERROR)); errors.put("lastName", MISSING_LAST_NAME_ERROR);
// Don't reject space in the last name: de Vries, etc. // Don't reject space in the last name: de Vries, etc.
} else if (lastNameValue.contains(",")) { } else if (lastNameValue.contains(",")) {
errors.put("lastName", i18n.text(MALFORMED_LAST_NAME_ERROR)); errors.put("lastName", MALFORMED_LAST_NAME_ERROR);
} }
if (firstName == null) { if (firstName == null) {
errors.put("firstName", i18n.text(MISSING_FIRST_NAME_ERROR)); errors.put("firstName", MISSING_FIRST_NAME_ERROR);
} }
return errors.size() != 0 ? errors : null; return errors.size() != 0 ? errors : null;

View file

@ -5,7 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -22,28 +21,28 @@ public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
/** Editor role involves hard-coded options for the "right side" of the role or activity. */ /** Editor role involves hard-coded options for the "right side" of the role or activity. */
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", "", "Select type",
I18n.bundle(vreq).text("select_type"), "http://purl.org/NET/c4dm/event.owl#Event", "Event",
"http://purl.org/NET/c4dm/event.owl#Event", "http://vivoweb.org/ontology/core#Competition", "Competition",
"http://vivoweb.org/ontology/core#Competition", "http://purl.org/ontology/bibo/Conference", "Conference",
"http://purl.org/ontology/bibo/Conference", "http://vivoweb.org/ontology/core#Course", "Course",
"http://vivoweb.org/ontology/core#Course", "http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
"http://vivoweb.org/ontology/core#Exhibit", "http://purl.org/ontology/bibo/Hearing", "Hearing",
"http://purl.org/ontology/bibo/Hearing", "http://purl.org/ontology/bibo/Interview", "Interview",
"http://purl.org/ontology/bibo/Interview", "http://vivoweb.org/ontology/core#Meeting", "Meeting",
"http://vivoweb.org/ontology/core#Meeting", "http://purl.org/ontology/bibo/Performance", "Performance",
"http://purl.org/ontology/bibo/Performance", "http://vivoweb.org/ontology/core#Presentation", "Presentation",
"http://vivoweb.org/ontology/core#Presentation", "http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
"http://vivoweb.org/ontology/core#InvitedTalk", "http://purl.org/ontology/bibo/Workshop", "Workshop",
"http://purl.org/ontology/bibo/Workshop", "http://vivoweb.org/ontology/core#EventSeries", "Event Series",
"http://vivoweb.org/ontology/core#EventSeries", "http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
"http://vivoweb.org/ontology/core#ConferenceSeries", "http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
"http://vivoweb.org/ontology/core#SeminarSeries", "http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series"
"http://vivoweb.org/ontology/core#WorkshopSeries" );
);
} }
@Override
boolean isShowRoleLabelField() { boolean isShowRoleLabelField() {
return false; return false;
} }
@ -66,4 +65,3 @@ public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
} }
*/ */
} }

View file

@ -5,7 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -23,21 +22,22 @@ public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
} }
/** Clinical role involves hard-coded options for the "right side" of the role or activity. */ /** Clinical role involves hard-coded options for the "right side" of the role or activity. */
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", "", "Select one",
I18n.bundle(vreq).text("select_type"), "http://vivoweb.org/ontology/core#Project", "Project",
"http://vivoweb.org/ontology/core#Project", "http://purl.obolibrary.org/obo/ERO_0000005", "Service"
"http://purl.obolibrary.org/obo/ERO_0000005" /* Service */ );
);
} }
//isShowRoleLabelField remains true for this so doesn't need to be overwritten
@Override @Override
boolean isShowRoleLabelField(){ boolean isShowRoleLabelField(){
return true; return true;
} }
/* /*
* Use the methods below to change the date/time precision in the * Use the methods below to change the date/time precision in the
* custom form associated with this generator. When not used, the * custom form associated with this generator. When not used, the

View file

@ -5,8 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
/** /**
* Generates the edit configuration for adding a Role to a Person. * Generates the edit configuration for adding a Role to a Person.
@ -48,13 +46,8 @@ public class AddEditorRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
// UQAM-Linguistic-Management Managing linguistic context
I18nBundle i18n = I18n.bundle(vreq);
String i18nSelectType = i18n.text("select_type");
String selectType = (i18nSelectType == null || i18nSelectType.isEmpty()) ? "Select type" : i18nSelectType ;
return new ChildVClassesOptions(OPTION_CLASS_URI) return new ChildVClassesOptions(OPTION_CLASS_URI)
.setDefaultOptionLabel(selectType); .setDefaultOptionLabel("Select type");
} }
/** Do not show the role label field for the AddEditorRoleToPerson form */ /** Do not show the role label field for the AddEditorRoleToPerson form */

View file

@ -32,7 +32,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUti
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; 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.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
/** /**
* This is a slightly unusual generator that is used by Manage Editors on * This is a slightly unusual generator that is used by Manage Editors on
@ -84,7 +83,7 @@ public class AddEditorsToInformationResourceGenerator extends VivoBaseGenerator
//template file //template file
editConfiguration.setTemplate("addEditorsToInformationResource.ftl"); editConfiguration.setTemplate("addEditorsToInformationResource.ftl");
//add validators //add validators
editConfiguration.addValidator(new FirstAndLastNameValidator("personUri", I18n.bundle(vreq))); editConfiguration.addValidator(new FirstAndLastNameValidator("personUri"));
//Adding additional data, specifically edit mode //Adding additional data, specifically edit mode
addFormSpecificData(editConfiguration, vreq); addFormSpecificData(editConfiguration, vreq);

View file

@ -23,10 +23,9 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils; 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.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; 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.modelaccess.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode; import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils; import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
@ -109,8 +108,8 @@ public class AddEditorshipToPersonGenerator extends VivoBaseGenerator implements
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("documentType"). setName("documentType").
setValidators( list("nonempty") ). setValidators( list("nonempty") ).
// UQAM-Linguistic-Management vreq for linguistic context setOptions( new ConstantFieldOptions("documentType", getDocumentTypeLiteralOptions() ))
setOptions( getDocumentTypeLiteralOptions(vreq) ) ); );
conf.addField( new FieldVTwo(). conf.addField( new FieldVTwo().
setName("documentLabel"). setName("documentLabel").
@ -204,22 +203,21 @@ public class AddEditorshipToPersonGenerator extends VivoBaseGenerator implements
return null; return null;
} }
private FieldOptions getDocumentTypeLiteralOptions(VitroRequest vreq) throws Exception { private List<List<String>> getDocumentTypeLiteralOptions() {
return GeneratorUtil.buildResourceAndLabelFieldOptions( List<List<String>> literalOptions = new ArrayList<List<String>>();
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", literalOptions.add(list("http://purl.org/ontology/bibo/Book", "Book"));
I18n.bundle(vreq).text("select_type"), literalOptions.add(list("http://purl.org/ontology/bibo/Chapter", "Chapter"));
"http://purl.org/ontology/bibo/Book", literalOptions.add(list("http://purl.org/ontology/bibo/EditedBook", "Edited Book"));
"http://purl.org/ontology/bibo/Chapter", literalOptions.add(list("http://purl.org/ontology/bibo/Film", "Film"));
"http://purl.org/ontology/bibo/EditedBook", literalOptions.add(list("http://purl.org/ontology/bibo/Magazine", "Magazine"));
"http://purl.org/ontology/bibo/Film", literalOptions.add(list("http://vivoweb.org/ontology/core#Newsletter", "Newsletter"));
"http://purl.org/ontology/bibo/Magazine", literalOptions.add(list("http://purl.org/ontology/bibo/Newspaper", "Newspaper"));
"http://vivoweb.org/ontology/core#Newsletter", literalOptions.add(list("http://vivoweb.org/ontology/core#NewsRelease", "News Release"));
"http://purl.org/ontology/bibo/Newspaper", literalOptions.add(list("http://purl.org/ontology/bibo/Report", "Report"));
"http://vivoweb.org/ontology/core#NewsRelease", literalOptions.add(list("http://vivoweb.org/ontology/core#Video", "Video"));
"http://purl.org/ontology/bibo/Report", literalOptions.add(list("http://purl.org/ontology/bibo/Webpage", "Webpage"));
"http://vivoweb.org/ontology/core#Video", literalOptions.add(list("http://purl.org/ontology/bibo/Website", "Website"));
"http://purl.org/ontology/bibo/Webpage", return literalOptions;
"http://purl.org/ontology/bibo/Website");
} }
} }

View file

@ -5,8 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -27,14 +25,10 @@ public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
/** Head Of role involves hard-coded options for the "right side" of the role or activity */ /** Head Of role involves hard-coded options for the "right side" of the role or activity */
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
// UQAM-Linguistic-Management Taking into account the linguistic context
I18nBundle i18n = I18n.bundle(vreq);
String i18nSelectType = i18n.text("select_type");
String selectType = (i18nSelectType == null || i18nSelectType.isEmpty()) ? "Select type" : i18nSelectType ;
return new return new
ChildVClassesOptions(OPTION_CLASS_URI) ChildVClassesOptions(OPTION_CLASS_URI)
.setDefaultOptionLabel(selectType); .setDefaultOptionLabel("Select type");
} }
@Override @Override

View file

@ -2,28 +2,9 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QueryFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.rdf.model.AnonId;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -39,45 +20,44 @@ public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
return "http://vivoweb.org/ontology/core#MemberRole"; return "http://vivoweb.org/ontology/core#MemberRole";
} }
@Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", "","Select type",
I18n.bundle(vreq).text("select_type"), "http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
"http://vivoweb.org/ontology/core#AcademicDepartment", "http://vivoweb.org/ontology/core#Association","Association",
"http://vivoweb.org/ontology/core#Association", "http://vivoweb.org/ontology/core#Center","Center",
"http://vivoweb.org/ontology/core#Center", "http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
"http://vivoweb.org/ontology/core#ClinicalOrganization", "http://vivoweb.org/ontology/core#College","College",
"http://vivoweb.org/ontology/core#College", "http://vivoweb.org/ontology/core#Committee","Committee",
"http://vivoweb.org/ontology/core#Committee", "http://vivoweb.org/ontology/core#Company","Company",
"http://vivoweb.org/ontology/core#Company", "http://vivoweb.org/ontology/core#Consortium","Consortium",
"http://vivoweb.org/ontology/core#Consortium", "http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
"http://vivoweb.org/ontology/core#CoreLaboratory", "http://vivoweb.org/ontology/core#Department","Department",
"http://vivoweb.org/ontology/core#Department", "http://vivoweb.org/ontology/core#Division","Division",
"http://vivoweb.org/ontology/core#Division", "http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
"http://vivoweb.org/ontology/core#ExtensionUnit", "http://vivoweb.org/ontology/core#Foundation","Foundation",
"http://vivoweb.org/ontology/core#Foundation", "http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
"http://vivoweb.org/ontology/core#FundingOrganization", "http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
"http://vivoweb.org/ontology/core#GovernmentAgency", "http://xmlns.com/foaf/0.1/Group","Group",
"http://xmlns.com/foaf/0.1/Group", "http://vivoweb.org/ontology/core#Hospital","Hospital",
"http://vivoweb.org/ontology/core#Hospital", "http://vivoweb.org/ontology/core#Institute","Institute",
"http://vivoweb.org/ontology/core#Institute", "http://vivoweb.org/ontology/core#Laboratory","Laboratory",
"http://vivoweb.org/ontology/core#Laboratory", "http://vivoweb.org/ontology/core#Library","Library",
"http://vivoweb.org/ontology/core#Library", "http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */, "http://vivoweb.org/ontology/core#Museum","Museum",
"http://vivoweb.org/ontology/core#Museum", "http://xmlns.com/foaf/0.1/Organization","Organization",
"http://xmlns.com/foaf/0.1/Organization", "http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
"http://vivoweb.org/ontology/core#PrivateCompany", "http://vivoweb.org/ontology/core#Program","Program",
"http://vivoweb.org/ontology/core#Program", "http://vivoweb.org/ontology/core#Publisher","Publisher",
"http://vivoweb.org/ontology/core#Publisher", "http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
"http://vivoweb.org/ontology/core#ResearchOrganization", "http://vivoweb.org/ontology/core#School","School",
"http://vivoweb.org/ontology/core#School", "http://vivoweb.org/ontology/core#Team","Team",
"http://vivoweb.org/ontology/core#Team", "http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory", "http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
"http://vivoweb.org/ontology/core#StudentOrganization", "http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
"http://purl.obolibrary.org/obo/ERO_0000565" /* Technology Transfer Office */, "http://vivoweb.org/ontology/core#University","University");
"http://vivoweb.org/ontology/core#University"); }
}
@Override @Override
boolean isShowRoleLabelField(){return true;} boolean isShowRoleLabelField(){return true;}

View file

@ -3,8 +3,8 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -22,27 +22,26 @@ public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGe
} }
//Organizer role involves hard-coded options for the "right side" of the role or activity //Organizer role involves hard-coded options for the "right side" of the role or activity
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "","Select type",
"", I18n.bundle(vreq).text("select_type"), "http://vivoweb.org/ontology/core#Competition", "Competition",
"http://vivoweb.org/ontology/core#Competition", "http://purl.org/ontology/bibo/Conference", "Conference",
"http://purl.org/ontology/bibo/Conference", "http://vivoweb.org/ontology/core#Course", "Course",
"http://vivoweb.org/ontology/core#Course", "http://purl.org/NET/c4dm/event.owl#Event", "Event",
"http://purl.org/NET/c4dm/event.owl#Event", "http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
"http://vivoweb.org/ontology/core#Exhibit", "http://purl.org/ontology/bibo/Hearing", "Hearing",
"http://purl.org/ontology/bibo/Hearing", "http://purl.org/ontology/bibo/Interview", "Interview",
"http://purl.org/ontology/bibo/Interview", "http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
"http://vivoweb.org/ontology/core#InvitedTalk", "http://vivoweb.org/ontology/core#Meeting", "Meeting",
"http://vivoweb.org/ontology/core#Meeting", "http://purl.org/ontology/bibo/Performance", "Performance",
"http://purl.org/ontology/bibo/Performance", "http://vivoweb.org/ontology/core#Presentation", "Presentation",
"http://vivoweb.org/ontology/core#Presentation", "http://purl.org/ontology/bibo/Workshop", "Workshop",
"http://purl.org/ontology/bibo/Workshop", "http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
"http://vivoweb.org/ontology/core#ConferenceSeries", "http://vivoweb.org/ontology/core#EventSeries", "Event Series",
"http://vivoweb.org/ontology/core#EventSeries", "http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
"http://vivoweb.org/ontology/core#SeminarSeries", "http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
"http://vivoweb.org/ontology/core#WorkshopSeries");
} }
@Override @Override

View file

@ -3,8 +3,8 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -22,60 +22,59 @@ public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwo
} }
//Outreach Provider role involves hard-coded options for the "right side" of the role or activity //Outreach Provider role involves hard-coded options for the "right side" of the role or activity
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", "","Select type",
I18n.bundle(vreq).text("select_type"), "http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
"http://vivoweb.org/ontology/core#AcademicDepartment", "http://vivoweb.org/ontology/core#Association","Association",
"http://vivoweb.org/ontology/core#Association", "http://vivoweb.org/ontology/core#Center","Center",
"http://vivoweb.org/ontology/core#Center", "http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
"http://vivoweb.org/ontology/core#ClinicalOrganization", "http://vivoweb.org/ontology/core#College","College",
"http://vivoweb.org/ontology/core#College", "http://vivoweb.org/ontology/core#Committee","Committee",
"http://vivoweb.org/ontology/core#Committee", "http://vivoweb.org/ontology/core#Company","Company",
"http://vivoweb.org/ontology/core#Company", "http://vivoweb.org/ontology/core#Competition", "Competition",
"http://vivoweb.org/ontology/core#Competition", "http://purl.org/ontology/bibo/Conference", "Conference",
"http://purl.org/ontology/bibo/Conference", "http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
"http://vivoweb.org/ontology/core#ConferenceSeries", "http://vivoweb.org/ontology/core#Consortium","Consortium",
"http://vivoweb.org/ontology/core#Consortium", "http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
"http://vivoweb.org/ontology/core#CoreLaboratory", "http://vivoweb.org/ontology/core#Course", "Course",
"http://vivoweb.org/ontology/core#Course", "http://vivoweb.org/ontology/core#Department","Department",
"http://vivoweb.org/ontology/core#Department", "http://vivoweb.org/ontology/core#Division","Division",
"http://vivoweb.org/ontology/core#Division", "http://purl.org/NET/c4dm/event.owl#Event","Event",
"http://purl.org/NET/c4dm/event.owl#Event", "http://vivoweb.org/ontology/core#EventSeries", "Event Series",
"http://vivoweb.org/ontology/core#EventSeries", "http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
"http://vivoweb.org/ontology/core#Exhibit", "http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
"http://vivoweb.org/ontology/core#ExtensionUnit", "http://vivoweb.org/ontology/core#Foundation","Foundation",
"http://vivoweb.org/ontology/core#Foundation", "http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
"http://vivoweb.org/ontology/core#FundingOrganization", "http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
"http://vivoweb.org/ontology/core#GovernmentAgency", "http://xmlns.com/foaf/0.1/Group","Group",
"http://xmlns.com/foaf/0.1/Group", "http://purl.org/ontology/bibo/Hearing", "Hearing",
"http://purl.org/ontology/bibo/Hearing", "http://vivoweb.org/ontology/core#Hospital","Hospital",
"http://vivoweb.org/ontology/core#Hospital", "http://vivoweb.org/ontology/core#Institute","Institute",
"http://vivoweb.org/ontology/core#Institute", "http://purl.org/ontology/bibo/Interview", "Interview",
"http://purl.org/ontology/bibo/Interview", "http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
"http://vivoweb.org/ontology/core#InvitedTalk", "http://vivoweb.org/ontology/core#Laboratory","Laboratory",
"http://vivoweb.org/ontology/core#Laboratory", "http://vivoweb.org/ontology/core#Library","Library",
"http://vivoweb.org/ontology/core#Library", "http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */, "http://vivoweb.org/ontology/core#Meeting", "Meeting",
"http://vivoweb.org/ontology/core#Meeting", "http://vivoweb.org/ontology/core#Museum","Museum",
"http://vivoweb.org/ontology/core#Museum", "http://xmlns.com/foaf/0.1/Organization","Organization",
"http://xmlns.com/foaf/0.1/Organization", "http://purl.org/ontology/bibo/Performance", "Performance",
"http://purl.org/ontology/bibo/Performance", "http://vivoweb.org/ontology/core#Presentation", "Presentation",
"http://vivoweb.org/ontology/core#Presentation", "http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
"http://vivoweb.org/ontology/core#PrivateCompany", "http://vivoweb.org/ontology/core#Program","Program",
"http://vivoweb.org/ontology/core#Program", "http://vivoweb.org/ontology/core#Publisher","Publisher",
"http://vivoweb.org/ontology/core#Publisher", "http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
"http://vivoweb.org/ontology/core#ResearchOrganization", "http://vivoweb.org/ontology/core#School","School",
"http://vivoweb.org/ontology/core#School", "http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
"http://vivoweb.org/ontology/core#SeminarSeries", "http://vivoweb.org/ontology/core#Team","Team",
"http://vivoweb.org/ontology/core#Team", "http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory", "http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
"http://vivoweb.org/ontology/core#StudentOrganization", "http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
"http://purl.obolibrary.org/obo/ERO_0000565" /*Technology Transfer Office*/, "http://vivoweb.org/ontology/core#University","University",
"http://vivoweb.org/ontology/core#University", "http://purl.org/ontology/bibo/Workshop", "Workshop",
"http://purl.org/ontology/bibo/Workshop", "http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
"http://vivoweb.org/ontology/core#WorkshopSeries");
} }
@Override @Override

View file

@ -29,10 +29,8 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisio
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils; 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.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; 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.modelaccess.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode; import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils; import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
@ -626,8 +624,7 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
private void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception { private void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception {
setTitleField(editConfiguration); setTitleField(editConfiguration);
//UQAM-Linguistic-Management needs for getting appropriated value in the linguistic context setPubTypeField(editConfiguration);
setPubTypeField(editConfiguration, vreq);
setPubUriField(editConfiguration); setPubUriField(editConfiguration);
setCollectionLabelField(editConfiguration); setCollectionLabelField(editConfiguration);
setCollectionDisplayField(editConfiguration); setCollectionDisplayField(editConfiguration);
@ -667,14 +664,13 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
setRangeDatatypeUri(stringDatatypeUri)); setRangeDatatypeUri(stringDatatypeUri));
} }
//UQAM-Linguistic-Management add vreq to get linguistic context private void setPubTypeField(EditConfigurationVTwo editConfiguration) throws Exception {
private void setPubTypeField(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception { editConfiguration.addField(new FieldVTwo().
editConfiguration.addField(new FieldVTwo(). setName("pubType").
setName("pubType"). setValidators( list("nonempty") ).
setValidators( list("nonempty") ). setOptions( new ConstantFieldOptions("pubType", getPublicationTypeLiteralOptions() ))
setOptions( getPublicationTypeLiteralOptions(vreq) ) );
); }
}
private void setPubUriField(EditConfigurationVTwo editConfiguration) { private void setPubUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo(). editConfiguration.addField(new FieldVTwo().
@ -890,40 +886,39 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
); );
} }
private FieldOptions getPublicationTypeLiteralOptions(VitroRequest vreq) throws Exception { private List<List<String>> getPublicationTypeLiteralOptions() {
return GeneratorUtil.buildResourceAndLabelFieldOptions( List<List<String>> literalOptions = new ArrayList<List<String>>();
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", literalOptions.add(list("http://vivoweb.org/ontology/core#Abstract", "Abstract"));
I18n.bundle(vreq).text("select_type"), literalOptions.add(list("http://purl.org/ontology/bibo/AcademicArticle", "Academic Article"));
"http://vivoweb.org/ontology/core#Abstract", literalOptions.add(list("http://purl.org/ontology/bibo/Article", "Article"));
"http://purl.org/ontology/bibo/AcademicArticle", literalOptions.add(list("http://purl.org/ontology/bibo/AudioDocument", "Audio Document"));
"http://purl.org/ontology/bibo/Article", literalOptions.add(list("http://vivoweb.org/ontology/core#BlogPosting", "Blog Posting"));
"http://purl.org/ontology/bibo/AudioDocument", literalOptions.add(list("http://purl.org/ontology/bibo/Book", "Book"));
"http://vivoweb.org/ontology/core#BlogPosting", literalOptions.add(list("http://vivoweb.org/ontology/core#CaseStudy", "Case Study"));
"http://purl.org/ontology/bibo/Book", literalOptions.add(list("http://vivoweb.org/ontology/core#Catalog", "Catalog"));
"http://vivoweb.org/ontology/core#CaseStudy", literalOptions.add(list("http://purl.org/ontology/bibo/Chapter", "Chapter"));
"http://vivoweb.org/ontology/core#Catalog", literalOptions.add(list("http://vivoweb.org/ontology/core#ConferencePaper", "Conference Paper"));
"http://purl.org/ontology/bibo/Chapter", literalOptions.add(list("http://vivoweb.org/ontology/core#ConferencePoster", "Conference Poster"));
"http://vivoweb.org/ontology/core#ConferencePaper", literalOptions.add(list("http://vivoweb.org/ontology/core#Database", "Database"));
"http://vivoweb.org/ontology/core#ConferencePoster", literalOptions.add(list("http://vivoweb.org/ontology/core#Dataset", "Dataset"));
"http://vivoweb.org/ontology/core#Database", literalOptions.add(list("http://purl.org/ontology/bibo/EditedBook", "Edited Book"));
"http://vivoweb.org/ontology/core#Dataset", literalOptions.add(list("http://vivoweb.org/ontology/core#EditorialArticle", "Editorial Article"));
"http://purl.org/ontology/bibo/EditedBook", literalOptions.add(list("http://purl.org/ontology/bibo/Film", "Film"));
"http://vivoweb.org/ontology/core#EditorialArticle", literalOptions.add(list("http://vivoweb.org/ontology/core#Newsletter", "Newsletter"));
"http://purl.org/ontology/bibo/Film", literalOptions.add(list("http://vivoweb.org/ontology/core#NewsRelease", "News Release"));
"http://vivoweb.org/ontology/core#Newsletter", literalOptions.add(list("http://purl.org/ontology/bibo/Patent", "Patent"));
"http://vivoweb.org/ontology/core#NewsRelease", literalOptions.add(list("http://purl.obolibrary.org/obo/OBI_0000272", "Protocol"));
"http://purl.org/ontology/bibo/Patent", literalOptions.add(list("http://purl.org/ontology/bibo/Report", "Report"));
"http://purl.obolibrary.org/obo/OBI_0000272", literalOptions.add(list("http://vivoweb.org/ontology/core#ResearchProposal", "Research Proposal"));
"http://purl.org/ontology/bibo/Report", literalOptions.add(list("http://vivoweb.org/ontology/core#Review", "Review"));
"http://vivoweb.org/ontology/core#ResearchProposal", literalOptions.add(list("http://purl.obolibrary.org/obo/ERO_0000071 ", "Software"));
"http://vivoweb.org/ontology/core#Review", literalOptions.add(list("http://vivoweb.org/ontology/core#Speech", "Speech"));
"http://purl.obolibrary.org/obo/ERO_0000071 ", literalOptions.add(list("http://purl.org/ontology/bibo/Thesis", "Thesis"));
"http://vivoweb.org/ontology/core#Speech", literalOptions.add(list("http://vivoweb.org/ontology/core#Video", "Video"));
"http://purl.org/ontology/bibo/Thesis", literalOptions.add(list("http://purl.org/ontology/bibo/Webpage", "Webpage"));
"http://vivoweb.org/ontology/core#Video", literalOptions.add(list("http://purl.org/ontology/bibo/Website", "Website"));
"http://purl.org/ontology/bibo/Webpage", literalOptions.add(list("http://vivoweb.org/ontology/core#WorkingPaper", "Working Paper"));
"http://purl.org/ontology/bibo/Website", return literalOptions;
"http://vivoweb.org/ontology/core#WorkingPaper");
} }
//Form specific data //Form specific data

View file

@ -5,7 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -24,13 +23,12 @@ public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageG
/** Researcher role involves hard-coded options for the "right side" of the role or activity. */ /** Researcher role involves hard-coded options for the "right side" of the role or activity. */
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", "", "Select one",
I18n.bundle(vreq).text("select_type"), "http://vivoweb.org/ontology/core#Grant", "Grant",
"http://vivoweb.org/ontology/core#Grant", "http://purl.obolibrary.org/obo/ERO_0000015", "Human Study",
"http://purl.obolibrary.org/obo/ERO_0000015" /* Human Study" */, "http://vivoweb.org/ontology/core#Project", "Project",
"http://vivoweb.org/ontology/core#Project", "http://purl.obolibrary.org/obo/ERO_0000014", "Research Project");
"http://purl.obolibrary.org/obo/ERO_0000014" /* Research Project */);
} }
@Override @Override

View file

@ -5,7 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -33,80 +32,80 @@ public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
* Each subclass generator will return its own type of option here: * Each subclass generator will return its own type of option here:
* whether literal hardcoded, based on class group, or subclasses of a specific class * whether literal hardcoded, based on class group, or subclasses of a specific class
*/ */
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", "", "Select type",
I18n.bundle(vreq).text("select_type"), "http://purl.org/ontology/bibo/AcademicArticle", "Academic Article",
"http://purl.org/ontology/bibo/AcademicArticle", "http://purl.org/ontology/bibo/Article", "Article",
"http://purl.org/ontology/bibo/Article", "http://purl.org/ontology/bibo/AudioDocument", "Audio Document",
"http://purl.org/ontology/bibo/AudioDocument", "http://purl.org/ontology/bibo/AudioVisualDocument", "Audio-Visual Document",
"http://purl.org/ontology/bibo/AudioVisualDocument", "http://purl.org/ontology/bibo/Bill", "Bill",
"http://purl.org/ontology/bibo/Bill", "http://vivoweb.org/ontology/core#Blog", "Blog",
"http://vivoweb.org/ontology/core#Blog", "http://vivoweb.org/ontology/core#BlogPosting", "Blog Posting",
"http://vivoweb.org/ontology/core#BlogPosting", "http://purl.org/ontology/bibo/Book", "Book",
"http://purl.org/ontology/bibo/Book", "http://purl.org/ontology/bibo/BookSection", "Book Section",
"http://purl.org/ontology/bibo/BookSection", "http://purl.org/ontology/bibo/Brief", "Brief",
"http://purl.org/ontology/bibo/Brief", "http://vivoweb.org/ontology/core#CaseStudy", "Case Study",
"http://vivoweb.org/ontology/core#CaseStudy", "http://vivoweb.org/ontology/core#Catalog", "Catalog",
"http://vivoweb.org/ontology/core#Catalog", "http://purl.org/ontology/bibo/Chapter", "Chapter",
"http://purl.org/ontology/bibo/Chapter", "http://purl.org/spar/fabio/ClinicalGuideline", "Clinical Guideline",
"http://purl.org/spar/fabio/ClinicalGuideline", "http://purl.org/ontology/bibo/Code", "Code",
"http://purl.org/ontology/bibo/Code", "http://purl.org/ontology/bibo/CollectedDocument", "Collected Document",
"http://purl.org/ontology/bibo/CollectedDocument", "http://purl.org/spar/fabio/Comment", "Comment",
"http://purl.org/spar/fabio/Comment", "http://vivoweb.org/ontology/core#ConferencePaper", "Conference Paper",
"http://vivoweb.org/ontology/core#ConferencePaper", "http://vivoweb.org/ontology/core#ConferencePoster", "Conference Poster",
"http://vivoweb.org/ontology/core#ConferencePoster", "http://purl.org/ontology/bibo/CourtReporter", "Court Reporter",
"http://purl.org/ontology/bibo/CourtReporter", "http://vivoweb.org/ontology/core#Database", "Database",
"http://vivoweb.org/ontology/core#Database", "http://purl.org/ontology/bibo/LegalDecision", "Decision",
"http://purl.org/ontology/bibo/LegalDecision", "http://purl.org/ontology/bibo/DocumentPart", "Document Part",
"http://purl.org/ontology/bibo/DocumentPart", "http://purl.org/ontology/bibo/EditedBook", "Edited Book",
"http://purl.org/ontology/bibo/EditedBook", "http://vivoweb.org/ontology/core#EditorialArticle", "Editorial Article",
"http://vivoweb.org/ontology/core#EditorialArticle", "http://purl.org/spar/fabio/Erratum", "Erratum",
"http://purl.org/spar/fabio/Erratum", "http://purl.org/ontology/bibo/Excerpt", "Excerpt",
"http://purl.org/ontology/bibo/Excerpt", "http://purl.org/ontology/bibo/Film", "Film",
"http://purl.org/ontology/bibo/Film", "http://purl.org/ontology/bibo/Image", "Image",
"http://purl.org/ontology/bibo/Image", "http://purl.org/ontology/bibo/Issue", "Issue",
"http://purl.org/ontology/bibo/Issue", "http://purl.org/ontology/bibo/Journal", "Journal",
"http://purl.org/ontology/bibo/Journal", "http://purl.obolibrary.org/obo/IAO_0000013", "Journal Article",
"http://purl.obolibrary.org/obo/IAO_0000013" /* "Journal Article" */, "http://purl.org/ontology/bibo/LegalCaseDocument", "Legal Case Document",
"http://purl.org/ontology/bibo/LegalCaseDocument", "http://purl.org/ontology/bibo/LegalDocument", "Legal Document",
"http://purl.org/ontology/bibo/LegalDocument", "http://purl.org/ontology/bibo/Legislation", "Legislation",
"http://purl.org/ontology/bibo/Legislation", "http://purl.org/ontology/bibo/Letter", "Letter",
"http://purl.org/ontology/bibo/Letter", "http://purl.org/ontology/bibo/Magazine", "Magazine",
"http://purl.org/ontology/bibo/Magazine", "http://purl.org/ontology/bibo/Manual", "Manual",
"http://purl.org/ontology/bibo/Manual", "http://purl.org/ontology/bibo/Manuscript", "Manuscript",
"http://purl.org/ontology/bibo/Manuscript", "http://purl.org/ontology/bibo/Map", "Map",
"http://purl.org/ontology/bibo/Map", "http://vivoweb.org/ontology/core#Newsletter", "Newsletter",
"http://vivoweb.org/ontology/core#Newsletter", "http://purl.org/ontology/bibo/Newspaper", "Newspaper",
"http://purl.org/ontology/bibo/Newspaper", "http://vivoweb.org/ontology/core#NewsRelease", "News Release",
"http://vivoweb.org/ontology/core#NewsRelease", "http://purl.org/ontology/bibo/Note", "Note",
"http://purl.org/ontology/bibo/Note", "http://purl.org/ontology/bibo/Patent", "Patent",
"http://purl.org/ontology/bibo/Patent", "http://purl.org/ontology/bibo/Periodical", "Periodical",
"http://purl.org/ontology/bibo/Periodical", "http://purl.org/ontology/bibo/PersonalCommunicationDocument", "Personal Communication Document",
"http://purl.org/ontology/bibo/PersonalCommunicationDocument", "http://purl.org/ontology/bibo/Proceedings", "Proceedings",
"http://purl.org/ontology/bibo/Proceedings", "http://purl.obolibrary.org/obo/OBI_0000272", "protocol",
"http://purl.obolibrary.org/obo/OBI_0000272" /* Protocol" */, "http://purl.org/ontology/bibo/Quote", "Quote",
"http://purl.org/ontology/bibo/Quote", "http://purl.org/ontology/bibo/ReferenceSource", "Reference Source",
"http://purl.org/ontology/bibo/ReferenceSource", "http://purl.org/ontology/bibo/Report", "Report",
"http://purl.org/ontology/bibo/Report", "http://vivoweb.org/ontology/core#ResearchProposal", "Research Proposal",
"http://vivoweb.org/ontology/core#ResearchProposal", "http://vivoweb.org/ontology/core#Review", "Review",
"http://vivoweb.org/ontology/core#Review", "http://vivoweb.org/ontology/core#Score", "Score",
"http://vivoweb.org/ontology/core#Score", "http://vivoweb.org/ontology/core#Screenplay", "Screenplay",
"http://vivoweb.org/ontology/core#Screenplay", "http://purl.org/ontology/bibo/Series", "Series",
"http://purl.org/ontology/bibo/Series", "http://purl.org/ontology/bibo/Slide", "Slide",
"http://purl.org/ontology/bibo/Slide", "http://purl.org/ontology/bibo/Slideshow", "Slideshow",
"http://purl.org/ontology/bibo/Slideshow", "http://vivoweb.org/ontology/core#Speech", "Speech",
"http://vivoweb.org/ontology/core#Speech", "http://purl.org/ontology/bibo/Standard", "Standard",
"http://purl.org/ontology/bibo/Standard", "http://purl.org/ontology/bibo/Statute", "Statute",
"http://purl.org/ontology/bibo/Statute", "http://purl.org/ontology/bibo/Thesis", "Thesis",
"http://purl.org/ontology/bibo/Thesis", "http://vivoweb.org/ontology/core#Translation", "Translation",
"http://vivoweb.org/ontology/core#Translation", "http://vivoweb.org/ontology/core#Video", "Video",
"http://vivoweb.org/ontology/core#Video", "http://purl.org/ontology/bibo/Webpage", "Webpage",
"http://purl.org/ontology/bibo/Webpage", "http://purl.org/ontology/bibo/Website", "Website",
"http://purl.org/ontology/bibo/Website", "http://vivoweb.org/ontology/core#WorkingPaper", "Working Paper"
"http://vivoweb.org/ontology/core#WorkingPaper"); );
} }
//isShowRoleLabelField remains true for this so doesn't need to be overwritten //isShowRoleLabelField remains true for this so doesn't need to be overwritten
public boolean isShowRoleLabelField() { public boolean isShowRoleLabelField() {

View file

@ -415,7 +415,7 @@ public abstract class AddRoleToPersonTwoStageGenerator extends BaseEditConfigura
//make list of type URIs from options, this can be called with null since //make list of type URIs from options, this can be called with null since
//ConstantFieldOptions doesn't use any of the arguments. //ConstantFieldOptions doesn't use any of the arguments.
Map<String,String> options = fieldOptions.getOptions(null, null, null, null) ; Map<String,String> options = fieldOptions.getOptions(null, null, null) ;
if (options != null && options.size() > 0) { if (options != null && options.size() > 0) {
List<String> typeUris = new ArrayList<String>(); List<String> typeUris = new ArrayList<String>();

View file

@ -5,7 +5,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator { public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -19,62 +18,62 @@ public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoS
return "http://purl.obolibrary.org/obo/ERO_0000012"; return "http://purl.obolibrary.org/obo/ERO_0000012";
} }
/** Service Provider role involves hard-coded options for the
* "right side" of the role or activity. */
@Override @Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception { FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions( return new ConstantFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "", "","Select type",
I18n.bundle(vreq).text("select_type"), "http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
"","Select type", "http://vivoweb.org/ontology/core#Association","Association",
"http://vivoweb.org/ontology/core#AcademicDepartment", "http://vivoweb.org/ontology/core#Center","Center",
"http://vivoweb.org/ontology/core#Association", "http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
"http://vivoweb.org/ontology/core#Center", "http://vivoweb.org/ontology/core#College","College",
"http://vivoweb.org/ontology/core#ClinicalOrganization", "http://vivoweb.org/ontology/core#Committee","Committee",
"http://vivoweb.org/ontology/core#College", "http://vivoweb.org/ontology/core#Company","Company",
"http://vivoweb.org/ontology/core#Committee", "http://vivoweb.org/ontology/core#Competition", "Competition",
"http://vivoweb.org/ontology/core#Company", "http://purl.org/ontology/bibo/Conference", "Conference",
"http://vivoweb.org/ontology/core#Competition", "http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
"http://purl.org/ontology/bibo/Conference", "http://vivoweb.org/ontology/core#Consortium","Consortium",
"http://vivoweb.org/ontology/core#ConferenceSeries", "http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
"http://vivoweb.org/ontology/core#Consortium", "http://vivoweb.org/ontology/core#Course", "Course",
"http://vivoweb.org/ontology/core#CoreLaboratory", "http://vivoweb.org/ontology/core#Department","Department",
"http://vivoweb.org/ontology/core#Course", "http://vivoweb.org/ontology/core#Division","Division",
"http://vivoweb.org/ontology/core#Department", "http://purl.org/NET/c4dm/event.owl#Event","Event",
"http://vivoweb.org/ontology/core#Division", "http://vivoweb.org/ontology/core#EventSeries", "Event Series",
"http://purl.org/NET/c4dm/event.owl#Event", "http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
"http://vivoweb.org/ontology/core#EventSeries", "http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
"http://vivoweb.org/ontology/core#Exhibit", "http://vivoweb.org/ontology/core#Foundation","Foundation",
"http://vivoweb.org/ontology/core#ExtensionUnit", "http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
"http://vivoweb.org/ontology/core#Foundation", "http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
"http://vivoweb.org/ontology/core#FundingOrganization", "http://xmlns.com/foaf/0.1/Group","Group",
"http://vivoweb.org/ontology/core#GovernmentAgency", "http://purl.org/ontology/bibo/Hearing", "Hearing",
"http://xmlns.com/foaf/0.1/Group", "http://vivoweb.org/ontology/core#Hospital","Hospital",
"http://purl.org/ontology/bibo/Hearing", "http://vivoweb.org/ontology/core#Institute","Institute",
"http://vivoweb.org/ontology/core#Hospital", "http://purl.org/ontology/bibo/Interview", "Interview",
"http://vivoweb.org/ontology/core#Institute", "http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
"http://purl.org/ontology/bibo/Interview", "http://vivoweb.org/ontology/core#Laboratory","Laboratory",
"http://vivoweb.org/ontology/core#InvitedTalk", "http://vivoweb.org/ontology/core#Library","Library",
"http://vivoweb.org/ontology/core#Laboratory", "http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
"http://vivoweb.org/ontology/core#Library", "http://vivoweb.org/ontology/core#Meeting", "Meeting",
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */, "http://vivoweb.org/ontology/core#Museum","Museum",
"http://vivoweb.org/ontology/core#Meeting", "http://xmlns.com/foaf/0.1/Organization","Organization",
"http://vivoweb.org/ontology/core#Museum", "http://purl.org/ontology/bibo/Performance", "Performance",
"http://xmlns.com/foaf/0.1/Organization", "http://vivoweb.org/ontology/core#Presentation", "Presentation",
"http://purl.org/ontology/bibo/Performance", "http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
"http://vivoweb.org/ontology/core#Presentation", "http://vivoweb.org/ontology/core#Program","Program",
"http://vivoweb.org/ontology/core#PrivateCompany", "http://vivoweb.org/ontology/core#Publisher","Publisher",
"http://vivoweb.org/ontology/core#Program", "http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
"http://vivoweb.org/ontology/core#Publisher", "http://vivoweb.org/ontology/core#School","School",
"http://vivoweb.org/ontology/core#ResearchOrganization", "http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
"http://vivoweb.org/ontology/core#School", "http://vivoweb.org/ontology/core#Team","Team",
"http://vivoweb.org/ontology/core#SeminarSeries", "http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
"http://vivoweb.org/ontology/core#Team", "http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory", "http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
"http://vivoweb.org/ontology/core#StudentOrganization", "http://vivoweb.org/ontology/core#University","University",
"http://purl.obolibrary.org/obo/ERO_0000565" /* Technology Transfer Office" */, "http://purl.org/ontology/bibo/Workshop", "Workshop",
"http://vivoweb.org/ontology/core#University", "http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
"http://purl.org/ontology/bibo/Workshop", }
"http://vivoweb.org/ontology/core#WorkshopSeries");
}
@Override @Override
boolean isShowRoleLabelField(){return true;} boolean isShowRoleLabelField(){return true;}

View file

@ -1,127 +0,0 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jena.iri.IRI;
import org.apache.jena.iri.IRIFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.vocabulary.RDFS;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
public class GeneratorUtil {
private static final Log log = LogFactory.getLog(GeneratorUtil.class);
/**
* Build a field options list of resource URIs paired with their labels as
* retrieved from the supplied RDFService.
*
* @param rdfService from which to retrieve labels: this should typically
* be a LanguageFilteringRDFService.
*
* @param webappDaoFactory may be null. If non-null, labels for classes will be
* returned from here first before consulting
* rdfService.
*
* @param headerValue optional value for first value/label pair in the
* options list before appending the URIs with their
* labels. May be null. Example: empty string
*
* @param headerLabel optional label for first value/label pair in the
* options list before appending the URIs with their
* labels. May be null. Example: "Select type"
*
* @param resourceURIs variable list of resource URI strings
*
* @return empty ConstantFieldOptions list if resourceURIs is null or empty or
* if rdfService is null
* @throws RDFServiceException from the supplied rdfService
* @throws Exception from ConstantFieldOptions constructor
*/
public static ConstantFieldOptions buildResourceAndLabelFieldOptions(
RDFService rdfService, WebappDaoFactory webappDaoFactory, String headerValue,
String headerLabel, String ... resourceURIs) throws Exception {
if(resourceURIs == null || resourceURIs.length == 0 || rdfService == null) {
return new ConstantFieldOptions();
}
List<String> options = new ArrayList<String>();
if(headerValue != null && headerLabel != null) {
options.add(headerValue);
options.add(headerLabel);
}
IRIFactory iriFactory = IRIFactory.iriImplementation();
for(String resourceURI : resourceURIs) {
IRI iri = iriFactory.create(resourceURI);
if(iri.hasViolation(false)) {
log.warn("Not adding invalid URI " + resourceURI
+ " to field options list");
} else {
String label = getLabel(iri, rdfService, webappDaoFactory);
if(!StringUtils.isEmpty(label)) {
options.add(iri.toString());
options.add(label);
}
}
}
return new ConstantFieldOptions(options.toArray(
new String[options.size()]));
}
/**
* Retrieve label for iri from webappDaoFactory if available and iri is
* for a VClass, otherwise retrieve lowest-sorting rdfs:label for iri from
* rdfService
* @param iri may not be null
* @param rdfService may not be null
*/
private static String getLabel(IRI iri, RDFService rdfService,
WebappDaoFactory webappDaoFactory) throws RDFServiceException {
// Try the WebappDaoFactory for class labels that exist only in
// "everytime" and do not show up in the RDFService.
if(webappDaoFactory != null) {
VClass vclass = webappDaoFactory.getVClassDao().getVClassByURI(
iri.toString());
if(vclass != null) {
return vclass.getLabel();
}
}
StringBuilder select = new StringBuilder("SELECT ?label WHERE { \n");
select.append(" <" + iri + "> <" + RDFS.label.getURI() + "> ?label \n");
select.append("} ORDER BY ?label");
LabelConsumer labelConsumer = new LabelConsumer();
rdfService.sparqlSelectQuery(select.toString(), labelConsumer);
return labelConsumer.getLabel();
}
private static class LabelConsumer extends ResultSetConsumer {
private String label;
@Override
protected void processQuerySolution(QuerySolution qsoln) {
if(label != null) {
return;
// keep only the first value returned in the result set
}
if(qsoln.contains("label") && qsoln.get("label").isLiteral()) {
label = qsoln.getLiteral("label").getLexicalForm();
}
}
public String getLabel() {
return label;
}
}
}

View file

@ -19,7 +19,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode; import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils; import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class GrantHasContributorGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{ public class GrantHasContributorGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
@ -93,7 +92,7 @@ public class GrantHasContributorGenerator extends VivoBaseGenerator implements
//Add validator //Add validator
conf.addValidator(new AntiXssValidation()); conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq))); conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
//Adding additional data, specifically edit mode //Adding additional data, specifically edit mode
addFormSpecificData(conf, vreq); addFormSpecificData(conf, vreq);

View file

@ -15,7 +15,6 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
@ -42,7 +41,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.FoafNameToRdfsLabelPreprocessor; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.FoafNameToRdfsLabelPreprocessor;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ManageLabelsForPersonPreprocessor; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ManageLabelsForPersonPreprocessor;
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale; import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
import edu.cornell.mannlib.vitro.webapp.rdfservice.filter.LanguageFilteringUtils;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel;
/** /**
@ -248,12 +246,12 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
private void addFormSpecificData(EditConfigurationVTwo config, private void addFormSpecificData(EditConfigurationVTwo config,
VitroRequest vreq) { VitroRequest vreq) {
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq); //Get all language codes/labels in the system, and this list is sorted by language name
//Get language codes/labels for existing labels, and this list is sorted by language name List<HashMap<String, String>> locales = this.getLocales(vreq);
List<HashMap<String, String>> locales = this.getLocales(vreq, existingLabels);
//Get code to label hashmap - we use this to get the language name for the language code returned in the rdf literal //Get code to label hashmap - we use this to get the language name for the language code returned in the rdf literal
HashMap<String, String> localeCodeToNameMap = this.getFullCodeToLanguageNameMap(locales); HashMap<String, String> localeCodeToNameMap = this.getFullCodeToLanguageNameMap(locales);
//the labels already added by the user //the labels already added by the user
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq);
int numberExistingLabels = existingLabels.size(); int numberExistingLabels = existingLabels.size();
//existing labels keyed by language name and each of the list of labels is sorted by language name //existing labels keyed by language name and each of the list of labels is sorted by language name
HashMap<String, List<LabelInformation>> existingLabelsByLanguageName = this.getLabelsSortedByLanguageName(existingLabels, localeCodeToNameMap, config, vreq); HashMap<String, List<LabelInformation>> existingLabelsByLanguageName = this.getLabelsSortedByLanguageName(existingLabels, localeCodeToNameMap, config, vreq);
@ -269,19 +267,6 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
config.addFormSpecificData("selectLocale",availableLocalesForAdd); config.addFormSpecificData("selectLocale",availableLocalesForAdd);
config.addFormSpecificData("displayRemoveLink", (numberExistingLabels > 1)); config.addFormSpecificData("displayRemoveLink", (numberExistingLabels > 1));
// get current selected locale
String rangeLang = vreq.getLocale().getLanguage();
if (!vreq.getLocale().getCountry().isEmpty()) {
rangeLang += "-" + vreq.getLocale().getCountry();
}
// check if locale already has an entry (label)
boolean localeEntryExisting = true;
for (HashMap<String, String> tmp : availableLocalesForAdd) {
if (tmp.get("code").equals(rangeLang)) localeEntryExisting = false;
}
config.addFormSpecificData("localeEntryExisting", localeEntryExisting);
config.addFormSpecificData("currentSelectedLocale", rangeLang);
//How do we edit? Will need to see //How do we edit? Will need to see
config.addFormSpecificData("deleteWebpageUrl", "/edit/primitiveDelete"); config.addFormSpecificData("deleteWebpageUrl", "/edit/primitiveDelete");
@ -441,20 +426,21 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
ArrayList<Literal> labels = new ArrayList<Literal>(); ArrayList<Literal> labels = new ArrayList<Literal>();
try { try {
// No longer retrieving language-neutral results here, so that //We want to get the labels for all the languages, not just the display language
// language editing is consistent with other editing forms. ResultSet results = QueryUtils.getLanguageNeutralQueryResults(queryStr, vreq);
// Editable values depend on the interface's locale selector.
ResultSet results = QueryUtils.getQueryResults(queryStr, vreq);
while (results.hasNext()) { while (results.hasNext()) {
QuerySolution soln = results.nextSolution(); QuerySolution soln = results.nextSolution();
Literal nodeLiteral = soln.get("label").asLiteral(); Literal nodeLiteral = soln.get("label").asLiteral();
labels.add(nodeLiteral); labels.add(nodeLiteral);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e, e); log.error(e, e);
} }
return labels; return labels;
} }
//Putting this into a method allows overriding it in subclasses //Putting this into a method allows overriding it in subclasses
@ -468,32 +454,30 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
return template; return template;
} }
//get locales present in list of literals
public List<HashMap<String, String>> getLocales(VitroRequest vreq,
List<Literal> existingLiterals) {
Set<Locale> locales = new HashSet<Locale>();
for(Literal literal : existingLiterals) {
String language = literal.getLanguage();
if(!StringUtils.isEmpty(language)) {
locales.add(LanguageFilteringUtils.languageToLocale(language));
}
}
if (locales.isEmpty()) {
return Collections.emptyList();
}
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
Locale currentLocale = SelectedLocale.getCurrentLocale(vreq);
for (Locale locale : locales) {
try {
list.add(buildLocaleMap(locale, currentLocale));
} catch (FileNotFoundException e) {
log.warn("Can't show locale '" + locale + "': " + e);
}
}
return list;
//get locales
public List<HashMap<String, String>> getLocales(VitroRequest vreq) {
List<Locale> selectables = SelectedLocale.getSelectableLocales(vreq);
if (selectables.isEmpty()) {
return Collections.emptyList();
}
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
Locale currentLocale = SelectedLocale.getCurrentLocale(vreq);
for (Locale locale : selectables) {
try {
list.add(buildLocaleMap(locale, currentLocale));
} catch (FileNotFoundException e) {
log.warn("Can't show the Locale selector for '" + locale
+ "': " + e);
}
}
return list;
} }
public HashMap<String, String> getFullCodeToLanguageNameMap(List<HashMap<String, String>> localesList) { public HashMap<String, String> getFullCodeToLanguageNameMap(List<HashMap<String, String>> localesList) {
HashMap<String, String> codeToLanguageMap = new HashMap<String, String>(); HashMap<String, String> codeToLanguageMap = new HashMap<String, String>();
for(Map<String, String> locale: localesList) { for(Map<String, String> locale: localesList) {

View file

@ -3,20 +3,20 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jena.query.ParameterizedSparqlString;
import org.apache.jena.query.QueryExecution; import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory; import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory; import org.apache.jena.rdf.model.ModelFactory;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.rdf.model.RDFNode; import org.apache.jena.rdf.model.RDFNode;
import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.Individual;
@ -26,8 +26,6 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMa
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils; import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils; 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.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
/** /**
* This is an odd controller that is just drawing a page with links on it. * This is an odd controller that is just drawing a page with links on it.
@ -155,36 +153,16 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n" + "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n" + "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
+ "SELECT DISTINCT ?vcard ?link ?url (MIN(?rank_) AS ?rank) \n" + "SELECT DISTINCT ?vcard ?link ?url ?rank ?typeLabel (group_concat(distinct ?linkLabel;separator=\"/\") as ?label) WHERE { \n"
+ "(MIN(?typeLabel_) AS ?typeLabel) \n"
+ "(group_concat(distinct ?linkLabel;separator=\"/\") as ?label) WHERE { \n"
+ " ?subject <http://purl.obolibrary.org/obo/ARG_2000028> ?vcard . \n" + " ?subject <http://purl.obolibrary.org/obo/ARG_2000028> ?vcard . \n"
+ " ?vcard vcard:hasURL ?link . \n" + " ?vcard vcard:hasURL ?link . \n"
+ " ?link a vcard:URL \n" + " ?link a vcard:URL \n"
+ " OPTIONAL { ?link vcard:url ?url } \n" + " OPTIONAL { ?link vcard:url ?url } \n"
+ " OPTIONAL { ?link rdfs:label ?linkLabel } \n" + " OPTIONAL { ?link rdfs:label ?linkLabel } \n"
+ " OPTIONAL { ?link core:rank ?rank_ } \n" + " OPTIONAL { ?link core:rank ?rank } \n"
+ " OPTIONAL { ?link vitro:mostSpecificType ?type } \n" + " OPTIONAL { ?link vitro:mostSpecificType ?type } \n"
// UQAM-Linguistic-Management Add linguistic control on label + " OPTIONAL { ?type rdfs:label ?typeLabel } \n"
// Try full locale + "} GROUP BY ?rank ?vcard ?link ?url ?typeLabel \n"
+ " OPTIONAL { ?type rdfs:label ?typeLabelPrimary . \n"
+ " FILTER (LANG(?typeLabelPrimary) = ?locale) \n"
+ " } \n"
// Try language only
+ " OPTIONAL { ?type rdfs:label ?typeLabelSecondary . \n"
+ " FILTER (LANG(?typeLabelSecondary) = ?language) \n"
+ " } \n"
// Try the same language in another other locale
+ " OPTIONAL { ?type rdfs:label ?typeLabelTertiary . \n"
+ " FILTER (STRBEFORE(STR(LANG(?typeLabelTertiary)), \"-\") = ?language) \n"
+ " } \n"
// Try any other available label
+ " OPTIONAL { ?type rdfs:label ?typeLabelFallback . \n"
+ " FILTER (LANG(?typeLabelFallback) != ?locale \n"
+ " && LANG(?typeLabelFallback) != ?language) \n"
+ " } \n"
+ " BIND(COALESCE(?typeLabelPrimary, ?typeLabelSecondary, ?typeLabelTertiary, ?typeLabelFallback) AS ?typeLabel_) \n"
+ "} GROUP BY ?vcard ?link ?url \n"
+ " ORDER BY ?rank"; + " ORDER BY ?rank";
@ -197,10 +175,8 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
Model constructedModel = ModelFactory.createDefaultModel(); Model constructedModel = ModelFactory.createDefaultModel();
rdfService.sparqlConstructQuery(constructStr, constructedModel); rdfService.sparqlConstructQuery(constructStr, constructedModel);
/*
* UQAM-Linguistic-Management Adjust the getQuery signature for managing the linguistic context String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(), "subject", subjectUri);
*/
String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(vreq), "subject", subjectUri);
log.debug("Query string is: " + queryStr); log.debug("Query string is: " + queryStr);
QueryExecution qe = QueryExecutionFactory.create(queryStr, constructedModel); QueryExecution qe = QueryExecutionFactory.create(queryStr, constructedModel);
@ -229,16 +205,8 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
return AddEditWebpageFormGenerator.class.getName(); return AddEditWebpageFormGenerator.class.getName();
} }
protected String getQuery(VitroRequest vreq) { protected String getQuery() {
/* return WEBPAGE_QUERY;
* UQAM-Linguistic-Management Adjust the query to the linguistic context
*/
Locale locale = SelectedLocale.getCurrentLocale(vreq);
ParameterizedSparqlString queryPstr = new ParameterizedSparqlString(
WEBPAGE_QUERY);
queryPstr.setLiteral("locale", locale.toString().replace("_", "-"));
queryPstr.setLiteral("language", locale.getLanguage());
return queryPstr.toString();
} }
protected String getTemplate() { protected String getTemplate() {

View file

@ -22,7 +22,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsVi
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode; import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils; import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class OrganizationForTrainingGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{ public class OrganizationForTrainingGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
@ -167,7 +166,7 @@ public class OrganizationForTrainingGenerator extends VivoBaseGenerator impleme
//Add validator //Add validator
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField")); conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
conf.addValidator(new AntiXssValidation()); conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq))); conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
//Adding additional data, specifically edit mode //Adding additional data, specifically edit mode
addFormSpecificData(conf, vreq); addFormSpecificData(conf, vreq);

View file

@ -17,7 +17,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisio
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator
implements EditConfigurationGenerator { implements EditConfigurationGenerator {
@ -257,7 +256,7 @@ public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator
conf.addField(endField.setEditElement(new DateTimeWithPrecisionVTwo( conf.addField(endField.setEditElement(new DateTimeWithPrecisionVTwo(
endField, URI_PRECISION_YEAR, URI_PRECISION_NONE))); endField, URI_PRECISION_YEAR, URI_PRECISION_NONE)));
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq))); conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
conf.addValidator(new AntiXssValidation()); conf.addValidator(new AntiXssValidation());
conf.addValidator(new DateTimeIntervalValidationVTwo("startField", conf.addValidator(new DateTimeIntervalValidationVTwo("startField",
"endField")); "endField"));

View file

@ -20,7 +20,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClasses
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator implements public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator implements
EditConfigurationGenerator { EditConfigurationGenerator {
@ -185,7 +184,7 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField")); conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
conf.addValidator(new AntiXssValidation()); conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingAdvisor", I18n.bundle(vreq))); conf.addValidator(new FirstAndLastNameValidator("existingAdvisor"));
addFormSpecificData(conf, vreq); addFormSpecificData(conf, vreq);
prepare(vreq, conf); prepare(vreq, conf);

View file

@ -20,7 +20,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClasses
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator implements public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator implements
EditConfigurationGenerator { EditConfigurationGenerator {
@ -185,7 +184,7 @@ public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator imp
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField")); conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
conf.addValidator(new AntiXssValidation()); conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingAdvisee", I18n.bundle(vreq))); conf.addValidator(new FirstAndLastNameValidator("existingAdvisee"));
addFormSpecificData(conf, vreq); addFormSpecificData(conf, vreq);
prepare(vreq, conf); prepare(vreq, conf);

View file

@ -17,7 +17,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode; import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils; import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class ProjectHasParticipantGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{ public class ProjectHasParticipantGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
@ -93,7 +92,7 @@ public class ProjectHasParticipantGenerator extends VivoBaseGenerator implement
//Add validator //Add validator
conf.addValidator(new AntiXssValidation()); conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq))); conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
//Adding additional data, specifically edit mode //Adding additional data, specifically edit mode
addFormSpecificData(conf, vreq); addFormSpecificData(conf, vreq);

View file

@ -1,36 +0,0 @@
package edu.cornell.mannlib.vitro.webapp.utilities;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jena.ontology.OntModel;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.ResourceFactory;
import org.apache.jena.rdf.model.Statement;
import org.apache.jena.rdf.model.StmtIterator;
import org.apache.jena.vocabulary.RDFS;
public class Describe {
private static final Log log = LogFactory.getLog(Describe.class.getName());
public static void main(String[] args) {
OntModel model = ModelFactory.createOntologyModel();
model.read("C:\\VIVO-Trad-ecosysteme\\vivo\\home\\rdf\\applicationMetadata\\firsttime\\classgroups_fr_CA.rdf") ;
model.read("C:\\VIVO-Trad-ecosysteme\\vivo\\home\\rdf\\applicationMetadata\\firsttime\\classgroups.rdf") ;
Describe.showVitroClassGroupequipmentLabels(model,"test");
System.out.println("Done!");
}
private static void showVitroClassGroupequipmentLabels(OntModel model, String message) {
String uri = "http://vivoweb.org/ontology#vitroClassGroupequipment";
List<Statement> stmts = model.listStatements(ResourceFactory.createResource(uri), RDFS.label, (RDFNode)null).toList();
for (Iterator iterator = stmts.iterator(); iterator.hasNext();) {
Statement statement = (Statement) iterator.next();
log.debug("\t\t"+message + " " +statement);
}
}
}

View file

@ -12,7 +12,6 @@ import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.semservices.bo.Concept; import edu.cornell.mannlib.semservices.bo.Concept;
import edu.cornell.mannlib.semservices.service.ExternalConceptService; import edu.cornell.mannlib.semservices.service.ExternalConceptService;
import edu.cornell.mannlib.semservices.service.impl.UMLSService;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
/** /**
* Utilities for search * Utilities for search
@ -39,9 +38,7 @@ public class ConceptSearchServiceUtils {
//URL to label //URL to label
public static HashMap<String, VocabSourceDescription> getVocabSources() { public static HashMap<String, VocabSourceDescription> getVocabSources() {
HashMap<String, VocabSourceDescription> map = new HashMap<String, VocabSourceDescription>(); HashMap<String, VocabSourceDescription> map = new HashMap<String, VocabSourceDescription>();
if(UMLSService.configurationFileExists()) { map.put(UMLSVocabSource, new VocabSourceDescription("UMLS", UMLSVocabSource, "http://www.nlm.nih.gov/research/umls/", "Unified Medical Language System"));
map.put(UMLSVocabSource, new VocabSourceDescription("UMLS", UMLSVocabSource, "http://www.nlm.nih.gov/research/umls/", "Unified Medical Language System"));
}
//Commenting out agrovoc for now until implementation is updated //Commenting out agrovoc for now until implementation is updated
map.put(AgrovocVocabSource, new VocabSourceDescription("AGROVOC", AgrovocVocabSource, "http://www.fao.org/agrovoc/", "Agricultural Vocabulary")); map.put(AgrovocVocabSource, new VocabSourceDescription("AGROVOC", AgrovocVocabSource, "http://www.fao.org/agrovoc/", "Agricultural Vocabulary"));
map.put(GemetVocabSource, new VocabSourceDescription("GEMET", GemetVocabSource, "http://www.eionet.europa.eu/gemet", "GEneral Multilingual Environmental Thesaurus")); map.put(GemetVocabSource, new VocabSourceDescription("GEMET", GemetVocabSource, "http://www.eionet.europa.eu/gemet", "GEneral Multilingual Environmental Thesaurus"));
@ -56,7 +53,6 @@ public class ConceptSearchServiceUtils {
//Get the hashmap mapping service name to Service class //Get the hashmap mapping service name to Service class
private static HashMap<String, String> getMapping() { private static HashMap<String, String> getMapping() {
HashMap<String, String> map = new HashMap<String, String>(); HashMap<String, String> map = new HashMap<String, String>();
map.put(UMLSVocabSource, "edu.cornell.mannlib.semservices.service.impl.UMLSService"); map.put(UMLSVocabSource, "edu.cornell.mannlib.semservices.service.impl.UMLSService");
map.put(AgrovocVocabSource, "edu.cornell.mannlib.semservices.service.impl.AgrovocService"); map.put(AgrovocVocabSource, "edu.cornell.mannlib.semservices.service.impl.AgrovocService");
map.put(GemetVocabSource, "edu.cornell.mannlib.semservices.service.impl.GemetService"); map.put(GemetVocabSource, "edu.cornell.mannlib.semservices.service.impl.GemetService");

View file

@ -54,16 +54,10 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
@Override @Override
public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException { public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException {
RDFService rdfService = vitroRequest.getRDFService(); ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(vitroRequest.getRDFService());
rdfService.setVitroRequest(vitroRequest); ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(vitroRequest.getRDFService());
// VisualizationCaches.rebuildAll(rdfService); OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(vitroRequest.getRDFService());
// VisualizationCaches.conceptToLabel.build(rdfService); Map<String, String> organizationLabels = VisualizationCaches.organizationLabels.getNoWait(vitroRequest.getRDFService());
// ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(rdfService);
// UQAM-Bug-Correction Refresh all memory models with appropriate liguistic labels
ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.get(rdfService, true, true);
ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(rdfService);
OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(rdfService);
Map<String, String> organizationLabels = VisualizationCaches.organizationLabels.getNoWait(rdfService);
String data = vitroRequest.getParameter("data"); String data = vitroRequest.getParameter("data");
if (!StringUtils.isEmpty(data)) { if (!StringUtils.isEmpty(data)) {

View file

@ -2,10 +2,8 @@
package edu.cornell.mannlib.vitro.webapp.visualization.utilities; package edu.cornell.mannlib.vitro.webapp.visualization.utilities;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread; import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread;
import edu.cornell.mannlib.vitro.webapp.visualization.model.ConceptLabelMap;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@ -87,69 +85,7 @@ public class CachingRDFServiceExecutor<T> {
if (backgroundTask != null && backgroundTask.isDone()) { if (backgroundTask != null && backgroundTask.isDone()) {
completeBackgroundTask(); completeBackgroundTask();
} }
// If we have cached results
if (cachedResults != null) {
// If the background service exists, and the cache is considered invalid
if (backgroundRDFService != null && resultBuilder.invalidateCache(System.currentTimeMillis() - lastCacheTime)) {
// In most cases, only wait for half a second
long waitFor = 500;
if (backgroundTask == null) {
// Start the background task to refresh the cache
startBackgroundTask(backgroundRDFService);
// As we've just started the background task, allow a wait time of 1 second
waitFor = 1000;
}
// See if we expect it to complete in time, and if so, wait for it
if (allowWaits && isExpectedToCompleteIn(waitFor)) {
completeBackgroundTask(waitFor);
}
}
} else {
// No cached results, so fetch the results using any available RDF service
if (rdfService != null) {
startBackgroundTask(rdfService);
} else if (backgroundRDFService != null) {
startBackgroundTask(backgroundRDFService);
} else {
throw new RuntimeException("Can't execute without an RDF Service");
}
// As there are no cached results, wait for an answer regardless of the RDF service used
completeBackgroundTask();
}
return cachedResults;
}
public synchronized T get(RDFService rdfService, boolean allowWaits, boolean force) {
/*
* UQAM-Bug-Correction
* Forces the regeneration of the result
*/
if (force) {
try {
String backLang = backgroundRDFService.getVitroRequest().getLocale().getLanguage();
String srvLang = rdfService.getVitroRequest().getLocale().getLanguage();
if (!backLang.equals(srvLang)) {
backgroundRDFService.setVitroRequest(rdfService.getVitroRequest());
startBackgroundTask(rdfService);
completeBackgroundTask();
}
} catch (Exception e) {
backgroundRDFService.setVitroRequest(rdfService.getVitroRequest());
startBackgroundTask(rdfService);
completeBackgroundTask();
}
return cachedResults;
}
// First, check if there are results from the previous background task, and update the cache
if (backgroundTask != null && backgroundTask.isDone()) {
completeBackgroundTask();
}
// If we have cached results // If we have cached results
if (cachedResults != null) { if (cachedResults != null) {
// If the background service exists, and the cache is considered invalid // If the background service exists, and the cache is considered invalid

View file

@ -9,8 +9,6 @@ import org.apache.jena.rdf.model.Literal;
import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory; import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.Resource; import org.apache.jena.rdf.model.Resource;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer; import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants; import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
@ -234,37 +232,13 @@ final public class VisualizationCaches {
new CachingRDFServiceExecutor.RDFServiceCallable<Map<String, String>>(visualizationAffinity) { new CachingRDFServiceExecutor.RDFServiceCallable<Map<String, String>>(visualizationAffinity) {
@Override @Override
protected Map<String, String> callWithService(RDFService rdfService) throws Exception { protected Map<String, String> callWithService(RDFService rdfService) throws Exception {
// get current selected language tag
VitroRequest vreq = rdfService.getVitroRequest();
String langCtx = "en-US"; // set default
String language = "en"; // set fallback language
try {
langCtx = language = vreq.getLocale().getLanguage();
if (!vreq.getLocale().getCountry().isEmpty()) {
langCtx += "-" + vreq.getLocale().getCountry();
}
} catch (Exception e) { }
String query = QueryConstants.getSparqlPrefixQuery() + String query = QueryConstants.getSparqlPrefixQuery() +
"SELECT ?org (Min(?orgLabel_) AS ?orgLabel) \n" + "SELECT ?org ?orgLabel\n" +
"WHERE\n" + "WHERE\n" +
"{\n" + "{\n" +
" ?org a foaf:Organization \n" + " ?org a foaf:Organization .\n" +
" OPTIONAL { ?org rdfs:label ?orgLabelPrimary . \n" + " ?org rdfs:label ?orgLabel .\n" +
" FILTER (LANG(?orgLabelPrimary) = '" + langCtx + "') \n" + "}\n";
"} \n" +
" OPTIONAL { ?org rdfs:label ?orgLabelSecondary . \n" +
" FILTER (LANG(?orgLabelSecondary) = '" + language + "') \n" +
"} \n" +
" OPTIONAL { ?org rdfs:label ?orgLabelTertiary .\n" +
" FILTER (STRBEFORE(STR(LANG(?orgLabelTertiary)), '-') = '" + language + "') \n" +
"} \n" +
" OPTIONAL { ?org rdfs:label ?orgLabelFallback .\n" +
" FILTER (LANG(?orgLabelFallback) != '" + langCtx + "' \n" +
" && LANG(?orgLabelFallback) != '" + language + "' ) \n" +
"} \n" +
"BIND(COALESCE(?orgLabelPrimary, ?orgLabelSecondary, ?orgLabelTertiary, ?orgLabelFallback) AS ?orgLabel_) \n" +
"} GROUP BY ?org \n";
final Map<String, String> map = new HashMap<>(); final Map<String, String> map = new HashMap<>();
@ -416,16 +390,6 @@ final public class VisualizationCaches {
new CachingRDFServiceExecutor.RDFServiceCallable<ConceptLabelMap>() { new CachingRDFServiceExecutor.RDFServiceCallable<ConceptLabelMap>() {
@Override @Override
protected ConceptLabelMap callWithService(RDFService rdfService) throws Exception { protected ConceptLabelMap callWithService(RDFService rdfService) throws Exception {
VitroRequest vreq = rdfService.getVitroRequest();
String langCtx = "en-US";
// UQAM-Optimization Adjust to linguistic context
try {
langCtx = vreq.getLocale().getLanguage();
if (!vreq.getLocale().getCountry().isEmpty()) {
langCtx += "-" + vreq.getLocale().getCountry();
}
} catch (Exception e) {
}
String query = QueryConstants.getSparqlPrefixQuery() + String query = QueryConstants.getSparqlPrefixQuery() +
"SELECT ?concept ?label\n" + "SELECT ?concept ?label\n" +
"WHERE\n" + "WHERE\n" +
@ -434,13 +398,13 @@ final public class VisualizationCaches {
" ?person core:hasResearchArea ?concept .\n" + " ?person core:hasResearchArea ?concept .\n" +
" ?concept a skos:Concept .\n" + " ?concept a skos:Concept .\n" +
" ?concept rdfs:label ?label .\n" + " ?concept rdfs:label ?label .\n" +
" FILTER (lang(?label) = '" + langCtx+"' ) \n" +
"}\n"; "}\n";
// final Map<String, String> map = new HashMap<>(); // final Map<String, String> map = new HashMap<>();
final ConceptLabelMap map = new ConceptLabelMap(); final ConceptLabelMap map = new ConceptLabelMap();
rdfService.sparqlSelectQuery(query, new ResultSetConsumer() { rdfService.sparqlSelectQuery(query, new ResultSetConsumer() {
@Override
protected void processQuerySolution(QuerySolution qs) { protected void processQuerySolution(QuerySolution qs) {
String conceptURI = qs.getResource("concept").getURI().intern(); String conceptURI = qs.getResource("concept").getURI().intern();
String label = qs.getLiteral("label").getString().intern(); String label = qs.getLiteral("label").getString().intern();

View file

@ -2,40 +2,29 @@
package org.vivoweb.webapp.sitemap; package org.vivoweb.webapp.sitemap;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jena.query.QuerySolution; import org.apache.jena.query.QuerySolution;
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet; import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer; import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants; import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
import org.apache.commons.io.IOUtils;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@WebServlet(name = "SiteMapServlet", urlPatterns = {"/robots.txt","/sitemap.xml"}) @WebServlet(name = "SiteMapServlet", urlPatterns = {"/robots.txt","/sitemap.xml"})
public class SiteMapServlet extends VitroHttpServlet { public class SiteMapServlet extends VitroHttpServlet {
private static final int MAX_URLS = 50000; // max URLs per sitemap
private static final Log log = LogFactory.getLog(SiteMapServlet.class);
@Override @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
throws ServletException, IOException {
String requestURI = request.getRequestURI(); String requestURI = request.getRequestURI();
if (requestURI != null) { if (requestURI != null) {
@ -71,7 +60,7 @@ public class SiteMapServlet extends VitroHttpServlet {
"WHERE\n" + "WHERE\n" +
"{\n" + "{\n" +
" ?person a foaf:Person .\n" + " ?person a foaf:Person .\n" +
"} LIMIT " + MAX_URLS + "\n"; "}\n";
final VitroRequest vreq = new VitroRequest(request); final VitroRequest vreq = new VitroRequest(request);
final ServletOutputStream out = response.getOutputStream(); final ServletOutputStream out = response.getOutputStream();
@ -79,31 +68,26 @@ public class SiteMapServlet extends VitroHttpServlet {
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
out.println("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">"); out.println("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">");
List<String> personURIs = new ArrayList<String>();
try { try {
vreq.getRDFService().sparqlSelectQuery(query, new ResultSetConsumer() { vreq.getRDFService().sparqlSelectQuery(query, new ResultSetConsumer() {
@Override @Override
protected void processQuerySolution(QuerySolution qs) { protected void processQuerySolution(QuerySolution qs) {
personURIs.add(qs.getResource("person").getURI()); String person = qs.getResource("person").getURI();
String profileUrl = UrlBuilder.getIndividualProfileUrl(person, vreq);
if (!StringUtils.isEmpty(profileUrl)) {
try {
out.println(" <url>");
out.println(" <loc>" + schemeAndServer + profileUrl + "</loc>");
out.println(" <changefreq>weekly</changefreq>");
out.println(" </url>");
} catch (Exception e) {
}
}
} }
}); });
} catch (RDFServiceException rse) { } catch (RDFServiceException rse) {
log.error(rse, rse);
}
for(String person : personURIs) {
String profileUrl = UrlBuilder.getIndividualProfileUrl(person, vreq);
if (!StringUtils.isEmpty(profileUrl)) {
try {
out.println(" <url>");
out.println(" <loc>" + schemeAndServer + profileUrl + "</loc>");
out.println(" <changefreq>weekly</changefreq>");
out.println(" </url>");
} catch (Exception e) {
log.error(e, e);
}
}
} }
out.println("</urlset>"); out.println("</urlset>");
@ -120,8 +104,7 @@ public class SiteMapServlet extends VitroHttpServlet {
if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) { if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append(scheme).append("://").append(serverName); builder.append(scheme).append("://").append(serverName);
if (("http".equalsIgnoreCase(scheme) && serverPort != 80) if (("http".equalsIgnoreCase(scheme) && serverPort != 80) || ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
|| ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
builder.append(":").append(serverPort); builder.append(":").append(serverPort);
} }

View file

@ -7,12 +7,6 @@ import edu.cornell.mannlib.vitro.webapp.i18n.VitroResourceBundle;
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener; import javax.servlet.ServletContextListener;
/**
* Configures VIVO to look for i18n properties files prefixed with 'vivo_'.
* This listener must be run before any other code that uses resource bundles.
* As this listener does not depend on any others, it should be run at or near
* the top of the list in startup_listeners.txt.
*/
public class i18nSetup implements ServletContextListener { public class i18nSetup implements ServletContextListener {
@Override @Override

View file

@ -1,36 +0,0 @@
version: '3.2'
services:
solr:
image: vivoweb/vivo-solr:latest
environment:
- RESET_CORE=${RESET_CORE}
- VERBOSE=${VERBOSE}
ports:
- 8983:8983
networks:
- vivo
tomcat:
container_name: vivo
hostname: vivo
build:
context: ./
dockerfile: Dockerfile
args:
- VIVO_DIR=/usr/local/vivo/home
- TDB_FILE_MODE=direct
- SOLR_URL=http://solr:8983/solr/vivocore
environment:
- RESET_HOME=${RESET_HOME}
- VERBOSE=${VERBOSE}
ports:
- 8080:8080
volumes:
- ${LOCAL_VIVO_HOME}:/usr/local/vivo/home
networks:
- vivo
networks:
vivo:

View file

@ -1,16 +1,19 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-home</artifactId> <artifactId>vivo-home</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<parent> <parent>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-project</artifactId> <artifactId>vivo-project</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<relativePath>..</relativePath> <relativePath>..</relativePath>
</parent> </parent>

View file

@ -82,10 +82,10 @@
# ---------------------------- # ----------------------------
# #
# Content triples source module: holds data contents # Content triples source module: holds data contents
# The TDB-based implementation is the default option. It reads its parameters # The SDB-based implementation is the default option. It reads its parameters
# from the runtime.properties file, for backward compatibility. # from the runtime.properties file, for backward compatibility.
# #
# Other implementations are based on an SDB instance, a "standard" SPARQL # Other implementations are based on a local TDB instance, a "standard" SPARQL
# endpoint, or a Virtuoso endpoint, with parameters as shown. # endpoint, or a Virtuoso endpoint, with parameters as shown.
# #

View file

@ -10,7 +10,7 @@
# For more information on specific properties, see the configuration reference # For more information on specific properties, see the configuration reference
# or installation options section of the technical documentation for the # or installation options section of the technical documentation for the
# version of VIVO you are running: # version of VIVO you are running:
# https://wiki.lyrasis.org/display/VIVO/VIVO+Technical+Documentation # https://wiki.duraspace.org/display/VIVO/VIVO+Technical+Documentation
# #
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -39,6 +39,7 @@ Vitro.defaultNamespace = http://vivo.mydomain.edu/individual/
# #
rootUser.emailAddress = vivo_root@mydomain.edu rootUser.emailAddress = vivo_root@mydomain.edu
# #
# Argon2 password hashing parameters for time, memory and parallelism required to # Argon2 password hashing parameters for time, memory and parallelism required to
# compute a hash. # compute a hash.
@ -71,23 +72,20 @@ argon2.time = 1000
# Email parameters which VIVO can use to send mail. If these are left empty, # Email parameters which VIVO can use to send mail. If these are left empty,
# the "Contact Us" form will be disabled and users will not be notified of # the "Contact Us" form will be disabled and users will not be notified of
# changes to their accounts. # changes to their accounts.
# Example:
# email.smtpHost = smtp.mydomain.edu
# email.replyTo = vivoAdmin@mydomain.edu
# #
# email.smtpHost = email.smtpHost = smtp.mydomain.edu
# email.replyTo = email.replyTo = vivoAdmin@mydomain.edu
# #
# URL of Solr context used in local VIVO search. This will usually consist of: # URL of Solr context used in local VIVO search. This will usually consist of:
# scheme + server_name + port + "solr" + solr_core_name # scheme + server_name + port + vivo_webapp_name + "solr"
# In a standard Solr installation, the Solr service will be available on port # In the standard installation, the Solr context will be on the same server as VIVO,
# 8983. The path will be /solr followed by the name used when adding a core # and in the same Tomcat instance. The path will be the VIVO webapp.name (specified
# for VIVO. # in build.properties) + "solr"
# Example: # Example:
# vitro.local.solr.url = http://localhost:8983/solr/vivocore # vitro.local.solr.url = http://localhost:8080/vivosolr
# #
vitro.local.solr.url = http://localhost:8983/solr/vivocore vitro.local.solr.url = http://localhost:8080/vivosolr
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -114,22 +112,6 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
# #
#externalAuth.netIdHeaderName = remote_userID #externalAuth.netIdHeaderName = remote_userID
# -----------------------------------------------------------------------------
# OPTIMIZING LIST VIEW QUERIES
# -----------------------------------------------------------------------------
#
# Include sections between <precise-subquery></precise-subquery>
# tags when executing 'list view' queries that retrieve data
# for property lists on profile pages.
#
# Including these optional sections does not change the query
# semantics, but may improve performance.
#
# Default is true if not set.
# (Prior to v1.12, default was true for SDB and false for TDB.)
#
# listview.usePreciseSubquery = true
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# TUNING THE DATABASE CONNECTION POOL # TUNING THE DATABASE CONNECTION POOL
@ -148,6 +130,7 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
# #
# VitroConnection.DataSource.pool.maxIdle = 10 # VitroConnection.DataSource.pool.maxIdle = 10
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# USING A DIFFERENT DATABASE # USING A DIFFERENT DATABASE
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -219,8 +202,8 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
# #
# A list of supported languages or Locales that the user may choose to # A list of supported languages or Locales that the user may choose to
# use instead of the one specified by the browser. The selected language(s) # use instead of the one specified by the browser. Selection images must
# must exist in the VIVO-languages repository. This affects # be available in the i18n/images directory of the theme. This affects
# RDF data retrieved from the model, if RDFService.languageFilter is true. # RDF data retrieved from the model, if RDFService.languageFilter is true.
# This also affects the text of pages that have been modified to support # This also affects the text of pages that have been modified to support
# multiple languages. # multiple languages.
@ -234,43 +217,26 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
# ORCID INTEGRATION # ORCID INTEGRATION
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# The Client ID from your ORCID credentials
# When your application for credentials is accepted, you will receive a Client
# ID to be used in communications with the API. If you apply for sandbox
# credentials first, and then production credentials, you will likely receive
# two different Client IDs.
# orcid.clientId = 0000-0000-0000-000X # orcid.clientId = 0000-0000-0000-000X
# The Client Secret from your ORCID credentials
# When your application for credentials is accepted, you will receive a Client
# Secret to be used in communications with the API. If you apply for sandbox
# credentials first, and then production credentials, you will likely receive
# two different Client Secrets.
# orcid.clientPassword = 00000000-0000-0000-0000-000000000000 # orcid.clientPassword = 00000000-0000-0000-0000-000000000000
# The base URL for your VIVO application, as seen from outside. #
# VIVO will use this to construct a callback URL that the ORCID API can use to # The orcid.webappBaseUrl must end in a front slash (/)
# return control to VIVO. The actual callback URL will be the string you # if it includes a path past the domain and (if required) port.
# provide here with the suffix of /orcid/callback added at the end. #
# The orcid.webappBaseUrl must end in a front slash (/)
# if it includes a path past the domain and (if required) port.
#
# orcid.webappBaseUrl = http://vivo.mydomain.edu/vivo/ # orcid.webappBaseUrl = http://vivo.mydomain.edu/vivo/
# orcid.externalIdCommonName = VIVO Cornell Identifier # orcid.externalIdCommonName = VIVO Cornell Identifier
# The version of ORCIDs API protocol that VIVO will expect. Currently, the # 1.2, 2.0
# only supported version is 2.0.
# orcid.apiVersion = 2.0 # orcid.apiVersion = 2.0
# The entry point for ORCID's public API. # release, sandbox
# This changes, depending on whether you are using the sandbox API or the
# production API. Value is either release or sandbox.
# orcid.api = sandbox # orcid.api = sandbox
# Specify the type of API access that you have - public or member # Specify the type of API access that you have - public or member
# public - only allows you to confirm ORCID IDs # public - only allows you to confirm ORCID IDs
# member - allows VIVO to write a link to the VIVO profile in the ORCID record # member - allows VIVO to write a link to the VIVO profile in the ORCID record
# If you only have a public API key, ensure that you have entered public here # If you only have a public API key, ensure that you have entered public here
#orcid.apiLevel = public #orcid.apiLevel = public
@ -426,15 +392,7 @@ Vitro.reconcile.defaultTypeList = http://vivoweb.org/ontology/core#Role, core:Ro
# If you do not wish to use the claiming interface, set this property to nothing (empty) # If you do not wish to use the claiming interface, set this property to nothing (empty)
createAndLink.providers = doi, pmid createAndLink.providers = doi, pmid
# Triple Pattern Fragments is a very fast, very simple means for querying a # Triple pattern fragments is a very fast, very simple means for querying a triple store.
# triple store. The Triple Pattern Fragments API in VIVO puts little load on # The triple pattern fragments API in VIVO puts little load on the server, providing a simple means for getting data from the triple store. The API has a web interface for manual use, can be used from the command line via curl, and can be used by programs.
# the server, providing a simple means for getting data from the triple store.
# The API has a web interface for manual use, can be used from the command
# line via curl, and can be used by programs.
#
# VIVO's Triple Pattern Fragments API does not require authentication and
# makes the full RDF graph available regardless of display or publish levels
# set on particular properties. Enable Triple Pattern Fragments only if your
# VIVO does not contain restricted data that should not be shared with others.
# #
# tpf.activeFlag = true # tpf.activeFlag = true

View file

@ -23,8 +23,7 @@ display:academicDeptsDataGetter
WHERE WHERE
{ {
?theURI a vivo:AcademicDepartment . ?theURI a vivo:AcademicDepartment .
?theURI rdfs:label ?label . ?theURI rdfs:label ?label
FILTER (lang(?label) = '?country' ) .
} }
""" . """ .

View file

@ -23,7 +23,7 @@
searchIndex:documentBuilding.DocumentModifier , searchIndex:documentBuilding.DocumentModifier ,
searchIndex:extensions.LabelsAcrossContextNodes ; searchIndex:extensions.LabelsAcrossContextNodes ;
rdfs:label "Labels across relatedBy/relates" ; rdfs:label "Labels across relatedBy/relates" ;
:appliesToContextNodeType "http://vivoweb.org/ontology/core#Relationship" ; :hasTypeRestriction "http://vivoweb.org/ontology/core#Relationship" ;
:hasIncomingProperty "http://vivoweb.org/ontology/core#relatedBy" ; :hasIncomingProperty "http://vivoweb.org/ontology/core#relatedBy" ;
:hasOutgoingProperty "http://vivoweb.org/ontology/core#relates" . :hasOutgoingProperty "http://vivoweb.org/ontology/core#relates" .
@ -117,22 +117,6 @@
} }
""" . """ .
# URI finder that will find the relevant person to update when the
# property linking to the email or preferred title resource is removed
:vivoUriFinder_VCard_2
a searchIndex:indexing.IndexingUriFinder ,
searchIndex:indexing.SelectQueryUriFinder ;
rdfs:label "Preferred title / email person URI finder #2" ;
:hasPredicateRestriction "http://www.w3.org/2006/vcard/ns#hasTitle" ;
:hasPredicateRestriction "http://www.w3.org/2006/vcard/ns#hasEmail" ;
:hasSelectQuery """
PREFIX obo: <http://purl.obolibrary.org/obo/>
SELECT ?uri
WHERE {
?uri obo:ARG_2000028 ?subject .
}
""" .
:vivodocumentModifier_PreferredTitle :vivodocumentModifier_PreferredTitle
a searchIndex:documentBuilding.SelectQueryDocumentModifier , a searchIndex:documentBuilding.SelectQueryDocumentModifier ,
searchIndex:documentBuilding.DocumentModifier ; searchIndex:documentBuilding.DocumentModifier ;

View file

@ -0,0 +1,24 @@
# $This file is distributed under the terms of the license in LICENSE$
@prefix about: <http://vitro.mannlib.cornell.edu/ns/default/about#> .
about:ABOUTDG
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.FixedHTMLDataGetter> ;
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#htmlValue>
"""<h2>About VIVO</h2>
<div class=\"pageGroupBody\" id=\"aboutText\"><p>The VIVO application enables the discovery of researchers across institutions. Participants in the network include institutions with local installations of VIVO or those with research discovery and profiling applications that can provide semantic web-compliant data. The information accessible through VIVO's search and browse capability will therefore reside and be controlled locally, within institutional VIVOs or other semantic web-compliant applications.</p>
<p>VIVO is an open source semantic web application originally developed and implemented at Cornell. When installed and populated with content at an institution, it enables the discovery of research and scholarship across disciplines at that institution. VIVO supports browsing and a search function which returns faceted results for rapid retrieval of desired information. Content in any local VIVO installation may be maintained manually or brought into the database in automated ways from local systems of record, such as human resources, scholarships, grants, course, and faculty activity databases.</p>
<p>See more information on the <a href=\"http://vivoweb.org\">VIVO Project</a>.</p></div>
"""@en ;
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#saveToVar>
"aboutPage" .
about:ABOUTPAGE
a <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#Page> ;
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#hasDataGetter>
about:ABOUTDG ;
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#title>
"About Page" ;
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#urlMapping>
"/about" .

View file

@ -14,6 +14,7 @@
display:DefaultMenu display:DefaultMenu
a display:MainMenu ; a display:MainMenu ;
rdfs:label "Default Menu" ;
display:hasElement display:EventsMenuItem ; display:hasElement display:EventsMenuItem ;
display:hasElement display:HomeMenuItem ; display:hasElement display:HomeMenuItem ;
display:hasElement display:OrganizationsMenuItem ; display:hasElement display:OrganizationsMenuItem ;
@ -26,36 +27,43 @@ display:DefaultMenu
display:HomeMenuItem display:HomeMenuItem
a display:NavigationElement ; a display:NavigationElement ;
display:menuPosition 1; display:menuPosition 1;
display:linkText "Home";
display:toPage display:Home . display:toPage display:Home .
display:PeopleMenuItem display:PeopleMenuItem
a display:NavigationElement ; a display:NavigationElement ;
display:menuPosition 2; display:menuPosition 2;
display:linkText "People";
display:toPage display:People . display:toPage display:People .
display:OrganizationsMenuItem display:OrganizationsMenuItem
a display:NavigationElement ; a display:NavigationElement ;
display:menuPosition 3; display:menuPosition 3;
display:linkText "Organizations";
display:toPage display:Organizations . display:toPage display:Organizations .
display:ResearchMenuItem display:ResearchMenuItem
a display:NavigationElement ; a display:NavigationElement ;
display:menuPosition 4; display:menuPosition 4;
display:linkText "Research";
display:toPage display:Research . display:toPage display:Research .
display:EventsMenuItem display:EventsMenuItem
a display:NavigationElement ; a display:NavigationElement ;
display:menuPosition 5; display:menuPosition 5;
display:linkText "Events";
display:toPage display:Events . display:toPage display:Events .
display:CapabilityMapMenuItem display:CapabilityMapMenuItem
a display:NavigationElement ; a display:NavigationElement ;
display:menuPosition 6; display:menuPosition 6;
display:linkText "Capability Map";
display:toPage display:CapabilityMap . display:toPage display:CapabilityMap .
display:Home display:Home
a display:HomePage ; a display:HomePage ;
a display:Page ; a display:Page ;
display:title "Home" ;
display:urlMapping "/" ; display:urlMapping "/" ;
display:hasDataGetter display:homeDataGetter; display:hasDataGetter display:homeDataGetter;
display:cannotDeletePage "true" . display:cannotDeletePage "true" .
@ -64,6 +72,7 @@ display:Events
a display:Page ; a display:Page ;
a display:ClassGroupPage; a display:ClassGroupPage;
display:forClassGroup vivoweb:vitroClassGroupevents ; display:forClassGroup vivoweb:vitroClassGroupevents ;
display:title "Events" ;
display:urlMapping "/events" ; display:urlMapping "/events" ;
display:hasDataGetter display:eventsDataGetter . display:hasDataGetter display:eventsDataGetter .
@ -71,6 +80,7 @@ display:Organizations
a display:Page ; a display:Page ;
a display:ClassGroupPage; a display:ClassGroupPage;
display:forClassGroup vivoweb:vitroClassGrouporganizations ; display:forClassGroup vivoweb:vitroClassGrouporganizations ;
display:title "Organizations" ;
display:urlMapping "/organizations"; display:urlMapping "/organizations";
display:hasDataGetter display:organizationsDataGetter . display:hasDataGetter display:organizationsDataGetter .
@ -78,6 +88,7 @@ display:People
a display:Page ; a display:Page ;
a display:ClassGroupPage; a display:ClassGroupPage;
display:forClassGroup vivoweb:vitroClassGrouppeople ; display:forClassGroup vivoweb:vitroClassGrouppeople ;
display:title "People" ;
display:urlMapping "/people" ; display:urlMapping "/people" ;
display:hasDataGetter display:peopleDataGetter . display:hasDataGetter display:peopleDataGetter .
@ -85,11 +96,13 @@ display:Research
a display:Page ; a display:Page ;
a display:ClassGroupPage; a display:ClassGroupPage;
display:forClassGroup vivoweb:vitroClassGrouppublications ; display:forClassGroup vivoweb:vitroClassGrouppublications ;
display:title "Research" ;
display:urlMapping "/research" ; display:urlMapping "/research" ;
display:hasDataGetter display:researchDataGetter . display:hasDataGetter display:researchDataGetter .
display:CapabilityMap display:CapabilityMap
a display:Page ; a display:Page ;
display:title "Capability Map" ;
display:urlMapping "/vis/capabilitymap" ; display:urlMapping "/vis/capabilitymap" ;
display:hasDataGetter display:capabilityMapDataGetter . display:hasDataGetter display:capabilityMapDataGetter .

View file

@ -4763,8 +4763,9 @@ use one freetextKeyword assertion for each keyword or phrase.</obo:IAO_0000112>
<!-- http://vivoweb.org/ontology/core#researcherId --> <!-- http://vivoweb.org/ontology/core#researcherId -->
<owl:DatatypeProperty rdf:about="http://vivoweb.org/ontology/core#researcherId"> <owl:DatatypeProperty rdf:about="http://vivoweb.org/ontology/core#researcherId">
<rdfs:label xml:lang="en">ResearcherID</rdfs:label> <rdfs:label xml:lang="en">ISI Researcher ID</rdfs:label>
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ResearcherID is a Clarivate project where researchers have a place to manage and share their professional information. It will allow them to solve author identity issues while simultaneously adding dynamic citation metrics and collaboration networks to your personal profile. http://www.researcherid.com/</obo:IAO_0000112> <obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">RearcherID is a Thomson Reuters project where researchers have a place to manage and share their professional information. It will allow them to solve author identity issues while simultaneously adding dynamic citation metrics and collaboration networks to your personal profile.
Definition source: http://isiwebofknowledge.com/researcherid/</obo:IAO_0000112>
<rdfs:subPropertyOf rdf:resource="http://vivoweb.org/ontology/core#identifier"/> <rdfs:subPropertyOf rdf:resource="http://vivoweb.org/ontology/core#identifier"/>
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/> <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
</owl:DatatypeProperty> </owl:DatatypeProperty>
@ -5981,32 +5982,6 @@ To enable other Gender/Sex codes to be used, this dataproperty has range URI. Th
<!-- http://purl.obolibrary.org/obo/BCO_0000003 -->
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BCO_0000003">
<rdfs:label xml:lang="en">Data Collection Process</rdfs:label>
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CollectionProcess"/>
<obo:IAO_0000112 xml:lang="en">Observing and recording the presence or absence of butterflies during a transect walk.; A trip camera capture of an image of a jaguar is an observation, because it is &quot;selected&quot; by the camera as worthy of obsevation simply by virtue of moving in front of the camera.; Seeing three pelicans flying overhead on Christmas day and report them as part of the Christmas Bird Count.</obo:IAO_0000112>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000125"/>
<obo:IAO_0000115 xml:lang="en">A process in which a person or machine sees or detects a material entity and selects it as worthy of observation, and which has as output an information content entity about the selected material entity.</obo:IAO_0000115>
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
<vitro:descriptionAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A collection process in which an information content entity is collected for research or scholarly purposes. The immediate use case is recording observations of taxa (presence/absence). Need to figure out how this relates to OBI assay OBI:0000070. maybe has broader synonym OBI:0000070</vitro:descriptionAnnot>
</owl:Class>
<!-- http://purl.obolibrary.org/obo/BCO_0000042 -->
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BCO_0000042">
<rdfs:label xml:lang="en">Taxonomic Identification Process</rdfs:label>
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#IdentificationProcess"/>
<obo:IAO_0000112 xml:lang="en">Using a key to identify a plant in the field.; Using DNA barcoding to identify a plant species.; Associating a museum specimen with a specific taxonomic concept based on its characters.; Using BLAST to identify the taxa present in an environmental (metagenomic) sample.</obo:IAO_0000112>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000125"/>
<obo:IAO_0000115 xml:lang="en">A curation process in which a taxonomic name is appied to a biological entity to denote membership in a taxon.</obo:IAO_0000115>
</owl:Class>
<!-- http://purl.obolibrary.org/obo/BFO_0000001 --> <!-- http://purl.obolibrary.org/obo/BFO_0000001 -->
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BFO_0000001"> <owl:Class rdf:about="http://purl.obolibrary.org/obo/BFO_0000001">
@ -9779,20 +9754,6 @@ This class allows for linking an author to a publication while indicating inform
<!-- http://vivoweb.org/ontology/core#GeoreferencingProcess -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GeoreferencingProcess">
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
<obo:IAO_0000111>Georeferenced</obo:IAO_0000111>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
<obo:IAO_0000115 xml:lang="en">A curation process in which a material entity is annotated with geo-coordinates to indicate the location of a collection</obo:IAO_0000115>
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
<rdfs:label xml:lang="en">Georeferencing Process</rdfs:label>
</owl:Class>
<!-- http://vivoweb.org/ontology/core#GovernmentAgency --> <!-- http://vivoweb.org/ontology/core#GovernmentAgency -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GovernmentAgency"> <owl:Class rdf:about="http://vivoweb.org/ontology/core#GovernmentAgency">
@ -9885,21 +9846,6 @@ This class allows for linking an author to a publication while indicating inform
<!-- http://vivoweb.org/ontology/core#IdentificationProcess -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#IdentificationProcess">
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
<obo:IAO_0000111>Identified</obo:IAO_0000111>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
<obo:IAO_0000115 xml:lang="en">A curation process in which a term is appied to a material entity to denote its type or kind</obo:IAO_0000115>
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
<vitro:descriptionAnnot>This is intended to apply to a wide variety of material entities, not just biological specimens.</vitro:descriptionAnnot>
<rdfs:label xml:lang="en">Identification Process</rdfs:label>
</owl:Class>
<!-- http://vivoweb.org/ontology/core#Institute --> <!-- http://vivoweb.org/ontology/core#Institute -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#Institute"> <owl:Class rdf:about="http://vivoweb.org/ontology/core#Institute">
@ -10082,21 +10028,6 @@ This class allows for linking an author to a publication while indicating inform
<!-- http://vivoweb.org/ontology/core#MeasurementProcess -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MeasurementProcess">
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
<obo:IAO_0000111>Measured</obo:IAO_0000111>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
<obo:IAO_0000115 xml:lang="en">A curation process in which data are collected about a specimen in a collection</obo:IAO_0000115>
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
<vitro:descriptionAnnot>possibly has broader synonym OBI assay OBI:0000070 because all measurement processes will be assays, but not all assays will be performed on a material entity in a collection</vitro:descriptionAnnot>
<rdfs:label xml:lang="en">Measurement Process</rdfs:label>
</owl:Class>
<!-- http://vivoweb.org/ontology/core#MedicalResidency --> <!-- http://vivoweb.org/ontology/core#MedicalResidency -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MedicalResidency"> <owl:Class rdf:about="http://vivoweb.org/ontology/core#MedicalResidency">

View file

@ -1,20 +1,6 @@
This directory contains ontology "TBox" files with class and property This directory contains ontology "TBox" files with class and property definitions.
definitions or annotations that are intended to be editable in the VIVO GUI. These are loaded by the VIVO application when it starts for the first time, after
the initial installation or after an upgrade installation that involves changes
These files are loaded by the VIVO application when it starts for the first time to these files.
and during later restarts if the contents have changed. A triple is updated
if there is no conflicting value for the same subject and predicate that was
added to the triple store via the GUI or data ingest (e.g. SPARQL UPDATE).
The file vitroAnnotations.n3 contains triples with predicates in the vitro
namespace and objects that are not literals with language tags.
The VIVO-languages project contains additional language-specific
vitroAnnotations.n3 files where all of the triples contain language-tagged
literals.
VIVO-languages also provides additional annotation files
(e.g. initialTBoxAnnotations_en_US.n3) containing triples with predicates
in ontologies/voabularies outside the vitro namespace (e.g. rdfs:label).
See ../filegraph/README.md for more information about "TBox" files. See ../filegraph/README.md for more information about "TBox" files.

View file

@ -1,6 +1,5 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" <settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<profiles> <profiles>
<profile> <profile>

View file

@ -7,13 +7,13 @@
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-installer-home</artifactId> <artifactId>vivo-installer-home</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<parent> <parent>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-installer</artifactId> <artifactId>vivo-installer</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<relativePath>..</relativePath> <relativePath>..</relativePath>
</parent> </parent>
@ -24,34 +24,6 @@
</properties> </properties>
<profiles> <profiles>
<profile>
<id>package</id>
<activation>
<property><name>vivo-dir</name></property>
</activation>
<build>
<finalName>${app-name}</finalName>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/home.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile> <profile>
<id>install</id> <id>install</id>
<activation> <activation>
@ -136,11 +108,11 @@
<type>tar.gz</type> <type>tar.gz</type>
</dependency> </dependency>
<!-- Dependency for multilingual support --> <!-- Dependency for multilingual support -->
<dependency> <!-- dependency>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-languages-home-core</artifactId> <artifactId>vivo-languages-home</artifactId>
<version>${project.version}</version> <version>[2.0.0,2.1.0)</version>
<type>tar.gz</type> <type>tar.gz</type>
</dependency> </dependency -->
</dependencies> </dependencies>
</project> </project>

View file

@ -7,13 +7,12 @@
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-installer</artifactId> <artifactId>vivo-installer</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>VIVO Installer</name> <name>VIVO Installer</name>
<properties> <properties>
<app-name>vivo</app-name>
<vitro-version>${project.version}</vitro-version> <vitro-version>${project.version}</vitro-version>
<maven-site-plugin.skip>true</maven-site-plugin.skip> <maven-site-plugin.skip>true</maven-site-plugin.skip>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@ -42,6 +41,12 @@
<skip>true</skip> <skip>true</skip>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins> </plugins>
<pluginManagement> <pluginManagement>
<plugins> <plugins>
@ -65,6 +70,10 @@
<artifactId>maven-dependency-plugin</artifactId> <artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version> <version>2.10</version>
</plugin> </plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin> <plugin>
<artifactId>maven-enforcer-plugin</artifactId> <artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version> <version>1.4.1</version>
@ -219,21 +228,6 @@
</plugins> </plugins>
</build> </build>
</profile> </profile>
<profile>
<id>skip</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles> </profiles>
<distributionManagement> <distributionManagement>
@ -241,14 +235,6 @@
<id>vivo-installer</id> <id>vivo-installer</id>
<url>http://vivo-project.github.io/</url> <url>http://vivo-project.github.io/</url>
</site> </site>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement> </distributionManagement>
<reporting> <reporting>
@ -272,7 +258,7 @@
<repository> <repository>
<id>vivo-dependencies</id> <id>vivo-dependencies</id>
<name>VIVO Dependencies</name> <name>VIVO Dependencies</name>
<url>https://raw.github.com/vivo-project/dependencies/main/</url> <url>https://raw.github.com/vivo-project/dependencies/master/</url>
</repository> </repository>
<repository> <repository>

View file

@ -7,13 +7,13 @@
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-installer-vivo</artifactId> <artifactId>vivo-installer-vivo</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<packaging>war</packaging> <packaging>war</packaging>
<parent> <parent>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-installer</artifactId> <artifactId>vivo-installer</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<relativePath>..</relativePath> <relativePath>..</relativePath>
</parent> </parent>
@ -122,7 +122,6 @@
</profiles> </profiles>
<build> <build>
<finalName>${app-name}</finalName>
<plugins> <plugins>
<plugin> <plugin>
<artifactId>maven-install-plugin</artifactId> <artifactId>maven-install-plugin</artifactId>
@ -154,18 +153,18 @@
<type>war</type> <type>war</type>
</dependency> </dependency>
<!-- Dependencies for multilingual support --> <!-- Dependencies for multilingual support -->
<dependency> <!-- dependency>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vitro-languages-webapp-core</artifactId> <artifactId>vitro-languages-webapp</artifactId>
<version>${project.version}</version> <version>[2.0.0,2.1.0)</version>
<type>war</type> <type>war</type>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-languages-webapp-core</artifactId> <artifactId>vivo-languages-webapp</artifactId>
<version>${project.version}</version> <version>[2.0.0,2.1.0)</version>
<type>war</type> <type>war</type>
</dependency> </dependency -->
<dependency> <dependency>
<groupId>javax.servlet</groupId> <groupId>javax.servlet</groupId>

View file

@ -24,7 +24,7 @@
# debug.log4j.properties exists will be used instead, if it exists, but is not stored in Subversion. # debug.log4j.properties exists will be used instead, if it exists, but is not stored in Subversion.
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
log4j.appender.AllAppender.File=${catalina.base}/logs/${app-name}.all.log log4j.appender.AllAppender.File= ${catalina.base}/logs/${app-name}.all.log
log4j.appender.AllAppender.MaxFileSize=10MB log4j.appender.AllAppender.MaxFileSize=10MB
log4j.appender.AllAppender.MaxBackupIndex=10 log4j.appender.AllAppender.MaxBackupIndex=10
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout

69
pom.xml
View file

@ -1,10 +1,13 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-project</artifactId> <artifactId>vivo-project</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>VIVO</name> <name>VIVO</name>
@ -40,9 +43,11 @@
</developer> </developer>
</developers> </developers>
<!-- The SCM repository location is used by Continuum to update against <!--
when changes have occurred. This spawns a new build cycle and releases snapshots The SCM repository location is used by Continuum to update against
into the snapshot repository below. --> when changes have occurred. This spawns a new build cycle and releases
snapshots into the snapshot repository below.
-->
<scm> <scm>
<connection>scm:git:git@github.com:vivo-project/VIVO.git</connection> <connection>scm:git:git@github.com:vivo-project/VIVO.git</connection>
<developerConnection>scm:git:git@github.com:vivo-project/VIVO.git</developerConnection> <developerConnection>scm:git:git@github.com:vivo-project/VIVO.git</developerConnection>
@ -67,28 +72,6 @@
</modules> </modules>
<profiles> <profiles>
<profile>
<id>Vitro-languages</id>
<activation>
<file>
<exists>../Vitro-languages/pom.xml</exists>
</file>
</activation>
<modules>
<module>../Vitro-languages</module>
</modules>
</profile>
<profile>
<id>VIVO-languages</id>
<activation>
<file>
<exists>../VIVO-languages/pom.xml</exists>
</file>
</activation>
<modules>
<module>../VIVO-languages</module>
</modules>
</profile>
<profile> <profile>
<id>vitro</id> <id>vitro</id>
<activation> <activation>
@ -352,8 +335,7 @@
</configuration> </configuration>
</plugin> </plugin>
<!-- Used to validate all code style rules in source code using <!-- Used to validate all code style rules in source code using Checkstyle -->
Checkstyle -->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId> <artifactId>maven-checkstyle-plugin</artifactId>
@ -361,8 +343,7 @@
<executions> <executions>
<execution> <execution>
<id>verify-style</id> <id>verify-style</id>
<!-- Bind to verify so it runs after package & unit <!-- Bind to verify so it runs after package & unit tests, but before install -->
tests, but before install -->
<phase>verify</phase> <phase>verify</phase>
<goals> <goals>
<goal>check</goal> <goal>check</goal>
@ -371,10 +352,10 @@
</executions> </executions>
<configuration> <configuration>
<configLocation> <configLocation>
duraspace-checkstyle/checkstyle.xml duraspace-checkstyle/checkstyle.xml
</configLocation> </configLocation>
<suppressionsLocation> <suppressionsLocation>
vitro-checkstyle/checkstyle-suppressions.xml vitro-checkstyle/checkstyle-suppressions.xml
</suppressionsLocation> </suppressionsLocation>
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput> <consoleOutput>true</consoleOutput>
@ -488,20 +469,15 @@
<failOnError>false</failOnError> <failOnError>false</failOnError>
</configuration> </configuration>
<reportSets> <reportSets>
<reportSet> <reportSet><!-- by default, id = "default" -->
<!-- by default, id = "default" --> <reports><!-- select non-aggregate reports -->
<reports>
<!-- select non-aggregate reports -->
<report>javadoc</report> <report>javadoc</report>
<report>test-javadoc</report> <report>test-javadoc</report>
</reports> </reports>
</reportSet> </reportSet>
<reportSet> <reportSet><!-- aggregate reportSet, to define in poms having modules -->
<!-- aggregate reportSet, to define in poms
having modules -->
<id>aggregate</id> <id>aggregate</id>
<inherited>false</inherited> <!-- don't run aggregate <inherited>false</inherited><!-- don't run aggregate in child modules -->
in child modules -->
<reports> <reports>
<report>aggregate</report> <report>aggregate</report>
</reports> </reports>
@ -525,14 +501,15 @@
</plugins> </plugins>
</reporting> </reporting>
<!-- Add a custom repository, which is actually just a simple GitHub <!--
project in order to distribute some dependencies that aren't part of Maven Add a custom repository, which is actually just a simple GitHub project
central --> in order to distribute some dependencies that aren't part of Maven central
-->
<repositories> <repositories>
<repository> <repository>
<id>vivo-dependencies</id> <id>vivo-dependencies</id>
<name>VIVO Dependencies</name> <name>VIVO Dependencies</name>
<url>https://raw.github.com/vivo-project/dependencies/main/</url> <url>https://raw.github.com/vivo-project/dependencies/master/</url>
</repository> </repository>
<repository> <repository>

View file

@ -1,12 +1,12 @@
#!/bin/bash #!/bin/bash
# RC Script # RC Script
RC_VERSION=1.12.0 RC_VERSION=1.11.1
RC_NUM=1 RC_NUM=1
git checkout main git checkout master
git pull git pull
git push origin main:rel-${RC_VERSION}-RC git push origin master:rel-${RC_VERSION}-RC
git checkout rel-${RC_VERSION}-RC git checkout rel-${RC_VERSION}-RC

View file

@ -34,7 +34,7 @@
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<version>4.13.1</version> <version>4.12</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>

View file

@ -1,60 +0,0 @@
#!/bin/bash
set -e
# allow easier debugging with `docker run -e VERBOSE=yes`
if [[ "$VERBOSE" = "yes" ]]; then
set -x
fi
# allow easier reset home with `docker run -e RESET_HOME=true`
if [[ "$RESET_HOME" = "true" ]]; then
echo 'Clearing VIVO HOME /usr/local/vivo/home'
rm -rf /usr/local/vivo/home/*
fi
# copy home bin if not exists
if [ ! -d /usr/local/vivo/home/bin ]; then
echo "Copying home bin directory to /usr/local/vivo/home/bin"
cp -r /vivo-home/bin /usr/local/vivo/home/bin
fi
# copy home config if not exists
if [ ! -d /usr/local/vivo/home/config ]; then
echo "Copying home config directory to /usr/local/vivo/home/config"
cp -r /vivo-home/config /usr/local/vivo/home/config
fi
# copy home rdf if not exists
if [ ! -d /usr/local/vivo/home/rdf ]; then
echo "Copying home rdf directory to /usr/local/vivo/home/rdf"
cp -r /vivo-home/rdf /usr/local/vivo/home/rdf
fi
# copy runtime.properties if it does not already exist in target home directory
if [ -f /usr/local/vivo/home/config/example.runtime.properties ]; then
if [ ! -f /usr/local/vivo/home/config/runtime.properties ]
then
echo "Copying example.runtime.properties to /usr/local/vivo/home/config/runtime.properties"
cp /usr/local/vivo/home/config/example.runtime.properties /usr/local/vivo/home/config/runtime.properties
# template runtime.properties vitro.local.solr.url value to $SOLR_URL value
echo "Templating runtime.properties vitro.local.solr.url = $SOLR_URL"
sed -i "s,http://localhost:8983/solr/vivocore,$SOLR_URL,g" /usr/local/vivo/home/config/runtime.properties
else
echo "Using existing /usr/local/vivo/home/config/runtime.properties"
fi
fi
# copy applicationSetup.n3 if it does not already exist in target home directory
if [ -f /usr/local/vivo/home/config/example.applicationSetup.n3 ]; then
if [ ! -f /usr/local/vivo/home/config/applicationSetup.n3 ]
then
echo "Copying example.applicationSetup.n3 to /usr/local/vivo/home/config/applicationSetup.n3"
cp /usr/local/vivo/home/config/example.applicationSetup.n3 /usr/local/vivo/home/config/applicationSetup.n3
else
echo "Using existing /usr/local/vivo/home/config/applicationSetup.n3"
fi
fi
catalina.sh run

View file

@ -2,7 +2,7 @@
if [ -z "$1" ] if [ -z "$1" ]
then then
echo 'New version number required eg. 1.12.0-RC1' echo 'New version number required eg. 1.9.0-rc1'
exit 1 exit 1
fi fi

View file

@ -7,13 +7,13 @@
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-webapp</artifactId> <artifactId>vivo-webapp</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<packaging>war</packaging> <packaging>war</packaging>
<parent> <parent>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-project</artifactId> <artifactId>vivo-project</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
<relativePath>..</relativePath> <relativePath>..</relativePath>
</parent> </parent>
@ -69,7 +69,7 @@
<dependency> <dependency>
<groupId>org.vivoweb</groupId> <groupId>org.vivoweb</groupId>
<artifactId>vivo-api</artifactId> <artifactId>vivo-api</artifactId>
<version>1.12.1-SNAPSHOT</version> <version>1.11.2-SNAPSHOT</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View file

@ -5,10 +5,6 @@
# https://sourceforge.net/apps/mediawiki/vivo/index.php?title=The_StartupManager # https://sourceforge.net/apps/mediawiki/vivo/index.php?title=The_StartupManager
# #
# This listener must be run before any other code that uses resource bundles,
# otherwise there will be problems with i18n-support.
org.vivoweb.webapp.startup.i18nSetup
edu.cornell.mannlib.vitro.webapp.servlet.setup.JvmSmokeTests edu.cornell.mannlib.vitro.webapp.servlet.setup.JvmSmokeTests
edu.cornell.mannlib.vitro.webapp.application.ApplicationSetup edu.cornell.mannlib.vitro.webapp.application.ApplicationSetup
@ -25,9 +21,6 @@ edu.cornell.mannlib.vitro.webapp.config.RevisionInfoSetup
edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory$Setup edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory$Setup
# For multiple language support
edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionSetup
edu.cornell.mannlib.vitro.webapp.servlet.setup.ConfigurationModelsSetup edu.cornell.mannlib.vitro.webapp.servlet.setup.ConfigurationModelsSetup
edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup
@ -74,6 +67,9 @@ org.vivoweb.webapp.startup.SearchResultTemplateModelSetup
edu.ucsf.vitro.opensocial.OpenSocialSmokeTests edu.ucsf.vitro.opensocial.OpenSocialSmokeTests
# For multiple language support
edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionSetup
# The search indexer uses a "public" permission, so the PropertyRestrictionPolicyHelper # The search indexer uses a "public" permission, so the PropertyRestrictionPolicyHelper
# and the PermissionRegistry must already be set up. # and the PermissionRegistry must already be set up.
edu.cornell.mannlib.vitro.webapp.searchindex.SearchIndexerSetup edu.cornell.mannlib.vitro.webapp.searchindex.SearchIndexerSetup
@ -95,3 +91,5 @@ edu.cornell.mannlib.vitro.webapp.controller.individual.VIVOIndividualResponseBui
# This should be near the end, because it will issue a warning if the connection to the SearchEngine times out. # This should be near the end, because it will issue a warning if the connection to the SearchEngine times out.
edu.cornell.mannlib.vitro.webapp.servlet.setup.SearchEngineSmokeTest edu.cornell.mannlib.vitro.webapp.servlet.setup.SearchEngineSmokeTest
org.vivoweb.webapp.startup.i18nSetup

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -3,7 +3,7 @@
<!-- VIVO-specific default list view config file for object properties <!-- VIVO-specific default list view config file for object properties
See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -3,7 +3,7 @@
<!-- VIVO-specific default list view config file for object properties <!-- VIVO-specific default list view config file for object properties
See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -3,7 +3,7 @@
<!-- VIVO-specific default list view config file for object properties <!-- VIVO-specific default list view config file for object properties
See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<!-- Note: ?workshop is a generic name for any intervening event between a presentation and --> <!-- Note: ?workshop is a generic name for any intervening event between a presentation and -->
<!-- a conference, such as a workshop or session or exhibit. tlw72 --> <!-- a conference, such as a workshop or session or exhibit. tlw72 -->

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ --> <!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations --> <!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<list-view-config> <list-view-config>
<query-select> <query-select>

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