Merge branch 'Development'

This commit is contained in:
Diamantis Tziotzios 2021-06-25 08:50:27 +03:00
commit c16c35225f
48 changed files with 1572 additions and 1429 deletions

View File

@ -24,11 +24,11 @@ public class ResearcherDaoImpl extends DatabaseAccess<Researcher> implements Res
public QueryableList<Researcher> getWithCriteria(ResearcherCriteria criteria) {
QueryableList<Researcher> query = asQueryable();
if (criteria.getLike() != null && !criteria.getLike().isEmpty())
query.where((builder, root) ->builder.or(builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%")));
query.where((builder, root) ->builder.or(builder.like(builder.lower(root.get("reference")), "%" + criteria.getLike().toLowerCase() + "%")));
if (criteria.getName() != null && !criteria.getName().isEmpty())
query.where((builder, root) ->builder.or(builder.like(builder.upper(root.get("label")), "%" + criteria.getName().toUpperCase() + "%")));
query.where((builder, root) ->builder.or(builder.like(builder.lower(root.get("label")), "%" + criteria.getName().toLowerCase() + "%")));
if (criteria.getReference() != null && !criteria.getReference().isEmpty())
query.where((builder, root) ->builder.or(builder.like(builder.upper(root.get("reference")), criteria.getReference().toUpperCase())));
query.where((builder, root) ->builder.or(builder.like(root.get("reference"), criteria.getReference())));
return query;
}

View File

@ -13,7 +13,7 @@ import java.util.UUID;
*/
@Entity
@Table(name = "\"Content\"")
public class Content implements DataEntity<Content, UUID> {
public class Content implements DataEntity<Content, UUID> { //IGNORE ME
public enum ParentType {
GRANT(0);

View File

@ -673,7 +673,7 @@ public class DataManagementPlanManager {
if (newDmp.getResearchers() != null && !newDmp.getResearchers().isEmpty()) {
for (eu.eudat.data.entities.Researcher researcher : newDmp.getResearchers()) {
ResearcherCriteria criteria = new ResearcherCriteria();
criteria.setLike(researcher.getReference());
criteria.setReference(researcher.getReference());
List<eu.eudat.data.entities.Researcher> entries = researcherRepository.getWithCriteria(criteria).toList();
if (entries != null && !entries.isEmpty()) researcher.setId(entries.get(0).getId());
else {

View File

@ -673,9 +673,18 @@ public class DatasetManager {
datasetProfileValidators.add(node.getNodeValue());
}
JSONObject obj = new JSONObject(dataset.getProperties());
VisibilityRuleService visibilityRuleService = this.apiContext.getUtilitiesService().getVisibilityRuleService();
visibilityRuleService.setProperties(obj.toMap());
dataset.setProfile(profile);
PagedDatasetProfile pagedDatasetProfile = this.getPagedProfile(new DatasetWizardModel(), dataset);
visibilityRuleService.buildVisibilityContext(pagedDatasetProfile.getRules());
for (String validator : datasetProfileValidators) {
if (obj.getString(validator) == null || obj.getString(validator).trim().isEmpty()) {
if ((obj.getString(validator) == null || obj.getString(validator).trim().isEmpty()) && visibilityRuleService.isElementVisible(validator)) {
throw new Exception("Field value of " + validator + " must be filled.");
}
}

View File

@ -83,7 +83,7 @@ public class InvitationsManager {
eu.eudat.data.entities.Invitation invitation = apiContext.getOperationsContext().getDatabaseRepository().getInvitationDao().find(invitationID);
if (invitation == null)
throw new UnauthorisedException("There is no Data Management Plan assigned to this Link");
if (invitation.getAcceptedInvitation()) throw new UnauthorisedException("This Url Has Expired");
if (invitation.getAcceptedInvitation()) return invitation.getDmp().getId(); //throw new UnauthorisedException("This Url Has Expired");
JAXBContext context = JAXBContext.newInstance(Properties.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Properties properties = (Properties) unmarshaller.unmarshal(new StringReader(invitation.getProperties()));

View File

@ -110,7 +110,7 @@ public class MetricsManager {
calculateValue("argos_managed_dataset_descriptions", (int) datasetManager.countAllPublic(), "published");
calculateValue("argos_managed_dataset_descriptions", (int) datasetManager.countAllWithDoi(), "doied");
calculateValue("argos_dataset_templates", (int) datasetProfileManager.countAlldraft(), "total");
calculateValue("argos_dataset_templates", (int) datasetProfileManager.countAlldraft(), "draft");
calculateValue("argos_dataset_templates", (int) datasetProfileManager.countAllFinalized(), "active");
calculateValue("argos_dataset_templates", (int) datasetProfileManager.countAllUsed(), "used");

View File

@ -49,6 +49,7 @@ public class ResearcherManager {
QueryableList<eu.eudat.data.entities.Researcher> items = apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao().getWithCriteria(researcherCriteriaRequest.getCriteria());
items.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), principal.getId()));
List<eu.eudat.models.data.dmp.Researcher> researchers = items.select(item -> new eu.eudat.models.data.dmp.Researcher().fromDataModel(item));
researchers = researchers.stream().filter(item -> item.getKey().equals("Internal")).collect(Collectors.toList());
Map<String, String> keyToSourceMap = configLoader.getKeyToSourceMap();
for (eu.eudat.models.data.dmp.Researcher item : researchers) {
if (item.getKey().equals("Internal"))

View File

@ -135,34 +135,35 @@ public class WordBuilder {
private void createPages(List<DatasetProfilePage> datasetProfilePages, XWPFDocument mainDocumentPart, Boolean createListing, VisibilityRuleService visibilityRuleService) {
datasetProfilePages.forEach(item -> {
try {
createSections(item.getSections(), mainDocumentPart, ParagraphStyle.HEADER4, 0, createListing, visibilityRuleService);
createSections(item.getSections(), mainDocumentPart, ParagraphStyle.HEADER4, 0, createListing, visibilityRuleService, item.getOrdinal() + 1, null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
});
}
private void createSections(List<Section> sections, XWPFDocument mainDocumentPart, ParagraphStyle style, Integer indent, Boolean createListing, VisibilityRuleService visibilityRuleService) {
private void createSections(List<Section> sections, XWPFDocument mainDocumentPart, ParagraphStyle style, Integer indent, Boolean createListing, VisibilityRuleService visibilityRuleService, Integer page, String sectionString) {
if (createListing) this.addListing(mainDocumentPart, indent, false, true);
sections.forEach(section -> {
String tempSectionString = sectionString != null ? sectionString + "." + (section.getOrdinal() + 1) : "" + (section.getOrdinal() + 1);
if (visibilityRuleService.isElementVisible(section.getId())) {
if (!createListing) {
XWPFParagraph paragraph = addParagraphContent(section.getNumbering() + " " + section.getTitle(), mainDocumentPart, style, numId);
XWPFParagraph paragraph = addParagraphContent(page + "." + tempSectionString + " " + section.getTitle(), mainDocumentPart, style, numId);
CTDecimalNumber number = paragraph.getCTP().getPPr().getNumPr().addNewIlvl();
number.setVal(BigInteger.valueOf(indent));
}
createSections(section.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, 1, createListing, visibilityRuleService);
createCompositeFields(section.getCompositeFields(), mainDocumentPart, 2, createListing, visibilityRuleService);
createSections(section.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, 1, createListing, visibilityRuleService, page, tempSectionString);
createCompositeFields(section.getCompositeFields(), mainDocumentPart, 2, createListing, visibilityRuleService, page, tempSectionString);
}
});
}
private void createCompositeFields(List<FieldSet> compositeFields, XWPFDocument mainDocumentPart, Integer indent, Boolean createListing, VisibilityRuleService visibilityRuleService) {
private void createCompositeFields(List<FieldSet> compositeFields, XWPFDocument mainDocumentPart, Integer indent, Boolean createListing, VisibilityRuleService visibilityRuleService, Integer page, String section) {
if (createListing) this.addListing(mainDocumentPart, indent, true, true);
compositeFields.forEach(compositeField -> {
if (visibilityRuleService.isElementVisible(compositeField.getId()) && hasVisibleFields(compositeField, visibilityRuleService)) {
if (compositeField.getTitle() != null && !compositeField.getTitle().isEmpty() && !createListing) {
XWPFParagraph paragraph = addParagraphContent(compositeField.getNumbering() + " " + compositeField.getTitle(), mainDocumentPart, ParagraphStyle.HEADER6, numId);
XWPFParagraph paragraph = addParagraphContent(page + "." + section + "." + (compositeField.getOrdinal() +1) + " " + compositeField.getTitle(), mainDocumentPart, ParagraphStyle.HEADER6, numId);
CTDecimalNumber number = paragraph.getCTP().getPPr().getNumPr().addNewIlvl();
number.setVal(BigInteger.valueOf(indent));
}

View File

@ -3,6 +3,8 @@ package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileM
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.LinkedList;
import java.util.List;
@XmlRootElement(name = "section")
public class Section {
@ -15,6 +17,7 @@ public class Section {
private String description;
private String extendedDescription;
private String title;
private List<Section> section;
@XmlAttribute(name = "id")
public String getId() {
@ -99,6 +102,13 @@ public class Section {
public eu.eudat.models.data.admin.components.datasetprofile.Section toAdminCompositeModelSection() {
eu.eudat.models.data.admin.components.datasetprofile.Section sectionEntity = new eu.eudat.models.data.admin.components.datasetprofile.Section();
List<eu.eudat.models.data.admin.components.datasetprofile.Section> sectionsListEntity = new LinkedList<>();
if (this.section != null) {
for (Section xmlsection : this.section) {
sectionsListEntity.add(xmlsection.toAdminCompositeModelSection());
}
}
sectionEntity.setId(this.id);
sectionEntity.setOrdinal(this.ordinal);
sectionEntity.setTitle(this.title);
@ -110,7 +120,18 @@ public class Section {
// fieldSetsEntity.add(xmpFieldSets.toAdminCompositeModelSection());
// }
sectionEntity.setFieldSets(this.fieldSets.toAdminCompositeModelSection());
sectionEntity.setSections(sectionsListEntity);
sectionEntity.setDefaultVisibility(this.defaultVisibility);
return sectionEntity;
}
@XmlElement(name = "section")
public List<Section> getSection() {
return section;
}
public void setSection(List<Section> section) {
this.section = section;
}
}

View File

@ -94,10 +94,12 @@ public class Researcher implements DataModel<eu.eudat.data.entities.Researcher,
researcher.setId(UUID.fromString(this.id));
if (this.key != null) {
if (this.key.toLowerCase().equals("internal")) {
if (this.reference != null) {
if (this.reference != null && !this.reference.startsWith("dmp:")) {
researcher.setReference("dmp:" + this.reference);
} else {
} else if (this.reference == null) {
researcher.setReference("dmp:" + this.id);
} else {
researcher.setReference(this.reference);
}
} else {
if ((this.key + ":").equals(this.reference.substring(0, this.key.length() + 1))) {

View File

@ -17,6 +17,7 @@ import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@ -239,6 +240,18 @@ public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefin
} catch (JsonProcessingException e) {
logger.error(e.getMessage(), e);
}
} else if (this.value instanceof Collection) {
Collection valueCollection = (Collection) this.value;
StringBuilder valueBuilder = new StringBuilder();
valueBuilder.append("[");
for (int i = 0; i < valueCollection.size(); i++) {
valueBuilder.append("\"").append(valueCollection.toArray()[i]).append("\"");
if (i < valueCollection.size() - 1) {
valueBuilder.append(", ");
}
}
valueBuilder.append("]");
fieldValues.put(this.id, valueBuilder.toString());
} else {
fieldValues.put(this.id, this.value.toString());
}

View File

@ -81,6 +81,6 @@ export class CultureService {
}
getCurrentCulture(): CultureInfo {
return this.currentCulture;
return this.currentCulture || this.cultureValues.get('en-US'); //TODO: fix this
}
}

View File

@ -32,8 +32,8 @@ export interface SingleAutoCompleteConfiguration {
// Selected value formating template
selectedValueTemplate?: TemplateRef<any>;
// To revert: "We set the items observable on focus to avoid the request being executed on component load."
forceFocus?: boolean;
// // To revert: "We set the items observable on focus to avoid the request being executed on component load."
// forceFocus?: boolean;
autoSelectFirstOptionOnBlur?: boolean;
}

View File

@ -219,8 +219,7 @@ export class SingleAutoCompleteComponent extends _CustomComponentMixinBase imple
}
_onInputFocus() {
// We set the items observable on focus to avoid the request being executed on component load.
if (!this._items || this.forceFocus) {
if (!this._items) {
this._items = this._inputSubject.pipe(
startWith(null),
debounceTime(this.requestDelay),
@ -258,6 +257,7 @@ export class SingleAutoCompleteComponent extends _CustomComponentMixinBase imple
if (value != null) { this.getSelectedItems(value); } else {
if (this.autocompleteInput && this.autocompleteInput.nativeElement && this.autocompleteInput.nativeElement.value) { this.autocompleteInput.nativeElement.value = ''; }
this.inputValue = null;
this._items = null;
}
}
pushChanges(value: any) { this.onChange(value); }
@ -328,7 +328,7 @@ export class SingleAutoCompleteComponent extends _CustomComponentMixinBase imple
return this.configuration.autoSelectFirstOptionOnBlur != null ? this.configuration.autoSelectFirstOptionOnBlur : false;
}
get forceFocus(): boolean {
return this.configuration.forceFocus != null ? this.configuration.forceFocus : false;
}
// get forceFocus(): boolean {
// return this.configuration.forceFocus != null ? this.configuration.forceFocus : false;
// }
}

View File

@ -76,7 +76,7 @@
</mat-form-field>
</div>
</div>
<div style="position: relative;" class="col-8">
<div style="position: relative;" class="col-12">
<ng-container *ngIf="hasFocus">
@ -116,9 +116,6 @@
</div>
</ng-container>
</div>
@ -128,7 +125,7 @@
<!-- FIELDS -->
<div class="col">
<div class="">
<div>
<ng-container *ngFor="let field of form.get('fields')['controls']; let i=index" >
<div class="row bg-white" style="position: relative;" (click)="setTargetField(field)"
>
@ -183,15 +180,15 @@
<!-- PREVIEW -->
<div class="col-12" >
<div class="mb-1" *ngIf="hasFocus" class="d-flex" style="justify-content: space-between;">
<span style="font-weight: bold;">{{'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.PREVIEW' | translate}}</span>
<div class="col-12 previewer">
<div *ngIf="hasFocus" class="d-flex mb-3" style="justify-content: space-between;">
<span style="font-weight: bold; font-style: italic;">{{'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.PREVIEW' | translate}}</span>
<span [@fadeElement]="updatedClass" *ngIf="firstField?.get('viewStyle').get('renderStyle').value">
<ng-container *ngIf="!previewDirty">
Preview updated!
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.STATUS.PREVIEW-UPDATED' | translate}}
</ng-container>
<ng-container *ngIf="previewDirty">
... caculating preview
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.STATUS.CALCULATING-PREVIEW' | translate}}
</ng-container>
</span>
</div>
@ -208,6 +205,8 @@
</em>
</div>
</div>
<div class="col-12">
<hr *ngIf="hasFocus">
</div>
</div>
@ -222,8 +221,11 @@
<li class="list-inline-item" *ngIf="!viewOnly">
<img src="/assets/images/editor/icons/add_input_set.svg" [matMenuTriggerFor]="inputmenu" style="width: 18px;transform: translateY(-1px);" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELDSET.ADD-INPUT' | translate" class="input_icon" alt="Add Input icon">
<span [matMenuTriggerFor]="inputmenu" class="inputMenuTrigger">
<img src="/assets/images/editor/icons/add_input.svg" style="width: 18px;transform: translateY(-1px);" class="input_icon" alt="'DATASET-PROFILE-EDITOR.ACTIONS.FIELDSET.ADD-INPUT' | translate"/>
<span class="fieldset-new-input-action">{{'DATASET-PROFILE-EDITOR.ACTIONS.FIELDSET.ADD-INPUT' | translate}}</span>
</span>
<!-- <mat-icon [matMenuTriggerFor]="inputmenu" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELDSET.ADD-INPUT' | translate">folder</mat-icon> -->
<mat-menu #inputmenu="matMenu" [class]="'add_input_menu'">

View File

@ -91,8 +91,29 @@ $blue-color-light: #5cf7f2;
color: #212121;
transform: translateY(3px);
}
.mat-checkbox-frame{
border: 1px solid $blue-color ;
}
}
.fieldset-new-input-action {
font-size: 0.8em;
font-weight: 400;
color: #212121;
display: inline-block;
transform: translateY(1px);
}
.inputMenuTrigger {
margin-bottom: 0.3rem;
display: inline-block;
}
.previewer{
background-color: #129d9811;
padding: 2em;
border: 1px solid #70707015;
border-radius: 4px;
}
.input_icon{
width: 14px;

View File

@ -1,19 +1,19 @@
<ng-container *ngIf="expandView">
<!-- ACTIONS PER FIELD -->
<div class="row justify-content-end mb-1 mt-1">
<div class="col-auto">
<div class="row justify-content-end mb-1 mt-3">
<div class="col-auto mr-2">
<ul class="list-unstyled list-inline d-flex align-items-center">
<li class="list-inline-item" >
<mat-slide-toggle class="field-toggler" [checked]="isRequired" (change)="toggleRequired($event)" labelPosition="before" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.MAKE-IT-REQUIRED' | translate" [disabled]="!viewType">
{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-slide-toggle>
</li>
<li class="list-inline-item" *ngIf="!viewOnly && viewType && canApplyVisibility">
<!-- <li class="list-inline-item" *ngIf="!viewOnly && viewType && canApplyVisibility">
<mat-icon style="cursor: pointer;" (click)="addNewRule()" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.ADD-VISIBILITY-RULE' | translate">visibility</mat-icon>
</li>
<li class="list-inline-item" *ngIf="!viewOnly && viewType && canBeDeleted">
<mat-icon style="cursor: pointer;" (click)="onDelete()" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.DELETE-INPUT' | translate">delete</mat-icon>
</li> -->
<li class="list-inline-item" *ngIf="!viewOnly && viewType && canBeDeleted" class="text-muted">
<mat-icon style="cursor: pointer; opacity: 0.7; transform:translateY(2px) translateX(10px) ;" (click)="onDelete()" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.DELETE-INPUT' | translate">delete</mat-icon>
</li>
</ul>
@ -29,7 +29,7 @@
<mat-error *ngIf="this.form.get('id').hasError('pattern')">{{'GENERAL.VALIDATION.PATTERN-_' | translate}}</mat-error>
</mat-form-field> -->
<mat-form-field class="col">
<mat-form-field class="col-6">
<!-- <mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.VIEW-STYLE' | translate}}" [formControl]="this.form.get('viewStyle').get('renderStyle')"
required>
<mat-option [value]="viewStyleEnum.TextArea">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.TextArea)}}</mat-option>
@ -185,7 +185,7 @@
</mat-select>
</mat-form-field> -->
<mat-form-field class="col">
<mat-form-field class="col-6">
<mat-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.COMPOSITE-FIELD.FIELDS.RDA-COMMON-STANDARDS' | translate}}</mat-label>
<mat-select [formControl]="this.form.get('rdaCommonStandard')">
<mat-option>--</mat-option>
@ -196,13 +196,33 @@
</mat-form-field>
<!-- Default Value -->
<app-component-profile-editor-default-value-component *ngIf="form.get('viewStyle').get('renderStyle').value" class="col-12"
<app-component-profile-editor-default-value-component *ngIf="form.get('viewStyle').get('renderStyle').value" class="col-6"
[viewStyle]="form.get('viewStyle').get('renderStyle').value" [form]="this.form.get('defaultValue').get('value')" [formArrayOptions]="form.get('data')?.get('options')"
[comboBoxType]="this.form.get('data')?.get('type')?.value" [internalDmpEntitiesType]="this.form.get('data')?.get('type')?.value"
placeHolder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.DEFAULT-VALUE' | translate}}">
</app-component-profile-editor-default-value-component>
<div class="col-12"></div>
<div class="col-auto mb-4 mt-2">
<div class="add-visibility-button" (click)="addNewRule()" *ngIf="!viewOnly && viewType && canApplyVisibility">
<img src="/assets/images/editor/icons/add_visibility_rule_2.svg" class="visibility-icon" alt="'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.ADD-VISIBILITY-RULE' | translate">
<span>{{'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.ADD-VISIBILITY-RULE' | translate}}</span>
</div>
</div>
</div>
<div class="row" *ngIf="this.form.get('viewStyle').get('renderStyle').value">
<ng-container *ngIf="form.get('visible').get('rules')?.value.length">
<h4 class="col-12" style="font-weight: bold">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.RULES-TITLE' | translate}}
</h4>
<app-dataset-profile-editor-rule-component class="col-12" [form]="form.get('visible').get('rules')" [viewStyleForCheck]="form.get('viewStyle').get('renderStyle').value"
[formArrayOptionsForCheck]="this.form.get('data')?.get('options')" [comboBoxTypeForCheck]="this.form.get('data')?.get('type')?.value"
[viewOnly]="viewOnly"
[formControlForCheck]="form"></app-dataset-profile-editor-rule-component>
<!-- <div class="col-12" *ngIf="!viewOnly">
<button mat-button class="full-width" (click)="addNewRule()" [disabled]="!form.get('viewStyle').get('renderStyle').value">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.ACTIONS.ADD-RULE' | translate}}</button>
</div> -->
</ng-container>
</div>
<div class="row" [ngSwitch]="form.get('viewStyle').get('renderStyle').value" *ngIf="expandView">
<app-dataset-profile-editor-combo-box-field-component *ngSwitchCase="viewStyleEnum.ComboBox" class="col-12" [form]="form"></app-dataset-profile-editor-combo-box-field-component>
<app-dataset-profile-internal-dmp-entities-field-component *ngSwitchCase="viewStyleEnum.InternalDmpEntities" class="col-12" [form]="form"></app-dataset-profile-internal-dmp-entities-field-component>
@ -226,27 +246,7 @@
<app-dataset-profile-editor-currency-field-component *ngSwitchCase="viewStyleEnum.Currency" class="col-12" [form]="form"></app-dataset-profile-editor-currency-field-component>
<app-dataset-profile-editor-validator-field-component *ngSwitchCase="viewStyleEnum.Validation" class="col-12" [form]="form"></app-dataset-profile-editor-validator-field-component>
</div>
<div class="row" *ngIf="this.form.get('viewStyle').get('renderStyle').value">
<ng-container *ngIf="form.get('visible').get('rules')?.value.length">
<h4 class="col-12" style="font-weight: bold">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.RULES-TITLE' | translate}}
</h4>
<app-dataset-profile-editor-rule-component class="col-12" [form]="form.get('visible').get('rules')" [viewStyleForCheck]="form.get('viewStyle').get('renderStyle').value"
[formArrayOptionsForCheck]="this.form.get('data')?.get('options')" [comboBoxTypeForCheck]="this.form.get('data')?.get('type')?.value"
[viewOnly]="viewOnly"
[formControlForCheck]="form"></app-dataset-profile-editor-rule-component>
<!-- <div class="col-12" *ngIf="!viewOnly">
<button mat-button class="full-width" (click)="addNewRule()" [disabled]="!form.get('viewStyle').get('renderStyle').value">{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.ACTIONS.ADD-RULE' | translate}}</button>
</div> -->
</ng-container>
<!-- <div class="row">
<button (click)="generatePreview()">Generate Preview</button>
</div> -->
</div>
</ng-container>

View File

@ -29,10 +29,38 @@ li.list-inline-item{
.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
background-color:#129D99 ;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
background-color:rgba(0,178,159,0.34);
}
.mat-slide-toggle-bar{
height: 11.93px;
width: 26.42px;
}
.mat-slide-toggle-thumb-container{
top: -3px;
}
.mat-slide-toggle-thumb{
width: 16px;
height: 16px;
}
}
.input_icon{
width: 14px;
margin-right: 0.5em;
}
.visibility-icon{
width: 20px;
margin-right: 0.5em;
}
.add-visibility-button{
// display: flex;
// align-items: center;
width: auto;
cursor: pointer;
span{
font-weight: 400;
font-size: 0.8em;
}
}

View File

@ -1,47 +1,20 @@

import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
import { AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup, FormGroupDirective, NgForm, ValidationErrors, ValidatorFn } from '@angular/forms';
import { Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {FormArray, FormControl, FormGroup, FormGroupDirective, NgForm,} from '@angular/forms';
import { DatasetProfileFieldViewStyle } from '@app/core/common/enum/dataset-profile-field-view-style';
import { ValidationType } from '@app/core/common/enum/validation-type';
import { DatasetProfileService } from '@app/core/services/dataset-profile/dataset-profile.service';
import { EnumUtils } from '@app/core/services/utilities/enum-utils.service';
import { BooleanDecisionFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/boolean-decision-field-data-editor-model';
import { CheckBoxFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/check-box-field-data-editor-model';
import { DatePickerDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/date-picker-data-editor-models';
import { FreeTextFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/free-text-field-data-editor-model';
import { RadioBoxFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/radio-box-field-data-editor-model';
import { ResearchersAutoCompleteFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/researchers-auto-complete-field-data-editor-model';
import { TextAreaFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/text-area-field-data-editor-model';
import { WordListFieldDataEditorModel } from '@app/ui/admin/dataset-profile/admin/field-data/word-list-field-data-editor-model';
import { RuleEditorModel } from '@app/ui/admin/dataset-profile/admin/rule-editor-model';
import { BaseComponent } from '@common/base/base.component';
import { debounce, debounceTime, takeUntil } from 'rxjs/operators';
import { ExternalDatasetEditorModel } from '@app/ui/dataset/dataset-wizard/dataset-wizard-editor.model';
import { DataRepositoriesDataEditorModel } from '../../../admin/field-data/data-repositories-data-editor-models';
import { RegistriesDataEditorModel } from '../../../admin/field-data/registries-data-editor-models';
import { ServicesDataEditorModel } from '../../../admin/field-data/services-data-editor-models';
import { TagsDataEditorModel } from '../../../admin/field-data/tags-data-editor-models';
import { ResearchersDataEditorModel } from '../../../admin/field-data/researchers-data-editor-models';
import { OrganizationsDataEditorModel } from '../../../admin/field-data/organizations-data-editor-models';
import { DatasetIdentifierDataEditorModel } from '../../../admin/field-data/dataset-identifier-data-editor-models';
import { ExternalDatasetsDataEditorModel } from '../../../admin/field-data/external-datasets-data-editor-models';
import { CurrencyDataEditorModel } from '../../../admin/field-data/currency-data-editor-models';
import { ValidationDataEditorModel } from '../../../admin/field-data/validation-data-editor-models';
import { DatasetDescriptionFieldEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
import { Subject, Subscription } from 'rxjs';
import { Subscription } from 'rxjs';
import { ViewStyleType } from './view-style-enum';
import { AutoCompleteFieldDataEditorModel } from '../../../admin/field-data/auto-complete-field-data-editor-model';
import { DatasetsAutoCompleteFieldDataEditorModel } from '../../../admin/field-data/datasets-autocomplete-field-data-editor-mode';
import { DatasetProfileComboBoxType } from '@app/core/common/enum/dataset-profile-combo-box-type';
import { Guid } from '@common/types/guid';
import { ErrorStateMatcher, MatDialog, MatSlideToggleChange } from '@angular/material';
import { DefaultValueEditorModel } from '../../../admin/default-value-editor-model';
import { EditorCustomValidators } from '../../custom-validators/editor-custom-validators';
import { Field } from '@app/core/model/admin/dataset-profile/dataset-profile';
import { DatasetProfileInternalDmpEntitiesType } from '@app/core/common/enum/dataset-profile-internal-dmp-entities-type';
import { FieldEditorModel } from '../../../admin/field-editor-model';
import { AutoCompleteFieldData, BooleanDecisionFieldData, CheckBoxFieldData, CurrencyFieldData, DataRepositoriesFieldData, DatasetIdentifierFieldData, DatePickerFieldData, DmpsAutoCompleteFieldData, ExternalDatasetsFieldData, FieldDataOption, FreeTextFieldData, OrganizationsFieldData, RadioBoxFieldData, RegistriesFieldData, ResearchersAutoCompleteFieldData, ServicesFieldData, TagsFieldData, TextAreaFieldData, ValidationFieldData, WordListFieldData } from '@app/core/model/dataset-profile-definition/field-data/field-data';
import { ConfirmationDialogComponent } from '@common/modules/confirmation-dialog/confirmation-dialog.component';
@Component({
selector: 'app-dataset-profile-editor-field-component',

View File

@ -3,17 +3,25 @@
<div class="col-12" >
<div class="row">
<div class="row fieldset">
<!-- SECTION INFO -->
<mat-card style="margin-bottom: 2em; padding: 2em;" class="col-9">
<mat-card-content>
<app-dataset-profile-editor-section-component
[form]="form"
[viewOnly]="viewOnly"
>
</app-dataset-profile-editor-section-component>
</mat-card-content>
</mat-card>
<div class="col-9 p-0" style="margin-bottom:2em;">
<mat-card style="padding: 2em;">
<mat-card-content>
<app-dataset-profile-editor-section-component
[form]="form"
[viewOnly]="viewOnly"
>
</app-dataset-profile-editor-section-component>
</mat-card-content>
</mat-card>
<div class="row justify-content-center mt-4 mb-2">
<div class="col-auto add-question" (click)="addFieldSetAfter(-9999,0)" *ngIf="!viewOnly">
<img src="/assets/images/editor/icons/add_input_set.svg" class="question-icon mr-2" alt="Add Question icon">
<span>{{'DATASET-PROFILE-EDITOR.STEPS.TOOLKIT.NEW-INPUT-SET' | translate}}</span>
</div>
</div>
</div>
<div class="col-2 col-xl-auto ml-4" *ngIf="!selectedFieldSetId && !viewOnly">
<div class="row bg-white actions-list">
@ -38,8 +46,8 @@
<!-- FIELDSET INFO -->
<div class="col-12" dragula="FIELDSETS" [(dragulaModel)]="form.get('fieldSets').controls">
<div style="margin-bottom: 2em;" class="row"
*ngFor="let fieldset of form.get('fieldSets')?.controls ; let i=index"[id]="idprefix+fieldset.get('id').value"
<div style="margin-bottom: 2em; position: relative;" class="row fieldset"
*ngFor="let fieldset of form.get('fieldSets')?.controls ; let i=index" [id]="dragula_prefix+fieldset.get('id').value"
>
<!-- <h4 style="font-weight: bold" class="col-12">
{{'DATASET-PROFILE-EDITOR.STEPS.FORM.SECTION.FIELDS.FIELDS-TITLE' |
@ -52,26 +60,29 @@
(click)="deleteFieldSet(selectedTocEntry.form, i);" [disabled]="viewOnly">
<mat-icon>delete</mat-icon>
</button> -->
<mat-card class="col-9"
(click)="selectedFieldSetId = fieldset.get('id').value"
[ngClass]="{'field-container-active': fieldset.get('id').value === selectedFieldSetId}">
<mat-card-content>
<mat-card-header *ngIf="(fieldset.get('id').value === selectedFieldSetId) && !viewOnly">
<mat-icon class="handle" style="display:inline-block; margin: 0px auto; cursor: grab;transform: rotate(90deg);" cdkDragHandle>drag_indicator</mat-icon>
</mat-card-header>
<app-dataset-profile-editor-composite-field-component [form]="fieldset"
[viewOnly]="viewOnly"
[numbering]="numbering + '.'+ (i+1)"
[hasFocus]="fieldset.get('id').value === selectedFieldSetId">
</app-dataset-profile-editor-composite-field-component>
</mat-card-content>
</mat-card>
<div [id]="idprefix+fieldset.get('id').value" style="position: absolute; top: -7em; visibility: hidden;">
</div>
<div class="col-9 p-0">
<mat-card
(click)="selectedFieldSetId = fieldset.get('id').value"
[ngClass]="{'field-container-active': fieldset.get('id').value === selectedFieldSetId}">
<mat-card-content>
<mat-card-header *ngIf="(fieldset.get('id').value === selectedFieldSetId) && !viewOnly">
<mat-icon class="handle" style="display:inline-block; margin: 0px auto; cursor: grab;transform: rotate(90deg); opacity: 0.3;" cdkDragHandle>drag_indicator</mat-icon>
</mat-card-header>
<app-dataset-profile-editor-composite-field-component [form]="fieldset"
[viewOnly]="viewOnly"
[numbering]="numbering + '.'+ (i+1)"
[hasFocus]="fieldset.get('id').value === selectedFieldSetId">
</app-dataset-profile-editor-composite-field-component>
</mat-card-content>
</mat-card>
</div>
<div class="col-2 col-xl-auto ml-4" *ngIf="selectedFieldSetId === fieldset.get('id').value &&(!viewOnly)">
<div class="row bg-white actions-list">
<div class="row bg-white actions-list stick-list">
<nav *ngIf="!viewOnly">
<label class="action-list-label">{{'DATASET-PROFILE-EDITOR.STEPS.TOOLKIT.GENERAL-TOOLS' | translate}}</label>
<ul class="list-unstyled">
@ -102,6 +113,14 @@
</nav>
</div>
</div>
<div class="col-9">
<div class="row justify-content-center mt-4 mb-2">
<div class="col-auto add-question" (click)="addFieldSetAfter(fieldset.get('ordinal').value, i)" *ngIf="!viewOnly">
<img src="/assets/images/editor/icons/add_input_set.svg" class="question-icon mr-2" alt="Add Question icon">
<span>{{'DATASET-PROFILE-EDITOR.STEPS.TOOLKIT.NEW-INPUT-SET' | translate}}</span>
</div>
</div>
</div>
<!-- </div> -->

View File

@ -9,9 +9,28 @@ $blue-color-light: #5cf7f2;
.fieldset-actions-list li{
cursor: pointer;
}
.fieldset{
.add-question{
cursor: pointer;
visibility: hidden;
transition-property: visibility;
transition-delay: 20ms;
transition-timing-function: ease;
transition-duration: 200ms;
}
}
.fieldset:hover{
.add-question{
visibility: visible;
}
}
.question-icon{
width: 20px;
}
.stick-list{
position: sticky;
top: 7em;
}
.actions-list{
// border: 1px solid $blue-color;
// box-shadow: 0px 3px 12px #129D9999;
@ -20,6 +39,7 @@ $blue-color-light: #5cf7f2;
padding: 1em 0.9em;
padding-bottom: 3em;
min-width: 166px;
box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);
.mat-list-item-content{
padding: 0px;

View File

@ -1,15 +1,11 @@
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
import { ChangeDetectorRef, Inject, OnDestroy } from '@angular/core';
import { OnDestroy } from '@angular/core';
import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
import { FormArray, FormGroup } from '@angular/forms';
import { FieldEditorModel } from '@app/ui/admin/dataset-profile/admin/field-editor-model';
import { FieldSetEditorModel } from '@app/ui/admin/dataset-profile/admin/field-set-editor-model';
import { SectionEditorModel } from '@app/ui/admin/dataset-profile/admin/section-editor-model';
import { BaseComponent } from '@common/base/base.component';
import { Guid } from '@common/types/guid';
import { DragulaService } from 'ng2-dragula';
import { Subscription } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { FieldEditorModel } from '../../../admin/field-editor-model';
import { FieldSetEditorModel } from '../../../admin/field-set-editor-model';
import { ToCEntry, ToCEntryType } from '../../../table-of-contents/table-of-contents-entry';
@Component({
@ -37,6 +33,7 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
// @Output() fieldsetAdded = new EventEmitter<String>(); //returns the id of the fieldset added
idprefix = "id";
readonly dragula_prefix = "dragulaid";
private subs = new Subscription();
private FIELDSETS = 'FIELDSETS';
constructor(
@ -52,7 +49,7 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
this.dragulaService.createGroup(this.FIELDSETS,{
moves:(el, container, handle)=>{
// if(this.viewOnly) return false; //uncomment if want to unable drag n drop in viewonly mode
if(el.id != (this.idprefix+this.tocentry.id)) return false;
if(el.id != (this.dragula_prefix+this.tocentry.id)) return false;
if(handle.className && handle.classList.contains('handle')) return true;
return false;
}
@ -152,7 +149,7 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
setTimeout(() => {
const el = this.myElement.nativeElement.querySelector("#"+this.idprefix+id);
if(el){
el.scrollIntoView({behavior: "smooth", block:'end'});
el.scrollIntoView({behavior: "smooth", block:'start'});
}
}, 700);
}
@ -162,10 +159,9 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
setTimeout(() => {
const el = this.myElement.nativeElement.querySelector('#topofcontainer');
if(el){
el.scrollIntoView({behavior:'smooth'})
el.scrollIntoView({behavior:'smooth', block:'end'})
}
},200);
}
ngOnInit() {
@ -182,6 +178,38 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
this.addNewFieldSet.emit(this.form);
}
addFieldSetAfter(afterOrdinal: number, afterIndex: number):void{
const field: FieldEditorModel = new FieldEditorModel();
field.id = Guid.create().toString();
field.ordinal = 0;//first filed in the fields list
const fieldForm = field.buildForm();
//give fieldset id and ordinal
const fieldSet: FieldSetEditorModel = new FieldSetEditorModel();
const fieldSetId = Guid.create().toString();
fieldSet.id = fieldSetId;
fieldSet.ordinal = afterOrdinal < 0? 0 :afterOrdinal;
const parentArray = this.form.get('fieldSets') as FormArray;
parentArray.controls.forEach(fieldset=>{
const ordinalControl = fieldset.get('ordinal');
const ordinalValue = ordinalControl.value;
if(ordinalValue > afterOrdinal){
ordinalControl.setValue(ordinalValue +1);
}
});
const fieldsetForm = fieldSet.buildForm();
(fieldsetForm.get('fields') as FormArray).push(fieldForm);
const index = afterOrdinal < 0 ? 0: afterIndex +1;
parentArray.insert(index, fieldsetForm);
this.dataNeedsRefresh.emit();
setTimeout(() => {
this.selectedFieldSetId = fieldSetId;
}, 200);
}
private _findTocEntryById(id: string, tocentries: ToCEntry[]): ToCEntry{
if(!tocentries){
return null;

View File

@ -1,13 +1,13 @@
import { of as observableOf, Observable, combineLatest, BehaviorSubject,of } from 'rxjs';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { AfterViewInit, Component, ElementRef, OnChanges, OnInit, QueryList, SimpleChanges, ViewChild } from '@angular/core';
import { AbstractControl, Form, FormArray, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';
import { Component, OnInit, QueryList, ViewChild } from '@angular/core';
import { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog';
import { MatHorizontalStepper, MatStep } from '@angular/material/stepper';
import { MatHorizontalStepper} from '@angular/material/stepper';
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { debounce, debounceTime, filter, map, mergeMap, takeUntil, tap } from 'rxjs/operators';
import { debounceTime, filter, map, mergeMap, takeUntil, tap } from 'rxjs/operators';
import * as FileSaver from 'file-saver';
import { BaseComponent } from '@common/base/base.component';
import { DatasetProfileEditorModel } from '@app/ui/admin/dataset-profile/editor/dataset-profile-editor-model';
@ -26,7 +26,6 @@ import { LanguageInfo } from '@app/core/model/language-info';
import { LanguageInfoService } from '@app/core/services/culture/language-info-service';
import { FormValidationErrorsDialogComponent } from '@common/forms/form-validation-errors-dialog/form-validation-errors-dialog.component';
import { MatomoService } from '@app/core/services/matomo/matomo-service';
import { Link, LinkToScroll } from '@app/ui/misc/dataset-description-form/tableOfContentsMaterial/table-of-contents';
import { DatasetWizardService } from '@app/core/services/dataset-wizard/dataset-wizard.service';
import { DatasetWizardEditorModel } from '@app/ui/dataset/dataset-wizard/dataset-wizard-editor.model';
import { NewEntryType, ToCEntry, ToCEntryType } from '../table-of-contents/table-of-contents-entry';
@ -36,20 +35,13 @@ import { Guid } from '@common/types/guid';
import { FieldEditorModel } from '../admin/field-editor-model';
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
import { CdkStep, StepperSelectionEvent } from '@angular/cdk/stepper';
import { DatasetDescriptionCompositeFieldEditorModel, DatasetDescriptionFieldEditorModel, DatasetDescriptionFormEditorModel, DatasetDescriptionPageEditorModel, DatasetDescriptionSectionEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
import { DatasetDescriptionCompositeFieldEditorModel, DatasetDescriptionFieldEditorModel, DatasetDescriptionSectionEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
import { Rule } from '@app/core/model/dataset-profile-definition/rule';
import { DatasetProfileFieldViewStyle } from '@app/core/common/enum/dataset-profile-field-view-style';
import { invalid } from '@angular/compiler/src/render3/view/util';
import { SideNavService } from '@app/core/services/sidenav/side-nav.sevice';
import { EditorCustomValidators, EditorCustomValidatorsEnum } from './custom-validators/editor-custom-validators';
import { CustomErrorValidator } from '@common/forms/validation/custom-validator';
import { GENERAL_ANIMATIONS, STEPPER_ANIMATIONS } from './animations/animations';
import { DatasetProfileComboBoxType } from '@app/core/common/enum/dataset-profile-combo-box-type';
import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration';
import { DmpInvitationUser } from '@app/core/model/dmp/invitation/dmp-invitation-user';
import { RequestItem } from '@app/core/query/request-item';
import { DmpInvitationUserCriteria } from '@app/core/query/dmp/dmp-invitation-user-criteria';
import { DmpInvitationService } from '@app/core/services/dmp/dmp-invitation.service';
import { UserService } from '@app/core/services/user/user.service';
import { MatInput } from '@angular/material';

View File

@ -135,7 +135,7 @@
<ng-container *ngIf="!isDragging">
<!-- <div *ngIf="links && !viewOnly && !(parentLink?.subEntriesType == tocEntryType.Page) " > -->
<ng-container *ngIf="selectedItemInLinks && (link.type != tocEntryType.Page) && isLast && (!viewOnly) &&(link.type != tocEntryType.FieldSet)">
<ng-container *ngIf="selectedItemInLinks && (link.type != tocEntryType.Page) && isLast && (!viewOnly)">
<button class="mat-button add-new-entry" style="padding-left: 0px;" (click)="createNewEntry({childType:link.type,parent:parentLink})">
<!-- <mat-icon>add</mat-icon> -->
<ng-container [ngSwitch]="link.type">
@ -153,7 +153,8 @@
Section
</ng-container> -->
<ng-container *ngSwitchCase="tocEntryType.FieldSet">
Field +
<img src="/assets/images/editor/icons/add_input_set.svg" alt="" style="margin-left: 0.1em;" class="add-input-icon">
{{'DATASET-PROFILE-EDITOR.STEPS.TOOLKIT.NEW-INPUT-SET' | translate}}
</ng-container>
</ng-container>
@ -178,6 +179,12 @@
<!-- BUILD SUBENTRIES IF THEY DONT EXIST -- CURRENT ITEM DOES HAVE CHILDREN -->
<div *ngIf="(!links && parentLink.type!= tocEntryType.FieldSet) && !viewOnly &&parentLink?.id == itemSelected?.id" class="docs-link mt-0">
<div class="ml-3">
<!-- Give option to generate fieldset (only if parent is section) -->
<button *ngIf="parentLink.type == tocEntryType.Section" class="mat-button" style="padding-left: 0px;" (click)="createNewEntry({childType:tocEntryType.FieldSet,parent:parentLink})">
<img src="/assets/images/editor/icons/add_input_set.svg" alt="" style="margin-left: -0.2em;" class="add-input-icon">
{{'DATASET-PROFILE-EDITOR.STEPS.TOOLKIT.NEW-INPUT-SET' | translate}}
</button>
<!-- Give option to generate section -->
<button class="mat-button" style="padding-left: 0px; display: block;" (click)="createNewEntry({childType:tocEntryType.Section,parent:parentLink})">
@ -193,11 +200,7 @@
</button>
<!-- Give option to generate fieldset (only if parent is section) -->
<!-- <button *ngIf="parentLink.type == tocEntryType.Section" class="mat-button" style="padding-left: 0px;" (click)="createNewEntry({childType:tocEntryType.FieldSet,parent:parentLink})">
Field +
</button> -->
</div>

View File

@ -111,3 +111,6 @@ $yellow: #f7dd72;
font-weight: bold;
// color: red;
}
.add-input-icon{
width: 20px;
}

View File

@ -37,6 +37,7 @@
<button *ngIf="!lockStatus" 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" 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 class="dataset-save-btn mr-2" (click)="touchForm()" type="button">{{ 'DATASET-WIZARD.ACTIONS.VALIDATE' | translate }}</button> -->
</div>
</div>
</div>

View File

@ -409,6 +409,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
if (x) {
this.showtocentriesErrors = false;
this.datasetProfileValueChanged(x.id);
this.formChanged();
}
@ -1177,6 +1178,10 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
printFormValue(){
console.log(this.formGroup.value);
}
touchForm(){
this.formGroup.markAllAsTouched();
this.showtocentriesErrors = true;
}
// tocentries;
// this.tocentries = this.getTocEntries(this.formGroup.get('datasetProfileDefinition')); //TODO

View File

@ -79,7 +79,7 @@
</div>
</div>
<div class="col-auto pr-0">
<app-form-progress-indication class="col-12" *ngIf="formGroup" [formGroup]="formGroup" [isDmpEditor]="true"></app-form-progress-indication>
<app-form-progress-indication class="col-12" *ngIf="formGroup && !formGroup.disabled && !lockStatus" [formGroup]="formGroup" [isDmpEditor]="true"></app-form-progress-indication>
</div>
</div>
<div class="col-auto form" id="editor-form">

View File

@ -33,7 +33,7 @@ import { ValidationErrorModel } from '@common/forms/validation/error-model/valid
import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver';
import { Observable, of as observableOf, interval } from 'rxjs';
import { delay, map, takeUntil } from 'rxjs/operators';
import { catchError, delay, map, takeUntil } from 'rxjs/operators';
import { Principal } from "@app/core/model/auth/principal";
import { Role } from "@app/core/common/enum/role";
import { LockService } from '@app/core/services/lock/lock.service';
@ -54,6 +54,7 @@ import { DmpToDatasetDialogComponent } from '../dmp-to-dataset/dmp-to-dataset-di
import { GrantEditorModel } from '@app/ui/grant/editor/grant-editor.model';
import { MatomoService } from '@app/core/services/matomo/matomo-service';
import { HttpClient } from '@angular/common/http';
import { PopupNotificationDialogComponent } from '@app/library/notification/popup/popup-notification.component';
@Component({
selector: 'app-dmp-editor-component',
@ -185,6 +186,11 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
this.setIsUserOwner();
if (!this.isUserOwner) {
if(this.isUserMember()){
this.router.navigate(['plans', 'overview', itemId]);
return;
}
this.isFinalized = true;
this.formGroup.disable();
}
@ -230,6 +236,12 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
.subscribe(x => {
this.formChanged();
});
if(this.lockStatus){
this.dialog.open(PopupNotificationDialogComponent,{data:{
title:this.language.instant('DMP-EDITOR.LOCKED.TITLE'),
message:this.language.instant('DMP-EDITOR.LOCKED.MESSAGE')
}, maxWidth:'30em'});
}
})
});
} else if (publicId != null) {
@ -365,7 +377,15 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
setIsUserOwner() {
if (this.dmp) {
const principal: Principal = this.authentication.current();
this.isUserOwner = principal.id === this.dmp.users.find(x => x.role === Role.Owner).id;
this.isUserOwner = !!this.dmp.users.find(x => (x.role === Role.Owner) && (x.id === principal.id) );
}
}
isUserMember(): boolean{
try{
const principal: Principal = this.authentication.current();
return !!this.dmp.users.find(x => (x.role === Role.Member) && (x.id === principal.id) );
}catch{
return false;
}
}

View File

@ -1,5 +1,5 @@
import { BaseComponent } from '@common/base/base.component';
import { OnInit, Component, Input, EventEmitter, Output } from '@angular/core';
import { OnInit, Component, Input, EventEmitter, Output, ViewChild } from '@angular/core';
import { AbstractControl, FormGroup, Validators } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
import { GrantTabModel } from '../grant-tab/grant-tab-model';
@ -12,7 +12,6 @@ import { GrantCriteria } from '@app/core/query/grant/grant-criteria';
import { ProjectCriteria } from '@app/core/query/project/project-criteria';
import { FunderCriteria } from '@app/core/query/funder/funder-criteria';
import { debounceTime, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
import { GrantEditorModel } from '@app/ui/grant/editor/grant-editor.model';
import { isNullOrUndefined } from '@swimlane/ngx-datatable';
@Component({
@ -39,7 +38,7 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
isCreateNewProject = false;
isCreateNewFunder = false;
grant: GrantTabModel;
forceFocus = false;
// forceFocus = false;
grantAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
projectAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
@ -219,7 +218,6 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
displayFn: (item) => item['label'] + this.getGrantIdText(item),
titleFn: (item) => item['label'] + this.getGrantIdText(item),
subtitleFn: (item) => item['source'] ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item['source'] : (item['key'] ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item['key'] : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE')),
forceFocus: this.forceFocus,
}
// this.forceFocus = false;
@ -236,7 +234,8 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
const grantRequestItem: RequestItem<GrantCriteria> = new RequestItem();
grantRequestItem.criteria = new GrantCriteria();
grantRequestItem.criteria.like = query;
if (this.funderFormGroup.get('existFunder').value) {
const existFunderValue = this.funderFormGroup.get('existFunder').value;
if (existFunderValue && !this.isCreateNewFunder && (existFunderValue.key != this._KEY)) {
grantRequestItem.criteria.funderReference = this.funderFormGroup.controls['existFunder'].value.reference;
}
return this.grantService.getWithExternal(grantRequestItem);
@ -414,11 +413,10 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
}
funderValueChanged(funder: any) {
if ((funder.label !== "" && funder.label !== null && funder.label !== undefined)
if ((funder.label !== "" && funder.label !== null && funder.label !== undefined && !isNullOrUndefined(funder.reference) && funder.reference.length )
|| (funder.existFunder !== null && funder.existFunder !== undefined && funder.existFunder.id !== undefined)) {
this.grantformGroup.reset();
this.grantformGroup.enable();
this.forceFocus = true;
this.setGrantValidators();
} else {
this.grantformGroup.reset();
@ -435,121 +433,6 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
return (!this.isFinalized && this.isUserOwner) || this.isClone;
}
// private grantUniqueIdentifier(): AsyncValidatorFn{
// return (control: AbstractControl) :Observable<ValidationErrors | null> =>{
// return control.valueChanges.pipe(
// debounceTime(600),
// distinctUntilChanged(),
// mergeMap(value=>{
// const requestItem = new RequestItem<GrantCriteria>();
// requestItem.criteria = new GrantCriteria();
// requestItem.criteria.exactReference = value;
// return this.grantService.getWithExternal(requestItem);
// }),
// takeUntil(this._destroyed),
// map((response)=>{
// if(response && response.length){
// const internalGrants = (response as Array<any>).filter(grant=> grant.key === "Internal");
// if(internalGrants && internalGrants.length){
// return {grantIdentifierExists:true};
// }
// }
// return null;
// // return response && response.length? {grantIdentifierExists:true} : null;
// })
// ).pipe(first())
// }
// }
// private funderUniqueIdentifier(): AsyncValidatorFn{
// return (control: AbstractControl) :Observable<ValidationErrors | null> =>{
// if(!control.valueChanges){
// return of(null);
// }
// return control.valueChanges.pipe(
// debounceTime(600),
// // distinctUntilChanged(),
// switchMap(value=>{
// const requestItem = new RequestItem<FunderCriteria>();
// requestItem.criteria = new FunderCriteria();
// requestItem.criteria.exactReference = value;
// console.log('perasame mia fora');
// return this.funderService.getWithExternal(requestItem);
// }),
// takeUntil(this._destroyed),
// map((response)=>{
// console.log('pername map');
// //got response
// if(response && response.length){
// const internalFunders = (response as Array<any>).filter(funder=> funder.key === 'Internal');
// if(internalFunders && internalFunders.length){
// return {funderIdentifierExists:true};
// }
// return null;
// }
// return null;
// }
// ),
// first()
// )
// // const requestItem = new RequestItem<FunderCriteria>();
// // requestItem.criteria = new FunderCriteria();
// // requestItem.criteria.exactReference = control.value;
// // return this.funderService.getWithExternal(requestItem).pipe(
// // takeUntil(this._destroyed),
// // map((response)=>{
// // if(response && response.length){
// // const internalFunders = (response as Array<any>).filter(funder=> funder.key === 'Internal');
// // if(internalFunders && internalFunders.length){
// // return {funderIdentifierExists:true};
// // }
// // return null;
// // }
// // return null;
// // })
// // )
// }
// }
// private grantProjectIdentifier(): AsyncValidatorFn{
// return (control: AbstractControl) :Observable<ValidationErrors | null> =>{
// return control.valueChanges.pipe(
// debounceTime(600),
// distinctUntilChanged(),
// mergeMap(value=>{
// const requestItem = new RequestItem<ProjectCriteria>();
// requestItem.criteria = new ProjectCriteria();
// requestItem.criteria.exactReference = value;
// // return this.grantService.getWithExternal(requestItem);
// return this.projectService.getWithExternal(requestItem);
// }),
// takeUntil(this._destroyed),
// map((response)=>{
// if(response && response.length){
// const internalProjects = (response as Array<any>).filter(grant=> grant.key === "Internal");
// if(internalProjects && internalProjects.length){
// return {projectIdentifierExists:true};
// }
// }
// return null;
// // return response && response.length? {grantIdentifierExists:true} : null;
// })
// ).pipe(first())
// }
// }
private consoleForm(){
console.log(this.formGroup);

View File

@ -10,29 +10,29 @@
<i>{{this.form.get('extendedDescription').value}}</i>
</h5>
<mat-form-field *ngSwitchCase="datasetProfileFieldViewStyleEnum.FreeText" class="col-12">
<input matInput [formControl]="form.get('value')" placeholder="{{form.get('data').value.label}}" [required]="form.get('validationRequired').value">
<input matInput [formControl]="form.get('value')" placeholder="{{(form.get('data').value.label) + (form.get('validationRequired').value? ' *': '')}}" [required]="form.get('validationRequired').value">
<mat-error *ngIf="form.get('value')['errors'] && form.get('value')['errors']['required']">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field>
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.ComboBox" class="col-12">
<div class="row">
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === datasetProfileComboBoxTypeEnum.Autocomplete">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '')}}" [formControl]="form.get('value')"
[configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '')}}" [formControl]="form.get('value')"
[configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
<mat-form-field *ngIf="form.get('data').value.type === datasetProfileComboBoxTypeEnum.WordList" class="col-md-12">
<mat-select [formControl]="form.get('value')" placeholder="{{ form.get('data').value.label | translate }}" [required]="form.get('validationRequired').value" [multiple]="form.get('data').value.multiList">
<mat-select [formControl]="form.get('value')" placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [required]="form.get('validationRequired').value" [multiple]="form.get('data').value.multiList">
<mat-option *ngFor="let opt of form.get('data').value.options" [value]="opt.value">{{opt.label}}
</mat-option>
</mat-select>
@ -45,48 +45,48 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.InternalDmpEntities" class="col-12">
<div class="row">
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Researchers">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Datasets">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Dmps">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
</div>
@ -99,7 +99,7 @@
<mat-form-field *ngSwitchCase="datasetProfileFieldViewStyleEnum.TextArea" class="col-12">
<textarea matInput class="text-area" [formControl]="form.get('value')" matTextareaAutosize matAutosizeMinRows="1" matAutosizeMaxRows="15" [required]="form.get('validationRequired').value"
placeholder="{{ form.get('data').value.label | translate }}"></textarea>
placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}"></textarea>
<!-- <textarea matInput class="text-area" [formControl]="form.get('value')" matTextareaAutosize matAutosizeMinRows="2" matAutosizeMaxRows="10" [required]="form.get('validationRequired').value"
placeholder="{{ form.get('data').value.label | translate }}"></textarea> -->
<button mat-icon-button *ngIf="!form.get('value').disabled && form.get('value').value" matSuffix aria-label="Clear" (click)="this.form.patchValue({'value': ''})">
@ -113,20 +113,22 @@
<mat-radio-button class="radio-button-item" name="{{form.get('id').value}}" value="true">{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.ACTIONS.YES" | translate }}</mat-radio-button>
<mat-radio-button class="radio-button-item" name="{{form.get('id').value}}" value="false">{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.ACTIONS.NO" | translate }}</mat-radio-button>
</mat-radio-group>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<small class="text-danger d-block" *ngIf="form.get('value').hasError('required') && form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</small>
<small class="text-muted d-inline-block" *ngIf="(form.get('validationRequired').value) && !form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</small>
</div>
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.RadioBox" class="col-12">
<mat-radio-group [formControl]="form.get('value')" [required]="form.get('validationRequired').value">
<mat-radio-button *ngFor="let option of form.get('data').value.options let index = index" class="radio-button-item" [value]="option.value">{{option.label}}</mat-radio-button>
</mat-radio-group>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<small class="text-danger d-block" *ngIf="form.get('value').hasError('required') && form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</small>
<small class="text-muted d-inline-block" *ngIf="(form.get('validationRequired').value) && !form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}} *</small>
</div>
<mat-form-field *ngSwitchCase="datasetProfileFieldViewStyleEnum.DatePicker" class="col-12">
<input matInput placeholder="{{ form.get('data').value.label | translate }}" class="table-input" [matDatepicker]="date" [required]="form.get('validationRequired').value"
<input matInput placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" class="table-input" [matDatepicker]="date" [required]="form.get('validationRequired').value"
[formControl]="form.get('value')">
<mat-datepicker-toggle matSuffix [for]="date"></mat-datepicker-toggle>
<mat-datepicker #date></mat-datepicker>
@ -138,18 +140,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.ExternalDatasets" class="col-12">
<div class="row">
<mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
[configuration]="externalDatasetAutoCompleteConfiguration">
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="externalDatasetAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="externalDatasetAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
</div>
@ -158,18 +160,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.DataRepositories" class="col-12">
<div class="row">
<mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
[configuration]="dataRepositoriesAutoCompleteConfiguration">
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="dataRepositoriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="dataRepositoriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
</div>
@ -178,18 +180,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Registries" class="col-12">
<div class="row">
<mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="registriesAutoCompleteConfiguration">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="registriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
</div>
@ -198,18 +200,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Services" class="col-12">
<div class="row">
<mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="servicesAutoCompleteConfiguration">
</app-multiple-auto-complete>
</div>
<div *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="servicesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</div>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
</div>
@ -218,7 +220,7 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Tags" class="col-12">
<div class="row">
<mat-form-field class="col-md-12">
<app-multiple-auto-complete [configuration]="tagsAutoCompleteConfiguration" [formControl]="form.get('value')" placeholder="{{'DATASET-EDITOR.FIELDS.TAGS' | translate}}"></app-multiple-auto-complete>
<app-multiple-auto-complete [configuration]="tagsAutoCompleteConfiguration" [formControl]="form.get('value')" placeholder="{{('DATASET-EDITOR.FIELDS.TAGS' | translate) + (form.get('validationRequired').value? ' *': '')}}"></app-multiple-auto-complete>
</mat-form-field>
</div>
</div>
@ -231,19 +233,17 @@
</app-multiple-auto-complete> -->
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="researchersAutoCompleteConfiguration">
</app-multiple-auto-complete>
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="researchersAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</ng-container>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field>
</div>
@ -258,12 +258,12 @@
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> -->
<ng-container *ngIf="form.get('data').value.multiAutoComplete">
<app-multiple-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<app-multiple-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="organisationsAutoCompleteConfiguration">
</app-multiple-auto-complete>
</ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="organisationsAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
@ -278,12 +278,12 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.DatasetIdentifier" class="col-12">
<div class="row" *ngIf="datasetIdInitialized">
<mat-form-field class="col-md-12">
<input matInput class="col-md-12" [formControl]="getDatasetIdControl('identifier')" placeholder="{{form.get('data').value.label}}" [required]="form.get('validationRequired').value">
<input matInput class="col-md-12" [formControl]="getDatasetIdControl('identifier')" placeholder="{{(form.get('data').value.label) + (form.get('validationRequired').value? ' *': '')}}" [required]="form.get('validationRequired').value">
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</mat-form-field>
<mat-form-field class="col-md-12">
<mat-select class="col-md-12" [formControl]="getDatasetIdControl('type')" [placeholder]="'TYPES.DATASET-PROFILE-IDENTIFIER.IDENTIFIER-TYPE' | translate">
<mat-select class="col-md-12" [formControl]="getDatasetIdControl('type')" [placeholder]="('TYPES.DATASET-PROFILE-IDENTIFIER.IDENTIFIER-TYPE' | translate) + (form.get('validationRequired').value? ' *': '')">
<mat-option *ngFor="let type of datasetIdTypes" [value]="type.value">
{{ type.name }}
</mat-option>
@ -297,7 +297,7 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Currency" class="col-12">
<div class="row">
<mat-form-field class="col-md-12">
<app-single-auto-complete placeholder="{{ form.get('data').value.label | translate }}" [formControl]="form.get('value')"
<app-single-auto-complete placeholder="{{ (form.get('data').value.label | translate) + (form.get('validationRequired').value? ' *': '') }}" [formControl]="form.get('value')"
[configuration]="currencyAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
@ -309,12 +309,12 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Validation" class="col-12">
<div class="row">
<mat-form-field class="col-md-4">
<input matInput class="col-md-12" [formControl]="getDatasetIdControl('identifier')" placeholder="{{form.get('data').value.label}}" [required]="form.get('validationRequired').value">
<input matInput class="col-md-12" [formControl]="getDatasetIdControl('identifier')" placeholder="{{(form.get('data').value.label) + (form.get('validationRequired').value? ' *': '')}}" [required]="form.get('validationRequired').value">
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</mat-form-field>
<mat-form-field class="col-md-4">
<mat-select class="col-md-12" [formControl]="getDatasetIdControl('type')" [placeholder]="'TYPES.DATASET-PROFILE-VALIDATOR.REPOSITORIES-PLACEHOLDER' | translate">
<mat-select class="col-md-12" [formControl]="getDatasetIdControl('type')" [placeholder]="('TYPES.DATASET-PROFILE-VALIDATOR.REPOSITORIES-PLACEHOLDER' | translate) + (form.get('validationRequired').value? ' *': '')">
<mat-option *ngFor="let type of validationTypes" [value]="type.value">
{{ type.name }}
</mat-option>

View File

@ -106,7 +106,9 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
if (this.form.get('data').value.multiList) {
const originalValue = <string>this.form.get('value').value;
if (originalValue !== null && typeof originalValue === 'string') {
let values = (<string>this.form.get('value').value).slice(1, -1).split(', ');
let values = (<string>this.form.get('value').value).slice(1, -1).split(', ').filter((value) => !value.includes('"'));
let specialValue = (<string>this.form.get('value').value).split('"').filter((value) => !value.startsWith('[') && !value.endsWith(']') && !values.includes(value) && value !== ', ');
specialValue.forEach(value => values.push(value));
if (!originalValue.startsWith('[') && !originalValue.endsWith(']')) {
values = undefined;
values = [originalValue];
@ -385,8 +387,8 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
parseTags() {
try{
let stringValue = this.form.get('value').value;
if (typeof stringValue === 'string') {
stringValue = (<string>stringValue).replace(new RegExp('{', 'g'), '{"').replace(new RegExp('=', 'g'), '":"').replace(new RegExp(',', 'g'), '",').replace(new RegExp(', ', 'g'), ', "').replace(new RegExp('}', 'g'), '"}');

View File

@ -10,13 +10,13 @@
[ngStyle]="calculateStyle(entry)"
[ngClass]="calculateClass(entry)"
>
<span [class.text-danger]="showErrors && entry.form.invalid && entry.type === tocEntryTypeEnum.FieldSet">
<span [class.text-danger]="showErrors && entry.form.invalid && ( entry.type === tocEntryTypeEnum.FieldSet || (entry.type !== tocEntryTypeEnum.FieldSet && !expandChildren[idx])) && invalidChildsVisible(entry) ">
{{entry.numbering}}. {{entry.label}}
</span>
<mat-icon style="transform: translateY(3px);" class="text-danger"
<!-- <mat-icon style="transform: translateY(3px);" class="text-danger"
*ngIf="showErrors && entry.form.invalid && entry.type !== tocEntryTypeEnum.FieldSet && !expandChildren[idx]">
priority_high
</mat-icon>
</mat-icon> -->
<!-- <ng-container *ngIf="entry.subEntries && entry.subEntries.length && !expandChildren[idx]">
<small>
({{entry.subEntries.length}})
@ -34,7 +34,9 @@
[selected]="selected"
[TOCENTRY_ID_PREFIX]="TOCENTRY_ID_PREFIX"
[showErrors]="showErrors"
[hiddenEntries]="hiddenEntries">
[hiddenEntries]="hiddenEntries"
[visibilityRulesService]="visibilityRulesService"
>
</table-of-contents-internal>
</div>

View File

@ -1,13 +1,8 @@
import { DOCUMENT } from '@angular/common';
import { Component, EventEmitter, Inject, OnInit, Output, Input } from '@angular/core';
import { BaseComponent } from '@common/base/base.component';
import { interval, Subject, Subscription } from 'rxjs';
import { distinctUntilChanged } from 'rxjs/operators';
import { type } from 'os';
import { SimpleChanges } from '@angular/core';
import { FormArray } from '@angular/forms';
import { ToCEntry, ToCEntryType } from '../../dataset-description.component';
import { VisibilityRulesService } from '../../visibility-rules/visibility-rules.service';
import { Rule } from '@app/core/model/dataset-profile-definition/rule';
@Component({
selector: 'table-of-contents-internal',
@ -26,11 +21,9 @@ export class TableOfContentsInternal implements OnInit {
@Input() TOCENTRY_ID_PREFIX="";
@Input() showErrors: boolean = false;
@Input() hiddenEntries: string[] =[];
@Input() visibilityRulesService: VisibilityRulesService;
constructor(public visibilityRulesService: VisibilityRulesService){
constructor(){
}
ngOnInit(): void {
// console.log('component created');
@ -140,4 +133,29 @@ export class TableOfContentsInternal implements OnInit {
return tocEntryFound? tocEntryFound: null;
}
public invalidChildsVisible(entry: ToCEntry):boolean {
if(!entry || !this.visibilityRulesService){
return false;
}
if(entry.type!= this.tocEntryTypeEnum.FieldSet){
return entry.subEntries.some(_ => this.invalidChildsVisible(_));
}
if(entry.type === this.tocEntryTypeEnum.FieldSet){
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;
const isVisible = this.visibilityRulesService.checkElementVisibility(id);
if(isVisible){
return false;
}
}
return true;
});
return hasError;
}
return false;
}
}

View File

@ -32,7 +32,7 @@
(entrySelected)="onToCentrySelected($event)"
[selected]="tocentrySelected"
[hiddenEntries]="hiddenEntries"
[visibilityRulesService]="visibilityRulesService"
>
</table-of-contents-internal>

View File

@ -139,3 +139,14 @@ $mat-card-header-size: 40px !default;
.new-dmp-dialog {
padding: 0em .5em 0em 0em;
}
::ng-deep .mat-option-text {
text-overflow: unset !important;
white-space: normal;
line-height: 1.2em;
}
::ng-deep .mat-option {
padding-top: 1em !important;
padding-bottom: 1em !important;
height: auto !important;
}

View File

@ -291,12 +291,12 @@
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-NO-USERS-YET":"... No users yet",
"DATASET-TEMPLATE-NO-USERS-YET": "... No users yet",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled",
"QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline"
"TEMPLATE-OUTLINE": "Template outline"
},
"PAGE-INFO": {
"PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter",
"CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
},
"ERROR-MESSAGES":{
"ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.",
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided."
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
},
"DEFAULT-VALUES": {
"NONE": "Keine",
@ -461,6 +461,10 @@
},
"ACTIONS": {
"ADD-RULE": "Add Visibility Rule +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
}
},
"RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "If Value is",
"RULE-THEN": "then show Question",
"FIELDSETS": "Questions",
"FIELDS":"Inputs"
"FIELDS": "Inputs"
},
"HINTS":{
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT":"This element hides the element or a parent element of the input you are trying to apply visibility rule from."
"HINTS": {
"ELEMENT-CHILD-OF-TARGET": "This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT": "This element hides the element or a parent element of the input you are trying to apply visibility rule from."
}
},
"FORM-VALIDATION":{
"ERROR-MESSAGES":{
"FORM-VALIDATION": {
"ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter."
"MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
}
},
"TABLE-OF-CONTENTS":{
"ERROR-MESSAGES":{
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.",
"TABLE-OF-CONTENTS": {
"ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION": "Question can only be child of section.",
"INPUT-SECTION-SAME-LEVEL": "Cannot have question and section on the same level.",
"DRAG-NOT-SUPPORTED":"Drag n drop of section not supported to target container.",
"DRAG-NOT-SUPPORTED": "Drag n drop of section not supported to target container.",
"PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
}
}
@ -513,7 +517,7 @@
"ADD-SECTION": "Add Section +",
"VALIDATE": "Validate",
"PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top",
"BACK-TO-TOP": "Back to top",
"FIELD": {
"MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet"
},
"FIELDSET": {
"ADD-INPUT": "Add new input",
"ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.",
"ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.."
}
},
"FEEDBACK-MESSAGES":{
"SAVE-SUCCESS":"Changes were saved successfully."
"FEEDBACK-MESSAGES": {
"SAVE-SUCCESS": "Changes were saved successfully."
},
"ERRORS":{
"INVALID-VISIBILITY-RULES":{
"ERRORS": {
"INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.",
"REMOVE-SUCCESS":"Invalid visibility rules were removed successfully."
"REMOVE-SUCCESS": "Invalid visibility rules were removed successfully."
}
}
},
@ -690,7 +694,8 @@
"DOWNLOAD-XML": "XML herunterladen",
"DOWNLOAD-DOCX": "DOCX herunterladen",
"COPY-DATASET": "Datensatzbeschreibung kopieren",
"UPDATE-DATASET-PROFILE": "Vorlage aktualisieren"
"UPDATE-DATASET-PROFILE": "Vorlage aktualisieren",
"VALIDATE":"Validate"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Datensatzbeschreibung ist nicht vorhanden",
@ -845,7 +850,7 @@
"CLONE": "Klon",
"NEW-VERSION": "Neue Version",
"VIEW-VERSIONS": "Alle Vorlagenversionen für Datensatzbeschreibungen",
"DELETE":"Delete"
"DELETE": "Delete"
}
},
"DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation identifier already exists.",
"IDENTIFIER-EXISTS-RESEARCHER-LIST":"This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST":"This identifier is already used by an organisation in the organisations list."
"IDENTIFIER-EXISTS-RESEARCHER-LIST": "This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
},
"FUNDING-INFO": {
"INTRO": "You are using the DMP editor. Add here information about the scope, funding, actors of your DMP and decide on access and re-use issues for the DMP output that you are creating.",
@ -1047,6 +1052,10 @@
"CLONE": "Clone",
"SAVE": "Save",
"CANCEL": "Cancel"
},
"LOCKED":{
"TITLE":"DMP is locked",
"MESSAGE":"Somebody else is modifying the DMP at this moment. You may view the dataset but you cannot make any changes."
}
},
"DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Abbrechen",
"DELETE": "Löschen",
"UPDATE": "Update",
"DISCARD":{
"DISCARD-NEW-MESSAGE":"All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM":"Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.",
"DISCARD-EDITED-MESSAGE":"All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM":"Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No."
"DISCARD": {
"DISCARD-NEW-MESSAGE": "All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY": "No.",
"DISCARD-EDITED-MESSAGE": "All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY": "No."
}
},
"PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories"
},
"DATASET-PROFILE-IDENTIFIER":{
"IDENTIFIER-TYPE":"Identifier Type"
"DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE": "Identifier Type"
},
"RECENT-ACTIVITY-ORDER": {
"CREATED": "Created",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.",
"DATASET": "This is your dashboard. You can view and edit all Datasets that you have either contributed to or created yourself.",
"NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!",
"LEAVE-TOUR":"Leave Tour"
"GOT-IT": "Got it!",
"LEAVE-TOUR": "Leave Tour"
},
"ADD-NEW-DATASET":{
"OPTIONS-NOT-ENOUGH":"Are those options not enough?",
"START-NEW-DMP":"Start new DMP"
"ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP": "Start new DMP"
}
},
"USER-DIALOG": {
@ -1653,7 +1662,7 @@
},
"IMPACT": "Mit dieser Aktion wird Ihr DMP fertiggestellt und Sie werden ihn nicht erneut bearbeiten können.",
"AFTER-FINALIZATION": "Nach der Fertigstellung Ihres DMP können Sie ihn veröffentlichen, wodurch er für das ARGOS Programm öffentlich zugänglich sein wird.",
"INVALID":"Invalid"
"INVALID": "Invalid"
},
"DRAFTS": {
"FOR-DMP": "Für DMP:",
@ -1749,4 +1758,4 @@
"FINALIZED": "Finalized",
"DELETED": "Deleted"
}
}
}

View File

@ -291,12 +291,12 @@
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-NO-USERS-YET":"... No users yet",
"DATASET-TEMPLATE-NO-USERS-YET": "... No users yet",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled",
"QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline"
"TEMPLATE-OUTLINE": "Template outline"
},
"PAGE-INFO": {
"PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter",
"CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
},
"ERROR-MESSAGES":{
"ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.",
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided."
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
},
"DEFAULT-VALUES": {
"NONE": "None",
@ -461,6 +461,10 @@
},
"ACTIONS": {
"ADD-RULE": "Add Visibility Rule +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
}
},
"RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "If Value is",
"RULE-THEN": "then show Question",
"FIELDSETS": "Questions",
"FIELDS":"Inputs"
"FIELDS": "Inputs"
},
"HINTS":{
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT":"This element hides the element or a parent element of the input you are trying to apply visibility rule from."
"HINTS": {
"ELEMENT-CHILD-OF-TARGET": "This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT": "This element hides the element or a parent element of the input you are trying to apply visibility rule from."
}
},
"FORM-VALIDATION":{
"ERROR-MESSAGES":{
"FORM-VALIDATION": {
"ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter."
"MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
}
},
"TABLE-OF-CONTENTS":{
"ERROR-MESSAGES":{
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.",
"TABLE-OF-CONTENTS": {
"ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION": "Question can only be child of section.",
"INPUT-SECTION-SAME-LEVEL": "Cannot have question and section on the same level.",
"DRAG-NOT-SUPPORTED":"Drag n drop of section not supported to target container.",
"DRAG-NOT-SUPPORTED": "Drag n drop of section not supported to target container.",
"PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
}
}
@ -513,16 +517,16 @@
"ADD-SECTION": "Add Section +",
"VALIDATE": "Validate",
"PREVIEW-AND-FINALIZE": "Preview & Finalize",
"BACK-TO-TOP":"Back to top",
"BACK-TO-TOP": "Back to top",
"FIELD": {
"MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question",
"ADD-VISIBILITY-RULE": "Make Conditional Question",
"DELETE-INPUT": "Delete this input",
"PREVIEW": "Preview",
"NOT-INITIALIZED": "Not initialized yet"
},
"FIELDSET": {
"ADD-INPUT": "Add new input",
"ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.",
"ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.."
}
},
"FEEDBACK-MESSAGES":{
"SAVE-SUCCESS":"Changes were saved successfully."
"FEEDBACK-MESSAGES": {
"SAVE-SUCCESS": "Changes were saved successfully."
},
"ERRORS":{
"INVALID-VISIBILITY-RULES":{
"ERRORS": {
"INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.",
"REMOVE-SUCCESS":"Invalid visibility rules were removed successfully."
"REMOVE-SUCCESS": "Invalid visibility rules were removed successfully."
}
}
},
@ -690,7 +694,8 @@
"DOWNLOAD-XML": "Download XML",
"DOWNLOAD-DOCX": "Download DOCX",
"COPY-DATASET": "Copy Dataset",
"UPDATE-DATASET-PROFILE": "Update Template"
"UPDATE-DATASET-PROFILE": "Update Template",
"VALIDATE":"Validate"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Dataset does not exist",
@ -845,7 +850,7 @@
"CLONE": "Clone",
"NEW-VERSION": "New Version",
"VIEW-VERSIONS": "All Dataset Template Versions",
"DELETE":"Delete"
"DELETE": "Delete"
}
},
"DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation identifier already exists.",
"IDENTIFIER-EXISTS-RESEARCHER-LIST":"This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST":"This identifier is already used by an organisation in the organisations list."
"IDENTIFIER-EXISTS-RESEARCHER-LIST": "This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
},
"FUNDING-INFO": {
"INTRO": "You are using the DMP editor. Add here information about the scope, funding, actors of your DMP and decide on access and re-use issues for the DMP output that you are creating.",
@ -1047,6 +1052,10 @@
"CLONE": "Clone",
"SAVE": "Save",
"CANCEL": "Cancel"
},
"LOCKED":{
"TITLE":"DMP is locked",
"MESSAGE":"Somebody else is modifying the DMP at this moment. You may view the dataset but you cannot make any changes."
}
},
"DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Cancel",
"DELETE": "Delete",
"UPDATE": "Update",
"DISCARD":{
"DISCARD-NEW-MESSAGE":"All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM":"Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.",
"DISCARD-EDITED-MESSAGE":"All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM":"Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No."
"DISCARD": {
"DISCARD-NEW-MESSAGE": "All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY": "No.",
"DISCARD-EDITED-MESSAGE": "All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY": "No."
}
},
"PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories"
},
"DATASET-PROFILE-IDENTIFIER":{
"IDENTIFIER-TYPE":"Identifier Type"
"DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE": "Identifier Type"
},
"RECENT-ACTIVITY-ORDER": {
"CREATED": "Created",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.",
"DATASET": "This is your dashboard. You can view and edit all Datasets that you have either contributed to or created yourself.",
"NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!",
"LEAVE-TOUR":"Leave Tour"
"GOT-IT": "Got it!",
"LEAVE-TOUR": "Leave Tour"
},
"ADD-NEW-DATASET":{
"OPTIONS-NOT-ENOUGH":"Are those options not enough?",
"START-NEW-DMP":"Start new DMP"
"ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP": "Start new DMP"
}
},
"USER-DIALOG": {
@ -1653,7 +1662,7 @@
},
"IMPACT": "This action will finalize your DMP, and you won't be able to edit it again.",
"AFTER-FINALIZATION": "After finalizing your DMP you can Publish it, and it'll be publicly available to the ARGOS tool.",
"INVALID":"Invalid"
"INVALID": "Invalid"
},
"DRAFTS": {
"FOR-DMP": "For DMP:",
@ -1749,4 +1758,4 @@
"FINALIZED": "Finalized",
"DELETED": "Deleted"
}
}
}

View File

@ -290,13 +290,13 @@
"DATASET-TEMPLATE-LANGUAGE": "Dataset template language",
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-NO-USERS-YET":"... No users yet",
"DATASET-TEMPLATE-NO-USERS-YET": "... No users yet",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled",
"QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline"
"TEMPLATE-OUTLINE": "Template outline"
},
"PAGE-INFO": {
"PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter",
"CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
},
"ERROR-MESSAGES":{
"ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.",
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided."
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
},
"DEFAULT-VALUES": {
"NONE": "Ninguno",
@ -461,6 +461,10 @@
},
"ACTIONS": {
"ADD-RULE": "Añadir una regla de visibilidad +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
}
},
"RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "Si el valor es",
"RULE-THEN": "then show Question",
"FIELDSETS": "Questions",
"FIELDS":"Inputs"
"FIELDS": "Inputs"
},
"HINTS":{
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT":"This element hides the element or a parent element of the input you are trying to apply visibility rule from."
"HINTS": {
"ELEMENT-CHILD-OF-TARGET": "This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT": "This element hides the element or a parent element of the input you are trying to apply visibility rule from."
}
},
"FORM-VALIDATION":{
"ERROR-MESSAGES":{
"FORM-VALIDATION": {
"ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter."
"MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
}
},
"TABLE-OF-CONTENTS":{
"ERROR-MESSAGES":{
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.",
"TABLE-OF-CONTENTS": {
"ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION": "Question can only be child of section.",
"INPUT-SECTION-SAME-LEVEL": "Cannot have question and section on the same level.",
"DRAG-NOT-SUPPORTED":"Drag n drop of section not supported to target container.",
"DRAG-NOT-SUPPORTED": "Drag n drop of section not supported to target container.",
"PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
}
}
@ -513,7 +517,7 @@
"ADD-SECTION": "Añadir sección +",
"VALIDATE": "Validate",
"PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top",
"BACK-TO-TOP": "Back to top",
"FIELD": {
"MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet"
},
"FIELDSET": {
"ADD-INPUT": "Add new input",
"ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.",
"ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.."
}
},
"FEEDBACK-MESSAGES":{
"SAVE-SUCCESS":"Changes were saved successfully."
"FEEDBACK-MESSAGES": {
"SAVE-SUCCESS": "Changes were saved successfully."
},
"ERRORS":{
"INVALID-VISIBILITY-RULES":{
"ERRORS": {
"INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.",
"REMOVE-SUCCESS":"Invalid visibility rules were removed successfully."
"REMOVE-SUCCESS": "Invalid visibility rules were removed successfully."
}
}
},
@ -690,7 +694,8 @@
"DOWNLOAD-XML": "Descargar XML",
"DOWNLOAD-DOCX": "Descargar DOCX",
"COPY-DATASET": "Copiar la descripción del dataset",
"UPDATE-DATASET-PROFILE": "Plantilla de modificación"
"UPDATE-DATASET-PROFILE": "Plantilla de modificación",
"VALIDATE":"Validate"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "No existe la descripción del dataset",
@ -845,7 +850,7 @@
"CLONE": "Clonar",
"NEW-VERSION": "Nueva versión",
"VIEW-VERSIONS": "Todas las versiones de las plantillas de descripción del dataset",
"DELETE":"Delete"
"DELETE": "Delete"
}
},
"DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation identifier already exists.",
"IDENTIFIER-EXISTS-RESEARCHER-LIST":"This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST":"This identifier is already used by an organisation in the organisations list."
"IDENTIFIER-EXISTS-RESEARCHER-LIST": "This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
},
"FUNDING-INFO": {
"INTRO": "You are using the DMP editor. Add here information about the scope, funding, actors of your DMP and decide on access and re-use issues for the DMP output that you are creating.",
@ -1047,6 +1052,10 @@
"CLONE": "Clone",
"SAVE": "Save",
"CANCEL": "Cancel"
},
"LOCKED":{
"TITLE":"DMP is locked",
"MESSAGE":"Somebody else is modifying the DMP at this moment. You may view the dataset but you cannot make any changes."
}
},
"DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Cancelar",
"DELETE": "Borrar",
"UPDATE": "Actualizar",
"DISCARD":{
"DISCARD-NEW-MESSAGE":"All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM":"Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.",
"DISCARD-EDITED-MESSAGE":"All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM":"Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No."
"DISCARD": {
"DISCARD-NEW-MESSAGE": "All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY": "No.",
"DISCARD-EDITED-MESSAGE": "All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY": "No."
}
},
"PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories"
},
"DATASET-PROFILE-IDENTIFIER":{
"IDENTIFIER-TYPE":"Identifier Type"
"DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE": "Identifier Type"
},
"RECENT-ACTIVITY-ORDER": {
"CREATED": "Creado",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.",
"DATASET": "This is your dashboard. You can view and edit all Datasets that you have either contributed to or created yourself.",
"NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!",
"LEAVE-TOUR":"Leave Tour"
"GOT-IT": "Got it!",
"LEAVE-TOUR": "Leave Tour"
},
"ADD-NEW-DATASET":{
"OPTIONS-NOT-ENOUGH":"Are those options not enough?",
"START-NEW-DMP":"Start new DMP"
"ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP": "Start new DMP"
}
},
"USER-DIALOG": {
@ -1653,7 +1662,7 @@
},
"IMPACT": "Esta acción finaliza su PGD, y no podrá editarla otra vez. ",
"AFTER-FINALIZATION": "Después de finalizar su PGD puede publicarlo, y estará disponible públicamente en la herramienta ARGOS.",
"INVALID":"Invalid"
"INVALID": "Invalid"
},
"DRAFTS": {
"FOR-DMP": "Para el PGD:",
@ -1749,4 +1758,4 @@
"FINALIZED": "Finalizado",
"DELETED": "Deleted"
}
}
}

View File

@ -290,13 +290,13 @@
"DATASET-TEMPLATE-LANGUAGE": "Dataset template language",
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-NO-USERS-YET":"... No users yet",
"DATASET-TEMPLATE-NO-USERS-YET": "... No users yet",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled",
"QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline"
"TEMPLATE-OUTLINE": "Template outline"
},
"PAGE-INFO": {
"PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter",
"CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
},
"ERROR-MESSAGES":{
"ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.",
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided."
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
},
"DEFAULT-VALUES": {
"NONE": "Κανένα",
@ -461,6 +461,10 @@
},
"ACTIONS": {
"ADD-RULE": "Προσθήκη Κανονισμού Ορατότητας +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
}
},
"RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "Εάν η τιμή είναι",
"RULE-THEN": "then show Question",
"FIELDSETS": "Questions",
"FIELDS":"Inputs"
"FIELDS": "Inputs"
},
"HINTS":{
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT":"This element hides the element or a parent element of the input you are trying to apply visibility rule from."
"HINTS": {
"ELEMENT-CHILD-OF-TARGET": "This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT": "This element hides the element or a parent element of the input you are trying to apply visibility rule from."
}
},
"FORM-VALIDATION":{
"ERROR-MESSAGES":{
"FORM-VALIDATION": {
"ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter."
"MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
}
},
"TABLE-OF-CONTENTS":{
"ERROR-MESSAGES":{
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.",
"TABLE-OF-CONTENTS": {
"ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION": "Question can only be child of section.",
"INPUT-SECTION-SAME-LEVEL": "Cannot have question and section on the same level.",
"DRAG-NOT-SUPPORTED":"Drag n drop of section not supported to target container.",
"DRAG-NOT-SUPPORTED": "Drag n drop of section not supported to target container.",
"PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
}
}
@ -513,7 +517,7 @@
"ADD-SECTION": "Προσθήκη Ενότητας +",
"VALIDATE": "Επιβεβαίωση",
"PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top",
"BACK-TO-TOP": "Back to top",
"FIELD": {
"MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet"
},
"FIELDSET": {
"ADD-INPUT": "Add new input",
"ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.",
"ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.."
}
},
"FEEDBACK-MESSAGES":{
"SAVE-SUCCESS":"Changes were saved successfully."
"FEEDBACK-MESSAGES": {
"SAVE-SUCCESS": "Changes were saved successfully."
},
"ERRORS":{
"INVALID-VISIBILITY-RULES":{
"ERRORS": {
"INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.",
"REMOVE-SUCCESS":"Invalid visibility rules were removed successfully."
"REMOVE-SUCCESS": "Invalid visibility rules were removed successfully."
}
}
},
@ -690,7 +694,8 @@
"DOWNLOAD-XML": "Λήψη XML",
"DOWNLOAD-DOCX": "Ληψη DOCX",
"COPY-DATASET": "Αντιφραφή Περιγραφής Συνόλου Δεδομένων",
"UPDATE-DATASET-PROFILE": "Ενημέρωση Template"
"UPDATE-DATASET-PROFILE": "Ενημέρωση Template",
"VALIDATE":"Επικύρωση"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Η Περιγραφή Συνόλου Δεδομένων δεν υπάρχει",
@ -845,7 +850,7 @@
"CLONE": "Κλώνος",
"NEW-VERSION": "Νέα Έκδοση",
"VIEW-VERSIONS": "Όλες οι εκδόσεις των Templates Περιγραφής Συνόλου Δεδομένων",
"DELETE":"Delete"
"DELETE": "Delete"
}
},
"DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation identifier already exists.",
"IDENTIFIER-EXISTS-RESEARCHER-LIST":"This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST":"This identifier is already used by an organisation in the organisations list."
"IDENTIFIER-EXISTS-RESEARCHER-LIST": "This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
},
"FUNDING-INFO": {
"INTRO": "You are using the DMP editor. Add here information about the scope, funding, actors of your DMP and decide on access and re-use issues for the DMP output that you are creating.",
@ -1047,6 +1052,10 @@
"CLONE": "Κλώνος",
"SAVE": "Αποθήκευση",
"CANCEL": "Ακύρωση"
},
"LOCKED":{
"TITLE":"DMP is locked",
"MESSAGE":"Somebody else is modifying the DMP at this moment. You may view the dataset but you cannot make any changes."
}
},
"DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Ακύρωση",
"DELETE": "Διαγραφή",
"UPDATE": "Ενημέρωση",
"DISCARD":{
"DISCARD-NEW-MESSAGE":"All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM":"Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.",
"DISCARD-EDITED-MESSAGE":"All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM":"Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No."
"DISCARD": {
"DISCARD-NEW-MESSAGE": "All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY": "No.",
"DISCARD-EDITED-MESSAGE": "All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY": "No."
}
},
"PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories"
},
"DATASET-PROFILE-IDENTIFIER":{
"IDENTIFIER-TYPE":"Identifier Type"
"DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE": "Identifier Type"
},
"RECENT-ACTIVITY-ORDER": {
"CREATED": "Δημιουργημένο",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.",
"DATASET": "This is your dashboard. You can view and edit all Datasets that you have either contributed to or created yourself.",
"NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!",
"LEAVE-TOUR":"Leave Tour"
"GOT-IT": "Got it!",
"LEAVE-TOUR": "Leave Tour"
},
"ADD-NEW-DATASET":{
"OPTIONS-NOT-ENOUGH":"Are those options not enough?",
"START-NEW-DMP":"Start new DMP"
"ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP": "Start new DMP"
}
},
"USER-DIALOG": {
@ -1653,7 +1662,7 @@
},
"IMPACT": "Αυτή η επιλογή θα οριστικοποιήσει το Σχέδιο Διαχείρισης Δεδομένων σας και δε θα μπορείτε να το επεξεργαστείτε ξανά σε αυτήν την έκδοση.",
"AFTER-FINALIZATION": "Μετά την οριστικοποίηση του Σχεδίου Διαχείρισης Δεδομένων σας, μπορείτε να το δημοσιεύσετε και να το διαθέσετε δημόσια στο εργαλείο ARGOS.",
"INVALID":"Invalid"
"INVALID": "Invalid"
},
"DRAFTS": {
"FOR-DMP": "Για Σχέδιο Διαχείρισης Δεδομένων:",
@ -1749,4 +1758,4 @@
"FINALIZED": "Οριστικοποιημένα",
"DELETED": "Deleted"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -74,7 +74,7 @@
"NOTIFICATION-DIALOG": {
"POPUP": {
"TITLE": "Súbor dát chýba",
"MESSAGE": "Najmenej jeden súbor dát musí byť vytvorený, aby bolo možné DMP uložiť.",
"MESSAGE": "Musí byť vytvorený najmenej jeden súbor, aby bolo možné DMP uložiť.",
"CLOSE": "Zatvoriť"
}
},
@ -84,12 +84,12 @@
"JSON-FILES": ".json súbory",
"PRODUCED": "vytvorené",
"RDA-SPECIFICATIONS": "podľa špecifikácií RDS",
"MACHINE-ACTIONABLE": "pre strojovo využiteľné DMP",
"MACHINE-ACTIONABLE": "pre strojovo spracovateľné DMP",
"UPLOAD-FILE": "Nahrať súbor",
"REPLACE-FILE": "Replace File"
},
"INVITATION-DIALOG": {
"HINT": "Po každom vložení pozvánky nového užívateľa stlačte čiarku",
"HINT": "Po každom vložení pozvánky nového používateľa stlačte čiarku",
"SUCCESS": "Invitation successfully sent",
"ERROR": "Invitation sent failed"
},
@ -114,7 +114,7 @@
},
"TITLES": {
"PREFIX": "Otvorený DMP - ",
"GENERAL": "Tvorba Data Management plánov",
"GENERAL": "Tvorba Plánu manažmentu dát (DMP)",
"ABOUT": "O nástroji",
"PRIVACY": "Zásady ochrany súkromných údajov",
"OPENSOURCE-LICENCES": " Open source licencie",
@ -134,19 +134,19 @@
"USERS": "Používatelia",
"PROFILE": "Môj profil",
"LOGIN": "Prihlásenie",
"DMP-OVERVIEW": "DMP Prehľad",
"DMP-EDIT": "Upraviť DMP",
"DMP-OVERVIEW": "Prehľad DMP ",
"DMP-EDIT": "Editovať DMP",
"DATASET-OVERVIEW": "Prehľad súborov dát",
"DATASET-EDIT": "Pozrieť/Upraviť súbor dát",
"DATASET-EDIT": "Pozrieť/Editovať súbor dát",
"DMP-NEW-VERSION": "Nová verzia DMP",
"DMP-CLONE": "Klonovať DMP",
"DATASET-NEW": "Nový súbor dát",
"GRANT-NEW": "Nový grant",
"GRANT-EDIT": "Pozrieť/Upraviť grant",
"GRANT-EDIT": "Pozrieť/Editovať grant",
"DMP-PROFILE-NEW": "Nová DMP šablóna ",
"DMP-PROFILE-EDIT": "Upraviť DMP šablónu",
"DMP-PROFILE-EDIT": "Editovať DMP šablónu",
"DATASET-PROFILES-NEW": "Nový klon šablóny súboru dát",
"DATASET-PROFILES-EDIT": "Upraviť šablónu súboru dát",
"DATASET-PROFILES-EDIT": "Editovať šablónu súboru dát",
"EXPLORE-PLANS-OVERVIEW": "Publikované DMP - prehľad",
"DATASET-PUBLIC-EDIT": "Pozrieť publikované súbory dát",
"DMP-PUBLIC-EDIT": "Pozrieť publikované DMP",
@ -217,8 +217,8 @@
"ABOUT": "O nástroji",
"MY-DATASET-DESCRIPTIONS": "MOJE SÚBORY DÁT",
"DATASET-DESCRIPTION-WIZARD": "Sprievodca pre Súbory dát",
"PUBLIC DATASETS": "PUBLIKOVANÉ SÚBORY DÁT",
"PUBLIC-DMPS": "PUBLIKOVANÉ DMP",
"PUBLIC DATASETS": "VEREJJNÉ SÚBORY DÁT",
"PUBLIC-DMPS": "VEREJNÉ DMP",
"HOME": "DOMOV",
"DMP-WIZARD": "Sprievodca pre DMP ",
"DATASET-TEMPLATES": "ŠABLÓNY SÚBOROV DÁT",
@ -240,7 +240,7 @@
"GENERAL": "VŠEOBECNÉ INFORMÁCIE",
"ABOUT": "O nástroji",
"DASHBOARD": "Domov",
"DMP": "DATA MANAGEMENT PLÁNY",
"DMP": "PLÁNY MANAŽMENTU DÁT",
"MY-DMPS": "Moje DMP",
"DATASETS": "SÚBORY DÁT",
"GRANTS": "GRANTY",
@ -290,13 +290,13 @@
"DATASET-TEMPLATE-LANGUAGE": "Dataset template language",
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-NO-USERS-YET":"... No users yet",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-NO-USERS-YET": "... No users yet",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled",
"QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline"
"TEMPLATE-OUTLINE": "Template outline"
},
"PAGE-INFO": {
"PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter",
"CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter."
@ -322,9 +322,9 @@
"SECTION": "Section"
},
"PAGES": {
"TITLE": "Chapter Description",
"PAGE-PREFIX": "Chapter",
"PAGE-INPUT-TITLE": "Chapter Title",
"TITLE": "Opis stránky",
"PAGE-PREFIX": "Stránka",
"PAGE-INPUT-TITLE": "Názov stránky",
"DATASET-DETAILS": "Podrobné informácie o súbore dát",
"EXTERNAL-REFERENCES": "Externé odkazy",
"DESCRIPTION": "Opis"
@ -374,7 +374,7 @@
},
"FIELD": {
"FIELDS": {
"RULES-TITLE": "Conditional Questions",
"RULES-TITLE": "Visibility Rules",
"FIELD-RULES-VALUE": "Value",
"ID": "Section Unique Identifier",
"VIEW-STYLE": "Type",
@ -385,29 +385,29 @@
"VALIDATION": "Validation",
"MULTIPLICITY-CHECKBOX": "Multiplicity",
"FIELD-TEXT-AREA-TITLE": "Text Area Data",
"FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder Text",
"FIELD-TEXT-AREA-PLACEHOLDER": "Input Placeholder",
"FIELD-BOOLEAN-DECISION-TITLE": "Boolean Decision Data",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder Text",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder",
"FIELD-CHECKBOX-TITLE": "Checkbox Data",
"FIELD-CHECKBOX-PLACEHOLDER": "Input Placeholder Text",
"FIELD-CHECKBOX-PLACEHOLDER": "Input Placeholder",
"FIELD-FREE-TEXT-TITLE": "Free Text Data",
"FIELD-FREE-TEXT-PLACEHOLDER": "Input Placeholder Text",
"FIELD-FREE-TEXT-PLACEHOLDER": "Input Placeholder",
"FIELD-COMBO-BOX-TYPE": "Type of Combo Box",
"FIELD-WORD-LIST-TITLE": "Word List Data",
"FIELD-WORD-LIST-PLACEHOLDER": "Input Placeholder Text",
"FIELD-WORD-LIST-PLACEHOLDER": "Input Placeholder",
"FIELD-WORD-LIST-LABEL": "Label",
"FIELD-WORD-LIST-VALUE": "Value",
"FIELD-INTERNAL-DMP-ENTITIES-TYPE": "Type of Internal DMP Entity",
"FIELD-RESEARCHERS-TITLE": "Researchers Autocomplete",
"FIELD-RESEARCHERS-PLACEHOLDER": "Input Placeholder Text",
"FIELD-DATASETS-PLACEHOLDER": "Input Placeholder Text",
"FIELD-DMPS-PLACEHOLDER": "Input Placeholder Text",
"FIELD-RESEARCHERS-PLACEHOLDER": "Input Placeholder",
"FIELD-DATASETS-PLACEHOLDER": "Input Placeholder",
"FIELD-DMPS-PLACEHOLDER": "Input Placeholder",
"FIELD-RADIO-BOX-TITLE": "Radio Box Data",
"FIELD-RADIO-BOX-PLACEHOLDER": "Input Placeholder Text",
"FIELD-RADIO-BOX-PLACEHOLDER": "Input Placeholder",
"FIELD-RADIO-BOX-LABEL": "Label",
"FIELD-RADIO-BOX-VALUE": "Value",
"FIELD-AUTOCOMPLETE-TITLE": "Autocomplete Data",
"FIELD-AUTOCOMPLETE-PLACEHOLDER": "Input Placeholder Text",
"FIELD-AUTOCOMPLETE-PLACEHOLDER": "Input Placeholder",
"FIELD-AUTOCOMPLETE-SOURCE-TITLE": "Sources",
"FIELD-AUTOCOMPLETE-ADD_SOURCE": "Add Source",
"FIELD-AUTOCOMPLETE-TYPE": "Source Type",
@ -419,7 +419,7 @@
"FIELD-AUTOCOMPLETE-URL": "Url",
"FIELD-AUTOCOMPLETE-OPTIONS-ROOT": "Options Root",
"FIELD-DATE-PICKER-TITLE": "Date Picker",
"FIELD-DATE-PICKER-PLACEHOLDER": "Input Placeholder Text",
"FIELD-DATE-PICKER-PLACEHOLDER": "Input Placeholder",
"FIELD-DATE-PICKER-LABEL": "Label",
"FIELD-DATE-PICKER-VALUE": "Value",
"FIELD-MULTIPLE-AUTOCOMPLETE": "Multiple Autocomplete",
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
},
"ERROR-MESSAGES":{
"ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.",
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided."
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
},
"DEFAULT-VALUES": {
"NONE": "Žiadny",
@ -461,6 +461,10 @@
},
"ACTIONS": {
"ADD-RULE": "Pridať pravidlo Dostupnosti +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
}
},
"RULE": {
@ -469,29 +473,29 @@
"TARGET": "Target Field Id",
"VALUE": "Required Value",
"RULE-IF": "If Value is",
"RULE-THEN": "then show Question",
"RULE-THEN": "then show Field With Id",
"FIELDSETS": "Questions",
"FIELDS":"Inputs"
"FIELDS": "Inputs"
},
"HINTS":{
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT":"This element hides the element or a parent element of the input you are trying to apply visibility rule from."
"HINTS": {
"ELEMENT-CHILD-OF-TARGET": "This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT": "This element hides the element or a parent element of the input you are trying to apply visibility rule from."
}
},
"FORM-VALIDATION":{
"ERROR-MESSAGES":{
"FORM-VALIDATION": {
"ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter."
"MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
}
},
"TABLE-OF-CONTENTS":{
"ERROR-MESSAGES":{
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.",
"TABLE-OF-CONTENTS": {
"ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION": "Question can only be child of section.",
"INPUT-SECTION-SAME-LEVEL": "Cannot have question and section on the same level.",
"DRAG-NOT-SUPPORTED":"Drag n drop of section not supported to target container.",
"DRAG-NOT-SUPPORTED": "Drag n drop of section not supported to target container.",
"PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
}
}
@ -512,8 +516,8 @@
"ADD-PAGE": "Pridať stránku +",
"ADD-SECTION": "Pridať sekciu +",
"VALIDATE": "Potvrdiť",
"PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top",
"PREVIEW-AND-FINALIZE": "Preview & Finalize",
"BACK-TO-TOP": "Back to top",
"FIELD": {
"MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet"
},
"FIELDSET": {
"ADD-INPUT": "Add new input",
"ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.",
"ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.."
}
},
"FEEDBACK-MESSAGES":{
"SAVE-SUCCESS":"Changes were saved successfully."
"FEEDBACK-MESSAGES": {
"SAVE-SUCCESS": "Changes were saved successfully."
},
"ERRORS":{
"INVALID-VISIBILITY-RULES":{
"ERRORS": {
"INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.",
"REMOVE-SUCCESS":"Invalid visibility rules were removed successfully."
"REMOVE-SUCCESS": "Invalid visibility rules were removed successfully."
}
}
},
@ -553,7 +557,7 @@
"DMP-LISTING": {
"DMP": "DMP",
"GRANT": "Grant",
"TITLE": "Data Management plány",
"TITLE": "Plány manažmentu dát",
"OWNER": "Vlastník",
"MEMBER": "Člen",
"CREATOR": "Autor",
@ -562,7 +566,7 @@
"PUBLISHED": "Publikované",
"VERSION": "Verzia",
"CONTAINED-DATASETS": "Počet súborov dát",
"TEXT-INFO": "Informácie v DMP ukazujú, ako boli súbory dát zhromaždené a/alebo vygenerované, ako boli spracované a analyzované, t.j. ktoré nástroje, normy a metódy a pod. sa použili. Ale tiež kde a ako sú súbory dát zálohované, publikované a uchovávané, vrátane nákladov na pracovníkov, ktorí sa venujú získavaniu a spravovaniu dát alebo nákladov na získanie a budovanie nástrojov a programov na manažment dát.",
"TEXT-INFO": "Informácie v DMP ukazujú, ako boli súbory dát zhromaždené a/alebo vygenerované, ako boli spracované a analyzované, t.j. ktoré nástroje, štandardy a metódy a pod. sa použili. Ale tiež kde a ako sú súbory dát zálohované, publikované a uchovávané, vrátane nákladov na pracovníkov, ktorí sa venujú získavaniu a spravovaniu dát alebo nákladov na získanie a budovanie nástrojov a programov na manažment dát.",
"TEXT-INFO-QUESTION": "Neviete ako vyzerá DMP v praxi? Prezrite si verejné DMP a",
"LINK-ZENODO": "LIBER komunitu v Zenodo,",
"GET-IDEA": "aby ste získali predstavu.",
@ -582,20 +586,20 @@
},
"ACTIONS": {
"NEW": "Nový DMP",
"NEW-WITH-WIZARD": "Nový DMP použitím nástroja sprievodca",
"EDIT": "Upraviť",
"NEW-WITH-WIZARD": "Nový DMP-použiť Sprievodcu",
"EDIT": "Editovať",
"INVITE": "Pozvať prispievateľov",
"INVITE-AUTHORS": "Pozvať autorov",
"INVITE-SHORT": "Pozvať",
"ADD-DATASET": "Pridať súbor dát do DMP",
"ADD-DATASET-DESCRIPTION": "Pridať typ súboru dát",
"ADD-DATASET-DESCRIPTION": "Pridať súboru dát",
"ADD-DATASET-SHORT": "Pridať súbor dát",
"DATASETS": "Uviesť všetky súbory dát DMP",
"NEW-VERSION": "Nová verzia",
"START-NEW-VERSION": "Začať novú verziu",
"VIEW-VERSION": "Všetky verzie DMP",
"CLONE": "Klonovať",
"COPY": "Kopírovať",
"COPY": "Copy",
"DELETE": "Vymazať",
"DEPOSIT": "Vložiť",
"EXPORT": "Exportovať",
@ -614,8 +618,8 @@
"TOOLTIP": {
"DMP-STATUS": {
"DRAFT": "Neverejný prístup -editovateľný DMP",
"FINALIZED": "Neverejný prístup - uzavreté DMP",
"PUBLISHED": "Verejný prístup - uzavreté DMP"
"FINALIZED": "Neverejný prístup - uzavretý DMP",
"PUBLISHED": "Verejný prístup - uzavretý DMP"
},
"LEVEL-OF-ACCESS": "Úroveň prístupu",
"INVOLVED-DATASETS": "Použité súbory dát",
@ -625,7 +629,7 @@
"EMPTY-LIST": "Zatiaľ prázdne."
},
"DMP-PUBLIC-LISTING": {
"TITLE": "Publikované Data Management plány",
"TITLE": "Publikované Plány manažmentu dát",
"OWNER": "Vlastník",
"MEMBER": "Člen",
"CREATOR": "Autor",
@ -638,7 +642,7 @@
"EMPTY-LIST": "Zatiaľ prázdne."
},
"DMP-UPLOAD": {
"TITLE": "Importovať Data Management plán",
"TITLE": "Importovať Plán manažmentu dát",
"UPLOAD-BUTTON": "Nahrať",
"UPLOAD-SUCCESS": "Importovanie bolo úspešné",
"ACTIONS": {
@ -649,7 +653,7 @@
},
"DATASET-WIZARD": {
"TITLE": {
"NEW": "Nový súbor dát"
"NEW": "Nový Súbor dát"
},
"EDITOR": {
"FIELDS": {
@ -660,7 +664,7 @@
},
"FIRST-STEP": {
"TITLE": "Informácie o súbore dát",
"DMP": "Data Management plán",
"DMP": "Plán manažmentu dát",
"PROFILE": "Šablóna súboru dát",
"SUB-TITLE": "Vytvorený v: "
},
@ -677,7 +681,7 @@
"BACK-TO": "Späť na",
"DELETE": "Vymazať",
"GO-TO-GRANT": "Prejsť na Grant súboru dát",
"GO-TO-DMP": "Prejsť DMP súboru dát",
"GO-TO-DMP": "Prejsť na DMP súboru dát",
"SAVE": "Uložiť",
"SAVE-AND-ADD": "Uložiť a pridať nový",
"SAVE-AND-CLOSE": "Uložiť a zavrieť",
@ -690,7 +694,8 @@
"DOWNLOAD-XML": "Stiahnuť XML",
"DOWNLOAD-DOCX": "Stiahnuť DOCX",
"COPY-DATASET": "Kopírovať súbor dát",
"UPDATE-DATASET-PROFILE": "Aktualizovať šablónu"
"UPDATE-DATASET-PROFILE": "Aktualizovať šablónu",
"VALIDATE":"Validate"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Súbor dát neexistuje",
@ -751,10 +756,10 @@
"DATASET-LISTING": {
"TITLE": "Súbory dát",
"DATASET-DESCRIPTION": "Súbor dát",
"SELECT-DATASETS-TO-CLONE": "Vyberte súbory dát, ktoré sa majú začleniť do nového DMP. Vybrané súbory dát bude možné upravovať.",
"SELECT-DATASETS-TO-CLONE": "Vyberte súbory dát, ktoré sa majú začleniť do nového DMP. Vybrané súbory dát bude možné editovať.",
"SELECT-DATASETS-NONE": "K tomuto DMP nie sú dostupné súbory dát.",
"TEXT-INFO": "Súbory dát sú dokumentované podľa vopred stanovený šablón, ktoré určujú obsah daného typu súboru dát. V Argose môže DMP obsahovať toľko typov súborov dát, koľko súborov dát dané DMP dokumentuje. Prezrieť",
"TEXT-INFO-REST": " súbory dát začlene do DMP v Argose",
"TEXT-INFO": "Súbory dát sú dokumentované podľa vopred definovaných šablón, ktoré určujú obsah daného typu súboru dát. V Argose môže DMP obsahovať toľko typov súborov dát, koľko súborov dát dané DMP dokumentuje. Prezrieť",
"TEXT-INFO-REST": " súbory dát začlené do DMP v Argose",
"LINK-PUBLIC-DATASETS": "Verejné súbory dát",
"TEXT-INFO-PAR": "Nové súbory dát je možné kedykoľvek pridať do existujúcich DMP a definovať ich prostredníctvom viacerých šablón. Súbory dát je možné klonovať a opätovne použiť, ako aj vymazať, pričom to nebude mať negatívny dopad na DMP ako celok.",
"COLUMNS": {
@ -776,11 +781,11 @@
"SERVICES": "Služby"
},
"ACTIONS": {
"EDIT": "Upraviť",
"EDIT": "Editovať",
"MAKE-IT-PUBLIC": "Zverejniť",
"VIEW": "Pozrieť",
"NEW": "Nový súbor dát",
"CREATE-NEW": "Vytvoriť nový súbor dát",
"NEW": "Nový Súbor dát",
"CREATE-NEW": "Vytvoriť nový Súbor dát",
"EXPORT": "Exportovať",
"INVITE-COLLABORATORS": "Pozvať spolupracovníkov",
"INVITE-SHORT": "Invite"
@ -839,13 +844,13 @@
"SERVICES": "Služby"
},
"ACTIONS": {
"EDIT": "Upraviť",
"EDIT": "Editovať",
"MAKE-IT-PUBLIC": "Zverejniť",
"VIEW": "Pozrieť",
"CLONE": "Klonovať",
"NEW-VERSION": "Nová verzia",
"VIEW-VERSIONS": "Všetky verzie šablóny súboru dát",
"DELETE":"Delete"
"DELETE": "Delete"
}
},
"DATASET-UPLOAD": {
@ -867,7 +872,7 @@
"DMP-PROFILE-EDITOR": {
"TITLE": {
"NEW": "Nová šablóna DMP",
"EDIT": "Upraviť"
"EDIT": "Editovať"
},
"FIELDS": {
"TITLE": "Polia",
@ -895,7 +900,7 @@
},
"GRANT-EDITOR": {
"TITLE": {
"NEW": "Nový grant",
"NEW": "Nový Grant",
"EDIT": "Upraviť"
},
"FIELDS": {
@ -911,13 +916,13 @@
"SAVE": "Uložiť",
"CANCEL": "Zrušiť",
"DELETE": "Vymazať",
"GO-TO-DMPS": "Prejsť do DMP",
"GO-TO-DMPS": "Prejsť na DMP",
"VISIT-WEBSITE": "Navštíviť webovú stránku"
}
},
"DMP-EDITOR": {
"TITLE": {
"NEW": "NovýData Management plán",
"NEW": "Nový Plán manažmentu dát",
"EDIT": "Upraviť",
"EDIT-DMP": "Úprava DMP",
"ADD-DATASET": "Pridanie súboru dát",
@ -930,19 +935,19 @@
},
"FIELDS": {
"NAME": "Názov",
"RELATED-GRANT": "Ďalší grant",
"RELATED-GRANT": "Súvisiaci grant",
"DESCRIPTION": "Opis",
"DESCRIPTION-HINT": "Briefly describe the context and purpose of the DMP",
"ORGANISATIONS": "Organizácie",
"ORGANISATIONS-HINT": "Tu pridajte názvy organizácií, ktoré prispievajú k vytvoreniu alebo revízii DMP",
"ORGANISATIONS-HINT": "Tu pridajte názvy organizácií, ktoré sa podieľajú na vytvorení alebo revízii DMP",
"RESEARCHERS": "Výskumníci",
"RESEARCHERS-HINT": "Add here the names of people that have produced, processed, analysed the data described in the DMP. ",
"AUTHORS": "Autori",
"TEMPLATES": "Šablóny",
"TEMPLATE": "DMP šablóny",
"DATASET-TEMPLATES": "Ďalšie šablóny súborov dát",
"TEMPLATE": "DMP šablóna",
"DATASET-TEMPLATES": "Súvisiace šablóny súborov dát",
"SELECT-TEMPLATE": "Vyberte šablónu, ktorá definuje váš súbor dát",
"PROFILE": "DMP šablóna",
"PROFILE": "Šablóna DMP",
"PROJECT": "Projekt",
"GRANT": "Grant",
"GRANTS": "Granty",
@ -957,7 +962,7 @@
"LANGUAGE": "Jazyk",
"LANGUAGE-HINT": "Select the language of your DMP",
"LICENSE": "Licencia",
"VISIBILITY": "Dostupnosť",
"VISIBILITY": "Viditeľnosť",
"VISIBILITY-HINT": "Choose how the DMP is displayed in Argos. By choosing Public, the DMP is automatically made available to all users from the “Public DMPs” collection.",
"PUBLICATION": "Dátum publikovania",
"CONTACT": "Kontakt",
@ -1011,17 +1016,17 @@
"NEXT": "Ďalej"
},
"MAIN-INFO": {
"INTRO": "DMP v platforme Argos tvoria kľúčové informácie o výskume, ako sú napríklad účel, ciele, a zapojení výskumníci, ale aj informácie o dokumentácii výskumných súborov dát, hlavne o typoch súborov dát, ktoré ukazujú postupnosť krokov a prostriedkov používaných v rámci manažmentu dát.",
"HINT": "Stručný opis toho, čoho sa DMP týka, jeho rozsah a ciele.",
"INTRO": "DMP v platforme Argos tvoria kľúčové informácie o výskume, ako sú napríklad účel, ciele a zapojení výskumníci, ale aj informácie o dokumentácii výskumných súborov dát, hlavne o typoch dátových súborov, ktoré ukazujú postupnosť krokov a prostriedkov používaných v rámci manažmentu dát.",
"HINT": "Stručný opis toho, čoho sa DMP týka, rozsah a ciele DMP.",
"TYPING": "Napíšte viac písmen názvu, aby bolo možné nájsť správny DMP.",
"UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation identifier already exists.",
"IDENTIFIER-EXISTS-RESEARCHER-LIST":"This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST":"This identifier is already used by an organisation in the organisations list."
"IDENTIFIER-EXISTS-RESEARCHER-LIST": "This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
},
"FUNDING-INFO": {
"INTRO": "You are using the DMP editor. Add here information about the scope, funding, actors of your DMP and decide on access and re-use issues for the DMP output that you are creating.",
"INTRO": "Plán manažmentu dát (DMP, z angl. Data Management Plan) tvoria vaše plány manažmentu dát, ktoré sú bližšie miestu, kde sú vygenerované, analyzované a uložené. Argos je otvorený, rozširovateľný, kolaboratívny nástroj, ktorý podporuje plány manažmentu otvorených dát a FAIR dát (Open and FAIR Data Management Plans).",
"FIND": "Nenašli ste správny súbor?",
"UNIQUE-IDENTIFIER": "Unique Identifier",
"IDENTIFIER-FUNDER-EXISTS": "A funder with the given identifier exists.",
@ -1029,28 +1034,32 @@
"IDENTIFIER-PROJECT-EXISTS": "A project with the given identifier exists."
},
"DATASET-INFO": {
"INTRO": "DMP v platforme Argos tvoria kľúčové informácie o výskume, ako sú napríklad účel, ciele, a zapojení výskumníci, ale aj o dokumentácii výskumných súborov dát, hlavne informácie o typoch súborov dát, ktoré ukazujú postupnosť krokov a prostriedkov používaných v rámci manažmentu dát.",
"INTRO": "DMP v platforme Argos tvoria kľúčové informácie o výskume, ako sú napríklad účel, ciele a zapojení výskumníci, ale aj o dokumentácii výskumných súborov dát, hlavne informácie o typoch súborov dát, ktoré ukazujú postupnosť krokov a prostriedkov používaných v rámci manažmentu dát.",
"SECOND-INTRO": "Súbory dát sa vytvárajú podľa vopred definovaných šablón, ktoré určujú obsah typu súboru údajov. DMP v Argose obsahuje toľko typov súborov údajov, koľko je súborov dát v ňom vytvorených.",
"FIND": "Nenašli ste správny súbor?",
"HINT": "Select a template to describe your datasets. You may select more than one template."
},
"LICENSE-INFO": {
"INTRO": "Každý DMP obsahuje špecifické informácie o licencii, o tom nakoľko je otvorená a prístupná. Takto je možné určiť, kto môže vidieť váš súbor údajov a ako dlho budú údaje neverejné.",
"HINT": "Stručný opis licencie, ktorú DMP používa, jej druh a kedy bude otvorená.",
"HINT": "Stručný opis licencie, ktorú DMP používa, jej druh a kedy bude DMP otvorený.",
"TYPING": "Napíšte viac písmen názvu, aby bolo možné nájsť správnu licenciu."
},
"DATASET-DESCRIPTION": {
"INTRO": "Vo všeobecnosti by Vaše výskumné dáta mali byť \"fair\" to znamená nájditeľné (findable), dostupné (accessible), interoperabilné (inter-operable) a znovu využiteľné (re-usable). Tieto princípy predchádzajú výberu implementácie a nemusia nevyhnutne určovať konkrétnu technológiu, štandard alebo implementačné riešenie. Cieľom tejto šablóny nie je striktná technická implementácia princípu \"fair\" dáta, ale skôr sa ním inšpiruje ako všeobecným konceptom."
"INTRO": "Vaše výskumné dáta mali byť \"fair\" to znamená vyhľadateľné (findable), dostupné (accessible), interoperabilné (inter-operable) a znovu využiteľné (re-usable). Tieto princípy predchádzajú výberu implementácie a nemusia nevyhnutne určovať konkrétnu technológiu, štandard alebo implementačné riešenie. Cieľom tejto šablóny nie je striktná technická implementácia princípu \"fair\" dáta, ale skôr sa ním inšpiruje ako všeobecným konceptom."
},
"CHANGES": "neuložené zmeny",
"CLONE-DIALOG": {
"CLONE": "Klonovať",
"SAVE": "Uložiť",
"CANCEL": "Zrušiť"
},
"LOCKED":{
"TITLE":"DMP is locked",
"MESSAGE":"Somebody else is modifying the DMP at this moment. You may view the dataset but you cannot make any changes."
}
},
"DMP-PROFILE-LISTING": {
"TITLE": "DMP šablóny",
"TITLE": "Šablóny DMP",
"COLUMNS": {
"NAME": "Názov",
"STATUS": "Stav",
@ -1060,7 +1069,7 @@
},
"UPLOAD": {
"UPLOAD-XML": "Importovať",
"UPLOAD-XML-FILE-TITLE": "Importovať šablónu Data Manangement plánu",
"UPLOAD-XML-FILE-TITLE": "Importovať šablónu Plánu manažmentu dát",
"UPLOAD-XML-NAME": "Názov šablóny DMP",
"UPLOAD-XML-IMPORT": "Súbor",
"UPLOAD-XML-FILE-CANCEL": "Zrušiť"
@ -1099,21 +1108,21 @@
"STATUS": "Stav",
"NONE": "-",
"TAGS": "Tagy",
"SELECT-TAGS": "Vybrať tagy",
"LIKE": "Hľadať súbory dát",
"SELECT-TAGS": "Hľadať súbory dát",
"LIKE": "Search Datasets",
"DRAFT-LIKE": "Hľadať návrhy súborov dát",
"SELECT-GRANTS": "Vybrať granty",
"ROLE": "Rola",
"ORGANIZATION": "Organizácia",
"SELECT-ORGANIZATIONS": "Vybrať organizáciu",
"SELECT-SPEC": "Vybrať špecifikáciu súboru dát",
"RELATED-GRANT": "Ďalší grant",
"RELATED-GRANT": "Súvisiaci grant",
"SELECT-DMP": "Vybrať DMP",
"RELATED-DMP": "Ďalší DMP",
"RELATED-DMP": "Súvisiaci DMP",
"SELECT-COLLABORATORS": "Vybrať spolupracovníkov",
"RELATED-COLLABORATORS": "Ďalší spolupracovníci",
"RELATED-COLLABORATORS": "Súvisiaci spolupracovníci",
"SELECT-DATASET-TEMPLATES": "Vybrať šablóny súborov dát",
"RELATED-DATASET-TEMPLATES": "Ďalšie šablóny súborov dát",
"RELATED-DATASET-TEMPLATES": "Súvisiace šablóny súborov dát",
"ALL-VERSIONS": "Zo všetkých verzií"
},
"DMP": {
@ -1121,9 +1130,9 @@
"GRANTS": "Granty",
"SELECT-GRANTS": "Vybrať grant",
"SELECT-COLLABORATORS": "Vybrať spolupracovníkov",
"RELATED-COLLABORATORS": "Ďalší spolupracovníci",
"RELATED-COLLABORATORS": "Súvisiaci spolupracovníci",
"SELECT-DATASET-TEMPLATES": "Vybrať šablóny súborov dát",
"RELATED-DATASET-TEMPLATES": "Ďalšie šablóny súborov dát"
"RELATED-DATASET-TEMPLATES": "Súvisiace šablóny súborov dát"
},
"USERS": {
"LABEL": "Hľadať",
@ -1135,9 +1144,9 @@
},
"DATASET-EDITOR": {
"TITLE": {
"NEW": "Nový Data Management plán",
"NEW": "Nový Plán manažmentu dát",
"EDIT": "Upraviť",
"INTRO": "You are using the Dataset editor. Answer here questions that describe your data management activities.",
"INTRO": "Plán manažmentu dát (DMP, z angl. Data Management Plan) tvoria vaše plány manažmentu dát, ktoré sú bližšie miestu, kde sú vygenerované, analyzované a uložené. Argos je otvorený, rozširovateľný, kolaboratívny nástroj, ktorý podporuje plán manažmentu otvorených a FAIR dát (Open and FAIR Data Management Plans).",
"INTRO-TIP": "Tip: Add new datasets to describe different types of data or disciplinary data to avoid mixing information."
},
"FIELDS": {
@ -1165,18 +1174,18 @@
"CANCEL": "Zrušiť",
"DELETE": "Vymazať",
"UPDATE": "Aktualizovať",
"DISCARD":{
"DISCARD-NEW-MESSAGE":"All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM":"Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.",
"DISCARD-EDITED-MESSAGE":"All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM":"Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No."
"DISCARD": {
"DISCARD-NEW-MESSAGE": "All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY": "No.",
"DISCARD-EDITED-MESSAGE": "All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY": "No."
}
},
"PLACEHOLDER": {
"DESCRIPTION": "Doplniť opis",
"EXTERNAL-LINK": "Poskytnúť externý URL link"
"EXTERNAL-LINK": "Uviesť externý URL link"
},
"HINT": {
"DESCRIPTION": "Briefly describe the context and purpose of the Dataset",
@ -1184,7 +1193,7 @@
"TITLE-REST": " , opis rozsahu a cieľov."
},
"VERSION-DIALOG": {
"ABOUT": "Správa verzií je automatizovaná.",
"ABOUT": "Verziovanie je automatizované.",
"QUESTION": "Zdá sa, že Vaša šablóna súboru dát je zastaraná. Chcete ju aktualizovať na najnovšiu verziu?"
}
},
@ -1267,7 +1276,7 @@
"DRAFT": "Návrh"
},
"DMP-VISIBILITY": {
"VISIBILITY": "Dostupnosť",
"VISIBILITY": "Viditľnosť",
"PUBLIC": "Publikované",
"FINALIZED": "Dokončené",
"DRAFT": "Návrh",
@ -1282,7 +1291,7 @@
"CHECKBOX": "Zaškrtávacie pole (Checkbox)",
"COMBO-BOX": "Kombinované pole (Combo Box)",
"INTERNAL-DMP-ENTITIES": "Interné DMP entity (Internal DMP Entities)",
"FREE-TEXT": "Neštruktúrovaný text (Neštruktúrovaný text)",
"FREE-TEXT": "Neštruktúrovaný text (Free Text)",
"RADIO-BOX": "Pole výberu (Radio Box)",
"TEXT-AREA": "Textová oblasť (Text Area)",
"DATE-PICKER": "Výber dátumu (Date Picker) ",
@ -1318,8 +1327,8 @@
"ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories"
},
"DATASET-PROFILE-IDENTIFIER":{
"IDENTIFIER-TYPE":"Identifier Type"
"DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE": "Identifier Type"
},
"RECENT-ACTIVITY-ORDER": {
"CREATED": "Vytvorené",
@ -1361,7 +1370,7 @@
},
"DMP-WIZARD": {
"FIRST-STEP": {
"DMP": "DMP editor",
"DMP": "DMP Editor",
"DATASETS": "Súbory dát"
},
"ACTIONS": {
@ -1371,10 +1380,10 @@
}
},
"DMP-RELATED-GRANT": {
"RELATED-GRANT": "Ďalší grant"
"RELATED-GRANT": "Súvisiaci grant"
},
"DMP-RELATED-COLLABORATOR": {
"RELATED-COLLABORATOR": "Ďalší spolupracovníci",
"RELATED-COLLABORATOR": "Súvisiaci spolupracovníci",
"SELECT-COLLABORATORS": "Vybrať spolupracovníka"
},
"DMP-RELATED-ORGANIZATION": {
@ -1390,8 +1399,8 @@
"MY-TITLE-GRANT": "Moja nedávna aktivita - Grant",
"MY-TITLE-DMP": "Moja nedávna aktivita - DMP",
"MY-TITLE-DATASET": "Moja nedávna aktivita - Súbor dát",
"LAST-VISITED-DMP": "Naposledy navštívený Data Management plán",
"LAST-EDITED-DMP": "Naposledy upravovaný Data Management plán",
"LAST-VISITED-DMP": "Naposledy navštívený Plánmanažmentu dát",
"LAST-EDITED-DMP": "Naposledy upravený Plán manažmentu dát",
"LICENSE": "Nižšie uvedené DMP sú verejne dostupné pod licenciou ##"
},
"FILE-UPLOADER": {
@ -1413,7 +1422,7 @@
"ABOUT": {
"TITLE-DASHED": "-O nástroji-",
"TITLE": "O nástroji",
"MAIN-CONTENT": "Našim cieľom je, aby boli Vaše výskumné dáta nájditeľné, dostupné, interoperabilné a znovu využiteľné (FAIR). Tieto princípy predchádzajú výberu implementácie a nemusia nevyhnutne určovať konkrétnu technológiu, štandard alebo implementačné riešenie.",
"MAIN-CONTENT": "Našim cieľom je, aby boli Vaše výskumné dáta vyhľadateľné, dostupné, interoperabilné a znovu využiteľné (FAIR). Tieto princípy predchádzajú výberu implementácie a nemusia nevyhnutne určovať konkrétnu technológiu, štandard alebo implementačné riešenie.",
"CONTRIBUTORS": "Prispievatelia",
"WELCOME": "Vitajte v ARGOSE",
"WELCOME-MESSAGE": "Vytvárajte, prepájajte, zdieľajte svoje plány manažmentu dát (DMP)."
@ -1442,7 +1451,7 @@
"TITLE": "Používateľská príručka",
"TITLE-DASHED": "-Používateľská príručka-",
"CLOSE": "Zavrieť",
"SAVE": "Uložiť"
"SAVE": "Save"
},
"PRIVACY-POLICY": {
"TITLE": "-Zásady ochrany súkromných údajov-",
@ -1484,18 +1493,18 @@
"MY-DMPS": "Moje DMP",
"TITLE": "Čo je ARGOS?",
"DMP-QUESTION": "Čo je DMP v ARGOSE?",
"INFO-TEXT": "ARGO je otvorený šíriteľný nástroj, ktorý zjednodušuje manažment, validovanie, monitorovanie a údržbu plánov manažmentu dát (DMP, Data Management Plan). Umožňuje aktérom (výskumníkom, manažérom, supervízorom apod.) vytvárať strojovo využiteľné DMP, ktoré sa môžu voľne vymieňať medzi infraštuktúrami na realizáciu konkrétnych aspektov procesu manažmentu dát v súlade so zámermi a záväzkami vlastníkov dát.",
"INFO-DMP-TEXT": "Data Management Plan (DMP) je živý dokument definujúci súbory dát, ktoré sú vygenerované a/alebo znovu používané počas výskumného projektu a po jeho ukončení. Cieľom DMP je poskytnúť výskumným pracovníkom dôležité informácie tak, aby mohli opätovne vytvoriť, opätovne distribuovať a opätovne použiť výskumné výsledky, čím sa zaistí validácia a lepšie využite dát.",
"INFO-TEXT": "ARGOS je otvorený, rozširovateľný nástroj, ktorý zjednodušuje manažment, validovanie, monitorovanie a údržbu plánov manažmentu dát (DMP, z angl. Data Management Plan). Umožňuje aktérom (výskumníkom, manažérom, supervízorom apod.) vytvárať strojovo spracovateľné DMP, ktoré sa môžu voľne vymieňať medzi infraštuktúrami na realizáciu konkrétnych aspektov procesu manažmentu dát v súlade so zámermi a záväzkami vlastníkov dát.",
"INFO-DMP-TEXT": "Plán manažmentu dát (DMP, z angl. Data Managment Plan) je živý dokument definujúci súbory dát, ktoré sú vygenerované a/alebo znovu používané počas výskumného projektu a po jeho ukončení. Cieľom DMP je poskytnúť výskumným pracovníkom dôležité informácie tak, aby mohli opätovne vytvoriť, opätovne distribuovať a opätovne použiť výskumné výsledky, čím sa zaistí validácia a lepšie využite dát.",
"NEW-QUESTION": "Nový používateľ DMP? Navštívte",
"START-YOUR-FIRST-DMP": "Začať prvý DMP",
"OPEN-AIR-GUIDE": "webovú stránku Príručka OpenAIRE pre výskumných pracovníkov,",
"LEARN-MORE": "aby ste sa dozvedeli viac o vytvorení DMP.",
"ORGANIZATIONS": "Ďalšie organizácie",
"OPEN-AIR-GUIDE": "Príručka OpenAIRE pre výskumných pracovníkov,",
"LEARN-MORE": "poskytne viac informácií o vytvorení DMP.",
"ORGANIZATIONS": "Súvisiace organizácie",
"DMPS": "DMP",
"MY-DATASETS": "Moje súbory dát",
"DATASETS": "Súbory dát",
"SEARCH": "HĽADAŤ...",
"DATA-MANAGEMENT-PLANS": "DATA MANAGEMENT PLÁNY",
"DATA-MANAGEMENT-PLANS": "PLÁNY MANAŽMENTU DÁT",
"PERSONAL-USAGE": "Osobné použitie",
"PUBLIC-USAGE": "Verejné použitie",
"DATASET-DESCRIPTIONS": "Súbory dát",
@ -1506,7 +1515,7 @@
"ALL": "Všetko",
"EMPTY-LIST": "Zatiaľ prázdne.",
"LATEST-ACTIVITY": "Posledná aktivita",
"DMP-ABOUT-BEG": "DMP v Argose tvoria kľúčové informácie o výskume, ako sú napríklad účel, ciele, a zapojení výskumníci, ale aj informácie o dokumentácii výskumných súborov dát, hlavne",
"DMP-ABOUT-BEG": "DMP v Argose tvoria kľúčové informácie o výskume, ako sú napríklad účel, ciele a zapojení výskumníci, ale aj informácie o dokumentácii výskumných súborov dát, hlavne",
"DMP-ABOUT-END": "o typoch súborov dát, ktoré ukazujú postupnosť krokov a prostriedkov používaných v rámci manažmentu dát.",
"SELECT-DMP": "Vybrať DMP pre svoj súbor dát",
"ACTIONS": {
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.",
"DATASET": "This is your dashboard. You can view and edit all Datasets that you have either contributed to or created yourself.",
"NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!",
"LEAVE-TOUR":"Leave Tour"
"GOT-IT": "Got it!",
"LEAVE-TOUR": "Leave Tour"
},
"ADD-NEW-DATASET":{
"OPTIONS-NOT-ENOUGH":"Are those options not enough?",
"START-NEW-DMP":"Start new DMP"
"ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP": "Start new DMP"
}
},
"USER-DIALOG": {
@ -1544,13 +1553,13 @@
"CONNECTED-WITH": "Connected with",
"NAME": "Name",
"ORGANIZATION": "Organization",
"ROLE": "Rola",
"ROLE": "Role",
"SELECT-ROLE": "Select Role",
"ACCOUNTS": "Accounts",
"EMAILS": "Emails",
"YOUR-EMAIL": "Your Email"
},
"ASSOCIATED-DMPS": "Pridružené DMP",
"ASSOCIATED-DMPS": "Súvisiace DMP",
"DMPS": {
"SHOW-ALL": "Ukázať všetko",
"CREATOR": "Autor",
@ -1558,10 +1567,10 @@
},
"ZENODO": {
"LOGIN": "Prihlásiť sa do Zenodo",
"LOGOUT": "odstrániť Zenodo",
"LOGOUT": "Odstrániť Zenodo",
"AUTHORIZE": "Authorize Zenodo",
"TITLE": "Zenodo účet",
"DESCRIPTION": "Prepojený Zenodo účet"
"DESCRIPTION": "Prepojený Zenodo účet :"
},
"ROLE-ORGANIZATION": {
"FACULTY": "Faculty",
@ -1623,7 +1632,7 @@
}
},
"GRANT": {
"TITLE": "Ďalšie granty",
"TITLE": "Súvisiace granty",
"FILTER": "Filtrovať granty"
},
"PROFILES": {
@ -1653,7 +1662,7 @@
},
"IMPACT": "Týmto krokom dokončíte svoj DMP a nebudete ho môcť znovu editovať.",
"AFTER-FINALIZATION": "Po dokončení DMP ho budete môcť Zverejniť, čím bude verejne dostupný pre ARGOS nástroje .",
"INVALID":"Invalid"
"INVALID": "Invalid"
},
"DRAFTS": {
"FOR-DMP": "Pre DMP:",
@ -1666,7 +1675,7 @@
"SUBTITLE": "Vytvorte nový DMP a opíšte svoj/e Súbor/y dát. Náš sprievodca Vás postupne prevedie všetkými dôležitými prvkami definovania DMP.",
"QUICKWIZARD_CREATE": {
"TITLE": "DMP Sprievodca (Wizard)",
"POST-SELECTION-INFO": "Tento sprievodca Vám umožní vytvoriť nový DMP pri poskytnutí iba základných informácií, potrebných na vytvorenie DMP. Ďalej Vám umožní definovať jeden alebo dva súbory dát, ktoré sú spravované v tomto DMP. Po dokončení DMP prostredníctvom sprievodcu budete môcť DMP ďalej editovať, pričom budete mať prístup k jeho pokročilým prvkom prostredníctvom úplného editora DMP, dokonca budete môcť pridávať nové súbory dát a editovať predchádzajúce.",
"POST-SELECTION-INFO": "Tento sprievodca Vám umožní vytvoriť nový DMP pri poskytnutí iba základných informácií, potrebných na vytvorenie DMP. Ďalej Vám umožní definovať jeden alebo dva súbory dát, ktoré sú spravované v tomto DMP. Po dokončení DMP budete môcť DMP ďalej editovať prostredníctvom sprievodcu, pričom budete mať prístup k jeho pokročilým prvkom prostredníctvom úplného editora DMP, dokonca budete môcť pridávať nové súbory dát a editovať predchádzajúce.",
"ACTIONS": {
"DELETE": "Vymazať",
"SAVE": "Uložiť",
@ -1702,7 +1711,7 @@
}
},
"SECOND-STEP": {
"TITLE": "DMP profil",
"TITLE": "Profil DMP",
"ABOUT": "Data Management plán tvorí súbor otázok, na ktoré by ste mali odpovedať tak podrobne, ako si to vyžaduje grant alebo tak, aby zodpovedali účelu, na ktorý vytvárate DMP. Obsah každého DMP sa môže líšiť v závislosti od zvolených šablón súborov dát. Šablóny obsahujú súbor otázok špecifikovaných tak, aby dokázali reagovať na požiadavky politík financovateľov, inštitúcií, vedeckých komunít.",
"NEW-TITLE": "",
"DMP-NAME": "DMP pre grant : ",
@ -1711,7 +1720,7 @@
"DESCRIPTION": "Súhrn",
"DESCRIPTION-HINT": "Stručne opíšte obsah a účel DMP",
"PROFILE": "Šablóna súborov dát",
"PROFILE-HINT": "Vyberte šablónu na opísanie súboru dát alebo súborov dát. Ak chcete vybrať viac šablón súborov dát, použite príkaz \"Nový DMP (Expert)\". Nové súbory dát môžete tiež pridať kedykoľvek po vytvorení DMP.",
"PROFILE-HINT": "Vyberte šablónu na opísanie/definovanie súboru dát alebo súborov dát. Ak chcete vybrať viac šablón súborov dát, použite príkaz \"Nový DMP (Expert)\". Nové súbory dát môžete pridať aj kedykoľvek po vytvorení DMP.",
"HELP": "Ak nenájdete šablónu alebo chcete vytvoriť personalizovanú šablónu pre svoju inštitúciu, vedeckú komunitu alebo kvôli školeniu, kontaktujte nás."
}
},
@ -1730,7 +1739,7 @@
"TITLE": "Pridať súbor dát do existujúceho DMP",
"DATASET-WIZARD": "Sprievodca pre súbor dát ",
"POST-SELECTION-INFO": "Tento sprievodca zjednodušuje proces pridávania nových súborov dát do existujúcich DMP, pričom Vás naviguje a vyžaduje iba najdôležitejšie informácie potrebné na splnenie úlohy. Plný prístup k atribútom súboru dát môžete získať prostredníctvom ponúk (menus) na prístup k súborom dát v systéme.",
"SUBTITLE": "Tento sprievodca Vám umožňuje opísať ďalšie súbory dát spravované v rámci DMP, pričom na ich opis používa iba dôležité informácie.",
"SUBTITLE": "Tento sprievodca Vám umožňuje opísať/definovať ďalšie súbory dát spravované v rámci DMP, pričom na ich opis používa iba dôležité informácie.",
"CREATED": "Vytvorené"
}
},
@ -1749,4 +1758,4 @@
"FINALIZED": "Dokončené",
"DELETED": "Deleted"
}
}
}

View File

@ -290,13 +290,13 @@
"DATASET-TEMPLATE-LANGUAGE": "Dataset template language",
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-NO-USERS-YET":"... No users yet",
"DATASET-TEMPLATE-NO-USERS-YET": "... No users yet",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled",
"QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline"
"TEMPLATE-OUTLINE": "Template outline"
},
"PAGE-INFO": {
"PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter",
"CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
},
"ERROR-MESSAGES":{
"ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.",
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED":"There must be at least one option provided."
"FIELD-RADIO-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided.",
"FIELD-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
},
"DEFAULT-VALUES": {
"NONE": "Nijedan",
@ -461,6 +461,10 @@
},
"ACTIONS": {
"ADD-RULE": "Dodajte pravilo vidljivosti +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
}
},
"RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "Ako je vrednost",
"RULE-THEN": "then show Question",
"FIELDSETS": "Questions",
"FIELDS":"Inputs"
"FIELDS": "Inputs"
},
"HINTS":{
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT":"This element hides the element or a parent element of the input you are trying to apply visibility rule from."
"HINTS": {
"ELEMENT-CHILD-OF-TARGET": "This element is parent of selected input.",
"ELEMENT-HIDDEN-FROM-ELEMENT": "This element hides the element or a parent element of the input you are trying to apply visibility rule from."
}
},
"FORM-VALIDATION":{
"ERROR-MESSAGES":{
"FORM-VALIDATION": {
"ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter."
"MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
}
},
"TABLE-OF-CONTENTS":{
"ERROR-MESSAGES":{
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.",
"TABLE-OF-CONTENTS": {
"ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION": "Question can only be child of section.",
"INPUT-SECTION-SAME-LEVEL": "Cannot have question and section on the same level.",
"DRAG-NOT-SUPPORTED":"Drag n drop of section not supported to target container.",
"DRAG-NOT-SUPPORTED": "Drag n drop of section not supported to target container.",
"PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
}
}
@ -513,7 +517,7 @@
"ADD-SECTION": "Dodajte sekciju +",
"VALIDATE": "Potvrdite",
"PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top",
"BACK-TO-TOP": "Back to top",
"FIELD": {
"MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet"
},
"FIELDSET": {
"ADD-INPUT": "Add new input",
"ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.",
"ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.."
}
},
"FEEDBACK-MESSAGES":{
"SAVE-SUCCESS":"Changes were saved successfully."
"FEEDBACK-MESSAGES": {
"SAVE-SUCCESS": "Changes were saved successfully."
},
"ERRORS":{
"INVALID-VISIBILITY-RULES":{
"ERRORS": {
"INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.",
"REMOVE-SUCCESS":"Invalid visibility rules were removed successfully."
"REMOVE-SUCCESS": "Invalid visibility rules were removed successfully."
}
}
},
@ -690,7 +694,8 @@
"DOWNLOAD-XML": "Preuzmite XML",
"DOWNLOAD-DOCX": "Preuzmite DOCX",
"COPY-DATASET": "Kopirajte skup podataka",
"UPDATE-DATASET-PROFILE": "Ažurirajte obrazac"
"UPDATE-DATASET-PROFILE": "Ažurirajte obrazac",
"VALIDATE":"Validate"
},
"MESSAGES": {
"DATASET-NOT-FOUND": "Skup podataka ne postoji",
@ -845,7 +850,7 @@
"CLONE": "Napravite kopiju",
"NEW-VERSION": "Nova verzija",
"VIEW-VERSIONS": "Sve verzije obrazaca za skupove podataka",
"DELETE":"Delete"
"DELETE": "Delete"
}
},
"DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation identifier already exists.",
"IDENTIFIER-EXISTS-RESEARCHER-LIST":"This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST":"This identifier is already used by an organisation in the organisations list."
"IDENTIFIER-EXISTS-RESEARCHER-LIST": "This identifier is already used by a researcher in the researchers list.",
"IDENTIFIER-EXISTS-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
},
"FUNDING-INFO": {
"INTRO": "Plan upravljanja podacima (eng. Data Management Plan) se sastoji od Vaših planova za upravljanje podacima i sadrži informacije kako su nastali, kako su analizirani i na koji način su sačuvani podaci. Argos je otvoren kolaboracioni alat sa mogućnošću nadogradnje i koji podržava otvorene FAIR principe za upravljanje podacima.",
@ -1047,6 +1052,10 @@
"CLONE": "Napravite kopiju",
"SAVE": "Sačuvajte",
"CANCEL": "Otkažite"
},
"LOCKED":{
"TITLE":"DMP is locked",
"MESSAGE":"Somebody else is modifying the DMP at this moment. You may view the dataset but you cannot make any changes."
}
},
"DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Otkažite",
"DELETE": "Obrišite",
"UPDATE": "Ažurirajte",
"DISCARD":{
"DISCARD-NEW-MESSAGE":"All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM":"Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.",
"DISCARD-EDITED-MESSAGE":"All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM":"Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No."
"DISCARD": {
"DISCARD-NEW-MESSAGE": "All changes made will be discarded and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-NEW-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY": "No.",
"DISCARD-EDITED-MESSAGE": "All unsaved changes will be reverted to their initial state and you will be redirected back to DMP Editor. Would you like to proceed?",
"DISCARD-EDITED-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY": "No."
}
},
"PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories"
},
"DATASET-PROFILE-IDENTIFIER":{
"IDENTIFIER-TYPE":"Identifier Type"
"DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE": "Identifier Type"
},
"RECENT-ACTIVITY-ORDER": {
"CREATED": "Kreirano",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.",
"DATASET": "This is your dashboard. You can view and edit all Datasets that you have either contributed to or created yourself.",
"NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!",
"LEAVE-TOUR":"Leave Tour"
"GOT-IT": "Got it!",
"LEAVE-TOUR": "Leave Tour"
},
"ADD-NEW-DATASET":{
"OPTIONS-NOT-ENOUGH":"Are those options not enough?",
"START-NEW-DMP":"Start new DMP"
"ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP": "Start new DMP"
}
},
"USER-DIALOG": {
@ -1653,7 +1662,7 @@
},
"IMPACT": "Ovim korakom se završava proces kreiranja plana upravljanja podacima i posle toga nećete biti u mogućnosti da ga menjate.",
"AFTER-FINALIZATION": "Kada dovršite rad na Planu, možete ga objaviti i on će biti javno dostupan u Argosu.",
"INVALID":"Invalid"
"INVALID": "Invalid"
},
"DRAFTS": {
"FOR-DMP": "Za Plan:",

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.33 17.21"><defs><style>.cls-1,.cls-2{fill:none;}.cls-2{stroke:#129d99;}.cls-3{fill:#129d99;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="Rectangle_2747" data-name="Rectangle 2747"><rect class="cls-1" width="20.33" height="17.21"/><rect class="cls-2" x="0.73" y="0.61" width="18.88" height="15.98"/></g><path id="ic_add_24px" data-name="ic add 24px" class="cls-3" d="M12.91,9.11H11v1.94H10V9.11H8v-1h2V6.16h1V8.11h1.95Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 542 B

View File

@ -1,10 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="17.143" viewBox="0 0 20 17.143">
<g id="Group_11949" data-name="Group 11949" transform="translate(-1147 -554)">
<g id="Rectangle_2722" data-name="Rectangle 2722" transform="translate(1147 554)" fill="none" stroke="#129d99" stroke-width="2">
<rect width="16.191" height="13.333" rx="1" stroke="none"/>
<rect x="1" y="1" width="14.191" height="11.333" fill="none"/>
</g>
<rect id="Rectangle_2763" data-name="Rectangle 2763" width="12.381" height="12.381" transform="translate(1154.619 558.762)" fill="#fff"/>
<path id="ic_add_24px" d="M16.324,12.6H12.6v3.724H10.724V12.6H7V10.724h3.724V7H12.6v3.724h3.724Z" transform="translate(1150.579 554.719)" fill="#129d99"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.16 17.04"><defs><style>.cls-1,.cls-2{fill:none;}.cls-2{stroke:#129d99;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="Rectangle_2747" data-name="Rectangle 2747"><rect class="cls-1" y="0.02" width="16.84" height="13.54"/><polyline class="cls-2" points="8.99 13.07 0.6 13.07 0.6 0.5 16.24 0.5 16.24 5.69"/></g><line class="cls-2" x1="16.24" y1="9.11" x2="16.24" y2="17.04"/><line class="cls-2" x1="20.16" y1="13.07" x2="12.33" y2="13.07"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 765 B

After

Width:  |  Height:  |  Size: 556 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.89 16.96"><defs><style>.cls-1{fill:#129d99;}.cls-2{fill:none;stroke:#129d99;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="Group_11772" data-name="Group 11772"><path id="ic_visibility_24px" data-name="ic visibility 24px" class="cls-1" d="M14.45,4.94A5.6,5.6,0,0,0,9.23,8.5a5.61,5.61,0,0,0,10.45,0A5.61,5.61,0,0,0,14.45,4.94Zm0,5.94A2.38,2.38,0,1,1,16.83,8.5h0A2.37,2.37,0,0,1,14.45,10.88Zm0-3.8A1.43,1.43,0,1,0,15.88,8.5h0a1.42,1.42,0,0,0-1.42-1.42Z"/></g><line class="cls-2" x1="0.01" y1="0.5" x2="19.89" y2="0.5"/><line class="cls-2" x1="0.01" y1="5.82" x2="8.05" y2="5.82"/><line class="cls-2" x1="0.01" y1="11.14" x2="7.96" y2="11.14"/><line class="cls-2" y1="16.45" x2="19.89" y2="16.46"/></g></g></svg>

After

Width:  |  Height:  |  Size: 814 B

View File

@ -199,7 +199,7 @@ section.benefits {
text-align: left;
font-weight: 300;
font-family: 'Roboto',sans-serif;
font-size: 1.25rem;
font-size: 1.688rem;
letter-spacing: 0px;
color: #212121;
opacity: 0.81;
@ -209,7 +209,7 @@ section.benefits {
text-align: left;
font-family: 'Roboto', sans-serif;
font-weight: 400;
font-size: 0.87rem;
font-size: 1.125rem;
line-height: 1.6rem;
letter-spacing: 0px;
color: #212121;
@ -218,7 +218,7 @@ section.benefits {
}
.list {
font-size: 0.87rem;
font-size: 1.125rem;
color: #212121;
opacity: 0.8;
}