1
|
//version compatibility: 1.0.1-SNAPSHOT
|
2
|
print("here");
|
3
|
|
4
|
function dropDB(){
|
5
|
print("\n\n Drop DB\n\n")
|
6
|
db.dropDatabase()
|
7
|
}
|
8
|
function createCollections(){
|
9
|
print("\n\n Create Collections \n\n")
|
10
|
db.createCollection("community")
|
11
|
db.createCollection("divHelpContent")
|
12
|
db.createCollection("divId")
|
13
|
db.createCollection("entity")
|
14
|
db.createCollection("page")
|
15
|
db.createCollection("pageHelpContent")
|
16
|
db.createCollection("statistics")
|
17
|
db.createCollection("communitySubscribers")
|
18
|
}
|
19
|
function initializeEntitiesPagesDivIds(){
|
20
|
print("\n\n Initialize entities, pages & divIds \n\n")
|
21
|
db.entity.save({"pid" : "publication", "name" : "Publication"})
|
22
|
db.entity.save({"pid" : "dataset", "name" : "Research Data"})
|
23
|
db.entity.save({"pid" : "software", "name" : "Software"})
|
24
|
db.entity.save({"pid" : "project", "name" : "Project"})
|
25
|
db.entity.save({"pid" : "organization", "name" : "Organization"})
|
26
|
db.entity.save({"pid" : "datasource", "name" : "Content Provider"})
|
27
|
|
28
|
publicationId = db.entity.find( { pid: "publication" }).map( function(entity) { return entity._id.str; } ).toString()
|
29
|
datasetId = db.entity.find( { pid: "dataset" }).map( function(entity) { return entity._id.str; } ).toString()
|
30
|
softwareId = db.entity.find( { pid: "software" }).map( function(entity) { return entity._id.str; } ).toString()
|
31
|
projectId = db.entity.find( { pid: "project" }).map( function(entity) { return entity._id.str; } ).toString()
|
32
|
organizationId = db.entity.find( { pid: "organization" }).map( function(entity) { return entity._id.str; } ).toString()
|
33
|
datasourceId = db.entity.find( { pid: "datasource" }).map( function(entity) { return entity._id.str; } ).toString()
|
34
|
|
35
|
db.page.save({"name" : "Publication Landing", "route" : "/search/publication", "type" : "landing", "connect":true,"openaire":true,"entities" : [publicationId]})
|
36
|
db.page.save({"name" : "Research Data Landing", "route" : "/search/dataset", "type" : "landing", "connect":true,"openaire":true,"entities" : [datasetId]})
|
37
|
db.page.save({"name" : "Software Landing", "route" : "/search/software", "type" : "landing", "connect":true,"openaire":true,"entities" : [softwareId]})
|
38
|
db.page.save({"name" : "Project Landing", "route" : "/search/project", "type" : "landing", "connect":true,"openaire":true,"entities" : [projectId]})
|
39
|
db.page.save({"name" : "Organization Landing", "route" : "/search/organization", "type" : "landing", "connect":true,"openaire":true,"entities" : [organizationId]})
|
40
|
db.page.save({"name" : "Content Provider Landing", "route" : "/search/dataprovider", "type" : "landing", "connect":true,"openaire":true,"entities" : [datasourceId]})
|
41
|
db.page.save({"name" : "Project Report", "route" : "/project-report", "type" : "landing", "connect":false,"openaire":true,"entities" : [projectId]})
|
42
|
|
43
|
db.page.save({"name" : "Search Find", "type" : "search", "connect":false,"openaire":true,"entities" : [], "route" : "/search/find"})
|
44
|
|
45
|
db.page.save({"name" : "Search Publications", "route" : "/search/find/publications", "type" : "search", "connect":true,"openaire":true,"entities" : [publicationId]})
|
46
|
db.page.save({"name" : "Search Research Data ", "route" : "/search/find/datasets", "type" : "search", "connect":true,"openaire":true,"entities" : [datasetId]})
|
47
|
db.page.save({"name" : "Search Software", "route" : "/search/find/software", "type" : "search", "connect":true,"openaire":true,"entities" : [softwareId]})
|
48
|
db.page.save({"name" : "Search Projects", "route" : "/search/find/projects", "type" : "search", "connect":true,"openaire":true,"entities" : [projectId]})
|
49
|
db.page.save({"name" : "Search Organizations", "route" : "/search/find/organizations", "type" : "search", "connect":false,"openaire":true,"entities" : [organizationId]})
|
50
|
db.page.save({"name" : "Search Content Providers", "route" : "/search/find/dataproviders", "type" : "search", "connect":true,"openaire":true,"entities" : [datasourceId]})
|
51
|
|
52
|
db.page.save({"name" : "Advanced Search Publications", "route" : "/search/advanced/publications", "type" : "search", "connect":true,"openaire":true,"entities" : [publicationId]})
|
53
|
db.page.save({"name" : "Advanced Search Research Data ", "route" : "/search/advanced/datasets", "type" : "search", "connect":true,"openaire":true,"entities" : [datasetId]})
|
54
|
db.page.save({"name" : "Advanced Search Software", "route" : "/search/advanced/software", "type" : "search", "connect":true,"openaire":true,"entities" : [softwareId]})
|
55
|
db.page.save({"name" : "Advanced Search Projects", "route" : "/search/advanced/projects", "type" : "search", "connect":false,"openaire":true,"entities" : [projectId]})
|
56
|
db.page.save({"name" : "Advanced Search Organizations", "route" : "/search/advanced/organizations", "type" : "search", "connect":false,"openaire":true,"entities" : [organizationId]})
|
57
|
db.page.save({"name" : "Advanced Search Content Providers", "route" : "/search/advanced/dataproviders", "type" : "search", "connect":false,"openaire":true,"entities" : [datasourceId]})
|
58
|
|
59
|
db.page.save({"name" : "Search Journals", "route" : "/search/journals", "type" : "search", "connect":false,"openaire":true,"entities" : [datasourceId]})
|
60
|
db.page.save({"name" : "Search Entity Registries", "route" : "/search/entity-registries", "type" : "search", "connect":false,"openaire":true,"entities" : [datasourceId]})
|
61
|
db.page.save({"name" : "Search Compatible Content Providers", "route" : "/search/content-providers", "type" : "search", "connect":false,"openaire":true,"entities" : [datasourceId]})
|
62
|
db.page.save({"name" : "Search Journals - Table view ", "route" : "/search/journals-table", "type" : "search", "connect":false,"openaire":true,"entities" : [datasourceId]})
|
63
|
db.page.save({"name" : "Search Entity Registries - Table view", "route" : "/search/entity-registries-table", "type" : "search", "connect":false,"openaire":true,"entities" : [datasourceId]})
|
64
|
db.page.save({"name" : "Search Compatible Content Providers -Table view", "route" : "/search/content-providers-table", "type" : "search", "connect":false,"openaire":true,"entities" : [datasourceId]})
|
65
|
|
66
|
db.page.save({"name" : "Deposit Publications", "route" : "/participate/deposit-publications", "type" : "share", "connect":true,"openaire":true,"entities" : [publicationId]})
|
67
|
db.page.save({"name" : "Deposit Research Data", "route" : "/participate/deposit-datasets", "type" : "share", "connect":true,"openaire":true,"entities" : [datasetId]})
|
68
|
db.page.save({"name" : "Deposit Publications Results", "route" : "/participate/deposit-publications-result", "type" : "share", "connect":true,"openaire":true,"entities" : [publicationId]})
|
69
|
db.page.save({"name" : "Deposit Research Data Results", "route" : "/participate/deposit-datasets-result", "type" : "share", "connect":true,"openaire":true,"entities" : [datasetId]})
|
70
|
db.page.save({"name" : "Deposit Research Data subject result", "route" : "/participate/deposit-subject-result", "type" : "share", "connect":true,"openaire":true,"entities" : [datasetId]})
|
71
|
|
72
|
db.page.save({"name" : "Link", "route" : "/participate/claim", "type" : "link", "connect":true,"openaire":true,"entities" : [projectId]})
|
73
|
db.page.save({"name" : "Direct Link", "route" : "/participate/direct-claim", "type" : "link", "connect":true,"openaire":true,"entities" : []})
|
74
|
db.page.save({"name" : "My claims", "route" : "/myclaims", "type" : "link", "connect":true,"openaire":true,"entities" : []})
|
75
|
db.page.save({"name" : "Administrator claims", "route" : "/claims", "type" : "link", "connect":true,"openaire":true,"entities" : []})
|
76
|
db.page.save({"name" : "Claims Project Manager", "route" : "/claims-project-manager", "type" : "link", "connect":false,"openaire":true,"entities" : []})
|
77
|
|
78
|
db.page.save({"name" : "Monitor", "route" : "/monitor", "type" : "statistics", "connect":true,"openaire":false,"entities" : []})
|
79
|
|
80
|
link = db.page.find( { route: "/participate/claim" }).map( function(page) { return page._id.str; } ).toString()
|
81
|
directLink = db.page.find( { route: "/participate/direct-claim" }).map( function(page) { return page._id.str; } ).toString()
|
82
|
|
83
|
db.divId.save({ "name" : "link-context-form", "pages" : [link, directLink]})
|
84
|
db.divId.save({ "name" : "link-project-form", "pages" : [link, directLink]})
|
85
|
db.divId.save({ "name" : "link-result-form", "pages" : [link, directLink]})
|
86
|
db.divId.save({ "name" : "link-result-bulk", "pages" : [link]})
|
87
|
db.divId.save({ "name" : "link-metadata", "pages" : [link, directLink]})
|
88
|
}
|
89
|
function createCommunity(name,communityPid){
|
90
|
var communitySaved = db.community.find( { pid: communityPid }).map( function(community) { return community._id.str; } ).toString()
|
91
|
if(communitySaved){
|
92
|
print("\n\n Community \'"+name +"\' exists\n\n");
|
93
|
return ;
|
94
|
}
|
95
|
print("\n\n Create community \n\n");
|
96
|
print("Name:"+name);
|
97
|
print("communityPid:"+communityPid);
|
98
|
|
99
|
publicationLanding = db.page.find( { route: "/search/publication" }).map( function(page) { return page._id.str; } ).toString()
|
100
|
datasetLanding = db.page.find( { route: "/search/dataset" }).map( function(page) { return page._id.str; } ).toString()
|
101
|
softwareLanding = db.page.find( { route: "/search/software" }).map( function(page) { return page._id.str; } ).toString()
|
102
|
projectLanding = db.page.find( { route: "/search/project" }).map( function(page) { return page._id.str; } ).toString()
|
103
|
organizationLanding = db.page.find( { route: "/search/organization" }).map( function(page) { return page._id.str; } ).toString()
|
104
|
dataproviderLanding = db.page.find( { route: "/search/dataprovider" }).map( function(page) { return page._id.str; } ).toString()
|
105
|
projectReport = db.page.find( { route: "/project-report" }).map( function(page) { return page._id.str; } ).toString()
|
106
|
|
107
|
searchFind = db.page.find( { route: "/search/find" }).map( function(page) { return page._id.str; } ).toString()
|
108
|
|
109
|
searchPublications = db.page.find( { route: "/search/find/publications" }).map( function(page) { return page._id.str; } ).toString()
|
110
|
searchDatasets = db.page.find( { route: "/search/find/datasets" }).map( function(page) { return page._id.str; } ).toString()
|
111
|
searchSoftware = db.page.find( { route: "/search/find/software" }).map( function(page) { return page._id.str; } ).toString()
|
112
|
searchProject = db.page.find( { route: "/search/find/projects" }).map( function(page) { return page._id.str; } ).toString()
|
113
|
searchOrganization = db.page.find( { route: "/search/find/organizations" }).map( function(page) { return page._id.str; } ).toString()
|
114
|
searchDataprovider = db.page.find( { route: "/search/find/dataproviders" }).map( function(page) { return page._id.str; } ).toString()
|
115
|
|
116
|
advancedSearchPublications = db.page.find( { route: "/search/advanced/publications" }).map( function(page) { return page._id.str; } ).toString()
|
117
|
advancedSearchDatasets = db.page.find( { route: "/search/advanced/datasets" }).map( function(page) { return page._id.str; } ).toString()
|
118
|
advancedSearchSoftware = db.page.find( { route: "/search/advanced/software" }).map( function(page) { return page._id.str; } ).toString()
|
119
|
advancedSearchProject = db.page.find( { route: "/search/advanced/projects" }).map( function(page) { return page._id.str; } ).toString()
|
120
|
advancedSearchOrganization = db.page.find( { route: "/search/advanced/organizations" }).map( function(page) { return page._id.str; } ).toString()
|
121
|
advancedSearchDataprovider = db.page.find( { route: "/search/advanced/dataproviders" }).map( function(page) { return page._id.str; } ).toString()
|
122
|
|
123
|
searchJournals = db.page.find( { route: "/search/journals" }).map( function(page) { return page._id.str; } ).toString()
|
124
|
searchEntityRegistries = db.page.find( { route: "/search/entity-registries" }).map( function(page) { return page._id.str; } ).toString()
|
125
|
searchContentProviders = db.page.find( { route: "/search/content-providers" }).map( function(page) { return page._id.str; } ).toString()
|
126
|
searchJournalsTable = db.page.find( { route: "/search/journals-table" }).map( function(page) { return page._id.str; } ).toString()
|
127
|
searchEntityRegistriesTable = db.page.find( { route: "/search/entity-registries-table" }).map( function(page) { return page._id.str; } ).toString()
|
128
|
searchContentProvidersTable = db.page.find( { route: "/search/content-providers-table" }).map( function(page) { return page._id.str; } ).toString()
|
129
|
|
130
|
depositPublications = db.page.find( { route: "/participate/deposit-publications" }).map( function(page) { return page._id.str; } ).toString()
|
131
|
depositDatasets = db.page.find( { route: "/participate/deposit-datasets" }).map( function(page) { return page._id.str; } ).toString()
|
132
|
depositPublicationsResults = db.page.find( { route: "/participate/deposit-publications-result" }).map( function(page) { return page._id.str; } ).toString()
|
133
|
depositDatasetsResults = db.page.find( { route: "/participate/deposit-datasets-result" }).map( function(page) { return page._id.str; } ).toString()
|
134
|
depositDatasetSybjectResults = db.page.find( { route: "/participate/deposit-subject-result" }).map( function(page) { return page._id.str; } ).toString()
|
135
|
|
136
|
link = db.page.find( { route: "/participate/claim" }).map( function(page) { return page._id.str; } ).toString()
|
137
|
directLink = db.page.find( { route: "/participate/direct-claim" }).map( function(page) { return page._id.str; } ).toString()
|
138
|
myClaims = db.page.find( { route: "/myclaims" }).map( function(page) { return page._id.str; } ).toString()
|
139
|
administratorClaims = db.page.find( { route: "/claims" }).map( function(page) { return page._id.str; } ).toString()
|
140
|
claimsProjectManager = db.page.find( { route: "/claims-project-manager" }).map( function(page) { return page._id.str; } ).toString()
|
141
|
|
142
|
var community_pages = {}
|
143
|
community_pages[publicationLanding] = true;
|
144
|
community_pages[datasetLanding] = true;
|
145
|
community_pages[softwareLanding] = true;
|
146
|
community_pages[projectLanding] = true;
|
147
|
community_pages[organizationLanding] = true;
|
148
|
community_pages[dataproviderLanding] = true;
|
149
|
community_pages[projectReport] = true;
|
150
|
community_pages[searchFind] = true;
|
151
|
community_pages[searchPublications] = true;
|
152
|
community_pages[searchDatasets] = true;
|
153
|
community_pages[searchSoftware] = true;
|
154
|
community_pages[searchProject] = true;
|
155
|
community_pages[searchOrganization] = true;
|
156
|
community_pages[searchDataprovider] = true;
|
157
|
community_pages[advancedSearchPublications] = true;
|
158
|
community_pages[advancedSearchDatasets] = true;
|
159
|
community_pages[advancedSearchSoftware] = true;
|
160
|
community_pages[advancedSearchProject] = true;
|
161
|
community_pages[advancedSearchOrganization] = true;
|
162
|
community_pages[advancedSearchDataprovider] = true;
|
163
|
community_pages[searchJournals] = true;
|
164
|
community_pages[searchEntityRegistries] = true;
|
165
|
community_pages[searchContentProviders] = true;
|
166
|
community_pages[searchJournalsTable] = true;
|
167
|
community_pages[searchEntityRegistriesTable] = true;
|
168
|
community_pages[searchContentProvidersTable] = true;
|
169
|
community_pages[depositPublications] = true;
|
170
|
community_pages[depositDatasets] = true;
|
171
|
community_pages[depositPublicationsResults] = true;
|
172
|
community_pages[depositDatasetsResults] = true;
|
173
|
community_pages[depositDatasetSybjectResults] = true;
|
174
|
community_pages[link] = true;
|
175
|
community_pages[directLink] = true;
|
176
|
community_pages[myClaims] = true;
|
177
|
community_pages[administratorClaims] = true;
|
178
|
community_pages[claimsProjectManager] = true;
|
179
|
|
180
|
publicationId = db.entity.find( { pid: "publication" }).map( function(entity) { return entity._id.str; } ).toString()
|
181
|
datasetId = db.entity.find( { pid: "dataset" }).map( function(entity) { return entity._id.str; } ).toString()
|
182
|
softwareId = db.entity.find( { pid: "software" }).map( function(entity) { return entity._id.str; } ).toString()
|
183
|
projectId = db.entity.find( { pid: "project" }).map( function(entity) { return entity._id.str; } ).toString()
|
184
|
organizationId = db.entity.find( { pid: "organization" }).map( function(entity) { return entity._id.str; } ).toString()
|
185
|
datasourceId = db.entity.find( { pid: "datasource" }).map( function(entity) { return entity._id.str; } ).toString()
|
186
|
var community_entities = {}
|
187
|
community_entities[publicationId] = true;
|
188
|
community_entities[datasetId] = true;
|
189
|
community_entities[softwareId] = true;
|
190
|
community_entities[projectId] = true;
|
191
|
community_entities[organizationId] = true;
|
192
|
community_entities[datasourceId] = true;
|
193
|
|
194
|
db.community.save({ "name" : name, "pid" : communityPid, "pages" : community_pages, "entities" : community_entities})
|
195
|
|
196
|
openaireCommunity = db.community.find( { pid: communityPid }).map( function(community) { return community._id.str; } ).toString()
|
197
|
|
198
|
var numbers_map = {};
|
199
|
numbers_map["total"] = { "showInMonitor" : true, "showInDashboard" : false };
|
200
|
numbers_map["project"] = { "showInMonitor" : true, "showInDashboard" : false };
|
201
|
numbers_map["open"] = { "showInMonitor" : true, "showInDashboard" : false };
|
202
|
numbers_map["closed"] = { "showInMonitor" : true, "showInDashboard" : false };
|
203
|
numbers_map["embargo"] = { "showInMonitor" : true, "showInDashboard" : false };
|
204
|
numbers_map["restricted"] = { "showInMonitor" : true, "showInDashboard" : false };
|
205
|
var numbers = {"map":numbers_map};
|
206
|
var charts_map = {};
|
207
|
charts_map["timeline"] = { "showInMonitor" : true, "showInDashboard" : false };
|
208
|
charts_map["graph"] = { "showInMonitor" : true, "showInDashboard" : false };
|
209
|
charts_map["projectTable"] = { "showInMonitor" : true, "showInDashboard" : false };
|
210
|
charts_map["projectColumn"] = { "showInMonitor" : true, "showInDashboard" : false };
|
211
|
charts_map["projectPie"] = { "showInMonitor" : true, "showInDashboard" : false };
|
212
|
var charts = {"map":charts_map};
|
213
|
|
214
|
var statistics_entities = {"charts":charts,"numbers":numbers}
|
215
|
var entities = {};
|
216
|
entities["publication"]=statistics_entities;
|
217
|
entities["dataset"]=statistics_entities;
|
218
|
entities["software"]=statistics_entities;
|
219
|
var statistics = {"pid" : communityPid, "entities" : entities};
|
220
|
|
221
|
db.statistics.save(statistics);
|
222
|
|
223
|
var subscribers = [];
|
224
|
db.communitySubscribers.save({ "pid" : communityPid, "subscribers" : subscribers})
|
225
|
|
226
|
link_context_form = db.divId.find( { name: "link-context-form" }).map( function(divId) { return divId._id.str; } ).toString();
|
227
|
link_project_form = db.divId.find( { name: "link-project-form" }).map( function(divId) { return divId._id.str; } ).toString();
|
228
|
link_result_form = db.divId.find( { name: "link-result-form" }).map( function(divId) { return divId._id.str; } ).toString();
|
229
|
link_result_bulk = db.divId.find( { name: "link-result-bulk" }).map( function(divId) { return divId._id.str; } ).toString();
|
230
|
link_metadata = db.divId.find( { name: "link-metadata" }).map( function(divId) { return divId._id.str; } ).toString();
|
231
|
|
232
|
link_context_form_content = '<div> <div><span class="uk-text-bold"><span uk-icon="icon: info"> </span> Information:</span> Select a research community and/or a category and search for a community concept, or browse to the community tree through the categories</div> </div>';
|
233
|
link_project_form_content = '<div> <div><span class="uk-text-bold"><span uk-icon="icon: info"> </span> Information:</span> Search for projects using project name or grant id. Limit results filtering by funder.</div> </div>';
|
234
|
link_result_form_content = '<div> <div><span class="uk-text-bold"><span uk-icon="icon: info"> </span> Information:</span></div> Search for research results in OpenAIRE information space, Datacite, CrossRef or ORCID. <div class="uk-text-small">Use keywords, DOI (more than one - space separated), author's ORCID</div> </div> ';
|
235
|
link_result_bulk_content = '<div> <div><span class="uk-text-bold"><span uk-icon="icon: info"> </span> Information:</span> Upload a csv file containing a list of DOIs. For each DOI found in the file, metadata will be fetched from CrossRef or Datacite and will be added to your selected research results.</div> <div class="uk-margin-top uk-text-small"><span class="uk-text-bold">CSV format:</span> <ul class="uk-list"> <li>The format of CSV file should be "DOI","ACCESS_MODE","DATE".</li> <li>The value "DOI" is required</li> <li>Access mode column should have values: "OPEN","CLOSED" or "EMBARGO".</li> <li>Date column valid format is YYYY-MM-DD and is required when access mode has value EMBARGO.</li> <li>In case access mode is not available default value is "OPEN".</li> </ul> </div> </div> ';
|
236
|
link_metadata_content = '<div> <div><span class="uk-text-bold"><span uk-icon="icon: info"> </span> Information:</span> Manage access mode & type of selected research results. For OpenAIRE this functionality isn't available.</div> </div>';
|
237
|
|
238
|
communityID = db.community.find({ "pid" : communityPid}).map( function(community) { return community._id.str.toString(); } );
|
239
|
|
240
|
db.divHelpContent.save({ "divId" : link_context_form, "community" : communityID, "content" : link_context_form_content, "isActive" : false });
|
241
|
db.divHelpContent.save({ "divId" : link_project_form, "community" : communityID, "content" : link_project_form_content, "isActive" : false });
|
242
|
db.divHelpContent.save({ "divId" : link_result_form, "community" : communityID, "content" : link_result_form_content, "isActive" : true });
|
243
|
db.divHelpContent.save({ "divId" : link_result_bulk, "community" : communityID, "content" : link_result_bulk_content, "isActive" : true });
|
244
|
db.divHelpContent.save({ "divId" : link_metadata, "community" : communityID, "content" : link_metadata_content, "isActive" : false });
|
245
|
|
246
|
print("\n\n Done \n\n");
|
247
|
|
248
|
}
|
249
|
function createAllCommunities(){
|
250
|
createCommunity("OpenAIRE","openaire");
|
251
|
createCommunity("EGI Federation","egi");
|
252
|
createCommunity("Environment and Economy","ee");
|
253
|
createCommunity("Fisheries and Aquaculture Management","fam");
|
254
|
createCommunity("Instruct-ERIC","instruct");
|
255
|
createCommunity("Elixir","elixir-gr");
|
256
|
createCommunity("Marine Environmental Science","mes");
|
257
|
createCommunity("EC post-grant Open Access Pilot","oa-pg");
|
258
|
createCommunity("Neuroinformatics","ni");
|
259
|
createCommunity("Research Data Alliance","rda");
|
260
|
createCommunity("Digital Humanities and Cultural Heritage","dh-ch");
|
261
|
|
262
|
}
|
263
|
use openaire_admin;
|
264
|
|
265
|
dropDB();
|
266
|
createCollections();
|
267
|
initializeEntitiesPagesDivIds();
|
268
|
//createCommunity("OpenAIRE","openaire");
|
269
|
createAllCommunities();
|