diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java
index 15e724c1f..340b7e413 100644
--- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java
+++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java
@@ -1047,8 +1047,6 @@ public class WordBuilder {
}
this.replaceTextSegment(p, "'{ARGOS.DMP.ORGANIZATIONS}'", organisationsNames, 15);
- this.replaceTextSegment(p, "'{ARGOS.DMP.DESCRIPTION}'", "dfdsfsdf");
-
if(this.textSegmentExists(p,"'{ARGOS.DMP.DESCRIPTION}'")) {
descrParPos = parPos;
descrPar = p;
diff --git a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete-configuration.ts b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete-configuration.ts
index 6c88bba4a..37a9422ed 100644
--- a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete-configuration.ts
+++ b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete-configuration.ts
@@ -37,5 +37,6 @@ export interface MultipleAutoCompleteConfiguration {
autoSelectFirstOptionOnBlur?: boolean;
appendClassToItem?: {class: string, applyFunc: (item:any) => boolean}[];
+ canRemoveItem?: (selectedItem: any) => boolean;
}
diff --git a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts
index 11ad5b015..b69c9971b 100644
--- a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts
+++ b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts
@@ -483,6 +483,10 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
if (event != null) {
event.stopPropagation();
}
+ if (this.configuration.canRemoveItem != null && !this.configuration.canRemoveItem(item)) {
+ event.stopPropagation();
+ return;
+ }
const valueToDelete = this._valueToAssign(item);
this.value = this.value.filter(x => this.stringify(x) !== this.stringify(valueToDelete)); //TODO, maybe we need to implement equality here differently.
this.optionRemoved.emit(item);
diff --git a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.html b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.html
index 2566b9527..86db6db58 100644
--- a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.html
+++ b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.html
@@ -156,7 +156,7 @@
- {{'DMP-EDITOR.PLACEHOLDER.RESEARCHERS' | translate}}
+ {{field?.placeholder?.length > 0 ? field.placeholder : ('DMP-EDITOR.PLACEHOLDER.RESEARCHERS' | translate)}}
@@ -174,7 +174,7 @@
- {{'DMP-EDITOR.PLACEHOLDER.ORGANIZATION' | translate}}
+ {{field?.placeholder?.length > 0 ? field.placeholder : ('DMP-EDITOR.PLACEHOLDER.ORGANIZATION' | translate)}}
diff --git a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts
index 3306c0880..aca16be90 100644
--- a/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts
+++ b/dmp-frontend/src/app/ui/dmp/dmp-editor-blueprint/dmp-editor-blueprint.component.ts
@@ -57,6 +57,7 @@ import { GrantEditorModel } from '@app/ui/grant/editor/grant-editor.model';
import { CheckDeactivateBaseComponent } from '@app/library/deactivate/deactivate.component';
import { DmpProfileStatus } from '@app/core/common/enum/dmp-profile-status';
import { DatasetService } from '@app/core/services/dataset/dataset.service';
+import { runInThisContext } from 'vm';
interface Visible {
value: boolean;
@@ -230,7 +231,8 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
displayFn: (item) => item['label'],
titleFn: (item) => item['label'],
subtitleFn: (item) => item['description'],
- popupItemActionIcon: 'visibility'
+ popupItemActionIcon: 'visibility',
+ canRemoveItem: (item) => this.canRemoveItem(item)
};
}
@@ -1088,32 +1090,24 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
return false;
}
- onRemoveTemplate(event, sectionIndex: number) {
+ canRemoveItem(item): boolean {
let found = false;
- let profiles = this.formGroup.get('profiles').value as DmpDatasetProfile[];
this.formGroup.get('datasets')['controls'].forEach(element => {
- if ((element.get('profile').value.id === event.id) && (element.get('dmpSectionIndex').value === sectionIndex)) {
+ if ((element.get('profile').value.id === item.id) && (element.get('dmpSectionIndex').value === (this.step - 1))) {
found = true;
this.uiNotificationService.snackBarNotification(this.language.instant('GENERAL.SNACK-BAR.UNSUCCESSFUL-REMOVE-TEMPLATE'), SnackBarNotificationLevel.Success);
}
});
- if (found) {
- this.formGroup.get('profiles').setValue(profiles);
- this.profilesAutoCompleteConfiguration = {
- filterFn: this.filterProfiles.bind(this),
- initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))),
- displayFn: (item) => item['label'],
- titleFn: (item) => item['label'],
- subtitleFn: (item) => item['description'],
- popupItemActionIcon: 'visibility'
- };
+ if (found) return false
+ else return true;
+ }
- }
- else {
- this.sectionTemplates[sectionIndex] = this.sectionTemplates[sectionIndex].filter(sectionProfile => sectionProfile.id !== event.id);
- profiles = profiles.filter(sectionProfile => sectionProfile.descriptionTemplateId !== event.id);
- this.formGroup.get('profiles').setValue(profiles);
- }
+
+ onRemoveTemplate(event, sectionIndex: number) {
+ let profiles = this.formGroup.get('profiles').value as DmpDatasetProfile[];
+ this.sectionTemplates[sectionIndex] = this.sectionTemplates[sectionIndex].filter(sectionProfile => sectionProfile.id !== event.id);
+ profiles = profiles.filter(sectionProfile => sectionProfile.descriptionTemplateId !== event.id || !sectionProfile.data.dmpSectionIndex.includes(sectionIndex));
+ this.formGroup.get('profiles').setValue(profiles);
}
addProfile(event, sectionIndex: number) {
@@ -1149,7 +1143,7 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
if (result) {
this.addProfile(event, sectionIndex);
const items = this.sectionTemplates[sectionIndex];
- items.push({id: event.id, label: event.label, description: ""});
+ items.push({ id: event.id, label: event.label, description: "" });
this.sectionTemplates[sectionIndex] = [...items];
}
});