//version compatibility: 2.0.0-SNAPSHOT //function createOtherResearchProducts() { // db.entity.save({"pid" : "orp", "name" : "Other Research Products"}); // orpId = db.entity.find( { pid: "orp" }).map( function(entity) { return entity._id.str; } ).toString(); // // db.page.save({"name" : "Other Research Products Landing", "route" : "/search/other", "type" : "landing", "connect":true,"openaire":true,"entities" : [orpId]}); // db.page.save({"name" : "Search Other Research Products", "route" : "/search/find/other", "type" : "search", "connect":true,"openaire":true,"entities" : [orpId]}); // db.page.save({"name" : "Advanced Search Other Research Products", "route" : "/search/advanced/other", "type" : "search", "connect":true,"openaire":true,"entities" : [orpId]}); // // orpLanding = db.page.find( { route: "/search/other" }).map( function(page) { return page._id.str; } ).toString(); // searchOrp = db.page.find( { route: "/search/find/other" }).map( function(page) { return page._id.str; } ).toString(); // advancedSearchOrp = db.page.find( { route: "/search/advanced/other" }).map( function(page) { return page._id.str; } ).toString(); // // communities = db.community.find().map( function(community) { return community; } ); // // for (var i = 0; i < communities.length; i++) { // community_pages = communities[i].pages; // // community_pages[orpLanding] = true; // community_pages[searchOrp] = true; // community_pages[advancedSearchOrp] = true; // // community_pid = communities[i].pid; // db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); // print("Update pages for " + community_pid); // // community_entities = communities[i].entities; // // community_entities[orpId] = true; // // community_pid = communities[i].pid; // db.community.update({ "pid" : community_pid },{$set: { "entities": community_entities}}); // print("Update entities for " + community_pid); // } //} // function createNotificationsCollection() { // db.createCollection("notifications"); // } // // function addDivHelpContentsForCommunity(communityPid) { // link_context_form = db.divId.find( { name: "link-context-form" }).map( function(divId) { return divId._id.str; } ).toString(); // link_project_form = db.divId.find( { name: "link-project-form" }).map( function(divId) { return divId._id.str; } ).toString(); // link_result_form = db.divId.find( { name: "link-result-form" }).map( function(divId) { return divId._id.str; } ).toString(); // link_result_bulk = db.divId.find( { name: "link-result-bulk" }).map( function(divId) { return divId._id.str; } ).toString(); // link_metadata = db.divId.find( { name: "link-metadata" }).map( function(divId) { return divId._id.str; } ).toString(); // // link_context_form_content = '
  Information: Select a research community and/or a category and search for a community concept, or browse to the community tree through the categories
'; // link_project_form_content = '
  Information: Search for projects using project name or grant id. Limit results filtering by funder.
'; // link_result_form_content = '
  Information:
Search for research results in OpenAIRE information space, Datacite, CrossRef or ORCID.
Use keywords, DOI (more than one - space separated), author's ORCID
'; // link_result_bulk_content = '
  Information: 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.
CSV format:
'; // link_metadata_content = '
  Information: Manage access mode & type of selected research results. For OpenAIRE this functionality isn't available.
'; // // communityID = db.community.find({ "pid" : communityPid}).map( function(community) { return community._id.str.toString(); } ); // // db.divHelpContent.save({ "divId" : link_context_form, "community" : communityID, "content" : link_context_form_content, "isActive" : false }); // db.divHelpContent.save({ "divId" : link_project_form, "community" : communityID, "content" : link_project_form_content, "isActive" : false }); // db.divHelpContent.save({ "divId" : link_result_form, "community" : communityID, "content" : link_result_form_content, "isActive" : true }); // db.divHelpContent.save({ "divId" : link_result_bulk, "community" : communityID, "content" : link_result_bulk_content, "isActive" : true }); // db.divHelpContent.save({ "divId" : link_metadata, "community" : communityID, "content" : link_metadata_content, "isActive" : false }); // } // // function addDefaultHtmlToHtmlPagesForCommunity(communityPid) { // about = db.page.find( { route: "/about" }).map( function(page) { return page._id.str; } ).toString() // organizations = db.page.find( { route: "/organizations" }).map( function(page) { return page._id.str; } ).toString() // // communityID = db.community.find({ "pid" : communityPid}).map( function(community) { return community._id.str.toString(); } ); // // db.htmlPageContent.save({"page" : about, "community" : communityID, "content" : '
About the community

This is an introductory text. To be updated...

'}) // db.htmlPageContent.save({"page" : organizations, "community" : communityID, "content" : '
Organizations related to the community

This is an introductory text. Here follows the list of organizations...

'}) // } // // function addORPInStatistics() { // // communitiesStatistics = db.statistics.find().map( function(community) { return community; } ); // // for (var i = 0; i < communitiesStatistics.length; i++) { // // stats =communitiesStatistics[i] // print("stats " + stats.pid); // var numbers_map = {}; // numbers_map["total"] = { "showInMonitor" : true, "showInDashboard" : false }; // numbers_map["project"] = { "showInMonitor" : true, "showInDashboard" : false }; // numbers_map["open"] = { "showInMonitor" : true, "showInDashboard" : false }; // numbers_map["closed"] = { "showInMonitor" : true, "showInDashboard" : false }; // numbers_map["embargo"] = { "showInMonitor" : true, "showInDashboard" : false }; // numbers_map["restricted"] = { "showInMonitor" : true, "showInDashboard" : false }; // var numbers = {"map":numbers_map}; // var charts_map = {}; // charts_map["timeline"] = { "showInMonitor" : true, "showInDashboard" : false }; // charts_map["graph"] = { "showInMonitor" : true, "showInDashboard" : false }; // charts_map["projectTable"] = { "showInMonitor" : true, "showInDashboard" : false }; // charts_map["projectColumn"] = { "showInMonitor" : true, "showInDashboard" : false }; // charts_map["projectPie"] = { "showInMonitor" : true, "showInDashboard" : false }; // var charts = {"map":charts_map}; // // var statistics_entities = {"charts":charts,"numbers":numbers} // var orp ="orp"; // stats.entities[orp]=statistics_entities; // // db.statistics.update({ "pid" : stats.pid },{$set: { "entities": stats.entities}}); // // db.statistics.update(stats); // // } // } // // function createShareInZenodoPage() { // db.page.save({"name" : "Share in Zenodo", "route" : "/participate/share-zenodo", "type" : "share", "connect":true,"openaire":false,"entities" : []}); // shareInZenodo = db.page.find( { route: "/participate/share-zenodo" }).map( function(page) { return page._id.str; } ).toString(); // communities = db.community.find().map( function(community) { return community; } ); // // for (var i = 0; i < communities.length; i++) { // community_pages = communities[i].pages; // // community_pages[shareInZenodo] = true; // // community_pid = communities[i].pid; // db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); // print("Update pages for " + community_pid); // } // } // function addCommunityLayout() { //db.createCollection("layout"); communities = db.community.find().map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { var layoutId = db.layout.insertOne({"color": "#EBB13E"}).insertedId.str; community_pid = communities[i].pid; db.community.update({ "pid" : community_pid }, {$set: {"layout": layoutId}}); print("Creating layout for " + community_pid); } } // // function addCuratorsPage() { // curatorsId = db.page.insertOne({"name" : "Curators", "route" : "/curators", "type" : "other", "connect":true,"openaire":false,"entities" : []}).insertedId.str; // print("Creating curators page with id " + curatorsId); // communities = db.community.find().map( function(community) { return community; } ); // for (var i = 0; i < communities.length; i++) { // community_pages = communities[i].pages; // // community_pages[curatorsId] = false; // // community_pid = communities[i].pid; // db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); // print("Add curators page with id " + curatorsId + " on community " + community_pid); // } // } // // function removeMonitorPage() { // monitor = db.page.find( { route: "/monitor" }).map( function(page) { return page._id.str; } ).toString() // db.page.remove({"route" : "/monitor"}); // print("Remove Monitor page with id " + monitor); // communities = db.community.find().map( function(community) { return community; } ); // for (var i = 0; i < communities.length; i++) { // community_pages = communities[i].pages; // // delete community_pages[monitor]; // // community_pid = communities[i].pid; // db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); // print("Remove monitor page with id " + monitor + " on community " + community_pid); // } // } // // function pageOptionConnectAsCommunities() { // pages = db.page.find().map( function(page) { return page; } ); // for (var i = 0; i < pages.length; i++) { // page = pages[i]; // // db.page.update( // { "_id" : page._id }, // { $set: {"communities": page.connect, "connect": false}} // ); // } // } // // function organizationsPageTypeFromHtmlToOther() { // db.page.update( // { "route" : "/organizations" }, // { $set: {"type": "other"}} // ); // } // // // function removeHtmlPageContentsFromOrganizationsPage() { // organizations = db.page.find( { route: "/organizations" }).map( function(page) { return page._id.str; } ).toString(); // db.htmlPageContent.remove({"page" : organizations}); // } // // function addOpenaireConnectCommunitiesOptionsInDivIds() { // db.divId.updateMany( // { }, // { $set: {"connect":false,"communities":false,"openaire":true}} // ); // } // // function addHomeNewsAndOrganizationsDivIds() { // home = db.page.find( { route: "/" }).map( function(page) { return page._id.str; } ).toString(); // organizations = db.page.find( { route: "/organizations" }).map( function(page) { return page._id.str; } ).toString() // // db.divId.save({ "name" : "home-news", "pages" : [home], "connect":true,"communities":false,"openaire":true}); // print("divId home-news saved"); // db.divId.save({ "name" : "organizations", "pages" : [organizations], "connect":false,"communities":true,"openaire":false}); // print("divId organizations saved"); // // organizations_class = db.divId.find( { name: "organizations" }).map( function(divId) { return divId._id.str; } ).toString(); // organizations_class_content = '

Here you can write more details about the organizations related to your community.

'; // // communities = db.community.find().map( function(community) { return community; } ); // for (var i = 0; i < communities.length; i++) { // community = communities[i]; // if(community.pid != "openaire" && community.pid != "connect") { // //print(community.pid); // db.divHelpContent.save({ // "divId": organizations_class, // "community": community._id.str, // "content": organizations_class_content, // "isActive": false // }); // } // } // } // // function removeLinkingDivHelpContentsForCommunitiesAndConnect() { // link_context_form = db.divId.find( { name: "link-context-form" }).map( function(divId) { return divId._id.str; } ).toString(); // link_project_form = db.divId.find( { name: "link-project-form" }).map( function(divId) { return divId._id.str; } ).toString(); // link_result_form = db.divId.find( { name: "link-result-form" }).map( function(divId) { return divId._id.str; } ).toString(); // link_result_bulk = db.divId.find( { name: "link-result-bulk" }).map( function(divId) { return divId._id.str; } ).toString(); // link_metadata = db.divId.find( { name: "link-metadata" }).map( function(divId) { return divId._id.str; } ).toString(); // // communities = db.community.find().map( function(community) { return community; } ); // for (var i = 0; i < communities.length; i++) { // community = communities[i]; // if(community.pid != "openaire") { // db.divHelpContent.remove({"divId" : link_context_form, "community" : community._id.str}); // db.divHelpContent.remove({"divId" : link_project_form, "community" : community._id.str}); // db.divHelpContent.remove({"divId" : link_result_form, "community" : community._id.str}); // db.divHelpContent.remove({"divId" : link_result_bulk, "community" : community._id.str}); // db.divHelpContent.remove({"divId" : link_metadata, "community" : community._id.str}); // } // } // } function addPositionsInPages() { print("Add positions in Pages\n"); // Other Pages db.page.update({ route: "/" },{ $set: {"top":true,"bottom":true,"right":false,"left":true}}); print("Positions for 'Other Pages' updated"); // Other Pages for Connect db.page.update({ route: "/about/learn-how" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/about/learn-in-depth" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/contact-us" },{ $set: {"top":false,"bottom":false,"right":true,"left":false}}); db.page.update({ route: "/content" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/curators" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/organizations" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route : "/invite" }, { $set: {"top":true,"bottom":false,"right":false,"left":false}}); print("Positions for 'Other Pages for Connect' updated"); // Testing Page for help contents (Connect) db.page.update({ route : "/helper-test"}, { $set: {"top":true,"bottom":false,"right":false,"left":false}}); print("Positions for 'Testing Page for help contents (Connect)' updated"); // Other Pages for Explore db.page.update({ route: "/mail-preferences" },{ $set: {"top":true,"bottom":true,"right":true,"left":true}}); print("Positions for 'Other Pages for Explore' updated"); // Landing Pages db.page.update({ route: "/search/publication" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/dataset" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/software" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/other" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/project" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/organization" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/dataprovider" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/project-report" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); print("Positions for 'Landing Pages' updated"); // Search Pages db.page.update({ route: "/search/find" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/communities" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/publications" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/datasets" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/software" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/other" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/projects" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/organizations" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/find/dataproviders" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); print("Positions for 'Search Pages' updated"); // Advanced Search Pages db.page.update({ route: "/search/advanced/publications" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/advanced/datasets" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/advanced/software" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/advanced/other" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/advanced/projects" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/advanced/organizations" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/advanced/dataproviders" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); print("Positions for 'Advanced Search Pages' updated"); // Search Content Provider Pages db.page.update({ route: "/search/journals" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/entity-registries" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/content-providers" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/journals-table" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/entity-registries-table" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/search/content-providers-table" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); print("Positions for 'Search Content Providers Pages' updated"); // Deposit Pages db.page.update({ route: "/participate/deposit-publications" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/participate/deposit-datasets" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/participate/deposit-publications-result" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/participate/deposit-datasets-result" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/participate/deposit-subject-result" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/participate/deposit/zenodo" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); db.page.update({ route: "/participate/deposit/learn-how" },{ $set: {"top":false,"bottom":true,"right":false,"left":false}}); db.page.update({ route: "/participate/deposit-search" },{ $set: {"top":true,"bottom":false,"right":false,"left":false}}); print("Positions for 'Deposit Pages' updated"); // Linking Pages db.page.update({ route: "/participate/claim" },{ $set: {"top":false,"bottom":true,"right":false,"left":false}}); db.page.update({ route: "/participate/direct-claim" },{ $set: {"top":false,"bottom":true,"right":false,"left":false}}); db.page.update({ route: "/myclaims" },{ $set: {"top":true,"bottom":true,"right":true,"left":false}}); db.page.update({ route: "/claims" },{ $set: {"top":true,"bottom":true,"right":true,"left":false}}); db.page.update({ route: "/claims-project-manager" },{ $set: {"top":false,"bottom":false,"right":false,"left":false}}); print("Positions for 'Linking Pages' updated"); } function addMissingAndNewPages() { print("Add missing and new Pages\n"); db.page.save({"name" : "Search Communities", "route" : "/search/find/communities", "type" : "search", "connect":true,"communities":false,"openaire":false,"entities" : [], "top":true,"bottom":false,"right":false,"left":false}); db.page.save({"name" : "Deposit your research - Learn How", "route" : "/participate/deposit/learn-how", "type" : "share", "connect":false,"communities":true,"openaire":false,"entities" : [], "top":true,"bottom":true,"right":true,"left":true}); db.page.save({"name" : "Deposit Browse & Search repositories", "route" : "/participate/deposit/search", "type" : "share", "connect":false,"communities":true,"openaire":false,"entities" : [], "top":true,"bottom":true,"right":true,"left":true}); db.page.save({"name" : "About - Learn in depth", "route" : "/about/learn-in-depth", "type" : "other", "connect":true,"communities":false,"openaire":false,"entities" : [], "top":true,"bottom":true,"right":true,"left":true}); db.page.save({"name" : "Contact us", "route" : "/contact-us", "type" : "other", "connect":true,"communities":false,"openaire":false,"entities" : [], "top":true,"bottom":true,"right":true,"left":true}); db.page.save({"name" : "Content Policy", "route" : "/content", "type" : "other", "connect":true,"communities":false,"openaire":false,"entities" : [], "top":true,"bottom":true,"right":true,"left":true}); db.page.save({"name" : "Invite", "route" : "/invite", "type" : "other", "connect":false,"communities":true,"openaire":false,"entities" : [], "top":true,"bottom":true,"right":false,"left":false}); db.page.save({"name" : "Mail Preferences", "route" : "/mail-preferences", "type" : "other", "connect":false,"communities":false,"openaire":true,"entities" : [], "top":true,"bottom":true,"right":true,"left":true}); // Testing Page for help contents (Connect) db.page.save({"name" : "Helper Test", "route" : "/helper-test", "type" : "other", "connect":true, "communities": false, "openaire": false, "entities": [], "top": true, "bottom": false, "left": false, "right": false}); } function addNewRoutesInCommunities() { searchCommunities = db.page.find( { route: "/search/find/communities" }).map( function(page) { return page._id.str; } ).toString() depositLearnHow = db.page.find( { route: "/participate/deposit/learn-how" }).map( function(page) { return page._id.str; } ).toString(); depositSearch = db.page.find( { route: "/participate/deposit/search" }).map( function(page) { return page._id.str; } ).toString(); about = db.page.find( { route: "/about/learn-how" }).map( function(page) { return page._id.str; } ).toString() aboutLearnInDepth = db.page.find( { route: "/about/learn-in-depth" }).map( function(page) { return page._id.str; } ).toString() contactUs = db.page.find( { route: "/contact-us" }).map( function(page) { return page._id.str; } ).toString() contentPolicy = db.page.find( { route: "/content" }).map( function(page) { return page._id.str; } ).toString() invite = db.page.find( { route: "/invite" }).map( function(page) { return page._id.str; } ).toString() helperTest = db.page.find( { route: "/helper-test" }).map( function(page) { return page._id.str; } ).toString() mailPreferences = db.page.find( { route: "/mail-preferences" }).map( function(page) { return page._id.str; } ).toString() communities = db.community.find().map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { community_pages = communities[i].pages; community_pages[searchCommunities] = true; community_pages[depositLearnHow] = true; community_pages[depositSearch] = true; community_pages[about] = true; community_pages[aboutLearnInDepth] = true; community_pages[contactUs] = true; community_pages[contentPolicy] = true; community_pages[invite] = true; community_pages[helperTest] = true; community_pages[mailPreferences] = true; community_pid = communities[i].pid; db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); print("Update pages for " + community_pid); } } function changePageRoutesAboutAndZenodo() { print("change Page Routes '/about' and '/participate/share-zenodo'\n"); db.page.update({ route: "/about" },{ $set: {"route": "/about/learn-how", "name" : "About - Learn How", "type" : "other", "connect":true,"communities":false }}); db.page.update({ route: "/participate/share-zenodo" },{ $set: {"route": "/participate/deposit/zenodo"}}); } function enableProjectReportPageInCommunities() { print("Enable project report page in communities \n"); db.page.update({ route : "/project-report" },{ $set: {"communities": true}}); } function addDepositPoliciesHelpContentInAllCommunities() { print("add deposit policies in help content in all communitites except 'openaire' and 'connect' in Deposit-Learn How page\n"); deposit_first_page = db.page.find( { route: "/participate/deposit/learn-how" }).map( function(page) { return page._id.str; } ).toString(); deposit_first_page_content = "" + "
" + "
How to comply with funder Open Access policies
" + " " + "
"; communities = db.community.find().map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { community = communities[i]; if (community.pid != "connect" && community.pid != "openaire") { db.pageHelpContent.save({ "page" : deposit_first_page, "community" : community._id.str, "placement" : "bottom", "order" : 1, "content" : deposit_first_page_content, "isActive" : true, "isPriorTo" : false }); } } } function moveOrganizationsDivHelpContentsToPageHelpContents() { print("move organizations div help contents to page help contents for all communities\n "); organizations_page = db.page.find( { route: "/organizations" }).map( function(page) { return page._id.str; } ).toString(); organizations_divId = db.divId.find( { name: "organizations" }).map( function(divId) { return divId._id.str; } ).toString(); print("organizations divId: "+organizations_divId); communities = db.community.find().map(function (community) { return community; }); for (var i = 0; i < communities.length; i++) { community = communities[i]; print("community pid: "+community.pid); divHelpContents = db.divHelpContent.find({"community": community._id.str, "divId": organizations_divId}).map(function (divHelpContent) { return divHelpContent; }); for (var j = 0; j < divHelpContents.length; j++) { divHelpContent = divHelpContents[j]; db.pageHelpContent.save({ "page": organizations_page, "community": community._id.str, "placement": "top", "order": j+1, "content": divHelpContent.content, "isActive": divHelpContent.isActive, "isPriorTo": false }); db.divHelpContent.remove({"_id" : divHelpContent._id}); } } } function deleteHomeDivHelpContents() { print("delete div help contents for divId 'home-news'\n"); home_divId = db.divId.find( { name: "home-news" }).map( function(divId) { return divId._id.str; } ).toString(); connect_communityId = db.community.find( { pid: "connect" }).map( function(community) { return community._id.str; } ).toString(); divHelpContents = db.divHelpContent.find({"community": connect_communityId, "divId": home_divId}).map(function (divHelpContent) { return divHelpContent; }); for (var i = 0; i < divHelpContents.length; i++) { divHelpContent = divHelpContents[i] db.divHelpContent.remove({"_id" : divHelpContent._id}); } } function deleteHomeAndOrganizationsDivIds() { print("delete 'home-news' and 'organizations' divIds\n"); db.divId.remove({"name" : "home-news"}); db.divId.remove({"name" : "organizations"}); } function addHelpTextsInHomePage() { print("add help contents in Home Page for community connect\n"); communityID = db.community.find( { pid: "connect" }).map( function(community) { return community._id.str; } ).toString(); home_page = db.page.find( { route: "/" }).map( function(page) { return page._id.str; } ).toString(); bottom_1_content = "
Home news section
"; db.pageHelpContent.save({ "page" : home_page, "community" : communityID, "placement" : "bottom", "order" : 1, "content" : bottom_1_content, "isActive" : false, "isPriorTo" : false }); bottom_2_content = "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
Let us help you develop a collaborative Open Science Gateway for your community. It is fast. It is\n" + " reliable.\n" + "
\n" + "
\n" + "
Get in touch with our team to find out how.
\n" + " \n" + "
\n" + "
\n" + "
\n" + "
\n"; db.pageHelpContent.save({ "page" : home_page, "community" : communityID, "placement" : "bottom", "order" : 2, "content" : bottom_2_content, "isActive" : true, "isPriorTo" : false }); left_content = "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
Build an Open Research Gateway for your Community
\n" + "

Turn Open Science into practice

\n" + "
Share and link your research results.
Across organizations, across\n" + " borders.
Customized to your needs.\n" + "
\n" + "
\n" + "
LEARN HOW
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n"; db.pageHelpContent.save({ "page" : home_page, "community" : communityID, "placement" : "left", "order" : 1, "content" : left_content, "isActive" : true, "isPriorTo" : false }); top_1_content = "
\n" + "
Open and FAIR science is our mission
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
A Virtual Research\n" + " Environment
\n" + "
An overlay platform making it easy to share, link, disseminate and monitor all your publications,\n" + " data,\n" + " software, methods. In one place.\n" + "
\n" + "
\n" + "
\n" + "
\n" + "
Features
\n" + "
    \n" + "
\n" + " Access\n" + " to OpenAIRE resources\n" + " \n" + "
  • \n" + " Moderated, front-end linking\n" + " \n" + "
  • \n" + " Cross-platform search\n" + " \n" + " \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    Open Science in\n" + " action
    \n" + "
    A time-saving bundle of services for researchers to effortlessly practice open science. An integral\n" + " part of the European Open Science Cloud.\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    Features
    \n" + "
      \n" + "
    Use\n" + " of\n" + " OpenAIRE Guidelines\n" + " \n" + "
  • DOIs\n" + " via Zenodo\n" + " \n" + "
  • EOSC\n" + " Single Sign-On\n" + " \n" + " \n" + "
    \n" + " \n" + " \n" + " \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    Customized to your needs
    \n" + "
    A Science Gateway with your own brand, rules for aggregation, text & data mining, and\n" + " presentation.\n" + " Run by you via a simple, yet powerful backend administration tool.\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    Features
    \n" + "
      \n" + "
    \n" + " Access\n" + " control\n" + " \n" + "
  • \n" + " Analytics: rich set of indicators\n" + " \n" + "
  • Look\n" + " & feel to match your brand\n" + " \n" + " \n" + "
    \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n"; db.pageHelpContent.save({ "page" : home_page, "community" : communityID, "placement" : "top", "order" : 1, "content" : top_1_content, "isActive" : true, "isPriorTo" : false }); top_2_content = "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
      \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Find a repository to deposit your research outcome
      \n" + "
      This is OpenAIRE’s key service for research communities, both\n" + " established and emerging ones. Our service helps you reach out and engage all your researchers to\n" + " practice open science out-of-the-box.\n" + "
      \n" + " \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Link your research output with your community, funding, and other\n" + " research products\n" + "
      \n" + "
      This is OpenAIRE’s key service for research communities, both\n" + " established and emerging ones. Our service helps you reach out and engage all your researchers to\n" + " practice open science out-of-the-box.\n" + "
      \n" + " \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      View community's overview at a glance
      \n" + "
      This is OpenAIRE’s key service for research communities, both\n" + " established and emerging ones. Our service helps you reach out and engage all your researchers to\n" + " practice open science out-of-the-box.\n" + "
      \n" + " \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Search & browse your community's research products.
      \n" + "
      This is OpenAIRE’s key service for research communities, both\n" + " established and emerging ones. Our service helps you reach out and engage all your researchers to\n" + " practice open science out-of-the-box.\n" + "
      \n" + " \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      View statistics for your community's research products.
      \n" + "
      This is OpenAIRE’s key service for research communities, both\n" + " established and emerging ones. Our service helps you reach out and engage all your researchers to\n" + " practice open science out-of-the-box.\n" + "
      \n" + " \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    \n" + "
      \n" + "
    • \n" + "
    • \n" + "
    • \n" + "
    • \n" + "
    • \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n"; db.pageHelpContent.save({ "page" : home_page, "community" : communityID, "placement" : "top", "order" : 2, "content" : top_2_content, "isActive" : true, "isPriorTo" : false }); } function addHelpTextsInAboutLearnHowPage() { print("add help contents in About - Learn How Page for community connect\n"); communityID = db.community.find({pid: "connect"}).map(function (community) { return community._id.str; }).toString(); about_page = db.page.find( { route: "/about/learn-how" }).map( function(page) { return page._id.str; } ).toString() top_1_content = "\n" + "
    \n" + "

    Learn the process

    \n" + "
    Build a Gateway to your community's open\n" + " and linked research outcomes. Customized to your needs.\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    1. Understanding your needs
    \n" + "
    First, we learn about your requirements and challenges. We help you\n" + " understand Open Science practices within EOSC and together we’ll talk about how OpenAIRE RCD fits as a\n" + " solution.\n" + "
    \n" + "
    \n" + "
    \n" + "
    4. Roll out the service
    \n" + "
    We jointly roll out your new Community Gateway. You take over the business\n" + " operations and start engaging your researchers, we take care of the smooth operation of the e-service.\n" + "
    \n" + "
    \n" + "
    \n" + "
    2. Develop a pilot
    \n" + "
    How do you work today, and how would you like to work tomorrow? We translate\n" + " your needs into rules and processes and we configure operational OpenAIRE services. By the end of this\n" + " phase, we’ll have defined the basic configuration of your Community Gateway.\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    2. Develop a pilot
    \n" + "
    How do you work today, and how would you like to work tomorrow? We translate\n" + " your needs into rules and processes and we configure operational OpenAIRE services. By the end of this\n" + " phase, we’ll have defined the basic configuration of your Community Gateway.\n" + "
    \n" + "
    \n" + "
    \n" + "
    4. Roll out the service
    \n" + "
    We jointly roll out your new Community Gateway. You take over the business\n" + " operations and start engaging your researchers, we take care of the smooth operation of the e-service.\n" + "
    \n" + "
    \n" + "
    \n" + "
    3. Test and Validate
    \n" + "
    You validate and test your new Community Gateway (portal) with your experts\n" + " and community to ensure all workflows are in place and quality of data meets your standards. If needed, we\n" + " work together in another iteration to further refine and adapt to your needs.\n" + "
    \n" + "
    \n" + "
    \n" + "
    4. Roll out the service
    \n" + "
    We jointly roll out your new Community Gateway. You take over the business\n" + " operations and start engaging your researchers, we take care of the smooth operation of the e-service.\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    Learn more details
    \n" + "
    \n" + ""; db.pageHelpContent.save({ "page": about_page, "community": communityID, "placement": "top", "order": 1, "content": top_1_content, "isActive": true, "isPriorTo": false }); top_2_content = "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
      \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Profile
      \n" + "
      Edit community information, change logo url, add community managers\n" + " or organizations related to community.\n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Content
      \n" + "
      Manage projects, content providers, subjects and zenodo communities\n" + " that are related to the research community.\n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Statistics & Charts
      \n" + "
      Manage statistical numbers & charts that will be displayed in\n" + " the community overview and graph analysis views.\n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Links
      \n" + "
      Manage user claims related to the research community.
      \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Help texts
      \n" + "
      Add or edit help text in research community pages.
      \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    • \n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
      Users
      \n" + "
      Invite more users to subscribe, manage community subscribers, your\n" + " personal info and notification settings.\n" + "
      \n" + "
      \n" + "
      \n" + "
      \n" + "
    • \n" + "
    \n" + "
      \n" + "
    • \n" + "
    • \n" + "
    • \n" + "
    • \n" + "
    • \n" + "
    • \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n"; db.pageHelpContent.save({ "page": about_page, "community": communityID, "placement": "top", "order": 2, "content": top_2_content, "isActive": true, "isPriorTo": false }); top_3_content = "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    We look forward to working together and helping you unlock the full potential\n" + " of your research community through open science.\n" + "
    \n" + "
    Get in touch with our team to find out how.
    \n" + " \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n"; db.pageHelpContent.save({ "page": about_page, "community": communityID, "placement": "top", "order": 3, "content": top_3_content, "isActive": true, "isPriorTo": false }); top_4_content = "
    \n" + " FAQs section\n" + "
    \n"; db.pageHelpContent.save({ "page": about_page, "community": communityID, "placement": "top", "order": 4, "content": top_4_content, "isActive": false, "isPriorTo": false }); } function addHelpTextsInAboutLearnInDepthPage() { print("add help contents in About - Learn In Depth for community connect\n"); communityID = db.community.find({pid: "connect"}).map(function (community) { return community._id.str; }).toString(); aboutLearnInDepth_page = db.page.find({route: "/about/learn-in-depth"}).map(function (page) { return page._id.str; }).toString(); top_1_content = "\n" + "
    \n" + "
    \n" + "
    Let’s set up a Gateway for your Community Together\n" + "
    \n" + "
    You don’t have to go alone.
    \n" + "
    We work with you in 4 collaborative steps to identify your needs, putting in practice our\n" + " expertise on open science so you get the most out of OpenAIRE’s operational services.\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "\n"; db.pageHelpContent.save({ "page": aboutLearnInDepth_page, "community": communityID, "placement": "top", "order": 1, "content": top_1_content, "isActive": true, "isPriorTo": false }); top_2_content = "
    \n" + "
      \n" + "
    • About
    • \n" + "
    • Learn in-depth
    • \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    1. Analyse your needs
    \n" + "
    Identify the scope and goals. Understand open science practices within EOSC and the OpenAIRE services
    \n" + "

    In this stage, you get to talk to the OpenAIRE team. Share your expectations with us and let us give you all\n" + " the details about the operational OpenAIRE services, which will be integrated into the Gateway for your\n" + " community.

    \n" + "

    Here are the most important questions that the OpenAIRE team will ask you, in order to understand your scope\n" + " and goals:

    \n" + "
      \n" + "
    • Do you want a gateway, where researchers can have access to all research products of a discipline? Do you\n" + " want a gateway that gathers any research outcome, produced thanks to the funding and services of a given\n" + " research infrastructure?\n" + "
    • \n" + "
    • Is your community (in)formally organized in sub-communities? Would you like to browse research products and\n" + " get statistics also for these sub-communities? For example, the European Grid Infrastructure (EGI) features\n" + " “virtual organizations” that represent discipline-specific communities and/or specific research projects. The\n" + " research infrastructure DARIAH, on the other hand, is organised in national nodes (e.g. DARIAH-IT, DARIAH-DE).\n" + "
    • \n" + "
    • How can the OpenAIRE team identify the research products of your community, among all those available in\n" + " the OpenAIRE Graph? Through a series of steps: set of keywords, acknowledgment statements, set of projects,\n" + " set of repositories, etc. This can be partial and provisional information that will serve as a starting point\n" + " to the OpenAIRE team. You will be able to refine and update this information, in the second phase “Develop a\n" + " pilot”.\n" + "
    • \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    2. Develop a pilot
    \n" + "
    We translate your needs into rules and processes and we configure operational OpenAIRE services.
    \n" + "

    Based on the information gathered in phase 1 “Analyse your needs”, the OpenAIRE team will set up a pilot\n" + " Gateway. We will configure the OpenAIRE mining algorithms to identify research products of the OpenAIRE Graph\n" + " that are relevant to your community. Those, together with some basic statistics, will be available in the pilot\n" + " version of the Community Gateway that will be deployed on the OpenAIRE BETA infrastructure.

    \n" + "

    The OpenAIRE team will give you a demo of the Community Gateway, with details on how to refine and update the\n" + " configuration of the Community Gateway, both in terms of criteria for including research products and in terms\n" + " of logo and visible portal pages.

    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    3. Test and Validate
    \n" + "
    You validate and test your new Community Gateway (portal). If needed, we further refine and adapt to your\n" + " needs
    \n" + "

    Upon the completion of phase 2, take the time you need to test all its features, from search and browse for\n" + " research products, to addition/removal of statistics from the portal. You can report any issue you might find\n" + " and ask questions directly to the dedicated OpenAIRE team, via a specially designed collaboration tool.

    \n" + "

    Typically, this phase takes some months, as you will have to go through certain procedures. Change the\n" + " configuration of the criteria to include research products, wait for the new configuration to be applied on the\n" + " OpenAIRE graph and validate the results, before you actually decide that the coverage of research products for\n" + " your community is adequate.

    \n" + "

    For some communities, the OpenAIRE team may also be able to implement dedicated mining algorithms (e.g. to\n" + " find acknowledgement statements to your community/infrastructure in the full-texts of research articles) that\n" + " may require several rounds of application, validation, and fine-tuning, before it reaches a high precision and\n" + " recall. Your feedback is very important to minimize the effort and time needed for this process to\n" + " complete.

    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    4. Roll out the service
    \n" + "
    We jointly roll out your new portal. You take over the business operations and start engaging your\n" + " researchers
    \n" + "

    Here we are: the coverage of research products is good, interesting statistics and charts have been selected,\n" + " and the portal pages available for end-users are ready. We can roll out the Community Gateway and make it\n" + " available to all the researchers of the community!

    \n" + "

    You, as a Community manager, become the main “promoter” of the Community Gateway. Engage the researchers of\n" + " your community and, when applicable, inform the managers of the research infrastructure about the availability\n" + " of tools for impact monitoring.

    \n" + "

    Remember that you will still be able to change the configuration of the Community Gateway in order to address\n" + " any issue that may arise and to follow the evolution of the community (e.g. a new project or a new content\n" + " provider that was not previously available in OpenAIRE).

    \n" + "

    Remember that you don’t have to go alone: the dedicated issue tracker you used in the “Test and Validate”\n" + " phase is always available for you to contact the OpenAIRE team and ask for support.

    \n" + "
    \n" + "
    "; db.pageHelpContent.save({ "page": aboutLearnInDepth_page, "community": communityID, "placement": "top", "order": 2, "content": top_2_content, "isActive": true, "isPriorTo": false }); top_3_content = "\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "
    Let us help you develop a collaborative Open Science Gateway for your community. It is fast. It is\n" + " reliable.\n" + "
    \n" + "
    \n" + "
    Get in touch with our team to find out how.
    \n" + "
    CONTACT US\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n" + "\n"; db.pageHelpContent.save({ "page": aboutLearnInDepth_page, "community": communityID, "placement": "top", "order": 3, "content": top_3_content, "isActive": true, "isPriorTo": false }); } function addHelpTextsInContactUsPage() { print("add help contents in Contact Us Page for community connect\n"); communityID = db.community.find({pid: "connect"}).map(function (community) { return community._id.str; }).toString(); contactUs_page = db.page.find({route: "/contact-us"}).map(function (page) { return page._id.str; }).toString(); right_content = "
    OpenAIRE gives you the virtual\n" + "environment and services designed for your community to:\n" + "
    \n" + "
      \n" + "
    • Create and Manage your\n" + " Community Gateway
    • \n" + "
    • Access, share and link together all your research
    • \n" + "
    • Monitor and report your community's progress
    • \n" + "
    \n"; db.pageHelpContent.save({ "page": contactUs_page, "community": communityID, "placement": "right", "order": 1, "content": right_content, "isActive": true, "isPriorTo": false }); } function addHelpTextsInContentPolicyPage() { print("add help contents in Content Policy Page for community connect\n"); communityID = db.community.find({pid: "connect"}).map(function (community) { return community._id.str; }).toString(); content_page = db.page.find({route: "/content"}).map(function (page) { return page._id.str; }).toString(); top_content = "
    \n" + "
    \n" + "
    Content policy
    \n" + "

    OpenAIRE builds an open scholarly graph of research products (publications, datasets, software and other\n" + " types of research products), linked to each other and to fundings, projects and organizations. The information\n" + " used to build the graph is collected from the OpenAIRE network of content providers and is inferred by OpenAIRE\n" + " algorithms. OpenAIRE algorithms are capable of detecting duplicates and mining information from the full-texts of\n" + " Open Access publications. For more details about the construction of the graph, please check here.

    \n" + "

    Thanks to the Research Community Dashboard (RCD), researchers have a dedicated view of the OpenAIRE graph\n" + " where only the research products relevant to the community are searchable and browsable.
    There are several\n" + " ways to decide if a research product is relevant to a given community:

    \n" + "

    Links: Users can \"claim\" that a research result is relevant to a community via\n" + " the Link functionality of the Research\n" + " community dashboard.
    For more details about linking functionality, please check here.

    \n" + "
    OpenAIRE algorithms: Community managers can configure the\n" + " OpenAIRE algorithms, in order to automatically assign research products to a community based on:\n" + "
    \n" + "
      \n" + "
    • The content providers they have been collected from.
      Examples: all research products collected from\n" + " \"NeuroVault\" are relevant to the Neuroinformatics community; all research products collected from the\n" + " LINDAT/CLARIN repository are relevant to the CLARIN research initiative.\n" + "
    • \n" + "
    • The projects they have been produced in.
      Examples: all research products of the project \"Tara\n" + " Mediterranee\" are relevant to the European Marine Science community; all research products of the project\n" + " \"ARIADNE\" are relevant to the Digital Humanities and Cultural Heritage community.\n" + "
    • \n" + "
    • The subjects and keywords (only for RCD serving research communities).
      Examples: all research\n" + " products having \"SDG11 - Sustainable cities and communities\" among the subjects are relevant to the Greek\n" + " Sustainable Development Solutions Network community; all research products with subject \"agriculture\" are\n" + " relevant to the AgInfra community\n" + "
    • \n" + "
    \n" + "
    \n" + "
    \n" + "
    Acknowledgement statements: Acknowledgement statements found in\n" + " full-texts (only for RCDs serving research infrastructures/initiatives)\n" + "
    \n" + "
    \n" + "
    \n" + "
    \n"; db.pageHelpContent.save({ "page": content_page, "community": communityID, "placement": "top", "order": 1, "content": top_content, "isActive": true, "isPriorTo": false }); } function removeFaultyEmptyPageFromCommunities() { communities = db.community.find().map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { community_pages = communities[i].pages; delete community_pages[""]; community_pid = communities[i].pid; db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); print("Update pages for " + community_pid); } } function addMyCommunitiesPage() { db.page.save({ "name": "My Communities", "route": "/myCommunities", "type": "other", "connect": true, "communities": false, "openaire": false, "entities": [], "top": false, "bottom": false, "right": false, "left": false }); myCommunities = db.page.find( { route: "/myCommunities" }).map( function(page) { return page._id.str; } ).toString(); communities = db.community.find().map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { community_pages = communities[i].pages; community_pages[myCommunities] = true; community_pid = communities[i].pid; db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); print("Update pages for " + community_pid); } } function removeOldLayouts() { db.community.updateMany({}, {$unset: {layout: ""}}); db.layout.deleteMany({}); } function addSearchResearchOutcomesPages() { publicationId = db.entity.find( { pid: "publication" }).map( function(entity) { return entity._id.str; } ).toString() datasetId = db.entity.find( { pid: "dataset" }).map( function(entity) { return entity._id.str; } ).toString() softwareId = db.entity.find( { pid: "software" }).map( function(entity) { return entity._id.str; } ).toString() orpId = db.entity.find( { pid: "orp" }).map( function(entity) { return entity._id.str; } ).toString(); searchResearchOutcomesId = db.page.insertOne({"name" : "Search Research Outcomes", "route" : "/search/find/research-outcomes", "type" : "search", "connect":false,"openaire":true, "communities": true, "entities" : [publicationId, datasetId, softwareId, orpId], "top":true,"bottom":false,"right":false,"left":false}).insertedId.str; avancedSearchResearchOutcomesId = db.page.insertOne({"name" : "Advanced Search Research Outcomes", "route" : "/search/advanced/research-outcomes", "type" : "search", "connect":false,"openaire":true, "communities": true, "entities" : [publicationId, datasetId, softwareId, orpId], "top":true,"bottom":false,"right":false,"left":false}).insertedId.str; print("Creating Search Research Outcomes page with id " + searchResearchOutcomesId); print("Creating Advanced Search Research Outcomes page with id " + avancedSearchResearchOutcomesId); communities = db.community.find().map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { community_pages = communities[i].pages; community_pages[searchResearchOutcomesId] = true; community_pages[avancedSearchResearchOutcomesId] = true; community_pid = communities[i].pid; db.community.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); print("Add Search Research Outcomes page with id " + searchResearchOutcomesId + " on community " + community_pid); print("Add Advanced Search Research Outcomes page with id " + avancedSearchResearchOutcomesId + " on community " + community_pid); } } function addPortalType() { communities = db.community.find().map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { community = communities[i]; if(community.pid == "openaire") { community['type'] = "explore"; } else if(community.pid == "connect") { community['type'] = "connect"; } else { community['type'] = "community"; } db.community.save(community); } } function createPagesForEachPortalType() { pages = db.page.find().map( function(page) { return page; } ); for (var i = 0; i < pages.length; i++) { page = pages[i]; print("createPagesForEachPortalType: page["+i+"] = "+page.name + " ( "+page._id.str+" ) -> openaire: "+page.openaire+" - connect: "+page.connect + " - communities: "+page.communities); if(page.openaire == false) { // do not include this page in portal profile communityOpenaire = db.community.findOne({pid: "openaire"}); removePageFromPortal(communityOpenaire, page._id, communityOpenaire.pages); } if(page.connect == false) { // do not include this page in portal profile communityConnect = db.community.findOne({pid: "connect"}); removePageFromPortal(communityConnect, page._id, communityConnect.pages); } if(page.communities == false) { communities = db.community.find({ "type" : "community" }).map( function(community) { return community; } ); for (var j = 0; j < communities.length; j++) { removePageFromPortal(communities[j], page._id, communities[j].pages); } } if(page.openaire == true && page.connect == true && page.communities == true) { db.page.save({"_id": page._id, "name" : page.name, "route" : page.route, "type" : page.type, "portalType": "community", "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); print("Keep for communities"); createAndUpdatePageAndContentsForPortal(page, "openaire", "explore"); //print("Delete and create other for explore"); createAndUpdatePageAndContentsForPortal(page, "connect", "connect"); //print("Delete and create other for connect"); } else if(page.openaire == true && page.connect == true) { db.page.save({"_id": page._id, "name" : page.name, "route" : page.route, "type" : page.type, "portalType": "connect", "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); print("Keep for connect"); createAndUpdatePageAndContentsForPortal(page, "openaire", "explore"); //print("Delete and create other for explore"); } else if(page.openaire == true && page.communities == true) { db.page.save({"_id": page._id, "name" : page.name, "route" : page.route, "type" : page.type, "portalType": "community", "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); print("Keep for community"); createAndUpdatePageAndContentsForPortal(page, "openaire", "explore"); //print("Delete and create other for explore"); } else if(page.connect == true && page.communities == true) { db.page.save({"_id": page._id, "name" : page.name, "route" : page.route, "type" : page.type, "portalType": "community", "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); print("Keep for community"); createAndUpdatePageAndContentsForPortal(page, "connect", "connect"); //print("Delete and create other for connect"); } else if(page.openaire == true) { db.page.save({"_id": page._id, "name" : page.name, "route" : page.route, "type" : page.type, "portalType": "explore", "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); print("Keep for explore"); } else if(page.connect == true) { db.page.save({"_id": page._id, "name" : page.name, "route" : page.route, "type" : page.type, "portalType": "connect", "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); print("Keep for connect"); } else if(page.communities == true) { db.page.save({"_id": page._id, "name" : page.name, "route" : page.route, "type" : page.type, "portalType": "community", "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); print("Keep for community"); } } } function createAndUpdatePageAndContentsForPortal(page, pid, portalType) { db.page.save({"name" : page.name, "route" : page.route, "type" : page.type, "portalType": portalType, "entities" : page.entities, "top":page.top, "bottom":page.bottom, "right":page.right,"left":page.left}); pageIdForPortalType = db.page.find({portalType: portalType, "route" : page.route}).map(function (page) { return page._id.str; }).toString(); print("portalType: "+ portalType + " --> new page id: "+ pageIdForPortalType); community = db.community.findOne({pid: pid}); community_pages = community.pages; community_pages[pageIdForPortalType] = community_pages[page._id.str]; removePageFromPortal(community, page._id, community_pages); if(portalType == "explore") { print(" Delete page: "+page._id.str + " = (should be null) "+community.pages[page._id.str] + " - new page: "+pageIdForPortalType+" = "+community.pages[pageIdForPortalType]); } updatePageHelpContentsForPortalPage(page._id.str, pageIdForPortalType, community._id.str); } function removePageFromPortal(community, pageId, community_pages) { delete community_pages[pageId.str]; db.community.update({"pid": community.pid}, {$set: {"pages": community_pages}}); } function updatePageHelpContentsForPortalPage(pageId, newPageId, communityId) { pageHelpContents = db.pageHelpContent.find({"page" : pageId, "community" : communityId,}).map( function(pageHelpContent) { return pageHelpContent; } ); for (var i = 0; i < pageHelpContents.length; i++) { pageHelpContent = pageHelpContents[i]; db.pageHelpContent.save({ "_id": pageHelpContent._id, "page": newPageId, "community": communityId, "placement": pageHelpContent.placement, "order": pageHelpContent.order, "content": pageHelpContent.content, "isActive": pageHelpContent.isActive, "isPriorTo": pageHelpContent.isPriorTo }); } } function createDivIdsForEachPortalType() { divIds = db.divId.find().map( function(divId) { return divId; } ); for (var i = 0; i < divIds.length; i++) { divId = divIds[i]; print("createDivIdsForEachPortalType: divId["+i+"] = "+divId.name + " -> openaire: "+divId.openaire+" - connect: "+divId.connect + " - communities: "+divId.communities); if(divId.openaire == true && divId.connect == true && divId.communities == true) { createAndUpdateDivIdAndContentsForPortal(divId, null, "community", false); createAndUpdateDivIdAndContentsForPortal(divId, "openaire", "explore", true); createAndUpdateDivIdAndContentsForPortal(divId, "connect", "connect", true); } else if(divId.openaire == true && divId.connect == true) { createAndUpdateDivIdAndContentsForPortal(divId, null, "connect", false); createAndUpdateDivIdAndContentsForPortal(divId, "openaire", "explore", true); } else if(divId.openaire == true && divId.communities == true) { createAndUpdateDivIdAndContentsForPortal(divId, null, "community", false); createAndUpdateDivIdAndContentsForPortal(divId, "openaire", "explore", true); } else if(divId.connect == true && divId.communities == true) { createAndUpdateDivIdAndContentsForPortal(divId, null, "community", false); createAndUpdateDivIdAndContentsForPortal(divId, "connect", "connect", true); } else if(divId.openaire == true) { createAndUpdateDivIdAndContentsForPortal(divId, null, "explore", false); } else if(divId.connect == true) { createAndUpdateDivIdAndContentsForPortal(divId, null, "connect", false); } else if(divId.communities == true) { createAndUpdateDivIdAndContentsForPortal(divId, null, "community", false); } } } function updateDivIdPages(pages, portalType) { var newPages = []; for (var i = 0; i < pages.length; i++) { page = db.page.findOne({"_id": ObjectId(pages[i])}); pageForPortalType = db.page.findOne({portalType: portalType, "route" : page.route}); if(pageForPortalType) { print("page in divId: "+pages[i] + " will be replaced with "+pageForPortalType._id.str); newPages.push(pageForPortalType._id.str); } else { print("page in divId: "+pages[i] + " will be not be replaced. pageForPortalType: "+pageForPortalType); } } return newPages; } function createAndUpdateDivIdAndContentsForPortal(divId, pid, portalType, create) { var pages = updateDivIdPages(divId.pages, portalType); if(pages.length == 0) { db.divId.remove({"_id": divId._id}); communities = db.community.find({ "type" : portalType }).map( function(community) { return community; } ); for (var j = 0; j < communities.length; j++) { db.divHelpContent.remove({"divId": divId._id.str, "community": communities[j]._id.str}); } } else { if (create) { db.divId.save({"name": divId.name, "pages": pages, "portalType": portalType}); divIdForPortalType = db.divId.find({portalType: portalType, "name" : divId.name}).map(function (divId) { return divId._id.str; }).toString(); communityId = db.community.find({pid: pid}).map(function (community) { return community._id.str; }).toString(); updateDivIdHelpContentsForPortalPage(divId._id.str, divIdForPortalType, communityId); } else { db.divId.save({"_id": divId._id, "name": divId.name, "pages": pages, "portalType": portalType}); } } } function updateDivIdHelpContentsForPortalPage(divIdId, newDivIdId, communityId) { divHelpContents = db.divHelpContent.find({"divId" : divIdId, "community" : communityId,}).map( function(divHelpContent) { return divHelpContent; } ); for (var i = 0; i < divHelpContents.length; i++) { divHelpContent = divHelpContents[i]; db.divHelpContent.save({ "_id": divHelpContent._id, "divId" : newDivIdId, "community" : communityId, "content" : divHelpContent.content, "isActive" : divHelpContent.isActive }); } } function renameCollectionAndFields() { db.community.renameCollection("portal"); db.communitySubscribers.renameCollection("portalSubscribers"); db.divHelpContent.update({"community": {$exists: true}}, {$rename:{"community":"portal"}}, false, true); db.pageHelpContent.update({"community": {$exists: true}}, {$rename:{"community":"portal"}}, false, true); db.notifications.update({"communityPid": {$exists: true}}, {$rename:{"communityPid":"portalPid"}}, false, true); } function addPortalPidInLayoutRecords() { communities = db.portal.find().map( function(community) { return community; } ); for (var j = 0; j < communities.length; j++) { community = communities[j]; if(community.layout) { layout = db.layout.findOne({"_id": ObjectId(community.layout)}); db.layout.save({ "_id": layout._id, "mainColor": layout.mainColor, "secondaryColor": layout.secondaryColor, "panel": layout.panel, "box": layout.box, "links": layout.links, "buttons": layout.buttons, "portalPid": community.pid }) db.portal.update({"_id": community._id}, {$unset: {layout:""}}); } } } // 22-10-2020 function addPiwik() { db.portal.update({"pid": "openaire"}, {$set: {piwik:"6"}}); db.portal.update({"pid": "connect"}, {$set: {piwik:"80"}}); db.portal.update({"pid": "dh-ch"}, {$set: {piwik:"81"}}); db.portal.update({"pid": "ee"}, {$set: {piwik:"82"}}); db.portal.update({"pid": "egi"}, {$set: {piwik:"83"}}); db.portal.update({"pid": "elixir-gr"}, {$set: {piwik:"84"}}); db.portal.update({"pid": "fam"}, {$set: {piwik:"85"}}); db.portal.update({"pid": "instruct"}, {$set: {piwik:"86"}}); db.portal.update({"pid": "mes"}, {$set: {piwik:"87"}}); db.portal.update({"pid": "ni"}, {$set: {piwik:"88"}}); db.portal.update({"pid": "oa-pg"}, {$set: {piwik:"89"}}); db.portal.update({"pid": "rda"}, {$set: {piwik:"90"}}); db.portal.update({"pid": "aginfra"}, {$set: {piwik:"93"}}); db.portal.update({"pid": "clarin"}, {$set: {piwik:"100"}}); db.portal.update({"pid": "dariah"}, {$set: {piwik:"103"}}); db.portal.update({"pid": "epos"}, {$set: {piwik:"217"}}); db.portal.update({"pid": "beopen"}, {$set: {piwik:"218"}}); db.portal.update({"pid": "risis"}, {$set: {piwik:"219"}}); db.portal.update({"pid": "science-innovation-policy"}, {$set: {piwik:"253"}}); db.portal.update({"pid": "covid-19"}, {$set: {piwik:"267"}}); db.portal.update({"pid": "rural-digital-europe"}, {$set: {piwik:"319"}}); db.portal.update({"pid": "enermaps"}, {$set: {piwik:"318"}}); db.portal.update({"pid": "galaxy"}, {$set: {piwik:"453"}}); db.portal.update({"pid": "gotriple"}, {$set: {piwik:"490"}}); db.portal.update({"pid": "neanias-underwater"}, {$set: {piwik:"474"}}); // db.portal.update({"pid": "embrc"}, {$set: {piwik:"474"}}); } // 03-06-2021 function addFooterDivIdForConnect() { connectHomePageID = db.page.find({"portalType": "connect", "route": "/"}).map( function(page) { return page._id.str; } ).toString(); db.divId.save({ "name" : "footer", "pages" : [ connectHomePageID ], "portalType" : "connect" }); print("divId 'footer' added for connect (home page id: "+connectHomePageID + ")"); } function addFooterDivIdForCommunities() { // db.page.save({ "route" : "/", "name" : "Home", "type" : "other", "entities" : [ ], "portalType" : "community", "top" : false, "bottom" : false, "left" : false, "right" : false }); // print("page 'Home' added for communities"); communityHomePageID = db.page.find({"portalType": "community", "route": "/"}).map( function(community) { return community._id.str; } ).toString(); db.divId.save({ "name" : "footer", "pages" : [ communityHomePageID ], "portalType" : "community" }); print("divId 'footer' added for communities (home page id: "+communityHomePageID + ")"); } function addHomePageInCommunities() { communityHomePageID = db.page.insertOne({ "route" : "/", "name" : "Home", "type" : "other", "entities" : [ ], "portalType" : "community", "top" : false, "bottom" : false, "left" : false, "right" : false }).insertedId.str; print("Creating Home page with id " + communityHomePageID); communities = db.portal.find({"type": "community"}).map( function(community) { return community; } ); for (var i = 0; i < communities.length; i++) { community_pages = communities[i].pages; community_pages[communityHomePageID] = true; community_pid = communities[i].pid; db.portal.update({ "pid" : community_pid },{$set: { "pages": community_pages}}); print("Add home page with id " + communityHomePageID + " on community " + community_pid); } } function addFooterHelpTextForConnect() { connectID = db.portal.find({ "pid" : "connect"}).map( function(portal) { return portal._id.str; } ).toString(); connectFooterDivIdID = db.divId.find({"portalType": "connect", "name": "footer"}).map( function(divId) { return divId._id.str; } ).toString(); db.divHelpContent.save( { "divId" : connectFooterDivIdID, "portal" : connectID, "content" : "

    " + "OpenAIRE has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541, 731011 and 101017452" + "

    ", "isActive" : true } ); print("div help text for divId 'footer' added for connect (connect id: "+ connectID + " - footer divId id: "+connectFooterDivIdID + ")"); } function addFooterHelpTextForCommunities() { communityFooterDivIdID = db.divId.find({"portalType": "community", "name": "footer"}).map( function(divId) { return divId._id.str; } ).toString(); communities = db.portal.find({"type": "community"}).map( function(community) { return community; } ); for (var j = 0; j < communities.length; j++) { community = communities[j]; var content = "This OpenAIRE gateway is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541, 731011 and 101017452"; if(community.pid == "aginfra" || community.pid == "rural-digital-europe") { content = "This OpenAIRE gateway is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541, 731011 and 101017452"; } else if(community.pid == "clarin" || community.pid == "covid-19" || community.pid == "dariah" || community.pid == "dh-ch" || community.pid == "egi" || community.pid == "mes" || community.pid == "epos" || community.pid == "elixir-gr" || community.pid == "fam" || community.pid == "ni" || community.pid == "sdsn-gr" || community.pid == "instruct" || community.pid == "instruct" || community.pid == "rda" || community.pid == "gotriple") { content = "This OpenAIRE gateway is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541, 731011 and 101017452"; } else if(community.pid == "enermaps") { content = "This OpenAIRE gateway is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541, 731011, 101017452 and 884161"; } else if(community.pid == "beopen") { content = "This OpenAIRE gateway is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541, 731011, 101017452 and 824323"; } else if(community.pid == "risis" || community.pid == "science-innovation-policy") { content = "This OpenAIRE gateway is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreements No. 777541, 731011, 101017452 and 824091"; } db.divHelpContent.save( { "divId" : communityFooterDivIdID, "portal" : community._id.str, "content" : "

    "+content+"

    ", "isActive" : true } ); print("div help text for divId 'footer' added for community (community id: "+ community._id + " - community pid: " + community.pid + " - footer divId id: "+communityFooterDivIdID + ")"); } } // 04-06-2021 debug helper function function cleanPagesFromPortals() { portals = db.portal.find().map( function(portal) { return portal; } ); for (var j = 0; j < portals.length; j++) { portal = portals[j]; portal_pages = portal.pages; for (var key in portal_pages) { // print(key); // db.page.findOne({"_id": ObjectId(+'"'+key+'"')}); if(db.page.find({"_id": ObjectId(key)}).map( function(page) { return page; } ).length == 0) { delete portal_pages[key]; print("deleted page: "+key + " from portal: "+portal.pid); } } portal_pid = portal.pid; db.portal.update({ "pid" : portal_pid },{$set: { "pages": portal_pages}}); } } use openaireconnect; //updatePages(); //updateTypeOfLandingPages(); //removeEntitiesFromSearchFindPage(); //initDivHelpContents(); //createContentPageWithTypeOther(); //createPagesWithTypeHtml(); //addContent_About_Organizations_PagesToCommunities(); //createCollectionForHtmlPageContents(); //addDefaultHtmlToHtmlPages(); //createMonitorPageWithTypeOther(); //addMonitorPageToCommunities(); //createOtherResearchProducts(); //addDefaultHtmlToHtmlPagesForCommunity("clarin"); //createNotificationsCollection(); //addDivHelpContentsForCommunity("clarin"); //addORPInStatistics(); //createShareInZenodoPage(); //addCommunityLayout(); //addCuratorsPage(); //removeMonitorPage(); //pageOptionConnectAsCommunities(); //organizationsPageTypeFromHtmlToOther(); //removeHtmlPageContentsFromOrganizationsPage(); //addOpenaireConnectCommunitiesOptionsInDivIds(); //addHomeNewsAndOrganizationsDivIds(); //removeLinkingDivHelpContentsForCommunitiesAndConnect(); //----------------------------------------------------- // addMissingAndNewPages(); // changePageRoutesAboutAndZenodo(); // addDepositPoliciesHelpContentInAllCommunities(); // moveOrganizationsDivHelpContentsToPageHelpContents(); // deleteHomeDivHelpContents(); // deleteHomeAndOrganizationsDivIds(); // enableProjectReportPageInCommunities(); // // addPositionsInPages(); // // // addHelpTextsInHomePage(); // addHelpTextsInAboutLearnHowPage(); // addHelpTextsInAboutLearnInDepthPage(); // addHelpTextsInContactUsPage(); // // addHelpTextsInContentPolicyPage(); // // addNewRoutesInCommunities(); //addMyCommunitiesPage(); //removeFaultyEmptyPageFromCommunities(); // /* 08-10-2019*/ // removeOldLayouts(); // 13-03-2020 //addSearchResearchOutcomesPages(); // 02-02-2020 - 19-03-2020 // addPortalType(); // createPagesForEachPortalType(); // createDivIdsForEachPortalType(); // renameCollectionAndFields(); // addPortalPidInLayoutRecords(); // 22-10-2020 // addPiwik(); // 03-06-2021 addFooterDivIdForConnect(); addFooterHelpTextForConnect(); addHomePageInCommunities(); addFooterDivIdForCommunities(); addFooterHelpTextForCommunities(); // 04-06-2021 debug helper function // cleanPagesFromPortals(); // 07-06-2021 debug helper function // cleanDivHelpTexts();