diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/dsm/DsmAjaxController.java b/apps/dnet-is-application/src/main/java/eu/dnetlib/dsm/DsmAjaxController.java index c10ec4b1..2ac26820 100644 --- a/apps/dnet-is-application/src/main/java/eu/dnetlib/dsm/DsmAjaxController.java +++ b/apps/dnet-is-application/src/main/java/eu/dnetlib/dsm/DsmAjaxController.java @@ -24,6 +24,7 @@ import eu.dnetlib.data.openaire.dsm.model.view.SimpleDsWithApis; import eu.dnetlib.dsm.utils.DsmBrowsableFields; import eu.dnetlib.is.errors.DsmException; import eu.dnetlib.is.info.KeyValue; +import eu.dnetlib.is.protocol.ProtocolService; @RestController @RequestMapping("/ajax/dsm") @@ -35,6 +36,9 @@ public class DsmAjaxController extends AbstractDnetController { @Autowired private VocabularyTermRepository vocabularyTermRepository; + @Autowired + private ProtocolService protocolService; + @GetMapping("/browsableFields") public List browsableFields() { return Arrays.stream(DsmBrowsableFields.values()) @@ -42,10 +46,10 @@ public class DsmAjaxController extends AbstractDnetController { .collect(Collectors.toList()); } - @GetMapping("/validTerms") - public Map> validTerms() { - final Map> map = new LinkedHashMap<>(); - map.put("protocols", vocabularyTermRepository.findTermsByVocabulary("dnet:protocols")); + @GetMapping("/conf") + public Map> configuration() { + final Map> map = new LinkedHashMap<>(); + map.put("protocols", protocolService.listProtocols()); map.put("compatibilityLevels", vocabularyTermRepository.findTermsByVocabulary("dnet:compatibilityLevel")); map.put("contentDescTypes", vocabularyTermRepository.findTermsByVocabulary("dnet:content_description_typologies")); return map; diff --git a/apps/dnet-is-application/src/main/resources/static/html/dsm_add_api.html b/apps/dnet-is-application/src/main/resources/static/html/dsm_add_api.html index 7e8af135..e4530b3f 100644 --- a/apps/dnet-is-application/src/main/resources/static/html/dsm_add_api.html +++ b/apps/dnet-is-application/src/main/resources/static/html/dsm_add_api.html @@ -41,8 +41,8 @@
- +
@@ -51,7 +51,17 @@
- + + +
+
+ +
+ +
+
+
+ diff --git a/apps/dnet-is-application/src/main/resources/static/js/dsm_ctrls.js b/apps/dnet-is-application/src/main/resources/static/js/dsm_ctrls.js index 6dcce434..05c627dd 100644 --- a/apps/dnet-is-application/src/main/resources/static/js/dsm_ctrls.js +++ b/apps/dnet-is-application/src/main/resources/static/js/dsm_ctrls.js @@ -87,13 +87,28 @@ app.controller('dsmAddApiController', function($scope, $http, $routeParams) { $scope.protocols = []; $scope.compatibilityLevels = []; $scope.contentDescTypes = []; - - call_http_get($http, './ajax/dsm/browsableFields' , function(res) { + + $scope.selProtParams = []; + + call_http_get($http, './ajax/dsm/conf' , function(res) { $scope.protocols = res.data.protocols; $scope.compatibilityLevels = res.data.compatibilityLevels; $scope.contentDescTypes = res.data.contentDescTypes; }); - + + $scope.updateSelProtParams = function() { + $scope.api.apiParams = {}; + + if ($scope.api.protocol) { + for (var i=0; i < $scope.protocols.length; ++i) { + if ($scope.protocols[i].id == $scope.api.protocol) { + $scope.selProtParams = $scope.protocols[i].params; + return; + } + } + } + } + $scope.save = function() { var record = angular.copy($scope.api); record.id = $scope.prefix + record.id;