Merge branch 'dmp-refactoring' of https://code-repo.d4science.org/MaDgiK-CITE/argos into dmp-refactoring
This commit is contained in:
commit
de3a352e39
|
@ -16,7 +16,8 @@ const appRoutes: Routes = [
|
|||
path: 'home',
|
||||
loadChildren: () => import('./ui/dashboard/dashboard.module').then(m => m.DashboardModule),
|
||||
data: {
|
||||
breadcrumb: true
|
||||
breadcrumb: true,
|
||||
title: 'GENERAL.TITLES.HOME'
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -49,6 +49,7 @@ import { DmpDescriptionTemplate } from '@app/core/model/dmp/dmp';
|
|||
import { FileTransformerEntityType } from '@app/core/common/enum/file-transformer-entity-type';
|
||||
import { nameof } from 'ts-simple-nameof';
|
||||
import { AbstractControl, UntypedFormArray, UntypedFormGroup } from '@angular/forms';
|
||||
import { TableOfContentsValidationService } from './table-of-contents/services/table-of-contents-validation-service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-description-editor-component',
|
||||
|
@ -99,6 +100,7 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
private dmpService: DmpService,
|
||||
public visibilityRulesService: VisibilityRulesService,
|
||||
public fileTransformerService: FileTransformerService,
|
||||
public tocValidationService: TableOfContentsValidationService
|
||||
|
||||
) {
|
||||
super(dialog, language, formService, router, uiNotificationService, httpErrorHandlingService, filterService, datePipe, route, queryParamsService, lockService, authService, configurationService);
|
||||
|
@ -623,6 +625,7 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
|
||||
refreshData(): void {
|
||||
this.getItem(this.editorModel.id, (data: Description) => this.prepareForm(data));
|
||||
this.tocValidationService.validateForm();
|
||||
}
|
||||
|
||||
refreshOnNavigateToData(id?: Guid): void {
|
||||
|
@ -1015,6 +1018,10 @@ export class DescriptionEditorComponent extends BaseEditor<DescriptionEditorMode
|
|||
// this.formChanged();
|
||||
}
|
||||
});
|
||||
|
||||
this.formGroup.get('properties').valueChanges
|
||||
.pipe(takeUntil(this._destroyed))
|
||||
.subscribe(next => this.tocValidationService.validateForm());
|
||||
|
||||
// // const labelSubscription =
|
||||
// this.formGroup.get('label').valueChanges
|
||||
|
|
|
@ -21,7 +21,8 @@ const routes: Routes = [
|
|||
data: {
|
||||
...BreadcrumbService.generateRouteDataConfiguration({
|
||||
title: 'BREADCRUMBS.EDIT-DESCRIPTION'
|
||||
})
|
||||
}),
|
||||
title: 'DESCRIPTION-EDITOR.TITLE-EDIT-DESCRIPTION'
|
||||
// ,
|
||||
// authContext: {
|
||||
// permissions: [AppPermission.EditDescription]
|
||||
|
@ -39,7 +40,8 @@ const routes: Routes = [
|
|||
data: {
|
||||
...BreadcrumbService.generateRouteDataConfiguration({
|
||||
title: 'BREADCRUMBS.EDIT-DESCRIPTION'
|
||||
})
|
||||
}),
|
||||
title: 'DESCRIPTION-EDITOR.TITLE-EDIT-DESCRIPTION'
|
||||
// ,
|
||||
// authContext: {
|
||||
// permissions: [AppPermission.EditDescription]
|
||||
|
@ -57,7 +59,8 @@ const routes: Routes = [
|
|||
data: {
|
||||
...BreadcrumbService.generateRouteDataConfiguration({
|
||||
title: 'BREADCRUMBS.EDIT-DESCRIPTION'
|
||||
})
|
||||
}),
|
||||
title: 'DESCRIPTION-EDITOR.TITLE-NEW'
|
||||
// ,
|
||||
// authContext: {
|
||||
// permissions: [AppPermission.EditDescription]
|
||||
|
@ -75,7 +78,8 @@ const routes: Routes = [
|
|||
data: {
|
||||
...BreadcrumbService.generateRouteDataConfiguration({
|
||||
title: 'BREADCRUMBS.EDIT-DESCRIPTION'
|
||||
})
|
||||
}),
|
||||
title: 'DESCRIPTION-EDITOR.TITLE-NEW'
|
||||
// ,
|
||||
// authContext: {
|
||||
// permissions: [AppPermission.EditDescription]
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
import { EventEmitter, Injectable } from "@angular/core";
|
||||
|
||||
@Injectable()
|
||||
export class TableOfContentsValidationService {
|
||||
private _validateFormEvent: EventEmitter<any> = new EventEmitter<any>();
|
||||
get validateFormEvent(): EventEmitter<any> {
|
||||
return this._validateFormEvent;
|
||||
}
|
||||
|
||||
validateForm(): void {
|
||||
this._validateFormEvent.emit();
|
||||
}
|
||||
}
|
|
@ -6,6 +6,7 @@ import { ToCEntry } from '../models/toc-entry';
|
|||
import { ToCEntryType } from '../models/toc-entry-type.enum';
|
||||
import { DescriptionFieldIndicator } from '../../description-editor.model';
|
||||
import { Observable, Subscription, map } from 'rxjs';
|
||||
import { TableOfContentsValidationService } from '../services/table-of-contents-validation-service';
|
||||
|
||||
@Component({
|
||||
selector: 'table-of-contents-internal',
|
||||
|
@ -34,8 +35,7 @@ export class TableOfContentsInternal implements OnInit, OnDestroy {
|
|||
tocEntriesStateSubscriptions: Subscription[] = [];
|
||||
tocEntriesStateMap: Map<string, boolean> = new Map<string, boolean>();
|
||||
|
||||
constructor() {
|
||||
}
|
||||
constructor(private tocValidationService: TableOfContentsValidationService) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
// console.log('component created' + JSON.stringify(this.tocentries));
|
||||
|
@ -93,7 +93,7 @@ export class TableOfContentsInternal implements OnInit, OnDestroy {
|
|||
this.tocEntriesStateMap.set(entry.id, false);
|
||||
|
||||
this.tocEntriesStateSubscriptions.push(
|
||||
this.propertiesFormGroup.statusChanges
|
||||
this.tocValidationService.validateFormEvent
|
||||
.pipe(map(() => this.hasErrors(entry.id)))
|
||||
.subscribe(next => {
|
||||
this.tocEntriesStateMap.set(entry.id, next);
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
import {CommonModule} from '@angular/common';
|
||||
import {NgModule} from '@angular/core';
|
||||
import { NgModule} from '@angular/core';
|
||||
import {RouterModule} from '@angular/router';
|
||||
import { TableOfContentsInternal } from './table-of-contents-internal/table-of-contents-internal';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { VisibilityRulesService } from '@app/ui/description/editor/description-form/visibility-rules/visibility-rules.service';
|
||||
import { TableOfContentsComponent } from './table-of-contents.component';
|
||||
import { TableOfContentsValidationService } from './services/table-of-contents-validation-service';
|
||||
|
||||
@NgModule({
|
||||
imports: [CommonModule, RouterModule, MatIconModule],
|
||||
declarations: [TableOfContentsComponent, TableOfContentsInternal],
|
||||
exports: [TableOfContentsComponent],
|
||||
providers: [VisibilityRulesService]
|
||||
providers: [VisibilityRulesService, TableOfContentsValidationService]
|
||||
})
|
||||
export class TableOfContentsModule { }
|
||||
|
|
|
@ -13,14 +13,16 @@ const routes: Routes = [
|
|||
path: 'new',
|
||||
loadChildren: () => import('./dmp-editor-blueprint/dmp-editor.module').then(m => m.DmpEditorModule),
|
||||
data: {
|
||||
breadcrumb: true
|
||||
breadcrumb: true,
|
||||
title: 'DMP-EDITOR.TITLE-NEW'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'edit',
|
||||
loadChildren: () => import('./dmp-editor-blueprint/dmp-editor.module').then(m => m.DmpEditorModule),
|
||||
data: {
|
||||
breadcrumb: true
|
||||
breadcrumb: true,
|
||||
title: 'DMP-EDITOR.TITLE-EDIT'
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@ const routes: Routes = [
|
|||
component: DmpOverviewComponent,
|
||||
data: {
|
||||
breadcrumb: true,
|
||||
title: 'GENERAL.TITLES.DATASET-OVERVIEW'
|
||||
title: 'GENERAL.TITLES.PLAN-OVERVIEW'
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ const routes: Routes = [
|
|||
component: DmpOverviewComponent,
|
||||
data: {
|
||||
breadcrumb: true,
|
||||
title: 'GENERAL.TITLES.DATASET-OVERVIEW'
|
||||
title: 'GENERAL.TITLES.PLAN-OVERVIEW'
|
||||
},
|
||||
}
|
||||
];
|
||||
|
|
|
@ -93,8 +93,10 @@
|
|||
"USERS": "Users",
|
||||
"PROFILE": "My Profile",
|
||||
"LOGIN": "Login",
|
||||
"PLAN-OVERVIEW": "Plan Overview",
|
||||
"DATASET-OVERVIEW": "Description Overview",
|
||||
"MAINTENANCE-TASKS": "Maintenance"
|
||||
"MAINTENANCE-TASKS": "Maintenance",
|
||||
"HOME": "Home"
|
||||
},
|
||||
"FILE-TRANSFORMER": {
|
||||
"PDF": "PDF",
|
||||
|
@ -754,6 +756,7 @@
|
|||
"EMPTY-LIST": "Nothing here yet."
|
||||
},
|
||||
"DESCRIPTION-EDITOR": {
|
||||
"TITLE-NEW": "New Description",
|
||||
"TITLE-ADD-DESCRIPTION": "Adding Description",
|
||||
"TITLE-EDIT-DESCRIPTION": "Editing Description",
|
||||
"TITLE-PREVIEW-DESCRIPTION": "Previewing Description",
|
||||
|
@ -1446,6 +1449,7 @@
|
|||
}
|
||||
},
|
||||
"DMP-EDITOR": {
|
||||
"TITLE-NEW": "New Plan",
|
||||
"TITLE-EDIT": "Editing Plan",
|
||||
"TITLE": "Plan Blueprint",
|
||||
"UNSAVED-CHANGES": "unsaved changes",
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<div class="form-content-editor-content">
|
||||
<div mat-dialog-title class="d-flex justify-content-between m-0">
|
||||
<span class="title">{{'GENERAL.FORM-VALIDATION-DISPLAY-DIALOG.WARNING' | translate}}</span>
|
||||
<mat-icon class="close-icon" (click)="onClose()">close</mat-icon>
|
||||
<div class="container-fluid">
|
||||
<div class="row mt-3">
|
||||
<div mat-dialog-title class="col-12 pr-1 d-flex justify-content-between">
|
||||
<span class="mr-3 title">{{'GENERAL.FORM-VALIDATION-DISPLAY-DIALOG.WARNING' | translate}}</span>
|
||||
<mat-icon class="close-icon" (click)="onClose()">close</mat-icon>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="col p-0">
|
||||
<div class="row mt-3 mr-3 mb-3">
|
||||
<div class="col-12">
|
||||
<ng-container *ngIf="errorMessages">
|
||||
<ul class="error-list" *ngIf="errorMessages.length > 1 else singleError">
|
||||
<li *ngFor="let error of errorMessages">{{error}}</li>
|
||||
|
@ -15,8 +17,8 @@
|
|||
</ng-template>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="col actions">
|
||||
<div class="row mt-3 mb-3">
|
||||
<div class="col-12 actions">
|
||||
<button mat-button type="button" class="ml-auto cancel-btn" (click)="onClose()">{{'GENERAL.FORM-VALIDATION-DISPLAY-DIALOG.ACTIONS.CANCEL' | translate}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue