add available actions on plan/description status definition
This commit is contained in:
parent
21fd258181
commit
12a57f875a
|
@ -0,0 +1,30 @@
|
|||
package org.opencdmp.commons.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.opencdmp.data.converters.enums.DatabaseEnum;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public enum DescriptionStatusAvailableActionType implements DatabaseEnum<Short> {
|
||||
|
||||
Export((short) 0);
|
||||
|
||||
private final Short value;
|
||||
|
||||
DescriptionStatusAvailableActionType(Short value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
@JsonValue
|
||||
public Short getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
private static final Map<Short, DescriptionStatusAvailableActionType> map = EnumUtils.getEnumValueMap(DescriptionStatusAvailableActionType.class);
|
||||
|
||||
public static DescriptionStatusAvailableActionType of(Short i) {
|
||||
return map.get(i);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package org.opencdmp.commons.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import org.opencdmp.data.converters.enums.DatabaseEnum;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public enum PlanStatusAvailableActionType implements DatabaseEnum<Short> {
|
||||
|
||||
Deposit((short) 0),
|
||||
Export((short) 1);
|
||||
|
||||
private final Short value;
|
||||
|
||||
PlanStatusAvailableActionType(Short value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
@JsonValue
|
||||
public Short getValue() {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
private static final Map<Short, PlanStatusAvailableActionType> map = EnumUtils.getEnumValueMap(PlanStatusAvailableActionType.class);
|
||||
|
||||
public static PlanStatusAvailableActionType of(Short i) {
|
||||
return map.get(i);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
package org.opencdmp.commons.types.descriptionstatus;
|
||||
|
||||
import jakarta.xml.bind.annotation.XmlAccessType;
|
||||
import jakarta.xml.bind.annotation.XmlAccessorType;
|
||||
import jakarta.xml.bind.annotation.XmlElement;
|
||||
import jakarta.xml.bind.annotation.XmlRootElement;
|
||||
import jakarta.xml.bind.annotation.*;
|
||||
import org.opencdmp.commons.enums.DescriptionStatusAvailableActionType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@XmlRootElement(name = "definition")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
|
@ -12,7 +12,19 @@ public class DescriptionStatusDefinitionEntity {
|
|||
@XmlElement(name = "authorization")
|
||||
private DescriptionStatusDefinitionAuthorizationEntity authorization;
|
||||
|
||||
@XmlElementWrapper(name = "availableActions")
|
||||
@XmlElement(name = "action")
|
||||
private List<DescriptionStatusAvailableActionType> availableActions;
|
||||
|
||||
public DescriptionStatusDefinitionAuthorizationEntity getAuthorization() { return this.authorization; }
|
||||
|
||||
public void setAuthorization(DescriptionStatusDefinitionAuthorizationEntity authorization) { this.authorization = authorization; }
|
||||
|
||||
public List<DescriptionStatusAvailableActionType> getAvailableActions() {
|
||||
return availableActions;
|
||||
}
|
||||
|
||||
public void setAvailableActions(List<DescriptionStatusAvailableActionType> availableActions) {
|
||||
this.availableActions = availableActions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package org.opencdmp.commons.types.planstatus;
|
||||
|
||||
import jakarta.xml.bind.annotation.*;
|
||||
import org.opencdmp.commons.enums.PlanStatusAvailableActionType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@XmlRootElement(name = "definition")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
|
@ -9,9 +12,21 @@ public class PlanStatusDefinitionEntity {
|
|||
@XmlElement(name = "authorization")
|
||||
private PlanStatusDefinitionAuthorizationEntity authorization;
|
||||
|
||||
@XmlElementWrapper(name = "availableActions")
|
||||
@XmlElement(name = "action")
|
||||
private List<PlanStatusAvailableActionType> availableActions;
|
||||
|
||||
public PlanStatusDefinitionAuthorizationEntity getAuthorization() {
|
||||
return this.authorization;
|
||||
}
|
||||
|
||||
public void setAuthorization(PlanStatusDefinitionAuthorizationEntity authorization) { this.authorization = authorization; }
|
||||
|
||||
public List<PlanStatusAvailableActionType> getAvailableActions() {
|
||||
return availableActions;
|
||||
}
|
||||
|
||||
public void setAvailableActions(List<PlanStatusAvailableActionType> availableActions) {
|
||||
this.availableActions = availableActions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ public class DescriptionStatusDefinitionBuilder extends BaseBuilder<DescriptionS
|
|||
if (!authorizationFields.isEmpty() && d.getAuthorization() != null) {
|
||||
m.setAuthorization(this.builderFactory.builder(DescriptionStatusDefinitionAuthorizationBuilder.class).authorize(authorize).build(authorizationFields, d.getAuthorization()));
|
||||
}
|
||||
if (fields.hasField(this.asIndexer(DescriptionStatusDefinition._availableActions))) m.setAvailableActions(d.getAvailableActions());
|
||||
|
||||
models.add(m);
|
||||
}
|
||||
|
|
|
@ -53,6 +53,8 @@ public class PlanStatusDefinitionBuilder extends BaseBuilder<PlanStatusDefinitio
|
|||
m.setAuthorization(this.builderFactory.builder(PlanStatusDefinitionAuthorizationBuilder.class).authorize(this.authorize).build(authorizationFields, d.getAuthorization()));
|
||||
}
|
||||
|
||||
if (fields.hasField(this.asIndexer(PlanStatusDefinition._availableActions))) m.setAvailableActions(d.getAvailableActions());
|
||||
|
||||
models.add(m);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,26 @@
|
|||
package org.opencdmp.model.descriptionstatus;
|
||||
|
||||
import org.opencdmp.commons.enums.DescriptionStatusAvailableActionType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DescriptionStatusDefinition {
|
||||
|
||||
public final static String _authorization = "authorization";
|
||||
private DescriptionStatusDefinitionAuthorization authorization;
|
||||
|
||||
public final static String _availableActions = "availableActions";
|
||||
private List<DescriptionStatusAvailableActionType> availableActions;
|
||||
|
||||
public DescriptionStatusDefinitionAuthorization getAuthorization() { return this.authorization; }
|
||||
|
||||
public void setAuthorization(DescriptionStatusDefinitionAuthorization authorization) { this.authorization = authorization; }
|
||||
|
||||
public List<DescriptionStatusAvailableActionType> getAvailableActions() {
|
||||
return availableActions;
|
||||
}
|
||||
|
||||
public void setAvailableActions(List<DescriptionStatusAvailableActionType> availableActions) {
|
||||
this.availableActions = availableActions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,10 @@ package org.opencdmp.model.persist.descriptionstatus;
|
|||
|
||||
import gr.cite.tools.validation.ValidatorFactory;
|
||||
import gr.cite.tools.validation.specification.Specification;
|
||||
import org.opencdmp.commons.enums.DescriptionStatusAvailableActionType;
|
||||
import org.opencdmp.commons.validation.BaseValidator;
|
||||
import org.opencdmp.convention.ConventionService;
|
||||
import org.opencdmp.errorcode.ErrorThesaurusProperties;
|
||||
import org.opencdmp.model.descriptionstatus.DescriptionStatusDefinitionAuthorization;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
|
@ -20,9 +20,19 @@ public class DescriptionStatusDefinitionPersist {
|
|||
private DescriptionStatusDefinitionAuthorizationPersist authorization;
|
||||
public final static String _authorization = "authorization";
|
||||
|
||||
private List<DescriptionStatusAvailableActionType> availableActions;
|
||||
public final static String _availableActions = "availableActions";
|
||||
|
||||
public DescriptionStatusDefinitionAuthorizationPersist getAuthorization() { return authorization; }
|
||||
public void setAuthorization(DescriptionStatusDefinitionAuthorizationPersist authorization) { this.authorization = authorization; }
|
||||
|
||||
public List<DescriptionStatusAvailableActionType> getAvailableActions() {
|
||||
return availableActions;
|
||||
}
|
||||
|
||||
public void setAvailableActions(List<DescriptionStatusAvailableActionType> availableActions) {
|
||||
this.availableActions = availableActions;
|
||||
}
|
||||
|
||||
@Component(DescriptionStatusDefinitionPersistValidator.ValidatorName)
|
||||
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.opencdmp.model.persist.planstatus;
|
|||
|
||||
import gr.cite.tools.validation.ValidatorFactory;
|
||||
import gr.cite.tools.validation.specification.Specification;
|
||||
import org.opencdmp.commons.enums.PlanStatusAvailableActionType;
|
||||
import org.opencdmp.commons.validation.BaseValidator;
|
||||
import org.opencdmp.convention.ConventionService;
|
||||
import org.opencdmp.errorcode.ErrorThesaurusProperties;
|
||||
|
@ -19,11 +20,21 @@ public class PlanStatusDefinitionPersist {
|
|||
public final static String _authorization = "authorization";
|
||||
private PlanStatusDefinitionAuthorizationPersist authorization = null;
|
||||
|
||||
public final static String _availableActions = "availableActions";
|
||||
private List<PlanStatusAvailableActionType> availableActions;
|
||||
|
||||
public PlanStatusDefinitionAuthorizationPersist getAuthorization() { return authorization; }
|
||||
|
||||
public void setAuthorization(PlanStatusDefinitionAuthorizationPersist authorization) { this.authorization = authorization; }
|
||||
|
||||
public List<PlanStatusAvailableActionType> getAvailableActions() {
|
||||
return availableActions;
|
||||
}
|
||||
|
||||
public void setAvailableActions(List<PlanStatusAvailableActionType> availableActions) {
|
||||
this.availableActions = availableActions;
|
||||
}
|
||||
|
||||
@Component(PlanStatusDefinitionPersist.PlanStatusDefinitionPersistValidator.ValidatorName)
|
||||
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||
public static class PlanStatusDefinitionPersistValidator extends BaseValidator<PlanStatusDefinitionPersist> {
|
||||
|
|
|
@ -1,12 +1,27 @@
|
|||
package org.opencdmp.model.planstatus;
|
||||
|
||||
import org.opencdmp.commons.enums.PlanStatusAvailableActionType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PlanStatusDefinition {
|
||||
|
||||
public final static String _authorization = "authorization";
|
||||
private PlanStatusDefinitionAuthorization authorization;
|
||||
|
||||
public final static String _availableActions = "availableActions";
|
||||
private List<PlanStatusAvailableActionType> availableActions;
|
||||
|
||||
|
||||
public PlanStatusDefinitionAuthorization getAuthorization() { return this.authorization; }
|
||||
|
||||
public void setAuthorization(PlanStatusDefinitionAuthorization authorization) { this.authorization = authorization; }
|
||||
|
||||
public List<PlanStatusAvailableActionType> getAvailableActions() {
|
||||
return availableActions;
|
||||
}
|
||||
|
||||
public void setAvailableActions(List<PlanStatusAvailableActionType> availableActions) {
|
||||
this.availableActions = availableActions;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ public class DescriptionStatusServiceImpl implements DescriptionStatusService {
|
|||
return data;
|
||||
|
||||
data.setAuthorization(this.buildDescriptionStatusDefinitionAuthorizationEntity(persist.getAuthorization()));
|
||||
|
||||
if (!this.conventionService.isListNullOrEmpty(persist.getAvailableActions())) data.setAvailableActions(persist.getAvailableActions());
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
|
@ -136,6 +136,8 @@ public class PlanStatusServiceImpl implements PlanStatusService {
|
|||
PlanStatusDefinitionAuthorizationEntity definitionAuthorizationData = this.buildPlanStatusDefinitionAuthorizationEntity(persist.getAuthorization());
|
||||
data.setAuthorization(definitionAuthorizationData);
|
||||
}
|
||||
|
||||
if (!this.conventionService.isListNullOrEmpty(persist.getAvailableActions())) data.setAvailableActions(persist.getAvailableActions());
|
||||
return data;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
export enum DescriptionStatusAvailableActionType {
|
||||
Export = 0,
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
export enum PlanStatusAvailableActionType {
|
||||
Deposit = 0,
|
||||
Export = 1
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
import { AppRole } from "@app/core/common/enum/app-role";
|
||||
import { DescriptionStatusEnum } from "@app/core/common/enum/description-status";
|
||||
import { DescriptionStatusAvailableActionType } from "@app/core/common/enum/description-status-available-action-type";
|
||||
import { PlanUserRole } from "@app/core/common/enum/plan-user-role";
|
||||
import { BaseEntity } from "@common/base/base-entity.model";
|
||||
|
||||
|
@ -12,6 +13,7 @@ export interface DescriptionStatus extends BaseEntity{
|
|||
|
||||
export interface DescriptionStatusDefinition {
|
||||
authorization: DescriptionStatusDefinitionAuthorization
|
||||
availableActions: DescriptionStatusAvailableActionType[];
|
||||
}
|
||||
|
||||
export interface DescriptionStatusDefinitionAuthorization {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { AppRole } from "@app/core/common/enum/app-role";
|
||||
import { PlanStatusEnum } from "@app/core/common/enum/plan-status";
|
||||
import { PlanStatusAvailableActionType } from "@app/core/common/enum/plan-status-available-action-type";
|
||||
import { PlanUserRole } from "@app/core/common/enum/plan-user-role";
|
||||
import { BaseEntity } from "@common/base/base-entity.model";
|
||||
|
||||
|
@ -12,6 +13,7 @@ export interface PlanStatus extends BaseEntity{
|
|||
|
||||
export interface PlanStatusDefinition {
|
||||
authorization: PlanStatusDefinitionAuthorization
|
||||
availableActions: PlanStatusAvailableActionType[]
|
||||
}
|
||||
|
||||
export interface PlanStatusDefinitionAuthorization {
|
||||
|
|
|
@ -31,6 +31,8 @@ import { PlanStatusEnum } from '../../common/enum/plan-status';
|
|||
import { ValidationType } from '../../common/enum/validation-type';
|
||||
import { UsageLimitTargetMetric } from '@app/core/common/enum/usage-limit-target-metric';
|
||||
import { UsageLimitPeriodicityRange } from '@app/core/common/enum/usage-limit-periodicity-range';
|
||||
import { PlanStatusAvailableActionType } from '@app/core/common/enum/plan-status-available-action-type';
|
||||
import { DescriptionStatusAvailableActionType } from '@app/core/common/enum/description-status-available-action-type';
|
||||
|
||||
@Injectable()
|
||||
export class EnumUtils {
|
||||
|
@ -76,6 +78,13 @@ export class EnumUtils {
|
|||
}
|
||||
}
|
||||
|
||||
toPlanStatusAvailableActionTypeString(status: PlanStatusAvailableActionType): string {
|
||||
switch (status) {
|
||||
case PlanStatusAvailableActionType.Deposit: return this.language.instant('TYPES.PLAN-STATUS-AVAILABLE-ACTION-TYPE.DEPOSIT');
|
||||
case PlanStatusAvailableActionType.Export: return this.language.instant('TYPES.PLAN-STATUS-AVAILABLE-ACTION-TYPE.EXPORT');
|
||||
}
|
||||
}
|
||||
|
||||
toDescriptionTemplateFieldValidationTypeString(status: ValidationType): string {
|
||||
switch (status) {
|
||||
case ValidationType.None: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-VALIDATION-TYPE.NONE');
|
||||
|
@ -218,6 +227,12 @@ export class EnumUtils {
|
|||
}
|
||||
}
|
||||
|
||||
toDescriptionStatusAvailableActionTypeString(status: DescriptionStatusAvailableActionType): string {
|
||||
switch (status) {
|
||||
case DescriptionStatusAvailableActionType.Export: return this.language.instant('TYPES.DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE.EXPORT');
|
||||
}
|
||||
}
|
||||
|
||||
toPlanUserRolesString(roles: PlanUserRole[]): string { return roles.map(x => this.toPlanUserRoleString(x)).join(', ') }
|
||||
toPlanUserRoleString(role: PlanUserRole): string {
|
||||
switch (role) {
|
||||
|
|
|
@ -61,6 +61,18 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<h3>
|
||||
{{'DESCRIPTION-STATUS-EDITOR.FIELDS.AVAILABLE-ACTIONS' | translate}}
|
||||
</h3>
|
||||
<mat-form-field class="w-100">
|
||||
<mat-label>{{'DESCRIPTION-STATUS-EDITOR.FIELDS.AVAILABLE-ACTIONS' | translate}}</mat-label>
|
||||
<mat-select multiple [formControl]="formGroup.controls.definition.controls.availableActions">
|
||||
<mat-option *ngFor="let actionType of descriptionStatusAvailableActionTypeEnumValues" [value]="actionType">{{enumUtils.toDescriptionStatusAvailableActionTypeString(actionType)}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<h3>
|
||||
{{'DESCRIPTION-STATUS-EDITOR.FIELDS.AUTHORIZATION' | translate}}
|
||||
|
|
|
@ -29,6 +29,7 @@ import { DescriptionStatusForm, DescriptionStatusDefinitionAuthorizationItemForm
|
|||
import { DescriptionStatusEditorResolver } from './description-status-editor.resolver';
|
||||
import { BaseEditor } from '@common/base/base-editor';
|
||||
import { PlanUserRole } from '@app/core/common/enum/plan-user-role';
|
||||
import { DescriptionStatusAvailableActionType } from '@app/core/common/enum/description-status-available-action-type';
|
||||
|
||||
@Component({
|
||||
selector: 'app-description-status-editor',
|
||||
|
@ -39,6 +40,7 @@ export class DescriptionStatusEditorComponent extends BaseEditor<DescriptionStat
|
|||
protected internalStatusEnum = this.enumUtils.getEnumValues<DescriptionStatusEnum>(DescriptionStatusEnum);
|
||||
protected userRolesEnum = this.enumUtils.getEnumValues<AppRole>(AppRole);
|
||||
protected planRolesEnum = this.enumUtils.getEnumValues<PlanUserRole>(PlanUserRole);
|
||||
protected descriptionStatusAvailableActionTypeEnumValues = this.enumUtils.getEnumValues<DescriptionStatusAvailableActionType>(DescriptionStatusAvailableActionType);
|
||||
protected belongsToCurrentTenant: boolean;
|
||||
|
||||
constructor(
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { FormControl, FormGroup, Validators } from "@angular/forms";
|
||||
import { AppRole } from "@app/core/common/enum/app-role";
|
||||
import { DescriptionStatusEnum } from "@app/core/common/enum/description-status";
|
||||
import { DescriptionStatusAvailableActionType } from "@app/core/common/enum/description-status-available-action-type";
|
||||
import { PlanUserRole } from "@app/core/common/enum/plan-user-role";
|
||||
import { DescriptionStatus, DescriptionStatusDefinition, DescriptionStatusDefinitionAuthorizationItem } from "@app/core/model/description-status/description-status";
|
||||
import { DescriptionStatusPersist } from "@app/core/model/description-status/description-status-persist";
|
||||
|
@ -46,6 +47,7 @@ export class DescriptionStatusEditorModel extends BaseEditorModel implements Des
|
|||
edit: this.buildDefinitionAuthorizationItemForm({item: this.definition?.authorization?.edit, rootPath: 'edit', disabled})
|
||||
})
|
||||
});
|
||||
definitionForm.addControl('availableActions', new FormControl({value: this.definition?.availableActions, disabled}, context.getValidation('availableActions').validators));
|
||||
definitionForm.controls.authorization.addValidators(context.getValidation('authorization').validators);
|
||||
definitionForm.addValidators(context.getValidation('definition').validators);
|
||||
return definitionForm;
|
||||
|
@ -73,6 +75,7 @@ export class DescriptionStatusEditorModel extends BaseEditorModel implements Des
|
|||
baseValidationArray.push({ key: 'definition', validators: [BackendErrorValidator(this.validationErrorModel, 'definition')] });
|
||||
baseValidationArray.push({ key: 'authorization', validators: [BackendErrorValidator(this.validationErrorModel, 'definition.authorization')] });
|
||||
baseValidationArray.push({ key: 'edit', validators: [BackendErrorValidator(this.validationErrorModel, 'definition.authorization.edit')] });
|
||||
baseValidationArray.push({ key: 'availableActions', validators: [BackendErrorValidator(this.validationErrorModel, 'definition.availableActions')] });
|
||||
|
||||
baseContext.validation = baseValidationArray;
|
||||
return baseContext;
|
||||
|
@ -102,6 +105,7 @@ export interface DescriptionStatusForm {
|
|||
|
||||
export interface DescriptionStatusDefinitionForm {
|
||||
authorization: FormGroup<DescriptionStatusDefinitionAuthorizationForm>
|
||||
availableActions?: FormControl<DescriptionStatusAvailableActionType[]>
|
||||
}
|
||||
|
||||
export interface DescriptionStatusDefinitionAuthorizationForm {
|
||||
|
|
|
@ -28,6 +28,8 @@ export class DescriptionStatusEditorResolver extends BaseEditorResolver{
|
|||
[nameof<DescriptionStatus>(x => x.definition), nameof<DescriptionStatusDefinition>(x => x.authorization), nameof<DescriptionStatusDefinitionAuthorization>(x => x.edit), nameof<DescriptionStatusDefinitionAuthorizationItem>(x => x.allowAnonymous)].join('.'),
|
||||
[nameof<DescriptionStatus>(x => x.definition), nameof<DescriptionStatusDefinition>(x => x.authorization), nameof<DescriptionStatusDefinitionAuthorization>(x => x.edit), nameof<DescriptionStatusDefinitionAuthorizationItem>(x => x.allowAuthenticated)].join('.'),
|
||||
|
||||
[nameof<DescriptionStatus>(x => x.definition), nameof<DescriptionStatusDefinition>(x => x.availableActions)].join('.'),
|
||||
|
||||
nameof<DescriptionStatus>(x => x.updatedAt),
|
||||
nameof<DescriptionStatus>(x => x.createdAt),
|
||||
nameof<DescriptionStatus>(x => x.hash),
|
||||
|
|
|
@ -28,6 +28,8 @@ export class PlanStatusEditorResolver extends BaseEditorResolver{
|
|||
[nameof<PlanStatus>(x => x.definition), nameof<PlanStatusDefinition>(x => x.authorization), nameof<PlanStatusDefinitionAuthorization>(x => x.edit), nameof<PlanStatusDefinitionAuthorizationItem>(x => x.allowAnonymous)].join('.'),
|
||||
[nameof<PlanStatus>(x => x.definition), nameof<PlanStatusDefinition>(x => x.authorization), nameof<PlanStatusDefinitionAuthorization>(x => x.edit), nameof<PlanStatusDefinitionAuthorizationItem>(x => x.allowAuthenticated)].join('.'),
|
||||
|
||||
[nameof<PlanStatus>(x => x.definition), nameof<PlanStatusDefinition>(x => x.availableActions)].join('.'),
|
||||
|
||||
nameof<PlanStatus>(x => x.updatedAt),
|
||||
nameof<PlanStatus>(x => x.createdAt),
|
||||
nameof<PlanStatus>(x => x.hash),
|
||||
|
|
|
@ -60,7 +60,17 @@
|
|||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<h3>
|
||||
{{'PLAN-STATUS-EDITOR.FIELDS.AVAILABLE-ACTIONS' | translate}}
|
||||
</h3>
|
||||
<mat-form-field class="w-100">
|
||||
<mat-label>{{'PLAN-STATUS-EDITOR.FIELDS.AVAILABLE-ACTIONS' | translate}}</mat-label>
|
||||
<mat-select multiple [formControl]="formGroup.controls.definition.controls.availableActions">
|
||||
<mat-option *ngFor="let actionType of planStatusAvailableActionTypeEnumValues" [value]="actionType">{{enumUtils.toPlanStatusAvailableActionTypeString(actionType)}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<h3>
|
||||
{{'PLAN-STATUS-EDITOR.FIELDS.AUTHORIZATION' | translate}}
|
||||
|
|
|
@ -29,6 +29,7 @@ import { PlanStatusEnum } from '@app/core/common/enum/plan-status';
|
|||
import { FormGroup } from '@angular/forms';
|
||||
import { PlanUserRole } from '@app/core/common/enum/plan-user-role';
|
||||
import { AppRole } from '@app/core/common/enum/app-role';
|
||||
import { PlanStatusAvailableActionType } from '@app/core/common/enum/plan-status-available-action-type';
|
||||
|
||||
@Component({
|
||||
selector: 'app-plan-status-editor',
|
||||
|
@ -40,6 +41,7 @@ export class PlanStatusEditorComponent extends BaseEditor<PlanStatusEditorModel,
|
|||
protected internalStatusEnum = this.enumUtils.getEnumValues<PlanStatusEnum>(PlanStatusEnum);
|
||||
protected userRolesEnum = this.enumUtils.getEnumValues<AppRole>(AppRole);
|
||||
protected planRolesEnum = this.enumUtils.getEnumValues<PlanUserRole>(PlanUserRole);
|
||||
protected planStatusAvailableActionTypeEnumValues = this.enumUtils.getEnumValues<PlanStatusAvailableActionType>(PlanStatusAvailableActionType);
|
||||
protected belongsToCurrentTenant: boolean;
|
||||
|
||||
constructor(
|
||||
|
|
|
@ -2,6 +2,7 @@ import { FormArray, FormControl, FormGroup, Validators } from "@angular/forms";
|
|||
import { AppRole } from "@app/core/common/enum/app-role";
|
||||
import { AppPermission } from "@app/core/common/enum/permission.enum";
|
||||
import { PlanStatusEnum } from "@app/core/common/enum/plan-status";
|
||||
import { PlanStatusAvailableActionType } from "@app/core/common/enum/plan-status-available-action-type";
|
||||
import { PlanUserRole } from "@app/core/common/enum/plan-user-role";
|
||||
import { PlanStatus, PlanStatusDefinition, PlanStatusDefinitionAuthorizationItem } from "@app/core/model/plan-status/plan-status";
|
||||
import { PlanStatusPersist } from "@app/core/model/plan-status/plan-status-persist";
|
||||
|
@ -47,6 +48,7 @@ export class PlanStatusEditorModel extends BaseEditorModel implements PlanStatus
|
|||
edit: this.buildDefinitionAuthorizationItemForm({item: this.definition?.authorization?.edit, rootPath: 'edit', disabled})
|
||||
})
|
||||
});
|
||||
definitionForm.addControl('availableActions', new FormControl({value: this.definition?.availableActions, disabled}, context.getValidation('availableActions').validators));
|
||||
definitionForm.controls.authorization.addValidators(context.getValidation('authorization').validators);
|
||||
definitionForm.addValidators(context.getValidation('definition').validators);
|
||||
return definitionForm;
|
||||
|
@ -74,6 +76,7 @@ export class PlanStatusEditorModel extends BaseEditorModel implements PlanStatus
|
|||
baseValidationArray.push({ key: 'definition', validators: [BackendErrorValidator(this.validationErrorModel, 'definition')] });
|
||||
baseValidationArray.push({ key: 'authorization', validators: [BackendErrorValidator(this.validationErrorModel, 'definition.authorization')] });
|
||||
baseValidationArray.push({ key: 'edit', validators: [BackendErrorValidator(this.validationErrorModel, 'definition.authorization.edit')] });
|
||||
baseValidationArray.push({ key: 'availableActions', validators: [BackendErrorValidator(this.validationErrorModel, 'definition.availableActions')] });
|
||||
|
||||
baseContext.validation = baseValidationArray;
|
||||
return baseContext;
|
||||
|
@ -104,6 +107,7 @@ export interface PlanStatusForm {
|
|||
|
||||
export interface PlanStatusDefinitionForm {
|
||||
authorization: FormGroup<PlanStatusDefinitionAuthorizationForm>
|
||||
availableActions?: FormControl<PlanStatusAvailableActionType[]>
|
||||
}
|
||||
|
||||
export interface PlanStatusDefinitionAuthorizationForm {
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Amaituta",
|
||||
"DRAFT": "Zirriborroa"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Argitaratuta"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Fertiggestellt",
|
||||
"DRAFT": "Entwurf"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Veröffentlicht"
|
||||
},
|
||||
|
|
|
@ -914,7 +914,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -965,7 +966,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Finalized",
|
||||
"DRAFT": "Draft"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Published"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Finalizado",
|
||||
"DRAFT": "Borrador"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Publicado"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Οριστικοποιημένο",
|
||||
"DRAFT": "Προσχέδιο"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Δημοσιευμένο"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Završeno",
|
||||
"DRAFT": "Nacrt"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Objavljeno"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Sfinalizowane",
|
||||
"DRAFT": "Wersja robocza"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Opublikowane"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Concluído",
|
||||
"DRAFT": "Rascunho"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Publicado"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Dokončené",
|
||||
"DRAFT": "Návrh"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Publikované"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Završeno",
|
||||
"DRAFT": "Radna verzija"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Objavljeno"
|
||||
},
|
||||
|
|
|
@ -916,7 +916,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -958,7 +959,8 @@
|
|||
"ALLOW-AUTHENTICATED": "Allow authenticated users",
|
||||
"ALLOW-ANONYMOUS": "Allow anonymous users",
|
||||
"ROLES": "User roles",
|
||||
"PLAN-ROLES": "User plan roles"
|
||||
"PLAN-ROLES": "User plan roles",
|
||||
"AVAILABLE-ACTIONS": "Available Actions"
|
||||
},
|
||||
"DEFAULT-VALUE": {
|
||||
"NONE": "None"
|
||||
|
@ -2107,6 +2109,9 @@
|
|||
"FINALIZED": "Finalized",
|
||||
"CANCELED": "Canceled"
|
||||
},
|
||||
"DESCRIPTION-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-USER-ROLE": {
|
||||
"OWNER": "Owner",
|
||||
"VIEWER": "Viewer",
|
||||
|
@ -2120,6 +2125,10 @@
|
|||
"FINALISED": "Tamamlandı",
|
||||
"DRAFT": "Taslak"
|
||||
},
|
||||
"PLAN-STATUS-AVAILABLE-ACTION-TYPE": {
|
||||
"DEPOSIT": "Deposit",
|
||||
"EXPORT": "Export"
|
||||
},
|
||||
"PLAN-VISIBILITY": {
|
||||
"PUBLIC": "Yayınlandı"
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue