-
-
-
-
-
-
- {{formGroup.get('project').getError('backendError').message}}
-
- {{'GENERAL.VALIDATION.REQUIRED' | translate}}
-
+
+
+
+
+
+
+
+
+ {{formGroup.get('label').getError('backendError').message}}
+
+ {{'GENERAL.VALIDATION.REQUIRED' | translate}}
+
+
+
+
+ {{formGroup.get('description').getError('backendError').message}}
+
+ {{'GENERAL.VALIDATION.REQUIRED' | translate}}
+
+
+
+
diff --git a/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.scss b/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.scss
index e69de29bb..ffaa9f882 100644
--- a/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.scss
+++ b/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.scss
@@ -0,0 +1,8 @@
+.add-project {
+ display: flex;
+ justify-content: flex-end;
+ margin-top: 1.5em;
+ padding-right: 2em;
+ cursor: pointer;
+ color: #0070c0;
+}
diff --git a/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.ts b/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.ts
index 268328045..56497df93 100644
--- a/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.ts
+++ b/dmp-frontend/src/app/ui/dmp/editor/project-tab/project-tab.component.ts
@@ -5,6 +5,7 @@ import { RequestItem } from '../../../../core/query/request-item';
import { ProjectCriteria } from '../../../../core/query/project/project-criteria';
import { ProjectService } from '../../../../core/services/project/project.service';
import { LanguageResolverService } from '../../../../services/language-resolver/language-resolver.service';
+import { ProjectTabModel } from './project-tab-model';
@Component({
selector: 'app-project-tab',
@@ -13,7 +14,10 @@ import { LanguageResolverService } from '../../../../services/language-resolver/
})
export class ProjectTabComponent implements OnInit {
- @Input() formGroup: FormGroup = null;
+ @Input() formGroup: FormGroup;
+ @Input() isNew: boolean;
+ isCreateNew = false;
+ project: ProjectTabModel;
projectAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
@@ -23,12 +27,25 @@ export class ProjectTabComponent implements OnInit {
) { }
ngOnInit() {
+
+ const projectRequestItem: RequestItem
= new RequestItem();
+ projectRequestItem.criteria = new ProjectCriteria();
+
this.projectAutoCompleteConfiguration = {
filterFn: this.searchProject.bind(this),
initialItems: (extraData) => this.searchProject(''),
displayFn: (item) => item['label'],
titleFn: (item) => item['label']
};
+
+ if (!this.formGroup) {
+ this.project = new ProjectTabModel();
+ this.formGroup = this.project.buildForm();
+ }
+
+ this.formGroup.get('existProject').enable();
+ this.formGroup.get('label').disable();
+ this.formGroup.get('description').disable();
}
searchProject(query: string) {
@@ -38,4 +55,20 @@ export class ProjectTabComponent implements OnInit {
return this.projectService.getWithExternal(projectRequestItem);
}
+ create() {
+ this.isCreateNew = !this.isCreateNew;
+ if (this.isCreateNew) {
+ this.formGroup.get('existProject').disable();
+ // this.formGroup.get('existProject').reset();
+ this.formGroup.get('label').enable();
+ this.formGroup.get('description').enable();
+ } else {
+ this.formGroup.get('existProject').enable();
+ this.formGroup.get('label').disable();
+ this.formGroup.get('label').reset();
+ this.formGroup.get('description').disable();
+ this.formGroup.get('description').reset();
+ }
+ }
+
}
diff --git a/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.model.ts b/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.model.ts
index 43651d9ad..009a0608c 100644
--- a/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.model.ts
+++ b/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.model.ts
@@ -18,19 +18,16 @@ export class QuickWizardEditorWizardModel {
fromModelProject(item: ProjectListingModel): QuickWizardEditorWizardModel {
this.project.fromModel(item);
-
return this;
}
fromModelDmp(item: DmpModel): QuickWizardEditorWizardModel {
this.dmp.fromModel(item);
-
return this;
}
fromModelDataset(item: DatasetWizardEditorModel[]): QuickWizardEditorWizardModel {
this.datasets.fromModel(item);
-
return this;
}
@@ -40,7 +37,7 @@ export class QuickWizardEditorWizardModel {
project: new ProjectEditorWizardModel().buildForm(),
dmp: new DmpEditorWizardModel().buildForm(),
datasets: new DatasetEditorWizardModel().buildForm()
-
+
});
return formGroup;
}
@@ -49,8 +46,8 @@ export class QuickWizardEditorWizardModel {
// const baseContext: ValidationContext = new ValidationContext();
// baseContext.validation.push({ key: 'project', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'project')] });
// baseContext.validation.push({ key: 'dmp', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'dmp')] });
- // baseContext.validation.push({ key: 'datasets', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'datasets')] });
+ // baseContext.validation.push({ key: 'datasets', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'datasets')] });
// return baseContext;
// }
-}
\ No newline at end of file
+}
diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json
index fd4b591b3..031a50753 100644
--- a/dmp-frontend/src/assets/i18n/en.json
+++ b/dmp-frontend/src/assets/i18n/en.json
@@ -481,7 +481,8 @@
"ACTIONS": {
"GO-TO-PROJECT": "Go To DMP Project",
"GO-TO-DATASETS": "Go To Datasets",
- "SAVE": "Save Changes",
+ "SAVE-CHANGES": "Save Changes",
+ "SAVE": "Save",
"CANCEL": "Cancel",
"DELETE": "Delete",
"FINALISE": "Finalize"