diff --git a/dmp-frontend/src/app/app.module.ts b/dmp-frontend/src/app/app.module.ts
index 8523db47b..f8575729f 100644
--- a/dmp-frontend/src/app/app.module.ts
+++ b/dmp-frontend/src/app/app.module.ts
@@ -31,6 +31,7 @@ import { TranslateServerLoader } from './core/services/language/server.loader';
import { BaseHttpService } from './core/services/http/base-http.service';
import { ConfigurationService } from './core/services/configuration/configuration.service';
import { Oauth2DialogModule } from './ui/misc/oauth2-dialog/oauth2-dialog.module';
+import { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from '@angular/material';
// AoT requires an exported function for factories
export function HttpLoaderFactory(http: HttpClient, appConfig: ConfigurationService) {
@@ -69,6 +70,11 @@ const cookieConfig: NgcCookieConsentConfig = {
type: 'info'
};
+const appearance: MatFormFieldDefaultOptions = {
+ appearance: 'outline'
+ // appearance: 'standard'
+};
+
@NgModule({
imports: [
BrowserModule,
@@ -118,6 +124,10 @@ const cookieConfig: NgcCookieConsentConfig = {
deps: [CultureService],
useFactory: (cultureService) => cultureService.getCurrentCulture().name
},
+ {
+ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
+ useValue: appearance
+ },
Title,
CookieService
],
diff --git a/dmp-frontend/src/app/core/model/dmp/dmp.ts b/dmp-frontend/src/app/core/model/dmp/dmp.ts
index f6fbf0ca5..2ebc47fcc 100644
--- a/dmp-frontend/src/app/core/model/dmp/dmp.ts
+++ b/dmp-frontend/src/app/core/model/dmp/dmp.ts
@@ -11,6 +11,7 @@ import { ProjectModel } from "../project/project";
import { FunderModel } from "../funder/funder";
import { DmpStatus } from '@app/core/common/enum/dmp-status';
import { ExtraPropertiesFormModel } from '@app/ui/dmp/editor/general-tab/extra-properties-form.model';
+import { DatasetWizardModel } from '../dataset/dataset-wizard';
export interface DmpModel {
id: string;
@@ -24,7 +25,7 @@ export interface DmpModel {
grant: GrantListingModel;
project: ProjectModel;
funder: FunderModel;
- datasets: DatasetModel[];
+ datasets: DatasetWizardModel[];
datasetsToBeFinalized: string[];
profiles: DmpProfile[];
organisations: OrganizationModel[];
diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html
index 1d019c707..4d2ee2618 100644
--- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html
+++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.html
@@ -1,4 +1,260 @@
+
+
+
-
+
diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.scss b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.scss
index 0d3fcc534..5221d29c7 100644
--- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.scss
+++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.scss
@@ -1,5 +1,35 @@
.dataset-external-references-editor {
- .external-item-card {
- margin-bottom: 1em;
- }
+ .heading {
+ text-align: left;
+ font-weight: 700;
+ font-size: 18px;
+ letter-spacing: 0px;
+ color: #212121;
+ opacity: 0.81;
+ margin-top: 1.625rem;
+ margin-bottom: 0.625rem;
+ }
+
+ .hint {
+ text-align: left;
+ font-weight: 400;
+ font-size: 16px;
+ letter-spacing: 0px;
+ color: #212121;
+ opacity: 0.81;
+ margin-bottom: 2.125rem;
+ }
+
+ .external-item-card {
+ margin-bottom: 1em;
+ }
+}
+
+::ng-deep .tags-form .mat-form-field-appearance-outline .mat-form-field-outline {
+ background: #fafafa !important;
+}
+
+::ng-deep .tags-form .mat-form-field-appearance-outline .mat-form-field-infix {
+ font-size: 1rem;
+ padding: 0.6em 0 1em 0 !important;
}
diff --git a/dmp-frontend/src/app/ui/dataset/dataset.module.ts b/dmp-frontend/src/app/ui/dataset/dataset.module.ts
index 76674c623..88b25ca5a 100644
--- a/dmp-frontend/src/app/ui/dataset/dataset.module.ts
+++ b/dmp-frontend/src/app/ui/dataset/dataset.module.ts
@@ -64,6 +64,13 @@ import { DatasetCriteriaDialogComponent } from './listing/criteria/dataset-crite
DatasetExternalServiceDialogEditorComponent,
DatasetUploadDialogue,
DatasetCriteriaDialogComponent
+ ],
+ exports: [
+ DatasetExternalReferencesEditorComponent,
+ DatasetExternalDataRepositoryDialogEditorComponent,
+ DatasetExternalDatasetDialogEditorComponent,
+ DatasetExternalRegistryDialogEditorComponent,
+ DatasetExternalServiceDialogEditorComponent
]
})
export class DatasetModule { }
diff --git a/dmp-frontend/src/app/ui/dmp/dmp.module.ts b/dmp-frontend/src/app/ui/dmp/dmp.module.ts
index 9620cda3a..b32ef737b 100644
--- a/dmp-frontend/src/app/ui/dmp/dmp.module.ts
+++ b/dmp-frontend/src/app/ui/dmp/dmp.module.ts
@@ -39,7 +39,9 @@ import { StartNewDmpDialogComponent } from './start-new-dmp-dialogue/start-new-d
import { MainInfoComponent } from './editor/main-info/main-info.component';
import { FundingInfoComponent } from './editor/funding-info/funding-info.component';
import { DatasetInfoComponent } from './editor/dataset-info/dataset-info.component';
-
+import { DatasetEditorDetailsModule } from './editor/dataset-editor-details/dataset-editor-details.module';
+import { DatasetEditorDetailsComponent } from './editor/dataset-editor-details/dataset-editor-details.component';
+import { DatasetDescriptionFormModule } from '../misc/dataset-description-form/dataset-description-form.module';
@NgModule({
imports: [
@@ -53,7 +55,9 @@ import { DatasetInfoComponent } from './editor/dataset-info/dataset-info.compone
DmpRoutingModule,
DmpOverviewModule,
FormValidationErrorsDialogModule,
- MultipleChoiceDialogModule
+ MultipleChoiceDialogModule,
+ DatasetEditorDetailsModule,
+ DatasetDescriptionFormModule
],
declarations: [
DmpListingComponent,
@@ -97,7 +101,8 @@ import { DatasetInfoComponent } from './editor/dataset-info/dataset-info.compone
DmpCriteriaDialogComponent,
AddOrganizationComponent,
AddCostComponent,
- StartNewDmpDialogComponent
+ StartNewDmpDialogComponent,
+ DatasetEditorDetailsComponent
]
})
export class DmpModule { }
diff --git a/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.html b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.html
new file mode 100644
index 000000000..234146805
--- /dev/null
+++ b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.html
@@ -0,0 +1,93 @@
+
diff --git a/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.scss b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.scss
new file mode 100644
index 000000000..efeee1f7b
--- /dev/null
+++ b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.scss
@@ -0,0 +1,108 @@
+.dataset-editor-details {
+ // position: relative;
+ // left: 362px;
+ // width: calc(100% - 366px);
+
+ .intro {
+ text-align: left;
+ font-weight: 400;
+ letter-spacing: 0px;
+ color: #212121;
+ opacity: 1;
+ margin: 3rem 0rem 3rem 0rem;
+ }
+
+ .heading {
+ text-align: left;
+ font-weight: 700;
+ font-size: 18px;
+ letter-spacing: 0px;
+ color: #212121;
+ opacity: 0.81;
+ margin-top: 1.625rem;
+ margin-bottom: 0.625rem;
+ }
+
+ .hint {
+ text-align: left;
+ font-weight: 400;
+ font-size: 16px;
+ letter-spacing: 0px;
+ color: #212121;
+ opacity: 0.81;
+ margin-bottom: 2.125rem;
+ }
+
+ .title-form,
+ .description-form {
+ text-align: left;
+ font-weight: 400;
+ font-size: 16px;
+ letter-spacing: 0.15px;
+ color: #7d7d7d;
+ opacity: 1;
+ margin-bottom: 1rem;
+ }
+
+ // textarea::placeholder {
+ // font-style: oblique;
+ // }
+
+ .input-btn {
+ border: none;
+ color: #aaaaaa;
+ background-color: #ffffff00;
+ cursor: pointer;
+ }
+
+ .input-btn :hover {
+ color: #00b29f !important;
+ }
+
+ .dmp-link {
+ color: #3fafac;
+ font-weight: 400;
+ font-size: 16px;
+ cursor: pointer;
+ }
+
+ .dmp-link:hover {
+ text-decoration: underline;
+ }
+}
+
+::ng-deep .title-form .mat-form-field-appearance-outline .mat-form-field-outline {
+ background: #fafafa !important;
+}
+
+::ng-deep .description-form .mat-form-field-appearance-outline .mat-form-field-outline {
+ background: #fafafa !important;
+}
+
+::ng-deep .uri-form .mat-form-field-appearance-outline .mat-form-field-outline {
+ background: #fafafa !important;
+}
+
+::ng-deep .tags-form .mat-form-field-appearance-outline .mat-form-field-outline {
+ background: #fafafa !important;
+}
+
+::ng-deep .title-form .mat-form-field-appearance-outline .mat-form-field-infix {
+ font-size: 1rem;
+ padding: 0.6em 0 1em 0 !important;
+}
+
+::ng-deep .description-form .mat-form-field-appearance-outline .mat-form-field-infix {
+// font-size: 1rem;
+ padding: 0.6em 0 1em 0 !important;
+}
+
+::ng-deep .uri-form .mat-form-field-appearance-outline .mat-form-field-infix {
+ font-size: 1rem;
+ padding: 0.6em 0 1em 0 !important;
+}
+
+::ng-deep .tags-form .mat-form-field-appearance-outline .mat-form-field-infix {
+ font-size: 1rem;
+ padding: 0.6em 0 1em 0 !important;
+}
diff --git a/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.ts
new file mode 100644
index 000000000..48dd01d5b
--- /dev/null
+++ b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.component.ts
@@ -0,0 +1,232 @@
+import { BaseComponent } from '@common/base/base.component';
+import { OnInit, Component, Input, Output, EventEmitter } from '@angular/core';
+import { TranslateService } from '@ngx-translate/core';
+import { ConfigurationService } from '@app/core/services/configuration/configuration.service';
+import { ExternalSourcesService } from '@app/core/services/external-sources/external-sources.service';
+import { MatDialog, MatSnackBar, MatChipInputEvent } from '@angular/material';
+import { DatasetWizardService } from '@app/core/services/dataset-wizard/dataset-wizard.service';
+import { ActivatedRoute, Router } from '@angular/router';
+import { DmpService } from '@app/core/services/dmp/dmp.service';
+import { ExternalSourcesConfigurationService } from '@app/core/services/external-sources/external-sources-configuration.service';
+import { UiNotificationService, SnackBarNotificationLevel } from '@app/core/services/notification/ui-notification-service';
+import { FormService } from '@common/forms/form-service';
+import { LockService } from '@app/core/services/lock/lock.service';
+import { AuthService } from '@app/core/services/auth/auth.service';
+import { DatasetStatus } from '@app/core/common/enum/dataset-status';
+import { FormGroup, FormControl, FormArray } from '@angular/forms';
+import { DatasetDescriptionFormEditorModel } from '@app/ui/misc/dataset-description-form/dataset-description-form.model';
+import { DatasetProfileModel } from '@app/core/model/dataset/dataset-profile';
+import { LockModel } from '@app/core/model/lock/lock.model';
+import { takeUntil, map, catchError } from 'rxjs/operators';
+import { RequestItem } from '@app/core/query/request-item';
+import { isNullOrUndefined } from 'util';
+import { interval, Observable, of as observableOf } from 'rxjs';
+import { Guid } from '@common/types/guid';
+import { Location } from '@angular/common';
+import { DatasetProfileCriteria } from '@app/core/query/dataset-profile/dataset-profile-criteria';
+import { DmpListingModel } from '@app/core/model/dmp/dmp-listing';
+import { DatasetWizardEditorModel, ExternalTagEditorModel } from '@app/ui/dataset/dataset-wizard/dataset-wizard-editor.model';
+import { ENTER, COMMA } from '@angular/cdk/keycodes';
+
+
+@Component({
+ selector: 'dataset-editor-details',
+ templateUrl: './dataset-editor-details.component.html',
+ styleUrls: ['./dataset-editor-details.component.scss']
+})
+export class DatasetEditorDetailsComponent extends BaseComponent implements OnInit {
+
+ viewOnly = false;
+ editMode = false;
+ // publicMode = false;
+
+ // DatasetStatus = DatasetStatus;
+ // dmpAutoCompleteConfiguration: SingleAutoCompleteConfiguration;
+
+ datasetWizardModel: DatasetWizardEditorModel;
+ // isNew = true;
+ // isCopy = false;
+ // formGroup: FormGroup = null;
+ datasetProfileDefinitionModel: DatasetDescriptionFormEditorModel;
+
+ availableProfiles: DatasetProfileModel[] = [];
+ // itemId: string;
+ // publicId: string;
+ // profileUpdateId: string;
+ // downloadDocumentId: string;
+ // isLinear = false;
+ lock: LockModel;
+ lockStatus: Boolean;
+
+ @Input() formGroup: FormGroup;
+ @Input() dmpId: string;
+ @Input() datasetId: string;
+ @Output() formChanged: EventEmitter = new EventEmitter();
+ readonly separatorKeysCodes: number[] = [ENTER, COMMA];
+
+ constructor(
+ private datasetWizardService: DatasetWizardService,
+ private route: ActivatedRoute,
+ public snackBar: MatSnackBar,
+ public router: Router,
+ private language: TranslateService,
+ private configurationService: ConfigurationService,
+ private externalSourcesService: ExternalSourcesService,
+ private dialog: MatDialog,
+ public dmpService: DmpService,
+ public externalSourcesConfigurationService: ExternalSourcesConfigurationService,
+ private uiNotificationService: UiNotificationService,
+ private formService: FormService,
+ private lockService: LockService,
+ private location: Location,
+ private authService: AuthService
+ ) {
+ super();
+ }
+
+ ngOnInit() {
+ if (this.datasetId) {
+ this.datasetWizardService.getSingle(this.datasetId)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(data => {
+ this.lockService.checkLockStatus(data.id).pipe(takeUntil(this._destroyed)).subscribe(lockStatus => {
+ this.lockStatus = lockStatus;
+ this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data);
+ this.needsUpdate();
+ this.formGroup = this.datasetWizardModel.buildForm();
+ this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft;
+ if (this.datasetWizardModel.status === DatasetStatus.Finalized || lockStatus) {
+ this.formGroup.disable();
+ this.viewOnly = true;
+ }
+ if (!lockStatus && !isNullOrUndefined(this.authService.current())) {
+ this.lock = new LockModel(data.id, this.authService.current());
+
+ this.lockService.createOrUpdate(this.lock).pipe(takeUntil(this._destroyed)).subscribe(async result => {
+ this.lock.id = Guid.parse(result);
+ interval(this.configurationService.lockInterval).pipe(takeUntil(this._destroyed)).subscribe(() => this.pumpLock());
+ });
+ }
+ // if (this.viewOnly) { this.formGroup.disable(); } // For future use, to make Dataset edit like DMP.
+ this.loadDatasetProfiles();
+ this.registerFormListeners();
+ // this.availableProfiles = this.datasetWizardModel.dmp.profiles;
+
+ this.onChanges();
+ this.formChanged.emit(this.formGroup);
+ })
+ },
+ error => {
+ switch (error.status) {
+ case 403:
+ this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATASET-NOT-ALLOWED'), SnackBarNotificationLevel.Error);
+ break;
+ case 404:
+ this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATASET-NOT-FOUND'), SnackBarNotificationLevel.Error);
+ break;
+ default:
+ this.uiNotificationService.snackBarNotification(this.language.instant('GENERAL.ERRORS.HTTP-REQUEST-ERROR'), SnackBarNotificationLevel.Error);
+ }
+ this.router.navigate(['/datasets/']);
+ return observableOf(null);
+ });
+ }
+ }
+
+ registerFormListeners() {
+ this.formGroup.get('dmp').valueChanges
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(x => {
+ this.dmpValueChanged(x);
+ });
+ this.formGroup.get('profile').valueChanges
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(x => {
+ this.datasetProfileValueChanged(x);
+ });
+ }
+
+ dmpValueChanged(dmp: DmpListingModel) {
+ if (dmp) {
+ this.formGroup.get('profile').enable();
+ this.loadDatasetProfiles();
+ }
+ else {
+ this.availableProfiles = [];
+ this.formGroup.get('profile').reset();
+ this.formGroup.get('profile').disable();
+ this.formGroup.removeControl('datasetProfileDefinition');
+ }
+ }
+
+ datasetProfileValueChanged(profiledId: string) {
+ if (profiledId && profiledId.length > 0) {
+ this.formGroup.removeControl('datasetProfileDefinition');
+ this.getDefinition();
+ }
+ }
+
+ onChanges(): void {
+ this.formGroup.valueChanges
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(val => {
+ this.formChanged.emit(val);
+ });
+ }
+
+ getDefinition() {
+ // if (this.formGroup.invalid) { setTimeout(() => this.stepper.selectedIndex = 0); return; }
+ this.datasetWizardService.getDefinition(this.formGroup.get('profile').value)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(item => {
+ this.datasetWizardModel.datasetProfileDefinition = new DatasetDescriptionFormEditorModel().fromModel(item);
+ this.datasetProfileDefinitionModel = this.datasetWizardModel.datasetProfileDefinition;
+ this.formGroup.addControl('datasetProfileDefinition', this.datasetProfileDefinitionModel.buildForm());
+ });
+ }
+
+ loadDatasetProfiles() {
+ const datasetProfileRequestItem: RequestItem = new RequestItem();
+ datasetProfileRequestItem.criteria = new DatasetProfileCriteria();
+ datasetProfileRequestItem.criteria.id = this.formGroup.get('dmp').value.id;
+ if (datasetProfileRequestItem.criteria.id) {
+ this.datasetWizardService.getAvailableProfiles(datasetProfileRequestItem)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(items => {
+ this.availableProfiles = items;
+ });
+ }
+ }
+
+ needsUpdate() {
+ if (this.datasetWizardModel.isProfileLatestVersion || (this.datasetWizardModel.status === DatasetStatus.Finalized)
+ || (this.datasetWizardModel.isProfileLatestVersion == undefined && this.datasetWizardModel.status == undefined)) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ }
+
+ private pumpLock() {
+ this.lock.touchedAt = new Date();
+ this.lockService.createOrUpdate(this.lock).pipe(takeUntil(this._destroyed)).subscribe(async result => {
+ if (!isNullOrUndefined(result)) {
+ this.lock.id = Guid.parse(result);
+ } else {
+ this.location.back();
+ }
+ });
+ }
+
+ removeTag(tag: any) {
+ (this.formGroup.get('tags')).removeAt(((this.formGroup.get('tags')).value as any[]).indexOf(tag));
+ }
+
+ addTag(ev: MatChipInputEvent) {
+ if (ev.value !== '' && isNullOrUndefined(((this.formGroup.get('tags')).value as ExternalTagEditorModel[]).find(tag => tag.name === ev.value))) {
+ (this.formGroup.get('tags')).push(new ExternalTagEditorModel('', ev.value).buildForm());
+ }
+ ev.input.value = '';
+ }
+}
diff --git a/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.module.ts b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.module.ts
new file mode 100644
index 000000000..a3629ddd6
--- /dev/null
+++ b/dmp-frontend/src/app/ui/dmp/editor/dataset-editor-details/dataset-editor-details.module.ts
@@ -0,0 +1,54 @@
+import { NgModule } from '@angular/core';
+import { FormattingModule } from '@app/core/formatting.module';
+import { AutoCompleteModule } from '@app/library/auto-complete/auto-complete.module';
+import { ConfirmationDialogModule } from '@common/modules/confirmation-dialog/confirmation-dialog.module';
+import { ExportMethodDialogModule } from '@app/library/export-method-dialog/export-method-dialog.module';
+import { UrlListingModule } from '@app/library/url-listing/url-listing.module';
+import { DmpRoutingModule } from '@app/ui/dmp/dmp.routing';
+import { DmpOverviewModule } from '@app/ui/dmp/overview/dmp-overview.module';
+import { CommonFormsModule } from '@common/forms/common-forms.module';
+import { FormValidationErrorsDialogModule } from '@common/forms/form-validation-errors-dialog/form-validation-errors-dialog.module';
+import { CommonUiModule } from '@common/ui/common-ui.module';
+import { MultipleChoiceDialogModule } from '@common/modules/multiple-choice-dialog/multiple-choice-dialog.module';
+import { DatasetEditorDetailsComponent } from './dataset-editor-details.component';
+import { DatasetExternalReferencesEditorComponent } from '@app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component';
+import { DatasetModule } from '@app/ui/dataset/dataset.module';
+import { DatasetExternalServiceDialogEditorComponent } from '@app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component';
+import { DatasetExternalRegistryDialogEditorComponent } from '@app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component';
+import { DatasetExternalDatasetDialogEditorComponent } from '@app/ui/dataset/dataset-wizard/external-references/editors/external-dataset/dataset-external-dataset-dialog-editor.component';
+import { DatasetExternalDataRepositoryDialogEditorComponent } from '@app/ui/dataset/dataset-wizard/external-references/editors/data-repository/dataset-external-data-repository-dialog-editor.component';
+import { DatasetDescriptionFormModule } from '@app/ui/misc/dataset-description-form/dataset-description-form.module';
+
+
+@NgModule({
+ imports: [
+ CommonUiModule,
+ CommonFormsModule,
+ UrlListingModule,
+ ConfirmationDialogModule,
+ ExportMethodDialogModule,
+ FormattingModule,
+ AutoCompleteModule,
+ DmpRoutingModule,
+ DmpOverviewModule,
+ FormValidationErrorsDialogModule,
+ MultipleChoiceDialogModule,
+ DatasetModule,
+ DatasetDescriptionFormModule
+ ],
+ declarations: [
+ DatasetEditorDetailsComponent
+ ],
+ entryComponents: [
+ DatasetEditorDetailsComponent,
+ DatasetExternalReferencesEditorComponent,
+ DatasetExternalDataRepositoryDialogEditorComponent,
+ DatasetExternalDatasetDialogEditorComponent,
+ DatasetExternalRegistryDialogEditorComponent,
+ DatasetExternalServiceDialogEditorComponent
+ ],
+ exports: [
+ DatasetEditorDetailsComponent
+ ]
+})
+export class DatasetEditorDetailsModule { }
diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html
index 782bc5888..ff43715ec 100644
--- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html
+++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html
@@ -1,16 +1,17 @@