diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java index 74b1ce108..9beea78c6 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/ProjectDaoImpl.java @@ -12,9 +12,13 @@ import javax.persistence.criteria.JoinType; import java.util.UUID; import java.util.concurrent.CompletableFuture; -@Service("ProjectDao") +@Service("projectDao") public class ProjectDaoImpl extends DatabaseAccess implements ProjectDao { + public ProjectDaoImpl(DatabaseService databaseService) { + super(databaseService); + } + @Override public QueryableList getWithCritetia(ProjectCriteria criteria) { QueryableList query = getDatabaseService().getQueryable(Project.class); @@ -33,10 +37,6 @@ public class ProjectDaoImpl extends DatabaseAccess implements ProjectDa return query; } - public ProjectDaoImpl(DatabaseService databaseService) { - super(databaseService); - } - @Override public Project createOrUpdate(Project item) { return this.getDatabaseService().createOrUpdate(item, Project.class); diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java index 7f0e737b4..579ea1a85 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java @@ -36,7 +36,7 @@ public class Project implements DataEntity { case 99: return DELETED; default: - throw new RuntimeException("Unsupported Grant Status"); + throw new RuntimeException("Unsupported Project Status"); } } } @@ -61,7 +61,7 @@ public class Project implements DataEntity { case 1: return INTERNAL; default: - throw new RuntimeException("Unsupported Grant Type"); + throw new RuntimeException("Unsupported Project Type"); } } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java index 50eba0581..1cf583a7c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Projects.java @@ -19,7 +19,7 @@ import java.util.List; @RestController @CrossOrigin @RequestMapping(value = {"/api/projects/"}) -public class Projects extends BaseController{ +public class Projects extends BaseController { private ProjectManager projectManager; @Autowired @@ -30,8 +30,8 @@ public class Projects extends BaseController{ @RequestMapping(method = RequestMethod.POST, value = {"/external"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity>> getWithExternal(@RequestBody ProjectCriteriaRequest grantCriteria, Principal principal) throws NoURLFound, InstantiationException, HugeResultSet, IllegalAccessException { - List dataTable = this.projectManager.getCriteriaWithExternal(grantCriteria, principal); + ResponseEntity>> getWithExternal(@RequestBody ProjectCriteriaRequest projectCriteria, Principal principal) throws NoURLFound, InstantiationException, HugeResultSet, IllegalAccessException { + List dataTable = this.projectManager.getCriteriaWithExternal(projectCriteria, principal); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().payload(dataTable).status(ApiMessageCode.NO_MESSAGE)); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java index b4024fe5b..77b099031 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ProjectManager.java @@ -28,12 +28,12 @@ public class ProjectManager { this.remoteFetcher = apiContext.getOperationsContext().getRemoteFetcher(); } - public List getCriteriaWithExternal(ProjectCriteriaRequest projectCriteria, Principal principal) throws IllegalAccessException, InstantiationException, HugeResultSet, NoURLFound { + public List getCriteriaWithExternal(ProjectCriteriaRequest projectCriteria, Principal principal) throws HugeResultSet, NoURLFound { eu.eudat.data.entities.UserInfo userInfo = new eu.eudat.data.entities.UserInfo(); userInfo.setId(principal.getId()); QueryableList items = apiContext.getOperationsContext().getDatabaseRepository().getProjectDao().getWithCritetia(projectCriteria.getCriteria()); QueryableList authItems = apiContext.getOperationsContext().getDatabaseRepository().getProjectDao().getAuthenticated(items, userInfo); - List projects = authItems.select(item -> new eu.eudat.models.data.project.Project().fromDataModel(item)); + List projects = authItems.select(item -> new Project().fromDataModel(item)); List> remoteRepos = remoteFetcher.getProjects(projectCriteria.getCriteria().getLike()); ProjectsExternalSourcesModel projectsExternalSourcesModel = new ProjectsExternalSourcesModel().fromExternalItem(remoteRepos); for (ExternalSourcesItemModel externalListingItem : projectsExternalSourcesModel) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java index 9788f4dc3..f664bc005 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/RemoteFetcher.java @@ -3,6 +3,7 @@ package eu.eudat.logic.proxy.fetching; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; import eu.eudat.configurations.dynamicgrant.DynamicGrantConfiguration; +import eu.eudat.configurations.dynamicproject.DynamicProjectConfiguration; import eu.eudat.logic.proxy.config.DataUrlConfiguration; import eu.eudat.logic.proxy.config.FetchStrategy; import eu.eudat.logic.proxy.config.UrlConfiguration; @@ -26,11 +27,13 @@ public class RemoteFetcher { private ConfigLoader configLoader; private DynamicGrantConfiguration dynamicGrantConfiguration; + private DynamicProjectConfiguration dynamicProjectConfiguration; @Autowired - public RemoteFetcher(ConfigLoader configLoader, DynamicGrantConfiguration dynamicGrantConfiguration) { + public RemoteFetcher(ConfigLoader configLoader, DynamicGrantConfiguration dynamicGrantConfiguration, DynamicProjectConfiguration dynamicProjectConfiguration) { this.configLoader = configLoader; this.dynamicGrantConfiguration = dynamicGrantConfiguration; + this.dynamicProjectConfiguration = dynamicProjectConfiguration; } @Cacheable("repositories") @@ -51,7 +54,7 @@ public class RemoteFetcher { @Cacheable("projects") public List> getProjects(String query) throws NoURLFound, HugeResultSet { - List urlConfigs = Arrays.asList(this.dynamicGrantConfiguration.getConfiguration().getMainExternalField().getUrlConfig()); + List urlConfigs = Arrays.asList(this.dynamicProjectConfiguration.getConfiguration().getMainExternalField().getUrlConfig()); FetchStrategy fetchStrategy = configLoader.getExternalUrls().getProjects().getFetchMode(); return getAll(urlConfigs, fetchStrategy, query); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepositoryImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepositoryImpl.java index 1c6cbbbfa..b68350cd9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepositoryImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/operations/DatabaseRepositoryImpl.java @@ -257,6 +257,7 @@ public class DatabaseRepositoryImpl implements DatabaseRepository { return projectDao; } + @Autowired public void setProjectDao(ProjectDao projectDao) { this.projectDao = projectDao; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanEditorModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanEditorModel.java index 081339db0..826dacea3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanEditorModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanEditorModel.java @@ -281,6 +281,26 @@ public class DataManagementPlanEditorModel implements DataModel + + + field1 + DMP-EDITOR.FIELDS.PROJECT + http://localhost:9091/api/project/ + search + id + name + + + field2 + funder + + + false + + + field2 + DMP-EDITOR.FIELDS.FUNDER + http://localhost:9091/api/funder/ + search + id + name + + + false + + + field3 + DMP-EDITOR.FIELDS.GRANT + http://localhost:9091/api/grant/ + search + id + name + + + false + + + + field3 + project.configuration.grant.name + + 1 + https://eestore.paas2.uninett.no/api/projectrepo/ + + $['data'][*]['attributes'] + + 'pid' + 'name' + 'uri' + 'description' + + + $['meta']['pagination']['page','pages','count'] + + pid + name + + + navbar + NAV-BAR.PROJECTS + + + listingTitle + PROJECT-LISTING.TITLE + + + editorTitle + PROJECT-EDITOR.TITLE.NEW + + + editorLogo + PROJECT-EDITOR.FIELDS.LOGO + + + dmpEditor + DMP-EDITOR.FIELDS.PROJECT + + + criteriaStart + CRITERIA.PROJECTS.PERIOD-FROM + + + criteriaEnd + CRITERIA.PROJECTS.PERIOD-TO + + + dmpCriteria + CRITERIA.DMP.PROJECTS + + + + + + + \ No newline at end of file diff --git a/dmp-backend/web/src/main/resources/application-devel.properties b/dmp-backend/web/src/main/resources/application-devel.properties index 60760747e..17080a476 100644 --- a/dmp-backend/web/src/main/resources/application-devel.properties +++ b/dmp-backend/web/src/main/resources/application-devel.properties @@ -16,6 +16,7 @@ pdf.converter.url=http://localhost:88/ ####################CONFIGURATION FILES OVERRIDES CONFIGURATIONS########## configuration.externalUrls=/tmp/ExternalUrls.xml +configuration.dynamicGrantUrl=/tmp/GrantConfiguration.xml configuration.dynamicProjectUrl=/tmp/ProjectConfiguration.xml configuration.h2020template=C:\\Users\\gkolokythas\\Documents\\openDmp\\dmp-backend\\web\\src\\main\\resources\\documents\\h2020.docx