evaluator fixes
This commit is contained in:
parent
038c66b887
commit
f8684f996a
|
@ -78,7 +78,7 @@ public class PlanUserCommonModelBuilder extends BaseCommonModelBuilder<PlanUserM
|
|||
this.logger.debug("checking related - {}", UserModel.class.getSimpleName());
|
||||
|
||||
Map<UUID, UserModel> itemMap;
|
||||
UserQuery q = this.queryFactory.query(UserQuery.class).disableTracking().isActive(IsActive.Active).ids(data.stream().map(PlanUserEntity::getUserId).distinct().collect(Collectors.toList()));
|
||||
UserQuery q = this.queryFactory.query(UserQuery.class).disableTracking().isActive(IsActive.Active).authorize(this.authorize).ids(data.stream().map(PlanUserEntity::getUserId).distinct().collect(Collectors.toList()));
|
||||
itemMap = this.builderFactory.builder(UserCommonModelBuilder.class).authorize(this.authorize).asForeignKey(q, UserEntity::getId);
|
||||
return itemMap;
|
||||
}
|
||||
|
|
|
@ -199,7 +199,7 @@ public class PlanCommonModelBuilder extends BaseCommonModelBuilder<PlanModel, Pl
|
|||
|
||||
Map<UUID, List<PlanUserModel>> itemMap;
|
||||
PlanUserQuery query = this.queryFactory.query(PlanUserQuery.class).disableTracking().isActives(IsActive.Active).planIds(data.stream().map(PlanEntity::getId).distinct().collect(Collectors.toList()));
|
||||
itemMap = this.builderFactory.builder(PlanUserCommonModelBuilder.class).asMasterKey(query, PlanUserEntity::getPlanId);
|
||||
itemMap = this.builderFactory.builder(PlanUserCommonModelBuilder.class).authorize(this.authorize).asMasterKey(query, PlanUserEntity::getPlanId);
|
||||
|
||||
return itemMap;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import gr.cite.tools.validation.ValidatorFactory;
|
|||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.opencdmp.authorization.AuthorizationFlags;
|
||||
import org.opencdmp.authorization.Permission;
|
||||
import org.opencdmp.authorization.authorizationcontentresolver.AuthorizationContentResolver;
|
||||
import org.opencdmp.commonmodels.models.FileEnvelopeModel;
|
||||
import org.opencdmp.commonmodels.models.description.DescriptionModel;
|
||||
import org.opencdmp.commons.JsonHandlingService;
|
||||
|
@ -101,9 +102,10 @@ public class EvaluatorServiceImpl implements EvaluatorService {
|
|||
private final StorageFileService storageFileService;
|
||||
private final StorageFileProperties storageFileProperties;
|
||||
private final ValidatorFactory validatorFactory;
|
||||
private final AuthorizationContentResolver authorizationContentResolver;
|
||||
|
||||
@Autowired
|
||||
public EvaluatorServiceImpl(EvaluatorProperties evaluatorProperties, Map<String, EvaluatorClientImpl> clients, TokenExchangeCacheService tokenExchangeCacheService, EvaluatorConfigurationCacheService evaluatorConfigurationCacheService, AuthorizationService authorizationService, QueryFactory queryFactory, BuilderFactory builderFactory, MessageSource messageSource, ConventionService conventionService, TenantScope tenantScope, EncryptionService encryptionService, TenantProperties tenantProperties, JsonHandlingService jsonHandlingService, EvaluatorSourcesCacheService evaluatorSourcesCacheService, AccountingService accountingService, TenantEntityManager entityManager, FileTransformerService fileTransformerService, UserScope userScope, StorageFileService storageFileService, StorageFileProperties storageFileProperties, ValidatorFactory validatorFactory) {
|
||||
public EvaluatorServiceImpl(EvaluatorProperties evaluatorProperties, Map<String, EvaluatorClientImpl> clients, TokenExchangeCacheService tokenExchangeCacheService, EvaluatorConfigurationCacheService evaluatorConfigurationCacheService, AuthorizationService authorizationService, QueryFactory queryFactory, BuilderFactory builderFactory, MessageSource messageSource, ConventionService conventionService, TenantScope tenantScope, EncryptionService encryptionService, TenantProperties tenantProperties, JsonHandlingService jsonHandlingService, EvaluatorSourcesCacheService evaluatorSourcesCacheService, AccountingService accountingService, TenantEntityManager entityManager, FileTransformerService fileTransformerService, UserScope userScope, StorageFileService storageFileService, StorageFileProperties storageFileProperties, ValidatorFactory validatorFactory, AuthorizationContentResolver authorizationContentResolver) {
|
||||
this.evaluatorProperties = evaluatorProperties;
|
||||
this.clients = clients;
|
||||
this.tokenExchangeCacheService = tokenExchangeCacheService;
|
||||
|
@ -125,6 +127,7 @@ public class EvaluatorServiceImpl implements EvaluatorService {
|
|||
this.storageFileService = storageFileService;
|
||||
this.storageFileProperties = storageFileProperties;
|
||||
this.validatorFactory = validatorFactory;
|
||||
this.authorizationContentResolver = authorizationContentResolver;
|
||||
}
|
||||
private EvaluatorClientImpl getEvaluatorClient(String repoId) throws InvalidApplicationException, InvalidAlgorithmParameterException, NoSuchPaddingException, IllegalBlockSizeException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException {
|
||||
String repositoryIdByTenant = this.getRepositoryIdByTenant(repoId);
|
||||
|
@ -271,7 +274,7 @@ public class EvaluatorServiceImpl implements EvaluatorService {
|
|||
|
||||
@Override
|
||||
public RankModel rankPlan(UUID planId, String evaluatorId, String format, boolean isPublic) throws InvalidAlgorithmParameterException, NoSuchPaddingException, IllegalBlockSizeException, InvalidApplicationException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException, IOException, InvalidTypeException {
|
||||
this.authorizationService.authorizeForce(Permission.EvaluatePlan);
|
||||
this.authorizationService.authorizeAtLeastOneForce(List.of(this.authorizationContentResolver.planAffiliation(planId)), Permission.EvaluatePlan);
|
||||
EvaluatorClientImpl repository = this.getEvaluatorClient(evaluatorId);
|
||||
|
||||
if(repository == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{format, EvaluatorClientImpl.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
|
@ -298,7 +301,7 @@ public class EvaluatorServiceImpl implements EvaluatorService {
|
|||
|
||||
@Override
|
||||
public RankModel rankDescription(UUID descriptionId, String repositoryId, String format, boolean isPublic) throws InvalidAlgorithmParameterException, NoSuchPaddingException, IllegalBlockSizeException, InvalidApplicationException, NoSuchAlgorithmException, BadPaddingException, InvalidKeyException, IOException {
|
||||
this.authorizationService.authorizeForce(Permission.EvaluateDescription);
|
||||
this.authorizationService.authorizeAtLeastOneForce(List.of(this.authorizationContentResolver.descriptionAffiliation(descriptionId)), Permission.EvaluateDescription);
|
||||
EvaluatorClientImpl repository = this.getEvaluatorClient(repositoryId);
|
||||
|
||||
if(repository == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{format, EvaluatorClientImpl.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
|
|
|
@ -276,7 +276,7 @@ public class FileTransformerServiceImpl implements FileTransformerService {
|
|||
|
||||
if (entity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{planId, Plan.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
|
||||
PlanModel planFileTransformerModel = this.builderFactory.builder(PlanCommonModelBuilder.class).useSharedStorage(repository.getConfiguration().isUseSharedStorage()).setRepositoryId(repository.getConfiguration().getFileTransformerId()).isPublic(isPublic).authorize(AuthorizationFlags.All).build(entity);
|
||||
PlanModel planFileTransformerModel = this.builderFactory.builder(PlanCommonModelBuilder.class).useSharedStorage(repository.getConfiguration().isUseSharedStorage()).setRepositoryId(repository.getConfiguration().getFileTransformerId()).isPublic(isPublic).authorize(isPublic ? AuthorizationFlags.All: AuthorizationFlags.AllExceptPublic).build(entity);
|
||||
if (planFileTransformerModel == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{planId, Plan.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
|
||||
FileEnvelopeModel fileEnvelope = repository.exportPlan(planFileTransformerModel, format);
|
||||
|
@ -316,7 +316,7 @@ public class FileTransformerServiceImpl implements FileTransformerService {
|
|||
|
||||
if (entity == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{descriptionId, Description.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
|
||||
DescriptionModel descriptionFileTransformerModel = this.builderFactory.builder(DescriptionCommonModelBuilder.class).setRepositoryId(repository.getConfiguration().getFileTransformerId()).useSharedStorage(repository.getConfiguration().isUseSharedStorage()).isPublic(isPublic).authorize(AuthorizationFlags.All).build(entity);
|
||||
DescriptionModel descriptionFileTransformerModel = this.builderFactory.builder(DescriptionCommonModelBuilder.class).setRepositoryId(repository.getConfiguration().getFileTransformerId()).useSharedStorage(repository.getConfiguration().isUseSharedStorage()).isPublic(isPublic).authorize(isPublic ? AuthorizationFlags.All: AuthorizationFlags.AllExceptPublic).build(entity);
|
||||
if (descriptionFileTransformerModel == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{descriptionId, Description.class.getSimpleName()}, LocaleContextHolder.getLocale()));
|
||||
|
||||
FileEnvelopeModel fileEnvelope = repository.exportDescription(descriptionFileTransformerModel, format);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export enum SuccessStatus {
|
||||
Fail = 0,
|
||||
Pass = 1
|
||||
Fail = "Fail",
|
||||
Pass = "Pass"
|
||||
}
|
|
@ -33,6 +33,7 @@ import { UsageLimitTargetMetric } from '@app/core/common/enum/usage-limit-target
|
|||
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';
|
||||
import { SuccessStatus } from '@app/core/model/evaluator/evaluator-success-status.model';
|
||||
|
||||
@Injectable()
|
||||
export class EnumUtils {
|
||||
|
@ -342,4 +343,12 @@ export class EnumUtils {
|
|||
}
|
||||
}
|
||||
|
||||
public toSuccessStatusString(value: SuccessStatus): string {
|
||||
switch (value) {
|
||||
case SuccessStatus.Fail: return this.language.instant('TYPES.EVALUATOR-SUCCESS-STATUS.FAIL');
|
||||
case SuccessStatus.Pass: return this.language.instant('TYPES.EVALUATOR-SUCCESS-STATUS.PASS');
|
||||
default: return '';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -244,7 +244,7 @@
|
|||
|
||||
<mat-menu #rankMenu="matMenu" xPosition="before">
|
||||
<button mat-menu-item *ngFor='let evaluator of evaluatorService.availableEvaluatorsFor(evaluatorEntityTypeEnum.Plan)'
|
||||
(click)="onEvaluatePlan(plan.id, evaluator.evaluatorId, evaluator.format, isPublicView)">
|
||||
(click)="onEvaluatePlan(plan.id, evaluator.evaluatorId, evaluator.format, evaluator.rankConfig, isPublicView)">
|
||||
<span class="evaluator-id pr-2">{{ (evaluator.evaluatorId?.toUpperCase()) | translate }}</span>
|
||||
<img *ngIf="evaluator.hasLogo" class="logo" [src]="logos.get(evaluator.evaluatorId)">
|
||||
<img *ngIf="!evaluator.hasLogo" class="logo" src="assets/images/repository-placeholder.png">
|
||||
|
|
|
@ -59,6 +59,7 @@ import { NewVersionPlanDialogComponent } from '../new-version-dialog/plan-new-ve
|
|||
import { PlanDeleteDialogComponent } from '../plan-delete-dialog/plan-delete-dialog.component';
|
||||
import { PlanEvaluateDialogComponent } from '../plan-evaluate-dialog/plan-evaluate-dialog.component';
|
||||
import { PlanFinalizeDialogComponent, PlanFinalizeDialogOutput } from '../plan-finalize-dialog/plan-finalize-dialog.component';
|
||||
import { RankConfig } from '@app/core/model/evaluator/rank-config';
|
||||
|
||||
@Component({
|
||||
selector: 'app-plan-overview',
|
||||
|
@ -324,26 +325,7 @@ export class PlanOverviewComponent extends BaseComponent implements OnInit {
|
|||
return (authorizationFlags?.some(x => x === AppPermission.EvaluatePlan) || this.authentication.hasPermission(AppPermission.EvaluatePlan));
|
||||
}
|
||||
|
||||
// onEvaluatePlan(planId: Guid, evaluatorId: string, format: string, isPublicView: boolean) {
|
||||
// this.evaluatorService.rankPlan(planId, evaluatorId, format).subscribe(
|
||||
// (response: RankModel) => {
|
||||
|
||||
// const dialogRef = this.dialog.open(PlanEvaluateDialogComponent, {
|
||||
// data: { rankData: response }
|
||||
// });
|
||||
|
||||
// dialogRef.afterClosed().subscribe(result => {
|
||||
// this.logger.debug("Dialog closed with result:", result);
|
||||
// });
|
||||
// },
|
||||
// error => {
|
||||
|
||||
// this.logger.error("Error ranking plan:", error);
|
||||
// }
|
||||
// );
|
||||
// }
|
||||
|
||||
onEvaluatePlan(planId: Guid, evaluatorId: string, format: string, isPublicView: boolean) {
|
||||
onEvaluatePlan(planId: Guid, evaluatorId: string, format: string, rankConfig: RankConfig ,isPublicView: boolean) {
|
||||
this.evaluatorService.rankPlan(planId, evaluatorId, format).subscribe(
|
||||
(response: RankModel) => {
|
||||
this.evaluatorService.getLogo(evaluatorId).subscribe(
|
||||
|
@ -354,6 +336,7 @@ export class PlanOverviewComponent extends BaseComponent implements OnInit {
|
|||
const dialogRef = this.dialog.open(PlanEvaluateDialogComponent, {
|
||||
data: {
|
||||
rankData: response,
|
||||
rankConfig: rankConfig
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -1,35 +1,29 @@
|
|||
<h1 mat-dialog-title>{{ 'PLAN-EVALUATE-DIALOG.HEADER' | translate }}</h1>
|
||||
<div mat-dialog-content>
|
||||
<mat-card>
|
||||
<mat-card-header>
|
||||
<mat-card-title>{{'PLAN-EVALUATE-DIALOG.DETAILS-SUB-HEADER' | translate}}</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<div *ngIf="data.rankData" class="dialog-content">
|
||||
<mat-form-field appearance="fill">
|
||||
<mat-label>{{'PLAN-EVALUATE-DIALOG.RANK-BODY' | translate}}</mat-label>
|
||||
<input matInput [value]="data.rankData.body.rank" disabled>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="fill">
|
||||
<mat-label>{{'PLAN-EVALUATE-DIALOG.DETAILS-BODY' | translate}}</mat-label>
|
||||
<textarea matInput [value]="data.rankData.body.details" rows="4" disabled></textarea>
|
||||
</mat-form-field>
|
||||
<h1 *ngIf="isSelectionRankType && selectionRankResult" mat-dialog-title>{{ 'PLAN-EVALUATE-DIALOG.HEADER' | translate }}: {{enumUtils.toSuccessStatusString(selectionRankResult)}}</h1>
|
||||
<div mat-dialog-content *ngIf="data?.rankData?.body?.details || data?.rankData?.body?.messages" >
|
||||
|
||||
<mat-card-content class="dialog-content">
|
||||
|
||||
<ng-container *ngIf="data.rankData.body.details" >
|
||||
<mat-card-header>
|
||||
<mat-card-title>{{'PLAN-EVALUATE-DIALOG.DETAILS-SUB-HEADER' | translate}}</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-form-field appearance="fill">
|
||||
<mat-label>{{'PLAN-EVALUATE-DIALOG.DETAILS-BODY' | translate}}</mat-label>
|
||||
<textarea matInput [value]="data.rankData.body.details" rows="4" disabled></textarea>
|
||||
</mat-form-field>
|
||||
</ng-container>
|
||||
|
||||
<div *ngIf="data.rankData.body.messages">
|
||||
<ng-container *ngIf="data.rankData.body.messages">
|
||||
<mat-card-header>
|
||||
<mat-card-title>{{'PLAN-EVALUATE-DIALOG.MESSAGES-BODY' | translate}}</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card>
|
||||
<mat-card-content>
|
||||
<ul>
|
||||
<li *ngFor="let entry of data.rankData.body.messages | keyvalue">
|
||||
<strong>{{ entry.key }}:</strong> {{ entry.value }}
|
||||
<li *ngFor="let entry of data.rankData.body.messages | keyvalue; let i=index;">
|
||||
<strong>{{ 'PLAN-EVALUATE-DIALOG.ERROR' | translate }} {{i+1}}:</strong> {{ entry.value }}
|
||||
</li>
|
||||
</ul>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
</div>
|
||||
</ng-container>
|
||||
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
|
||||
</div>
|
|
@ -1,6 +1,11 @@
|
|||
import { HttpResponse } from '@angular/common/http';
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { RankModel } from '@app/core/model/evaluator/evaluator-plan-model.model';
|
||||
import { SuccessStatus } from '@app/core/model/evaluator/evaluator-success-status.model';
|
||||
import { RankConfig } from '@app/core/model/evaluator/rank-config';
|
||||
import { RankType } from '@app/core/model/evaluator/rank-type';
|
||||
import { EnumUtils } from '@app/core/services/utilities/enum-utils.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-plan-evaluate-dialog',
|
||||
|
@ -11,6 +16,19 @@ export class PlanEvaluateDialogComponent {
|
|||
// Injecting the dialog data into the component
|
||||
constructor(
|
||||
public dialogRef: MatDialogRef<PlanEvaluateDialogComponent>,
|
||||
@Inject(MAT_DIALOG_DATA) public data: { rankData: RankModel },
|
||||
public enumUtils: EnumUtils,
|
||||
@Inject(MAT_DIALOG_DATA) public data: { rankData: HttpResponse<RankModel>, rankConfig: RankConfig},
|
||||
) { }
|
||||
|
||||
get isValueRangeRankType(): boolean{
|
||||
return this.data?.rankConfig?.rankType === RankType.ValueRange;
|
||||
}
|
||||
|
||||
get isSelectionRankType(): boolean{
|
||||
return this.data?.rankConfig?.rankType === RankType.Selection;
|
||||
}
|
||||
|
||||
get selectionRankResult(): SuccessStatus{
|
||||
return this.data?.rankConfig?.selectionConfiguration?.valueSetList?.find(x => x.key == this.data?.rankData?.body?.rank)?.successStatus || null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1966,15 +1966,16 @@
|
|||
"MESSAGE": "Somebody else is modifying the Plan at this moment. You may view the Plan but you cannot make any changes."
|
||||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG":{
|
||||
"HEADER": "Ranking Information",
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG":{
|
||||
"HEADER": "Ranking Information",
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
|
@ -2365,6 +2366,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1969,15 +1969,16 @@
|
|||
"MESSAGE": "Somebody else is modifying the Plan at this moment. You may view the Plan but you cannot make any changes."
|
||||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG":{
|
||||
"HEADER": "Ranking Information",
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG":{
|
||||
"HEADER": "Ranking Information",
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1969,15 +1969,16 @@
|
|||
"MESSAGE": "Somebody else is modifying the Plan at this moment. You may view the Plan but you cannot make any changes."
|
||||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG":{
|
||||
"HEADER": "Ranking Information",
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG":{
|
||||
"HEADER": "Ranking Information",
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
|
@ -1970,18 +1970,19 @@
|
|||
}
|
||||
},
|
||||
"PLAN-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages",
|
||||
"ERROR":"Error"
|
||||
},
|
||||
"DESCRIPTION-EVALUATE-DIALOG": {
|
||||
"HEADER": "Ranking Information",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
"HEADER": "Evaluation Result",
|
||||
"DETAILS-SUB-HEADER": "Details",
|
||||
"RANK-BODY": "Rank",
|
||||
"DETAILS-BODY": "Details",
|
||||
"MESSAGES-BODY": "Messages"
|
||||
},
|
||||
"REFERENCE-FIELD": {
|
||||
"COULD-NOT-FIND-MESSAGE": "Couldn't find it?",
|
||||
|
@ -2368,6 +2369,10 @@
|
|||
"USAGE-LIMIT-PERIODICITY-RANGE": {
|
||||
"MONTHLY": "Monthly",
|
||||
"YEARLY": "Yearly"
|
||||
},
|
||||
"EVALUATOR-SUCCESS-STATUS": {
|
||||
"FAIL": "Failed",
|
||||
"PASS": "Passed"
|
||||
}
|
||||
},
|
||||
"FOOTER": {
|
||||
|
|
Loading…
Reference in New Issue