Project

General

Profile

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">&nbsp;</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">&nbsp;</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">&nbsp;</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&#39;s ORCID</div> </div> ';
235
    link_result_bulk_content = '<div> <div><span class="uk-text-bold"><span uk-icon="icon: info">&nbsp;</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 &quot;DOI&quot;,&quot;ACCESS_MODE&quot;,&quot;DATE&quot;.</li> <li>The value &quot;DOI&quot; is required</li> <li>Access mode column should have values: &quot;OPEN&quot;,&quot;CLOSED&quot; or &quot;EMBARGO&quot;.</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 &quot;OPEN&quot;.</li> </ul> </div> </div> ';
236
    link_metadata_content = '<div> <div><span class="uk-text-bold"><span uk-icon="icon: info">&nbsp;</span> Information:</span> Manage access mode &amp; type of selected research results. For OpenAIRE this functionality isn&#39;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();
(1-1/3)