moved code under new packages/folders
This commit is contained in:
parent
5b681ed9e8
commit
f5ff6f0601
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm;
|
package eu.dnetlib.dsm;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -17,10 +17,10 @@ import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
||||||
import eu.dnetlib.common.controller.AbstractDnetController;
|
import eu.dnetlib.common.controller.AbstractDnetController;
|
||||||
|
import eu.dnetlib.dsm.domain.Response;
|
||||||
import eu.dnetlib.is.errors.DsmException;
|
import eu.dnetlib.is.errors.DsmException;
|
||||||
import eu.dnetlib.is.errors.DsmForbiddenException;
|
import eu.dnetlib.is.errors.DsmForbiddenException;
|
||||||
import eu.dnetlib.is.errors.DsmNotFoundException;
|
import eu.dnetlib.is.errors.DsmNotFoundException;
|
||||||
import eu.dnetlib.openaire.dsm.domain.Response;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by claudio on 18/07/2017.
|
* Created by claudio on 18/07/2017.
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm;
|
package eu.dnetlib.dsm;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm;
|
package eu.dnetlib.dsm;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
@ -21,9 +21,9 @@ import eu.dnetlib.data.is.vocabulary.repository.VocabularyTermRepository;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Api;
|
import eu.dnetlib.data.openaire.dsm.model.Api;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.BrowseTerm;
|
import eu.dnetlib.data.openaire.dsm.model.BrowseTerm;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.view.SimpleDsWithApis;
|
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.errors.DsmException;
|
||||||
import eu.dnetlib.is.info.KeyValue;
|
import eu.dnetlib.is.info.KeyValue;
|
||||||
import eu.dnetlib.openaire.dsm.utils.DsmBrowsableFields;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/ajax/dsm")
|
@RequestMapping("/ajax/dsm")
|
|
@ -1,8 +1,8 @@
|
||||||
package eu.dnetlib.openaire.dsm;
|
package eu.dnetlib.dsm;
|
||||||
|
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DsmMappingUtils.asDbEntry;
|
import static eu.dnetlib.dsm.utils.DsmMappingUtils.asDbEntry;
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DsmMappingUtils.copyNonNullProperties;
|
import static eu.dnetlib.dsm.utils.DsmMappingUtils.copyNonNullProperties;
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DsmMappingUtils.createId;
|
import static eu.dnetlib.dsm.utils.DsmMappingUtils.createId;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -33,27 +33,27 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Api;
|
import eu.dnetlib.data.openaire.dsm.model.Api;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Datasource;
|
import eu.dnetlib.data.openaire.dsm.model.Datasource;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Identity;
|
import eu.dnetlib.data.openaire.dsm.model.Identity;
|
||||||
|
import eu.dnetlib.dsm.domain.AggregationHistoryResponse;
|
||||||
|
import eu.dnetlib.dsm.domain.AggregationInfo;
|
||||||
|
import eu.dnetlib.dsm.domain.ApiDetails;
|
||||||
|
import eu.dnetlib.dsm.domain.ApiDetailsResponse;
|
||||||
|
import eu.dnetlib.dsm.domain.Country;
|
||||||
|
import eu.dnetlib.dsm.domain.DatasourceDetailResponse;
|
||||||
|
import eu.dnetlib.dsm.domain.DatasourceDetails;
|
||||||
|
import eu.dnetlib.dsm.domain.DatasourceDetailsUpdate;
|
||||||
|
import eu.dnetlib.dsm.domain.DatasourceDetailsWithApis;
|
||||||
|
import eu.dnetlib.dsm.domain.DatasourceSnippetResponse;
|
||||||
|
import eu.dnetlib.dsm.domain.RegisteredDatasourceInfo;
|
||||||
|
import eu.dnetlib.dsm.domain.RequestFilter;
|
||||||
|
import eu.dnetlib.dsm.domain.RequestSort;
|
||||||
|
import eu.dnetlib.dsm.domain.RequestSortOrder;
|
||||||
|
import eu.dnetlib.dsm.domain.SimpleResponse;
|
||||||
|
import eu.dnetlib.dsm.utils.DsmMappingUtils;
|
||||||
|
import eu.dnetlib.dsm.utils.ResponseUtils;
|
||||||
|
import eu.dnetlib.dsm.utils.WfLoggerClient;
|
||||||
import eu.dnetlib.is.errors.DsmException;
|
import eu.dnetlib.is.errors.DsmException;
|
||||||
import eu.dnetlib.is.errors.DsmForbiddenException;
|
import eu.dnetlib.is.errors.DsmForbiddenException;
|
||||||
import eu.dnetlib.is.errors.DsmNotFoundException;
|
import eu.dnetlib.is.errors.DsmNotFoundException;
|
||||||
import eu.dnetlib.openaire.dsm.domain.AggregationHistoryResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.AggregationInfo;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.ApiDetails;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.ApiDetailsResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.Country;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetailResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetails;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetailsUpdate;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetailsWithApis;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceSnippetResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RegisteredDatasourceInfo;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestFilter;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestSort;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestSortOrder;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.SimpleResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.utils.DsmMappingUtils;
|
|
||||||
import eu.dnetlib.openaire.dsm.utils.ResponseUtils;
|
|
||||||
import eu.dnetlib.openaire.dsm.utils.WfLoggerClient;
|
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm;
|
package eu.dnetlib.dsm;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -11,9 +11,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.SimpleDatasourceInfo;
|
import eu.dnetlib.dsm.domain.SimpleDatasourceInfo;
|
||||||
import eu.dnetlib.openaire.dsm.domain.SimpleResponse;
|
import eu.dnetlib.dsm.domain.SimpleResponse;
|
||||||
import eu.dnetlib.openaire.dsm.utils.ResponseUtils;
|
import eu.dnetlib.dsm.utils.ResponseUtils;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
|
@ -1,10 +1,10 @@
|
||||||
package eu.dnetlib.openaire.dsm;
|
package eu.dnetlib.dsm;
|
||||||
|
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DatasourceSpecs.apiSpec;
|
import static eu.dnetlib.dsm.utils.DatasourceSpecs.apiSpec;
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DatasourceSpecs.dsRegisteredbyNotNullSpec;
|
import static eu.dnetlib.dsm.utils.DatasourceSpecs.dsRegisteredbyNotNullSpec;
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DatasourceSpecs.dsSpec;
|
import static eu.dnetlib.dsm.utils.DatasourceSpecs.dsSpec;
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DsmMappingUtils.asDbEntry;
|
import static eu.dnetlib.dsm.utils.DsmMappingUtils.asDbEntry;
|
||||||
import static eu.dnetlib.openaire.dsm.utils.DsmMappingUtils.createId;
|
import static eu.dnetlib.dsm.utils.DsmMappingUtils.createId;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
@ -48,23 +48,23 @@ import eu.dnetlib.data.openaire.dsm.repository.ApiRepository;
|
||||||
import eu.dnetlib.data.openaire.dsm.repository.ApiWithAdditionalInfoRepository;
|
import eu.dnetlib.data.openaire.dsm.repository.ApiWithAdditionalInfoRepository;
|
||||||
import eu.dnetlib.data.openaire.dsm.repository.DatasourceRepository;
|
import eu.dnetlib.data.openaire.dsm.repository.DatasourceRepository;
|
||||||
import eu.dnetlib.data.openaire.dsm.repository.SimpleDsWithApisRepository;
|
import eu.dnetlib.data.openaire.dsm.repository.SimpleDsWithApisRepository;
|
||||||
|
import eu.dnetlib.dsm.domain.ApiDetails;
|
||||||
|
import eu.dnetlib.dsm.domain.Country;
|
||||||
|
import eu.dnetlib.dsm.domain.DatasourceDetailResponse;
|
||||||
|
import eu.dnetlib.dsm.domain.DatasourceSnippetResponse;
|
||||||
|
import eu.dnetlib.dsm.domain.RegisteredDatasourceInfo;
|
||||||
|
import eu.dnetlib.dsm.domain.RequestFilter;
|
||||||
|
import eu.dnetlib.dsm.domain.RequestSort;
|
||||||
|
import eu.dnetlib.dsm.domain.RequestSortOrder;
|
||||||
|
import eu.dnetlib.dsm.domain.SimpleDatasourceInfo;
|
||||||
|
import eu.dnetlib.dsm.domain.SimpleResponse;
|
||||||
|
import eu.dnetlib.dsm.utils.DsmBrowsableFields;
|
||||||
|
import eu.dnetlib.dsm.utils.DsmMappingUtils;
|
||||||
|
import eu.dnetlib.dsm.utils.ResponseUtils;
|
||||||
|
import eu.dnetlib.dsm.utils.VocabularyClient;
|
||||||
import eu.dnetlib.is.errors.DsmException;
|
import eu.dnetlib.is.errors.DsmException;
|
||||||
import eu.dnetlib.is.errors.DsmForbiddenException;
|
import eu.dnetlib.is.errors.DsmForbiddenException;
|
||||||
import eu.dnetlib.is.errors.DsmNotFoundException;
|
import eu.dnetlib.is.errors.DsmNotFoundException;
|
||||||
import eu.dnetlib.openaire.dsm.domain.ApiDetails;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.Country;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetailResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceSnippetResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RegisteredDatasourceInfo;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestFilter;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestSort;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestSortOrder;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.SimpleDatasourceInfo;
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.SimpleResponse;
|
|
||||||
import eu.dnetlib.openaire.dsm.utils.DsmBrowsableFields;
|
|
||||||
import eu.dnetlib.openaire.dsm.utils.DsmMappingUtils;
|
|
||||||
import eu.dnetlib.openaire.dsm.utils.ResponseUtils;
|
|
||||||
import eu.dnetlib.openaire.dsm.utils.VocabularyClient;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@ConditionalOnProperty(value = "openaire.api.enable.dsm", havingValue = "true")
|
@ConditionalOnProperty(value = "openaire.api.enable.dsm", havingValue = "true")
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
public abstract class AggregationInfo {
|
public abstract class AggregationInfo {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
public enum AggregationStage {
|
public enum AggregationStage {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
public class ApiParamDetails {
|
public class ApiParamDetails {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
public class Country {
|
public class Country {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
public enum FilterType {
|
public enum FilterType {
|
||||||
exact,
|
exact,
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
public class RegisteredDatasourceInfo {
|
public class RegisteredDatasourceInfo {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.domain;
|
package eu.dnetlib.dsm.domain;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.utils;
|
package eu.dnetlib.dsm.utils;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -18,10 +18,10 @@ import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Datasource;
|
import eu.dnetlib.data.openaire.dsm.model.Datasource;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.view.ApiWithAdditionalInfo;
|
import eu.dnetlib.data.openaire.dsm.model.view.ApiWithAdditionalInfo;
|
||||||
import eu.dnetlib.openaire.dsm.domain.FilterName;
|
import eu.dnetlib.dsm.domain.FilterName;
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestFilter;
|
import eu.dnetlib.dsm.domain.RequestFilter;
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestSort;
|
import eu.dnetlib.dsm.domain.RequestSort;
|
||||||
import eu.dnetlib.openaire.dsm.domain.RequestSortOrder;
|
import eu.dnetlib.dsm.domain.RequestSortOrder;
|
||||||
|
|
||||||
public class DatasourceSpecs {
|
public class DatasourceSpecs {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.utils;
|
package eu.dnetlib.dsm.utils;
|
||||||
|
|
||||||
public enum DsmBrowsableFields {
|
public enum DsmBrowsableFields {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.utils;
|
package eu.dnetlib.dsm.utils;
|
||||||
|
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -17,11 +17,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Api;
|
import eu.dnetlib.data.openaire.dsm.model.Api;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Datasource;
|
import eu.dnetlib.data.openaire.dsm.model.Datasource;
|
||||||
import eu.dnetlib.data.openaire.dsm.model.Organization;
|
import eu.dnetlib.data.openaire.dsm.model.Organization;
|
||||||
import eu.dnetlib.openaire.dsm.domain.ApiDetails;
|
import eu.dnetlib.dsm.domain.ApiDetails;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetails;
|
import eu.dnetlib.dsm.domain.DatasourceDetails;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetailsUpdate;
|
import eu.dnetlib.dsm.domain.DatasourceDetailsUpdate;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceSnippetExtended;
|
import eu.dnetlib.dsm.domain.DatasourceSnippetExtended;
|
||||||
import eu.dnetlib.openaire.dsm.domain.OrganizationDetails;
|
import eu.dnetlib.dsm.domain.OrganizationDetails;
|
||||||
|
|
||||||
public class DsmMappingUtils {
|
public class DsmMappingUtils {
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
package eu.dnetlib.openaire.dsm.utils;
|
package eu.dnetlib.dsm.utils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import eu.dnetlib.openaire.dsm.domain.ApiDetails;
|
import eu.dnetlib.dsm.domain.ApiDetails;
|
||||||
import eu.dnetlib.openaire.dsm.domain.ApiDetailsResponse;
|
import eu.dnetlib.dsm.domain.ApiDetailsResponse;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetailResponse;
|
import eu.dnetlib.dsm.domain.DatasourceDetailResponse;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceDetails;
|
import eu.dnetlib.dsm.domain.DatasourceDetails;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceInfo;
|
import eu.dnetlib.dsm.domain.DatasourceInfo;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceSearchResponse;
|
import eu.dnetlib.dsm.domain.DatasourceSearchResponse;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceSnippetExtended;
|
import eu.dnetlib.dsm.domain.DatasourceSnippetExtended;
|
||||||
import eu.dnetlib.openaire.dsm.domain.DatasourceSnippetResponse;
|
import eu.dnetlib.dsm.domain.DatasourceSnippetResponse;
|
||||||
import eu.dnetlib.openaire.dsm.domain.Header;
|
import eu.dnetlib.dsm.domain.Header;
|
||||||
import eu.dnetlib.openaire.dsm.domain.SimpleResponse;
|
import eu.dnetlib.dsm.domain.SimpleResponse;
|
||||||
|
|
||||||
public class ResponseUtils {
|
public class ResponseUtils {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.utils;
|
package eu.dnetlib.dsm.utils;
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.openaire.dsm.utils;
|
package eu.dnetlib.dsm.utils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@ import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import eu.dnetlib.dsm.domain.AggregationInfo;
|
||||||
import eu.dnetlib.is.errors.DsmException;
|
import eu.dnetlib.is.errors.DsmException;
|
||||||
import eu.dnetlib.openaire.dsm.domain.AggregationInfo;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by claudio on 20/10/2016.
|
* Created by claudio on 20/10/2016.
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.is;
|
package eu.dnetlib.is.common;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.is;
|
package eu.dnetlib.is.common;
|
||||||
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@ -105,7 +105,18 @@
|
||||||
<script src="common/js/angular.min.js"></script>
|
<script src="common/js/angular.min.js"></script>
|
||||||
<script src="common/js/angular-route.min.js"></script>
|
<script src="common/js/angular-route.min.js"></script>
|
||||||
<script src="common/js/spin.js"></script>
|
<script src="common/js/spin.js"></script>
|
||||||
|
|
||||||
<script src="js/is_utils.js"></script>
|
<script src="js/is_utils.js"></script>
|
||||||
<script src="js/is_main.js"></script>
|
<script src="js/is_main.js"></script>
|
||||||
|
<script src="js/is_simple_ctrls.js"></script>
|
||||||
|
<script src="js/dsm_ctrls.js"></script>
|
||||||
|
<script src="js/ctx_ctrls.js"></script>
|
||||||
|
<script src="js/res_ctrls.js"></script>
|
||||||
|
<script src="js/voc_ctrls.js"></script>
|
||||||
|
<script src="js/wf_ctrls.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</html>
|
</html>
|
|
@ -0,0 +1,99 @@
|
||||||
|
app.controller('ctxListController', function($scope, $http) {
|
||||||
|
$scope.contexts = [];
|
||||||
|
$scope.tmpCtx = {};
|
||||||
|
$scope.mode = '';
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/contexts/?' + $.now(), function(res) {
|
||||||
|
$scope.contexts = res.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.prepareNewCtx = function() {
|
||||||
|
$scope.mode = 'new';
|
||||||
|
$scope.tmpCtx = {
|
||||||
|
'id' : '',
|
||||||
|
'label' : '',
|
||||||
|
'type' : '',
|
||||||
|
'parameters' : []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.prepareEditCtx = function(ctx) {
|
||||||
|
$scope.mode = 'edit';
|
||||||
|
$scope.tmpCtx = angular.copy(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.saveContext = function(ctx) {
|
||||||
|
if ($scope.mode == 'new') {
|
||||||
|
var found = false;
|
||||||
|
|
||||||
|
angular.forEach($scope.contexts, function(v) {
|
||||||
|
if (ctx.id == ctx.id) { found = true; };
|
||||||
|
});
|
||||||
|
|
||||||
|
if (found) {
|
||||||
|
alert("Insertion failed: context already exists !");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
json_http_post($http,'./ajax/contexts/?' + $.now(), ctx, function(res) {
|
||||||
|
$scope.contexts = res.data;
|
||||||
|
alert("Context saved");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.deleteContext = function(id) {
|
||||||
|
if (confirm("Are you sure ?")) {
|
||||||
|
call_http_delete($http, './ajax/contexts/' + encodeURIComponent(id) + '?' + $.now(), function(res) {
|
||||||
|
$scope.contexts = res.data;
|
||||||
|
alert("Context deleted");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------
|
||||||
|
|
||||||
|
app.controller('ctxViewerController', function($scope, $http, $routeParams) {
|
||||||
|
$scope.ctxId = $routeParams.id;
|
||||||
|
$scope.ctxInfo = {};
|
||||||
|
$scope.categories = [];
|
||||||
|
$scope.parameters = [];
|
||||||
|
|
||||||
|
var url = './ajax/contexts/' + encodeURIComponent($scope.ctxId);
|
||||||
|
|
||||||
|
call_http_get($http, url + '?' + $.now(), function(res) {
|
||||||
|
$scope.ctxInfo = res.data;
|
||||||
|
|
||||||
|
call_http_get($http, url + '/categories?' + $.now(), function(res) {
|
||||||
|
$scope.categories = res.data;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.loadContextParameters = function() {
|
||||||
|
$scope.parameters = [];
|
||||||
|
call_http_get($http, './ajax/contexts/' + encodeURIComponent($scope.ctxId) + '?' + $.now(), function(res) {
|
||||||
|
$scope.parameters = res.data.parameters;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.populateNode = function(level, node) {
|
||||||
|
$scope.url = './ajax/contexts/'
|
||||||
|
+ encodeURIComponent(level)
|
||||||
|
+ '/'
|
||||||
|
+ encodeURIComponent(node.id)
|
||||||
|
+ '/concepts';
|
||||||
|
|
||||||
|
node.populated = true;
|
||||||
|
|
||||||
|
call_http_get($http, $scope.url + '?' + $.now(), function(res) {
|
||||||
|
node.concepts = res.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.initShowParameters = function(params) {
|
||||||
|
$scope.parameters = params;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
|
@ -0,0 +1,107 @@
|
||||||
|
app.controller('dsmSearchController', function($scope, $http, $location, $timeout) {
|
||||||
|
$scope.browseFieldId = "";
|
||||||
|
$scope.browseFieldName = "";
|
||||||
|
$scope.browseData = [];
|
||||||
|
|
||||||
|
$scope.browsableFields = [];
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/dsm/browsableFields' , function(res) {
|
||||||
|
$scope.browsableFields = res.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.browseField = function(id, label) {
|
||||||
|
$scope.browseFieldId = id;
|
||||||
|
$scope.browseFieldName = name;
|
||||||
|
$scope.browseData = [];
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/dsm/browse/' + encodeURIComponent(id) + '?' + $.now(), function(res) {
|
||||||
|
$scope.browseData = res.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.search = function(field, value) {
|
||||||
|
var path = "/dsm/results";
|
||||||
|
if (field) { path += '/' + encodeURIComponent(field); }
|
||||||
|
path += '/0/100';
|
||||||
|
|
||||||
|
$timeout(function() {
|
||||||
|
$location.path(path).search('value', value);
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------
|
||||||
|
|
||||||
|
app.controller('dsmResultsController', function($scope, $http, $location, $routeParams) {
|
||||||
|
$scope.field = $routeParams.field;
|
||||||
|
$scope.value = $routeParams.value;
|
||||||
|
$scope.pageSize = $routeParams.size;
|
||||||
|
$scope.currPage = $routeParams.page;
|
||||||
|
|
||||||
|
$scope.nResults = 0;
|
||||||
|
$scope.results = [];
|
||||||
|
$scope.nPages = 0;
|
||||||
|
|
||||||
|
var url = './ajax/dsm/';
|
||||||
|
if ($scope.field) { url += 'searchByField/' + encodeURIComponent($scope.field); }
|
||||||
|
else { url += 'search' }
|
||||||
|
url += '/' + $scope.currPage + '/' + $scope.pageSize;
|
||||||
|
url += '?value=' + encodeURIComponent($scope.value) + '&' + $.now();
|
||||||
|
|
||||||
|
call_http_get($http, url, function(res) {
|
||||||
|
$scope.results = res.data.content;
|
||||||
|
$scope.nResults = res.data.totalElements;
|
||||||
|
$scope.currPage = res.data.number;
|
||||||
|
$scope.nPages = res.data.totalPages;
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.gotoPage = function(page) {
|
||||||
|
$scope.results = [];
|
||||||
|
var path = "/dsm/results";
|
||||||
|
if ($scope.field) { path += '/' + encodeURIComponent($scope.field); }
|
||||||
|
path += '/' + page + '/' + $scope.pageSize;
|
||||||
|
$location.path(path).search('value', $scope.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------
|
||||||
|
|
||||||
|
app.controller('dsmApiController', function($scope, $http, $routeParams) {
|
||||||
|
$scope.apiId = $routeParams.id;
|
||||||
|
$scope.api = {};
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/dsm/api?id=' + encodeURIComponent($scope.apiId) , function(res) {
|
||||||
|
$scope.api = res.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------
|
||||||
|
|
||||||
|
app.controller('dsmAddApiController', function($scope, $http, $routeParams) {
|
||||||
|
$scope.dsName = $routeParams.dsName;
|
||||||
|
$scope.prefix = 'api_________::' + $routeParams.dsId + '::';
|
||||||
|
$scope.api = {}
|
||||||
|
|
||||||
|
$scope.protocols = [];
|
||||||
|
$scope.compatibilityLevels = [];
|
||||||
|
$scope.contentDescTypes = [];
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/dsm/browsableFields' , function(res) {
|
||||||
|
$scope.protocols = res.data.protocols;
|
||||||
|
$scope.compatibilityLevels = res.data.compatibilityLevels;
|
||||||
|
$scope.contentDescTypes = res.data.contentDescTypes;
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.save = function() {
|
||||||
|
var record = angular.copy($scope.api);
|
||||||
|
record.id = $scope.prefix + record.id;
|
||||||
|
record.datasource = $routeParams.dsId;
|
||||||
|
|
||||||
|
json_http_post($http, './ajax/dsm/api', record, function(res) {
|
||||||
|
$scope.api = res.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
|
@ -19,564 +19,3 @@ app.config(['$routeProvider', function($routeProvider) {
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
app.controller('isMenuController', function($scope, $http) {
|
|
||||||
$scope.resTypes = [];
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/resourceTypes' , function(res) {
|
|
||||||
$scope.resTypes = res.data;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('infoController', function($scope, $http) {
|
|
||||||
$scope.info = [];
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/info/?' + $.now(), function(res) {
|
|
||||||
angular.forEach(res.data, function(section) {
|
|
||||||
if (section.name != 'Modules') {
|
|
||||||
angular.forEach(section.data, function(r) {
|
|
||||||
if (r.k.toLowerCase().endsWith('path') || r.k.toLowerCase().endsWith('.dirs')) {
|
|
||||||
r.v = r.v.replaceAll(':', ':\n');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$scope.info = res.data;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('wfHistoryController', function($scope, $http, $routeParams) {
|
|
||||||
$scope.fromDate = $routeParams.from;
|
|
||||||
$scope.toDate = $routeParams.to;
|
|
||||||
$scope.maxNumberOfRecentWfs = $routeParams.total;
|
|
||||||
|
|
||||||
$scope.workflows = [];
|
|
||||||
$scope.currentWf = {};
|
|
||||||
$scope.currDetailsKey = '';
|
|
||||||
$scope.currDetailsValue = '';
|
|
||||||
$scope.sortField = 'processId';
|
|
||||||
$scope.sortReverse = false;
|
|
||||||
|
|
||||||
$scope.reload = function() {
|
|
||||||
var url = './ajax/wfs/?' + $.now();
|
|
||||||
|
|
||||||
url += "&total=" + $scope.maxNumberOfRecentWfs;
|
|
||||||
|
|
||||||
if ($scope.fromDate > 0) { url += "&from=" + $scope.fromDate; }
|
|
||||||
if ($scope.toDate > 0) { url += "&to=" + $scope.toDate; }
|
|
||||||
|
|
||||||
call_http_get($http, url, function(res) {
|
|
||||||
$scope.workflows = res.data;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.setCurrentWf = function(wf) {
|
|
||||||
$scope.currentWf = angular.copy(wf);
|
|
||||||
$scope.currDetailsKey = '';
|
|
||||||
$scope.currDetailsValue = '';
|
|
||||||
$scope.currentWf.arrayDetails = [];
|
|
||||||
$scope.currentWf.duration = $scope.calculateDateDiff(parseInt(wf.details['system:startDate']), parseInt(wf.details['system:endDate']));
|
|
||||||
|
|
||||||
angular.forEach(wf.details, function(v,k) {
|
|
||||||
$scope.currentWf.arrayDetails.push({'k':k, 'v':v});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.setCurrentDetailParam = function(k, v) {
|
|
||||||
$scope.currDetailsKey = k;
|
|
||||||
$scope.currDetailsValue = v;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$scope.calculateDateDiff = function(start, end) {
|
|
||||||
if (start <= 0 || end <= 0) {
|
|
||||||
return '-';
|
|
||||||
}
|
|
||||||
var seconds = 0;
|
|
||||||
var minutes = 0;
|
|
||||||
var hours = 0;
|
|
||||||
var days = 0;
|
|
||||||
|
|
||||||
if (end > start) {
|
|
||||||
seconds = Math.round((end - start) / 1000);
|
|
||||||
if (seconds > 60) {
|
|
||||||
minutes = Math.floor(seconds / 60);
|
|
||||||
seconds = seconds % 60;
|
|
||||||
if (minutes > 60) {
|
|
||||||
hours = Math.floor(minutes / 60);
|
|
||||||
minutes = minutes % 60;
|
|
||||||
if (hours > 24) {
|
|
||||||
days = Math.floor(hours / 24);
|
|
||||||
hours = hours % 24;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var res = '';
|
|
||||||
if (days > 0) {
|
|
||||||
if (res) { res += ', '; }
|
|
||||||
res += days + " day(s)"
|
|
||||||
}
|
|
||||||
if (hours > 0) {
|
|
||||||
if (res) { res += ', '; }
|
|
||||||
res += hours + " hour(s)"
|
|
||||||
}
|
|
||||||
if (minutes > 0) {
|
|
||||||
if (res) { res += ', '; }
|
|
||||||
res += minutes + " minute(s)"
|
|
||||||
}
|
|
||||||
if (seconds > 0) {
|
|
||||||
if (res) { res += ', '; }
|
|
||||||
res += seconds + " second(s)"
|
|
||||||
}
|
|
||||||
if (!res) {
|
|
||||||
res = '0 seconds';
|
|
||||||
}
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.reload();
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('resourcesController', function($scope, $http, $routeParams, $location) {
|
|
||||||
$scope.resources = [];
|
|
||||||
$scope.tmpRes = {};
|
|
||||||
$scope.tmpContent = "loading...";
|
|
||||||
$scope.type = $routeParams.type;
|
|
||||||
$scope.typeDesc = {};
|
|
||||||
|
|
||||||
$scope.reload = function() {
|
|
||||||
call_http_get($http, './ajax/resourceTypes/' + encodeURIComponent($scope.type) + '?' + $.now(), function(res) {
|
|
||||||
$scope.typeDesc = res.data;
|
|
||||||
});
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/resources/' + encodeURIComponent($scope.type) + '?' + $.now(), function(res) {
|
|
||||||
$scope.resources = res.data;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.prepareNewResource = function() {
|
|
||||||
$scope.tmpRes = {
|
|
||||||
'name' : '',
|
|
||||||
'description' : '',
|
|
||||||
'content' : ''
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.prepareEditMetadata = function(r) {
|
|
||||||
$scope.tmpRes = angular.copy(r);
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.prepareEditContent = function(r) {
|
|
||||||
$scope.tmpRes = angular.copy(r);
|
|
||||||
$scope.tmpContent = "loading...";
|
|
||||||
call_http_get($http, './ajax/resources/' + encodeURIComponent(r.id) + '/content?' + $.now(), function(res) {
|
|
||||||
if (res.data instanceof Object) {
|
|
||||||
$scope.tmpContent = JSON.stringify(res.data, null, "\t");
|
|
||||||
} else {
|
|
||||||
$scope.tmpContent = res.data;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.createNewResource = function(r) {
|
|
||||||
params_http_post($http, './ajax/resources/?' + $.now(), $.param({
|
|
||||||
'name' : r.name,
|
|
||||||
'type' : $scope.type,
|
|
||||||
'description' : r.description,
|
|
||||||
'content' : r.content
|
|
||||||
}), function(res) {
|
|
||||||
alert("Resource saved");
|
|
||||||
$('#newResourceModal').modal('hide');
|
|
||||||
$scope.reload();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.saveMetadata = function(id, md) {
|
|
||||||
json_http_post($http, './ajax/resources/' + encodeURIComponent(id) + '/metadata?' + $.now(), md, function(res) {
|
|
||||||
alert("Resource saved");
|
|
||||||
$scope.reload();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.saveContent = function(id, content) {
|
|
||||||
params_http_post($http, './ajax/resources/' + encodeURIComponent(id) + '/content?' + $.now(), $.param({
|
|
||||||
'content' : content
|
|
||||||
}), function(res) {
|
|
||||||
alert("Resource saved");
|
|
||||||
$('#editContentModal').modal('hide');
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.deleteResource = function(r) {
|
|
||||||
if (confirm("Are you sure ?")) {
|
|
||||||
call_http_delete($http, './ajax/resources/' + encodeURIComponent(r.id) + '?' + $.now(), function(res) {
|
|
||||||
alert("Resource deleted");
|
|
||||||
$scope.reload();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if ($scope.type == 'context') { $location.url("/contexts"); }
|
|
||||||
else if ($scope.type == 'vocabulary') { $location.url("/vocs"); }
|
|
||||||
else if ($scope.type == 'protocol') { $location.url("/protocols"); }
|
|
||||||
else { $scope.reload(); }
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('protocolsController', function($scope, $http) {
|
|
||||||
$scope.protocols = [];
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/protocols/?' + $.now(), function(res) {
|
|
||||||
$scope.protocols = res.data;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('ctxListController', function($scope, $http) {
|
|
||||||
$scope.contexts = [];
|
|
||||||
$scope.tmpCtx = {};
|
|
||||||
$scope.mode = '';
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/contexts/?' + $.now(), function(res) {
|
|
||||||
$scope.contexts = res.data;
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.prepareNewCtx = function() {
|
|
||||||
$scope.mode = 'new';
|
|
||||||
$scope.tmpCtx = {
|
|
||||||
'id' : '',
|
|
||||||
'label' : '',
|
|
||||||
'type' : '',
|
|
||||||
'parameters' : []
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.prepareEditCtx = function(ctx) {
|
|
||||||
$scope.mode = 'edit';
|
|
||||||
$scope.tmpCtx = angular.copy(ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.saveContext = function(ctx) {
|
|
||||||
if ($scope.mode == 'new') {
|
|
||||||
var found = false;
|
|
||||||
|
|
||||||
angular.forEach($scope.contexts, function(v) {
|
|
||||||
if (ctx.id == ctx.id) { found = true; };
|
|
||||||
});
|
|
||||||
|
|
||||||
if (found) {
|
|
||||||
alert("Insertion failed: context already exists !");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
json_http_post($http,'./ajax/contexts/?' + $.now(), ctx, function(res) {
|
|
||||||
$scope.contexts = res.data;
|
|
||||||
alert("Context saved");
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.deleteContext = function(id) {
|
|
||||||
if (confirm("Are you sure ?")) {
|
|
||||||
call_http_delete($http, './ajax/contexts/' + encodeURIComponent(id) + '?' + $.now(), function(res) {
|
|
||||||
$scope.contexts = res.data;
|
|
||||||
alert("Context deleted");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('ctxViewerController', function($scope, $http, $routeParams) {
|
|
||||||
$scope.ctxId = $routeParams.id;
|
|
||||||
$scope.ctxInfo = {};
|
|
||||||
$scope.categories = [];
|
|
||||||
$scope.parameters = [];
|
|
||||||
|
|
||||||
var url = './ajax/contexts/' + encodeURIComponent($scope.ctxId);
|
|
||||||
|
|
||||||
call_http_get($http, url + '?' + $.now(), function(res) {
|
|
||||||
$scope.ctxInfo = res.data;
|
|
||||||
|
|
||||||
call_http_get($http, url + '/categories?' + $.now(), function(res) {
|
|
||||||
$scope.categories = res.data;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.loadContextParameters = function() {
|
|
||||||
$scope.parameters = [];
|
|
||||||
call_http_get($http, './ajax/contexts/' + encodeURIComponent($scope.ctxId) + '?' + $.now(), function(res) {
|
|
||||||
$scope.parameters = res.data.parameters;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.populateNode = function(level, node) {
|
|
||||||
$scope.url = './ajax/contexts/'
|
|
||||||
+ encodeURIComponent(level)
|
|
||||||
+ '/'
|
|
||||||
+ encodeURIComponent(node.id)
|
|
||||||
+ '/concepts';
|
|
||||||
|
|
||||||
node.populated = true;
|
|
||||||
|
|
||||||
call_http_get($http, $scope.url + '?' + $.now(), function(res) {
|
|
||||||
node.concepts = res.data;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.initShowParameters = function(params) {
|
|
||||||
$scope.parameters = params;
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('vocListController', function($scope, $http) {
|
|
||||||
$scope.vocabularies = [];
|
|
||||||
$scope.tmpVoc = {};
|
|
||||||
$scope.mode = '';
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/vocs/?' + $.now(), function(res) {
|
|
||||||
$scope.vocabularies = res.data;
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.prepareNewVoc = function() {
|
|
||||||
$scope.mode = 'new';
|
|
||||||
$scope.tmpVoc = {
|
|
||||||
'id' : '',
|
|
||||||
'name' : '',
|
|
||||||
'description' : ''
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.prepareEditVoc = function(voc) {
|
|
||||||
$scope.mode = 'edit';
|
|
||||||
$scope.tmpVoc = angular.copy(voc);
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.saveVocabulary = function(voc) {
|
|
||||||
if ($scope.mode == 'new') {
|
|
||||||
var found = false;
|
|
||||||
|
|
||||||
angular.forEach($scope.vocabularies, function(v) {
|
|
||||||
if (voc.id == v.id) { found = true; };
|
|
||||||
});
|
|
||||||
|
|
||||||
if (found) {
|
|
||||||
alert("Insertion failed: vocabulary already exists !");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
json_http_post($http, './ajax/vocs/?' + $.now(), voc, function(res) {
|
|
||||||
$scope.vocabularies = res.data;
|
|
||||||
alert("Vocabulary saved");
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.deleteVocabulary = function(id) {
|
|
||||||
if (confirm("Are you sure ?")) {
|
|
||||||
call_http_delete($http, './ajax/vocs/' + encodeURIComponent(id) + '?' + $.now(), function(res) {
|
|
||||||
$scope.vocabularies = res.data;
|
|
||||||
alert("Vocabulary deleted");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('vocEditorController', function($scope, $http, $routeParams) {
|
|
||||||
$scope.terms = [];
|
|
||||||
$scope.vocId = $routeParams.id;
|
|
||||||
$scope.vocInfo = {};
|
|
||||||
$scope.editTermCode = '';
|
|
||||||
$scope.tmpTerm = {};
|
|
||||||
$scope.mode = '';
|
|
||||||
$scope.currTerm = [];
|
|
||||||
|
|
||||||
$scope.baseUrl = './ajax/vocs/' + encodeURIComponent($scope.vocId);
|
|
||||||
|
|
||||||
call_http_get($http, $scope.baseUrl + '?' + $.now(), function(res) {
|
|
||||||
$scope.vocInfo = res.data;
|
|
||||||
|
|
||||||
call_http_get($http, $scope.baseUrl + '/terms?' + $.now(), function(res) {
|
|
||||||
$scope.terms = res.data;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.setCurrTerm = function(term) {
|
|
||||||
$scope.currTerm = angular.copy(term);
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.prepareNewTerm = function() {
|
|
||||||
$scope.mode = 'new';
|
|
||||||
$scope.editTermCode = '';
|
|
||||||
$scope.tmpTerm = {
|
|
||||||
'code' : '',
|
|
||||||
'name' : '',
|
|
||||||
'encoding' : 'OPENAIRE',
|
|
||||||
'synonyms' : []
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.prepareEditTerm = function(term) {
|
|
||||||
$scope.mode = 'edit';
|
|
||||||
$scope.editTermCode = term.code;
|
|
||||||
$scope.tmpTerm = angular.copy(term);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$scope.saveTerm = function(term) {
|
|
||||||
var url = $scope.baseUrl + '/terms?' + $.now();
|
|
||||||
|
|
||||||
json_http_post($http, url, term, function(res) {
|
|
||||||
if ($scope.editTermCode != '' && $scope.editTermCode != $scope.tmpTerm.code) {
|
|
||||||
var deleteUrl = $scope.baseUrl + '/terms/' + encodeURIComponent($scope.editTermCode) + '?' + $.now();
|
|
||||||
call_http_delete($http, deleteUrl, function(res) {
|
|
||||||
$scope.terms = res.data;
|
|
||||||
alert("Term replaced");
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
$scope.terms = res.data;
|
|
||||||
alert("Term saved");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.deleteTerm = function(code) {
|
|
||||||
if (confirm("Are you sure ?")) {
|
|
||||||
var url = $scope.baseUrl + '/terms/' + encodeURIComponent(code) + '?' + $.now();
|
|
||||||
|
|
||||||
call_http_delete($http, url, function(res) {
|
|
||||||
$scope.terms = res.data;
|
|
||||||
alert("Term deleted");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('dsmSearchController', function($scope, $http, $location, $timeout) {
|
|
||||||
$scope.browseFieldId = "";
|
|
||||||
$scope.browseFieldName = "";
|
|
||||||
$scope.browseData = [];
|
|
||||||
|
|
||||||
$scope.browsableFields = [];
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/dsm/browsableFields' , function(res) {
|
|
||||||
$scope.browsableFields = res.data;
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.browseField = function(id, label) {
|
|
||||||
$scope.browseFieldId = id;
|
|
||||||
$scope.browseFieldName = name;
|
|
||||||
$scope.browseData = [];
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/dsm/browse/' + encodeURIComponent(id) + '?' + $.now(), function(res) {
|
|
||||||
$scope.browseData = res.data;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$scope.search = function(field, value) {
|
|
||||||
var path = "/dsm/results";
|
|
||||||
if (field) { path += '/' + encodeURIComponent(field); }
|
|
||||||
path += '/0/100';
|
|
||||||
|
|
||||||
$timeout(function() {
|
|
||||||
$location.path(path).search('value', value);
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('dsmResultsController', function($scope, $http, $location, $routeParams) {
|
|
||||||
$scope.field = $routeParams.field;
|
|
||||||
$scope.value = $routeParams.value;
|
|
||||||
$scope.pageSize = $routeParams.size;
|
|
||||||
$scope.currPage = $routeParams.page;
|
|
||||||
|
|
||||||
$scope.nResults = 0;
|
|
||||||
$scope.results = [];
|
|
||||||
$scope.nPages = 0;
|
|
||||||
|
|
||||||
var url = './ajax/dsm/';
|
|
||||||
if ($scope.field) { url += 'searchByField/' + encodeURIComponent($scope.field); }
|
|
||||||
else { url += 'search' }
|
|
||||||
url += '/' + $scope.currPage + '/' + $scope.pageSize;
|
|
||||||
url += '?value=' + encodeURIComponent($scope.value) + '&' + $.now();
|
|
||||||
|
|
||||||
call_http_get($http, url, function(res) {
|
|
||||||
$scope.results = res.data.content;
|
|
||||||
$scope.nResults = res.data.totalElements;
|
|
||||||
$scope.currPage = res.data.number;
|
|
||||||
$scope.nPages = res.data.totalPages;
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.gotoPage = function(page) {
|
|
||||||
$scope.results = [];
|
|
||||||
var path = "/dsm/results";
|
|
||||||
if ($scope.field) { path += '/' + encodeURIComponent($scope.field); }
|
|
||||||
path += '/' + page + '/' + $scope.pageSize;
|
|
||||||
$location.path(path).search('value', $scope.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('dsmApiController', function($scope, $http, $routeParams) {
|
|
||||||
$scope.apiId = $routeParams.id;
|
|
||||||
$scope.api = {};
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/dsm/api?id=' + encodeURIComponent($scope.apiId) , function(res) {
|
|
||||||
$scope.api = res.data;
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
|
|
||||||
app.controller('dsmAddApiController', function($scope, $http, $routeParams) {
|
|
||||||
$scope.dsName = $routeParams.dsName;
|
|
||||||
$scope.prefix = 'api_________::' + $routeParams.dsId + '::';
|
|
||||||
$scope.api = {}
|
|
||||||
|
|
||||||
$scope.protocols = [];
|
|
||||||
$scope.compatibilityLevels = [];
|
|
||||||
$scope.contentDescTypes = [];
|
|
||||||
|
|
||||||
call_http_get($http, './ajax/dsm/browsableFields' , function(res) {
|
|
||||||
$scope.protocols = res.data.protocols;
|
|
||||||
$scope.compatibilityLevels = res.data.compatibilityLevels;
|
|
||||||
$scope.contentDescTypes = res.data.contentDescTypes;
|
|
||||||
});
|
|
||||||
|
|
||||||
$scope.save = function() {
|
|
||||||
var record = angular.copy($scope.api);
|
|
||||||
record.id = $scope.prefix + record.id;
|
|
||||||
record.datasource = $routeParams.dsId;
|
|
||||||
|
|
||||||
json_http_post($http, './ajax/dsm/api', record, function(res) {
|
|
||||||
$scope.api = res.data;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
app.controller('isMenuController', function($scope, $http) {
|
||||||
|
$scope.resTypes = [];
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/resourceTypes' , function(res) {
|
||||||
|
$scope.resTypes = res.data;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------
|
||||||
|
|
||||||
|
app.controller('infoController', function($scope, $http) {
|
||||||
|
$scope.info = [];
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/info/?' + $.now(), function(res) {
|
||||||
|
angular.forEach(res.data, function(section) {
|
||||||
|
if (section.name != 'Modules') {
|
||||||
|
angular.forEach(section.data, function(r) {
|
||||||
|
if (r.k.toLowerCase().endsWith('path') || r.k.toLowerCase().endsWith('.dirs')) {
|
||||||
|
r.v = r.v.replaceAll(':', ':\n');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$scope.info = res.data;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------
|
||||||
|
|
||||||
|
app.controller('protocolsController', function($scope, $http) {
|
||||||
|
$scope.protocols = [];
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/protocols/?' + $.now(), function(res) {
|
||||||
|
$scope.protocols = res.data;
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,84 @@
|
||||||
|
app.controller('resourcesController', function($scope, $http, $routeParams, $location) {
|
||||||
|
$scope.resources = [];
|
||||||
|
$scope.tmpRes = {};
|
||||||
|
$scope.tmpContent = "loading...";
|
||||||
|
$scope.type = $routeParams.type;
|
||||||
|
$scope.typeDesc = {};
|
||||||
|
|
||||||
|
$scope.reload = function() {
|
||||||
|
call_http_get($http, './ajax/resourceTypes/' + encodeURIComponent($scope.type) + '?' + $.now(), function(res) {
|
||||||
|
$scope.typeDesc = res.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/resources/' + encodeURIComponent($scope.type) + '?' + $.now(), function(res) {
|
||||||
|
$scope.resources = res.data;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.prepareNewResource = function() {
|
||||||
|
$scope.tmpRes = {
|
||||||
|
'name' : '',
|
||||||
|
'description' : '',
|
||||||
|
'content' : ''
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.prepareEditMetadata = function(r) {
|
||||||
|
$scope.tmpRes = angular.copy(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.prepareEditContent = function(r) {
|
||||||
|
$scope.tmpRes = angular.copy(r);
|
||||||
|
$scope.tmpContent = "loading...";
|
||||||
|
call_http_get($http, './ajax/resources/' + encodeURIComponent(r.id) + '/content?' + $.now(), function(res) {
|
||||||
|
if (res.data instanceof Object) {
|
||||||
|
$scope.tmpContent = JSON.stringify(res.data, null, "\t");
|
||||||
|
} else {
|
||||||
|
$scope.tmpContent = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.createNewResource = function(r) {
|
||||||
|
params_http_post($http, './ajax/resources/?' + $.now(), $.param({
|
||||||
|
'name' : r.name,
|
||||||
|
'type' : $scope.type,
|
||||||
|
'description' : r.description,
|
||||||
|
'content' : r.content
|
||||||
|
}), function(res) {
|
||||||
|
alert("Resource saved");
|
||||||
|
$('#newResourceModal').modal('hide');
|
||||||
|
$scope.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.saveMetadata = function(id, md) {
|
||||||
|
json_http_post($http, './ajax/resources/' + encodeURIComponent(id) + '/metadata?' + $.now(), md, function(res) {
|
||||||
|
alert("Resource saved");
|
||||||
|
$scope.reload();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.saveContent = function(id, content) {
|
||||||
|
params_http_post($http, './ajax/resources/' + encodeURIComponent(id) + '/content?' + $.now(), $.param({
|
||||||
|
'content' : content
|
||||||
|
}), function(res) {
|
||||||
|
alert("Resource saved");
|
||||||
|
$('#editContentModal').modal('hide');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.deleteResource = function(r) {
|
||||||
|
if (confirm("Are you sure ?")) {
|
||||||
|
call_http_delete($http, './ajax/resources/' + encodeURIComponent(r.id) + '?' + $.now(), function(res) {
|
||||||
|
alert("Resource deleted");
|
||||||
|
$scope.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($scope.type == 'context') { $location.url("/contexts"); }
|
||||||
|
else if ($scope.type == 'vocabulary') { $location.url("/vocs"); }
|
||||||
|
else if ($scope.type == 'protocol') { $location.url("/protocols"); }
|
||||||
|
else { $scope.reload(); }
|
||||||
|
});
|
|
@ -0,0 +1,125 @@
|
||||||
|
app.controller('vocListController', function($scope, $http) {
|
||||||
|
$scope.vocabularies = [];
|
||||||
|
$scope.tmpVoc = {};
|
||||||
|
$scope.mode = '';
|
||||||
|
|
||||||
|
call_http_get($http, './ajax/vocs/?' + $.now(), function(res) {
|
||||||
|
$scope.vocabularies = res.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.prepareNewVoc = function() {
|
||||||
|
$scope.mode = 'new';
|
||||||
|
$scope.tmpVoc = {
|
||||||
|
'id' : '',
|
||||||
|
'name' : '',
|
||||||
|
'description' : ''
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.prepareEditVoc = function(voc) {
|
||||||
|
$scope.mode = 'edit';
|
||||||
|
$scope.tmpVoc = angular.copy(voc);
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.saveVocabulary = function(voc) {
|
||||||
|
if ($scope.mode == 'new') {
|
||||||
|
var found = false;
|
||||||
|
|
||||||
|
angular.forEach($scope.vocabularies, function(v) {
|
||||||
|
if (voc.id == v.id) { found = true; };
|
||||||
|
});
|
||||||
|
|
||||||
|
if (found) {
|
||||||
|
alert("Insertion failed: vocabulary already exists !");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
json_http_post($http, './ajax/vocs/?' + $.now(), voc, function(res) {
|
||||||
|
$scope.vocabularies = res.data;
|
||||||
|
alert("Vocabulary saved");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.deleteVocabulary = function(id) {
|
||||||
|
if (confirm("Are you sure ?")) {
|
||||||
|
call_http_delete($http, './ajax/vocs/' + encodeURIComponent(id) + '?' + $.now(), function(res) {
|
||||||
|
$scope.vocabularies = res.data;
|
||||||
|
alert("Vocabulary deleted");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// ----------------------------------------------------
|
||||||
|
|
||||||
|
app.controller('vocEditorController', function($scope, $http, $routeParams) {
|
||||||
|
$scope.terms = [];
|
||||||
|
$scope.vocId = $routeParams.id;
|
||||||
|
$scope.vocInfo = {};
|
||||||
|
$scope.editTermCode = '';
|
||||||
|
$scope.tmpTerm = {};
|
||||||
|
$scope.mode = '';
|
||||||
|
$scope.currTerm = [];
|
||||||
|
|
||||||
|
$scope.baseUrl = './ajax/vocs/' + encodeURIComponent($scope.vocId);
|
||||||
|
|
||||||
|
call_http_get($http, $scope.baseUrl + '?' + $.now(), function(res) {
|
||||||
|
$scope.vocInfo = res.data;
|
||||||
|
|
||||||
|
call_http_get($http, $scope.baseUrl + '/terms?' + $.now(), function(res) {
|
||||||
|
$scope.terms = res.data;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.setCurrTerm = function(term) {
|
||||||
|
$scope.currTerm = angular.copy(term);
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.prepareNewTerm = function() {
|
||||||
|
$scope.mode = 'new';
|
||||||
|
$scope.editTermCode = '';
|
||||||
|
$scope.tmpTerm = {
|
||||||
|
'code' : '',
|
||||||
|
'name' : '',
|
||||||
|
'encoding' : 'OPENAIRE',
|
||||||
|
'synonyms' : []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.prepareEditTerm = function(term) {
|
||||||
|
$scope.mode = 'edit';
|
||||||
|
$scope.editTermCode = term.code;
|
||||||
|
$scope.tmpTerm = angular.copy(term);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$scope.saveTerm = function(term) {
|
||||||
|
var url = $scope.baseUrl + '/terms?' + $.now();
|
||||||
|
|
||||||
|
json_http_post($http, url, term, function(res) {
|
||||||
|
if ($scope.editTermCode != '' && $scope.editTermCode != $scope.tmpTerm.code) {
|
||||||
|
var deleteUrl = $scope.baseUrl + '/terms/' + encodeURIComponent($scope.editTermCode) + '?' + $.now();
|
||||||
|
call_http_delete($http, deleteUrl, function(res) {
|
||||||
|
$scope.terms = res.data;
|
||||||
|
alert("Term replaced");
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$scope.terms = res.data;
|
||||||
|
alert("Term saved");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.deleteTerm = function(code) {
|
||||||
|
if (confirm("Are you sure ?")) {
|
||||||
|
var url = $scope.baseUrl + '/terms/' + encodeURIComponent(code) + '?' + $.now();
|
||||||
|
|
||||||
|
call_http_delete($http, url, function(res) {
|
||||||
|
$scope.terms = res.data;
|
||||||
|
alert("Term deleted");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
|
@ -0,0 +1,93 @@
|
||||||
|
app.controller('wfHistoryController', function($scope, $http, $routeParams) {
|
||||||
|
$scope.fromDate = $routeParams.from;
|
||||||
|
$scope.toDate = $routeParams.to;
|
||||||
|
$scope.maxNumberOfRecentWfs = $routeParams.total;
|
||||||
|
|
||||||
|
$scope.workflows = [];
|
||||||
|
$scope.currentWf = {};
|
||||||
|
$scope.currDetailsKey = '';
|
||||||
|
$scope.currDetailsValue = '';
|
||||||
|
$scope.sortField = 'processId';
|
||||||
|
$scope.sortReverse = false;
|
||||||
|
|
||||||
|
$scope.reload = function() {
|
||||||
|
var url = './ajax/wfs/?' + $.now();
|
||||||
|
|
||||||
|
url += "&total=" + $scope.maxNumberOfRecentWfs;
|
||||||
|
|
||||||
|
if ($scope.fromDate > 0) { url += "&from=" + $scope.fromDate; }
|
||||||
|
if ($scope.toDate > 0) { url += "&to=" + $scope.toDate; }
|
||||||
|
|
||||||
|
call_http_get($http, url, function(res) {
|
||||||
|
$scope.workflows = res.data;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.setCurrentWf = function(wf) {
|
||||||
|
$scope.currentWf = angular.copy(wf);
|
||||||
|
$scope.currDetailsKey = '';
|
||||||
|
$scope.currDetailsValue = '';
|
||||||
|
$scope.currentWf.arrayDetails = [];
|
||||||
|
$scope.currentWf.duration = $scope.calculateDateDiff(parseInt(wf.details['system:startDate']), parseInt(wf.details['system:endDate']));
|
||||||
|
|
||||||
|
angular.forEach(wf.details, function(v,k) {
|
||||||
|
$scope.currentWf.arrayDetails.push({'k':k, 'v':v});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.setCurrentDetailParam = function(k, v) {
|
||||||
|
$scope.currDetailsKey = k;
|
||||||
|
$scope.currDetailsValue = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$scope.calculateDateDiff = function(start, end) {
|
||||||
|
if (start <= 0 || end <= 0) {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
var seconds = 0;
|
||||||
|
var minutes = 0;
|
||||||
|
var hours = 0;
|
||||||
|
var days = 0;
|
||||||
|
|
||||||
|
if (end > start) {
|
||||||
|
seconds = Math.round((end - start) / 1000);
|
||||||
|
if (seconds > 60) {
|
||||||
|
minutes = Math.floor(seconds / 60);
|
||||||
|
seconds = seconds % 60;
|
||||||
|
if (minutes > 60) {
|
||||||
|
hours = Math.floor(minutes / 60);
|
||||||
|
minutes = minutes % 60;
|
||||||
|
if (hours > 24) {
|
||||||
|
days = Math.floor(hours / 24);
|
||||||
|
hours = hours % 24;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var res = '';
|
||||||
|
if (days > 0) {
|
||||||
|
if (res) { res += ', '; }
|
||||||
|
res += days + " day(s)"
|
||||||
|
}
|
||||||
|
if (hours > 0) {
|
||||||
|
if (res) { res += ', '; }
|
||||||
|
res += hours + " hour(s)"
|
||||||
|
}
|
||||||
|
if (minutes > 0) {
|
||||||
|
if (res) { res += ', '; }
|
||||||
|
res += minutes + " minute(s)"
|
||||||
|
}
|
||||||
|
if (seconds > 0) {
|
||||||
|
if (res) { res += ', '; }
|
||||||
|
res += seconds + " second(s)"
|
||||||
|
}
|
||||||
|
if (!res) {
|
||||||
|
res = '0 seconds';
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.reload();
|
||||||
|
});
|
Loading…
Reference in New Issue