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) { public QueryableList<Researcher> getWithCriteria(ResearcherCriteria criteria) {
QueryableList<Researcher> query = asQueryable(); QueryableList<Researcher> query = asQueryable();
if (criteria.getLike() != null && !criteria.getLike().isEmpty()) 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()) 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()) 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; return query;
} }

View File

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

View File

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

View File

@ -673,9 +673,18 @@ public class DatasetManager {
datasetProfileValidators.add(node.getNodeValue()); datasetProfileValidators.add(node.getNodeValue());
} }
JSONObject obj = new JSONObject(dataset.getProperties()); 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) { 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."); 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); eu.eudat.data.entities.Invitation invitation = apiContext.getOperationsContext().getDatabaseRepository().getInvitationDao().find(invitationID);
if (invitation == null) if (invitation == null)
throw new UnauthorisedException("There is no Data Management Plan assigned to this Link"); 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); JAXBContext context = JAXBContext.newInstance(Properties.class);
Unmarshaller unmarshaller = context.createUnmarshaller(); Unmarshaller unmarshaller = context.createUnmarshaller();
Properties properties = (Properties) unmarshaller.unmarshal(new StringReader(invitation.getProperties())); 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.countAllPublic(), "published");
calculateValue("argos_managed_dataset_descriptions", (int) datasetManager.countAllWithDoi(), "doied"); 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.countAllFinalized(), "active");
calculateValue("argos_dataset_templates", (int) datasetProfileManager.countAllUsed(), "used"); 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()); 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())); 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)); 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(); Map<String, String> keyToSourceMap = configLoader.getKeyToSourceMap();
for (eu.eudat.models.data.dmp.Researcher item : researchers) { for (eu.eudat.models.data.dmp.Researcher item : researchers) {
if (item.getKey().equals("Internal")) 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) { private void createPages(List<DatasetProfilePage> datasetProfilePages, XWPFDocument mainDocumentPart, Boolean createListing, VisibilityRuleService visibilityRuleService) {
datasetProfilePages.forEach(item -> { datasetProfilePages.forEach(item -> {
try { 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) { } catch (Exception e) {
logger.error(e.getMessage(), 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); if (createListing) this.addListing(mainDocumentPart, indent, false, true);
sections.forEach(section -> { sections.forEach(section -> {
String tempSectionString = sectionString != null ? sectionString + "." + (section.getOrdinal() + 1) : "" + (section.getOrdinal() + 1);
if (visibilityRuleService.isElementVisible(section.getId())) { if (visibilityRuleService.isElementVisible(section.getId())) {
if (!createListing) { 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(); CTDecimalNumber number = paragraph.getCTP().getPPr().getNumPr().addNewIlvl();
number.setVal(BigInteger.valueOf(indent)); number.setVal(BigInteger.valueOf(indent));
} }
createSections(section.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, 1, createListing, visibilityRuleService); createSections(section.getSections(), mainDocumentPart, ParagraphStyle.HEADER5, 1, createListing, visibilityRuleService, page, tempSectionString);
createCompositeFields(section.getCompositeFields(), mainDocumentPart, 2, createListing, visibilityRuleService); 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); if (createListing) this.addListing(mainDocumentPart, indent, true, true);
compositeFields.forEach(compositeField -> { compositeFields.forEach(compositeField -> {
if (visibilityRuleService.isElementVisible(compositeField.getId()) && hasVisibleFields(compositeField, visibilityRuleService)) { if (visibilityRuleService.isElementVisible(compositeField.getId()) && hasVisibleFields(compositeField, visibilityRuleService)) {
if (compositeField.getTitle() != null && !compositeField.getTitle().isEmpty() && !createListing) { 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(); CTDecimalNumber number = paragraph.getCTP().getPPr().getNumPr().addNewIlvl();
number.setVal(BigInteger.valueOf(indent)); 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.XmlAttribute;
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import java.util.LinkedList;
import java.util.List;
@XmlRootElement(name = "section") @XmlRootElement(name = "section")
public class Section { public class Section {
@ -15,6 +17,7 @@ public class Section {
private String description; private String description;
private String extendedDescription; private String extendedDescription;
private String title; private String title;
private List<Section> section;
@XmlAttribute(name = "id") @XmlAttribute(name = "id")
public String getId() { public String getId() {
@ -99,6 +102,13 @@ public class Section {
public eu.eudat.models.data.admin.components.datasetprofile.Section toAdminCompositeModelSection() { 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(); 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.setId(this.id);
sectionEntity.setOrdinal(this.ordinal); sectionEntity.setOrdinal(this.ordinal);
sectionEntity.setTitle(this.title); sectionEntity.setTitle(this.title);
@ -110,7 +120,18 @@ public class Section {
// fieldSetsEntity.add(xmpFieldSets.toAdminCompositeModelSection()); // fieldSetsEntity.add(xmpFieldSets.toAdminCompositeModelSection());
// } // }
sectionEntity.setFieldSets(this.fieldSets.toAdminCompositeModelSection()); sectionEntity.setFieldSets(this.fieldSets.toAdminCompositeModelSection());
sectionEntity.setSections(sectionsListEntity);
sectionEntity.setDefaultVisibility(this.defaultVisibility); sectionEntity.setDefaultVisibility(this.defaultVisibility);
return sectionEntity; 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)); researcher.setId(UUID.fromString(this.id));
if (this.key != null) { if (this.key != null) {
if (this.key.toLowerCase().equals("internal")) { if (this.key.toLowerCase().equals("internal")) {
if (this.reference != null) { if (this.reference != null && !this.reference.startsWith("dmp:")) {
researcher.setReference("dmp:" + this.reference); researcher.setReference("dmp:" + this.reference);
} else { } else if (this.reference == null) {
researcher.setReference("dmp:" + this.id); researcher.setReference("dmp:" + this.id);
} else {
researcher.setReference(this.reference);
} }
} else { } else {
if ((this.key + ":").equals(this.reference.substring(0, this.key.length() + 1))) { 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.Collection;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -239,6 +240,18 @@ public class Field implements Comparable, PropertiesModelBuilder, ViewStyleDefin
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
logger.error(e.getMessage(), 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 { } else {
fieldValues.put(this.id, this.value.toString()); fieldValues.put(this.id, this.value.toString());
} }

View File

@ -81,6 +81,6 @@ export class CultureService {
} }
getCurrentCulture(): CultureInfo { 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 // Selected value formating template
selectedValueTemplate?: TemplateRef<any>; selectedValueTemplate?: TemplateRef<any>;
// To revert: "We set the items observable on focus to avoid the request being executed on component load." // // To revert: "We set the items observable on focus to avoid the request being executed on component load."
forceFocus?: boolean; // forceFocus?: boolean;
autoSelectFirstOptionOnBlur?: boolean; autoSelectFirstOptionOnBlur?: boolean;
} }

View File

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

View File

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

View File

@ -91,8 +91,29 @@ $blue-color-light: #5cf7f2;
color: #212121; color: #212121;
transform: translateY(3px); 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{ .input_icon{
width: 14px; width: 14px;

View File

@ -1,19 +1,19 @@
<ng-container *ngIf="expandView"> <ng-container *ngIf="expandView">
<!-- ACTIONS PER FIELD --> <!-- ACTIONS PER FIELD -->
<div class="row justify-content-end mb-1 mt-1"> <div class="row justify-content-end mb-1 mt-3">
<div class="col-auto"> <div class="col-auto mr-2">
<ul class="list-unstyled list-inline d-flex align-items-center"> <ul class="list-unstyled list-inline d-flex align-items-center">
<li class="list-inline-item" > <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"> <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}} {{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-slide-toggle> </mat-slide-toggle>
</li> </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> <mat-icon style="cursor: pointer;" (click)="addNewRule()" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.ADD-VISIBILITY-RULE' | translate">visibility</mat-icon>
</li> </li> -->
<li class="list-inline-item" *ngIf="!viewOnly && viewType && canBeDeleted"> <li class="list-inline-item" *ngIf="!viewOnly && viewType && canBeDeleted" class="text-muted">
<mat-icon style="cursor: pointer;" (click)="onDelete()" [matTooltip]="'DATASET-PROFILE-EDITOR.ACTIONS.FIELD.DELETE-INPUT' | translate">delete</mat-icon> <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> </li>
</ul> </ul>
@ -29,7 +29,7 @@
<mat-error *ngIf="this.form.get('id').hasError('pattern')">{{'GENERAL.VALIDATION.PATTERN-_' | translate}}</mat-error> <mat-error *ngIf="this.form.get('id').hasError('pattern')">{{'GENERAL.VALIDATION.PATTERN-_' | translate}}</mat-error>
</mat-form-field> --> </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')" <!-- <mat-select placeholder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.VIEW-STYLE' | translate}}" [formControl]="this.form.get('viewStyle').get('renderStyle')"
required> required>
<mat-option [value]="viewStyleEnum.TextArea">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.TextArea)}}</mat-option> <mat-option [value]="viewStyleEnum.TextArea">{{enumUtils.toDatasetProfileFieldViewStyleString(viewStyleEnum.TextArea)}}</mat-option>
@ -185,7 +185,7 @@
</mat-select> </mat-select>
</mat-form-field> --> </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-label>{{'DATASET-PROFILE-EDITOR.STEPS.FORM.COMPOSITE-FIELD.FIELDS.RDA-COMMON-STANDARDS' | translate}}</mat-label>
<mat-select [formControl]="this.form.get('rdaCommonStandard')"> <mat-select [formControl]="this.form.get('rdaCommonStandard')">
<mat-option>--</mat-option> <mat-option>--</mat-option>
@ -196,13 +196,33 @@
</mat-form-field> </mat-form-field>
<!-- Default Value --> <!-- 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')" [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" [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}}"> placeHolder="{{'DATASET-PROFILE-EDITOR.STEPS.FORM.FIELD.FIELDS.DEFAULT-VALUE' | translate}}">
</app-component-profile-editor-default-value-component> </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>
<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"> <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-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> <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-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> <app-dataset-profile-editor-validator-field-component *ngSwitchCase="viewStyleEnum.Validation" class="col-12" [form]="form"></app-dataset-profile-editor-validator-field-component>
</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 class="row">
<button (click)="generatePreview()">Generate Preview</button>
</div> -->
</div>
</ng-container> </ng-container>

View File

@ -29,6 +29,20 @@ li.list-inline-item{
.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb { .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
background-color:#129D99 ; 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;
}
} }
@ -36,3 +50,17 @@ li.list-inline-item{
width: 14px; width: 14px;
margin-right: 0.5em; 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 { Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import { AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup, FormGroupDirective, NgForm, ValidationErrors, ValidatorFn } from '@angular/forms'; import {FormArray, FormControl, FormGroup, FormGroupDirective, NgForm,} from '@angular/forms';
import { DatasetProfileFieldViewStyle } from '@app/core/common/enum/dataset-profile-field-view-style'; import { DatasetProfileFieldViewStyle } from '@app/core/common/enum/dataset-profile-field-view-style';
import { ValidationType } from '@app/core/common/enum/validation-type'; import { ValidationType } from '@app/core/common/enum/validation-type';
import { DatasetProfileService } from '@app/core/services/dataset-profile/dataset-profile.service'; import { DatasetProfileService } from '@app/core/services/dataset-profile/dataset-profile.service';
import { EnumUtils } from '@app/core/services/utilities/enum-utils.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 { RuleEditorModel } from '@app/ui/admin/dataset-profile/admin/rule-editor-model';
import { BaseComponent } from '@common/base/base.component'; import { BaseComponent } from '@common/base/base.component';
import { debounce, debounceTime, takeUntil } from 'rxjs/operators'; import { Subscription } from 'rxjs';
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 { ViewStyleType } from './view-style-enum'; 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 { 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 { 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 { Field } from '@app/core/model/admin/dataset-profile/dataset-profile';
import { DatasetProfileInternalDmpEntitiesType } from '@app/core/common/enum/dataset-profile-internal-dmp-entities-type'; import { DatasetProfileInternalDmpEntitiesType } from '@app/core/common/enum/dataset-profile-internal-dmp-entities-type';
import { FieldEditorModel } from '../../../admin/field-editor-model'; 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 { 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({ @Component({
selector: 'app-dataset-profile-editor-field-component', selector: 'app-dataset-profile-editor-field-component',

View File

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

View File

@ -9,9 +9,28 @@ $blue-color-light: #5cf7f2;
.fieldset-actions-list li{ .fieldset-actions-list li{
cursor: pointer; 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{ .actions-list{
// border: 1px solid $blue-color; // border: 1px solid $blue-color;
// box-shadow: 0px 3px 12px #129D9999; // box-shadow: 0px 3px 12px #129D9999;
@ -20,6 +39,7 @@ $blue-color-light: #5cf7f2;
padding: 1em 0.9em; padding: 1em 0.9em;
padding-bottom: 3em; padding-bottom: 3em;
min-width: 166px; 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{ .mat-list-item-content{
padding: 0px; padding: 0px;

View File

@ -1,15 +1,11 @@
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop'; import { OnDestroy } from '@angular/core';
import { ChangeDetectorRef, Inject, OnDestroy } from '@angular/core';
import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core'; import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
import { FormArray, FormGroup } from '@angular/forms'; 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 { Guid } from '@common/types/guid';
import { DragulaService } from 'ng2-dragula'; import { DragulaService } from 'ng2-dragula';
import { Subscription } from 'rxjs'; 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'; import { ToCEntry, ToCEntryType } from '../../../table-of-contents/table-of-contents-entry';
@Component({ @Component({
@ -37,6 +33,7 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
// @Output() fieldsetAdded = new EventEmitter<String>(); //returns the id of the fieldset added // @Output() fieldsetAdded = new EventEmitter<String>(); //returns the id of the fieldset added
idprefix = "id"; idprefix = "id";
readonly dragula_prefix = "dragulaid";
private subs = new Subscription(); private subs = new Subscription();
private FIELDSETS = 'FIELDSETS'; private FIELDSETS = 'FIELDSETS';
constructor( constructor(
@ -52,7 +49,7 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
this.dragulaService.createGroup(this.FIELDSETS,{ this.dragulaService.createGroup(this.FIELDSETS,{
moves:(el, container, handle)=>{ moves:(el, container, handle)=>{
// if(this.viewOnly) return false; //uncomment if want to unable drag n drop in viewonly mode // 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; if(handle.className && handle.classList.contains('handle')) return true;
return false; return false;
} }
@ -152,7 +149,7 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
setTimeout(() => { setTimeout(() => {
const el = this.myElement.nativeElement.querySelector("#"+this.idprefix+id); const el = this.myElement.nativeElement.querySelector("#"+this.idprefix+id);
if(el){ if(el){
el.scrollIntoView({behavior: "smooth", block:'end'}); el.scrollIntoView({behavior: "smooth", block:'start'});
} }
}, 700); }, 700);
} }
@ -162,10 +159,9 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
setTimeout(() => { setTimeout(() => {
const el = this.myElement.nativeElement.querySelector('#topofcontainer'); const el = this.myElement.nativeElement.querySelector('#topofcontainer');
if(el){ if(el){
el.scrollIntoView({behavior:'smooth'}) el.scrollIntoView({behavior:'smooth', block:'end'})
} }
},200); },200);
} }
ngOnInit() { ngOnInit() {
@ -182,6 +178,38 @@ export class DatasetProfileEditorSectionFieldSetComponent implements OnInit, OnC
this.addNewFieldSet.emit(this.form); 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{ private _findTocEntryById(id: string, tocentries: ToCEntry[]): ToCEntry{
if(!tocentries){ if(!tocentries){
return null; return null;

View File

@ -1,13 +1,13 @@
import { of as observableOf, Observable, combineLatest, BehaviorSubject,of } from 'rxjs'; import { of as observableOf, Observable, combineLatest, BehaviorSubject,of } from 'rxjs';
import { HttpClient, HttpErrorResponse } from '@angular/common/http'; import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { AfterViewInit, Component, ElementRef, OnChanges, OnInit, QueryList, SimpleChanges, ViewChild } from '@angular/core'; import { Component, OnInit, QueryList, ViewChild } from '@angular/core';
import { AbstractControl, Form, FormArray, FormBuilder, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms'; import { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog'; 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 { ActivatedRoute, ParamMap, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core'; 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 * as FileSaver from 'file-saver';
import { BaseComponent } from '@common/base/base.component'; import { BaseComponent } from '@common/base/base.component';
import { DatasetProfileEditorModel } from '@app/ui/admin/dataset-profile/editor/dataset-profile-editor-model'; 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 { LanguageInfoService } from '@app/core/services/culture/language-info-service';
import { FormValidationErrorsDialogComponent } from '@common/forms/form-validation-errors-dialog/form-validation-errors-dialog.component'; import { FormValidationErrorsDialogComponent } from '@common/forms/form-validation-errors-dialog/form-validation-errors-dialog.component';
import { MatomoService } from '@app/core/services/matomo/matomo-service'; 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 { DatasetWizardService } from '@app/core/services/dataset-wizard/dataset-wizard.service';
import { DatasetWizardEditorModel } from '@app/ui/dataset/dataset-wizard/dataset-wizard-editor.model'; import { DatasetWizardEditorModel } from '@app/ui/dataset/dataset-wizard/dataset-wizard-editor.model';
import { NewEntryType, ToCEntry, ToCEntryType } from '../table-of-contents/table-of-contents-entry'; 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 { FieldEditorModel } from '../admin/field-editor-model';
import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service'; import { VisibilityRulesService } from '@app/ui/misc/dataset-description-form/visibility-rules/visibility-rules.service';
import { CdkStep, StepperSelectionEvent } from '@angular/cdk/stepper'; 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 { Rule } from '@app/core/model/dataset-profile-definition/rule';
import { DatasetProfileFieldViewStyle } from '@app/core/common/enum/dataset-profile-field-view-style'; 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 { SideNavService } from '@app/core/services/sidenav/side-nav.sevice';
import { EditorCustomValidators, EditorCustomValidatorsEnum } from './custom-validators/editor-custom-validators'; 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 { GENERAL_ANIMATIONS, STEPPER_ANIMATIONS } from './animations/animations';
import { DatasetProfileComboBoxType } from '@app/core/common/enum/dataset-profile-combo-box-type'; 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 { UserService } from '@app/core/services/user/user.service';
import { MatInput } from '@angular/material'; import { MatInput } from '@angular/material';

View File

@ -135,7 +135,7 @@
<ng-container *ngIf="!isDragging"> <ng-container *ngIf="!isDragging">
<!-- <div *ngIf="links && !viewOnly && !(parentLink?.subEntriesType == tocEntryType.Page) " > --> <!-- <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})"> <button class="mat-button add-new-entry" style="padding-left: 0px;" (click)="createNewEntry({childType:link.type,parent:parentLink})">
<!-- <mat-icon>add</mat-icon> --> <!-- <mat-icon>add</mat-icon> -->
<ng-container [ngSwitch]="link.type"> <ng-container [ngSwitch]="link.type">
@ -153,7 +153,8 @@
Section Section
</ng-container> --> </ng-container> -->
<ng-container *ngSwitchCase="tocEntryType.FieldSet"> <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>
</ng-container> </ng-container>
@ -179,6 +180,12 @@
<div *ngIf="(!links && parentLink.type!= tocEntryType.FieldSet) && !viewOnly &&parentLink?.id == itemSelected?.id" class="docs-link mt-0"> <div *ngIf="(!links && parentLink.type!= tocEntryType.FieldSet) && !viewOnly &&parentLink?.id == itemSelected?.id" class="docs-link mt-0">
<div class="ml-3"> <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 --> <!-- Give option to generate section -->
<button class="mat-button" style="padding-left: 0px; display: block;" (click)="createNewEntry({childType:tocEntryType.Section,parent:parentLink})"> <button class="mat-button" style="padding-left: 0px; display: block;" (click)="createNewEntry({childType:tocEntryType.Section,parent:parentLink})">
<!-- <mat-icon>add</mat-icon> --> <!-- <mat-icon>add</mat-icon> -->
@ -193,11 +200,7 @@
</button> </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> </div>

View File

@ -111,3 +111,6 @@ $yellow: #f7dd72;
font-weight: bold; font-weight: bold;
// color: red; // 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.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 class="dataset-save-btn mr-2" (click)="save(saveAnd.addNew)">{{ 'DATASET-WIZARD.ACTIONS.SAVE-AND-ADD' | translate }}</button>
<button *ngIf="lockStatus" mat-raised-button disabled class="dataset-save-btn cursor-default" type="button">{{ 'DMP-OVERVIEW.LOCKED' | translate}}</button> <button *ngIf="lockStatus" mat-raised-button disabled class="dataset-save-btn cursor-default" type="button">{{ 'DMP-OVERVIEW.LOCKED' | translate}}</button>
<!-- <button *ngIf="!lockStatus" mat-raised-button class="dataset-save-btn mr-2" (click)="touchForm()" type="button">{{ 'DATASET-WIZARD.ACTIONS.VALIDATE' | translate }}</button> -->
</div> </div>
</div> </div>
</div> </div>

View File

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

View File

@ -79,7 +79,7 @@
</div> </div>
</div> </div>
<div class="col-auto pr-0"> <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> </div>
<div class="col-auto form" id="editor-form"> <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 { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver'; import * as FileSaver from 'file-saver';
import { Observable, of as observableOf, interval } from 'rxjs'; import { Observable, of as observableOf, interval } from 'rxjs';
import { delay, map, takeUntil } from 'rxjs/operators'; import { catchError, delay, map, takeUntil } from 'rxjs/operators';
import { Principal } from "@app/core/model/auth/principal"; import { Principal } from "@app/core/model/auth/principal";
import { Role } from "@app/core/common/enum/role"; import { Role } from "@app/core/common/enum/role";
import { LockService } from '@app/core/services/lock/lock.service'; 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 { GrantEditorModel } from '@app/ui/grant/editor/grant-editor.model';
import { MatomoService } from '@app/core/services/matomo/matomo-service'; import { MatomoService } from '@app/core/services/matomo/matomo-service';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { PopupNotificationDialogComponent } from '@app/library/notification/popup/popup-notification.component';
@Component({ @Component({
selector: 'app-dmp-editor-component', selector: 'app-dmp-editor-component',
@ -185,6 +186,11 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
this.setIsUserOwner(); this.setIsUserOwner();
if (!this.isUserOwner) { if (!this.isUserOwner) {
if(this.isUserMember()){
this.router.navigate(['plans', 'overview', itemId]);
return;
}
this.isFinalized = true; this.isFinalized = true;
this.formGroup.disable(); this.formGroup.disable();
} }
@ -230,6 +236,12 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
.subscribe(x => { .subscribe(x => {
this.formChanged(); 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) { } else if (publicId != null) {
@ -365,7 +377,15 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC
setIsUserOwner() { setIsUserOwner() {
if (this.dmp) { if (this.dmp) {
const principal: Principal = this.authentication.current(); 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 { 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 { AbstractControl, FormGroup, Validators } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { GrantTabModel } from '../grant-tab/grant-tab-model'; 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 { ProjectCriteria } from '@app/core/query/project/project-criteria';
import { FunderCriteria } from '@app/core/query/funder/funder-criteria'; import { FunderCriteria } from '@app/core/query/funder/funder-criteria';
import { debounceTime, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators'; 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'; import { isNullOrUndefined } from '@swimlane/ngx-datatable';
@Component({ @Component({
@ -39,7 +38,7 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
isCreateNewProject = false; isCreateNewProject = false;
isCreateNewFunder = false; isCreateNewFunder = false;
grant: GrantTabModel; grant: GrantTabModel;
forceFocus = false; // forceFocus = false;
grantAutoCompleteConfiguration: SingleAutoCompleteConfiguration; grantAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
projectAutoCompleteConfiguration: SingleAutoCompleteConfiguration; projectAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
@ -219,7 +218,6 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
displayFn: (item) => item['label'] + this.getGrantIdText(item), displayFn: (item) => item['label'] + this.getGrantIdText(item),
titleFn: (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')), 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; // this.forceFocus = false;
@ -236,7 +234,8 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
const grantRequestItem: RequestItem<GrantCriteria> = new RequestItem(); const grantRequestItem: RequestItem<GrantCriteria> = new RequestItem();
grantRequestItem.criteria = new GrantCriteria(); grantRequestItem.criteria = new GrantCriteria();
grantRequestItem.criteria.like = query; 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; grantRequestItem.criteria.funderReference = this.funderFormGroup.controls['existFunder'].value.reference;
} }
return this.grantService.getWithExternal(grantRequestItem); return this.grantService.getWithExternal(grantRequestItem);
@ -414,11 +413,10 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
} }
funderValueChanged(funder: any) { 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)) { || (funder.existFunder !== null && funder.existFunder !== undefined && funder.existFunder.id !== undefined)) {
this.grantformGroup.reset(); this.grantformGroup.reset();
this.grantformGroup.enable(); this.grantformGroup.enable();
this.forceFocus = true;
this.setGrantValidators(); this.setGrantValidators();
} else { } else {
this.grantformGroup.reset(); this.grantformGroup.reset();
@ -435,121 +433,6 @@ export class FundingInfoComponent extends BaseComponent implements OnInit {
return (!this.isFinalized && this.isUserOwner) || this.isClone; 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(){ private consoleForm(){
console.log(this.formGroup); console.log(this.formGroup);

View File

@ -10,29 +10,29 @@
<i>{{this.form.get('extendedDescription').value}}</i> <i>{{this.form.get('extendedDescription').value}}</i>
</h5> </h5>
<mat-form-field *ngSwitchCase="datasetProfileFieldViewStyleEnum.FreeText" class="col-12"> <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-error *ngIf="form.get('value')['errors'] && form.get('value')['errors']['required']">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
</mat-form-field> </mat-form-field>
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.ComboBox" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.ComboBox" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === datasetProfileComboBoxTypeEnum.Autocomplete"> <mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === datasetProfileComboBoxTypeEnum.Autocomplete">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="multipleAutoCompleteConfiguration"> [configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="form.get('data').value.type === datasetProfileComboBoxTypeEnum.WordList" class="col-md-12"> <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 *ngFor="let opt of form.get('data').value.options" [value]="opt.value">{{opt.label}}
</mat-option> </mat-option>
</mat-select> </mat-select>
@ -45,48 +45,48 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.InternalDmpEntities" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.InternalDmpEntities" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Researchers"> <mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Researchers">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="multipleAutoCompleteConfiguration"> [configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Datasets"> <mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Datasets">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="multipleAutoCompleteConfiguration"> [configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
<mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Dmps"> <mat-form-field class="col-md-12" *ngIf="form.get('data').value.type === this.datasetProfileInternalDmpEntitiesTypeEnum.Dmps">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="multipleAutoCompleteConfiguration"> [configuration]="multipleAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="singleAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
</div> </div>
@ -99,7 +99,7 @@
<mat-form-field *ngSwitchCase="datasetProfileFieldViewStyleEnum.TextArea" class="col-12"> <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" <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" <!-- <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> --> 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': ''})"> <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="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-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-radio-group>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} <small class="text-danger d-block" *ngIf="form.get('value').hasError('required') && form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error> </small>
<small class="text-muted d-inline-block" *ngIf="(form.get('validationRequired').value) && !form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</small>
</div> </div>
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.RadioBox" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.RadioBox" class="col-12">
<mat-radio-group [formControl]="form.get('value')" [required]="form.get('validationRequired').value"> <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-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-radio-group>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} <small class="text-danger d-block" *ngIf="form.get('value').hasError('required') && form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error> </small>
<small class="text-muted d-inline-block" *ngIf="(form.get('validationRequired').value) && !form.get('value').touched">{{'GENERAL.VALIDATION.REQUIRED' | translate}} *</small>
</div> </div>
<mat-form-field *ngSwitchCase="datasetProfileFieldViewStyleEnum.DatePicker" class="col-12"> <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')"> [formControl]="form.get('value')">
<mat-datepicker-toggle matSuffix [for]="date"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="date"></mat-datepicker-toggle>
<mat-datepicker #date></mat-datepicker> <mat-datepicker #date></mat-datepicker>
@ -138,18 +140,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.ExternalDatasets" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.ExternalDatasets" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12"> <mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="externalDatasetAutoCompleteConfiguration"> [configuration]="externalDatasetAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="externalDatasetAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="externalDatasetAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
</div> </div>
@ -158,18 +160,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.DataRepositories" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.DataRepositories" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12"> <mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="dataRepositoriesAutoCompleteConfiguration"> [configuration]="dataRepositoriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="dataRepositoriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="dataRepositoriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
</div> </div>
@ -178,18 +180,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Registries" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Registries" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12"> <mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="registriesAutoCompleteConfiguration"> [configuration]="registriesAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="registriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="registriesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
</div> </div>
@ -198,18 +200,18 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Services" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Services" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12"> <mat-form-field class="col-md-12">
<div *ngIf="form.get('data').value.multiAutoComplete"> <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]="servicesAutoCompleteConfiguration"> [configuration]="servicesAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</div> </ng-container>
<div *ngIf="!(form.get('data').value.multiAutoComplete)"> <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]="servicesAutoCompleteConfiguration" [required]="form.get('validationRequired').value"> [configuration]="servicesAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} </ng-container>
</mat-error> <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</div> </mat-error>
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
</div> </div>
@ -218,7 +220,7 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Tags" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Tags" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -231,19 +233,17 @@
</app-multiple-auto-complete> --> </app-multiple-auto-complete> -->
<ng-container *ngIf="form.get('data').value.multiAutoComplete"> <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"> [configuration]="researchersAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</ng-container> </ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)"> <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"> [configuration]="researchersAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error>
</ng-container> </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-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint>
</mat-form-field> </mat-form-field>
</div> </div>
@ -258,12 +258,12 @@
<mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> --> <mat-hint>{{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}</mat-hint> -->
<ng-container *ngIf="form.get('data').value.multiAutoComplete"> <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"> [configuration]="organisationsAutoCompleteConfiguration">
</app-multiple-auto-complete> </app-multiple-auto-complete>
</ng-container> </ng-container>
<ng-container *ngIf="!(form.get('data').value.multiAutoComplete)"> <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"> [configuration]="organisationsAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
@ -278,12 +278,12 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.DatasetIdentifier" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.DatasetIdentifier" class="col-12">
<div class="row" *ngIf="datasetIdInitialized"> <div class="row" *ngIf="datasetIdInitialized">
<mat-form-field class="col-md-12"> <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 *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field class="col-md-12"> <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"> <mat-option *ngFor="let type of datasetIdTypes" [value]="type.value">
{{ type.name }} {{ type.name }}
</mat-option> </mat-option>
@ -297,7 +297,7 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Currency" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Currency" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-12"> <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"> [configuration]="currencyAutoCompleteConfiguration" [required]="form.get('validationRequired').value">
</app-single-auto-complete> </app-single-auto-complete>
<mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}} <mat-error *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
@ -309,12 +309,12 @@
<div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Validation" class="col-12"> <div *ngSwitchCase="datasetProfileFieldViewStyleEnum.Validation" class="col-12">
<div class="row"> <div class="row">
<mat-form-field class="col-md-4"> <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 *ngIf="form.get('value').hasError('required')">{{'GENERAL.VALIDATION.REQUIRED' | translate}}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field class="col-md-4"> <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"> <mat-option *ngFor="let type of validationTypes" [value]="type.value">
{{ type.name }} {{ type.name }}
</mat-option> </mat-option>

View File

@ -106,7 +106,9 @@ export class FormFieldComponent extends BaseComponent implements OnInit {
if (this.form.get('data').value.multiList) { if (this.form.get('data').value.multiList) {
const originalValue = <string>this.form.get('value').value; const originalValue = <string>this.form.get('value').value;
if (originalValue !== null && typeof originalValue === 'string') { 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(']')) { if (!originalValue.startsWith('[') && !originalValue.endsWith(']')) {
values = undefined; values = undefined;
values = [originalValue]; values = [originalValue];

View File

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

View File

@ -1,13 +1,8 @@
import { DOCUMENT } from '@angular/common';
import { Component, EventEmitter, Inject, OnInit, Output, Input } from '@angular/core'; 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 { SimpleChanges } from '@angular/core';
import { FormArray } from '@angular/forms';
import { ToCEntry, ToCEntryType } from '../../dataset-description.component'; import { ToCEntry, ToCEntryType } from '../../dataset-description.component';
import { VisibilityRulesService } from '../../visibility-rules/visibility-rules.service'; import { VisibilityRulesService } from '../../visibility-rules/visibility-rules.service';
import { Rule } from '@app/core/model/dataset-profile-definition/rule';
@Component({ @Component({
selector: 'table-of-contents-internal', selector: 'table-of-contents-internal',
@ -26,11 +21,9 @@ export class TableOfContentsInternal implements OnInit {
@Input() TOCENTRY_ID_PREFIX=""; @Input() TOCENTRY_ID_PREFIX="";
@Input() showErrors: boolean = false; @Input() showErrors: boolean = false;
@Input() hiddenEntries: string[] =[]; @Input() hiddenEntries: string[] =[];
@Input() visibilityRulesService: VisibilityRulesService;
constructor(){
constructor(public visibilityRulesService: VisibilityRulesService){
} }
ngOnInit(): void { ngOnInit(): void {
// console.log('component created'); // console.log('component created');
@ -140,4 +133,29 @@ export class TableOfContentsInternal implements OnInit {
return tocEntryFound? tocEntryFound: null; 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)" (entrySelected)="onToCentrySelected($event)"
[selected]="tocentrySelected" [selected]="tocentrySelected"
[hiddenEntries]="hiddenEntries" [hiddenEntries]="hiddenEntries"
[visibilityRulesService]="visibilityRulesService"
> >
</table-of-contents-internal> </table-of-contents-internal>

View File

@ -139,3 +139,14 @@ $mat-card-header-size: 40px !default;
.new-dmp-dialog { .new-dmp-dialog {
padding: 0em .5em 0em 0em; 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-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users", "DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User", "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-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description", "DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled", "UNTITLED": "Untitled",
"QUESTION": "Question", "QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline" "TEMPLATE-OUTLINE": "Template outline"
}, },
"PAGE-INFO": { "PAGE-INFO": {
"PAGE-NAME": "Chapter Name", "PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter", "CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section", "CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter", "CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter", "CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.", "NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ", "START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter." "START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data", "FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text" "FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
}, },
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.", "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-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-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
}, },
"DEFAULT-VALUES": { "DEFAULT-VALUES": {
"NONE": "Keine", "NONE": "Keine",
@ -461,6 +461,10 @@
}, },
"ACTIONS": { "ACTIONS": {
"ADD-RULE": "Add Visibility Rule +" "ADD-RULE": "Add Visibility Rule +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
} }
}, },
"RULE": { "RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "If Value is", "RULE-IF": "If Value is",
"RULE-THEN": "then show Question", "RULE-THEN": "then show Question",
"FIELDSETS": "Questions", "FIELDSETS": "Questions",
"FIELDS":"Inputs" "FIELDS": "Inputs"
}, },
"HINTS":{ "HINTS": {
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.", "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." "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":{ "FORM-VALIDATION": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.", "PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.", "NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.", "MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing", "MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter." "PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
} }
}, },
"TABLE-OF-CONTENTS":{ "TABLE-OF-CONTENTS": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.", "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.", "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" "PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
} }
} }
@ -513,7 +517,7 @@
"ADD-SECTION": "Add Section +", "ADD-SECTION": "Add Section +",
"VALIDATE": "Validate", "VALIDATE": "Validate",
"PREVIEW-AND-FINALIZE": "Preview and finalize", "PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top", "BACK-TO-TOP": "Back to top",
"FIELD": { "FIELD": {
"MAKE-IT-REQUIRED": "Make input required", "MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question", "ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet" "NOT-INITIALIZED": "Not initialized yet"
}, },
"FIELDSET": { "FIELDSET": {
"ADD-INPUT": "Add new input", "ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field", "COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.", "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.", "ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.." "MORE": "More.."
} }
}, },
"FEEDBACK-MESSAGES":{ "FEEDBACK-MESSAGES": {
"SAVE-SUCCESS":"Changes were saved successfully." "SAVE-SUCCESS": "Changes were saved successfully."
}, },
"ERRORS":{ "ERRORS": {
"INVALID-VISIBILITY-RULES":{ "INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ", "MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?", "MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules", "CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.", "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-XML": "XML herunterladen",
"DOWNLOAD-DOCX": "DOCX herunterladen", "DOWNLOAD-DOCX": "DOCX herunterladen",
"COPY-DATASET": "Datensatzbeschreibung kopieren", "COPY-DATASET": "Datensatzbeschreibung kopieren",
"UPDATE-DATASET-PROFILE": "Vorlage aktualisieren" "UPDATE-DATASET-PROFILE": "Vorlage aktualisieren",
"VALIDATE":"Validate"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Datensatzbeschreibung ist nicht vorhanden", "DATASET-NOT-FOUND": "Datensatzbeschreibung ist nicht vorhanden",
@ -845,7 +850,7 @@
"CLONE": "Klon", "CLONE": "Klon",
"NEW-VERSION": "Neue Version", "NEW-VERSION": "Neue Version",
"VIEW-VERSIONS": "Alle Vorlagenversionen für Datensatzbeschreibungen", "VIEW-VERSIONS": "Alle Vorlagenversionen für Datensatzbeschreibungen",
"DELETE":"Delete" "DELETE": "Delete"
} }
}, },
"DATASET-UPLOAD": { "DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier", "UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.", "RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation 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-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-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
}, },
"FUNDING-INFO": { "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": "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", "CLONE": "Clone",
"SAVE": "Save", "SAVE": "Save",
"CANCEL": "Cancel" "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": { "DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Abbrechen", "CANCEL": "Abbrechen",
"DELETE": "Löschen", "DELETE": "Löschen",
"UPDATE": "Update", "UPDATE": "Update",
"DISCARD":{ "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-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-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.", "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-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-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No." "DISCARD-EDITED-DENY": "No."
} }
}, },
"PLACEHOLDER": { "PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate", "ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories" "REPOSITORIES-PLACEHOLDER": "Repositories"
}, },
"DATASET-PROFILE-IDENTIFIER":{ "DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE":"Identifier Type" "IDENTIFIER-TYPE": "Identifier Type"
}, },
"RECENT-ACTIVITY-ORDER": { "RECENT-ACTIVITY-ORDER": {
"CREATED": "Created", "CREATED": "Created",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.", "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.", "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.", "NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!", "GOT-IT": "Got it!",
"LEAVE-TOUR":"Leave Tour" "LEAVE-TOUR": "Leave Tour"
}, },
"ADD-NEW-DATASET":{ "ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH":"Are those options not enough?", "OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP":"Start new DMP" "START-NEW-DMP": "Start new DMP"
} }
}, },
"USER-DIALOG": { "USER-DIALOG": {
@ -1653,7 +1662,7 @@
}, },
"IMPACT": "Mit dieser Aktion wird Ihr DMP fertiggestellt und Sie werden ihn nicht erneut bearbeiten können.", "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.", "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": { "DRAFTS": {
"FOR-DMP": "Für DMP:", "FOR-DMP": "Für DMP:",

View File

@ -291,12 +291,12 @@
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language", "DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users", "DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User", "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-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description", "DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled", "UNTITLED": "Untitled",
"QUESTION": "Question", "QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline" "TEMPLATE-OUTLINE": "Template outline"
}, },
"PAGE-INFO": { "PAGE-INFO": {
"PAGE-NAME": "Chapter Name", "PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter", "CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section", "CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter", "CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter", "CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.", "NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ", "START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter." "START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data", "FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text" "FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
}, },
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.", "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-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-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
}, },
"DEFAULT-VALUES": { "DEFAULT-VALUES": {
"NONE": "None", "NONE": "None",
@ -461,6 +461,10 @@
}, },
"ACTIONS": { "ACTIONS": {
"ADD-RULE": "Add Visibility Rule +" "ADD-RULE": "Add Visibility Rule +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
} }
}, },
"RULE": { "RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "If Value is", "RULE-IF": "If Value is",
"RULE-THEN": "then show Question", "RULE-THEN": "then show Question",
"FIELDSETS": "Questions", "FIELDSETS": "Questions",
"FIELDS":"Inputs" "FIELDS": "Inputs"
}, },
"HINTS":{ "HINTS": {
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.", "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." "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":{ "FORM-VALIDATION": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.", "PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.", "NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.", "MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing", "MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter." "PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
} }
}, },
"TABLE-OF-CONTENTS":{ "TABLE-OF-CONTENTS": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.", "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.", "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" "PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
} }
} }
@ -513,16 +517,16 @@
"ADD-SECTION": "Add Section +", "ADD-SECTION": "Add Section +",
"VALIDATE": "Validate", "VALIDATE": "Validate",
"PREVIEW-AND-FINALIZE": "Preview & Finalize", "PREVIEW-AND-FINALIZE": "Preview & Finalize",
"BACK-TO-TOP":"Back to top", "BACK-TO-TOP": "Back to top",
"FIELD": { "FIELD": {
"MAKE-IT-REQUIRED": "Make input required", "MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question", "ADD-VISIBILITY-RULE": "Make Conditional Question",
"DELETE-INPUT": "Delete this input", "DELETE-INPUT": "Delete this input",
"PREVIEW": "Preview", "PREVIEW": "Preview",
"NOT-INITIALIZED": "Not initialized yet" "NOT-INITIALIZED": "Not initialized yet"
}, },
"FIELDSET": { "FIELDSET": {
"ADD-INPUT": "Add new input", "ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field", "COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.", "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.", "ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.." "MORE": "More.."
} }
}, },
"FEEDBACK-MESSAGES":{ "FEEDBACK-MESSAGES": {
"SAVE-SUCCESS":"Changes were saved successfully." "SAVE-SUCCESS": "Changes were saved successfully."
}, },
"ERRORS":{ "ERRORS": {
"INVALID-VISIBILITY-RULES":{ "INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ", "MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?", "MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules", "CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.", "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-XML": "Download XML",
"DOWNLOAD-DOCX": "Download DOCX", "DOWNLOAD-DOCX": "Download DOCX",
"COPY-DATASET": "Copy Dataset", "COPY-DATASET": "Copy Dataset",
"UPDATE-DATASET-PROFILE": "Update Template" "UPDATE-DATASET-PROFILE": "Update Template",
"VALIDATE":"Validate"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Dataset does not exist", "DATASET-NOT-FOUND": "Dataset does not exist",
@ -845,7 +850,7 @@
"CLONE": "Clone", "CLONE": "Clone",
"NEW-VERSION": "New Version", "NEW-VERSION": "New Version",
"VIEW-VERSIONS": "All Dataset Template Versions", "VIEW-VERSIONS": "All Dataset Template Versions",
"DELETE":"Delete" "DELETE": "Delete"
} }
}, },
"DATASET-UPLOAD": { "DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier", "UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.", "RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation 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-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-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
}, },
"FUNDING-INFO": { "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": "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", "CLONE": "Clone",
"SAVE": "Save", "SAVE": "Save",
"CANCEL": "Cancel" "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": { "DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Cancel", "CANCEL": "Cancel",
"DELETE": "Delete", "DELETE": "Delete",
"UPDATE": "Update", "UPDATE": "Update",
"DISCARD":{ "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-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-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.", "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-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-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No." "DISCARD-EDITED-DENY": "No."
} }
}, },
"PLACEHOLDER": { "PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate", "ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories" "REPOSITORIES-PLACEHOLDER": "Repositories"
}, },
"DATASET-PROFILE-IDENTIFIER":{ "DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE":"Identifier Type" "IDENTIFIER-TYPE": "Identifier Type"
}, },
"RECENT-ACTIVITY-ORDER": { "RECENT-ACTIVITY-ORDER": {
"CREATED": "Created", "CREATED": "Created",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.", "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.", "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.", "NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!", "GOT-IT": "Got it!",
"LEAVE-TOUR":"Leave Tour" "LEAVE-TOUR": "Leave Tour"
}, },
"ADD-NEW-DATASET":{ "ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH":"Are those options not enough?", "OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP":"Start new DMP" "START-NEW-DMP": "Start new DMP"
} }
}, },
"USER-DIALOG": { "USER-DIALOG": {
@ -1653,7 +1662,7 @@
}, },
"IMPACT": "This action will finalize your DMP, and you won't be able to edit it again.", "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.", "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": { "DRAFTS": {
"FOR-DMP": "For DMP:", "FOR-DMP": "For DMP:",

View File

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

View File

@ -290,13 +290,13 @@
"DATASET-TEMPLATE-LANGUAGE": "Dataset template language", "DATASET-TEMPLATE-LANGUAGE": "Dataset template language",
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language", "DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users", "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-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User", "DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description", "DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled", "UNTITLED": "Untitled",
"QUESTION": "Question", "QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline" "TEMPLATE-OUTLINE": "Template outline"
}, },
"PAGE-INFO": { "PAGE-INFO": {
"PAGE-NAME": "Chapter Name", "PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter", "CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section", "CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter", "CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter", "CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.", "NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ", "START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter." "START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data", "FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text" "FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
}, },
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.", "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-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-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
}, },
"DEFAULT-VALUES": { "DEFAULT-VALUES": {
"NONE": "Κανένα", "NONE": "Κανένα",
@ -461,6 +461,10 @@
}, },
"ACTIONS": { "ACTIONS": {
"ADD-RULE": "Προσθήκη Κανονισμού Ορατότητας +" "ADD-RULE": "Προσθήκη Κανονισμού Ορατότητας +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
} }
}, },
"RULE": { "RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "Εάν η τιμή είναι", "RULE-IF": "Εάν η τιμή είναι",
"RULE-THEN": "then show Question", "RULE-THEN": "then show Question",
"FIELDSETS": "Questions", "FIELDSETS": "Questions",
"FIELDS":"Inputs" "FIELDS": "Inputs"
}, },
"HINTS":{ "HINTS": {
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.", "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." "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":{ "FORM-VALIDATION": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.", "PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.", "NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.", "MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing", "MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter." "PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
} }
}, },
"TABLE-OF-CONTENTS":{ "TABLE-OF-CONTENTS": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.", "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.", "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" "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", "PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top", "BACK-TO-TOP": "Back to top",
"FIELD": { "FIELD": {
"MAKE-IT-REQUIRED": "Make input required", "MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question", "ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet" "NOT-INITIALIZED": "Not initialized yet"
}, },
"FIELDSET": { "FIELDSET": {
"ADD-INPUT": "Add new input", "ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field", "COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.", "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.", "ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.." "MORE": "More.."
} }
}, },
"FEEDBACK-MESSAGES":{ "FEEDBACK-MESSAGES": {
"SAVE-SUCCESS":"Changes were saved successfully." "SAVE-SUCCESS": "Changes were saved successfully."
}, },
"ERRORS":{ "ERRORS": {
"INVALID-VISIBILITY-RULES":{ "INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ", "MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?", "MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules", "CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.", "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-XML": "Λήψη XML",
"DOWNLOAD-DOCX": "Ληψη DOCX", "DOWNLOAD-DOCX": "Ληψη DOCX",
"COPY-DATASET": "Αντιφραφή Περιγραφής Συνόλου Δεδομένων", "COPY-DATASET": "Αντιφραφή Περιγραφής Συνόλου Δεδομένων",
"UPDATE-DATASET-PROFILE": "Ενημέρωση Template" "UPDATE-DATASET-PROFILE": "Ενημέρωση Template",
"VALIDATE":"Επικύρωση"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Η Περιγραφή Συνόλου Δεδομένων δεν υπάρχει", "DATASET-NOT-FOUND": "Η Περιγραφή Συνόλου Δεδομένων δεν υπάρχει",
@ -845,7 +850,7 @@
"CLONE": "Κλώνος", "CLONE": "Κλώνος",
"NEW-VERSION": "Νέα Έκδοση", "NEW-VERSION": "Νέα Έκδοση",
"VIEW-VERSIONS": "Όλες οι εκδόσεις των Templates Περιγραφής Συνόλου Δεδομένων", "VIEW-VERSIONS": "Όλες οι εκδόσεις των Templates Περιγραφής Συνόλου Δεδομένων",
"DELETE":"Delete" "DELETE": "Delete"
} }
}, },
"DATASET-UPLOAD": { "DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier", "UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.", "RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation 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-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-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
}, },
"FUNDING-INFO": { "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": "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": { "DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Ακύρωση", "CANCEL": "Ακύρωση",
"DELETE": "Διαγραφή", "DELETE": "Διαγραφή",
"UPDATE": "Ενημέρωση", "UPDATE": "Ενημέρωση",
"DISCARD":{ "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-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-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.", "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-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-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No." "DISCARD-EDITED-DENY": "No."
} }
}, },
"PLACEHOLDER": { "PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate", "ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories" "REPOSITORIES-PLACEHOLDER": "Repositories"
}, },
"DATASET-PROFILE-IDENTIFIER":{ "DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE":"Identifier Type" "IDENTIFIER-TYPE": "Identifier Type"
}, },
"RECENT-ACTIVITY-ORDER": { "RECENT-ACTIVITY-ORDER": {
"CREATED": "Δημιουργημένο", "CREATED": "Δημιουργημένο",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.", "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.", "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.", "NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!", "GOT-IT": "Got it!",
"LEAVE-TOUR":"Leave Tour" "LEAVE-TOUR": "Leave Tour"
}, },
"ADD-NEW-DATASET":{ "ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH":"Are those options not enough?", "OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP":"Start new DMP" "START-NEW-DMP": "Start new DMP"
} }
}, },
"USER-DIALOG": { "USER-DIALOG": {
@ -1653,7 +1662,7 @@
}, },
"IMPACT": "Αυτή η επιλογή θα οριστικοποιήσει το Σχέδιο Διαχείρισης Δεδομένων σας και δε θα μπορείτε να το επεξεργαστείτε ξανά σε αυτήν την έκδοση.", "IMPACT": "Αυτή η επιλογή θα οριστικοποιήσει το Σχέδιο Διαχείρισης Δεδομένων σας και δε θα μπορείτε να το επεξεργαστείτε ξανά σε αυτήν την έκδοση.",
"AFTER-FINALIZATION": "Μετά την οριστικοποίηση του Σχεδίου Διαχείρισης Δεδομένων σας, μπορείτε να το δημοσιεύσετε και να το διαθέσετε δημόσια στο εργαλείο ARGOS.", "AFTER-FINALIZATION": "Μετά την οριστικοποίηση του Σχεδίου Διαχείρισης Δεδομένων σας, μπορείτε να το δημοσιεύσετε και να το διαθέσετε δημόσια στο εργαλείο ARGOS.",
"INVALID":"Invalid" "INVALID": "Invalid"
}, },
"DRAFTS": { "DRAFTS": {
"FOR-DMP": "Για Σχέδιο Διαχείρισης Δεδομένων:", "FOR-DMP": "Για Σχέδιο Διαχείρισης Δεδομένων:",

File diff suppressed because it is too large Load Diff

View File

@ -74,7 +74,7 @@
"NOTIFICATION-DIALOG": { "NOTIFICATION-DIALOG": {
"POPUP": { "POPUP": {
"TITLE": "Súbor dát chýba", "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ť" "CLOSE": "Zatvoriť"
} }
}, },
@ -84,12 +84,12 @@
"JSON-FILES": ".json súbory", "JSON-FILES": ".json súbory",
"PRODUCED": "vytvorené", "PRODUCED": "vytvorené",
"RDA-SPECIFICATIONS": "podľa špecifikácií RDS", "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", "UPLOAD-FILE": "Nahrať súbor",
"REPLACE-FILE": "Replace File" "REPLACE-FILE": "Replace File"
}, },
"INVITATION-DIALOG": { "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", "SUCCESS": "Invitation successfully sent",
"ERROR": "Invitation sent failed" "ERROR": "Invitation sent failed"
}, },
@ -114,7 +114,7 @@
}, },
"TITLES": { "TITLES": {
"PREFIX": "Otvorený DMP - ", "PREFIX": "Otvorený DMP - ",
"GENERAL": "Tvorba Data Management plánov", "GENERAL": "Tvorba Plánu manažmentu dát (DMP)",
"ABOUT": "O nástroji", "ABOUT": "O nástroji",
"PRIVACY": "Zásady ochrany súkromných údajov", "PRIVACY": "Zásady ochrany súkromných údajov",
"OPENSOURCE-LICENCES": " Open source licencie", "OPENSOURCE-LICENCES": " Open source licencie",
@ -134,19 +134,19 @@
"USERS": "Používatelia", "USERS": "Používatelia",
"PROFILE": "Môj profil", "PROFILE": "Môj profil",
"LOGIN": "Prihlásenie", "LOGIN": "Prihlásenie",
"DMP-OVERVIEW": "DMP Prehľad", "DMP-OVERVIEW": "Prehľad DMP ",
"DMP-EDIT": "Upraviť DMP", "DMP-EDIT": "Editovať DMP",
"DATASET-OVERVIEW": "Prehľad súborov dát", "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-NEW-VERSION": "Nová verzia DMP",
"DMP-CLONE": "Klonovať DMP", "DMP-CLONE": "Klonovať DMP",
"DATASET-NEW": "Nový súbor dát", "DATASET-NEW": "Nový súbor dát",
"GRANT-NEW": "Nový grant", "GRANT-NEW": "Nový grant",
"GRANT-EDIT": "Pozrieť/Upraviť grant", "GRANT-EDIT": "Pozrieť/Editovať grant",
"DMP-PROFILE-NEW": "Nová DMP šablóna ", "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-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", "EXPLORE-PLANS-OVERVIEW": "Publikované DMP - prehľad",
"DATASET-PUBLIC-EDIT": "Pozrieť publikované súbory dát", "DATASET-PUBLIC-EDIT": "Pozrieť publikované súbory dát",
"DMP-PUBLIC-EDIT": "Pozrieť publikované DMP", "DMP-PUBLIC-EDIT": "Pozrieť publikované DMP",
@ -217,8 +217,8 @@
"ABOUT": "O nástroji", "ABOUT": "O nástroji",
"MY-DATASET-DESCRIPTIONS": "MOJE SÚBORY DÁT", "MY-DATASET-DESCRIPTIONS": "MOJE SÚBORY DÁT",
"DATASET-DESCRIPTION-WIZARD": "Sprievodca pre Súbory dát", "DATASET-DESCRIPTION-WIZARD": "Sprievodca pre Súbory dát",
"PUBLIC DATASETS": "PUBLIKOVANÉ SÚBORY DÁT", "PUBLIC DATASETS": "VEREJJNÉ SÚBORY DÁT",
"PUBLIC-DMPS": "PUBLIKOVANÉ DMP", "PUBLIC-DMPS": "VEREJNÉ DMP",
"HOME": "DOMOV", "HOME": "DOMOV",
"DMP-WIZARD": "Sprievodca pre DMP ", "DMP-WIZARD": "Sprievodca pre DMP ",
"DATASET-TEMPLATES": "ŠABLÓNY SÚBOROV DÁT", "DATASET-TEMPLATES": "ŠABLÓNY SÚBOROV DÁT",
@ -240,7 +240,7 @@
"GENERAL": "VŠEOBECNÉ INFORMÁCIE", "GENERAL": "VŠEOBECNÉ INFORMÁCIE",
"ABOUT": "O nástroji", "ABOUT": "O nástroji",
"DASHBOARD": "Domov", "DASHBOARD": "Domov",
"DMP": "DATA MANAGEMENT PLÁNY", "DMP": "PLÁNY MANAŽMENTU DÁT",
"MY-DMPS": "Moje DMP", "MY-DMPS": "Moje DMP",
"DATASETS": "SÚBORY DÁT", "DATASETS": "SÚBORY DÁT",
"GRANTS": "GRANTY", "GRANTS": "GRANTY",
@ -290,13 +290,13 @@
"DATASET-TEMPLATE-LANGUAGE": "Dataset template language", "DATASET-TEMPLATE-LANGUAGE": "Dataset template language",
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language", "DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users", "DATASET-TEMPLATE-USERS": "Users",
"DATASET-TEMPLATE-NO-USERS-YET":"... No users yet",
"DATASET-TEMPLATE-REMOVE-USER": "Remove User", "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-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description", "DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled", "UNTITLED": "Untitled",
"QUESTION": "Question", "QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline" "TEMPLATE-OUTLINE": "Template outline"
}, },
"PAGE-INFO": { "PAGE-INFO": {
"PAGE-NAME": "Chapter Name", "PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter", "CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section", "CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter", "CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter", "CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.", "NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ", "START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter." "START-CREATING-PAGE-END": "creating the first chapter."
@ -322,9 +322,9 @@
"SECTION": "Section" "SECTION": "Section"
}, },
"PAGES": { "PAGES": {
"TITLE": "Chapter Description", "TITLE": "Opis stránky",
"PAGE-PREFIX": "Chapter", "PAGE-PREFIX": "Stránka",
"PAGE-INPUT-TITLE": "Chapter Title", "PAGE-INPUT-TITLE": "Názov stránky",
"DATASET-DETAILS": "Podrobné informácie o súbore dát", "DATASET-DETAILS": "Podrobné informácie o súbore dát",
"EXTERNAL-REFERENCES": "Externé odkazy", "EXTERNAL-REFERENCES": "Externé odkazy",
"DESCRIPTION": "Opis" "DESCRIPTION": "Opis"
@ -374,7 +374,7 @@
}, },
"FIELD": { "FIELD": {
"FIELDS": { "FIELDS": {
"RULES-TITLE": "Conditional Questions", "RULES-TITLE": "Visibility Rules",
"FIELD-RULES-VALUE": "Value", "FIELD-RULES-VALUE": "Value",
"ID": "Section Unique Identifier", "ID": "Section Unique Identifier",
"VIEW-STYLE": "Type", "VIEW-STYLE": "Type",
@ -385,29 +385,29 @@
"VALIDATION": "Validation", "VALIDATION": "Validation",
"MULTIPLICITY-CHECKBOX": "Multiplicity", "MULTIPLICITY-CHECKBOX": "Multiplicity",
"FIELD-TEXT-AREA-TITLE": "Text Area Data", "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-TITLE": "Boolean Decision Data",
"FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder Text", "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Input Placeholder",
"FIELD-CHECKBOX-TITLE": "Checkbox Data", "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-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-COMBO-BOX-TYPE": "Type of Combo Box",
"FIELD-WORD-LIST-TITLE": "Word List Data", "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-LABEL": "Label",
"FIELD-WORD-LIST-VALUE": "Value", "FIELD-WORD-LIST-VALUE": "Value",
"FIELD-INTERNAL-DMP-ENTITIES-TYPE": "Type of Internal DMP Entity", "FIELD-INTERNAL-DMP-ENTITIES-TYPE": "Type of Internal DMP Entity",
"FIELD-RESEARCHERS-TITLE": "Researchers Autocomplete", "FIELD-RESEARCHERS-TITLE": "Researchers Autocomplete",
"FIELD-RESEARCHERS-PLACEHOLDER": "Input Placeholder Text", "FIELD-RESEARCHERS-PLACEHOLDER": "Input Placeholder",
"FIELD-DATASETS-PLACEHOLDER": "Input Placeholder Text", "FIELD-DATASETS-PLACEHOLDER": "Input Placeholder",
"FIELD-DMPS-PLACEHOLDER": "Input Placeholder Text", "FIELD-DMPS-PLACEHOLDER": "Input Placeholder",
"FIELD-RADIO-BOX-TITLE": "Radio Box Data", "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-LABEL": "Label",
"FIELD-RADIO-BOX-VALUE": "Value", "FIELD-RADIO-BOX-VALUE": "Value",
"FIELD-AUTOCOMPLETE-TITLE": "Autocomplete Data", "FIELD-AUTOCOMPLETE-TITLE": "Autocomplete Data",
"FIELD-AUTOCOMPLETE-PLACEHOLDER": "Input Placeholder Text", "FIELD-AUTOCOMPLETE-PLACEHOLDER": "Input Placeholder",
"FIELD-AUTOCOMPLETE-SOURCE-TITLE": "Sources", "FIELD-AUTOCOMPLETE-SOURCE-TITLE": "Sources",
"FIELD-AUTOCOMPLETE-ADD_SOURCE": "Add Source", "FIELD-AUTOCOMPLETE-ADD_SOURCE": "Add Source",
"FIELD-AUTOCOMPLETE-TYPE": "Source Type", "FIELD-AUTOCOMPLETE-TYPE": "Source Type",
@ -419,7 +419,7 @@
"FIELD-AUTOCOMPLETE-URL": "Url", "FIELD-AUTOCOMPLETE-URL": "Url",
"FIELD-AUTOCOMPLETE-OPTIONS-ROOT": "Options Root", "FIELD-AUTOCOMPLETE-OPTIONS-ROOT": "Options Root",
"FIELD-DATE-PICKER-TITLE": "Date Picker", "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-LABEL": "Label",
"FIELD-DATE-PICKER-VALUE": "Value", "FIELD-DATE-PICKER-VALUE": "Value",
"FIELD-MULTIPLE-AUTOCOMPLETE": "Multiple Autocomplete", "FIELD-MULTIPLE-AUTOCOMPLETE": "Multiple Autocomplete",
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data", "FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text" "FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
}, },
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.", "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-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-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
}, },
"DEFAULT-VALUES": { "DEFAULT-VALUES": {
"NONE": "Žiadny", "NONE": "Žiadny",
@ -461,6 +461,10 @@
}, },
"ACTIONS": { "ACTIONS": {
"ADD-RULE": "Pridať pravidlo Dostupnosti +" "ADD-RULE": "Pridať pravidlo Dostupnosti +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
} }
}, },
"RULE": { "RULE": {
@ -469,29 +473,29 @@
"TARGET": "Target Field Id", "TARGET": "Target Field Id",
"VALUE": "Required Value", "VALUE": "Required Value",
"RULE-IF": "If Value is", "RULE-IF": "If Value is",
"RULE-THEN": "then show Question", "RULE-THEN": "then show Field With Id",
"FIELDSETS": "Questions", "FIELDSETS": "Questions",
"FIELDS":"Inputs" "FIELDS": "Inputs"
}, },
"HINTS":{ "HINTS": {
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.", "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." "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":{ "FORM-VALIDATION": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.", "PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.", "NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.", "MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing", "MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter." "PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
} }
}, },
"TABLE-OF-CONTENTS":{ "TABLE-OF-CONTENTS": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.", "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.", "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" "PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
} }
} }
@ -512,8 +516,8 @@
"ADD-PAGE": "Pridať stránku +", "ADD-PAGE": "Pridať stránku +",
"ADD-SECTION": "Pridať sekciu +", "ADD-SECTION": "Pridať sekciu +",
"VALIDATE": "Potvrdiť", "VALIDATE": "Potvrdiť",
"PREVIEW-AND-FINALIZE": "Preview and finalize", "PREVIEW-AND-FINALIZE": "Preview & Finalize",
"BACK-TO-TOP":"Back to top", "BACK-TO-TOP": "Back to top",
"FIELD": { "FIELD": {
"MAKE-IT-REQUIRED": "Make input required", "MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question", "ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet" "NOT-INITIALIZED": "Not initialized yet"
}, },
"FIELDSET": { "FIELDSET": {
"ADD-INPUT": "Add new input", "ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field", "COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.", "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.", "ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.." "MORE": "More.."
} }
}, },
"FEEDBACK-MESSAGES":{ "FEEDBACK-MESSAGES": {
"SAVE-SUCCESS":"Changes were saved successfully." "SAVE-SUCCESS": "Changes were saved successfully."
}, },
"ERRORS":{ "ERRORS": {
"INVALID-VISIBILITY-RULES":{ "INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ", "MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?", "MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules", "CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.", "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-LISTING": {
"DMP": "DMP", "DMP": "DMP",
"GRANT": "Grant", "GRANT": "Grant",
"TITLE": "Data Management plány", "TITLE": "Plány manažmentu dát",
"OWNER": "Vlastník", "OWNER": "Vlastník",
"MEMBER": "Člen", "MEMBER": "Člen",
"CREATOR": "Autor", "CREATOR": "Autor",
@ -562,7 +566,7 @@
"PUBLISHED": "Publikované", "PUBLISHED": "Publikované",
"VERSION": "Verzia", "VERSION": "Verzia",
"CONTAINED-DATASETS": "Počet súborov dát", "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", "TEXT-INFO-QUESTION": "Neviete ako vyzerá DMP v praxi? Prezrite si verejné DMP a",
"LINK-ZENODO": "LIBER komunitu v Zenodo,", "LINK-ZENODO": "LIBER komunitu v Zenodo,",
"GET-IDEA": "aby ste získali predstavu.", "GET-IDEA": "aby ste získali predstavu.",
@ -582,20 +586,20 @@
}, },
"ACTIONS": { "ACTIONS": {
"NEW": "Nový DMP", "NEW": "Nový DMP",
"NEW-WITH-WIZARD": "Nový DMP použitím nástroja sprievodca", "NEW-WITH-WIZARD": "Nový DMP-použiť Sprievodcu",
"EDIT": "Upraviť", "EDIT": "Editovať",
"INVITE": "Pozvať prispievateľov", "INVITE": "Pozvať prispievateľov",
"INVITE-AUTHORS": "Pozvať autorov", "INVITE-AUTHORS": "Pozvať autorov",
"INVITE-SHORT": "Pozvať", "INVITE-SHORT": "Pozvať",
"ADD-DATASET": "Pridať súbor dát do DMP", "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", "ADD-DATASET-SHORT": "Pridať súbor dát",
"DATASETS": "Uviesť všetky súbory dát DMP", "DATASETS": "Uviesť všetky súbory dát DMP",
"NEW-VERSION": "Nová verzia", "NEW-VERSION": "Nová verzia",
"START-NEW-VERSION": "Začať novú verziu", "START-NEW-VERSION": "Začať novú verziu",
"VIEW-VERSION": "Všetky verzie DMP", "VIEW-VERSION": "Všetky verzie DMP",
"CLONE": "Klonovať", "CLONE": "Klonovať",
"COPY": "Kopírovať", "COPY": "Copy",
"DELETE": "Vymazať", "DELETE": "Vymazať",
"DEPOSIT": "Vložiť", "DEPOSIT": "Vložiť",
"EXPORT": "Exportovať", "EXPORT": "Exportovať",
@ -614,8 +618,8 @@
"TOOLTIP": { "TOOLTIP": {
"DMP-STATUS": { "DMP-STATUS": {
"DRAFT": "Neverejný prístup -editovateľný DMP", "DRAFT": "Neverejný prístup -editovateľný DMP",
"FINALIZED": "Neverejný prístup - uzavreté DMP", "FINALIZED": "Neverejný prístup - uzavretý DMP",
"PUBLISHED": "Verejný prístup - uzavreté DMP" "PUBLISHED": "Verejný prístup - uzavretý DMP"
}, },
"LEVEL-OF-ACCESS": "Úroveň prístupu", "LEVEL-OF-ACCESS": "Úroveň prístupu",
"INVOLVED-DATASETS": "Použité súbory dát", "INVOLVED-DATASETS": "Použité súbory dát",
@ -625,7 +629,7 @@
"EMPTY-LIST": "Zatiaľ prázdne." "EMPTY-LIST": "Zatiaľ prázdne."
}, },
"DMP-PUBLIC-LISTING": { "DMP-PUBLIC-LISTING": {
"TITLE": "Publikované Data Management plány", "TITLE": "Publikované Plány manažmentu dát",
"OWNER": "Vlastník", "OWNER": "Vlastník",
"MEMBER": "Člen", "MEMBER": "Člen",
"CREATOR": "Autor", "CREATOR": "Autor",
@ -638,7 +642,7 @@
"EMPTY-LIST": "Zatiaľ prázdne." "EMPTY-LIST": "Zatiaľ prázdne."
}, },
"DMP-UPLOAD": { "DMP-UPLOAD": {
"TITLE": "Importovať Data Management plán", "TITLE": "Importovať Plán manažmentu dát",
"UPLOAD-BUTTON": "Nahrať", "UPLOAD-BUTTON": "Nahrať",
"UPLOAD-SUCCESS": "Importovanie bolo úspešné", "UPLOAD-SUCCESS": "Importovanie bolo úspešné",
"ACTIONS": { "ACTIONS": {
@ -649,7 +653,7 @@
}, },
"DATASET-WIZARD": { "DATASET-WIZARD": {
"TITLE": { "TITLE": {
"NEW": "Nový súbor dát" "NEW": "Nový Súbor dát"
}, },
"EDITOR": { "EDITOR": {
"FIELDS": { "FIELDS": {
@ -660,7 +664,7 @@
}, },
"FIRST-STEP": { "FIRST-STEP": {
"TITLE": "Informácie o súbore dát", "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", "PROFILE": "Šablóna súboru dát",
"SUB-TITLE": "Vytvorený v: " "SUB-TITLE": "Vytvorený v: "
}, },
@ -677,7 +681,7 @@
"BACK-TO": "Späť na", "BACK-TO": "Späť na",
"DELETE": "Vymazať", "DELETE": "Vymazať",
"GO-TO-GRANT": "Prejsť na Grant súboru dát", "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": "Uložiť",
"SAVE-AND-ADD": "Uložiť a pridať nový", "SAVE-AND-ADD": "Uložiť a pridať nový",
"SAVE-AND-CLOSE": "Uložiť a zavrieť", "SAVE-AND-CLOSE": "Uložiť a zavrieť",
@ -690,7 +694,8 @@
"DOWNLOAD-XML": "Stiahnuť XML", "DOWNLOAD-XML": "Stiahnuť XML",
"DOWNLOAD-DOCX": "Stiahnuť DOCX", "DOWNLOAD-DOCX": "Stiahnuť DOCX",
"COPY-DATASET": "Kopírovať súbor dát", "COPY-DATASET": "Kopírovať súbor dát",
"UPDATE-DATASET-PROFILE": "Aktualizovať šablónu" "UPDATE-DATASET-PROFILE": "Aktualizovať šablónu",
"VALIDATE":"Validate"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Súbor dát neexistuje", "DATASET-NOT-FOUND": "Súbor dát neexistuje",
@ -751,10 +756,10 @@
"DATASET-LISTING": { "DATASET-LISTING": {
"TITLE": "Súbory dát", "TITLE": "Súbory dát",
"DATASET-DESCRIPTION": "Súbor 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.", "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": "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člene do DMP v Argose", "TEXT-INFO-REST": " súbory dát začlené do DMP v Argose",
"LINK-PUBLIC-DATASETS": "Verejné súbory dát", "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.", "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": { "COLUMNS": {
@ -776,11 +781,11 @@
"SERVICES": "Služby" "SERVICES": "Služby"
}, },
"ACTIONS": { "ACTIONS": {
"EDIT": "Upraviť", "EDIT": "Editovať",
"MAKE-IT-PUBLIC": "Zverejniť", "MAKE-IT-PUBLIC": "Zverejniť",
"VIEW": "Pozrieť", "VIEW": "Pozrieť",
"NEW": "Nový súbor dát", "NEW": "Nový Súbor dát",
"CREATE-NEW": "Vytvoriť nový súbor dát", "CREATE-NEW": "Vytvoriť nový Súbor dát",
"EXPORT": "Exportovať", "EXPORT": "Exportovať",
"INVITE-COLLABORATORS": "Pozvať spolupracovníkov", "INVITE-COLLABORATORS": "Pozvať spolupracovníkov",
"INVITE-SHORT": "Invite" "INVITE-SHORT": "Invite"
@ -839,13 +844,13 @@
"SERVICES": "Služby" "SERVICES": "Služby"
}, },
"ACTIONS": { "ACTIONS": {
"EDIT": "Upraviť", "EDIT": "Editovať",
"MAKE-IT-PUBLIC": "Zverejniť", "MAKE-IT-PUBLIC": "Zverejniť",
"VIEW": "Pozrieť", "VIEW": "Pozrieť",
"CLONE": "Klonovať", "CLONE": "Klonovať",
"NEW-VERSION": "Nová verzia", "NEW-VERSION": "Nová verzia",
"VIEW-VERSIONS": "Všetky verzie šablóny súboru dát", "VIEW-VERSIONS": "Všetky verzie šablóny súboru dát",
"DELETE":"Delete" "DELETE": "Delete"
} }
}, },
"DATASET-UPLOAD": { "DATASET-UPLOAD": {
@ -867,7 +872,7 @@
"DMP-PROFILE-EDITOR": { "DMP-PROFILE-EDITOR": {
"TITLE": { "TITLE": {
"NEW": "Nová šablóna DMP", "NEW": "Nová šablóna DMP",
"EDIT": "Upraviť" "EDIT": "Editovať"
}, },
"FIELDS": { "FIELDS": {
"TITLE": "Polia", "TITLE": "Polia",
@ -895,7 +900,7 @@
}, },
"GRANT-EDITOR": { "GRANT-EDITOR": {
"TITLE": { "TITLE": {
"NEW": "Nový grant", "NEW": "Nový Grant",
"EDIT": "Upraviť" "EDIT": "Upraviť"
}, },
"FIELDS": { "FIELDS": {
@ -911,13 +916,13 @@
"SAVE": "Uložiť", "SAVE": "Uložiť",
"CANCEL": "Zrušiť", "CANCEL": "Zrušiť",
"DELETE": "Vymazať", "DELETE": "Vymazať",
"GO-TO-DMPS": "Prejsť do DMP", "GO-TO-DMPS": "Prejsť na DMP",
"VISIT-WEBSITE": "Navštíviť webovú stránku" "VISIT-WEBSITE": "Navštíviť webovú stránku"
} }
}, },
"DMP-EDITOR": { "DMP-EDITOR": {
"TITLE": { "TITLE": {
"NEW": "NovýData Management plán", "NEW": "Nový Plán manažmentu dát",
"EDIT": "Upraviť", "EDIT": "Upraviť",
"EDIT-DMP": "Úprava DMP", "EDIT-DMP": "Úprava DMP",
"ADD-DATASET": "Pridanie súboru dát", "ADD-DATASET": "Pridanie súboru dát",
@ -930,19 +935,19 @@
}, },
"FIELDS": { "FIELDS": {
"NAME": "Názov", "NAME": "Názov",
"RELATED-GRANT": "Ďalší grant", "RELATED-GRANT": "Súvisiaci grant",
"DESCRIPTION": "Opis", "DESCRIPTION": "Opis",
"DESCRIPTION-HINT": "Briefly describe the context and purpose of the DMP", "DESCRIPTION-HINT": "Briefly describe the context and purpose of the DMP",
"ORGANISATIONS": "Organizácie", "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": "Výskumníci",
"RESEARCHERS-HINT": "Add here the names of people that have produced, processed, analysed the data described in the DMP. ", "RESEARCHERS-HINT": "Add here the names of people that have produced, processed, analysed the data described in the DMP. ",
"AUTHORS": "Autori", "AUTHORS": "Autori",
"TEMPLATES": "Šablóny", "TEMPLATES": "Šablóny",
"TEMPLATE": "DMP šablóny", "TEMPLATE": "DMP šablóna",
"DATASET-TEMPLATES": "Ďalšie šablóny súborov dát", "DATASET-TEMPLATES": "Súvisiace šablóny súborov dát",
"SELECT-TEMPLATE": "Vyberte šablónu, ktorá definuje váš súbor dát", "SELECT-TEMPLATE": "Vyberte šablónu, ktorá definuje váš súbor dát",
"PROFILE": "DMP šablóna", "PROFILE": "Šablóna DMP",
"PROJECT": "Projekt", "PROJECT": "Projekt",
"GRANT": "Grant", "GRANT": "Grant",
"GRANTS": "Granty", "GRANTS": "Granty",
@ -957,7 +962,7 @@
"LANGUAGE": "Jazyk", "LANGUAGE": "Jazyk",
"LANGUAGE-HINT": "Select the language of your DMP", "LANGUAGE-HINT": "Select the language of your DMP",
"LICENSE": "Licencia", "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.", "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", "PUBLICATION": "Dátum publikovania",
"CONTACT": "Kontakt", "CONTACT": "Kontakt",
@ -1011,17 +1016,17 @@
"NEXT": "Ďalej" "NEXT": "Ďalej"
}, },
"MAIN-INFO": { "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.", "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, jeho rozsah a ciele.", "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.", "TYPING": "Napíšte viac písmen názvu, aby bolo možné nájsť správny DMP.",
"UNIQUE-IDENTIFIER": "Unique Identifier", "UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.", "RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation 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-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-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
}, },
"FUNDING-INFO": { "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?", "FIND": "Nenašli ste správny súbor?",
"UNIQUE-IDENTIFIER": "Unique Identifier", "UNIQUE-IDENTIFIER": "Unique Identifier",
"IDENTIFIER-FUNDER-EXISTS": "A funder with the given identifier exists.", "IDENTIFIER-FUNDER-EXISTS": "A funder with the given identifier exists.",
@ -1029,28 +1034,32 @@
"IDENTIFIER-PROJECT-EXISTS": "A project with the given identifier exists." "IDENTIFIER-PROJECT-EXISTS": "A project with the given identifier exists."
}, },
"DATASET-INFO": { "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.", "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?", "FIND": "Nenašli ste správny súbor?",
"HINT": "Select a template to describe your datasets. You may select more than one template." "HINT": "Select a template to describe your datasets. You may select more than one template."
}, },
"LICENSE-INFO": { "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é.", "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." "TYPING": "Napíšte viac písmen názvu, aby bolo možné nájsť správnu licenciu."
}, },
"DATASET-DESCRIPTION": { "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", "CHANGES": "neuložené zmeny",
"CLONE-DIALOG": { "CLONE-DIALOG": {
"CLONE": "Klonovať", "CLONE": "Klonovať",
"SAVE": "Uložiť", "SAVE": "Uložiť",
"CANCEL": "Zruš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": { "DMP-PROFILE-LISTING": {
"TITLE": "DMP šablóny", "TITLE": "Šablóny DMP",
"COLUMNS": { "COLUMNS": {
"NAME": "Názov", "NAME": "Názov",
"STATUS": "Stav", "STATUS": "Stav",
@ -1060,7 +1069,7 @@
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Importovať", "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-NAME": "Názov šablóny DMP",
"UPLOAD-XML-IMPORT": "Súbor", "UPLOAD-XML-IMPORT": "Súbor",
"UPLOAD-XML-FILE-CANCEL": "Zrušiť" "UPLOAD-XML-FILE-CANCEL": "Zrušiť"
@ -1099,21 +1108,21 @@
"STATUS": "Stav", "STATUS": "Stav",
"NONE": "-", "NONE": "-",
"TAGS": "Tagy", "TAGS": "Tagy",
"SELECT-TAGS": "Vybrať tagy", "SELECT-TAGS": "Hľadať súbory dát",
"LIKE": "Hľadať súbory dát", "LIKE": "Search Datasets",
"DRAFT-LIKE": "Hľadať návrhy súborov dát", "DRAFT-LIKE": "Hľadať návrhy súborov dát",
"SELECT-GRANTS": "Vybrať granty", "SELECT-GRANTS": "Vybrať granty",
"ROLE": "Rola", "ROLE": "Rola",
"ORGANIZATION": "Organizácia", "ORGANIZATION": "Organizácia",
"SELECT-ORGANIZATIONS": "Vybrať organizáciu", "SELECT-ORGANIZATIONS": "Vybrať organizáciu",
"SELECT-SPEC": "Vybrať špecifikáciu súboru dát", "SELECT-SPEC": "Vybrať špecifikáciu súboru dát",
"RELATED-GRANT": "Ďalší grant", "RELATED-GRANT": "Súvisiaci grant",
"SELECT-DMP": "Vybrať DMP", "SELECT-DMP": "Vybrať DMP",
"RELATED-DMP": "Ďalší DMP", "RELATED-DMP": "Súvisiaci DMP",
"SELECT-COLLABORATORS": "Vybrať spolupracovníkov", "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", "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í" "ALL-VERSIONS": "Zo všetkých verzií"
}, },
"DMP": { "DMP": {
@ -1121,9 +1130,9 @@
"GRANTS": "Granty", "GRANTS": "Granty",
"SELECT-GRANTS": "Vybrať grant", "SELECT-GRANTS": "Vybrať grant",
"SELECT-COLLABORATORS": "Vybrať spolupracovníkov", "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", "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": { "USERS": {
"LABEL": "Hľadať", "LABEL": "Hľadať",
@ -1135,9 +1144,9 @@
}, },
"DATASET-EDITOR": { "DATASET-EDITOR": {
"TITLE": { "TITLE": {
"NEW": "Nový Data Management plán", "NEW": "Nový Plán manažmentu dát",
"EDIT": "Upraviť", "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." "INTRO-TIP": "Tip: Add new datasets to describe different types of data or disciplinary data to avoid mixing information."
}, },
"FIELDS": { "FIELDS": {
@ -1165,18 +1174,18 @@
"CANCEL": "Zrušiť", "CANCEL": "Zrušiť",
"DELETE": "Vymazať", "DELETE": "Vymazať",
"UPDATE": "Aktualizovať", "UPDATE": "Aktualizovať",
"DISCARD":{ "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-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-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.", "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-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-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No." "DISCARD-EDITED-DENY": "No."
} }
}, },
"PLACEHOLDER": { "PLACEHOLDER": {
"DESCRIPTION": "Doplniť opis", "DESCRIPTION": "Doplniť opis",
"EXTERNAL-LINK": "Poskytnúť externý URL link" "EXTERNAL-LINK": "Uviesť externý URL link"
}, },
"HINT": { "HINT": {
"DESCRIPTION": "Briefly describe the context and purpose of the Dataset", "DESCRIPTION": "Briefly describe the context and purpose of the Dataset",
@ -1184,7 +1193,7 @@
"TITLE-REST": " , opis rozsahu a cieľov." "TITLE-REST": " , opis rozsahu a cieľov."
}, },
"VERSION-DIALOG": { "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?" "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" "DRAFT": "Návrh"
}, },
"DMP-VISIBILITY": { "DMP-VISIBILITY": {
"VISIBILITY": "Dostupnosť", "VISIBILITY": "Viditľnosť",
"PUBLIC": "Publikované", "PUBLIC": "Publikované",
"FINALIZED": "Dokončené", "FINALIZED": "Dokončené",
"DRAFT": "Návrh", "DRAFT": "Návrh",
@ -1282,7 +1291,7 @@
"CHECKBOX": "Zaškrtávacie pole (Checkbox)", "CHECKBOX": "Zaškrtávacie pole (Checkbox)",
"COMBO-BOX": "Kombinované pole (Combo Box)", "COMBO-BOX": "Kombinované pole (Combo Box)",
"INTERNAL-DMP-ENTITIES": "Interné DMP entity (Internal DMP Entities)", "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)", "RADIO-BOX": "Pole výberu (Radio Box)",
"TEXT-AREA": "Textová oblasť (Text Area)", "TEXT-AREA": "Textová oblasť (Text Area)",
"DATE-PICKER": "Výber dátumu (Date Picker) ", "DATE-PICKER": "Výber dátumu (Date Picker) ",
@ -1318,8 +1327,8 @@
"ACTION": "Validate", "ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories" "REPOSITORIES-PLACEHOLDER": "Repositories"
}, },
"DATASET-PROFILE-IDENTIFIER":{ "DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE":"Identifier Type" "IDENTIFIER-TYPE": "Identifier Type"
}, },
"RECENT-ACTIVITY-ORDER": { "RECENT-ACTIVITY-ORDER": {
"CREATED": "Vytvorené", "CREATED": "Vytvorené",
@ -1361,7 +1370,7 @@
}, },
"DMP-WIZARD": { "DMP-WIZARD": {
"FIRST-STEP": { "FIRST-STEP": {
"DMP": "DMP editor", "DMP": "DMP Editor",
"DATASETS": "Súbory dát" "DATASETS": "Súbory dát"
}, },
"ACTIONS": { "ACTIONS": {
@ -1371,10 +1380,10 @@
} }
}, },
"DMP-RELATED-GRANT": { "DMP-RELATED-GRANT": {
"RELATED-GRANT": "Ďalší grant" "RELATED-GRANT": "Súvisiaci grant"
}, },
"DMP-RELATED-COLLABORATOR": { "DMP-RELATED-COLLABORATOR": {
"RELATED-COLLABORATOR": "Ďalší spolupracovníci", "RELATED-COLLABORATOR": "Súvisiaci spolupracovníci",
"SELECT-COLLABORATORS": "Vybrať spolupracovníka" "SELECT-COLLABORATORS": "Vybrať spolupracovníka"
}, },
"DMP-RELATED-ORGANIZATION": { "DMP-RELATED-ORGANIZATION": {
@ -1390,8 +1399,8 @@
"MY-TITLE-GRANT": "Moja nedávna aktivita - Grant", "MY-TITLE-GRANT": "Moja nedávna aktivita - Grant",
"MY-TITLE-DMP": "Moja nedávna aktivita - DMP", "MY-TITLE-DMP": "Moja nedávna aktivita - DMP",
"MY-TITLE-DATASET": "Moja nedávna aktivita - Súbor dát", "MY-TITLE-DATASET": "Moja nedávna aktivita - Súbor dát",
"LAST-VISITED-DMP": "Naposledy navštívený Data Management plán", "LAST-VISITED-DMP": "Naposledy navštívený Plánmanažmentu dát",
"LAST-EDITED-DMP": "Naposledy upravovaný Data Management plán", "LAST-EDITED-DMP": "Naposledy upravený Plán manažmentu dát",
"LICENSE": "Nižšie uvedené DMP sú verejne dostupné pod licenciou ##" "LICENSE": "Nižšie uvedené DMP sú verejne dostupné pod licenciou ##"
}, },
"FILE-UPLOADER": { "FILE-UPLOADER": {
@ -1413,7 +1422,7 @@
"ABOUT": { "ABOUT": {
"TITLE-DASHED": "-O nástroji-", "TITLE-DASHED": "-O nástroji-",
"TITLE": "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", "CONTRIBUTORS": "Prispievatelia",
"WELCOME": "Vitajte v ARGOSE", "WELCOME": "Vitajte v ARGOSE",
"WELCOME-MESSAGE": "Vytvárajte, prepájajte, zdieľajte svoje plány manažmentu dát (DMP)." "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": "Používateľská príručka",
"TITLE-DASHED": "-Používateľská príručka-", "TITLE-DASHED": "-Používateľská príručka-",
"CLOSE": "Zavrieť", "CLOSE": "Zavrieť",
"SAVE": "Uložiť" "SAVE": "Save"
}, },
"PRIVACY-POLICY": { "PRIVACY-POLICY": {
"TITLE": "-Zásady ochrany súkromných údajov-", "TITLE": "-Zásady ochrany súkromných údajov-",
@ -1484,18 +1493,18 @@
"MY-DMPS": "Moje DMP", "MY-DMPS": "Moje DMP",
"TITLE": "Čo je ARGOS?", "TITLE": "Čo je ARGOS?",
"DMP-QUESTION": "Čo je DMP v ARGOSE?", "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-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": "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-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", "NEW-QUESTION": "Nový používateľ DMP? Navštívte",
"START-YOUR-FIRST-DMP": "Začať prvý DMP", "START-YOUR-FIRST-DMP": "Začať prvý DMP",
"OPEN-AIR-GUIDE": "webovú stránku Príručka OpenAIRE pre výskumných pracovníkov,", "OPEN-AIR-GUIDE": "Príručka OpenAIRE pre výskumných pracovníkov,",
"LEARN-MORE": "aby ste sa dozvedeli viac o vytvorení DMP.", "LEARN-MORE": "poskytne viac informácií o vytvorení DMP.",
"ORGANIZATIONS": "Ďalšie organizácie", "ORGANIZATIONS": "Súvisiace organizácie",
"DMPS": "DMP", "DMPS": "DMP",
"MY-DATASETS": "Moje súbory dát", "MY-DATASETS": "Moje súbory dát",
"DATASETS": "Súbory dát", "DATASETS": "Súbory dát",
"SEARCH": "HĽADAŤ...", "SEARCH": "HĽADAŤ...",
"DATA-MANAGEMENT-PLANS": "DATA MANAGEMENT PLÁNY", "DATA-MANAGEMENT-PLANS": "PLÁNY MANAŽMENTU DÁT",
"PERSONAL-USAGE": "Osobné použitie", "PERSONAL-USAGE": "Osobné použitie",
"PUBLIC-USAGE": "Verejné použitie", "PUBLIC-USAGE": "Verejné použitie",
"DATASET-DESCRIPTIONS": "Súbory dát", "DATASET-DESCRIPTIONS": "Súbory dát",
@ -1506,7 +1515,7 @@
"ALL": "Všetko", "ALL": "Všetko",
"EMPTY-LIST": "Zatiaľ prázdne.", "EMPTY-LIST": "Zatiaľ prázdne.",
"LATEST-ACTIVITY": "Posledná aktivita", "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.", "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", "SELECT-DMP": "Vybrať DMP pre svoj súbor dát",
"ACTIONS": { "ACTIONS": {
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.", "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.", "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.", "NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!", "GOT-IT": "Got it!",
"LEAVE-TOUR":"Leave Tour" "LEAVE-TOUR": "Leave Tour"
}, },
"ADD-NEW-DATASET":{ "ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH":"Are those options not enough?", "OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP":"Start new DMP" "START-NEW-DMP": "Start new DMP"
} }
}, },
"USER-DIALOG": { "USER-DIALOG": {
@ -1544,13 +1553,13 @@
"CONNECTED-WITH": "Connected with", "CONNECTED-WITH": "Connected with",
"NAME": "Name", "NAME": "Name",
"ORGANIZATION": "Organization", "ORGANIZATION": "Organization",
"ROLE": "Rola", "ROLE": "Role",
"SELECT-ROLE": "Select Role", "SELECT-ROLE": "Select Role",
"ACCOUNTS": "Accounts", "ACCOUNTS": "Accounts",
"EMAILS": "Emails", "EMAILS": "Emails",
"YOUR-EMAIL": "Your Email" "YOUR-EMAIL": "Your Email"
}, },
"ASSOCIATED-DMPS": "Pridružené DMP", "ASSOCIATED-DMPS": "Súvisiace DMP",
"DMPS": { "DMPS": {
"SHOW-ALL": "Ukázať všetko", "SHOW-ALL": "Ukázať všetko",
"CREATOR": "Autor", "CREATOR": "Autor",
@ -1558,10 +1567,10 @@
}, },
"ZENODO": { "ZENODO": {
"LOGIN": "Prihlásiť sa do Zenodo", "LOGIN": "Prihlásiť sa do Zenodo",
"LOGOUT": "odstrániť Zenodo", "LOGOUT": "Odstrániť Zenodo",
"AUTHORIZE": "Authorize Zenodo", "AUTHORIZE": "Authorize Zenodo",
"TITLE": "Zenodo účet", "TITLE": "Zenodo účet",
"DESCRIPTION": "Prepojený Zenodo účet" "DESCRIPTION": "Prepojený Zenodo účet :"
}, },
"ROLE-ORGANIZATION": { "ROLE-ORGANIZATION": {
"FACULTY": "Faculty", "FACULTY": "Faculty",
@ -1623,7 +1632,7 @@
} }
}, },
"GRANT": { "GRANT": {
"TITLE": "Ďalšie granty", "TITLE": "Súvisiace granty",
"FILTER": "Filtrovať granty" "FILTER": "Filtrovať granty"
}, },
"PROFILES": { "PROFILES": {
@ -1653,7 +1662,7 @@
}, },
"IMPACT": "Týmto krokom dokončíte svoj DMP a nebudete ho môcť znovu editovať.", "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 .", "AFTER-FINALIZATION": "Po dokončení DMP ho budete môcť Zverejniť, čím bude verejne dostupný pre ARGOS nástroje .",
"INVALID":"Invalid" "INVALID": "Invalid"
}, },
"DRAFTS": { "DRAFTS": {
"FOR-DMP": "Pre DMP:", "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.", "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": { "QUICKWIZARD_CREATE": {
"TITLE": "DMP Sprievodca (Wizard)", "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": { "ACTIONS": {
"DELETE": "Vymazať", "DELETE": "Vymazať",
"SAVE": "Uložiť", "SAVE": "Uložiť",
@ -1702,7 +1711,7 @@
} }
}, },
"SECOND-STEP": { "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.", "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": "", "NEW-TITLE": "",
"DMP-NAME": "DMP pre grant : ", "DMP-NAME": "DMP pre grant : ",
@ -1711,7 +1720,7 @@
"DESCRIPTION": "Súhrn", "DESCRIPTION": "Súhrn",
"DESCRIPTION-HINT": "Stručne opíšte obsah a účel DMP", "DESCRIPTION-HINT": "Stručne opíšte obsah a účel DMP",
"PROFILE": "Šablóna súborov dát", "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." "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", "TITLE": "Pridať súbor dát do existujúceho DMP",
"DATASET-WIZARD": "Sprievodca pre súbor dát ", "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.", "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é" "CREATED": "Vytvorené"
} }
}, },

View File

@ -290,13 +290,13 @@
"DATASET-TEMPLATE-LANGUAGE": "Dataset template language", "DATASET-TEMPLATE-LANGUAGE": "Dataset template language",
"DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language", "DATASET-TEMPLATE-SELECT-LANGUAGE": "Select a language",
"DATASET-TEMPLATE-USERS": "Users", "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-REMOVE-USER": "Remove User",
"DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User", "DATASET-TEMPLATE-VALIDATE-AND-ADD-USER": "Validate and Add User",
"DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description", "DATASET-TEMPLATE-DESCRIPTION-PLACEHOLDER": "Dataset template description",
"UNTITLED": "Untitled", "UNTITLED": "Untitled",
"QUESTION": "Question", "QUESTION": "Question",
"TEMPLATE-OUTLINE":"Template outline" "TEMPLATE-OUTLINE": "Template outline"
}, },
"PAGE-INFO": { "PAGE-INFO": {
"PAGE-NAME": "Chapter Name", "PAGE-NAME": "Chapter Name",
@ -307,7 +307,7 @@
"CREATE-FIRST-PAGE": "Create the first chapter", "CREATE-FIRST-PAGE": "Create the first chapter",
"CREATE-NEW-SUBSECTION": "Section", "CREATE-NEW-SUBSECTION": "Section",
"CREATE-NEW-SECTION": "Chapter", "CREATE-NEW-SECTION": "Chapter",
"CREATE-FIRST-SECTION":"Create the first chapter", "CREATE-FIRST-SECTION": "Create the first chapter",
"NOTHING-HERE-HINT": "Nothing here yet.", "NOTHING-HERE-HINT": "Nothing here yet.",
"START-CREATING-PAGE-START": "Start by ", "START-CREATING-PAGE-START": "Start by ",
"START-CREATING-PAGE-END": "creating the first chapter." "START-CREATING-PAGE-END": "creating the first chapter."
@ -443,10 +443,10 @@
"FIELD-VALIDATOR-TITLE": "Validator Data", "FIELD-VALIDATOR-TITLE": "Validator Data",
"FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text" "FIELD-VALIDATOR-PLACEHOLDER": "Input placeholder Text"
}, },
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELD-OTHER-SOURCES-REQUIRED": "At least one source must be provided.", "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-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-SELECT-AT-LEAST-ONE-REQUIRED": "There must be at least one option provided."
}, },
"DEFAULT-VALUES": { "DEFAULT-VALUES": {
"NONE": "Nijedan", "NONE": "Nijedan",
@ -461,6 +461,10 @@
}, },
"ACTIONS": { "ACTIONS": {
"ADD-RULE": "Dodajte pravilo vidljivosti +" "ADD-RULE": "Dodajte pravilo vidljivosti +"
},
"STATUS":{
"CALCULATING-PREVIEW":"... calculating preview",
"PREVIEW-UPDATED":"Preview updated!"
} }
}, },
"RULE": { "RULE": {
@ -471,27 +475,27 @@
"RULE-IF": "Ako je vrednost", "RULE-IF": "Ako je vrednost",
"RULE-THEN": "then show Question", "RULE-THEN": "then show Question",
"FIELDSETS": "Questions", "FIELDSETS": "Questions",
"FIELDS":"Inputs" "FIELDS": "Inputs"
}, },
"HINTS":{ "HINTS": {
"ELEMENT-CHILD-OF-TARGET":"This element is parent of selected input.", "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." "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":{ "FORM-VALIDATION": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.", "PAGE-MUST-HAVE-SECTION": "Each chapter must have at least one section.",
"NEEDS-MORE-INFORMATION": " needs more information.", "NEEDS-MORE-INFORMATION": " needs more information.",
"MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.", "MUST-HAVE-SECTION-OR-FIELDSET": " must have either section or question.",
"MISSING":"Missing", "MISSING": "Missing",
"PROVIDE-PAGE-AND-SECTION":"Make sure you provide a chapter and at least one section per chapter." "PROVIDE-PAGE-AND-SECTION": "Make sure you provide a chapter and at least one section per chapter."
} }
}, },
"TABLE-OF-CONTENTS":{ "TABLE-OF-CONTENTS": {
"ERROR-MESSAGES":{ "ERROR-MESSAGES": {
"FIELDSET-MUST-HAVE-PARENT-SECTION":"Question can only be child of section.", "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.", "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" "PAGE-ELEMENT-ONLY-TOP-LEVEL": "Chapter elements can only be at top level"
} }
} }
@ -513,7 +517,7 @@
"ADD-SECTION": "Dodajte sekciju +", "ADD-SECTION": "Dodajte sekciju +",
"VALIDATE": "Potvrdite", "VALIDATE": "Potvrdite",
"PREVIEW-AND-FINALIZE": "Preview and finalize", "PREVIEW-AND-FINALIZE": "Preview and finalize",
"BACK-TO-TOP":"Back to top", "BACK-TO-TOP": "Back to top",
"FIELD": { "FIELD": {
"MAKE-IT-REQUIRED": "Make input required", "MAKE-IT-REQUIRED": "Make input required",
"ADD-VISIBILITY-RULE": "Add Conditional Question", "ADD-VISIBILITY-RULE": "Add Conditional Question",
@ -522,7 +526,7 @@
"NOT-INITIALIZED": "Not initialized yet" "NOT-INITIALIZED": "Not initialized yet"
}, },
"FIELDSET": { "FIELDSET": {
"ADD-INPUT": "Add new input", "ADD-INPUT": "Add input",
"COMMENT-FIELD": "Comment field", "COMMENT-FIELD": "Comment field",
"INCLUDE-COMMENT-FIELD": "A comment field input is appended to the given question.", "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.", "ENABLE-MULTIPLICITY": "User may provide more than one answer to the given question.",
@ -530,16 +534,16 @@
"MORE": "More.." "MORE": "More.."
} }
}, },
"FEEDBACK-MESSAGES":{ "FEEDBACK-MESSAGES": {
"SAVE-SUCCESS":"Changes were saved successfully." "SAVE-SUCCESS": "Changes were saved successfully."
}, },
"ERRORS":{ "ERRORS": {
"INVALID-VISIBILITY-RULES":{ "INVALID-VISIBILITY-RULES": {
"MESSAGE-START": "There were invalid visibilty rules detected in ", "MESSAGE-START": "There were invalid visibilty rules detected in ",
"MESSAGE-END": ". Would you like to fix them?", "MESSAGE-END": ". Would you like to fix them?",
"CONFIRM-YES": "Yes, remove invalid rules", "CONFIRM-YES": "Yes, remove invalid rules",
"CONFIRM-NO": "No, keep them.", "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-XML": "Preuzmite XML",
"DOWNLOAD-DOCX": "Preuzmite DOCX", "DOWNLOAD-DOCX": "Preuzmite DOCX",
"COPY-DATASET": "Kopirajte skup podataka", "COPY-DATASET": "Kopirajte skup podataka",
"UPDATE-DATASET-PROFILE": "Ažurirajte obrazac" "UPDATE-DATASET-PROFILE": "Ažurirajte obrazac",
"VALIDATE":"Validate"
}, },
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Skup podataka ne postoji", "DATASET-NOT-FOUND": "Skup podataka ne postoji",
@ -845,7 +850,7 @@
"CLONE": "Napravite kopiju", "CLONE": "Napravite kopiju",
"NEW-VERSION": "Nova verzija", "NEW-VERSION": "Nova verzija",
"VIEW-VERSIONS": "Sve verzije obrazaca za skupove podataka", "VIEW-VERSIONS": "Sve verzije obrazaca za skupove podataka",
"DELETE":"Delete" "DELETE": "Delete"
} }
}, },
"DATASET-UPLOAD": { "DATASET-UPLOAD": {
@ -1017,8 +1022,8 @@
"UNIQUE-IDENTIFIER": "Unique Identifier", "UNIQUE-IDENTIFIER": "Unique Identifier",
"RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.", "RESEARCHER-IDENTIFIER-EXISTS": "Researcher identifier already exists.",
"ORGANISATION-IDENTIFIER-EXSTS": "Organisation 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-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-ORGANISATION-LIST": "This identifier is already used by an organisation in the organisations list."
}, },
"FUNDING-INFO": { "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.", "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", "CLONE": "Napravite kopiju",
"SAVE": "Sačuvajte", "SAVE": "Sačuvajte",
"CANCEL": "Otkažite" "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": { "DMP-PROFILE-LISTING": {
@ -1165,13 +1174,13 @@
"CANCEL": "Otkažite", "CANCEL": "Otkažite",
"DELETE": "Obrišite", "DELETE": "Obrišite",
"UPDATE": "Ažurirajte", "UPDATE": "Ažurirajte",
"DISCARD":{ "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-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-CONFIRM": "Yes, discard and remove dataset.",
"DISCARD-NEW-DENY":"No.", "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-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-CONFIRM": "Yes, revert changes and go back.",
"DISCARD-EDITED-DENY":"No." "DISCARD-EDITED-DENY": "No."
} }
}, },
"PLACEHOLDER": { "PLACEHOLDER": {
@ -1318,8 +1327,8 @@
"ACTION": "Validate", "ACTION": "Validate",
"REPOSITORIES-PLACEHOLDER": "Repositories" "REPOSITORIES-PLACEHOLDER": "Repositories"
}, },
"DATASET-PROFILE-IDENTIFIER":{ "DATASET-PROFILE-IDENTIFIER": {
"IDENTIFIER-TYPE":"Identifier Type" "IDENTIFIER-TYPE": "Identifier Type"
}, },
"RECENT-ACTIVITY-ORDER": { "RECENT-ACTIVITY-ORDER": {
"CREATED": "Kreirano", "CREATED": "Kreirano",
@ -1521,12 +1530,12 @@
"START-WIZARD": "or create new in Argos.", "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.", "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.", "NEW-DATASET": "With Add Dataset you can describe new datasets anytime in the research process.",
"GOT-IT":"Got it!", "GOT-IT": "Got it!",
"LEAVE-TOUR":"Leave Tour" "LEAVE-TOUR": "Leave Tour"
}, },
"ADD-NEW-DATASET":{ "ADD-NEW-DATASET": {
"OPTIONS-NOT-ENOUGH":"Are those options not enough?", "OPTIONS-NOT-ENOUGH": "Are those options not enough?",
"START-NEW-DMP":"Start new DMP" "START-NEW-DMP": "Start new DMP"
} }
}, },
"USER-DIALOG": { "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.", "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.", "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": { "DRAFTS": {
"FOR-DMP": "Za Plan:", "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"> <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>
<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>

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