diff --git a/src/frontend/app/administration/indexingModel/indexing-model-administration.component.ts b/src/frontend/app/administration/indexingModel/indexing-model-administration.component.ts index 02e767f96c57e9623e87829a6b94b8758c0901ed..1cff993b5db8b6f40f477f7b57ecbe1e41ca3e85 100644 --- a/src/frontend/app/administration/indexingModel/indexing-model-administration.component.ts +++ b/src/frontend/app/administration/indexingModel/indexing-model-administration.component.ts @@ -3,7 +3,7 @@ import { HttpClient } from '@angular/common/http'; import { LANG } from '../../translate.component'; import { NotificationService } from '../../notification.service'; import { HeaderService } from '../../../service/header.service'; -import {MatDialog, MatDialogRef} from '@angular/material/dialog'; +import {MatDialog} from '@angular/material/dialog'; import { MatSidenav } from '@angular/material/sidenav'; import { AppService } from '../../../service/app.service'; import {tap, catchError, finalize, exhaustMap, filter} from 'rxjs/operators'; @@ -11,7 +11,6 @@ import { SortPipe } from '../../../plugins/sorting.pipe'; import { IndexingFormComponent } from '../../indexation/indexing-form/indexing-form.component'; import { ActivatedRoute, Router } from '@angular/router'; import { of } from 'rxjs/internal/observable/of'; -import {ConfirmComponent} from '../../../plugins/modal/confirm.component'; @Component({ templateUrl: 'indexing-model-administration.component.html', @@ -49,8 +48,6 @@ export class IndexingModelAdministrationComponent implements OnInit { categoriesList: any[]; - dialogRef: MatDialogRef<any>; - constructor( public http: HttpClient, private route: ActivatedRoute, @@ -118,13 +115,13 @@ export class IndexingModelAdministrationComponent implements OnInit { onSubmit() { const fields = this.indexingForm.getDatas(); - // fields.forEach((element, key) => { - // delete fields[key].event; - // delete fields[key].label; - // delete fields[key].system; - // delete fields[key].type; - // delete fields[key].values; - // }); + fields.forEach((element, key) => { + delete fields[key].event; + delete fields[key].label; + delete fields[key].system; + delete fields[key].type; + delete fields[key].values; + }); this.indexingModel.fields = fields; if (this.creationMode) { @@ -142,11 +139,7 @@ export class IndexingModelAdministrationComponent implements OnInit { }) ).subscribe(); } else { - this.dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: this.lang.indexingModelModification, msg: this.lang.updateIndexingFieldWarning } }); - - this.dialogRef.afterClosed().pipe( - filter((data: string) => data === 'ok'), - exhaustMap(() => this.http.put('../rest/indexingModels/' + this.indexingModel.id, this.indexingModel)), + this.http.put('../rest/indexingModels/' + this.indexingModel.id, this.indexingModel).pipe( tap((data: any) => { this.indexingForm.setModification(); this.setModification(); diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts index 0596986f44bd4a67663f27a2a6c5525eed4aea8e..8ffc822b8772bb1618dab5c04c03c3efd8bd8628 100755 --- a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts +++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts @@ -12,6 +12,7 @@ import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/dr import { FormControl, Validators, FormGroup, ValidationErrors, ValidatorFn, AbstractControl } from '@angular/forms'; import { DiffusionsListComponent } from '../../diffusions/diffusions-list.component'; import { FunctionsService } from '../../../service/functions.service'; +import {ConfirmComponent} from '../../../plugins/modal/confirm.component'; @Component({ selector: 'app-indexing-form', @@ -179,6 +180,8 @@ export class IndexingFormComponent implements OnInit { currentResourceValues: any = null; + dialogRef: MatDialogRef<any>; + constructor( public http: HttpClient, private notify: NotificationService, @@ -276,14 +279,25 @@ export class IndexingFormComponent implements OnInit { } removeItem(arrTarget: string, item: any, index: number) { - item.mandatory = false; - if (item.identifier.indexOf('indexingCustomField') > -1) { - this.availableCustomFields.push(item); - this[arrTarget].splice(index, 1); - } else { - this.availableFields.push(item); - this[arrTarget].splice(index, 1); - } + this.dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: this.lang.indexingModelModification, msg: this.lang.updateIndexingFieldWarning } }); + + this.dialogRef.afterClosed().pipe( + filter((data: string) => data === 'ok'), + tap(() => { + item.mandatory = false; + if (item.identifier.indexOf('indexingCustomField') > -1) { + this.availableCustomFields.push(item); + this[arrTarget].splice(index, 1); + } else { + this.availableFields.push(item); + this[arrTarget].splice(index, 1); + } + }), + catchError((err: any) => { + this.notify.handleErrors(err); + return of(false); + }) + ).subscribe(); } getDatas(withDiffusionList = true) {