Compare commits

..

332 commits

Author SHA1 Message Date
a92d5cb1d7 Split search services 2021-11-02 11:21:02 +01:00
7e063e8b31 fix: for prev commit 2021-10-19 11:54:26 +02:00
0834a6c645 leave internal bibliography and sources collapsed by default 2021-10-18 13:22:00 +02:00
caf6989242 fix: remove individuals from robots.txt disallowed 2021-10-14 15:32:46 +02:00
d7452c12a6 fix: do not encode uri # in queiries for POST 2021-10-14 15:32:46 +02:00
b0e473ed8a fix: always save current search settings 2021-10-14 15:32:46 +02:00
fa6ac710fd fix: use attribute for excerpts names 2021-10-14 15:32:46 +02:00
e50c4320a4 Revert "fix: new compilation creation path should be relative to current url"
This reverts commit 9c5ea6f397.
2021-10-14 15:32:46 +02:00
8a067151df fix: new compilation creation path should be relative to current url 2021-10-14 15:32:46 +02:00
60bab69b2a Added buttons to remove document from search results 2021-10-14 15:32:46 +02:00
f1e2dfab19 fix: for prev commits 2021-10-14 15:32:46 +02:00
6a5e9cefa3 fix: don't hide articles by default 2021-10-14 15:32:46 +02:00
217e6b0a1e fix: don't hide articles by default 2021-10-14 15:32:46 +02:00
aef82eef63 Added script to exclude uri from search 2021-10-14 15:32:46 +02:00
7d0c6bfb0a Moved shortconfig from Vitro branch 2021-10-14 15:32:46 +02:00
c799813ece Improved iph theme localization 2021-10-14 15:32:46 +02:00
c9498128ab Moved localizations to properties 2021-10-14 15:32:46 +02:00
451ab36f3b Move alphabetical classifier to VIVO branch 2021-10-14 15:32:46 +02:00
3a45103309 Moved templates from Vitro branch 2021-10-14 15:32:46 +02:00
52d074bca6 Added empty template for statistic counters 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
da59f61b14 Added settings icon image 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
a93063a517 Modified style modal window and added close button. 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
7c3955dd67 Fixed metadata font size. 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
d2770aaf96 Modified favicon icon image. 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
ac254921bd Modified favicon icon image. 2021-10-14 15:32:46 +02:00
338b37e22e Added user modal settings 2021-10-14 15:32:46 +02:00
d5508e2eb4 Differentiated sources and literature lists for excerpts and complex texts 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
6b7818f67a Added favicon ico image. 2021-10-14 15:32:46 +02:00
1096ae0028 Autoselect hits per page from query 2021-10-14 15:32:46 +02:00
f7a5f13d8c Fix for prev commit 2021-10-14 15:32:46 +02:00
5499a1307f Fix top background 2021-10-14 15:32:46 +02:00
e8dccba537 Revert "Fix bad background"
This reverts commit 8f543d1e68.
2021-10-14 15:32:46 +02:00
dc671a7fdb Fix bad background 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
659f740dba Modified style on no page result. 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
b0fd2b3706 Added image for literature and source items on right content panel. 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
7246f15335 Fixed literature and source lists on search results page. 2021-10-14 15:32:46 +02:00
Svetlana Rastegina
b5448d5481 Fixed title rubric class. 2021-10-14 15:32:46 +02:00
2f5d4a8f05 Added delete button to article page 2021-10-14 15:32:45 +02:00
636b20426a Fix article delete query 2021-10-14 15:32:45 +02:00
e9a587e3e9 Fix compilation creation 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
e15274b4d4 Fixed copyright information. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
d1987ebc0e Added follow button to rubrics page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
3153fd6b39 Fixed expand content on Exerpt page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
4eab8da190 Added metadata switch button on compilation page. 2021-10-14 15:32:45 +02:00
63a5b2251c Fix for collapsible metadata and doc parts js 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
755ac5d01e Added metadata switch button. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
79a619a6d5 Fixed sitch metadata image. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
780a8d916a Fixed metadata name. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
a3768cdc78 Added metadata switcher. 2021-10-14 15:32:45 +02:00
7c1d0457cf Added collapsible metadata scripts 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
89e5911acc Modified custom style check button on search page result. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
8329e7cdd8 Fixed entity page width size on all resolutions. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
026beb1487 Fixed margin bottom p. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
fb28c5b176 Fixed padding top text exerpts. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
86d865788a Removed double quote. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
31920a9874 Fixed metadata information on Exerpt page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
9230a9963c Modified metadata styles on Exerpt page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
1bbef343d1 Modified page result styles. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
9d91ccfcec Modified collupsible button paddings on search result page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
26454d5750 Modified collupsible button paddings. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
90faaabf60 Removed double quotes. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
5bb2ad204c Modified authors affilation style. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
09825f9f9e Fixed title article font-size. 2021-10-14 15:32:45 +02:00
562b590558 Add standard container for search results 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
c34b1f5764 Modified save button style. 2021-10-14 15:32:45 +02:00
0305d0ca74 Collapsible authors in elenph excerpts 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
3bfce67d4e Deleted empty raw. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
4ade3193ab Added new class for tool shelf on compilation page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
2b3cb33199 Fixed title break on article page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
f9ab3b077c Fixed shelf tools width for article page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
fa71e8a5d5 Fixed shelf tools for article page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
64ad1ebeeb Fixed main navigation link font size. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
264c50bea8 Added download-icon. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
9c619a44a5 Fixed search result headline and download icon. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
da3d55eac9 Fixed padding for switch document button. 2021-10-14 15:32:45 +02:00
50d93687b0 Remove sequential duplicates in literature and sources lists 2021-10-14 15:32:45 +02:00
2745fa9561 Workaround for broken documents 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
c26c1d5dca Changed title font size on page rezult. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
c624fff542 Fixed search button outline style. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
c884c4b57a Modified first publication style. 2021-10-14 15:32:45 +02:00
abb4e97d0f Switch text and image on collpase/expand document 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
da421d5422 Added new image. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
bb6c750af2 Added print button to compilation page. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
53447f0ccd Fixed title style. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
0dceb12319 Fixed authors page width. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
4499275aec Fixed expand article button. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
669c1ee99e Modified print button position. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
7079b0eb18 Modified affilations style. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
d80beb1563 Hid right top buttons.Modified result page style. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
c77e707cea Removed online css styles. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
1331866523 Fixed metadata styles. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
68de87ec7d Fixed expand button style and metadata content style. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
3c9bef1e76 Added page result pagination border. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
686fbc7af1 Fixed page result pagination styles. 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
3bc142336b Modified collapse/expande button style and hided right block on result search page. 2021-10-14 15:32:45 +02:00
4974ae3034 Improved collapsible element 2021-10-14 15:32:45 +02:00
Svetlana Rastegina
771468900b Added images for buttons. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
968ca06db7 Fixed padding top on article title. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
8271d40227 Added print function in right panel. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
347bcb6c2a Modified page pagination style. 2021-10-14 15:32:44 +02:00
60409e04a3 Made rubric list collapsible 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
784c6c38cd Added expand and collapse buttons. 2021-10-14 15:32:44 +02:00
05959802f1 Added TOC collapse/expand scripts 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
5e74856b2b Added expand button for articles metadata. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
69c5576aff Modified right menu styles. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
1db0879af5 Added new styles for affilations and metadata. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
cd14bb3303 Modified a hover style.Fixed icons padding. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
02e7a9d520 Added right search panel on Compilations page.Modified title block. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
f508488636 Fixed right icons padding. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
dfeb5a42dd Added print,save,export PDF buttons. 2021-10-14 15:32:44 +02:00
df1e871bdb Open parent document parts when go to part from TOC 2021-10-14 15:32:44 +02:00
520ed8350b Added table of contents js functions 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
7b55da81b3 Added button To top. 2021-10-14 15:32:44 +02:00
61a85d66c1 Improved document structure 2021-10-14 15:32:44 +02:00
de5a117418 Fix for sources and literature output for document parts 2021-10-14 15:32:44 +02:00
d98ec70ff7 Move authors metadata to macro 2021-10-14 15:32:44 +02:00
5f6cff9824 Get level of excerpts in document 2021-10-14 15:32:44 +02:00
c8496ffe2f Refactoring document structure 2021-10-14 15:32:44 +02:00
15b4c83d56 Add closing tag to sep directive 2021-10-14 15:32:44 +02:00
4907c1af50 Renamed expand switch settings function 2021-10-14 15:32:44 +02:00
48fac9b610 Fix underline authors' list 2021-10-14 15:32:44 +02:00
3f36a7858c Improved article delete query 2021-10-14 15:32:44 +02:00
0dbe7232de Split expand switch into two: setttings switch and one-time switch 2021-10-14 15:32:44 +02:00
a911179bba Moved freemarker templates into theme 2021-10-14 15:32:44 +02:00
8fe843ae82 Fix authors sign 2021-10-14 15:32:44 +02:00
5cb579fee9 Refactoring rubric and rubrics templates 2021-10-14 15:32:44 +02:00
6a28e53167 Fixing expand switch 2021-10-14 15:32:44 +02:00
8b31dd7db2 Refactoring expand scripts 2021-10-14 15:32:44 +02:00
6be08841de Refactoring expand scripts 2021-10-14 15:32:44 +02:00
6fea9b520f Cleaning up elenph excerpt template 2021-10-14 15:32:44 +02:00
d3e7cd6349 Fixed text excerpt delete query 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
21c9d6113c Fixed literature lists image url. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
bf4f317453 Fixed literature lists margins. 2021-10-14 15:32:44 +02:00
ed0d1816d3 Temporary hack 2021-10-14 15:32:44 +02:00
9d9d936046 Rewrite indexing rules for more generic cases 2021-10-14 15:32:44 +02:00
cfc3e7dd65 Add excerpts of any complex publication to ALLTEXT field 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
88443e073f Fixed margin top lists on search result page.
Rename prefix
2021-10-14 15:32:44 +02:00
Svetlana Rastegina
624bb10474 Fixed literature lists on search result page. 2021-10-14 15:32:44 +02:00
e17f52ae15 Reindex complex publications on excerpt change 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
c28dc4f897 Fixed literature lists on exerpts page. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
3b031516ba Fixed fonts size. 2021-10-14 15:32:44 +02:00
40eda402a9 Hide duplicate search panel on search results page 2021-10-14 15:32:44 +02:00
011f7e6b46 Fixed buttons ids 2021-10-14 15:32:44 +02:00
af1ae59fc7 Renamed Работы to Источники 2021-10-14 15:32:44 +02:00
7ca422f46b Show delete button only if it is usable 2021-10-14 15:32:44 +02:00
da8f4b32eb Fix compilation template 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
30d283ccfb Fixed blocks width on article page. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
f00630d4d8 Fixed request right search panel on article page. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
16b916b199 Hid statistic information. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
74e3796005 Hid select option in search panel on main page . 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
eff334b957 Fixed wrapper-content width on all pages. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
3ffa740752 Fixed expand search buttons. 2021-10-14 15:32:44 +02:00
Svetlana Rastegina
15c290d134 Fixed accounts loggedin page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
d7c6cd5193 Fixed articles page and rubrics page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
315806ec1f Fixed main page styles on various screen resolutions. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
bf05fce98d Fixed right search panel and home search region. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
35a5468728 Added font files on site. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
60d428e714 Changed log in page styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
524b7215ad Changed right search styles for all screen resolutions. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
4a434bc2d4 Fixed right search panel. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
2b79bdf551 Added list style for literature lists. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
1bce24a0a4 Added list style for article literature. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
11ce41105b Modified article page styles and added new images. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
fcaa8be6e6 Modified alphabetical index page styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
bfb8bae2e4 Modified alphabetical index page styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
973dcff7d0 Added image for search button on main page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
b4e229a114 Fixed select input orange arrow. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
5fa87d4eef Added new images. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
0b08ae77a7 Fixed custom search button (background and width on various resolutions). 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
1f43f6f552 Fixed fonts size in search block on various screen resolutions. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
fac88d3c87 Fixed search block borders. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
98bf4a8f85 Fixed top and bootom margins in search rows. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
cc796ce5cc Changed search block structure. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
7e15104fe5 Changed css styles on main page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
72b388a045 Fixed width statistic block on all screen resolutions. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
e248385c5c Added dot image for Title on main page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
a1850f2118 Added settings for adaptive designe. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
d4885f8a81 Fixed hesder block for 720px screen size. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
6880ccfb69 Changed extand search styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
6a5d72a59d Modified search block structure. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
ec3ce41273 Modified extenden search form. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
f7398c8965 Added shadow properties to right button block. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
cb1750bef7 Fixed paddings on top right menu. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
0cdb0cf30d Reterned Index link on top right menu. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
134acbc983 Modified expanded search block and fix width properties custom search block on main page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
66ac0649f2 Modified text styles on main page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
78beb1f24d Fixed statistic block appearance on main and others pages. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
3ed254ee20 Fixed footer wrapper. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
d6d874c920 Modified statistic block styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
6faa279b82 Transfered statistic block from Intro section to Footer section. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
87d2c35d13 Changed text style on main page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
31ac1403a0 Removed Search title and modified search form style. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
25d5c0d25c Changed custom search properties on main page. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
836c390452 Fixed search position and properties. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
12538e5545 Modified footer styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
976d2743c8 Modified header menu (Login button) styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
e92b3682d6 Modified header images and main menu styles. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
7f74cf9784 Added title name image and refined header-image background. 2021-10-14 15:32:43 +02:00
Svetlana Rastegina
e5c99a01e3 Added settings for header image proportionally scaling. 2021-10-14 15:32:42 +02:00
Svetlana Rastegina
4af60eba58 Hidden Index link in top right menu. 2021-10-14 15:32:42 +02:00
Svetlana Rastegina
c5f648c498 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-10-14 15:32:42 +02:00
65c45626ee Run saved query from compilation page 2021-10-14 15:32:42 +02:00
33dd87477e Save query and rules at compilation creation 2021-10-14 15:32:42 +02:00
69ea0f31e2 Custom template for compilation 2021-10-14 15:32:42 +02:00
c0cb26f09c Added elenph delete queries 2021-10-14 15:32:42 +02:00
a28a1aacc0 Added modification time to compilation generator 2021-10-14 15:32:42 +02:00
a851764012 Fix broken js on empty search configuration 2021-10-14 15:32:42 +02:00
ab6e02cc5e Removed mistakenly added spaces from uri 2021-10-14 15:32:42 +02:00
7a805fa4f6 Added code to create compilation from search results 2021-10-14 15:32:42 +02:00
5442327c71 Added template to display compilation 2021-10-14 15:32:42 +02:00
df2dd1205b Added compilation to text structures ontology 2021-10-14 15:32:42 +02:00
7d79da1bc4 Added compilation generator 2021-10-14 15:32:42 +02:00
26a5c16bd4 Added to print script 2021-10-14 15:32:42 +02:00
eb0e20d90f Hide login on main page 2021-10-14 15:32:42 +02:00
ec42cd42da Removed double quotes for input fields in extended search 2021-10-14 15:32:42 +02:00
45a9973802 Revert "Try to fix queries"
This reverts commit 6498d194cd.
2021-10-14 15:32:42 +02:00
4107942ee5 Fixed field values sorting for extended search 2021-10-14 15:32:42 +02:00
1dd9329bc3 Save extended search var in browser local storage 2021-10-14 15:32:42 +02:00
9183f18eeb Try to fix queries 2021-10-14 15:32:42 +02:00
62c5714855 Remove publication participant and organization from search 2021-10-14 15:32:42 +02:00
9296999194 Modifications for correct affiliation display 2021-10-14 15:32:42 +02:00
0a53e51a78 Set white background for works and biblio in elenph article excerpts 2021-10-14 15:32:42 +02:00
308ba8dcf9 Remove checked attribute from checkbox 2021-10-14 15:32:42 +02:00
8225ba3d44 Hide VIVO logo temporary 2021-10-14 15:32:42 +02:00
369063ead4 Fixed url path in issues 2021-10-14 15:32:42 +02:00
0906289de7 Print info about first article publication 2021-10-14 15:32:42 +02:00
d8d364e91c Added home info 2021-10-14 15:32:42 +02:00
b0190d39f0 Added margin between collapsible elements 2021-10-14 15:32:42 +02:00
d49f9382f4 Added expand button to article page 2021-10-14 15:32:42 +02:00
07626aec70 Output biblio and works for each excerpt 2021-10-14 15:32:42 +02:00
41dfe40b4f Added values of allowed properties in ALLTEXT Elenph article 2021-10-14 15:32:42 +02:00
b72fa02b9f Remove entity name from indexed field. 2021-10-14 15:32:42 +02:00
a5d7c99c79 Remove property name from indexed field 2021-10-14 15:32:42 +02:00
8d2ecd7594 Buttons to add Bibliography and Works 2021-10-14 15:32:42 +02:00
512ed2d925 Remove width 2021-10-14 15:32:42 +02:00
da972cf8b9 Hits per page option 2021-10-14 15:32:42 +02:00
ec06511f20 Fix for previous commit 2021-10-14 15:32:42 +02:00
2dcc4c25f2 Added formGenerator for excerpts and articles 2021-10-14 15:32:42 +02:00
7e4b48bf28 Update for article page 2021-10-14 15:32:42 +02:00
fec5492fe1 Updates for ontologies 2021-10-14 15:32:42 +02:00
7d89f4c85f Remove classes from search index 2021-10-14 15:32:42 +02:00
b12434d6b5 Added left margin to search form 2021-10-14 15:32:42 +02:00
6aaa616bc9 Fix for previous commit 2021-10-14 15:32:42 +02:00
e15549229d New search form 2021-10-14 15:32:42 +02:00
a271e9c161 Made search notes smaller 2021-10-14 15:32:42 +02:00
debd5e6a8c Fix search form 2021-10-14 15:32:42 +02:00
08b64ad632 Escape search query string 2021-10-14 15:32:42 +02:00
e629c5cd15 Populated text field 2021-10-14 15:32:42 +02:00
a0b0588fa1 New example 2021-10-14 15:32:42 +02:00
df4b1a09c4 Changed example 2021-10-14 15:32:42 +02:00
c03661894c Fixed styles 2021-10-14 15:32:42 +02:00
e7f77f9d7c New example query 2021-10-14 15:32:42 +02:00
f86119a3bc Save to local storage at search 2021-10-14 15:32:42 +02:00
02177dcea7 add css rule 2021-10-14 15:32:42 +02:00
ccb2658aea Modified logical search query 2021-10-14 15:32:42 +02:00
9f7ffcd62d Escape search value 2021-10-14 15:32:42 +02:00
cb79cc1f69 Changed quotes in search form 2021-10-14 15:32:41 +02:00
61333eccaf query builder first try 2021-10-14 15:32:41 +02:00
61007c3619 Removed link to js 2021-10-14 15:32:41 +02:00
31557f3a76 Added search ontology 2021-10-14 15:32:41 +02:00
23543cee5c Fill queryBuiler with fields and filters 2021-10-14 15:32:41 +02:00
6b0a72ba46 Added buttons 2021-10-14 15:32:41 +02:00
03af2ac90c Added example rules and values 2021-10-14 15:32:41 +02:00
3174b3f10e Fixed query builder configuration 2021-10-14 15:32:41 +02:00
ed0173f0e1 Loading dummy query builder 2021-10-14 15:32:41 +02:00
9d578ae4e8 Article's rubrics 2021-10-14 15:32:41 +02:00
271b16eb1c Sum all rubrics of article while indexing 2021-10-14 15:32:41 +02:00
0417c61e23 Use custom search service 2021-10-14 15:32:41 +02:00
59dc757cf0 Styles modifications 2021-10-14 15:32:41 +02:00
99ca54cd50 Fix article page 2021-10-14 15:32:41 +02:00
12045d9a4e Added issue template 2021-10-14 15:32:41 +02:00
5b09d25189 Copied wilma 2021-10-14 15:32:41 +02:00
84895e0de6 Issue template added 2021-10-14 15:32:41 +02:00
56e815b3d2 Added ontologies 2021-10-14 15:32:41 +02:00
0627efe799 Modified ontology 2021-10-14 15:32:41 +02:00
fa486ecf8a Modifications for fixed ontology 2021-10-14 15:32:41 +02:00
41ccfda2c4 Fixed mistake in query 2021-10-14 15:32:41 +02:00
1964267ca9 Added custom fields 2021-10-14 15:32:41 +02:00
2425ff570e Fix for previous commit 2021-10-14 15:32:41 +02:00
a67fbe6ded Added articles info to excerpt 2021-10-14 15:32:41 +02:00
245360af06 templates update 2021-10-14 15:32:41 +02:00
9e1df433c9 Updates for templates 2021-10-14 15:32:41 +02:00
102de0c3fd Templates and SPARQL requests for rubrics, elenph excerpts and articles 2021-10-14 15:32:41 +02:00
Dragan Ivanovic
47a221b866 Update issue templates 2021-10-07 16:33:04 +02:00
Ralph O'Flinn
abd40c25f5
updates to outdated URLs and branch names (#251) (#252)
updates to outdated URLs and branch names (typically master -> main)
2021-10-06 06:38:19 -05:00
Dragan Ivanovic
7046bdfad7 Update issue templates 2021-10-06 12:54:10 +02:00
Dragan Ivanovic
657b6922f9 Update issue templates 2021-10-06 12:52:47 +02:00
Ralph O'Flinn
9f6b545b84 Merge branch 'rel-1.12.0-RC' into main 2021-07-21 07:09:36 -05:00
Ralph O'Flinn
584b34c682 [maven-scm-plugin] prepare development vivo-1.12.1-SNAPSHOT-SNAPSHOT 2021-06-23 00:19:07 -05:00
Ralph O'Flinn
9b0de5f3d4 [maven-scm-plugin] prepare release vivo-1.12.0 2021-06-23 00:16:40 -05:00
Brian Lowe
09e4ea732a
Add self-activating profiles for building Vitro-languages and VIVO-l… (#245)
* Add self-activating profiles for compiling Vitro-languages and VIVO-languages in place of i18n profile

* Remove trailing whitespace
2021-06-22 13:48:05 -05:00
Brian Lowe
109b5a4fe1
Update version numbers in pom.xmls (#244)
* Update version numbers in pom.xmls

* Restore -SNAPSHOT
2021-06-21 04:11:24 -05:00
e1dc5c9775
Merge pull request #240 from brianjlowe/issue/VIVO-1983
[VIVO-1983] Limit label management values to current locale
2021-06-17 23:33:40 +02:00
Brian Lowe
3de9a03ab5 Update comment 2021-06-16 21:54:48 +03:00
Brian Lowe
f4f6dddb11 Retrieve locales used in label statements instead of only selectable locales 2021-06-16 21:43:30 +03:00
a9a095397e
Merge pull request #243 from brianjlowe/issue/VIVO-1996
[VIVO-1996] Retain language tags in manage publications query results to allow for language filtering
2021-06-16 17:07:55 +02:00
Brian Lowe
603e7f6bc8
Do not offer UMLS vocabulary in interface if umls.properties is absent. (#241)
* Replace hardcoded en locale with current locale in lang attributes

* Do not offer UMLS vocabulary service in interface if umls.properties is absent
2021-06-09 08:02:46 -06:00
Michel Héon
e3027841aa
integrate in a single Maven call the compilation and installation of (#242)
Integrate in a single Maven call the compilation and installation of VIVO-Languages and Vitro-Languages in VIVO.
2021-06-04 17:17:17 +03:00
Brian Lowe
dc56107d4d Pass languageCount value to label macro 2021-06-04 17:00:26 +03:00
Brian Lowe
49eedfe0a0 Retain language tags in manage publication query results to allow for language filtering 2021-06-03 19:40:07 +03:00
Brian Lowe
43289ba71e Get language-aware results for existing labels in ManageLabelsForPersonGenerator 2021-05-28 15:52:16 +03:00
Brian Lowe
9652127081 Merge branch 'rel-1.12.0-RC' of https://github.com/vivo-project/VIVO into rel-1.12.0-alpha 2021-05-27 16:20:08 +03:00
Brian Lowe
631986a2d5
Issue/vivo 1981 (#239)
* Replace hardcoded en locale with current locale in lang attributes

* Update README with current wiki link; add details to Docker Compose installation instructino.
2021-05-11 10:07:53 -05:00
Ben
5d257cae6b
[VIVO-1982] - Set default email params to blank (#238)
* Set default email params to blank

* Comment out email settings
2021-05-07 11:46:57 +03:00
Brian Lowe
8b161f948e
Add usePreciseSubqueries property to example.runtime.properties (#233) 2021-05-05 10:36:46 -06:00
Brian Lowe
fe764ded51 Merge branch 'rel-1.12.0-alpha' of https://github.com/vivo-project/VIVO into rel-1.12.0-alpha 2021-05-03 19:35:17 +03:00
Brian Lowe
fe1498319a
Add note to runtime.properties that TPF should not be used if VIVO contains restricted data. (#236) 2021-04-27 10:43:59 -06:00
Brian Lowe
f4d187a601
Allow 'create new' for vivo:governingAuthorityFor. Resolve https://jira.lyrasis.org/browse/VIVO-1820 (#234) 2021-04-21 12:38:32 -05:00
Brian Lowe
29728b3b40
Add additional URI finder that will reindex a person if its associate… (#227)
* Add additional URI finder that will reindex a person if its associated title or email resource is deleted altogether.

* Remove redundant identical query; eliminate unused prefix.
2021-04-21 11:54:23 -05:00
Brian Lowe
250566446f
Replace hardcoded en locale with current locale in lang attributes (#237) 2021-04-21 11:53:35 -05:00
Brian Lowe
2be59bbe02
Fix issues preventing rendering and functioning of temporal graph. Resolve https://jira.lyrasis.org/browse/VIVO-1978 (#235) 2021-04-21 10:14:16 -05:00
Brian Lowe
d72472824a Replace hardcoded en locale with current locale in lang attributes 2021-04-21 17:19:44 +03:00
Brian Lowe
2fa7cce5c7
Move non-language-specific Vitro annotations to VIVO tbox firsttime d… (#225)
* Move non-language-specific Vitro annotations to VIVO tbox firsttime directory.

* Update tbox/firsttime readme to document difference between vitroAnnotations.n3 and initialTBoxAnnotations.n3
2021-03-30 15:05:11 -05:00
Brian Lowe
fe09808b1b
Retrieve sitemap profile URLs only after consuming result set in order to avoid transaction errors with TDB. Resolve https://jira.lyrasis.org/browse/VIVO-1910 (#231) 2021-03-30 09:41:24 -06:00
Ralph O'Flinn
d00d7de585
Revert deployment strategy (#230)
* revert deployment changes

* update docker and compose for previous deployment

* minor readme update

* use package instead of install

this avoids exploding war file in tomcat but seems to be missing overlays for VIVO theme

* test docker workflow

* test deploy workflow

* add package profile for home

* skip deploy for installer

* skip installer by profile

* update workflows

* minor readme update

* use app-name for vivo log file name

* Update log4j.properties

Co-authored-by: William Welling <wwelling@library.tamu.edu>
2021-03-24 01:46:24 -05:00
Ralph O'Flinn
1dd2851e45
Revert "revert deployment changes (#228)" (#229)
This reverts commit 7773db3394.
2021-03-24 01:41:41 -05:00
William Welling
7773db3394
revert deployment changes (#228)
* revert deployment changes

* update docker and compose for previous deployment

* minor readme update

* use package instead of install

this avoids exploding war file in tomcat but seems to be missing overlays for VIVO theme

* test docker workflow

* test deploy workflow

* add package profile for home

* skip deploy for installer

* skip installer by profile

* update workflows

* minor readme update

* use app-name for vivo log file name

* Update log4j.properties
2021-03-22 20:37:13 +02:00
hauschke
47fb4fdc05
Update LICENSE (#226)
Update license year to 2021.
2021-03-12 16:31:39 +02:00
dependabot[bot]
fdda5f0774
Bump junit from 4.11 to 4.13.1 in /api (#195)
Bumps [junit](https://github.com/junit-team/junit4) from 4.11 to 4.13.1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.11.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.11...r4.13.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-18 10:11:44 -06:00
dependabot[bot]
0d5049f3b6
Bump junit from 4.12 to 4.13.1 in /selenium (#196)
Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-18 10:11:14 -06:00
William Welling
880ac5b797
VIVO-1963: Initial docker compose (#223)
* initial docker compose

* for docker volume use direct tdb filemode

* runtime properties with solr url configured

* move gitattributes to root to ensure scripts stay valid

* fix VIVO dockerfile command permissions

* use public vivoweb/vivo-solr image

* start script improvements

* pass docker compose env to containers

* generate digest.md5 of existing VIVO home

* add initial readme

* reset docker compose env defaults

* minor readme updates
2021-02-18 10:07:19 -06:00
Andrew Woods
5f6cabc42a
Update example.runtime.properties (#222)
* Update example.runtime.properties

Resolves: https://jira.lyrasis.org/browse/VIVO-1930

Co-authored-by: gneissone <mbgross@wustl.edu>
Co-authored-by: Andrew Woods <awoods@duraspace.org>
2021-02-12 16:42:58 +02:00
gneissone
f15eec19e0 Bugfix for type restriction in search index config 2021-02-11 09:00:22 -05:00
gneissone
2122254cdb Update to google chart library loads 2021-02-10 15:12:37 -05:00
William Welling
a9ce8c7de8
VIVO-1961: GitHub Action to Publish Docker Image (#220)
* simple dockerfile and image publish workflow
* upgrade to v2 of build push action
* provide context and explicit docker file

Resolves: https://jira.lyrasis.org/browse/VIVO-1961
2021-02-10 15:03:29 -05:00
Andrew Woods
268ffa1cd7
Sprint i18n with main (#215)
* Layer uqam updates onto master (minus trailing whitespace)

* Update AddOrganizerRoleToPersonGenerator.java

Removed extraneous whitespace

* My whitespace (#153)

* Update AddPublicationToPersonGenerator.java

* Removed extraneous whitespace AND move RootUserPolicy.java from VIVO to Vitro

* Fixed whitespace in: AddAttendeeRoleToPersonGenerator.java

* Fixed indentations for AddOutreachProviderRoleToPersonGenerator.java

* Fixed indentations

* Removed extraneous whitespace (#158)

* Removed extraneous whitespace

* Fix bug introduced in cleaning up whitespace

* Tagging UQAM comments with the following tags

-Add-Feature
-Optimization
-Linguistic-Management
-Bug-Correction

* Update AddReviewerRoleToPersonGenerator.java

* Added an internationalization correction to be considered in the vivo-i18n-core that was forgotten when sprint-i18n was created.

* Fix typo in AddReviewerRoleToPersonGenerator

Resolves: https://jira.lyrasis.org/browse/VIVO-1774

* Fix typo in AddOutreachProviderRoleToPersonGenerator

Resolves: https://jira.lyrasis.org/browse/VIVO-1775

* Include language dependencies in build all of the time (#168)

Move "LocaleSelectionSetup" higher in the startup list so that the Vitro:RDFFilesLoader has the locale info available on its startup

Part of resolution to: https://jira.lyrasis.org/browse/VIVO-1836

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Made modifications to publicationToPersonUtils.js so that multilangua… (#170)

* Made modifications to publicationToPersonUtils.js so that multilanguage support will not break the javascript functionalty.

Co-authored-by: root <root@vivo-development.hs-mittweida.de>

Resolves: https://jira.lyrasis.org/browse/VIVO-1739

* Feature language en_CA (#169)

* Changing ontology extensions for n3 & assigning a base IRI to each
ontology

Co-authored-by: michelheonuqam <heon.michel@uqam.ca>
Co-authored-by: michelheon <heon@videotorn.ca>

Partial resolution of: https://jira.lyrasis.org/browse/VIVO-1862

* i18n: title tag and headings in capability map are in english in french version (#173)

* added multi-language support for ticket VIVO-1846

* fixed swapped properties, added Capability map title to i18n

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1847

* Added i18n support for Capability Map control buttons, JIRA ticket VIVO-1846

* removed redundat files which are now available via Vitro- and VIVO-languages

* added i18n support for the capability map, ticket vivo-1892

* Revert non-function RDF changes (#180)

Related to: https://jira.lyrasis.org/browse/VIVO-1905

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Ensure 'other' in Individual->Teaching->advisees->type is translated

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1881

* [VIVO-1842] i18n: Added function js_string at i18n variables to handle quotes properly (#181)

* added js_string at i18n strings to handle quotes properly, ticket vivo-1842

Partial resolution for: https://jira.lyrasis.org/browse/VIVO-1842

* replace static headings with i18n values (#183)

Partial resolution of: https://jira.lyrasis.org/browse/VIVO-1844

* added empty check for getCountry, fixing bug with spanish label (es), ticket vivo-1900 (#182)

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1900

* Issue/vivo 1908 (#185)

* Provide fallback language in language-filtered webpage SPARQL query and use existing RDFService-based filtering for ConstantFieldOptions

Resolves: https://jira.lyrasis.org/browse/VIVO-1906

* Fix bug of missing toString() (#187)

Related to: https://jira.lyrasis.org/browse/VIVO-1906

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* Remove files replicated in i18n (#186)

Related to: https://jira.lyrasis.org/browse/VIVO-1917

* removed redundant vitroAnnotations, now in VIVO-languages, ticket vivo-1821

* Removed key.png from the template and replaced it with css sprite and… (#184)

* Removed key.png from the template and replaced it with css sprite and descriptions in plain text.
* * adding height to background images, hopefully fixing issues

Partial resolution for: https://jira.lyrasis.org/browse/VIVO-1902

* [VIVO-1915] i18n - removing language select for label management for individuals (#190)

* removed the language select for managing multi language labels fpr individuals, ticket vivo-1915

* modified ManageLabelsForPersonGenerator so that you can only add an langauge label if it is not already set, ticket vivo-1915

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1915

* - added i18n() to hardcoded values

* added i18n support to person's domain in capability map, ticket 1867

* [VIVO-1946] - Update ResearcherID description in vivo.owl (#188)

* Update ResearcherID description in vivo.owl

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1946

* [VIVO-1936] i18n: updated the language comment in runtime.properties (#203)

Partial resolution of: https://jira.lyrasis.org/browse/VIVO-1936

Co-authored-by: Kampe <Benjamin.Kampe@tib.eu>

* [VIVO-1924] i18n: @en i18n properties are not loaded during first site startup. (#204)

* rearranged startup-listeners fixing bug with language files, ticket VIVO-1924

* Added a comment to prevent future bugs like this, ticket VIVO-1924

* fixed previous comment, ticket VIVO-1924

* Remove duplicate text from dropdown menus

* Minor checkstyle correction following: VIVO-1936 (#206)

Follow-on to: https://jira.lyrasis.org/browse/VIVO-1936

Co-authored-by: Andrew Woods <awoods@duraspace.org>

* follow-up on vivo-1936 - restore default values in example-settings.xml (#210)

Co-authored-by: gneissone <mbgross@wustl.edu>

* [VIVO-1798] - Internationalize first and last name validation (#207)

* Internationalize first and last name validation

Partial resolution to: https://jira.lyrasis.org/browse/VIVO-1798

* adding collections process terms (#165)

* adding collections process terms

No JIRA :(

* Non-functional change to comment in example.applicationSetup.n3

Related to: https://jira.lyrasis.org/browse/VIVO-1741

* Update orcidConfirm.ftl (#199)

Fix i18n property used on ORCID confirmation step 2 button.
Related to https://jira.lyrasis.org/browse/VIVO-1945

* Fix external AGROVOC service URL

* URL fix for LCSH service

* Remove unnecessary pom.xml 'profile'

- Also, uncomment language overlays
   - Noting that this is not actually necessary, as any 'war' Maven dependencies are automatically overlayed:
   - https://maven.apache.org/plugins/maven-war-plugin/overlays.html

Co-authored-by: Andrew Woods <awoods@duraspace.org>
Co-authored-by: Nicolas D <46490666+nicalico@users.noreply.github.com>
Co-authored-by: UQAM-VIVO <heon.michel@uqam.ca>
Co-authored-by: matthiasluehr <60263380+matthiasluehr@users.noreply.github.com>
Co-authored-by: Michel Heon <heon@videotron.ca>
Co-authored-by: dofeldsc <dofeldsc@uos.de>
Co-authored-by: William Welling <wwelling@library.tamu.edu>
Co-authored-by: Brian Lowe <brianjlowe@gmail.com>
Co-authored-by: Matthias Lühr <luehr@hs-mittweida.de>
Co-authored-by: Ben <mbgross@wustl.edu>
Co-authored-by: Benjamin Kampe <benjamin@fehrmanns.net>
Co-authored-by: Kampe <Benjamin.Kampe@tib.eu>
Co-authored-by: Gross, Benjamin <benjamin.gross@clarivate.com>
Co-authored-by: diatomsRcool <annethessen@gmail.com>
Co-authored-by: L.O <53535673+lb-ov@users.noreply.github.com>
2021-02-10 11:02:20 -06:00
William Welling
f97972e5aa
VIVO-1960: GitHub Actions Continued (#218)
* add build workflow
* remove travis
* remove unnecessary vitro cache
* update readme badge
* run tests during CI build
* build CI use java 11
* add repositories to distribution management
* deploy from main branch and update readme

Follow-on to: https://jira.lyrasis.org/browse/VIVO-1960
2021-02-09 17:46:21 -05:00
William Welling
6dbc31cc9d
VIVO-1960: GitHub Build Action (#217)
* add build workflow
* remove travis
* update readme badge

Partially resolves: https://jira.lyrasis.org/browse/VIVO-1960
2021-02-09 15:01:29 -05:00
Andrew Woods
01776ee692
Enable war deployment model (#197)
* Add 'home' files into build war artifact

Related to: https://jira.lyrasis.org/browse/VIVO-1443

* Disable copying exploded war to Tomcat dir

- hardcode vivo.all.log file name
- must now set system property: -Dvivo-dir=/opt/vivo/home/

Related to: https://jira.lyrasis.org/browse/VIVO-1443

* Ensure build does not remove and re-add VIVO_HOME/rdf

Related to: https://jira.lyrasis.org/browse/VIVO-1443

* Remove unnecessary profile from installer/pom.xml

Related to: https://jira.lyrasis.org/browse/VIVO-1443

* Rename example config files to have 'default' prefix

Related to: https://jira.lyrasis.org/browse/VIVO-1443

* Require common properties to be in JNDI

Properties include:
- vitro/home
- vitro/appName
- vitro/rootUserAddress
- vitro/defaultNamespace

Related to: https://jira.lyrasis.org/browse/VIVO-1443

* VIVO-1443: app name (#2)

* Non-functional change to comment in example.applicationSetup.n3

Related to: https://jira.lyrasis.org/browse/VIVO-1741

* Update orcidConfirm.ftl (#199)

* remove example-settings.xml
* simplify war name and afford override during build
* default app name to vivo and pass into context.xml

Co-authored-by: Andrew Woods <awoods@duraspace.org>
Co-authored-by: L.O <53535673+lb-ov@users.noreply.github.com>

Co-authored-by: Andrew Woods <awoods@duraspace.org>
Co-authored-by: William Welling <wwelling@library.tamu.edu>
Co-authored-by: L.O <53535673+lb-ov@users.noreply.github.com>
2021-02-05 10:56:50 -06:00
L.O
c54f8a105b
Update orcidConfirm.ftl (#199)
Fix i18n property used on ORCID confirmation step 2 button.
Related to https://jira.lyrasis.org/browse/VIVO-1945
2021-01-06 22:31:09 +02:00
Andrew Woods
17dd020835 Non-functional change to comment in example.applicationSetup.n3
Related to: https://jira.lyrasis.org/browse/VIVO-1741
2020-09-30 17:56:58 -04:00
diatomsRcool
f585d90c0e
adding collections process terms (#165)
* adding collections process terms

No JIRA :(
2020-09-23 11:03:25 -04:00
219 changed files with 2221 additions and 10006 deletions

4
.env Normal file
View file

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

2
.gitattributes vendored Normal file
View file

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

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,34 @@
---
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

@ -0,0 +1,20 @@
---
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.**
* * *
**[JIRA Issue](https://jira.duraspace.org/projects/VIVO)**: (please link to issue)
**[JIRA Issue](https://jira.lyrasis.org/projects/VIVO)**: (please link to issue)
* Other Relevant Links (Mailing list discussion, related pull requests, etc.)

31
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,31 @@
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

41
.github/workflows/deploy.yml vendored Normal file
View file

@ -0,0 +1,41 @@
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 }}

59
.github/workflows/docker.yml vendored Normal file
View file

@ -0,0 +1,59 @@
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,3 +20,8 @@ utilities/rdbmigration/.work
**/.classpath
**/.project
**/bin/
vivo-home/
.fake
.ionide

View file

@ -1,22 +0,0 @@
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"

20
Dockerfile Normal file
View file

@ -0,0 +1,20 @@
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) 2018, Cornell University
Copyright (c) 2021, Cornell University
All rights reserved.
Redistribution and use in source and binary forms, with or without

View file

@ -1,6 +1,6 @@
# VIVO: Connect, Share, Discover
[![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)
[![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)
VIVO is an open source semantic web tool for research discovery -- finding people and the research they do.
@ -14,12 +14,60 @@ desired information across disciplines.
http://vivoweb.org/
### VIVO Project Wiki
https://wiki.duraspace.org/display/VIVO/
https://wiki.lyrasis.org/display/VIVO/
### Installation Instructions
Installation instructions for the latest release can be found at this location on the wiki:
https://wiki.duraspace.org/display/VIVODOC110x/Installing+VIVO
https://wiki.lyrasis.org/display/VIVODOC112x/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
There are several ways to contact the VIVO community.
@ -44,7 +92,7 @@ development, implementation, and testing.
## Contributing Code
If you would like to contribute code to the VIVO project, please open a ticket
in our [JIRA](https://jira.duraspace.org/projects/VIVO), and prepare a
in our [JIRA](https://jira.lyrasis.org/projects/VIVO), and prepare a
pull request that references your ticket. Contributors welcome!
## Citing VIVO

View file

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

View file

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

View file

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

View file

@ -4,12 +4,18 @@ package edu.cornell.mannlib.semservices.service.impl;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.apache.commons.logging.Log;
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.ObjectNode;
@ -18,11 +24,6 @@ import edu.cornell.mannlib.semservices.bo.Concept;
import edu.cornell.mannlib.semservices.exceptions.ConceptsNotFoundException;
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
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
@ -54,11 +55,13 @@ 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_KEY_URL = "https://utslogin.nlm.nih.gov/cas/v1/api-key";
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) {
final Properties properties = new Properties();
try (InputStream stream = getClass().getResourceAsStream("/umls.properties")) {
try (InputStream stream = getClass().getResourceAsStream(UMLS_PROPERTIES)) {
properties.load(stream);
username = properties.getProperty("username");
password = properties.getProperty("password");
@ -73,11 +76,18 @@ public class UMLSService implements ExternalConceptService {
}
}
} catch (Exception e) {
log.error(e, 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() {
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 rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
+ "SELECT DISTINCT ?subclass ?authorship (str(?label) as ?title) ?pub ?hideThis WHERE { \n"
+ "SELECT DISTINCT ?subclass ?authorship (?label as ?title) ?pub ?hideThis WHERE { \n"
+ " ?subject core:relatedBy ?authorship . \n"
+ " ?authorship a core:Authorship . \n"
+ " OPTIONAL { \n "

View file

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

View file

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

View file

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

View file

@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
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.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.
@ -46,8 +48,13 @@ public class AddEditorRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
@Override
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)
.setDefaultOptionLabel("Select type");
.setDefaultOptionLabel(selectType);
}
/** Do not show the role label field for the AddEditorRoleToPerson form */

View file

@ -32,6 +32,7 @@ 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.fields.FieldVTwo;
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
@ -83,7 +84,7 @@ public class AddEditorsToInformationResourceGenerator extends VivoBaseGenerator
//template file
editConfiguration.setTemplate("addEditorsToInformationResource.ftl");
//add validators
editConfiguration.addValidator(new FirstAndLastNameValidator("personUri"));
editConfiguration.addValidator(new FirstAndLastNameValidator("personUri", I18n.bundle(vreq)));
//Adding additional data, specifically edit mode
addFormSpecificData(editConfiguration, vreq);

View file

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

View file

@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
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.FieldOptions;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
@ -25,10 +27,14 @@ public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
/** Head Of role involves hard-coded options for the "right side" of the role or activity */
@Override
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
ChildVClassesOptions(OPTION_CLASS_URI)
.setDefaultOptionLabel("Select type");
.setDefaultOptionLabel(selectType);
}
@Override

View file

@ -2,9 +2,28 @@
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.edit.n3editing.VTwo.fields.ConstantFieldOptions;
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 {
@ -20,44 +39,45 @@ public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
return "http://vivoweb.org/ontology/core#MemberRole";
}
@Override
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return new ConstantFieldOptions(
"","Select type",
"http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
"http://vivoweb.org/ontology/core#Association","Association",
"http://vivoweb.org/ontology/core#Center","Center",
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
"http://vivoweb.org/ontology/core#College","College",
"http://vivoweb.org/ontology/core#Committee","Committee",
"http://vivoweb.org/ontology/core#Company","Company",
"http://vivoweb.org/ontology/core#Consortium","Consortium",
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
"http://vivoweb.org/ontology/core#Department","Department",
"http://vivoweb.org/ontology/core#Division","Division",
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
"http://vivoweb.org/ontology/core#Foundation","Foundation",
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
"http://xmlns.com/foaf/0.1/Group","Group",
"http://vivoweb.org/ontology/core#Hospital","Hospital",
"http://vivoweb.org/ontology/core#Institute","Institute",
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
"http://vivoweb.org/ontology/core#Library","Library",
"http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
"http://vivoweb.org/ontology/core#Museum","Museum",
"http://xmlns.com/foaf/0.1/Organization","Organization",
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
"http://vivoweb.org/ontology/core#Program","Program",
"http://vivoweb.org/ontology/core#Publisher","Publisher",
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
"http://vivoweb.org/ontology/core#School","School",
"http://vivoweb.org/ontology/core#Team","Team",
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
"http://vivoweb.org/ontology/core#University","University");
}
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
return GeneratorUtil.buildResourceAndLabelFieldOptions(
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
I18n.bundle(vreq).text("select_type"),
"http://vivoweb.org/ontology/core#AcademicDepartment",
"http://vivoweb.org/ontology/core#Association",
"http://vivoweb.org/ontology/core#Center",
"http://vivoweb.org/ontology/core#ClinicalOrganization",
"http://vivoweb.org/ontology/core#College",
"http://vivoweb.org/ontology/core#Committee",
"http://vivoweb.org/ontology/core#Company",
"http://vivoweb.org/ontology/core#Consortium",
"http://vivoweb.org/ontology/core#CoreLaboratory",
"http://vivoweb.org/ontology/core#Department",
"http://vivoweb.org/ontology/core#Division",
"http://vivoweb.org/ontology/core#ExtensionUnit",
"http://vivoweb.org/ontology/core#Foundation",
"http://vivoweb.org/ontology/core#FundingOrganization",
"http://vivoweb.org/ontology/core#GovernmentAgency",
"http://xmlns.com/foaf/0.1/Group",
"http://vivoweb.org/ontology/core#Hospital",
"http://vivoweb.org/ontology/core#Institute",
"http://vivoweb.org/ontology/core#Laboratory",
"http://vivoweb.org/ontology/core#Library",
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */,
"http://vivoweb.org/ontology/core#Museum",
"http://xmlns.com/foaf/0.1/Organization",
"http://vivoweb.org/ontology/core#PrivateCompany",
"http://vivoweb.org/ontology/core#Program",
"http://vivoweb.org/ontology/core#Publisher",
"http://vivoweb.org/ontology/core#ResearchOrganization",
"http://vivoweb.org/ontology/core#School",
"http://vivoweb.org/ontology/core#Team",
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory",
"http://vivoweb.org/ontology/core#StudentOrganization",
"http://purl.obolibrary.org/obo/ERO_0000565" /* Technology Transfer Office */,
"http://vivoweb.org/ontology/core#University");
}
@Override
boolean isShowRoleLabelField(){return true;}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,127 @@
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,6 +19,7 @@ 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.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
public class GrantHasContributorGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
@ -92,7 +93,7 @@ public class GrantHasContributorGenerator extends VivoBaseGenerator implements
//Add validator
conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
//Adding additional data, specifically edit mode
addFormSpecificData(conf, vreq);

View file

@ -15,6 +15,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpSession;
@ -41,6 +42,7 @@ 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.ManageLabelsForPersonPreprocessor;
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;
/**
@ -246,12 +248,12 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
private void addFormSpecificData(EditConfigurationVTwo config,
VitroRequest vreq) {
//Get all language codes/labels in the system, and this list is sorted by language name
List<HashMap<String, String>> locales = this.getLocales(vreq);
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq);
//Get language codes/labels for existing labels, and this list is sorted by language name
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
HashMap<String, String> localeCodeToNameMap = this.getFullCodeToLanguageNameMap(locales);
//the labels already added by the user
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq);
int numberExistingLabels = existingLabels.size();
//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);
@ -267,6 +269,19 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
config.addFormSpecificData("selectLocale",availableLocalesForAdd);
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
config.addFormSpecificData("deleteWebpageUrl", "/edit/primitiveDelete");
@ -419,28 +434,27 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
+ " ?subject rdfs:label ?label \n"
+ "} ORDER BY ?label";
private ArrayList<Literal> getExistingLabels(String subjectUri, VitroRequest vreq) {
String queryStr = QueryUtils.subUriForQueryVar(LABEL_QUERY, "subject", subjectUri);
log.debug("queryStr = " + queryStr);
ArrayList<Literal> labels = new ArrayList<Literal>();
try {
//We want to get the labels for all the languages, not just the display language
ResultSet results = QueryUtils.getLanguageNeutralQueryResults(queryStr, vreq);
// No longer retrieving language-neutral results here, so that
// language editing is consistent with other editing forms.
// Editable values depend on the interface's locale selector.
ResultSet results = QueryUtils.getQueryResults(queryStr, vreq);
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
Literal nodeLiteral = soln.get("label").asLiteral();
labels.add(nodeLiteral);
}
} catch (Exception e) {
log.error(e, e);
}
return labels;
}
}
//Putting this into a method allows overriding it in subclasses
@ -454,30 +468,32 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
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);
}
}
//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;
return list;
}
public HashMap<String, String> getFullCodeToLanguageNameMap(List<HashMap<String, String>> localesList) {
HashMap<String, String> codeToLanguageMap = new HashMap<String, String>();
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.List;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.rdf.model.Model;
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.ParameterizedSparqlString;
import org.apache.jena.query.QueryExecution;
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.ModelFactory;
import org.apache.jena.rdf.model.RDFNode;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
@ -26,6 +26,8 @@ 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.edit.n3editing.VTwo.EditConfigurationUtils;
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.
@ -153,16 +155,36 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
+ "SELECT DISTINCT ?vcard ?link ?url ?rank ?typeLabel (group_concat(distinct ?linkLabel;separator=\"/\") as ?label) WHERE { \n"
+ "SELECT DISTINCT ?vcard ?link ?url (MIN(?rank_) AS ?rank) \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"
+ " ?vcard vcard:hasURL ?link . \n"
+ " ?link a vcard:URL \n"
+ " OPTIONAL { ?link vcard:url ?url } \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 { ?type rdfs:label ?typeLabel } \n"
+ "} GROUP BY ?rank ?vcard ?link ?url ?typeLabel \n"
// UQAM-Linguistic-Management Add linguistic control on label
// Try full locale
+ " 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";
@ -175,8 +197,10 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
Model constructedModel = ModelFactory.createDefaultModel();
rdfService.sparqlConstructQuery(constructStr, constructedModel);
String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(), "subject", subjectUri);
/*
* UQAM-Linguistic-Management Adjust the getQuery signature for managing the linguistic context
*/
String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(vreq), "subject", subjectUri);
log.debug("Query string is: " + queryStr);
QueryExecution qe = QueryExecutionFactory.create(queryStr, constructedModel);
@ -205,8 +229,16 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
return AddEditWebpageFormGenerator.class.getName();
}
protected String getQuery() {
return WEBPAGE_QUERY;
protected String getQuery(VitroRequest vreq) {
/*
* 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() {

View file

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

View file

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

View file

@ -20,6 +20,7 @@ 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.IndividualsViaVClassOptions;
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
EditConfigurationGenerator {
@ -184,7 +185,7 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingAdvisor"));
conf.addValidator(new FirstAndLastNameValidator("existingAdvisor", I18n.bundle(vreq)));
addFormSpecificData(conf, vreq);
prepare(vreq, conf);

View file

@ -20,6 +20,7 @@ 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.IndividualsViaVClassOptions;
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
EditConfigurationGenerator {
@ -184,7 +185,7 @@ public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator imp
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
conf.addValidator(new AntiXssValidation());
conf.addValidator(new FirstAndLastNameValidator("existingAdvisee"));
conf.addValidator(new FirstAndLastNameValidator("existingAdvisee", I18n.bundle(vreq)));
addFormSpecificData(conf, vreq);
prepare(vreq, conf);

View file

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

View file

@ -0,0 +1,36 @@
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,6 +12,7 @@ import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.semservices.bo.Concept;
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
import edu.cornell.mannlib.semservices.service.impl.UMLSService;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
/**
* Utilities for search
@ -38,7 +39,9 @@ public class ConceptSearchServiceUtils {
//URL to label
public static HashMap<String, VocabSourceDescription> getVocabSources() {
HashMap<String, VocabSourceDescription> map = new HashMap<String, VocabSourceDescription>();
map.put(UMLSVocabSource, new VocabSourceDescription("UMLS", UMLSVocabSource, "http://www.nlm.nih.gov/research/umls/", "Unified Medical Language System"));
if(UMLSService.configurationFileExists()) {
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
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"));
@ -53,6 +56,7 @@ public class ConceptSearchServiceUtils {
//Get the hashmap mapping service name to Service class
private static HashMap<String, String> getMapping() {
HashMap<String, String> map = new HashMap<String, String>();
map.put(UMLSVocabSource, "edu.cornell.mannlib.semservices.service.impl.UMLSService");
map.put(AgrovocVocabSource, "edu.cornell.mannlib.semservices.service.impl.AgrovocService");
map.put(GemetVocabSource, "edu.cornell.mannlib.semservices.service.impl.GemetService");

View file

@ -54,10 +54,16 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
@Override
public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException {
ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(vitroRequest.getRDFService());
ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(vitroRequest.getRDFService());
OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(vitroRequest.getRDFService());
Map<String, String> organizationLabels = VisualizationCaches.organizationLabels.getNoWait(vitroRequest.getRDFService());
RDFService rdfService = vitroRequest.getRDFService();
rdfService.setVitroRequest(vitroRequest);
// VisualizationCaches.rebuildAll(rdfService);
// VisualizationCaches.conceptToLabel.build(rdfService);
// 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");
if (!StringUtils.isEmpty(data)) {

View file

@ -2,8 +2,10 @@
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.utils.threads.VitroBackgroundThread;
import edu.cornell.mannlib.vitro.webapp.visualization.model.ConceptLabelMap;
import java.util.Date;
import java.util.HashMap;
@ -85,7 +87,69 @@ public class CachingRDFServiceExecutor<T> {
if (backgroundTask != null && backgroundTask.isDone()) {
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 (cachedResults != null) {
// If the background service exists, and the cache is considered invalid

View file

@ -9,6 +9,8 @@ import org.apache.jena.rdf.model.Literal;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
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.ResultSetConsumer;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
@ -232,13 +234,37 @@ final public class VisualizationCaches {
new CachingRDFServiceExecutor.RDFServiceCallable<Map<String, String>>(visualizationAffinity) {
@Override
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() +
"SELECT ?org ?orgLabel\n" +
"SELECT ?org (Min(?orgLabel_) AS ?orgLabel) \n" +
"WHERE\n" +
"{\n" +
" ?org a foaf:Organization .\n" +
" ?org rdfs:label ?orgLabel .\n" +
"}\n";
" ?org a foaf:Organization \n" +
" OPTIONAL { ?org rdfs:label ?orgLabelPrimary . \n" +
" FILTER (LANG(?orgLabelPrimary) = '" + langCtx + "') \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<>();
@ -390,6 +416,16 @@ final public class VisualizationCaches {
new CachingRDFServiceExecutor.RDFServiceCallable<ConceptLabelMap>() {
@Override
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() +
"SELECT ?concept ?label\n" +
"WHERE\n" +
@ -398,13 +434,13 @@ final public class VisualizationCaches {
" ?person core:hasResearchArea ?concept .\n" +
" ?concept a skos:Concept .\n" +
" ?concept rdfs:label ?label .\n" +
" FILTER (lang(?label) = '" + langCtx+"' ) \n" +
"}\n";
// final Map<String, String> map = new HashMap<>();
final ConceptLabelMap map = new ConceptLabelMap();
rdfService.sparqlSelectQuery(query, new ResultSetConsumer() {
@Override
protected void processQuerySolution(QuerySolution qs) {
String conceptURI = qs.getResource("concept").getURI().intern();
String label = qs.getLiteral("label").getString().intern();

View file

@ -2,29 +2,40 @@
package org.vivoweb.webapp.sitemap;
import org.apache.commons.lang3.StringUtils;
import org.apache.jena.query.QuerySolution;
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
import org.apache.commons.io.IOUtils;
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 java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
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 edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
@WebServlet(name = "SiteMapServlet", urlPatterns = {"/robots.txt","/sitemap.xml"})
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
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String requestURI = request.getRequestURI();
if (requestURI != null) {
@ -60,7 +71,7 @@ public class SiteMapServlet extends VitroHttpServlet {
"WHERE\n" +
"{\n" +
" ?person a foaf:Person .\n" +
"}\n";
"} LIMIT " + MAX_URLS + "\n";
final VitroRequest vreq = new VitroRequest(request);
final ServletOutputStream out = response.getOutputStream();
@ -68,28 +79,33 @@ public class SiteMapServlet extends VitroHttpServlet {
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
out.println("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">");
List<String> personURIs = new ArrayList<String>();
try {
vreq.getRDFService().sparqlSelectQuery(query, new ResultSetConsumer() {
@Override
protected void processQuerySolution(QuerySolution qs) {
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) {
}
}
personURIs.add(qs.getResource("person").getURI());
}
});
} 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>");
}
}
@ -104,7 +120,8 @@ public class SiteMapServlet extends VitroHttpServlet {
if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) {
StringBuilder builder = new StringBuilder();
builder.append(scheme).append("://").append(serverName);
if (("http".equalsIgnoreCase(scheme) && serverPort != 80) || ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
if (("http".equalsIgnoreCase(scheme) && serverPort != 80)
|| ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
builder.append(":").append(serverPort);
}

View file

@ -7,6 +7,12 @@ import edu.cornell.mannlib.vitro.webapp.i18n.VitroResourceBundle;
import javax.servlet.ServletContextEvent;
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 {
@Override

36
docker-compose.yml Normal file
View file

@ -0,0 +1,36 @@
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,19 +1,16 @@
<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>
<groupId>org.vivoweb</groupId>
<artifactId>vivo-home</artifactId>
<version>1.11.2-SNAPSHOT</version>
<version>1.12.1-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.vivoweb</groupId>
<artifactId>vivo-project</artifactId>
<version>1.11.2-SNAPSHOT</version>
<version>1.12.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
@ -72,4 +69,4 @@
<type>tar.gz</type>
</dependency>
</dependencies>
</project>
</project>

View file

@ -82,10 +82,10 @@
# ----------------------------
#
# Content triples source module: holds data contents
# The SDB-based implementation is the default option. It reads its parameters
# The TDB-based implementation is the default option. It reads its parameters
# from the runtime.properties file, for backward compatibility.
#
# Other implementations are based on a local TDB instance, a "standard" SPARQL
# Other implementations are based on an SDB instance, a "standard" SPARQL
# 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
# or installation options section of the technical documentation for the
# version of VIVO you are running:
# https://wiki.duraspace.org/display/VIVO/VIVO+Technical+Documentation
# https://wiki.lyrasis.org/display/VIVO/VIVO+Technical+Documentation
#
# -----------------------------------------------------------------------------
@ -39,7 +39,6 @@ Vitro.defaultNamespace = http://vivo.mydomain.edu/individual/
#
rootUser.emailAddress = vivo_root@mydomain.edu
#
# Argon2 password hashing parameters for time, memory and parallelism required to
# compute a hash.
@ -72,20 +71,23 @@ argon2.time = 1000
# 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
# changes to their accounts.
# Example:
# email.smtpHost = smtp.mydomain.edu
# email.replyTo = vivoAdmin@mydomain.edu
#
email.smtpHost = smtp.mydomain.edu
email.replyTo = vivoAdmin@mydomain.edu
# email.smtpHost =
# email.replyTo =
#
# URL of Solr context used in local VIVO search. This will usually consist of:
# scheme + server_name + port + vivo_webapp_name + "solr"
# In the standard installation, the Solr context will be on the same server as VIVO,
# and in the same Tomcat instance. The path will be the VIVO webapp.name (specified
# in build.properties) + "solr"
# scheme + server_name + port + "solr" + solr_core_name
# In a standard Solr installation, the Solr service will be available on port
# 8983. The path will be /solr followed by the name used when adding a core
# for VIVO.
# Example:
# 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
vitro.local.solr.url = http://localhost:8983/solr/vivocore
# -----------------------------------------------------------------------------
@ -112,6 +114,22 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
#
#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
@ -130,7 +148,6 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
#
# VitroConnection.DataSource.pool.maxIdle = 10
# -----------------------------------------------------------------------------
# USING A DIFFERENT DATABASE
# -----------------------------------------------------------------------------
@ -202,8 +219,8 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
#
# A list of supported languages or Locales that the user may choose to
# use instead of the one specified by the browser. Selection images must
# be available in the i18n/images directory of the theme. This affects
# use instead of the one specified by the browser. The selected language(s)
# must exist in the VIVO-languages repository. This affects
# RDF data retrieved from the model, if RDFService.languageFilter is true.
# This also affects the text of pages that have been modified to support
# multiple languages.
@ -217,26 +234,43 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
# 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
# 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
#
# The orcid.webappBaseUrl must end in a front slash (/)
# if it includes a path past the domain and (if required) port.
#
# 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
# return control to VIVO. The actual callback URL will be the string you
# 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.externalIdCommonName = VIVO Cornell Identifier
# 1.2, 2.0
# The version of ORCIDs API protocol that VIVO will expect. Currently, the
# only supported version is 2.0.
# orcid.apiVersion = 2.0
# release, sandbox
# The entry point for ORCID's public API.
# This changes, depending on whether you are using the sandbox API or the
# production API. Value is either release or sandbox.
# orcid.api = sandbox
# Specify the type of API access that you have - public or member
# public - only allows you to confirm ORCID IDs
# 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
# Specify the type of API access that you have - public or member
# public - only allows you to confirm ORCID IDs
# 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
#orcid.apiLevel = public
@ -392,7 +426,15 @@ 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)
createAndLink.providers = doi, pmid
# Triple pattern fragments is a very fast, very simple means for querying a triple store.
# 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.
# Triple Pattern Fragments is a very fast, very simple means for querying a
# triple store. 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.
#
# 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

View file

@ -23,7 +23,8 @@ display:academicDeptsDataGetter
WHERE
{
?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:extensions.LabelsAcrossContextNodes ;
rdfs:label "Labels across relatedBy/relates" ;
:hasTypeRestriction "http://vivoweb.org/ontology/core#Relationship" ;
:appliesToContextNodeType "http://vivoweb.org/ontology/core#Relationship" ;
:hasIncomingProperty "http://vivoweb.org/ontology/core#relatedBy" ;
:hasOutgoingProperty "http://vivoweb.org/ontology/core#relates" .
@ -117,6 +117,22 @@
}
""" .
# 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
a searchIndex:documentBuilding.SelectQueryDocumentModifier ,
searchIndex:documentBuilding.DocumentModifier ;

View file

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

View file

@ -4763,9 +4763,8 @@ use one freetextKeyword assertion for each keyword or phrase.</obo:IAO_0000112>
<!-- http://vivoweb.org/ontology/core#researcherId -->
<owl:DatatypeProperty rdf:about="http://vivoweb.org/ontology/core#researcherId">
<rdfs:label xml:lang="en">ISI Researcher ID</rdfs:label>
<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:label xml:lang="en">ResearcherID</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>
<rdfs:subPropertyOf rdf:resource="http://vivoweb.org/ontology/core#identifier"/>
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
</owl:DatatypeProperty>
@ -5982,6 +5981,32 @@ 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 -->
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BFO_0000001">
@ -9754,6 +9779,20 @@ 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 -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GovernmentAgency">
@ -9846,6 +9885,21 @@ 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 -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#Institute">
@ -10028,6 +10082,21 @@ 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 -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MedicalResidency">

View file

@ -1,6 +1,20 @@
This directory contains ontology "TBox" files with class and property definitions.
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
to these files.
This directory contains ontology "TBox" files with class and property
definitions or annotations that are intended to be editable in the VIVO GUI.
These files are loaded by the VIVO application when it starts for the first time
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.

View file

@ -1,5 +1,6 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" 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">
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
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">
<profiles>
<profile>

View file

@ -7,13 +7,13 @@
<groupId>org.vivoweb</groupId>
<artifactId>vivo-installer-home</artifactId>
<version>1.11.2-SNAPSHOT</version>
<version>1.12.1-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.vivoweb</groupId>
<artifactId>vivo-installer</artifactId>
<version>1.11.2-SNAPSHOT</version>
<version>1.12.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
@ -24,6 +24,34 @@
</properties>
<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>
<id>install</id>
<activation>
@ -108,11 +136,11 @@
<type>tar.gz</type>
</dependency>
<!-- Dependency for multilingual support -->
<!-- dependency>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vivo-languages-home</artifactId>
<version>[2.0.0,2.1.0)</version>
<artifactId>vivo-languages-home-core</artifactId>
<version>${project.version}</version>
<type>tar.gz</type>
</dependency -->
</dependency>
</dependencies>
</project>

View file

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

View file

@ -7,13 +7,13 @@
<groupId>org.vivoweb</groupId>
<artifactId>vivo-installer-vivo</artifactId>
<version>1.11.2-SNAPSHOT</version>
<version>1.12.1-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.vivoweb</groupId>
<artifactId>vivo-installer</artifactId>
<version>1.11.2-SNAPSHOT</version>
<version>1.12.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
@ -122,6 +122,7 @@
</profiles>
<build>
<finalName>${app-name}</finalName>
<plugins>
<plugin>
<artifactId>maven-install-plugin</artifactId>
@ -153,18 +154,18 @@
<type>war</type>
</dependency>
<!-- Dependencies for multilingual support -->
<!-- dependency>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vitro-languages-webapp</artifactId>
<version>[2.0.0,2.1.0)</version>
<artifactId>vitro-languages-webapp-core</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.vivoweb</groupId>
<artifactId>vivo-languages-webapp</artifactId>
<version>[2.0.0,2.1.0)</version>
<artifactId>vivo-languages-webapp-core</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency -->
</dependency>
<dependency>
<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.
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.MaxBackupIndex=10
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout

73
pom.xml
View file

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

View file

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

View file

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

60
start.sh Normal file
View file

@ -0,0 +1,60 @@
#!/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" ]
then
echo 'New version number required eg. 1.9.0-rc1'
echo 'New version number required eg. 1.12.0-RC1'
exit 1
fi

View file

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

View file

@ -5,6 +5,10 @@
# 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.application.ApplicationSetup
@ -21,6 +25,9 @@ edu.cornell.mannlib.vitro.webapp.config.RevisionInfoSetup
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.ContentModelSetup
@ -67,9 +74,6 @@ org.vivoweb.webapp.startup.SearchResultTemplateModelSetup
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
# and the PermissionRegistry must already be set up.
edu.cornell.mannlib.vitro.webapp.searchindex.SearchIndexerSetup
@ -91,5 +95,3 @@ 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.
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"?>
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
<list-view-config>
<query-select>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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