diff --git a/web/src/app/administration/components/classification-details/classification-details.component.ts b/web/src/app/administration/components/classification-details/classification-details.component.ts
index 5c87e9aea..a03757e1f 100644
--- a/web/src/app/administration/components/classification-details/classification-details.component.ts
+++ b/web/src/app/administration/components/classification-details/classification-details.component.ts
@@ -86,11 +86,11 @@ export class ClassificationDetailsComponent implements OnInit, OnDestroy {
this.store.dispatch(new SelectClassification(this.classification.classificationId));
});
- this.formsValidatorService.inputOverflowObservable.subscribe((inputOverflowMap) => {
+ this.formsValidatorService.inputOverflowObservable.pipe(takeUntil(this.destroy$)).subscribe((inputOverflowMap) => {
this.inputOverflowMap = inputOverflowMap;
});
this.validateKeypress = (inputFieldModel, maxLength) => {
- this.formsValidatorService.validateKeypress(inputFieldModel, maxLength);
+ this.formsValidatorService.validateInputOverflow(inputFieldModel, maxLength);
};
}
diff --git a/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts b/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts
index 926801143..386308d68 100644
--- a/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts
+++ b/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts
@@ -85,11 +85,11 @@ export class WorkbasketInformationComponent implements OnInit, OnChanges, OnDest
this.lookupField = workbasketsCustomization.information.owner.lookupField;
}
});
- this.formsValidatorService.inputOverflowObservable.subscribe((inputOverflowMap) => {
+ this.formsValidatorService.inputOverflowObservable.pipe(takeUntil(this.destroy$)).subscribe((inputOverflowMap) => {
this.inputOverflowMap = inputOverflowMap;
});
this.validateKeypress = (inputFieldModel, maxLength) => {
- this.formsValidatorService.validateKeypress(inputFieldModel, maxLength);
+ this.formsValidatorService.validateInputOverflow(inputFieldModel, maxLength);
};
}
diff --git a/web/src/app/shared/services/forms-validator/forms-validator.service.ts b/web/src/app/shared/services/forms-validator/forms-validator.service.ts
index cb359437c..9bf4ee26c 100644
--- a/web/src/app/shared/services/forms-validator/forms-validator.service.ts
+++ b/web/src/app/shared/services/forms-validator/forms-validator.service.ts
@@ -109,7 +109,7 @@ export class FormsValidatorService {
);
}
- validateKeypress(inputFieldModel: NgModel, maxLength: Number): void {
+ validateInputOverflow(inputFieldModel: NgModel, maxLength: Number): void {
if (this.overflowErrorSubscriptionMap.has(inputFieldModel.name)) {
this.overflowErrorSubscriptionMap.get(inputFieldModel.name).unsubscribe();
}
diff --git a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.html b/web/src/app/workplace/components/taskdetails-attribute/attribute.component.html
index 820c637a5..79c42d195 100644
--- a/web/src/app/workplace/components/taskdetails-attribute/attribute.component.html
+++ b/web/src/app/workplace/components/taskdetails-attribute/attribute.component.html
@@ -27,4 +27,4 @@
add
Add new {{ callbackInfo ? 'callback information' : 'custom attribute'}}
-
\ No newline at end of file
+
diff --git a/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.html b/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.html
index 52863f452..03fdeaebc 100644
--- a/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.html
+++ b/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.html
@@ -3,100 +3,116 @@
diff --git a/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.ts b/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.ts
index 785268cc5..f05a516c9 100644
--- a/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.ts
+++ b/web/src/app/workplace/components/taskdetails-custom-fields/custom-fields.component.ts
@@ -1,13 +1,36 @@
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
import { Task } from 'app/workplace/models/task';
+import { takeUntil } from 'rxjs/operators';
+import { FormsValidatorService } from '../../../shared/services/forms-validator/forms-validator.service';
+import { Subject } from 'rxjs';
@Component({
selector: 'taskana-task-details-custom-fields',
templateUrl: './custom-fields.component.html'
})
-export class TaskdetailsCustomFieldsComponent implements OnInit {
+export class TaskdetailsCustomFieldsComponent implements OnInit, OnDestroy {
@Input() task: Task;
@Output() taskChange: EventEmitter = new EventEmitter();
- ngOnInit() {}
+ readonly lengthError = 'You have reached the maximum length';
+ inputOverflowMap = new Map();
+ validateKeypress: Function;
+
+ destroy$ = new Subject();
+
+ constructor(private formsValidatorService: FormsValidatorService) {}
+
+ ngOnInit() {
+ this.formsValidatorService.inputOverflowObservable.pipe(takeUntil(this.destroy$)).subscribe((inputOverflowMap) => {
+ this.inputOverflowMap = inputOverflowMap;
+ });
+ this.validateKeypress = (inputFieldModel, maxLength) => {
+ this.formsValidatorService.validateInputOverflow(inputFieldModel, maxLength);
+ };
+ }
+
+ ngOnDestroy(): void {
+ this.destroy$.next();
+ this.destroy$.complete();
+ }
}
diff --git a/web/src/app/workplace/components/taskdetails-general/general-fields.component.html b/web/src/app/workplace/components/taskdetails-general/general-fields.component.html
index f89badfb0..ca9660144 100644
--- a/web/src/app/workplace/components/taskdetails-general/general-fields.component.html
+++ b/web/src/app/workplace/components/taskdetails-general/general-fields.component.html
@@ -4,16 +4,23 @@
@@ -22,18 +29,26 @@
@@ -41,16 +56,22 @@
@@ -58,15 +79,19 @@
-
+
-
+
-
+
@@ -74,27 +99,39 @@
diff --git a/web/src/app/workplace/components/taskdetails-general/general-fields.component.ts b/web/src/app/workplace/components/taskdetails-general/general-fields.component.ts
index 1c0460bea..4f77f283f 100644
--- a/web/src/app/workplace/components/taskdetails-general/general-fields.component.ts
+++ b/web/src/app/workplace/components/taskdetails-general/general-fields.component.ts
@@ -7,25 +7,27 @@ import {
ViewChild,
SimpleChanges,
OnChanges,
- HostListener
+ HostListener,
+ OnDestroy
} from '@angular/core';
import { Task } from 'app/workplace/models/task';
import { FormsValidatorService } from 'app/shared/services/forms-validator/forms-validator.service';
import { NgForm } from '@angular/forms';
import { DomainService } from 'app/shared/services/domain/domain.service';
import { Select } from '@ngxs/store';
-import { Observable } from 'rxjs';
+import { Observable, Subject } from 'rxjs';
import { EngineConfigurationSelectors } from 'app/shared/store/engine-configuration-store/engine-configuration.selectors';
import { ClassificationsService } from '../../../shared/services/classifications/classifications.service';
import { Classification } from '../../../shared/models/classification';
import { TasksCustomisation } from '../../../shared/models/customisation';
+import { takeUntil } from 'rxjs/operators';
@Component({
selector: 'taskana-task-details-general-fields',
templateUrl: './general-fields.component.html',
styleUrls: ['./general-fields.component.scss']
})
-export class TaskdetailsGeneralFieldsComponent implements OnInit, OnChanges {
+export class TaskdetailsGeneralFieldsComponent implements OnInit, OnChanges, OnDestroy {
@Input()
task: Task;
@@ -39,11 +41,16 @@ export class TaskdetailsGeneralFieldsComponent implements OnInit, OnChanges {
@ViewChild('TaskForm', { static: false })
taskForm: NgForm;
- toogleValidationMap = new Map();
+ toggleValidationMap = new Map();
requestInProgress = false;
classifications: Classification[];
+ readonly lengthError = 'You have reached the maximum length';
+ inputOverflowMap = new Map();
+ validateKeypress: Function;
+
@Select(EngineConfigurationSelectors.tasksCustomisation) tasksCustomisation$: Observable;
+ private destroy$ = new Subject();
constructor(
private classificationService: ClassificationsService,
@@ -53,6 +60,12 @@ export class TaskdetailsGeneralFieldsComponent implements OnInit, OnChanges {
ngOnInit() {
this.getClassificationByDomain();
+ this.formsValidatorService.inputOverflowObservable.pipe(takeUntil(this.destroy$)).subscribe((inputOverflowMap) => {
+ this.inputOverflowMap = inputOverflowMap;
+ });
+ this.validateKeypress = (inputFieldModel, maxLength) => {
+ this.formsValidatorService.validateInputOverflow(inputFieldModel, maxLength);
+ };
}
ngOnChanges(changes: SimpleChanges): void {
@@ -64,6 +77,11 @@ export class TaskdetailsGeneralFieldsComponent implements OnInit, OnChanges {
}
}
+ ngOnDestroy() {
+ this.destroy$.next();
+ this.destroy$.complete();
+ }
+
isFieldValid(field: string): boolean {
return this.formsValidatorService.isFieldValid(this.taskForm, field);
}
@@ -76,7 +94,7 @@ export class TaskdetailsGeneralFieldsComponent implements OnInit, OnChanges {
private validate() {
this.formsValidatorService.formSubmitAttempt = true;
- this.formsValidatorService.validateFormInformation(this.taskForm, this.toogleValidationMap).then((value) => {
+ this.formsValidatorService.validateFormInformation(this.taskForm, this.toggleValidationMap).then((value) => {
if (value) {
this.formValid.emit(true);
}