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 {
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 { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration';
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';
export class CustomComponentBase extends BaseComponent {
@ -50,6 +51,11 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
id = `multiple-autocomplete-${MultipleAutoCompleteComponent.nextId++}`;
stateChanges = new Subject<void>();
valueOnBlur = new BehaviorSubject<any>(null);
onSelectAutoCompleteValue = new BehaviorSubject<any>(null);
valueAssignSubscription: Subscription;
focused = false;
controlType = 'multiple-autocomplete';
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 {
if (this.ngControl) {
@ -178,7 +213,8 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
}
_optionSelected(event: MatAutocompleteSelectedEvent) {
this.optionSelectedInternal(event.option.value);
// this.optionSelectedInternal(event.option.value);
this.onSelectAutoCompleteValue.next(event.option.value);
this.autocompleteInput.nativeElement.value = '';
}
@ -235,7 +271,8 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
public onBlur($event: MouseEvent) {
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
@ -271,6 +308,10 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
ngOnDestroy() {
this.stateChanges.complete();
this.fm.stopMonitoring(this.elRef.nativeElement);
if(this.valueAssignSubscription){
this.valueAssignSubscription.unsubscribe();
this.valueAssignSubscription = null;
}
}
//Configuration getters
@ -332,7 +373,8 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
const value = event.value;
// Add our fruit
if ((value || '').trim()) {
this.optionSelectedInternal(value);
// this.optionSelectedInternal(value);
this.valueOnBlur.next(value);
}
// Reset the input value
if (input) {

View File

@ -33,10 +33,21 @@
</button>
</div>
<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.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="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> -->
</div>
</div>

View File

@ -32,7 +32,7 @@ import { ConfirmationDialogComponent } from '@common/modules/confirmation-dialog
import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver';
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 { Location } from '@angular/common';
import { LockModel } from '@app/core/model/lock/lock.model';
@ -778,20 +778,47 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
}
reverse() {
this.viewOnly = false;
this.datasetWizardModel.status = DatasetStatus.Draft;
setTimeout(x => { this.formGroup = null; });
setTimeout(x => {
this.formGroup = this.datasetWizardModel.buildForm();
this.registerFormListeners();
this.dialog.open(ConfirmationDialogComponent, {
data:{
message: this.language.instant('DATASET-WIZARD.ACTIONS.UNDO-FINALIZATION-QUESTION'),
confirmButton: this.language.instant('DATASET-WIZARD.ACTIONS.CONFIRM'),
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() {
this.formService.touchAllFormFields(this.formGroup);
if (!this.isFormValid()) {
this.showValidationErrorsDialog();
// this.formService.touchAllFormFields(this.formGroup);
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;
}
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
@ -805,9 +832,9 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
});
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
if (result) {
if (!this.isFormValid()) { return; }
// if (!this.isFormValid()) { return; }
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]); })
} else if (saveType === this.saveAnd.close) {
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 {
this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft;
// setTimeout(() => { this.formGroup = null; });
setTimeout(() => {
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 { Oauth2DialogService } from '@app/ui/misc/oauth2-dialog/service/oauth2-dialog.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 { Role } from '@app/core/common/enum/role';
import { Location } from '@angular/common';
@ -479,31 +479,54 @@ export class DatasetOverviewComponent extends BaseComponent implements OnInit {
// }
finalize(dataset: DatasetOverviewModel) {
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
restoreFocus: false,
this.dialog.open(ConfirmationDialogComponent, {
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)
);
});
}
});
message: this.language.instant('DATASET-OVERVIEW.FINALISE-POPUP.MESSAGE'),
confirmButton: this.language.instant('DATASET-OVERVIEW.FINALISE-POPUP.CONFIRM'),
cancelButton: this.language.instant('DATASET-OVERVIEW.FINALISE-POPUP.CANCEL'),
},
maxWidth: '30em'
})
.afterClosed()
.pipe(
filter(x => x),
takeUntil(this._destroyed)
)
.subscribe( _ =>{
this.router.navigate(['datasets','edit',dataset.id]);
})
// 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 {

View File

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

View File

@ -142,8 +142,11 @@ export class TableOfContentsInternal implements OnInit {
return entry.subEntries.some(_ => this.invalidChildsVisible(_));
}
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 hasError = !fieldsArray.controls.every(field=>{//every invalid field should be invisible
if(field.invalid){
const id = field.get('id').value;

View File

@ -27,7 +27,7 @@
<div *ngIf="tocentries" class="docs-toc-container">
<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"
(entrySelected)="onToCentrySelected($event)"
[selected]="tocentrySelected"

View File

@ -1,5 +1,5 @@
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 { interval, Subject, Subscription } from 'rxjs';
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 { VisibilityRulesService } from '../visibility-rules/visibility-rules.service';
import { Rule } from '@app/core/model/dataset-profile-definition/rule';
import { TableOfContentsInternal } from './table-of-contents-internal/table-of-contents-internal';
export interface Link {
/* id of the section*/
@ -34,6 +35,9 @@ export interface Link {
})
export class TableOfContents extends BaseComponent implements OnInit, OnChanges {
@ViewChild('internalTable', {static: false}) internalTable: TableOfContentsInternal;
@Input() links: Link[];
container: string;
headerSelectors = '.toc-page-header, .toc-section-header, .toc-compositeField-header';
@ -489,6 +493,14 @@ export class TableOfContents extends BaseComponent implements OnInit, OnChanges
return fieldsets;
}
public hasVisibleInvalidFields():boolean {
if(!this.internalTable || !this.tocentries){
return false;
}
return this.tocentries.some(e => this.internalTable.invalidChildsVisible(e));
}
}
export interface LinkToScroll {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "DOCX herunterladen",
"COPY-DATASET": "Datensatzbeschreibung kopieren",
"UPDATE-DATASET-PROFILE": "Vorlage aktualisieren",
"VALIDATE":"Validate"
"VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Datensatzbeschreibung ist nicht vorhanden",
"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-XML": "Importieren",
@ -770,6 +774,11 @@
"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."
},
"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": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Download DOCX",
"COPY-DATASET": "Copy Dataset",
"UPDATE-DATASET-PROFILE": "Update Template",
"VALIDATE":"Validate"
"VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Dataset does not exist",
"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-XML": "Import",
@ -770,6 +774,11 @@
"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."
},
"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": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Descargar DOCX",
"COPY-DATASET": "Copiar la descripción del dataset",
"UPDATE-DATASET-PROFILE": "Plantilla de modificación",
"VALIDATE":"Validate"
"VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "No existe la descripción del 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-XML": "Importar",
@ -770,6 +774,11 @@
"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."
},
"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": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Ληψη DOCX",
"COPY-DATASET": "Αντιφραφή Περιγραφής Συνόλου Δεδομένων",
"UPDATE-DATASET-PROFILE": "Ενημέρωση Template",
"VALIDATE":"Επικύρωση"
"VALIDATE":"Επικύρωση",
"UNDO-FINALIZATION-QUESTION" :"Αναίρεση Οριστικοποίησης?",
"CONFIRM" : "Ναι",
"REJECT": "Oχι"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Η Περιγραφή Συνόλου Δεδομένων δεν υπάρχει",
"DATASET-NOT-ALLOWED": "Δεν έχετε πρόσβαση σε αυτή την Περιγραφή Συνόλου Δεδομένων",
"SUCCESS-UPDATE-DATASET-PROFILE": "Επιτυχία ενημέρωσης της Περιγραφής Συνόλου Δεδομένων"
"SUCCESS-UPDATE-DATASET-PROFILE": "Επιτυχία ενημέρωσης της Περιγραφής Συνόλου Δεδομένων",
"MISSING-FIELDS": "Υπάρχουν ορισμένα υποχρεωτικά πεδία που δεν έχουν συμπληρωθεί. Ελέγξτε τη φόρμα και βεβαιωθείτε ότι έχουν συμπληρωθεί όλα τα απαιτούμενα πεδία. (Τα πεδία που λείπουν επισημαίνονται με κόκκινο χρώμα)"
},
"UPLOAD": {
"UPLOAD-XML": "Εισαγωγή",
@ -770,6 +774,11 @@
"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."
},
"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": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Exportar para DOCX",
"COPY-DATASET": "Copiar o Dataset",
"UPDATE-DATASET-PROFILE": "Atualizar o Modelo",
"VALIDATE":"Validate"
"VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Desfazer a finalização??",
"CONFIRM" : "Sim",
"REJECT": "Não"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "O Dataset não existe",
"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-XML": "Importar",
@ -729,6 +733,11 @@
"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."
},
"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": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Stiahnuť DOCX",
"COPY-DATASET": "Kopírovať súbor dát",
"UPDATE-DATASET-PROFILE": "Aktualizovať šablónu",
"VALIDATE":"Validate"
"VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Súbor dát neexistuje",
"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-XML": "Importovať",
@ -770,6 +774,11 @@
"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."
},
"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": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "Preuzmite DOCX",
"COPY-DATASET": "Kopirajte skup podataka",
"UPDATE-DATASET-PROFILE": "Ažurirajte obrazac",
"VALIDATE":"Validate"
"VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Skup podataka ne postoji",
"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-XML": "Uvezite",
@ -770,6 +774,11 @@
"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."
},
"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": {

View File

@ -702,12 +702,16 @@
"DOWNLOAD-DOCX": "DOCX İndir",
"COPY-DATASET": "Veri Seti Tanımını Kopyala",
"UPDATE-DATASET-PROFILE": "Şablonu Güncelle",
"VALIDATE":"Validate"
"VALIDATE":"Validate",
"UNDO-FINALIZATION-QUESTION" :"Undo finalization?",
"CONFIRM" : "Yes",
"REJECT": "No"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Veri Seti mevcut değildir",
"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-XML": "İçeri Aktar",
@ -770,6 +774,11 @@
"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."
},
"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": {