Merge branch 'dmp-refactoring' of https://code-repo.d4science.org/MaDgiK-CITE/argos into dmp-refactoring
This commit is contained in:
commit
1038a14a8b
|
@ -0,0 +1,33 @@
|
|||
package org.opencdmp.commons.enums.annotation;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.opencdmp.commons.enums.EnumUtils;
|
||||
import org.opencdmp.data.converters.enums.DatabaseEnum;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public enum AnnotationEntityType implements DatabaseEnum<String> {
|
||||
Description(EntityType.description),
|
||||
Plan(EntityType.plan);
|
||||
private final String value;
|
||||
|
||||
public static class EntityType {
|
||||
public static final String description = "description";
|
||||
public static final String plan = "plan";
|
||||
}
|
||||
|
||||
AnnotationEntityType(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@JsonValue
|
||||
public String getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
private static final Map<String, AnnotationEntityType> map = EnumUtils.getEnumValueMap(AnnotationEntityType.class);
|
||||
|
||||
public static AnnotationEntityType of(String i) {
|
||||
return map.get(i);
|
||||
}
|
||||
}
|
|
@ -11,11 +11,13 @@ public class NotificationProperties {
|
|||
private UUID planInvitationExistingUserType;
|
||||
private UUID planModifiedType;
|
||||
private UUID planFinalisedType;
|
||||
private UUID planAnnotationCreatedType;
|
||||
private UUID planAnnotationStatusChangedType;
|
||||
private UUID descriptionCreatedType;
|
||||
private UUID descriptionModifiedType;
|
||||
private UUID descriptionFinalisedType;
|
||||
private UUID descriptionAnnotationCreated;
|
||||
private UUID descriptionAnnotationStatusChanged;
|
||||
private UUID descriptionAnnotationCreatedType;
|
||||
private UUID descriptionAnnotationStatusChangedType;
|
||||
private UUID mergeAccountConfirmationType;
|
||||
private UUID removeCredentialConfirmationType;
|
||||
private UUID planDepositType;
|
||||
|
@ -59,6 +61,22 @@ public class NotificationProperties {
|
|||
this.planFinalisedType = planFinalisedType;
|
||||
}
|
||||
|
||||
public UUID getPlanAnnotationCreatedType() {
|
||||
return planAnnotationCreatedType;
|
||||
}
|
||||
|
||||
public void setPlanAnnotationCreatedType(UUID planAnnotationCreatedType) {
|
||||
this.planAnnotationCreatedType = planAnnotationCreatedType;
|
||||
}
|
||||
|
||||
public UUID getPlanAnnotationStatusChangedType() {
|
||||
return planAnnotationStatusChangedType;
|
||||
}
|
||||
|
||||
public void setPlanAnnotationStatusChangedType(UUID planAnnotationStatusChangedType) {
|
||||
this.planAnnotationStatusChangedType = planAnnotationStatusChangedType;
|
||||
}
|
||||
|
||||
public UUID getDescriptionCreatedType() {
|
||||
return descriptionCreatedType;
|
||||
}
|
||||
|
@ -147,20 +165,20 @@ public class NotificationProperties {
|
|||
this.contactSupportEmail = contactSupportEmail;
|
||||
}
|
||||
|
||||
public UUID getDescriptionAnnotationCreated() {
|
||||
return descriptionAnnotationCreated;
|
||||
public UUID getDescriptionAnnotationCreatedType() {
|
||||
return descriptionAnnotationCreatedType;
|
||||
}
|
||||
|
||||
public void setDescriptionAnnotationCreated(UUID descriptionAnnotationCreated) {
|
||||
this.descriptionAnnotationCreated = descriptionAnnotationCreated;
|
||||
public void setDescriptionAnnotationCreatedType(UUID descriptionAnnotationCreatedType) {
|
||||
this.descriptionAnnotationCreatedType = descriptionAnnotationCreatedType;
|
||||
}
|
||||
|
||||
public UUID getDescriptionAnnotationStatusChanged() {
|
||||
return descriptionAnnotationStatusChanged;
|
||||
public UUID getDescriptionAnnotationStatusChangedType() {
|
||||
return descriptionAnnotationStatusChangedType;
|
||||
}
|
||||
|
||||
public void setDescriptionAnnotationStatusChanged(UUID descriptionAnnotationStatusChanged) {
|
||||
this.descriptionAnnotationStatusChanged = descriptionAnnotationStatusChanged;
|
||||
public void setDescriptionAnnotationStatusChangedType(UUID descriptionAnnotationStatusChangedType) {
|
||||
this.descriptionAnnotationStatusChangedType = descriptionAnnotationStatusChangedType;
|
||||
}
|
||||
|
||||
public UUID getTenantSpecificInvitationExternalUserType() {
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.opencdmp.integrationevent.inbox.annotationentitycreated;
|
|||
|
||||
import gr.cite.tools.validation.ValidatorFactory;
|
||||
import gr.cite.tools.validation.specification.Specification;
|
||||
import org.opencdmp.commons.enums.annotation.AnnotationEntityType;
|
||||
import org.opencdmp.commons.enums.annotation.AnnotationProtectionType;
|
||||
import org.opencdmp.commons.validation.BaseValidator;
|
||||
import org.opencdmp.convention.ConventionService;
|
||||
|
@ -25,7 +26,7 @@ public class AnnotationEntityCreatedIntegrationEvent extends TrackedEvent {
|
|||
private UUID entityId;
|
||||
public static final String _entityId = "entityId";
|
||||
|
||||
private String entityType;
|
||||
private AnnotationEntityType entityType;
|
||||
public static final String _entityType = "entityType";
|
||||
|
||||
private String anchor;
|
||||
|
@ -65,11 +66,11 @@ public class AnnotationEntityCreatedIntegrationEvent extends TrackedEvent {
|
|||
this.entityId = entityId;
|
||||
}
|
||||
|
||||
public String getEntityType() {
|
||||
public AnnotationEntityType getEntityType() {
|
||||
return entityType;
|
||||
}
|
||||
|
||||
public void setEntityType(String entityType) {
|
||||
public void setEntityType(AnnotationEntityType entityType) {
|
||||
this.entityType = entityType;
|
||||
}
|
||||
|
||||
|
@ -167,11 +168,14 @@ public class AnnotationEntityCreatedIntegrationEvent extends TrackedEvent {
|
|||
.must(() -> this.isValidGuid(item.getEntityId()))
|
||||
.failOn(AnnotationEntityCreatedIntegrationEvent._entityId).failWith(messageSource.getMessage("validation.invalidid", new Object[]{AnnotationEntityCreatedIntegrationEvent._entityId}, LocaleContextHolder.getLocale())),
|
||||
this.spec()
|
||||
.must(() -> !this.isEmpty(item.getEntityType()))
|
||||
.must(() -> !this.isNull(item.getEntityType()))
|
||||
.failOn(AnnotationEntityCreatedIntegrationEvent._entityType).failWith(messageSource.getMessage("Validation_Required", new Object[]{AnnotationEntityCreatedIntegrationEvent._entityType}, LocaleContextHolder.getLocale())),
|
||||
this.spec()
|
||||
.must(() -> !this.isEmpty(item.getPayload()))
|
||||
.failOn(AnnotationEntityCreatedIntegrationEvent._payload).failWith(messageSource.getMessage("Validation_Required", new Object[]{AnnotationEntityCreatedIntegrationEvent._payload}, LocaleContextHolder.getLocale())),
|
||||
this.spec()
|
||||
.must(() -> !this.isEmpty(item.getAnchor()))
|
||||
.failOn(AnnotationEntityCreatedIntegrationEvent._anchor).failWith(messageSource.getMessage("Validation_Required", new Object[]{AnnotationEntityCreatedIntegrationEvent._anchor}, LocaleContextHolder.getLocale())),
|
||||
this.spec()
|
||||
.iff(() -> !this.isNull(item.getThreadId()))
|
||||
.must(() -> this.isValidGuid(item.getThreadId()))
|
||||
|
|
|
@ -13,6 +13,7 @@ import gr.cite.tools.validation.ValidatorFactory;
|
|||
import org.opencdmp.audit.AuditableAction;
|
||||
import org.opencdmp.commons.JsonHandlingService;
|
||||
import org.opencdmp.commons.enums.IsActive;
|
||||
import org.opencdmp.commons.enums.annotation.AnnotationEntityType;
|
||||
import org.opencdmp.commons.notification.NotificationProperties;
|
||||
import org.opencdmp.commons.scope.tenant.TenantScope;
|
||||
import org.opencdmp.commons.scope.user.UserScope;
|
||||
|
@ -28,10 +29,8 @@ import org.opencdmp.integrationevent.outbox.notification.NotifyIntegrationEvent;
|
|||
import org.opencdmp.integrationevent.outbox.notification.NotifyIntegrationEventHandler;
|
||||
import org.opencdmp.model.Tenant;
|
||||
import org.opencdmp.model.description.Description;
|
||||
import org.opencdmp.query.DescriptionQuery;
|
||||
import org.opencdmp.query.PlanUserQuery;
|
||||
import org.opencdmp.query.TenantQuery;
|
||||
import org.opencdmp.query.UserQuery;
|
||||
import org.opencdmp.model.plan.Plan;
|
||||
import org.opencdmp.query.*;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.MessageSource;
|
||||
|
@ -125,14 +124,26 @@ public class AnnotationEntityCreatedIntegrationEventHandlerImpl implements Annot
|
|||
|
||||
private void sendNotification(AnnotationEntityCreatedIntegrationEvent event) throws InvalidApplicationException {
|
||||
|
||||
DescriptionEntity descriptionEntity = this.queryFactory.query(DescriptionQuery.class).disableTracking().ids(event.getEntityId()).first();
|
||||
List<PlanUserEntity> existingUsers = new ArrayList<>();
|
||||
DescriptionEntity descriptionEntity = null;
|
||||
PlanEntity planEntity = null;
|
||||
if (event.getEntityType().equals(AnnotationEntityType.Description)){
|
||||
descriptionEntity = this.queryFactory.query(DescriptionQuery.class).disableTracking().ids(event.getEntityId()).first();
|
||||
|
||||
if (descriptionEntity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{event.getEntityId(), Description.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
if (descriptionEntity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{event.getEntityId(), Description.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
existingUsers = this.queryFactory.query(PlanUserQuery.class).disableTracking()
|
||||
.planIds(descriptionEntity.getPlanId())
|
||||
.isActives(IsActive.Active)
|
||||
.collect();
|
||||
} else {
|
||||
planEntity = this.queryFactory.query(PlanQuery.class).disableTracking().ids(event.getEntityId()).first();
|
||||
|
||||
List<PlanUserEntity> existingUsers = this.queryFactory.query(PlanUserQuery.class).disableTracking()
|
||||
.planIds(descriptionEntity.getPlanId())
|
||||
.isActives(IsActive.Active)
|
||||
.collect();
|
||||
if (planEntity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{event.getEntityId(), Plan.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
existingUsers = this.queryFactory.query(PlanUserQuery.class).disableTracking()
|
||||
.planIds(planEntity.getId())
|
||||
.isActives(IsActive.Active)
|
||||
.collect();
|
||||
}
|
||||
|
||||
if (existingUsers == null || existingUsers.size() <= 1){
|
||||
return;
|
||||
|
@ -150,24 +161,32 @@ public class AnnotationEntityCreatedIntegrationEventHandlerImpl implements Annot
|
|||
UserEntity user = this.queryFactory.query(UserQuery.class).disableTracking().ids(planUserId).first();
|
||||
if (user == null || user.getIsActive().equals(IsActive.Inactive))
|
||||
throw new MyValidationException(this.errors.getPlanInactiveUser().getCode(), this.errors.getPlanInactiveUser().getMessage());
|
||||
this.createAnnotationNotificationEvent(user, descriptionEntity, sender.getName(), event.getAnchor());
|
||||
this.createAnnotationNotificationEvent(user, descriptionEntity, planEntity, sender.getName(), event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void createAnnotationNotificationEvent(UserEntity user, DescriptionEntity description, String reasonName, String anchor) throws InvalidApplicationException, InvalidApplicationException {
|
||||
private void createAnnotationNotificationEvent(UserEntity user, DescriptionEntity description, PlanEntity plan, String reasonName, AnnotationEntityCreatedIntegrationEvent event) throws InvalidApplicationException, InvalidApplicationException {
|
||||
NotifyIntegrationEvent notifyIntegrationEvent = new NotifyIntegrationEvent();
|
||||
notifyIntegrationEvent.setUserId(user.getId());
|
||||
|
||||
notifyIntegrationEvent.setNotificationType(this.notificationProperties.getDescriptionAnnotationCreated());
|
||||
if (plan != null && description == null) notifyIntegrationEvent.setNotificationType(this.notificationProperties.getPlanAnnotationCreatedType());
|
||||
else notifyIntegrationEvent.setNotificationType(this.notificationProperties.getDescriptionAnnotationCreatedType());
|
||||
|
||||
NotificationFieldData data = new NotificationFieldData();
|
||||
List<FieldInfo> fieldInfoList = new ArrayList<>();
|
||||
fieldInfoList.add(new FieldInfo("{recipient}", DataType.String, user.getName()));
|
||||
fieldInfoList.add(new FieldInfo("{reasonName}", DataType.String, reasonName));
|
||||
fieldInfoList.add(new FieldInfo("{name}", DataType.String, description.getLabel()));
|
||||
fieldInfoList.add(new FieldInfo("{id}", DataType.String, description.getId().toString()));
|
||||
String anchorUrl = "f/"+anchor+"/annotation";
|
||||
|
||||
if (plan != null && description == null) {
|
||||
fieldInfoList.add(new FieldInfo("{name}", DataType.String, plan.getLabel()));
|
||||
fieldInfoList.add(new FieldInfo("{id}", DataType.String, plan.getId().toString()));
|
||||
} else {
|
||||
fieldInfoList.add(new FieldInfo("{name}", DataType.String, description.getLabel()));
|
||||
fieldInfoList.add(new FieldInfo("{id}", DataType.String, description.getId().toString()));
|
||||
}
|
||||
|
||||
String anchorUrl = "f/"+event.getAnchor()+"/annotation";
|
||||
fieldInfoList.add(new FieldInfo("{anchor}", DataType.String, anchorUrl));
|
||||
if(this.tenantScope.getTenantCode() != null && !this.tenantScope.getTenantCode().equals(this.tenantScope.getDefaultTenantCode())){
|
||||
fieldInfoList.add(new FieldInfo("{tenant-url-path}", DataType.String, String.format("/t/%s", this.tenantScope.getTenantCode())));
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.opencdmp.integrationevent.inbox.annotationstatusentitychanged;
|
|||
|
||||
import gr.cite.tools.validation.ValidatorFactory;
|
||||
import gr.cite.tools.validation.specification.Specification;
|
||||
import org.opencdmp.commons.enums.annotation.AnnotationEntityType;
|
||||
import org.opencdmp.commons.validation.BaseValidator;
|
||||
import org.opencdmp.convention.ConventionService;
|
||||
import org.opencdmp.errorcode.ErrorThesaurusProperties;
|
||||
|
@ -33,7 +34,7 @@ public class AnnotationStatusEntityChangedIntegrationEvent extends TrackedEvent
|
|||
private UUID entityId;
|
||||
public static final String _entityId = "entityId";
|
||||
|
||||
private String entityType;
|
||||
private AnnotationEntityType entityType;
|
||||
public static final String _entityType = "entityType";
|
||||
|
||||
private String anchor;
|
||||
|
@ -82,11 +83,11 @@ public class AnnotationStatusEntityChangedIntegrationEvent extends TrackedEvent
|
|||
this.entityId = entityId;
|
||||
}
|
||||
|
||||
public String getEntityType() {
|
||||
public AnnotationEntityType getEntityType() {
|
||||
return entityType;
|
||||
}
|
||||
|
||||
public void setEntityType(String entityType) {
|
||||
public void setEntityType(AnnotationEntityType entityType) {
|
||||
this.entityType = entityType;
|
||||
}
|
||||
|
||||
|
@ -146,7 +147,7 @@ public class AnnotationStatusEntityChangedIntegrationEvent extends TrackedEvent
|
|||
.must(() -> this.isValidGuid(item.getEntityId()))
|
||||
.failOn(AnnotationStatusEntityChangedIntegrationEvent._entityId).failWith(messageSource.getMessage("Validation_Required", new Object[]{AnnotationStatusEntityChangedIntegrationEvent._entityId}, LocaleContextHolder.getLocale())),
|
||||
this.spec()
|
||||
.must(() -> !this.isEmpty(item.getEntityType()))
|
||||
.must(() -> !this.isNull(item.getEntityType()))
|
||||
.failOn(AnnotationStatusEntityChangedIntegrationEvent._entityType).failWith(messageSource.getMessage("Validation_Required", new Object[]{AnnotationStatusEntityChangedIntegrationEvent._entityType}, LocaleContextHolder.getLocale())),
|
||||
this.spec()
|
||||
.must(() -> !this.isEmpty(item.getAnchor()))
|
||||
|
|
|
@ -13,6 +13,7 @@ import gr.cite.tools.validation.ValidatorFactory;
|
|||
import org.opencdmp.audit.AuditableAction;
|
||||
import org.opencdmp.commons.JsonHandlingService;
|
||||
import org.opencdmp.commons.enums.IsActive;
|
||||
import org.opencdmp.commons.enums.annotation.AnnotationEntityType;
|
||||
import org.opencdmp.commons.notification.NotificationProperties;
|
||||
import org.opencdmp.commons.scope.tenant.TenantScope;
|
||||
import org.opencdmp.commons.scope.user.UserScope;
|
||||
|
@ -28,10 +29,8 @@ import org.opencdmp.integrationevent.outbox.notification.NotifyIntegrationEvent;
|
|||
import org.opencdmp.integrationevent.outbox.notification.NotifyIntegrationEventHandler;
|
||||
import org.opencdmp.model.Tenant;
|
||||
import org.opencdmp.model.description.Description;
|
||||
import org.opencdmp.query.DescriptionQuery;
|
||||
import org.opencdmp.query.PlanUserQuery;
|
||||
import org.opencdmp.query.TenantQuery;
|
||||
import org.opencdmp.query.UserQuery;
|
||||
import org.opencdmp.model.plan.Plan;
|
||||
import org.opencdmp.query.*;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.MessageSource;
|
||||
|
@ -125,14 +124,26 @@ public class AnnotationStatusEntityChangedIntegrationEventHandlerImpl implements
|
|||
|
||||
private void sendNotification(AnnotationStatusEntityChangedIntegrationEvent event) throws InvalidApplicationException {
|
||||
|
||||
DescriptionEntity descriptionEntity = this.queryFactory.query(DescriptionQuery.class).disableTracking().ids(event.getEntityId()).first();
|
||||
List<PlanUserEntity> existingUsers = new ArrayList<>();
|
||||
DescriptionEntity descriptionEntity = null;
|
||||
PlanEntity planEntity = null;
|
||||
if (event.getEntityType().equals(AnnotationEntityType.Description)){
|
||||
descriptionEntity = this.queryFactory.query(DescriptionQuery.class).disableTracking().ids(event.getEntityId()).first();
|
||||
|
||||
if (descriptionEntity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{event.getEntityId(), Description.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
if (descriptionEntity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{event.getEntityId(), Description.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
existingUsers = this.queryFactory.query(PlanUserQuery.class).disableTracking()
|
||||
.planIds(descriptionEntity.getPlanId())
|
||||
.isActives(IsActive.Active)
|
||||
.collect();
|
||||
} else {
|
||||
planEntity = this.queryFactory.query(PlanQuery.class).disableTracking().ids(event.getEntityId()).first();
|
||||
|
||||
List<PlanUserEntity> existingUsers = this.queryFactory.query(PlanUserQuery.class).disableTracking()
|
||||
.planIds(descriptionEntity.getPlanId())
|
||||
.isActives(IsActive.Active)
|
||||
.collect();
|
||||
if (planEntity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{event.getEntityId(), Plan.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
existingUsers = this.queryFactory.query(PlanUserQuery.class).disableTracking()
|
||||
.planIds(planEntity.getId())
|
||||
.isActives(IsActive.Active)
|
||||
.collect();
|
||||
}
|
||||
|
||||
if (existingUsers == null || existingUsers.size() <= 1){
|
||||
return;
|
||||
|
@ -150,25 +161,33 @@ public class AnnotationStatusEntityChangedIntegrationEventHandlerImpl implements
|
|||
UserEntity user = this.queryFactory.query(UserQuery.class).disableTracking().ids(planUserId).first();
|
||||
if (user == null || user.getIsActive().equals(IsActive.Inactive))
|
||||
throw new MyValidationException(this.errors.getPlanInactiveUser().getCode(), this.errors.getPlanInactiveUser().getMessage());
|
||||
this.createAnnotationStatusChangedNotificationEvent(user, descriptionEntity, sender.getName(), event.getAnchor(), event.getStatusLabel());
|
||||
this.createAnnotationStatusChangedNotificationEvent(user, descriptionEntity, planEntity, sender.getName(), event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void createAnnotationStatusChangedNotificationEvent(UserEntity user, DescriptionEntity description, String reasonName, String anchor, String statusLabel) throws InvalidApplicationException, InvalidApplicationException {
|
||||
private void createAnnotationStatusChangedNotificationEvent(UserEntity user, DescriptionEntity description, PlanEntity plan, String reasonName, AnnotationStatusEntityChangedIntegrationEvent event) throws InvalidApplicationException, InvalidApplicationException {
|
||||
NotifyIntegrationEvent notifyIntegrationEvent = new NotifyIntegrationEvent();
|
||||
notifyIntegrationEvent.setUserId(user.getId());
|
||||
|
||||
notifyIntegrationEvent.setNotificationType(this.notificationProperties.getDescriptionAnnotationStatusChanged());
|
||||
if (plan != null && description == null) notifyIntegrationEvent.setNotificationType(this.notificationProperties.getPlanAnnotationStatusChangedType());
|
||||
else notifyIntegrationEvent.setNotificationType(this.notificationProperties.getDescriptionAnnotationStatusChangedType());
|
||||
|
||||
NotificationFieldData data = new NotificationFieldData();
|
||||
List<FieldInfo> fieldInfoList = new ArrayList<>();
|
||||
fieldInfoList.add(new FieldInfo("{recipient}", DataType.String, user.getName()));
|
||||
fieldInfoList.add(new FieldInfo("{reasonName}", DataType.String, reasonName));
|
||||
fieldInfoList.add(new FieldInfo("{name}", DataType.String, description.getLabel()));
|
||||
fieldInfoList.add(new FieldInfo("{id}", DataType.String, description.getId().toString()));
|
||||
fieldInfoList.add(new FieldInfo("{status}", DataType.String, statusLabel));
|
||||
String anchorUrl = "f/"+anchor+"/annotation";
|
||||
|
||||
if (plan != null && description == null) {
|
||||
fieldInfoList.add(new FieldInfo("{name}", DataType.String, plan.getLabel()));
|
||||
fieldInfoList.add(new FieldInfo("{id}", DataType.String, plan.getId().toString()));
|
||||
} else {
|
||||
fieldInfoList.add(new FieldInfo("{name}", DataType.String, description.getLabel()));
|
||||
fieldInfoList.add(new FieldInfo("{id}", DataType.String, description.getId().toString()));
|
||||
}
|
||||
|
||||
fieldInfoList.add(new FieldInfo("{status}", DataType.String, event.getStatusLabel()));
|
||||
String anchorUrl = "f/"+event.getAnchor()+"/annotation";
|
||||
fieldInfoList.add(new FieldInfo("{anchor}", DataType.String, anchorUrl));
|
||||
if(this.tenantScope.getTenantCode() != null && !this.tenantScope.getTenantCode().equals(this.tenantScope.getDefaultTenantCode())){
|
||||
fieldInfoList.add(new FieldInfo("{tenant-url-path}", DataType.String, String.format("/t/%s", this.tenantScope.getTenantCode())));
|
||||
|
|
|
@ -3,11 +3,13 @@ notification:
|
|||
planInvitationExistingUserType: 4904dea2-5079-46d3-83be-3a19c9ab45dc
|
||||
planModifiedType: 4542262A-22F8-4BAA-9DB6-1C8E70AC1DBB
|
||||
planFinalisedType: 90DB0B46-42DE-BD89-AEBF-6F27EFEB256E
|
||||
planAnnotationCreatedType: 1cca80f5-2ea9-41ae-a204-9b4332216c24
|
||||
planAnnotationStatusChangedType: 0c8a5c62-e48f-4eca-99ee-a7f262477061
|
||||
descriptionCreatedType: 8965b1d5-99a6-4acf-9016-c0d0ce341364
|
||||
descriptionModifiedType: 4FDBFA80-7A71-4A69-B854-67CBB70648F1
|
||||
descriptionFinalisedType: 33790bad-94d4-488a-8ee2-7f6295ca18ea
|
||||
descriptionAnnotationCreated: db1e99d2-a240-4e75-9bb2-ef25b234c1f0
|
||||
descriptionAnnotationStatusChanged: 3189e3a6-91e6-40c6-8ff8-275a68445aec
|
||||
descriptionAnnotationCreatedType: db1e99d2-a240-4e75-9bb2-ef25b234c1f0
|
||||
descriptionAnnotationStatusChangedType: 3189e3a6-91e6-40c6-8ff8-275a68445aec
|
||||
mergeAccountConfirmationType: BFE68845-CB05-4C5A-A03D-29161A7C9660
|
||||
removeCredentialConfirmationType: C9BC3F16-057E-4BBA-8A5F-36BD835E5604
|
||||
planDepositType: 55736F7A-83AB-4190-AF43-9D031A6F9612
|
||||
|
|
|
@ -7,7 +7,7 @@ description: Manage all annotation statuses
|
|||
|
||||
In this page, there is a listing where you can view details about all the available annotation statuses. You can view details about the annotation service [here](/docs/documentation/supplementary-services/annotations).
|
||||
|
||||
The information displayed by default is: the `label`, the `internal status` which is the system specific status, the `status` of the entity and timestamps for the `creation` and `updating` of the entites. At the top right corner of the listing you can also select which columns to display.
|
||||
The information displayed by default is: the `label`, the `internal status` which is the system specific status, the `status` of the entity and timestamps for the `creation` and `updating` of the entities. At the top right corner of the listing you can also select which columns to display.
|
||||
|
||||
:::tip
|
||||
|
||||
|
@ -33,7 +33,7 @@ You can control how many records are being displayed at any time, by adjusting t
|
|||
|
||||
## Filtering
|
||||
|
||||
There are some filtering options available for users.
|
||||
There are some filtering options available for annotation statuses.
|
||||
|
||||
- **Is Active**: By toggling this control you can view only the active or only the disabled annotation statuses.<br/>*By default, this option is set to true.*
|
||||
- **Internal Status**: You can filter statuses by the internal status they could relate with. You can select one or more statuses.<br/>*By default, no status is selected.*
|
||||
|
|
|
@ -5,7 +5,7 @@ description: Manage all entity locks
|
|||
|
||||
# Entity Locks
|
||||
|
||||
In this page, there is a listing where you can view details about all the actively locked entites.
|
||||
In this page, there is a listing where you can view details about all the actively locked entities.
|
||||
|
||||
:::info
|
||||
|
||||
|
@ -39,7 +39,7 @@ You can control how many records are being displayed at any time, by adjusting t
|
|||
|
||||
## Filtering
|
||||
|
||||
There are some filtering options available for users.
|
||||
There are some filtering options available for entity locks.
|
||||
|
||||
- **Users**: You can filter locks by their user. You can select one or more users.<br/>*By default, no user is selected.*
|
||||
- **Types**: You can filter locks by the entity type they act uppon. You can select one or more types.<br/>*By default, no type is selected.*
|
||||
|
|
|
@ -43,7 +43,7 @@ You can control how many records are being displayed at any time, by adjusting t
|
|||
|
||||
## Filtering
|
||||
|
||||
There are some filtering options available for users.
|
||||
There are some filtering options available for tenant users.
|
||||
|
||||
- **Is Active**: By toggling this control you can view only the active or only the disabled users.<br/>*By default, this option is set to true.*
|
||||
- **Roles**: You can filter users by their assigned roles. You can select one or more roles.<br/>*By default, no role is selected.*
|
||||
|
|
|
@ -65,6 +65,6 @@ There are two ways a user can change the tenant scope.
|
|||
|
||||
:::tip
|
||||
|
||||
The options to change the tenant scope are only available when the logged in user belongs to one or more tenants. Otherwise, the user is attached only to the default tenant. Also, system administrators can select from all the available tenants.
|
||||
The options to change the tenant scope are only available when the logged in user belongs to one or more tenants. Otherwise, the user is attached only to the default tenant. Also, system administrators which are users having the global `Admin` role can select from all the available tenants.
|
||||
|
||||
:::
|
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
sidebar_position: 15
|
||||
description: Manage all usage limits
|
||||
---
|
||||
|
||||
# Usage Limits
|
||||
|
||||
In this page, there is a listing where you can view details about all the usage limits set on different resourses. These limits are [tenant](/docs/documentation/administration/tenants) spesific, meaning that you view only the limits that are set on a tenant you have selected from the ones you manage.
|
||||
|
||||
The information displayed by default is: the `label`, the `target metric` which is the resource metric this limit is enforced on, the `limit` value, the `status` of the entity and timestamps for the `creation` and `updating` of the entities. At the top right corner of the listing you can also select which columns to display.
|
||||
|
||||
:::tip
|
||||
|
||||
For usage limits, all the columns are visible by default.
|
||||
|
||||
:::
|
||||
|
||||
You can edit or remove a limit by clicking on the three dots on the far right corner of the records and then select `Edit` or `Delete` respectively.
|
||||
|
||||
## Authorization
|
||||
|
||||
Only users that have the global **Admin** role can access this page.
|
||||
|
||||
## Navigation
|
||||
|
||||
This view is available when the user presses the `Usage Limits` link from the side navigation menu.
|
||||
|
||||
## Pagination
|
||||
|
||||
Not all the records are being displayed at once. By default, there is a pagination of 10 records applied to them.
|
||||
|
||||
You can control how many records are being displayed at any time, by adjusting the `items per page` control at the bottom left corner of the table.
|
||||
|
||||
## Filtering
|
||||
|
||||
There are some filtering options available for usage limits.
|
||||
|
||||
- **Is Active**: By toggling this control you can view only the active or only the disabled usage limits.<br/>*By default, this option is set to true.*
|
||||
- **Type**: You can filter limits by the metric they are enforced uppon. You can select one or more metrics.<br/>*By default, no metric is selected.*
|
||||
|
||||
In order for the filters to apply, you have to click the `Apply filters` button.
|
||||
|
||||
You can also clear any filters already applied, by pressing the `clear all filters` option, located at the top of the popup.
|
||||
|
||||
---
|
||||
|
||||
## Edit form
|
||||
|
||||
You can add a limit to your selected tenant by clicking on the `Create Usage Limit` button at the top right corner of the screen, above the listing.
|
||||
|
||||
In the form, you can specify the following:
|
||||
|
||||
- **Label**: The label of the limit.
|
||||
- **Target Metric**: The metric this limit will be enforced uppon.
|
||||
- **Value**: The value of the limit. When set, the target metric will not be able to exceed this value.
|
||||
|
||||
When done, you can either save your changes by pressing the `Save` button, or discard them by pressing the `Cancel` button which redirects you back to the listing page.
|
|
@ -32,8 +32,8 @@
|
|||
"cookieconsent": "^3.1.1",
|
||||
"dragula": "^3.7.3",
|
||||
"file-saver": "^2.0.5",
|
||||
"keycloak-angular": "^15.2.1",
|
||||
"keycloak-js": "^24.0.5",
|
||||
"keycloak-angular": "^16.0.1",
|
||||
"keycloak-js": "^25.0.0",
|
||||
"moment": "^2.30.1",
|
||||
"moment-timezone": "^0.5.45",
|
||||
"ng-dialog-animation": "^9.0.4",
|
||||
|
|
|
@ -80,7 +80,7 @@ const cookieConfig: NgcCookieConsentConfig = {
|
|||
type: 'info'
|
||||
};
|
||||
|
||||
export function InstallationConfigurationFactory(appConfig: ConfigurationService, keycloak: KeycloakService, authService: AuthService, languageService: LanguageService, tenantHandlingService: TenantHandlingService, router: Router) {
|
||||
export function InstallationConfigurationFactory(appConfig: ConfigurationService, keycloak: KeycloakService, authService: AuthService, languageService: LanguageService, tenantHandlingService: TenantHandlingService) {
|
||||
return () => appConfig.loadConfiguration().then(() => {
|
||||
return languageService.loadAvailableLanguages().toPromise();
|
||||
}).then(x => keycloak.init({
|
||||
|
@ -109,15 +109,11 @@ export function InstallationConfigurationFactory(appConfig: ConfigurationService
|
|||
};
|
||||
|
||||
const tenantCode = tenantHandlingService.extractTenantCodeFromUrlPath(window.location.pathname) ?? authService.selectedTenant() ?? 'default';
|
||||
const tokenPromise = keycloak.getToken();
|
||||
return authService.prepareAuthRequest(from(tokenPromise), tenantCode, { params })
|
||||
.toPromise()
|
||||
.then(() => {
|
||||
if (authService.selectedTenant() != tenantCode) {
|
||||
router.navigate(['/']);
|
||||
}
|
||||
})
|
||||
.catch(error => authService.onAuthenticateError(error));
|
||||
const token = keycloak.getToken();
|
||||
return authService.prepareAuthRequest(from(token), tenantCode, { params }).toPromise().catch(error => {
|
||||
authService.onAuthenticateError(error);
|
||||
window.location.pathname = "/";
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
@ -171,13 +171,18 @@ export class AuthService extends BaseService {
|
|||
return observable.pipe(
|
||||
map((x) => this.currentAuthenticationToken(x)),
|
||||
concatMap(response => {
|
||||
return this.ensureTenant(tenantCode ?? this.selectedTenant() ?? 'default');
|
||||
return response ? this.ensureTenant(tenantCode ?? this.selectedTenant() ?? 'default') : null;
|
||||
}),
|
||||
concatMap(response => {
|
||||
return this.principalService.me(httpParams);
|
||||
return response ? this.principalService.me(httpParams) : null;
|
||||
}),
|
||||
concatMap(response => {
|
||||
if (response) {
|
||||
this.currentAccount(response)
|
||||
}
|
||||
return of(response);
|
||||
}),
|
||||
concatMap(response => {
|
||||
this.currentAccount(response);
|
||||
return this.tenantHandlingService.loadTenantCssColors();
|
||||
}),
|
||||
concatMap(response => {
|
||||
|
@ -207,16 +212,10 @@ export class AuthService extends BaseService {
|
|||
|
||||
if (myTenants.some(x => x.code.toLocaleLowerCase() == tenantCode.toLocaleLowerCase())) {
|
||||
this.selectedTenant(tenantCode);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
this.selectedTenant(null);
|
||||
}
|
||||
if (!this.selectedTenant()) {
|
||||
if (myTenants.length > 0) {
|
||||
this.selectedTenant(myTenants[0]?.code);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.selectedTenant(null);
|
||||
}
|
||||
return this.selectedTenant();
|
||||
}
|
||||
|
|
|
@ -37,15 +37,9 @@ export class LoginComponent extends BaseComponent implements OnInit {
|
|||
this.authService.authenticate(this.returnUrl);
|
||||
} else {
|
||||
const tenantCode = this.tenantHandlingService.extractTenantCodeFromUrlPath(this.returnUrl) ?? this.authService.selectedTenant() ?? 'default';
|
||||
this.authService.prepareAuthRequest(from(this.keycloakService.getToken()), tenantCode).pipe(takeUntil(this._destroyed)).subscribe(
|
||||
() => {
|
||||
let returnUrL = this.returnUrl;
|
||||
|
||||
if (this.authService.selectedTenant() != tenantCode) returnUrL = this.routerUtils.generateUrl('/');
|
||||
|
||||
this.zone.run(() => this.router.navigateByUrl(this.routerUtils.generateUrl(returnUrL)));
|
||||
},
|
||||
(error) => this.authService.authenticate('/'));
|
||||
let returnUrL = this.returnUrl;
|
||||
if (this.authService.selectedTenant() != tenantCode) returnUrL = this.routerUtils.generateUrl('/');
|
||||
this.zone.run(() => this.router.navigateByUrl(this.routerUtils.generateUrl(returnUrL)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,8 +104,8 @@
|
|||
<div class="row" *ngIf="descriptionInfoValid()">
|
||||
<div (click)="table0fContents.onToCentrySelected()" class="col-12 main-info" [ngClass]="{'active': reachedBase}">{{'DESCRIPTION-EDITOR.TOC.MAIN-INFO' | translate}} (<mat-icon class="done-icon">done</mat-icon>)</div>
|
||||
</div>
|
||||
<div class="row toc-pane-container" #boundary>
|
||||
<div #spacer></div>
|
||||
<div class="row toc-pane-container">
|
||||
<div></div>
|
||||
<div class="col-12">
|
||||
<app-table-of-contents
|
||||
*ngIf="formGroup"
|
||||
|
@ -115,9 +115,6 @@
|
|||
[hasFocus]="reachedBase == false"
|
||||
[formGroup]="formGroup.get('properties')"
|
||||
[descriptionTemplate]="item.descriptionTemplate"
|
||||
[links]="links"
|
||||
[boundary]="boundary" [spacer]="spacer"
|
||||
[pageToFieldSetMap]="pageToFieldSetMap"
|
||||
[anchorFieldsetId]="anchorFieldsetId"
|
||||
(entrySelected)="changeStep($event.entry, $event.execute)"
|
||||
#table0fContents
|
||||
|
|
|
@ -4,12 +4,12 @@ import { MatDialog } from '@angular/material/dialog';
|
|||
import { Title } from '@angular/platform-browser';
|
||||
import { ActivatedRoute, Params, Router } from '@angular/router';
|
||||
import { DescriptionStatus } from '@app/core/common/enum/description-status';
|
||||
import { PlanStatus } from '@app/core/common/enum/plan-status';
|
||||
import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type';
|
||||
import { IsActive } from '@app/core/common/enum/is-active.enum';
|
||||
import { LockTargetType } from '@app/core/common/enum/lock-target-type';
|
||||
import { AppPermission } from '@app/core/common/enum/permission.enum';
|
||||
import { DescriptionTemplate, DescriptionTemplateField, DescriptionTemplateFieldSet, DescriptionTemplatePage, DescriptionTemplateSection } from '@app/core/model/description-template/description-template';
|
||||
import { PlanStatus } from '@app/core/common/enum/plan-status';
|
||||
import { DescriptionTemplateField, DescriptionTemplateFieldSet, DescriptionTemplatePage, DescriptionTemplateSection } from '@app/core/model/description-template/description-template';
|
||||
import { Description, DescriptionPersist, DescriptionStatusPersist } from '@app/core/model/description/description';
|
||||
import { PlanBlueprintDefinitionSection } from '@app/core/model/plan-blueprint/plan-blueprint';
|
||||
import { PlanDescriptionTemplate } from '@app/core/model/plan/plan';
|
||||
|
@ -22,6 +22,7 @@ import { LockService } from '@app/core/services/lock/lock.service';
|
|||
import { LoggingService } from '@app/core/services/logging/logging-service';
|
||||
import { AnalyticsService } from '@app/core/services/matomo/analytics-service';
|
||||
import { SnackBarNotificationLevel, UiNotificationService } from '@app/core/services/notification/ui-notification-service';
|
||||
import { RouterUtilsService } from '@app/core/services/router/router-utils.service';
|
||||
import { EnumUtils } from '@app/core/services/utilities/enum-utils.service';
|
||||
import { QueryParamsService } from '@app/core/services/utilities/query-params.service';
|
||||
import { VisibilityRulesService } from '@app/ui/description/editor/description-form/visibility-rules/visibility-rules.service';
|
||||
|
@ -35,16 +36,15 @@ import { Guid } from '@common/types/guid';
|
|||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { map, takeUntil } from 'rxjs/operators';
|
||||
import { nameof } from 'ts-simple-nameof';
|
||||
import { FormAnnotationService } from '../../annotations/annotation-dialog-component/form-annotation.service';
|
||||
import { DescriptionEditorModel, DescriptionFieldIndicator, DescriptionPropertyDefinitionEditorModel } from './description-editor.model';
|
||||
import { DescriptionEditorEntityResolver } from './resolvers/description-editor-entity.resolver';
|
||||
import { DescriptionEditorService } from './description-editor.service';
|
||||
import { PrefillDescriptionDialogComponent } from './prefill-description/prefill-description.component';
|
||||
import { DescriptionFormService } from './description-form/components/services/description-form.service';
|
||||
import { NewDescriptionDialogComponent, NewDescriptionDialogComponentResult } from './new-description/new-description.component';
|
||||
import { DescriptionEditorEntityResolver } from './resolvers/description-editor-entity.resolver';
|
||||
import { ToCEntry } from './table-of-contents/models/toc-entry';
|
||||
import { TableOfContentsService } from './table-of-contents/services/table-of-contents-service';
|
||||
import { TableOfContentsComponent } from './table-of-contents/table-of-contents.component';
|
||||
import { RouterUtilsService } from '@app/core/services/router/router-utils.service';
|
||||
import { DescriptionFormService } from './description-form/components/services/description-form.service';
|
||||
import { FormAnnotationService } from '../../annotations/annotation-dialog-component/form-annotation.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-description-editor-component',
|
||||
|
@ -61,6 +61,7 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
canAnnotate = false;
|
||||
item: Description;
|
||||
fileTransformerEntityTypeEnum = FileTransformerEntityType;
|
||||
showDescriptionTemplateLoader = false;
|
||||
|
||||
viewOnly = false;
|
||||
lockStatus: Boolean;
|
||||
|
@ -72,13 +73,11 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
reachedBase: boolean = true;
|
||||
reachedLast: boolean = false;
|
||||
reachedFirst: boolean = false;
|
||||
|
||||
|
||||
anchorFieldsetId: string;
|
||||
scrollToField: boolean = false;
|
||||
openAnnotation: boolean = false;
|
||||
|
||||
pageToFieldSetMap: Map<string, DescriptionFieldIndicator[]> = new Map<string, DescriptionFieldIndicator[]>();
|
||||
|
||||
private initialTemplateId: string = Guid.EMPTY;
|
||||
private permissionPerSection: Map<Guid, string[]>;
|
||||
|
||||
|
@ -141,7 +140,7 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
|
||||
const isPublicDescription = params['public'];
|
||||
const newPlanId = params['newPlanId'];
|
||||
|
||||
|
||||
this.scrollToField = this.route.snapshot.data['scrollToField'] ?? false
|
||||
this.anchorFieldsetId = params['fieldsetId'] ?? null;
|
||||
this.openAnnotation = this.route.snapshot.data['openAnnotation'] ?? false;
|
||||
|
@ -153,11 +152,11 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
//Regular Editor case
|
||||
if (itemId != null && newPlanId == null) {
|
||||
this.checkLock(this.item.id, LockTargetType.Description, 'DESCRIPTION-EDITOR.LOCKED-DIALOG.TITLE', 'DESCRIPTION-EDITOR.LOCKED-DIALOG.MESSAGE');
|
||||
|
||||
}
|
||||
else if (planId != null && planSectionId != null) {
|
||||
this.isNew = true;
|
||||
const dialogRef = this.dialog.open(PrefillDescriptionDialogComponent, {
|
||||
this.reachedBase = false;
|
||||
const dialogRef = this.dialog.open(NewDescriptionDialogComponent, {
|
||||
width: '590px',
|
||||
minHeight: '200px',
|
||||
restoreFocus: false,
|
||||
|
@ -167,19 +166,25 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
},
|
||||
panelClass: 'custom-modalbox'
|
||||
});
|
||||
dialogRef.afterClosed().subscribe((result: Description) => {
|
||||
dialogRef.afterClosed().subscribe((result: NewDescriptionDialogComponentResult) => {
|
||||
if (result) {
|
||||
this.titleService.setTitle(result.label);
|
||||
if (result.description != null) {
|
||||
this.titleService.setTitle(result.description.label);
|
||||
|
||||
result.plan = this.item.plan;
|
||||
result.planDescriptionTemplate = this.item.planDescriptionTemplate;
|
||||
result.description.plan = this.item.plan;
|
||||
result.description.planDescriptionTemplate = this.item.planDescriptionTemplate;
|
||||
|
||||
const sectionId = this.item.planDescriptionTemplate.sectionId;
|
||||
result.planDescriptionTemplate = this.item.plan.planDescriptionTemplates.find(x => x.sectionId == sectionId && x.descriptionTemplateGroupId == result.descriptionTemplate.groupId);
|
||||
const sectionId = this.item.planDescriptionTemplate.sectionId;
|
||||
result.description.planDescriptionTemplate = this.item.plan.planDescriptionTemplates.find(x => x.sectionId == sectionId && x.descriptionTemplateGroupId == result.description.descriptionTemplate.groupId);
|
||||
|
||||
this.prepareForm(result);
|
||||
this.changeDetectorRef.markForCheck(); // when prefilling a description the "prepareForm" has already being executed from the base-editor and we need to trigger the angular's change-detector manually
|
||||
this.descriptionFormService.detectChanges(true);
|
||||
this.prepareForm(result.description);
|
||||
this.changeDetectorRef.markForCheck(); // when prefilling a description the "prepareForm" has already being executed from the base-editor and we need to trigger the angular's change-detector manually
|
||||
this.descriptionFormService.detectChanges(true);
|
||||
} else if (result.descriptionTemplateId != null) {
|
||||
this.formGroup.get('descriptionTemplateId').setValue(result.descriptionTemplateId);
|
||||
}
|
||||
} else {
|
||||
this.reachedBase = true;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -237,7 +242,6 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
this.canAnnotate = this.permissionPerSection && this.permissionPerSection[this.item.planDescriptionTemplate.sectionId.toString()] && this.permissionPerSection[this.item.planDescriptionTemplate.sectionId.toString()].some(x => x === AppPermission.AnnotateDescription);
|
||||
this.formGroup = this.editorModel.buildForm(null, this.isDeleted || !this.canEdit, this.visibilityRulesService);
|
||||
if (this.item.descriptionTemplate?.definition) this.visibilityRulesService.setContext(this.item.descriptionTemplate.definition, this.formGroup.get('properties'));
|
||||
if (this.item.descriptionTemplate?.definition) this.pageToFieldSetMap = this.mapPageToFieldSet(this.item.descriptionTemplate);;
|
||||
|
||||
// this.selectedSystemFields = this.selectedSystemFieldDisabled();
|
||||
this.descriptionEditorService.setValidationErrorModel(this.editorModel.validationErrorModel);
|
||||
|
@ -644,8 +648,10 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
this.item.planDescriptionTemplate = this.item.plan.planDescriptionTemplates.find(x => x.sectionId == sectionId && x.descriptionTemplateGroupId == descriptionTemplate.groupId);
|
||||
this.formGroup.get('planDescriptionTemplateId').setValue(this.item.planDescriptionTemplate.id);
|
||||
if (descriptionTemplate.definition) this.visibilityRulesService.setContext(this.item.descriptionTemplate.definition, this.formGroup.get('properties'));
|
||||
if (descriptionTemplate.definition) this.pageToFieldSetMap = this.mapPageToFieldSet(this.item.descriptionTemplate);
|
||||
|
||||
if (this.formGroup.get('label').value == null || this.formGroup.get('label').value.length == 0) {
|
||||
this.formGroup.get('label').setValue(descriptionTemplate.label);
|
||||
}
|
||||
this.registerFormListeners();
|
||||
},
|
||||
error => {
|
||||
|
@ -655,17 +661,6 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
}
|
||||
}
|
||||
|
||||
mapPageToFieldSet(descriptionTemplate: DescriptionTemplate): Map<string, DescriptionFieldIndicator[]> {
|
||||
const pageToFieldSetMap = new Map<string, DescriptionFieldIndicator[]>();
|
||||
|
||||
descriptionTemplate.definition.pages?.forEach((page: DescriptionTemplatePage) => {
|
||||
let fieldsByPage = this.getFieldsetsOfPage(page);
|
||||
pageToFieldSetMap.set(page.id, fieldsByPage);
|
||||
});
|
||||
|
||||
return pageToFieldSetMap;
|
||||
}
|
||||
|
||||
getFieldsetsOfPage(page: DescriptionTemplatePage): DescriptionFieldIndicator[] {
|
||||
const fieldsByPage: DescriptionFieldIndicator[] = []
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import { DescriptionFormProgressIndicationModule } from './form-progress-indicat
|
|||
import { TableOfContentsModule } from './table-of-contents/table-of-contents.module';
|
||||
import { RichTextEditorModule } from '@app/library/rich-text-editor/rich-text-editor.module';
|
||||
import { TagsFieldModule } from '@app/ui/tag/tags-field/tags-field.module';
|
||||
import { PrefillDescriptionDialogComponent } from './prefill-description/prefill-description.component';
|
||||
import { NewDescriptionDialogComponent } from './new-description/new-description.component';
|
||||
import { AutoCompleteModule } from '@app/library/auto-complete/auto-complete.module';
|
||||
import { DeprecatedDescriptionTemplateDialog } from './description-base-fields-editor/dialog-description-template/deprecated-description-template-dialog.component';
|
||||
|
||||
|
@ -33,7 +33,7 @@ import { DeprecatedDescriptionTemplateDialog } from './description-base-fields-e
|
|||
declarations: [
|
||||
DescriptionEditorComponent,
|
||||
DescriptionBaseFieldsEditorComponent,
|
||||
PrefillDescriptionDialogComponent,
|
||||
NewDescriptionDialogComponent,
|
||||
DeprecatedDescriptionTemplateDialog
|
||||
],
|
||||
exports: [
|
||||
|
|
|
@ -1,31 +1,20 @@
|
|||
<div class="template-container">
|
||||
<div mat-dialog-title class="row d-flex p-0 m-0 header">
|
||||
<span class="col template-title align-self-center">{{'PREFILL-DESCRIPTION-DIALOG.TITLE' | translate}}</span>
|
||||
<span class="col-auto d-flex ml-auto align-self-center" (click)="closeDialog()"><mat-icon
|
||||
class="close-icon">close</mat-icon></span>
|
||||
<span class="col template-title align-self-center">{{'NEW-DESCRIPTION-DIALOG.TITLE' | translate}}</span>
|
||||
<span class="col-auto d-flex ml-auto align-self-center" (click)="closeDialog()"><mat-icon class="close-icon">close</mat-icon></span>
|
||||
</div>
|
||||
<div *ngIf="progressIndication" class="progress-bar">
|
||||
<mat-progress-bar color="primary" mode="indeterminate"></mat-progress-bar>
|
||||
</div>
|
||||
<div mat-dialog-content *ngIf="prefillForm" [formGroup]="prefillForm" class="definition-content">
|
||||
<div class="row d-flex align-items-center justify-content-center">
|
||||
<div class="row d-flex align-items-center">
|
||||
<div class="pb-4 pl-4 pr-4">
|
||||
{{'PREFILL-DESCRIPTION-DIALOG.HINT' | translate}}
|
||||
{{'NEW-DESCRIPTION-DIALOG.DESCRIPTION-TEMPLATE-HINT' | translate}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row d-flex align-items-center justify-content-center" [class.pb-4]="prefillSelected">
|
||||
<button mat-raised-button type="button" class="empty-btn"
|
||||
(click)="closeDialog()">{{'PREFILL-DESCRIPTION-DIALOG.ACTIONS.MANUALLY' | translate}}</button>
|
||||
<div class="ml-2 mr-2">{{'PREFILL-DESCRIPTION-DIALOG.OR' | translate}}</div>
|
||||
<button mat-raised-button type="button" class="prefill-btn"
|
||||
(click)="prefillSelected = true">{{'PREFILL-DESCRIPTION-DIALOG.ACTIONS.PREFILL' | translate}}</button>
|
||||
</div>
|
||||
<div *ngIf="prefillSelected" class="row">
|
||||
<div class="col-12 pl-0 pr-0 pb-2 d-flex flex-row">
|
||||
<h4 class="col-auto heading">{{'PREFILL-DESCRIPTION-DIALOG.DESCRIPTION-TEMPLATE' | translate}}</h4>
|
||||
</div>
|
||||
<mat-form-field class="col-md-12">
|
||||
<mat-select placeholder="{{'PREFILL-DESCRIPTION-DIALOG.DESCRIPTION-TEMPLATE'| translate}}" [required]="true" [compareWith]="compareWith" [formControl]="prefillForm.get('descriptionTemplateId')">
|
||||
<div class="row">
|
||||
<mat-form-field class="col-md-12 pb-2 pl-4 pr-4">
|
||||
<mat-select placeholder="{{'NEW-DESCRIPTION-DIALOG.DESCRIPTION-TEMPLATE'| translate}}" [required]="true" [compareWith]="compareWith" [formControl]="prefillForm.get('descriptionTemplateId')">
|
||||
<mat-option *ngFor="let descriptionTemplate of availableDescriptionTemplates" [value]="descriptionTemplate.id">
|
||||
<div>
|
||||
<span>{{descriptionTemplate.label}}, </span>
|
||||
|
@ -35,25 +24,34 @@
|
|||
</mat-select>
|
||||
<mat-error *ngIf="prefillForm.get('descriptionTemplateId').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="row d-flex align-items-center justify-content-center">
|
||||
<div class="pb-4 pl-4 pr-4">
|
||||
{{'NEW-DESCRIPTION-DIALOG.PREFILL-HINT' | translate}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row d-flex align-items-center justify-content-center" [class.pb-4]="prefillSelected">
|
||||
<button mat-raised-button type="button" class="empty-btn" (click)="manuallySelected()">{{'NEW-DESCRIPTION-DIALOG.ACTIONS.MANUALLY' | translate}}</button>
|
||||
<div class="ml-2 mr-2">{{'NEW-DESCRIPTION-DIALOG.OR' | translate}}</div>
|
||||
<button mat-raised-button type="button" class="prefill-btn" (click)="prefillSelected = true">{{'NEW-DESCRIPTION-DIALOG.ACTIONS.PREFILL' | translate}}</button>
|
||||
</div>
|
||||
<div *ngIf="prefillSelected" class="row">
|
||||
<div class="col-12 pl-0 pr-0 pb-2 d-flex flex-row">
|
||||
<h4 class="col-auto heading">{{'PREFILL-DESCRIPTION-DIALOG.PREFILLING-SOURCE' | translate}}</h4>
|
||||
<h4 class="col-auto heading">{{'NEW-DESCRIPTION-DIALOG.PREFILLING-SOURCE' | translate}}</h4>
|
||||
</div>
|
||||
<mat-form-field class="col-md-12">
|
||||
<app-single-auto-complete [required]="true" [formControl]="prefillForm.get('prefillingSourceId')"
|
||||
placeholder="{{'PREFILL-DESCRIPTION-DIALOG.PREFILLING-SOURCE' | translate}}"
|
||||
[configuration]="singlePrefillingSourceAutoCompleteConfiguration" (optionSelected)="changePreffillingSource($event)">
|
||||
<app-single-auto-complete [required]="true" [formControl]="prefillForm.get('prefillingSourceId')" placeholder="{{'NEW-DESCRIPTION-DIALOG.PREFILLING-SOURCE' | translate}}" [configuration]="singlePrefillingSourceAutoCompleteConfiguration" (optionSelected)="changePreffillingSource($event)">
|
||||
</app-single-auto-complete>
|
||||
<mat-error *ngIf="prefillForm.get('prefillingSourceId').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="prefillForm.get('prefillingSourceId').value != null" class="row">
|
||||
<div class="col-12 pl-0 pr-0 pb-2 d-flex flex-row">
|
||||
<h4 class="col-auto heading">{{'PREFILL-DESCRIPTION-DIALOG.SEARCH-HEADER' | translate}}</h4>
|
||||
<h4 class="col-auto heading">{{'NEW-DESCRIPTION-DIALOG.SEARCH-HEADER' | translate}}</h4>
|
||||
</div>
|
||||
<mat-form-field class="col-md-12">
|
||||
<app-single-auto-complete [required]="true" [formControl]="prefillForm.get('data')"
|
||||
placeholder="{{'PREFILL-DESCRIPTION-DIALOG.SEARCH' | translate}}"
|
||||
[configuration]="prefillObjectAutoCompleteConfiguration">
|
||||
<app-single-auto-complete [required]="true" [formControl]="prefillForm.get('data')" placeholder="{{'NEW-DESCRIPTION-DIALOG.SEARCH' | translate}}" [configuration]="prefillObjectAutoCompleteConfiguration">
|
||||
</app-single-auto-complete>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
@ -61,8 +59,7 @@
|
|||
</div>
|
||||
<div *ngIf="prefillSelected">
|
||||
<div class="col-auto d-flex pb-4 pt-2">
|
||||
<button mat-raised-button type="button" class="prefill-btn ml-auto" [disabled]="prefillForm.invalid"
|
||||
(click)="next()">{{'PREFILL-DESCRIPTION-DIALOG.ACTIONS.NEXT' | translate}}</button>
|
||||
<button mat-raised-button type="button" class="prefill-btn ml-auto" [disabled]="prefillForm.invalid" (click)="next()">{{'NEW-DESCRIPTION-DIALOG.ACTIONS.NEXT' | translate}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,8 +1,10 @@
|
|||
import { Component, Inject, OnInit } from "@angular/core";
|
||||
import { UntypedFormGroup } from "@angular/forms";
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
|
||||
import { IsActive } from "@app/core/common/enum/is-active.enum";
|
||||
import { DescriptionPrefillingRequest, PrefillingSearchRequest } from "@app/core/model/description-prefilling-request/description-prefilling-request";
|
||||
import { DescriptionTemplate } from "@app/core/model/description-template/description-template";
|
||||
import { Description } from "@app/core/model/description/description";
|
||||
import { Plan } from "@app/core/model/plan/plan";
|
||||
import { Prefilling } from "@app/core/model/prefilling-source/prefilling-source";
|
||||
import { PrefillingSourceService } from "@app/core/services/prefilling-source/prefilling-source.service";
|
||||
|
@ -10,20 +12,19 @@ import { ProgressIndicationService } from "@app/core/services/progress-indicatio
|
|||
import { SingleAutoCompleteConfiguration } from "@app/library/auto-complete/single/single-auto-complete-configuration";
|
||||
import { BaseComponent } from "@common/base/base.component";
|
||||
import { FormService } from "@common/forms/form-service";
|
||||
import { HttpErrorHandlingService } from "@common/modules/errors/error-handling/http-error-handling.service";
|
||||
import { Guid } from "@common/types/guid";
|
||||
import { Observable } from "rxjs";
|
||||
import { takeUntil } from "rxjs/operators";
|
||||
import { DescriptionEditorEntityResolver } from "../resolvers/description-editor-entity.resolver";
|
||||
import { IsActive } from "@app/core/common/enum/is-active.enum";
|
||||
import { DescriptionPrefillingRequestEditorModel } from "./prefill-description-editor.model";
|
||||
import { HttpErrorHandlingService } from "@common/modules/errors/error-handling/http-error-handling.service";
|
||||
import { DescriptionPrefillingRequestEditorModel } from "./new-description-editor.model";
|
||||
|
||||
@Component({
|
||||
selector: 'prefill-description-component',
|
||||
templateUrl: 'prefill-description.component.html',
|
||||
styleUrls: ['prefill-description.component.scss']
|
||||
selector: 'new-description-component',
|
||||
templateUrl: 'new-description.component.html',
|
||||
styleUrls: ['new-description.component.scss']
|
||||
})
|
||||
export class PrefillDescriptionDialogComponent extends BaseComponent implements OnInit {
|
||||
export class NewDescriptionDialogComponent extends BaseComponent implements OnInit {
|
||||
|
||||
progressIndication = false;
|
||||
singlePrefillingSourceAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
|
||||
|
@ -35,7 +36,7 @@ export class PrefillDescriptionDialogComponent extends BaseComponent implements
|
|||
planSectionId: Guid;
|
||||
availableDescriptionTemplates: DescriptionTemplate[] = [];
|
||||
|
||||
constructor(public dialogRef: MatDialogRef<PrefillDescriptionDialogComponent>,
|
||||
constructor(public dialogRef: MatDialogRef<NewDescriptionDialogComponent>,
|
||||
private progressIndicationService: ProgressIndicationService,
|
||||
public prefillingSourceService: PrefillingSourceService,
|
||||
private formService: FormService,
|
||||
|
@ -69,7 +70,7 @@ export class PrefillDescriptionDialogComponent extends BaseComponent implements
|
|||
};
|
||||
}
|
||||
|
||||
changePreffillingSource(){
|
||||
changePreffillingSource() {
|
||||
this.prefillForm.get('data').setValue(null);
|
||||
}
|
||||
|
||||
|
@ -78,7 +79,7 @@ export class PrefillDescriptionDialogComponent extends BaseComponent implements
|
|||
}
|
||||
|
||||
searchDescriptions(query: string): Observable<Prefilling[]> {
|
||||
const request: PrefillingSearchRequest= {
|
||||
const request: PrefillingSearchRequest = {
|
||||
like: query,
|
||||
prefillingSourceId: this.prefillForm.get('prefillingSourceId').value
|
||||
};
|
||||
|
@ -92,18 +93,28 @@ export class PrefillDescriptionDialogComponent extends BaseComponent implements
|
|||
this.prefillingSourceService.generate(formData, DescriptionEditorEntityResolver.descriptionTemplateLookupFieldsForDescrption())
|
||||
.pipe(takeUntil(this._destroyed)).subscribe(description => {
|
||||
if (description) {
|
||||
this.closeDialog(description);
|
||||
this.closeDialog({ description: description });
|
||||
} else {
|
||||
this.closeDialog();
|
||||
}
|
||||
},
|
||||
error => {
|
||||
this.httpErrorHandlingService.handleBackedRequestError(error);
|
||||
this.dialogRef.close();
|
||||
});
|
||||
error => {
|
||||
this.httpErrorHandlingService.handleBackedRequestError(error);
|
||||
this.dialogRef.close();
|
||||
});
|
||||
}
|
||||
|
||||
manuallySelected() {
|
||||
if (!this.prefillForm.get('descriptionTemplateId').valid) return;
|
||||
this.closeDialog({ descriptionTemplateId: this.prefillForm.get('descriptionTemplateId').value });
|
||||
}
|
||||
|
||||
closeDialog(result = null): void {
|
||||
this.dialogRef.close(result);
|
||||
}
|
||||
}
|
||||
|
||||
export class NewDescriptionDialogComponentResult {
|
||||
description: Description;
|
||||
descriptionTemplateId: Guid;
|
||||
}
|
|
@ -46,6 +46,14 @@ export class DescriptionEditorEntityResolver extends BaseEditorResolver {
|
|||
]
|
||||
}
|
||||
|
||||
public static permissionLookupFields(): string[] {
|
||||
return [
|
||||
nameof<Description>(x => x.id),
|
||||
[nameof<Description>(x => x.plan), nameof<Plan>(x => x.id)].join('.'),
|
||||
[nameof<Description>(x => x.planDescriptionTemplate), nameof<PlanDescriptionTemplate>(x => x.sectionId)].join('.'),
|
||||
]
|
||||
}
|
||||
|
||||
public static descriptionLookupFields(): string[] {
|
||||
return [
|
||||
...BaseEditorResolver.lookupFields(),
|
||||
|
|
|
@ -27,7 +27,7 @@ export class DescriptionEditorPermissionsResolver extends BaseEditorResolver {
|
|||
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
|
||||
|
||||
const fields = [
|
||||
...DescriptionEditorEntityResolver.lookupFields()
|
||||
...DescriptionEditorEntityResolver.permissionLookupFields()
|
||||
];
|
||||
const id = route.paramMap.get('id');
|
||||
const planId = route.paramMap.get('planId');
|
||||
|
@ -36,7 +36,7 @@ export class DescriptionEditorPermissionsResolver extends BaseEditorResolver {
|
|||
// const cloneid = route.paramMap.get('cloneid');
|
||||
if (id != null && copyPlanId == null && planSectionId == null) {
|
||||
return this.descriptionService.getSingle(Guid.parse(id), fields).pipe(tap(d => this.breadcrumbService.addIdResolvedValue(d.id.toString(), d.label)))
|
||||
.pipe(mergeMap( description => {
|
||||
.pipe(mergeMap(description => {
|
||||
const descriptionSectionPermissionResolverModel: DescriptionSectionPermissionResolver = {
|
||||
planId: description.plan.id,
|
||||
sectionIds: [description.planDescriptionTemplate.sectionId],
|
||||
|
@ -46,54 +46,20 @@ export class DescriptionEditorPermissionsResolver extends BaseEditorResolver {
|
|||
}));
|
||||
|
||||
} else if (planId != null && planSectionId != null && copyPlanId == null) {
|
||||
return this.planService.getSingle(Guid.parse(planId), DescriptionEditorEntityResolver.planLookupFields())
|
||||
.pipe(tap(x => {
|
||||
this.breadcrumbService.addExcludedParam(planId, true);
|
||||
this.breadcrumbService.addIdResolvedValue(planSectionId, this.language.instant("DESCRIPTION-EDITOR.TITLE-NEW"));
|
||||
}), takeUntil(this._destroyed), map(plan => {
|
||||
const description: Description = {};
|
||||
description.plan = plan;
|
||||
description.planDescriptionTemplate = {
|
||||
sectionId: Guid.parse(planSectionId)
|
||||
}
|
||||
return description;
|
||||
}))
|
||||
.pipe(mergeMap( description => {
|
||||
const descriptionSectionPermissionResolverModel: DescriptionSectionPermissionResolver = {
|
||||
planId: description.plan.id,
|
||||
sectionIds: [description.planDescriptionTemplate.sectionId],
|
||||
permissions: [AppPermission.EditDescription, AppPermission.DeleteDescription, AppPermission.FinalizeDescription, AppPermission.AnnotateDescription]
|
||||
}
|
||||
return this.descriptionService.getDescriptionSectionPermissions(descriptionSectionPermissionResolverModel).pipe(takeUntil(this._destroyed));
|
||||
}));
|
||||
} else if (copyPlanId != null && id != null && planSectionId != null) {
|
||||
return this.planService.getSingle(Guid.parse(copyPlanId), DescriptionEditorEntityResolver.planLookupFields()).pipe(tap(x => this.breadcrumbService.addIdResolvedValue(x.id?.toString(), x.label)), takeUntil(this._destroyed), concatMap(plan => {
|
||||
//TODO
|
||||
return this.descriptionService.getSingle(Guid.parse(id), DescriptionEditorEntityResolver.cloneLookupFields())
|
||||
.pipe(tap(x => {
|
||||
this.breadcrumbService.addExcludedParam(copyPlanId, true)
|
||||
this.breadcrumbService.addExcludedParam(planSectionId, true)
|
||||
this.breadcrumbService.addIdResolvedValue(id, x.label)
|
||||
}), takeUntil(this._destroyed), map(description => {
|
||||
|
||||
description.id = null;
|
||||
description.hash = null;
|
||||
description.status = DescriptionStatus.Draft;
|
||||
description.plan = plan;
|
||||
description.planDescriptionTemplate = {
|
||||
id: plan.planDescriptionTemplates.filter(x => x.sectionId == Guid.parse(planSectionId) && x.descriptionTemplateGroupId == description.descriptionTemplate.groupId)[0].id,
|
||||
sectionId: Guid.parse(planSectionId)
|
||||
}
|
||||
return description;
|
||||
}));
|
||||
})).pipe(mergeMap( description => {
|
||||
const descriptionSectionPermissionResolverModel: DescriptionSectionPermissionResolver = {
|
||||
planId: description.plan.id,
|
||||
sectionIds: [description.planDescriptionTemplate.sectionId],
|
||||
permissions: [AppPermission.EditDescription, AppPermission.DeleteDescription, AppPermission.FinalizeDescription, AppPermission.AnnotateDescription]
|
||||
}
|
||||
return this.descriptionService.getDescriptionSectionPermissions(descriptionSectionPermissionResolverModel).pipe(takeUntil(this._destroyed));
|
||||
}));
|
||||
const descriptionSectionPermissionResolverModel: DescriptionSectionPermissionResolver = {
|
||||
planId: Guid.parse(planId),
|
||||
sectionIds: [Guid.parse(planSectionId)],
|
||||
permissions: [AppPermission.EditDescription, AppPermission.DeleteDescription, AppPermission.FinalizeDescription, AppPermission.AnnotateDescription]
|
||||
}
|
||||
return this.descriptionService.getDescriptionSectionPermissions(descriptionSectionPermissionResolverModel).pipe(takeUntil(this._destroyed));
|
||||
} else if (copyPlanId != null && id != null && planSectionId != null) {
|
||||
const descriptionSectionPermissionResolverModel: DescriptionSectionPermissionResolver = {
|
||||
planId: Guid.parse(copyPlanId),
|
||||
sectionIds: [Guid.parse(planSectionId)],
|
||||
permissions: [AppPermission.EditDescription, AppPermission.DeleteDescription, AppPermission.FinalizeDescription, AppPermission.AnnotateDescription]
|
||||
}
|
||||
return this.descriptionService.getDescriptionSectionPermissions(descriptionSectionPermissionResolverModel).pipe(takeUntil(this._destroyed));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -206,7 +206,7 @@
|
|||
</div>
|
||||
<div *ngIf="!isNew" class="col-auto" style="margin-top: 1rem;">
|
||||
<button mat-icon-button class="col-auto annotation-icon" (click)="showAnnotations(field.id)" matTooltip="{{ 'PLAN-EDITOR.ACTIONS.ANNOTATIONS' | translate }}" [disabled]="!canAnnotate(section.id)">
|
||||
<mat-icon [matBadge]="annotationsPerAnchor.get(field.id)" [matBadgeHidden]="annotationsPerAnchor.get(field.id) <= 0" matBadgeColor="warn">comment</mat-icon>
|
||||
<mat-icon [matBadge]="annotationsPerAnchor?.get(field.id)" [matBadgeHidden]="annotationsPerAnchor?.get(field.id) <= 0" matBadgeColor="warn">comment</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "Plan Blueprints",
|
||||
"USERS": "Erabiltzaileak",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Marka partekatua",
|
||||
"SUPPORT": "Laguntza",
|
||||
"FEEDBACK": "Bidali feedback-a",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Benutzer",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Co-Branding",
|
||||
"SUPPORT": "Support",
|
||||
"FEEDBACK": "Send feedback",
|
||||
|
@ -895,7 +895,7 @@
|
|||
"ANY": "Any",
|
||||
"DRAFT": "Draft",
|
||||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
"CANCELED": "Canceled"
|
||||
}
|
||||
},
|
||||
"RELATED-TENANT": {
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Usuarios",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Marca compartida",
|
||||
"SUPPORT": "Soporte",
|
||||
"FEEDBACK": "Enviar feedback",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Co-Branding",
|
||||
"SUPPORT": "Υποστήριξη",
|
||||
"FEEDBACK": "Στείλετε τα σχόλιά σας",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Korisnici",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Razvoj i suradnja",
|
||||
"SUPPORT": "Podrška",
|
||||
"FEEDBACK": "Molimo pošaljite nam svoje sugestije i komentare",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Użytkownicy",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Wspólne oznaczenie",
|
||||
"SUPPORT": "Wsparcie",
|
||||
"FEEDBACK": "Wyślij opinię",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Utilizadores",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Co-Branding",
|
||||
"SUPPORT": "Suporte",
|
||||
"FEEDBACK": "Enviar comentários",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Používatelia",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Co-Branding",
|
||||
"SUPPORT": "Podpora",
|
||||
"FEEDBACK": "Poslať spätnú väzbu",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Korisnici",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Partnerstvo",
|
||||
"SUPPORT": "Podrška",
|
||||
"FEEDBACK": "Pošaljite nam sugestije i komentare",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@
|
|||
"PLAN-INACTIVE-USER": "This plan contains users that are not exist",
|
||||
"PLAN-MISSING-USER-CONTACT-INFO": "This plan contains users that don't have contact info",
|
||||
"DESCRIPTION-TEMPLATE-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this description template.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"PLAN-BLUEPRINT-NEW-VERSION-ALREADY-CREATED-DRAFT": "You have already created a new draft version for this blueprint.",
|
||||
"REFERENCE-TYPE-CODE-EXISTS": "The reference type code you provided already exists. Please choose a different code.",
|
||||
"PREFILLING-SOURCE-CODE-EXISTS": "The prefilling source code you provided already exists. Please choose a different code.",
|
||||
"DUPLICATE-PLAN-USER": "You can't invite authors with same role and plan section more than once",
|
||||
|
@ -163,8 +163,8 @@
|
|||
"DESCRIPTION-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home",
|
||||
"ANNOTATION-STATUSES":"Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL":"Supportive Material",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"SUPPORTIVE-MATERIAL": "Supportive Material",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
|
@ -253,8 +253,8 @@
|
|||
"TENANT-CONFIGURATION": "Tenant Configuration",
|
||||
"ENTITY-LOCKS": "Entity Locks",
|
||||
"ANNOTATION-STATUSES": "Annotation Statuses",
|
||||
"USERS":"Users",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"USERS": "Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"NEW-USAGE-LIMIT": "New",
|
||||
"USAGE-LIMITS": "Usage Limits"
|
||||
},
|
||||
|
@ -302,7 +302,7 @@
|
|||
"DESCRIPTION-TEMPLATE-TYPES": "Description Types",
|
||||
"PLAN-BLUEPRINTS": "DMP Blueprints",
|
||||
"USERS": "Kullanıcılar",
|
||||
"TENANT-USERS":"Tenant Users",
|
||||
"TENANT-USERS": "Tenant Users",
|
||||
"CO-BRANDING": "Birlikte Markalama",
|
||||
"SUPPORT": "Destek",
|
||||
"FEEDBACK": "Geribildirim Yolla",
|
||||
|
@ -1020,10 +1020,11 @@
|
|||
"SELECT-PLAN": "Select Plan",
|
||||
"PLAN-SECTION": "Select Section"
|
||||
},
|
||||
"PREFILL-DESCRIPTION-DIALOG": {
|
||||
"NEW-DESCRIPTION-DIALOG": {
|
||||
"TITLE": "Initialize your Description",
|
||||
"OR": "OR",
|
||||
"HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE-HINT": "Select the Template to be used for your Description.",
|
||||
"PREFILL-HINT": "Select the item from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
|
||||
"DESCRIPTION-TEMPLATE": "Description Template",
|
||||
"PREFILLING-SOURCE": "Prefilling Source",
|
||||
"SEARCH-HEADER": "Prefilled object",
|
||||
|
@ -1263,7 +1264,7 @@
|
|||
},
|
||||
"ANNOTATION-SERVICE": {
|
||||
"TYPES": {
|
||||
"INTERNAL-STATUS":{
|
||||
"INTERNAL-STATUS": {
|
||||
"RESOLVED": "Resolved"
|
||||
},
|
||||
"IS-ACTIVE": {
|
||||
|
@ -1289,7 +1290,7 @@
|
|||
"APPLY-FILTERS": "Apply filters"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"EDIT":"Edit",
|
||||
"EDIT": "Edit",
|
||||
"DELETE": "Delete"
|
||||
}
|
||||
},
|
||||
|
@ -1297,7 +1298,7 @@
|
|||
"TITLE-EDIT-ANNOTATION-STATUS": "Editing Annotation Status",
|
||||
"FIELDS": {
|
||||
"LABEL": "Label",
|
||||
"INTERNAL-STATUS":"Internal Status"
|
||||
"INTERNAL-STATUS": "Internal Status"
|
||||
},
|
||||
"ACTIONS": {
|
||||
"SAVE": "Save",
|
||||
|
@ -2057,6 +2058,8 @@
|
|||
"PLAN-INVITATION-EXISTING-USER": "Plan Invitation Existing User",
|
||||
"PLAN-MODIFIED": "Plan Modified",
|
||||
"PLAN-FINALISED": "Plan Finalised",
|
||||
"PLAN-ANNOTATION-CREATED": "Plan Annotation Created",
|
||||
"PLAN-ANNOTATION-STATUS-CHANGED": "Plan Annotation Status Changed",
|
||||
"DESCRIPTION-CREATED": "Description Created",
|
||||
"DESCRIPTION-MODIFIED": "Description Modified",
|
||||
"DESCRIPTION-FINALISED": "Description Finalised",
|
||||
|
@ -2363,4 +2366,4 @@
|
|||
"copy": "Copy",
|
||||
"clone": "Clone",
|
||||
"new-version": "New Version"
|
||||
}
|
||||
}
|
|
@ -4,8 +4,10 @@ export enum NotificationType {
|
|||
descriptionCreatedType = '8965b1d5-99a6-4acf-9016-c0d0ce341364',
|
||||
planModifiedType = '4542262a-22f8-4baa-9db6-1c8e70ac1dbb',
|
||||
planFinalisedType = '90db0b46-42de-bd89-aebf-6f27efeb256e',
|
||||
descriptionAnnotationCreated = 'db1e99d2-a240-4e75-9bb2-ef25b234c1f0',
|
||||
descriptionAnnotationStatusChanged = '3189e3a6-91e6-40c6-8ff8-275a68445aec',
|
||||
planAnnotationCreatedType = '1cca80f5-2ea9-41ae-a204-9b4332216c24',
|
||||
planAnnotationStatusChangedType = '0c8a5c62-e48f-4eca-99ee-a7f262477061',
|
||||
descriptionAnnotationCreatedType = 'db1e99d2-a240-4e75-9bb2-ef25b234c1f0',
|
||||
descriptionAnnotationStatusChangedType = '3189e3a6-91e6-40c6-8ff8-275a68445aec',
|
||||
descriptionModifiedType = '4fdbfa80-7a71-4a69-b854-67cbb70648f1',
|
||||
descriptionFinalisedType = '33790bad-94d4-488a-8ee2-7f6295ca18ea',
|
||||
mergeAccountConfirmationType = 'bfe68845-cb05-4c5a-a03d-29161a7c9660',
|
||||
|
|
|
@ -32,11 +32,13 @@ export class NotificationServiceEnumUtils extends BaseEnumUtilsService {
|
|||
case NotificationType.planInvitationExistingUserType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.PLAN-INVITATION-EXISTING-USER');
|
||||
case NotificationType.planModifiedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.PLAN-MODIFIED');
|
||||
case NotificationType.planFinalisedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.PLAN-FINALISED');
|
||||
case NotificationType.planAnnotationCreatedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.PLAN-ANNOTATION-CREATED');
|
||||
case NotificationType.planAnnotationStatusChangedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.PLAN-ANNOTATION-STATUS-CHANGED');
|
||||
case NotificationType.descriptionCreatedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.DESCRIPTION-CREATED');
|
||||
case NotificationType.descriptionModifiedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.DESCRIPTION-MODIFIED');
|
||||
case NotificationType.descriptionFinalisedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.DESCRIPTION-FINALISED');
|
||||
case NotificationType.descriptionAnnotationCreated: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.DESCRIPTION-ANNOTATION-CREATED');
|
||||
case NotificationType.descriptionAnnotationStatusChanged: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.DESCRIPTION-ANNOTATION-STATUS-CHANGED');
|
||||
case NotificationType.descriptionAnnotationCreatedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.DESCRIPTION-ANNOTATION-CREATED');
|
||||
case NotificationType.descriptionAnnotationStatusChangedType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.DESCRIPTION-ANNOTATION-STATUS-CHANGED');
|
||||
case NotificationType.mergeAccountConfirmationType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.MERGE-ACCOUNT-CONFIRMATION');
|
||||
case NotificationType.removeCredentialConfirmationType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.REMOVE-CREDENTIAL-CONFIRMATION');
|
||||
case NotificationType.planDepositType: return this.language.instant('TYPES.NOTIFICATION-TEMPLATE-NOTIFICATION-TYPE.PLAN-DEPOSIT');
|
||||
|
|
Loading…
Reference in New Issue