Commit 1594c8a9 by GD-A-150752

bug-fixes

parent 5ce2c8c8
......@@ -84,7 +84,7 @@
</p-editor>
<textarea id="messageContentTxtAreaId" *ngIf="smsTemplateType()" pInputTextarea
[(ngModel)]="messageTemplate.MessageContent"
name="MessageContent{{messageTemplate.ObjectID}}"
name="MessageContent"
fieldLabel="Message Content" style="width: 100%"
placeholder="Message Content"></textarea>
</div>
......
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { Component, EventEmitter, Input, NgZone, OnInit, Output, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Editor } from 'primeng/editor';
......@@ -53,7 +53,8 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
private utilsService: UtilsService,
private saveService: SaveService,
private appService: AppService,
private adminPortalLayoutService: AdminPortalLayoutService
private adminPortalLayoutService: AdminPortalLayoutService,
public ngZone: NgZone
) {
super(utilsService);
}
......@@ -202,14 +203,20 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
};
if (this.contentCursorPoint === 0) {
this.ngZone.run(() => {
this.messageContentEditor.getQuill()
.insertText(this.contentCursorPoint, ' ');
this.contentCursorPoint++;
this.assignContent();
});
}
try {
this.ngZone.run(() => {
this.messageContentEditor.getQuill()
.updateContents(delta);
this.assignContent();
});
} catch (e) {
this.utilsService.handleError(e);
}
......@@ -218,6 +225,14 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
this.contentLinkModal.hide();
}
assignContent(): void {
const editor = this.messageContentEditor.getQuill().container;
if (editor) {
const editElement = editor.getElementsByClassName('ql-editor')[0];
this.messageTemplate.MessageContent = editElement.innerHTML;
}
}
addPlaceholderInMessageContent($event): void {
if (!$event) {
......@@ -241,11 +256,12 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
} else {
this.messageContentEditor.getQuill()
.insertText(this.contentCursorPoint, this.contentPlaceholder.Placeholder);
this.assignContent();
}
} else {
const textarea: HTMLTextAreaElement = document.getElementById('messageContentTxtAreaId') as HTMLTextAreaElement;
this.setValueAndFocus(textarea, 'messageContentTxtArea', this.contentPlaceholder.Placeholder);
this.setValueAndFocus(textarea, 'messageContentTxtArea', this.contentPlaceholder.Placeholder, 'MessageContent');
}
this.resetSelect('contentPlaceholderOptions');
......@@ -295,7 +311,7 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
this.subjectPlaceholder = $event;
if (this.emailTemplateType() && this.subjectPlaceholder && this.subjectPlaceholder.Value) {
const input: HTMLInputElement = document.getElementById('subjectInputId') as HTMLInputElement;
this.setValueAndFocus(input, 'subjectInput', this.subjectPlaceholder.Placeholder);
this.setValueAndFocus(input, 'subjectInput', this.subjectPlaceholder.Placeholder, 'Subject');
}
this.resetSelect('subjectPlaceholderOptions');
}
......@@ -434,10 +450,10 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
false;
}
setValueAndFocus(element, elementId, placeholder): void {
setValueAndFocus(element, elementId, placeholder, modelKey): void {
const start = element.selectionStart;
const end = element.selectionEnd;
element.value = `${element.value.substring(0, start)}${placeholder}${element.value.substring(end)}`;
this.messageTemplate[modelKey] = `${element.value.substring(0, start)}${placeholder}${element.value.substring(end)}`;
this.focusField(elementId);
......
......@@ -237,10 +237,8 @@
</div>
<!-- Display Pre Stage Messages here -->
<div *ngFor="let message of stage.WorkFlowMessages" class="form-group row">
<div *ngIf="message.IsWithdrawalMessage" class="col-lg-12 col-md-12">
<h3>Withdrawal Process</h3>
</div>
<div *ngIf="stage.UseMessaging" class="col-lg-12 col-md-12 mb-10">
<div *ngIf="stage.UseMessaging && !message.IsWithdrawalMessage"
class="col-lg-12 col-md-12 mb-10">
<div class="col-md-3">
<label>&nbsp;</label>
<p-multiSelect [(ngModel)]="message.ApplicantSources"
......@@ -334,6 +332,89 @@
</div>
</div>
<div *ngFor="let message of stage.WorkFlowMessages" class="form-group row">
<div *ngIf="stage.UseMessaging && message.IsWithdrawalMessage"
class="col-lg-12 col-md-12">
<h3>Withdrawal Process</h3>
</div>
<div *ngIf="stage.UseMessaging && message.IsWithdrawalMessage"
class="col-lg-12 col-md-12 mb-10">
<div class="col-md-2">
<label>After</label>
<p-inputMask (change)="generateDelayString(message)"
(onBlur)="toggleInput($event, 'Delay'+message.ObjectID, false)"
(onFocus)="toggleInput($event, 'Delay'+message.ObjectID, true)"
*ngIf="!showLabel('Delay'+message.ObjectID) || !message.Delay"
[(ngModel)]="message.Delay"
[disabled]="showLoader"
[id]="'Delay'+message.ObjectID"
class="form-control"
mask="9?9:99:99"
name="Delay{{message.ObjectID}}">
</p-inputMask>
<div (click)="toggleInput($event, 'Delay'+message.ObjectID, true)"
*ngIf="showLabel('Delay'+message.ObjectID) && message.Delay">
<label>{{message.DelayString}}</label>
</div>
</div>
<div class="col-md-2">
<label for="Variance{{message.ObjectID}}">+/-</label>
<input [(ngModel)]="message.Variance"
[disabled]="showLoader"
(change)="generateVarianceString(message)"
(blur)="toggleInput($event, 'Variance'+message.ObjectID, false)"
(focusin)="toggleInput($event, 'Variance'+message.ObjectID, true)"
class="form-control" id="Variance{{message.ObjectID}}"
*ngIf="!showLabel('Variance'+message.ObjectID) || !message.Variance"
name="Variance{{message.ObjectID}}" type="text">
<div
(click)="toggleInput($event, 'Variance'+message.ObjectID, true)"
*ngIf="showLabel('Variance'+message.ObjectID) && message.Variance">
<label>{{message.VarianceString}}</label>
</div>
</div>
<div class="col-md-2">
<label title="Business Hours only" class="mb-0">Business Hours
only</label>
<p-checkbox [(ngModel)]="message.BusinessHoursOnly"
binary="true"
name="BusinessHoursOnly{{message.ObjectID}}">
</p-checkbox>
</div>
<div class="col-md-4">
<label>Send</label>
<p-dropdown (onChange)="showMessageTemplateDialog($event, message)"
[(ngModel)]="message.MessageTemplate"
[autoDisplayFirst]="false"
[options]="messageTemplates"
filter="true"
name="messageTemplate{{message.ObjectID}}"
optionLabel="TemplateName">
<ng-template let-message pTemplate="selectedItem">
<i class="{{getMessageClass(message.value)}}"></i>
<span
class="dropdown-text">{{message.label}}</span>
</ng-template>
<ng-template let-selectedMsg pTemplate="item">
<div class="ui-helper-clearfix"
style="position: relative;height: 25px;">
<i class="{{getMessageClass(selectedMsg.value)}}"></i>
<div
class="dropdown-text">{{selectedMsg.label}}</div>
</div>
</ng-template>
</p-dropdown>
</div>
<div class="col-md-2 text-center">
<button (click)="configureMessageTemplate(message)"
[disabled]="showLoader" icon="ui-icon-settings"
pButton
type="button">
</button>
</div>
</div>
</div>
</p-panel>
<!-- End displaying messages -->
<hr/>
......@@ -460,13 +541,9 @@
</div>
</div>
<!-- Display Messages here -->
<div *ngFor="let message of stage.WorkFlowMessages"
class="form-group row">
<div *ngIf="message.IsWithdrawalMessage"
<div *ngFor="let message of stage.WorkFlowMessages" class="form-group row">
<div *ngIf="stage.UseMessaging && !message.IsWithdrawalMessage"
class="col-lg-12 col-md-12">
<h3>Withdrawal Process</h3>
</div>
<div *ngIf="stage.UseMessaging" class="col-lg-12 col-md-12">
<div class="col-md-2">
<label>After</label>
<p-inputMask (change)="generateDelayString(message)"
......@@ -489,8 +566,17 @@
<label for="Variance{{message.ObjectID}}">+/-</label>
<input [(ngModel)]="message.Variance"
[disabled]="showLoader"
[id]="'Variance'+message.ObjectID" class="form-control"
(change)="generateVarianceString(message)"
(blur)="toggleInput($event, 'Variance'+message.ObjectID, false)"
(focusin)="toggleInput($event, 'Variance'+message.ObjectID, true)"
class="form-control" id="Variance{{message.ObjectID}}"
*ngIf="!showLabel('Variance'+message.ObjectID) || !message.Variance"
name="Variance{{message.ObjectID}}" type="text">
<div
(click)="toggleInput($event, 'Variance'+message.ObjectID, true)"
*ngIf="showLabel('Variance'+message.ObjectID) && message.Variance">
<label>{{message.VarianceString}}</label>
</div>
</div>
<div class="col-md-2">
<label>Business Hours only</label>
......@@ -536,6 +622,88 @@
</div>
</div>
</div>
<div *ngFor="let message of stage.WorkFlowMessages" class="form-group row">
<div *ngIf="stage.UseMessaging && message.IsWithdrawalMessage"
class="col-lg-12 col-md-12">
<h3>Withdrawal Process</h3>
</div>
<div *ngIf="stage.UseMessaging && message.IsWithdrawalMessage"
class="col-lg-12 col-md-12 mb-10">
<div class="col-md-2">
<label>After</label>
<p-inputMask (change)="generateDelayString(message)"
(onBlur)="toggleInput($event, 'Delay'+message.ObjectID, false)"
(onFocus)="toggleInput($event, 'Delay'+message.ObjectID, true)"
*ngIf="!showLabel('Delay'+message.ObjectID) || !message.Delay"
[(ngModel)]="message.Delay"
[disabled]="showLoader"
[id]="'Delay'+message.ObjectID"
class="form-control"
mask="9?9:99:99"
name="Delay{{message.ObjectID}}">
</p-inputMask>
<div (click)="toggleInput($event, 'Delay'+message.ObjectID, true)"
*ngIf="showLabel('Delay'+message.ObjectID) && message.Delay">
<label>{{message.DelayString}}</label>
</div>
</div>
<div class="col-md-2">
<label for="Variance{{message.ObjectID}}">+/-</label>
<input [(ngModel)]="message.Variance"
[disabled]="showLoader"
(change)="generateVarianceString(message)"
(blur)="toggleInput($event, 'Variance'+message.ObjectID, false)"
(focusin)="toggleInput($event, 'Variance'+message.ObjectID, true)"
class="form-control" id="Variance{{message.ObjectID}}"
*ngIf="!showLabel('Variance'+message.ObjectID) || !message.Variance"
name="Variance{{message.ObjectID}}" type="text">
<div
(click)="toggleInput($event, 'Variance'+message.ObjectID, true)"
*ngIf="showLabel('Variance'+message.ObjectID) && message.Variance">
<label>{{message.VarianceString}}</label>
</div>
</div>
<div class="col-md-2">
<label title="Business Hours only" class="mb-0">Business Hours
only</label>
<p-checkbox [(ngModel)]="message.BusinessHoursOnly"
binary="true"
name="BusinessHoursOnly{{message.ObjectID}}">
</p-checkbox>
</div>
<div class="col-md-4">
<label>Send</label>
<p-dropdown (onChange)="showMessageTemplateDialog($event, message)"
[(ngModel)]="message.MessageTemplate"
[autoDisplayFirst]="false"
[options]="messageTemplates"
filter="true"
name="messageTemplate{{message.ObjectID}}"
optionLabel="TemplateName">
<ng-template let-message pTemplate="selectedItem">
<i class="{{getMessageClass(message.value)}}"></i>
<span
class="dropdown-text">{{message.label}}</span>
</ng-template>
<ng-template let-selectedMsg pTemplate="item">
<div class="ui-helper-clearfix"
style="position: relative;height: 25px;">
<i class="{{getMessageClass(selectedMsg.value)}}"></i>
<div
class="dropdown-text">{{selectedMsg.label}}</div>
</div>
</ng-template>
</p-dropdown>
</div>
<div class="col-md-2 text-center">
<button (click)="configureMessageTemplate(message)"
[disabled]="showLoader" icon="ui-icon-settings"
pButton
type="button">
</button>
</div>
</div>
</div>
</p-panel>
<!-- End displaying messages -->
<hr/>
......@@ -599,10 +767,8 @@
</div>
<!-- Display Messages here -->
<div *ngFor="let message of stage.WorkFlowMessages" class="form-group row">
<div *ngIf="message.IsWithdrawalMessage" class="col-lg-12 col-md-12">
<h3>Withdrawal Process</h3>
</div>
<div *ngIf="stage.UseMessaging" class="col-lg-12 col-md-12">
<div *ngIf="stage.UseMessaging && !message.IsWithdrawalMessage"
class="col-lg-12 col-md-12">
<div class="col-md-2">
<label>After</label>
<p-inputMask (change)="generateDelayString(message)"
......@@ -625,8 +791,17 @@
<label for="Variance{{message.ObjectID}}">+/-</label>
<input [(ngModel)]="message.Variance"
[disabled]="showLoader"
[id]="'Variance'+message.ObjectID" class="form-control"
(change)="generateVarianceString(message)"
(blur)="toggleInput($event, 'Variance'+message.ObjectID, false)"
(focusin)="toggleInput($event, 'Variance'+message.ObjectID, true)"
class="form-control" id="Variance{{message.ObjectID}}"
*ngIf="!showLabel('Variance'+message.ObjectID) || !message.Variance"
name="Variance{{message.ObjectID}}" type="text">
<div
(click)="toggleInput($event, 'Variance'+message.ObjectID, true)"
*ngIf="showLabel('Variance'+message.ObjectID) && message.Variance">
<label>{{message.VarianceString}}</label>
</div>
</div>
<div class="col-md-2">
<label>Business Hours only</label>
......@@ -672,6 +847,89 @@
</div>
</div>
</div>
<div *ngFor="let message of stage.WorkFlowMessages" class="form-group row">
<div *ngIf="stage.UseMessaging && message.IsWithdrawalMessage"
class="col-lg-12 col-md-12">
<h3>Withdrawal Process</h3>
</div>
<div *ngIf="stage.UseMessaging && message.IsWithdrawalMessage"
class="col-lg-12 col-md-12 mb-10">
<div class="col-md-2">
<label>After</label>
<p-inputMask (change)="generateDelayString(message)"
(onBlur)="toggleInput($event, 'Delay'+message.ObjectID, false)"
(onFocus)="toggleInput($event, 'Delay'+message.ObjectID, true)"
*ngIf="!showLabel('Delay'+message.ObjectID) || !message.Delay"
[(ngModel)]="message.Delay"
[disabled]="showLoader"
[id]="'Delay'+message.ObjectID"
class="form-control"
mask="9?9:99:99"
name="Delay{{message.ObjectID}}">
</p-inputMask>
<div (click)="toggleInput($event, 'Delay'+message.ObjectID, true)"
*ngIf="showLabel('Delay'+message.ObjectID) && message.Delay">
<label>{{message.DelayString}}</label>
</div>
</div>
<div class="col-md-2">
<label for="Variance{{message.ObjectID}}">+/-</label>
<input [(ngModel)]="message.Variance"
[disabled]="showLoader"
(change)="generateVarianceString(message)"
(blur)="toggleInput($event, 'Variance'+message.ObjectID, false)"
(focusin)="toggleInput($event, 'Variance'+message.ObjectID, true)"
class="form-control" id="Variance{{message.ObjectID}}"
*ngIf="!showLabel('Variance'+message.ObjectID) || !message.Variance"
name="Variance{{message.ObjectID}}" type="text">
<div
(click)="toggleInput($event, 'Variance'+message.ObjectID, true)"
*ngIf="showLabel('Variance'+message.ObjectID) && message.Variance">
<label>{{message.VarianceString}}</label>
</div>
</div>
<div class="col-md-2">
<label title="Business Hours only" class="mb-0">Business Hours
only</label>
<p-checkbox [(ngModel)]="message.BusinessHoursOnly"
binary="true"
name="BusinessHoursOnly{{message.ObjectID}}">
</p-checkbox>
</div>
<div class="col-md-4">
<label>Send</label>
<p-dropdown (onChange)="showMessageTemplateDialog($event, message)"
[(ngModel)]="message.MessageTemplate"
[autoDisplayFirst]="false"
[options]="messageTemplates"
filter="true"
name="messageTemplate{{message.ObjectID}}"
optionLabel="TemplateName">
<ng-template let-message pTemplate="selectedItem">
<i class="{{getMessageClass(message.value)}}"></i>
<span
class="dropdown-text">{{message.label}}</span>
</ng-template>
<ng-template let-selectedMsg pTemplate="item">
<div class="ui-helper-clearfix"
style="position: relative;height: 25px;">
<i class="{{getMessageClass(selectedMsg.value)}}"></i>
<div
class="dropdown-text">{{selectedMsg.label}}</div>
</div>
</ng-template>
</p-dropdown>
</div>
<div class="col-md-2 text-center">
<button (click)="configureMessageTemplate(message)"
[disabled]="showLoader" icon="ui-icon-settings"
pButton
type="button">
</button>
</div>
</div>
</div>
</p-panel>
<!-- End displaying messages -->
<hr/>
......
......@@ -70,6 +70,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
ngOnInit(): void {
window.scrollTo(0, 0);
this.showLoader = true;
if (this.adminPortalLayoutService.userData) {
this.initComponent();
......@@ -149,6 +150,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
const stageObject = new WorkflowStageModel(`${stage.Description} Stage`, false, stage, index,
false, this.workflow.ObjectID);
this.utilsService.addMultiRefObject(stageObject, this.workflow, 'WorkFlowStages', this.createdObjs);
const withdrawalMessage = new WorkflowMessageModel(stageObject.ObjectID);
withdrawalMessage.IsWithdrawalMessage = true;
this.utilsService.addMultiRefObject(withdrawalMessage, stageObject, 'WorkFlowMessages', this.createdObjs);
});
this.reOrderStages();
}
......@@ -172,8 +176,8 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
filterStages(): void {
this.preStages = this.filteredStages(true, false);
this.genericStages = this.filteredStages(false, false)
.sort((a, b) => a.SortOrder > b.SortOrder ? -1 : a.SortOrder < b.SortOrder ? 1 : 0);
this.genericStages = this.filteredStages(false, false);
// .sort((a, b) => a.SortOrder < b.SortOrder ? -1 : a.SortOrder > b.SortOrder ? 1 : 0)
this.postStages = this.filteredStages(false, true);
}
......@@ -437,6 +441,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
const stage = new WorkflowStageModel(`${stageType.Description} Stage`, false, stageType, this.getStageOrder(),
false, this.workflow.ObjectID);
this.utilsService.addMultiRefObject(stage, this.workflow, 'WorkFlowStages', this.createdObjs);
const withdrawalMessage = new WorkflowMessageModel(stage.ObjectID);
withdrawalMessage.IsWithdrawalMessage = true;
this.utilsService.addMultiRefObject(withdrawalMessage, stage, 'WorkFlowMessages', this.createdObjs);
this.reOrderStages();
}
......@@ -447,20 +454,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
icon: 'fa fa-trash',
key: 'RemoveRow',
accept: () => {
if (this.isGeneric(stage)) {
const decrement = this.workflow.WorkFlowStages.filter(stg => this.isGeneric(stg))
.length - stage.SortOrder;
if (decrement > 0) {
this.workflow.WorkFlowStages.map(stg => {
if (this.isGeneric(stg) && stg.SortOrder > decrement) {
stg.SortOrder = stg.SortOrder - decrement;
}
});
}
this.reOrderStages();
}
this.utilsService.removeMultiRefObject(stage, this.workflow, 'WorkFlowStages', this.createdObjs,
this.updatedObjs, this.deletedObjs);
this.workflow.WorkFlowStages.forEach((stag, index) => stag.SortOrder = index + 1);
}
});
}
......@@ -588,9 +584,8 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
list.forEach((item, i) => {
item.SortOrder = i;
item.SortOrder = i + 1;
});
console.log(this.workflow.WorkFlowStages);
}
// tslint:disable-next-line:max-file-line-count
......
......@@ -246,7 +246,10 @@
}
.ui-dialog {
left: 100px !important;
&.ui-dialog-draggable {
left: 20px !important;
right: 20px !important;
overflow-y: scroll;
height: 80% !important;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment