clear comment text on submit

This commit is contained in:
CITE\spapacharalampous 2024-07-16 13:43:58 +03:00
parent a9c675880f
commit 508ae03468
3 changed files with 36 additions and 4 deletions

View File

@ -27,7 +27,12 @@
<form [formGroup]="threadFormGroup"> <form [formGroup]="threadFormGroup">
<div class="row mt-2 mb-3"> <div class="row mt-2 mb-3">
<div class="col-12"> <div class="col-12">
<text-area-with-mentions [form]="threadFormGroup.get('text')" [planUsers]="planUsers"></text-area-with-mentions> <text-area-with-mentions
[form]="threadFormGroup.get('text')"
[planUsers]="planUsers"
[clearCommentObservable]="clearCommentSubject.asObservable()"
[threadId]="ROOT_COMMENT"
></text-area-with-mentions>
</div> </div>
<div class="col-6"> <div class="col-6">
<mat-button-toggle-group appearance="standard" name="fontStyle" hideSingleSelectionIndicator="true" [formControl]="threadFormGroup.get('protectionType')" aria-label="Font Style" required> <mat-button-toggle-group appearance="standard" name="fontStyle" hideSingleSelectionIndicator="true" [formControl]="threadFormGroup.get('protectionType')" aria-label="Font Style" required>
@ -149,7 +154,12 @@
<div class="col-12 mt-2"> <div class="col-12 mt-2">
<div class="row new-reply mr-0"> <div class="row new-reply mr-0">
<div class="col"> <div class="col">
<text-area-with-mentions [form]="this.threadReplyTextsFG[thread.toString()].get('replyText')" [planUsers]="planUsers"></text-area-with-mentions> <text-area-with-mentions
[form]="this.threadReplyTextsFG[thread.toString()].get('replyText')"
[planUsers]="planUsers"
[clearCommentObservable]="clearCommentSubject.asObservable()"
[threadId]="thread"
></text-area-with-mentions>
</div> </div>
<div class="col-auto p-0 send-msg"> <div class="col-auto p-0 send-msg">
<button mat-icon-button (click)="replyThread(thread)" matTooltip="{{'ANNOTATION-DIALOG.THREADS.REPLY' | translate}}"> <button mat-icon-button (click)="replyThread(thread)" matTooltip="{{'ANNOTATION-DIALOG.THREADS.REPLY' | translate}}">

View File

@ -26,6 +26,7 @@ import { ConfigurationService } from '@app/core/services/configuration/configura
import { MatSelectionList } from '@angular/material/list'; import { MatSelectionList } from '@angular/material/list';
import { PlanUser } from '@app/core/model/plan/plan'; import { PlanUser } from '@app/core/model/plan/plan';
import { DomSanitizer } from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
import { Subject } from 'rxjs';
interface AnnotationPayloadItem { interface AnnotationPayloadItem {
isMention: boolean; isMention: boolean;
@ -68,6 +69,9 @@ export class AnnotationDialogComponent extends BaseComponent {
@ViewChild('annotationStatus') annotationStatus: MatSelectionList; @ViewChild('annotationStatus') annotationStatus: MatSelectionList;
clearCommentSubject: Subject<any> = new Subject<any>();
ROOT_COMMENT: string = 'root';
constructor( constructor(
public dialogRef: MatDialogRef<AnnotationDialogComponent>, public dialogRef: MatDialogRef<AnnotationDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: any, @Inject(MAT_DIALOG_DATA) public data: any,
@ -119,7 +123,10 @@ export class AnnotationDialogComponent extends BaseComponent {
}; };
this.annotationService.persist(threadToCreate).pipe(takeUntil(this._destroyed)) this.annotationService.persist(threadToCreate).pipe(takeUntil(this._destroyed))
.subscribe( .subscribe(
complete => this.onCallbackSuccess(), complete => {
this.clearCommentSubject.next(this.ROOT_COMMENT);
this.onCallbackSuccess();
},
error => this.onCallbackError(error) error => this.onCallbackError(error)
); );
} }
@ -141,7 +148,10 @@ export class AnnotationDialogComponent extends BaseComponent {
}; };
this.annotationService.persist(replyToCreate).pipe(takeUntil(this._destroyed)) this.annotationService.persist(replyToCreate).pipe(takeUntil(this._destroyed))
.subscribe( .subscribe(
complete => this.onCallbackSuccess(), complete => {
this.clearCommentSubject.next(threadId);
this.onCallbackSuccess()
},
error => this.onCallbackError(error) error => this.onCallbackError(error)
); );
} }

View File

@ -15,6 +15,8 @@ export class TextAreaWithMentionsComponent implements OnInit, OnDestroy {
@Input() form!: FormControl; @Input() form!: FormControl;
@Input() planUsers: PlanUser[]; @Input() planUsers: PlanUser[];
@Input() clearCommentObservable: Observable<any>;
@Input() threadId: string;
internalFormSubscription: Subscription; internalFormSubscription: Subscription;
clearInputSubscription: Subscription; clearInputSubscription: Subscription;
@ -42,6 +44,16 @@ export class TextAreaWithMentionsComponent implements OnInit, OnDestroy {
this.internalFormSubscription = this.internalForm.valueChanges.subscribe(value => { this.internalFormSubscription = this.internalForm.valueChanges.subscribe(value => {
this.form.setValue(this._formatTextWithSelections(value, this.mentions)); this.form.setValue(this._formatTextWithSelections(value, this.mentions));
}); });
if (this.clearCommentObservable) {
this.clearCommentObservable.subscribe(threadIdToClear => {
if (threadIdToClear == this.threadId) {
this.internalForm.reset();
this.internalForm.markAsPristine();
this.mentions = [];
}
});
}
} }
ngOnDestroy(): void { ngOnDestroy(): void {