Merge remote-tracking branch 'origin/Development' into Development

This commit is contained in:
George Kalampokis 2021-07-21 11:17:51 +03:00
commit 7ab5c56072
17 changed files with 259 additions and 66 deletions

View File

@ -1,4 +1,5 @@
export enum SaveType { export enum SaveType {
close = 0, close = 0,
addNew = 1 addNew = 1,
finalize = 2
} }

View File

@ -8,7 +8,8 @@ import { MatFormFieldControl } from '@angular/material/form-field';
import { AutoCompleteGroup } from '@app/library/auto-complete/auto-complete-group'; import { AutoCompleteGroup } from '@app/library/auto-complete/auto-complete-group';
import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration'; import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration';
import { BaseComponent } from '@common/base/base.component'; import { BaseComponent } from '@common/base/base.component';
import { Observable, of as observableOf, Subject } from 'rxjs'; import { isNullOrUndefined } from '@swimlane/ngx-datatable';
import { BehaviorSubject, combineLatest, Observable, of as observableOf, Subject, Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, takeUntil, switchMap } from 'rxjs/operators'; import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, takeUntil, switchMap } from 'rxjs/operators';
export class CustomComponentBase extends BaseComponent { export class CustomComponentBase extends BaseComponent {
@ -50,6 +51,11 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
id = `multiple-autocomplete-${MultipleAutoCompleteComponent.nextId++}`; id = `multiple-autocomplete-${MultipleAutoCompleteComponent.nextId++}`;
stateChanges = new Subject<void>(); stateChanges = new Subject<void>();
valueOnBlur = new BehaviorSubject<any>(null);
onSelectAutoCompleteValue = new BehaviorSubject<any>(null);
valueAssignSubscription: Subscription;
focused = false; focused = false;
controlType = 'multiple-autocomplete'; controlType = 'multiple-autocomplete';
describedBy = ''; describedBy = '';
@ -123,7 +129,36 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
} }
} }
ngOnInit() { } ngOnInit() {
this.valueAssignSubscription = combineLatest(this.valueOnBlur.asObservable(), this.onSelectAutoCompleteValue.asObservable())
.pipe(debounceTime(100))
.subscribe(latest =>{
const fromBlur = latest[0];
const fromAutoComplete = latest[1];
if(isNullOrUndefined(fromBlur) && isNullOrUndefined(fromAutoComplete)){
return;
}
//higher precedence
if(!isNullOrUndefined(fromAutoComplete)){
this.optionSelectedInternal(fromAutoComplete);
// consumed and flush
this.onSelectAutoCompleteValue.next(null);
this.valueOnBlur.next(null);
return;
}
if(!isNullOrUndefined(fromBlur)){
this.optionSelectedInternal(fromBlur);
// consumed and flush
this.onSelectAutoCompleteValue.next(null);
this.valueOnBlur.next(null);
return;
}
});
}
ngDoCheck(): void { ngDoCheck(): void {
if (this.ngControl) { if (this.ngControl) {
@ -178,7 +213,8 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
} }
_optionSelected(event: MatAutocompleteSelectedEvent) { _optionSelected(event: MatAutocompleteSelectedEvent) {
this.optionSelectedInternal(event.option.value); // this.optionSelectedInternal(event.option.value);
this.onSelectAutoCompleteValue.next(event.option.value);
this.autocompleteInput.nativeElement.value = ''; this.autocompleteInput.nativeElement.value = '';
} }
@ -235,7 +271,8 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
public onBlur($event: MouseEvent) { public onBlur($event: MouseEvent) {
if (this.inputValue && this.inputValue.length > 1 && this.autocomplete.options && this.autocomplete.options.length > 0 && this.autoSelectFirstOptionOnBlur) { if (this.inputValue && this.inputValue.length > 1 && this.autocomplete.options && this.autocomplete.options.length > 0 && this.autoSelectFirstOptionOnBlur) {
this.optionSelectedInternal(this.autocomplete.options.first.value); // this.optionSelectedInternal(this.autocomplete.options.first.value);
this.valueOnBlur.next(this.autocomplete.options.first.value);
} }
// Clear text if not an option // Clear text if not an option
@ -271,6 +308,10 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
ngOnDestroy() { ngOnDestroy() {
this.stateChanges.complete(); this.stateChanges.complete();
this.fm.stopMonitoring(this.elRef.nativeElement); this.fm.stopMonitoring(this.elRef.nativeElement);
if(this.valueAssignSubscription){
this.valueAssignSubscription.unsubscribe();
this.valueAssignSubscription = null;
}
} }
//Configuration getters //Configuration getters
@ -332,7 +373,8 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
const value = event.value; const value = event.value;
// Add our fruit // Add our fruit
if ((value || '').trim()) { if ((value || '').trim()) {
this.optionSelectedInternal(value); // this.optionSelectedInternal(value);
this.valueOnBlur.next(value);
} }
// Reset the input value // Reset the input value
if (input) { if (input) {

View File

@ -33,10 +33,21 @@
</button> </button>
</div> </div>
<div class="col-auto d-flex align-items-center"> <div class="col-auto d-flex align-items-center">
<button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" (click)="save()" type="button">{{ 'DATASET-WIZARD.ACTIONS.SAVE' | translate }}</button> <button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" type="button" (click)="save()">
{{ 'DATASET-WIZARD.ACTIONS.SAVE' | translate }}
<mat-icon (click)="$event.stopPropagation();" style="width: 14px;" [matMenuTriggerFor]="menu">expand_more</mat-icon>
</button>
<mat-menu #menu="matMenu">
<button mat-menu-item (click)="save(saveAnd.close)" type="button">{{ 'DATASET-WIZARD.ACTIONS.SAVE-AND-CLOSE' | translate }}</button>
<button mat-menu-item (click)="save(saveAnd.addNew)" type="button">{{ 'DATASET-WIZARD.ACTIONS.SAVE-AND-ADD' | translate }}</button>
</mat-menu>
<button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" type="button" (click)="saveFinalize()">{{ 'DATASET-WIZARD.ACTIONS.FINALIZE' | translate }}</button>
<!-- <button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" (click)="save()" type="button">{{ 'DATASET-WIZARD.ACTIONS.SAVE' | translate }}</button>
<button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" (click)="save(saveAnd.close)" type="button">{{ 'DATASET-WIZARD.ACTIONS.SAVE-AND-CLOSE' | translate }}</button> <button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" (click)="save(saveAnd.close)" type="button">{{ 'DATASET-WIZARD.ACTIONS.SAVE-AND-CLOSE' | translate }}</button>
<button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" (click)="save(saveAnd.addNew)">{{ 'DATASET-WIZARD.ACTIONS.SAVE-AND-ADD' | translate }}</button> <button *ngIf="!lockStatus && !viewOnly" mat-raised-button class="dataset-save-btn mr-2" (click)="save(saveAnd.addNew)">{{ 'DATASET-WIZARD.ACTIONS.SAVE-AND-ADD' | translate }}</button> -->
<button *ngIf="lockStatus" mat-raised-button disabled class="dataset-save-btn cursor-default" type="button">{{ 'DMP-OVERVIEW.LOCKED' | translate}}</button> <button *ngIf="lockStatus" mat-raised-button disabled class="dataset-save-btn cursor-default" type="button">{{ 'DMP-OVERVIEW.LOCKED' | translate}}</button>
<button *ngIf="hasReversableStatus() && !lockStatus" mat-raised-button class="dataset-save-btn mr-2" (click)="reverse()" type="button">{{ 'DATASET-WIZARD.ACTIONS.REVERSE' | translate }}</button>
<!-- <button *ngIf="!lockStatus" mat-raised-button class="dataset-save-btn mr-2" (click)="touchForm()" type="button">{{ 'DATASET-WIZARD.ACTIONS.VALIDATE' | translate }}</button> --> <!-- <button *ngIf="!lockStatus" mat-raised-button class="dataset-save-btn mr-2" (click)="touchForm()" type="button">{{ 'DATASET-WIZARD.ACTIONS.VALIDATE' | translate }}</button> -->
</div> </div>
</div> </div>

View File

@ -32,7 +32,7 @@ import { ConfirmationDialogComponent } from '@common/modules/confirmation-dialog
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver'; import * as FileSaver from 'file-saver';
import { Observable, of as observableOf, interval} from 'rxjs'; import { Observable, of as observableOf, interval} from 'rxjs';
import { catchError, debounceTime, map, takeUntil } from 'rxjs/operators'; import { catchError, debounceTime, filter, map, takeUntil } from 'rxjs/operators';
import { LockService } from '@app/core/services/lock/lock.service'; import { LockService } from '@app/core/services/lock/lock.service';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
import { LockModel } from '@app/core/model/lock/lock.model'; import { LockModel } from '@app/core/model/lock/lock.model';
@ -778,20 +778,47 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
} }
reverse() { reverse() {
this.viewOnly = false;
this.datasetWizardModel.status = DatasetStatus.Draft; this.dialog.open(ConfirmationDialogComponent, {
setTimeout(x => { this.formGroup = null; }); data:{
setTimeout(x => { message: this.language.instant('DATASET-WIZARD.ACTIONS.UNDO-FINALIZATION-QUESTION'),
this.formGroup = this.datasetWizardModel.buildForm(); confirmButton: this.language.instant('DATASET-WIZARD.ACTIONS.CONFIRM'),
this.registerFormListeners(); cancelButton: this.language.instant('DATASET-WIZARD.ACTIONS.REJECT'),
},
maxWidth: '30em'
})
.afterClosed()
.pipe(
filter(x=> x),
takeUntil(this._destroyed)
).subscribe( _ => {
this.viewOnly = false;
this.datasetWizardModel.status = DatasetStatus.Draft;
setTimeout(x => { this.formGroup = null; });
setTimeout(x => {
this.formGroup = this.datasetWizardModel.buildForm();
this.registerFormListeners();
});
}); });
} }
saveFinalize() { saveFinalize() {
this.formService.touchAllFormFields(this.formGroup); // this.formService.touchAllFormFields(this.formGroup);
if (!this.isFormValid()) {
this.showValidationErrorsDialog(); if (!this.isSemiFormValid(this.formGroup) || (this.table0fContents && this.table0fContents.hasVisibleInvalidFields())) {
// this.showValidationErrorsDialog();
this.dialog.open(FormValidationErrorsDialogComponent, {
data:{
errorMessages:[this.language.instant('DATASET-WIZARD.MESSAGES.MISSING-FIELDS')]
}
})
this.touchForm();
this.hintErrors = true;
return; return;
} }
const dialogRef = this.dialog.open(ConfirmationDialogComponent, { const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
@ -805,9 +832,9 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
}); });
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
if (result) { if (result) {
if (!this.isFormValid()) { return; } // if (!this.isFormValid()) { return; }
this.formGroup.get('status').setValue(DatasetStatus.Finalized); this.formGroup.get('status').setValue(DatasetStatus.Finalized);
this.submit(); this.submit(SaveType.finalize);
} }
}); });
} }
@ -819,10 +846,11 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
this.router.navigate(['/reload']).then(() => { this.router.navigate(['/datasets', 'new', this.formGroup.get('dmp').value.id]); }) this.router.navigate(['/reload']).then(() => { this.router.navigate(['/datasets', 'new', this.formGroup.get('dmp').value.id]); })
} else if (saveType === this.saveAnd.close) { } else if (saveType === this.saveAnd.close) {
this.router.navigate(['/reload']).then(() => { this.router.navigate(['/plans', 'edit', this.formGroup.get('dmp').value.id]); }); this.router.navigate(['/reload']).then(() => { this.router.navigate(['/plans', 'edit', this.formGroup.get('dmp').value.id]); });
} else if (saveType === SaveType.finalize) {
this.router.navigate(['/reload']).then(() => { this.router.navigate(['/datasets', 'edit', data.id]); });
} else { } else {
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data); this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft; this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft;
// setTimeout(() => { this.formGroup = null; }); // setTimeout(() => { this.formGroup = null; });
setTimeout(() => { setTimeout(() => {
this.formGroup.get('id').patchValue(data.id); this.formGroup.get('id').patchValue(data.id);

View File

@ -12,7 +12,7 @@ import { SnackBarNotificationLevel, UiNotificationService } from '@app/core/serv
import { ConfigurationService } from '@app/core/services/configuration/configuration.service'; import { ConfigurationService } from '@app/core/services/configuration/configuration.service';
import { Oauth2DialogService } from '@app/ui/misc/oauth2-dialog/service/oauth2-dialog.service'; import { Oauth2DialogService } from '@app/ui/misc/oauth2-dialog/service/oauth2-dialog.service';
import { UserService } from '@app/core/services/user/user.service'; import { UserService } from '@app/core/services/user/user.service';
import { takeUntil } from 'rxjs/operators'; import { filter, takeUntil } from 'rxjs/operators';
import { Principal } from '@app/core/model/auth/principal'; import { Principal } from '@app/core/model/auth/principal';
import { Role } from '@app/core/common/enum/role'; import { Role } from '@app/core/common/enum/role';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
@ -479,31 +479,54 @@ export class DatasetOverviewComponent extends BaseComponent implements OnInit {
// } // }
finalize(dataset: DatasetOverviewModel) { finalize(dataset: DatasetOverviewModel) {
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
restoreFocus: false,
this.dialog.open(ConfirmationDialogComponent, {
data: { data: {
message: this.language.instant('GENERAL.CONFIRMATION-DIALOG.FINALIZE-ITEM'), message: this.language.instant('DATASET-OVERVIEW.FINALISE-POPUP.MESSAGE'),
confirmButton: this.language.instant('QUICKWIZARD.SAVE-DIALOG.ACTIONS.AFFIRMATIVE'), confirmButton: this.language.instant('DATASET-OVERVIEW.FINALISE-POPUP.CONFIRM'),
cancelButton: this.language.instant('QUICKWIZARD.SAVE-DIALOG.ACTIONS.NEGATIVE'), cancelButton: this.language.instant('DATASET-OVERVIEW.FINALISE-POPUP.CANCEL'),
isDeleteConfirmation: false },
} maxWidth: '30em'
}); })
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { .afterClosed()
if (result) { .pipe(
this.datasetWizardService.getSingle(dataset.id) filter(x => x),
.pipe(takeUntil(this._destroyed)) takeUntil(this._destroyed)
.subscribe(data => { )
this.datasetWizardModel = data; .subscribe( _ =>{
this.datasetWizardModel.status = DatasetStatus.Finalized; this.router.navigate(['datasets','edit',dataset.id]);
this.datasetWizardService.createDataset(this.datasetWizardModel) })
.pipe(takeUntil(this._destroyed))
.subscribe(
data => this.onUpdateCallbackSuccess(),
error => this.onUpdateCallbackError(error)
);
}); // const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
} // restoreFocus: false,
}); // data: {
// message: this.language.instant('GENERAL.CONFIRMATION-DIALOG.FINALIZE-ITEM'),
// confirmButton: this.language.instant('QUICKWIZARD.SAVE-DIALOG.ACTIONS.AFFIRMATIVE'),
// cancelButton: this.language.instant('QUICKWIZARD.SAVE-DIALOG.ACTIONS.NEGATIVE'),
// isDeleteConfirmation: false
// }
// });
// dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
// if (result) {
// this.datasetWizardService.getSingle(dataset.id)
// .pipe(takeUntil(this._destroyed))
// .subscribe(data => {
// this.datasetWizardModel = data;
// this.datasetWizardModel.status = DatasetStatus.Finalized;
// this.datasetWizardService.createDataset(this.datasetWizardModel)
// .pipe(takeUntil(this._destroyed))
// .subscribe(
// data => this.onUpdateCallbackSuccess(),
// error => this.onUpdateCallbackError(error)
// );
// });
// }
// });
} }
hasReversableStatus(dataset: DatasetOverviewModel): boolean { hasReversableStatus(dataset: DatasetOverviewModel): boolean {

View File

@ -68,7 +68,8 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni
valueAssign: (item) => { valueAssign: (item) => {
const result = typeof(item) === 'string' ? item : item.email; const result = typeof(item) === 'string' ? item : item.email;
return result; return result;
} },
autoSelectFirstOptionOnBlur: true
}; };
add(event: MatChipInputEvent): void { add(event: MatChipInputEvent): void {

View File

@ -142,8 +142,11 @@ export class TableOfContentsInternal implements OnInit {
return entry.subEntries.some(_ => this.invalidChildsVisible(_)); return entry.subEntries.some(_ => this.invalidChildsVisible(_));
} }
if(entry.type === this.tocEntryTypeEnum.FieldSet){ if(entry.type === this.tocEntryTypeEnum.FieldSet){
const id = entry.form.get('id').value
if(!this.visibilityRulesService.checkElementVisibility(id)){
return false;
}
const fieldsArray = entry.form.get('fields') as FormArray; const fieldsArray = entry.form.get('fields') as FormArray;
const hasError = !fieldsArray.controls.every(field=>{//every invalid field should be invisible const hasError = !fieldsArray.controls.every(field=>{//every invalid field should be invisible
if(field.invalid){ if(field.invalid){
const id = field.get('id').value; const id = field.get('id').value;

View File

@ -27,7 +27,7 @@
<div *ngIf="tocentries" class="docs-toc-container"> <div *ngIf="tocentries" class="docs-toc-container">
<div class="scroll-container col-12 internal-table"> <div class="scroll-container col-12 internal-table">
<table-of-contents-internal [TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX" [tocentries]="tocentries" <table-of-contents-internal #internalTable [TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX" [tocentries]="tocentries"
[showErrors]="showErrors" [showErrors]="showErrors"
(entrySelected)="onToCentrySelected($event)" (entrySelected)="onToCentrySelected($event)"
[selected]="tocentrySelected" [selected]="tocentrySelected"

View File

@ -1,5 +1,5 @@
import { DOCUMENT } from '@angular/common'; import { DOCUMENT } from '@angular/common';
import { Component, EventEmitter, Inject, OnInit, Output, Input, OnChanges } from '@angular/core'; import { Component, EventEmitter, Inject, OnInit, Output, Input, OnChanges, ViewChild } from '@angular/core';
import { BaseComponent } from '@common/base/base.component'; import { BaseComponent } from '@common/base/base.component';
import { interval, Subject, Subscription } from 'rxjs'; import { interval, Subject, Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators'; import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
@ -9,6 +9,7 @@ import { ToCEntry, ToCEntryType } from '../dataset-description.component';
import { FormArray, FormGroup } from '@angular/forms'; import { FormArray, FormGroup } from '@angular/forms';
import { VisibilityRulesService } from '../visibility-rules/visibility-rules.service'; import { VisibilityRulesService } from '../visibility-rules/visibility-rules.service';
import { Rule } from '@app/core/model/dataset-profile-definition/rule'; import { Rule } from '@app/core/model/dataset-profile-definition/rule';
import { TableOfContentsInternal } from './table-of-contents-internal/table-of-contents-internal';
export interface Link { export interface Link {
/* id of the section*/ /* id of the section*/
@ -34,6 +35,9 @@ export interface Link {
}) })
export class TableOfContents extends BaseComponent implements OnInit, OnChanges { export class TableOfContents extends BaseComponent implements OnInit, OnChanges {
@ViewChild('internalTable', {static: false}) internalTable: TableOfContentsInternal;
@Input() links: Link[]; @Input() links: Link[];
container: string; container: string;
headerSelectors = '.toc-page-header, .toc-section-header, .toc-compositeField-header'; headerSelectors = '.toc-page-header, .toc-section-header, .toc-compositeField-header';
@ -489,6 +493,14 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
return fieldsets; return fieldsets;
} }
public hasVisibleInvalidFields():boolean {
if(!this.internalTable || !this.tocentries){
return false;
}
return this.tocentries.some(e => this.internalTable.invalidChildsVisible(e));
}
} }
export interface LinkToScroll { export interface LinkToScroll {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "DOCX herunterladen", "DOWNLOAD-DOCX": "DOCX herunterladen",
"COPY-DATASET": "Datensatzbeschreibung kopieren", "COPY-DATASET": "Datensatzbeschreibung kopieren",
"UPDATE-DATASET-PROFILE": "Vorlage aktualisieren", "UPDATE-DATASET-PROFILE": "Vorlage aktualisieren",
"VALIDATE":"Validate" "VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Datensatzbeschreibung ist nicht vorhanden", "DATASET-NOT-FOUND": "Datensatzbeschreibung ist nicht vorhanden",
"DATASET-NOT-ALLOWED": "Sie haben keinen Zugriff auf diese Datensatzbeschreibung", "DATASET-NOT-ALLOWED": "Sie haben keinen Zugriff auf diese Datensatzbeschreibung",
"SUCCESS-UPDATE-DATASET-PROFILE": "Vorlage der Datensatzbeschreibung erfolgreich aktualisiert" "SUCCESS-UPDATE-DATASET-PROFILE": "Vorlage der Datensatzbeschreibung erfolgreich aktualisiert",
"MISSING-FIELDS": "There are some required fields left unfilled. Please check the form and make sure that all required fields are filled. (Missing fields are marked in red color)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Importieren", "UPLOAD-XML": "Importieren",
@ -770,6 +774,11 @@
"LOCKED":{ "LOCKED":{
"TITLE": "Dataset is locked", "TITLE": "Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancel"
} }
}, },
"DATASET-LISTING": { "DATASET-LISTING": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Download DOCX", "DOWNLOAD-DOCX": "Download DOCX",
"COPY-DATASET": "Copy Dataset", "COPY-DATASET": "Copy Dataset",
"UPDATE-DATASET-PROFILE": "Update Template", "UPDATE-DATASET-PROFILE": "Update Template",
"VALIDATE":"Validate" "VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Dataset does not exist", "DATASET-NOT-FOUND": "Dataset does not exist",
"DATASET-NOT-ALLOWED": "You have no access to this Dataset", "DATASET-NOT-ALLOWED": "You have no access to this Dataset",
"SUCCESS-UPDATE-DATASET-PROFILE": "Dataset Template updated successfully" "SUCCESS-UPDATE-DATASET-PROFILE": "Dataset Template updated successfully",
"MISSING-FIELDS": "There are some required fields left unfilled. Please check the form and make sure that all required fields are filled. (Missing fields are marked in red color)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Import", "UPLOAD-XML": "Import",
@ -770,6 +774,11 @@
"LOCKED":{ "LOCKED":{
"TITLE": "Dataset is locked", "TITLE": "Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancel"
} }
}, },
"DATASET-LISTING": { "DATASET-LISTING": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Descargar DOCX", "DOWNLOAD-DOCX": "Descargar DOCX",
"COPY-DATASET": "Copiar la descripción del dataset", "COPY-DATASET": "Copiar la descripción del dataset",
"UPDATE-DATASET-PROFILE": "Plantilla de modificación", "UPDATE-DATASET-PROFILE": "Plantilla de modificación",
"VALIDATE":"Validate" "VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "No existe la descripción del dataset", "DATASET-NOT-FOUND": "No existe la descripción del dataset",
"DATASET-NOT-ALLOWED": "No tiene acceso a la descricipción de este dataset", "DATASET-NOT-ALLOWED": "No tiene acceso a la descricipción de este dataset",
"SUCCESS-UPDATE-DATASET-PROFILE": "Plantilla de descripción del dataset actualizada correctamente" "SUCCESS-UPDATE-DATASET-PROFILE": "Plantilla de descripción del dataset actualizada correctamente",
"MISSING-FIELDS": "There are some required fields left unfilled. Please check the form and make sure that all required fields are filled. (Missing fields are marked in red color)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Importar", "UPLOAD-XML": "Importar",
@ -770,6 +774,11 @@
"LOCKED":{ "LOCKED":{
"TITLE": "Dataset is locked", "TITLE": "Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancel"
} }
}, },
"DATASET-LISTING": { "DATASET-LISTING": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Ληψη DOCX", "DOWNLOAD-DOCX": "Ληψη DOCX",
"COPY-DATASET": "Αντιφραφή Περιγραφής Συνόλου Δεδομένων", "COPY-DATASET": "Αντιφραφή Περιγραφής Συνόλου Δεδομένων",
"UPDATE-DATASET-PROFILE": "Ενημέρωση Template", "UPDATE-DATASET-PROFILE": "Ενημέρωση Template",
"VALIDATE":"Επικύρωση" "VALIDATE":"Επικύρωση",
"UNDO-FINALIZATION-QUESTION" :"Αναίρεση Οριστικοποίησης?",
"CONFIRM" : "Ναι",
"REJECT": "Oχι"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Η Περιγραφή Συνόλου Δεδομένων δεν υπάρχει", "DATASET-NOT-FOUND": "Η Περιγραφή Συνόλου Δεδομένων δεν υπάρχει",
"DATASET-NOT-ALLOWED": "Δεν έχετε πρόσβαση σε αυτή την Περιγραφή Συνόλου Δεδομένων", "DATASET-NOT-ALLOWED": "Δεν έχετε πρόσβαση σε αυτή την Περιγραφή Συνόλου Δεδομένων",
"SUCCESS-UPDATE-DATASET-PROFILE": "Επιτυχία ενημέρωσης της Περιγραφής Συνόλου Δεδομένων" "SUCCESS-UPDATE-DATASET-PROFILE": "Επιτυχία ενημέρωσης της Περιγραφής Συνόλου Δεδομένων",
"MISSING-FIELDS": "Υπάρχουν ορισμένα υποχρεωτικά πεδία που δεν έχουν συμπληρωθεί. Ελέγξτε τη φόρμα και βεβαιωθείτε ότι έχουν συμπληρωθεί όλα τα απαιτούμενα πεδία. (Τα πεδία που λείπουν επισημαίνονται με κόκκινο χρώμα)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Εισαγωγή", "UPLOAD-XML": "Εισαγωγή",
@ -770,6 +774,11 @@
"LOCKED":{ "LOCKED":{
"TITLE": "Dataset is locked", "TITLE": "Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancel"
} }
}, },
"DATASET-LISTING": { "DATASET-LISTING": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Exportar para DOCX", "DOWNLOAD-DOCX": "Exportar para DOCX",
"COPY-DATASET": "Copiar o Dataset", "COPY-DATASET": "Copiar o Dataset",
"UPDATE-DATASET-PROFILE": "Atualizar o Modelo", "UPDATE-DATASET-PROFILE": "Atualizar o Modelo",
"VALIDATE":"Validate" "VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Desfazer a finalização??",
"CONFIRM" : "Sim",
"REJECT": "Não"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "O Dataset não existe", "DATASET-NOT-FOUND": "O Dataset não existe",
"DATASET-NOT-ALLOWED": "Não tem acesso a este Dataset", "DATASET-NOT-ALLOWED": "Não tem acesso a este Dataset",
"SUCCESS-UPDATE-DATASET-PROFILE": "O Dataset foi atualizado com sucesso" "SUCCESS-UPDATE-DATASET-PROFILE": "O Dataset foi atualizado com sucesso",
"MISSING-FIELDS": "Alguns campos obrigatórios não foram preenchidos. Por favor, verifique o formulário e certifique-se de que todos os campos obrigatórios foram preenchidos. (Os campos ausentes são marcados em vermelho)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Importar", "UPLOAD-XML": "Importar",
@ -729,6 +733,11 @@
"LOCKED":{ "LOCKED":{
"TITLE":"Dataset is locked", "TITLE":"Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. You may view the dataset but you cannot make any changes. If you would like to modify it please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. You may view the dataset but you cannot make any changes. If you would like to modify it please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancelar"
} }
}, },
"DMP-OVERVIEW": { "DMP-OVERVIEW": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Stiahnuť DOCX", "DOWNLOAD-DOCX": "Stiahnuť DOCX",
"COPY-DATASET": "Kopírovať súbor dát", "COPY-DATASET": "Kopírovať súbor dát",
"UPDATE-DATASET-PROFILE": "Aktualizovať šablónu", "UPDATE-DATASET-PROFILE": "Aktualizovať šablónu",
"VALIDATE":"Validate" "VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Súbor dát neexistuje", "DATASET-NOT-FOUND": "Súbor dát neexistuje",
"DATASET-NOT-ALLOWED": "K tomuto súboru dát nemáte prístup", "DATASET-NOT-ALLOWED": "K tomuto súboru dát nemáte prístup",
"SUCCESS-UPDATE-DATASET-PROFILE": "Šablóna súboru dát bola úspešne aktualizovaná" "SUCCESS-UPDATE-DATASET-PROFILE": "Šablóna súboru dát bola úspešne aktualizovaná",
"MISSING-FIELDS": "There are some required fields left unfilled. Please check the form and make sure that all required fields are filled. (Missing fields are marked in red color)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Importovať", "UPLOAD-XML": "Importovať",
@ -770,6 +774,11 @@
"LOCKED":{ "LOCKED":{
"TITLE": "Dataset is locked", "TITLE": "Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancel"
} }
}, },
"DATASET-LISTING": { "DATASET-LISTING": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Preuzmite DOCX", "DOWNLOAD-DOCX": "Preuzmite DOCX",
"COPY-DATASET": "Kopirajte skup podataka", "COPY-DATASET": "Kopirajte skup podataka",
"UPDATE-DATASET-PROFILE": "Ažurirajte obrazac", "UPDATE-DATASET-PROFILE": "Ažurirajte obrazac",
"VALIDATE":"Validate" "VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Skup podataka ne postoji", "DATASET-NOT-FOUND": "Skup podataka ne postoji",
"DATASET-NOT-ALLOWED": "Nemate pristup ovom skupu podataka", "DATASET-NOT-ALLOWED": "Nemate pristup ovom skupu podataka",
"SUCCESS-UPDATE-DATASET-PROFILE": "Obrazac skupa podataka je ažuriran uspešno" "SUCCESS-UPDATE-DATASET-PROFILE": "Obrazac skupa podataka je ažuriran uspešno",
"MISSING-FIELDS": "There are some required fields left unfilled. Please check the form and make sure that all required fields are filled. (Missing fields are marked in red color)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Uvezite", "UPLOAD-XML": "Uvezite",
@ -770,6 +774,11 @@
"LOCKED":{ "LOCKED":{
"TITLE": "Dataset is locked", "TITLE": "Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancel"
} }
}, },
"DATASET-LISTING": { "DATASET-LISTING": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "DOCX İndir", "DOWNLOAD-DOCX": "DOCX İndir",
"COPY-DATASET": "Veri Seti Tanımını Kopyala", "COPY-DATASET": "Veri Seti Tanımını Kopyala",
"UPDATE-DATASET-PROFILE": "Şablonu Güncelle", "UPDATE-DATASET-PROFILE": "Şablonu Güncelle",
"VALIDATE":"Validate" "VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Veri Seti mevcut değildir", "DATASET-NOT-FOUND": "Veri Seti mevcut değildir",
"DATASET-NOT-ALLOWED": "Bu Veri Setine erişiminiz yok", "DATASET-NOT-ALLOWED": "Bu Veri Setine erişiminiz yok",
"SUCCESS-UPDATE-DATASET-PROFILE": "Veri Seti Tanımı başarılı olarak güncellendi" "SUCCESS-UPDATE-DATASET-PROFILE": "Veri Seti Tanımı başarılı olarak güncellendi",
"MISSING-FIELDS": "There are some required fields left unfilled. Please check the form and make sure that all required fields are filled. (Missing fields are marked in red color)"
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "İçeri Aktar", "UPLOAD-XML": "İçeri Aktar",
@ -770,6 +774,11 @@
"LOCKED":{ "LOCKED":{
"TITLE": "Dataset is locked", "TITLE": "Dataset is locked",
"MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later." "MESSAGE": "Somebody else is modifying the dataset at this moment. If you would like to modify or view it, please come back later."
},
"FINALISE-POPUP":{
"MESSAGE":"You will be directed to Dataset Editor where you can finalize the selected dataset. Would you like to proceed?",
"CONFIRM":"OK",
"CANCEL":"Cancel"
} }
}, },
"DATASET-LISTING": { "DATASET-LISTING": {