Commit c69ab081 by GD-A-150752

edit-workflow-template

parent 94fda9f2
...@@ -4,7 +4,13 @@ import { Select2Module } from 'ng2-select2'; ...@@ -4,7 +4,13 @@ import { Select2Module } from 'ng2-select2';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { ModalModule } from 'ngx-bootstrap/modal'; import { ModalModule } from 'ngx-bootstrap/modal';
import { DeviceDetectorModule } from 'ngx-device-detector'; import { DeviceDetectorModule } from 'ngx-device-detector';
import { ConfirmationService, DragDropModule, InputMaskModule, OrderListModule } from 'primeng/primeng'; import {
ConfirmationService,
DragDropModule,
InputMaskModule,
MultiSelectModule,
OrderListModule
} from 'primeng/primeng';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
import { AppRoutingModule } from './app.routing'; import { AppRoutingModule } from './app.routing';
import { AppService } from './app.service'; import { AppService } from './app.service';
...@@ -33,7 +39,8 @@ import { OneITModule } from './oneit/oneit.module'; ...@@ -33,7 +39,8 @@ import { OneITModule } from './oneit/oneit.module';
BsDropdownModule.forRoot(), BsDropdownModule.forRoot(),
InputMaskModule, InputMaskModule,
DragDropModule, DragDropModule,
OrderListModule OrderListModule,
MultiSelectModule
], ],
declarations: [ declarations: [
AppComponent, AppComponent,
......
...@@ -130,7 +130,7 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -130,7 +130,7 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
showSaveIntoAllTemplates(): boolean { showSaveIntoAllTemplates(): boolean {
return !!this.messageTemplate && !!this.messageTemplate.ObjectID && return !!this.messageTemplate && !!this.messageTemplate.ObjectID &&
(!this.alreadyExists() && !this.messageTemplate.IsSystemGenerated && !!this.objectID); (!this.messageTemplate.IsSystemGenerated && !!this.objectID && this.editMode);
} }
showSaveCopyBtn(): boolean { showSaveCopyBtn(): boolean {
...@@ -146,6 +146,10 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -146,6 +146,10 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
editElement = this.messageContentEditor.getQuill().container; editElement = this.messageContentEditor.getQuill().container;
if (editElement) { if (editElement) {
const editor = editElement.getElementsByClassName('ql-editor');
if (editor[0]) {
editor[0].classList.add('form-control');
}
['keyup', 'click'].forEach(event => { ['keyup', 'click'].forEach(event => {
editElement.addEventListener(event, () => { editElement.addEventListener(event, () => {
this.contentCursorPoint = this.messageContentEditor.getQuill() this.contentCursorPoint = this.messageContentEditor.getQuill()
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<app-error-message></app-error-message> <app-error-message></app-error-message>
<form #form="ngForm"> <form #form="ngForm">
<div class="ui-g ui-fluid"> <div class="ui-g ui-fluid">
<div class="ui-g-10 listing-title pt-0 pb-0">{{editMode ? "Edit" : "Add"}} Workflow Template</div> <div class="page-title mb-0">{{editMode ? "Edit" : "Add"}} Workflow Template</div>
</div> </div>
<div class="ui-g form-group"> <div class="ui-g form-group">
<div class="ui-g-12 ui-md-12"> <div class="ui-g-12 ui-md-12">
...@@ -12,12 +12,12 @@ ...@@ -12,12 +12,12 @@
[objectID]="selectedTemplateID" [objectID]="selectedTemplateID"
(closeModal)="closeDialog($event)"></app-edit-message-template> (closeModal)="closeDialog($event)"></app-edit-message-template>
</p-dialog> </p-dialog>
<div class="ui-g-12 ui-g-offset-4 ui-md-4"> <div class="ui-g-12 ui-g-offset-4 ui-md-4 h-60">
<label for="TemplateNameId" (click)="toggleInput($event, 'TemplateName')" <label for="TemplateNameId" (click)="toggleInput($event, 'TemplateName')"
*ngIf="showLabel('TemplateName')">{{workflow.TemplateName}}</label> *ngIf="showLabel('TemplateName')">{{workflow.TemplateName}}</label>
<input id="TemplateNameId" *ngIf="showInput('TemplateName')" pInputText <input id="TemplateNameId" *ngIf="showInput('TemplateName')"
[(ngModel)]="workflow.TemplateName" [disabled]="showLoader" [(ngModel)]="workflow.TemplateName" [disabled]="showLoader"
(blur)="toggleInput($event, 'TemplateName')" (blur)="toggleInput($event, 'TemplateName')" class="form-control"
name="TemplateName" required/> name="TemplateName" required/>
</div> </div>
</div> </div>
...@@ -32,45 +32,44 @@ ...@@ -32,45 +32,44 @@
{{getStageHeader(stage)}} {{getStageHeader(stage)}}
</span> </span>
</p-header> </p-header>
<div class="ui-g form-group"> <div class="form-group">
<div class="ui-g-12 ui-md-12"> <div class="work-belonging">
<h4>Landing Page</h4> <span class="calcField">Landing Page</span>
<hr> </div>
<div class="form-group row"> <div class="form-group row">
<div class="col-md-8"> <div class="col-md-8">
<label for="LandingButtonText">Button Text</label> <label for="LandingButtonText">Button Text</label>
<input name="LandingButtonText" type="text" class="form-control" <input name="LandingButtonText" type="text" class="form-control"
id="LandingButtonText" id="LandingButtonText"
[(ngModel)]="workflow.LandingButtonText" [disabled]="showLoader" [(ngModel)]="workflow.LandingButtonText" [disabled]="showLoader"
fieldLabel="Landing Button Text" fieldLabel="Landing Button Text"
tabindex="1" required> tabindex="1" required>
</div>
</div> </div>
<h4>Verification Page</h4> </div>
<hr/> <div class="work-belonging">
<div class="form-group row"> <span class="calcField">Verification Page</span>
<div class="col-md-12"> </div>
<label for="VerificationHeaderText">Header Text</label> <div class="form-group row">
<input name="VerificationHeaderText" type="text" class="form-control" <div class="col-md-12">
id="VerificationHeaderText" [disabled]="showLoader" <label for="VerificationHeaderText">Header Text</label>
[(ngModel)]="workflow.VerificationHeaderText" <input name="VerificationHeaderText" type="text" class="form-control"
fieldLabel="Verification Header Text" id="VerificationHeaderText" [disabled]="showLoader"
tabindex="2" required> [(ngModel)]="workflow.VerificationHeaderText"
</div> fieldLabel="Verification Header Text"
tabindex="2" required>
</div> </div>
<h4>Application</h4> </div>
<hr/> <div class="work-belonging">
<div class="ui-g form-group"> <span class="calcField">Application</span>
<div class="ui-g-12 ui-md-6"> </div>
<div class="ui-g-12 ui-md-4"> <div class="criteria_section">
<label> Capture CV </label> <fieldset>
</div> <legend>
<div class="ui-g-12 ui-md-2"> <span class="calcField">Capture CV</span>
<p-inputSwitch [(ngModel)]="workflow.CaptureCV" name="CaptureCV" <p-inputSwitch [(ngModel)]="workflow.CaptureCV" name="CaptureCV"
[disabled]="showLoader"> [disabled]="showLoader">
</p-inputSwitch> </p-inputSwitch>
</div> </legend>
</div>
<div *ngIf="workflow.CaptureCV" class="ui-g-12 ui-md-6"> <div *ngIf="workflow.CaptureCV" class="ui-g-12 ui-md-6">
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<label> Mandatory </label> <label> Mandatory </label>
...@@ -82,18 +81,16 @@ ...@@ -82,18 +81,16 @@
</p-inputSwitch> </p-inputSwitch>
</div> </div>
</div> </div>
</div> </fieldset>
<div class="ui-g form-group"> </div>
<div class="ui-g-12 ui-md-6"> <div class="criteria_section">
<div class="ui-g-12 ui-md-4"> <fieldset>
<label>Capture Cover Letter</label> <legend>
</div> <span class="calcField">Capture Cover Letter</span>
<div class="ui-g-12 ui-md-2"> <p-inputSwitch [(ngModel)]="workflow.CaptureCL" name="CaptureCL"
<p-inputSwitch [(ngModel)]="workflow.CaptureCL" name="CaptureCL" [disabled]="showLoader">
[disabled]="showLoader"> </p-inputSwitch>
</p-inputSwitch> </legend>
</div>
</div>
<div *ngIf="workflow.CaptureCL" class="ui-g-12 ui-md-6"> <div *ngIf="workflow.CaptureCL" class="ui-g-12 ui-md-6">
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<label> Mandatory </label> <label> Mandatory </label>
...@@ -105,59 +102,62 @@ ...@@ -105,59 +102,62 @@
</p-inputSwitch> </p-inputSwitch>
</div> </div>
</div> </div>
</fieldset>
</div>
<div class="form-group row">
<div class="col-md-12">
<label for="VerificationHeaderText">Button Text</label>
<input name="ApplicationButtonText" type="text" class="form-control"
[(ngModel)]="workflow.ApplicationButtonText"
[disabled]="showLoader"
fieldLabel="Application Button Text"
tabindex="7" required>
</div> </div>
<div class="form-group row"> </div>
<div class="col-md-12"> <div class="form-group row">
<label>Button Text</label> <div class="col-md-2">
<input name="ApplicationButtonText" type="text" class="form-control" <label>Action</label>
[(ngModel)]="workflow.ApplicationButtonText"
[disabled]="showLoader"
fieldLabel="Application Button Text"
tabindex="7" required>
</div>
</div> </div>
<div class="form-group row"> <div class="col-md-10">
<div class="col-md-2"> <p-selectButton [options]="responseActions"
<label>Action</label> [(ngModel)]="workflow.ApplicationResponseAction"
</div> optionLabel="Description"
<div class="col-md-10"> name="ApplicationResponseAction">
<p-selectButton [options]="responseActions" </p-selectButton>
[(ngModel)]="workflow.ApplicationResponseAction"
optionLabel="Description"
name="ApplicationResponseAction">
</p-selectButton>
</div>
</div> </div>
<div class="form-group row" *ngIf="emailResponseSelected()"> </div>
<div class="col-md-6"> <div class="form-group row" *ngIf="emailResponseSelected()">
<label for="ThankYouHeaderText">Header Text for Thank You page</label> <div class="col-md-6">
<input name="ThankYouHeaderText" [(ngModel)]="workflow.ThankYouHeaderText" <label for="ThankYouHeaderText">Header Text for Thank You page</label>
id="ThankYouHeaderText" [disabled]="showLoader" <input name="ThankYouHeaderText" [(ngModel)]="workflow.ThankYouHeaderText"
type="text" class="form-control" id="ThankYouHeaderText" [disabled]="showLoader"
fieldLabel="Header Text for Thank You page" type="text" class="form-control"
tabindex="8" required> fieldLabel="Header Text for Thank You page"
</div> tabindex="8" required>
<div class="col-md-6">
<label for="ThankYouSecondaryText">Secondary Text</label>
<input name="ThankYouSecondaryText" id="ThankYouSecondaryText"
[(ngModel)]="workflow.ThankYouSecondaryText" [disabled]="showLoader"
fieldLabel="Secondary Text" type="text" class="form-control"
tabindex="9">
</div>
</div> </div>
<h4>Job Outline Page</h4> <div class="col-md-6">
<hr/> <label for="ThankYouSecondaryText">Secondary Text</label>
<div class="form-group row"> <input name="ThankYouSecondaryText" id="ThankYouSecondaryText"
<div class="col-md-12"> [(ngModel)]="workflow.ThankYouSecondaryText" [disabled]="showLoader"
<label for="JobOutlineButtonText">Button Text</label> fieldLabel="Secondary Text" type="text" class="form-control"
<input name="JobOutlineButtonText" id="JobOutlineButtonText" tabindex="9">
[(ngModel)]="workflow.JobOutlineButtonText" </div>
type="text" class="form-control" [disabled]="showLoader" </div>
fieldLabel="Job Outline Button Text" <div class="work-belonging">
tabindex="10" required> <span class="calcField">Job Outline Page</span>
</div> </div>
<div class="form-group row">
<div class="col-md-12">
<label for="JobOutlineButtonText">Button Text</label>
<input name="JobOutlineButtonText" id="JobOutlineButtonText"
[(ngModel)]="workflow.JobOutlineButtonText"
type="text" class="form-control" [disabled]="showLoader"
fieldLabel="Job Outline Button Text"
tabindex="10" required>
</div> </div>
</div> </div>
</div>
<div class="ui-g form-group">
<!-- Start steps section --> <!-- Start steps section -->
<div class="ui-g-12 ui-md-12"> <div class="ui-g-12 ui-md-12">
<div class="form-group row"> <div class="form-group row">
...@@ -218,46 +218,60 @@ ...@@ -218,46 +218,60 @@
<div class="col-md-offset-9 col-md-3"> <div class="col-md-offset-9 col-md-3">
<button class="btn btn-primary add-more-btn" tabindex="11" <button class="btn btn-primary add-more-btn" tabindex="11"
[disabled]="showLoader" [disabled]="showLoader"
(click)="addMessage(stage)">Add Message (click)="addMessage(stage)" *ngIf="stage.UseMessaging">Add
Message
</button> </button>
</div> </div>
</div> </div>
<!-- Display Messages here --> <!-- Display Pre Stage Messages here -->
<div class="form-group row" *ngFor="let message of stage.WorkFlowMessages"> <div class="form-group row" *ngFor="let message of stage.WorkFlowMessages">
<div class="col-lg-12 col-md-12" *ngIf="message.IsWithdrawalMessage"> <div class="col-lg-12 col-md-12" *ngIf="message.IsWithdrawalMessage">
<h3>Withdrawal Process</h3> <h3>Withdrawal Process</h3>
</div> </div>
<div class="col-lg-12 col-md-12"> <div class="col-lg-12 col-md-12" *ngIf="stage.UseMessaging">
<div class="col-md-2"> <div class="col-md-4">
<p-multiSelect [options]="applicantSources"
name="applicantSources{{message.ObjectID}}"
[(ngModel)]="message.ApplicantSources"
[panelStyle]="{minWidth:'12em'}"
[filter]="false"
optionLabel="Description"
[disabled]="showLoader">
</p-multiSelect>
</div>
<div class="col-md-4">
<label>After</label> <label>After</label>
<p-inputMask name="Delay{{message.ObjectID}}" <p-inputMask name="Delay{{message.ObjectID}}"
class="form-control" [disabled]="showLoader" class="form-control" [disabled]="showLoader"
id="Delay{{message.ObjectID}}" id="Delay{{message.ObjectID}}"
[(ngModel)]="message.Delay" [(ngModel)]="message.Delay"
characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]" (onFocus)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)"
*ngIf="showDelayInput('Delay'+message.ObjectID, message)" (onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID, message)"
(onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)" *ngIf="!showDelayLabel('Delay'+message.ObjectID, message)"
mask="99:99:99"> mask="9?9:99:99">
</p-inputMask> </p-inputMask>
<label <div *ngIf="showDelayLabel('Delay'+message.ObjectID, message)"
(click)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)" (click)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)">
*ngIf="showDelayLabel('Delay'+message.ObjectID, message)">{{message.Delay}}</label> <label>{{message.DelayString}}</label>
</div>
</div> </div>
<div class="col-md-2"> <div class="col-md-4">
<label for="Variance{{message.ObjectID}}">+/-</label> <label for="Variance{{message.ObjectID}}">+/-</label>
<input name="Variance{{message.ObjectID}}" <input name="Variance{{message.ObjectID}}"
id="Variance{{message.ObjectID}}" id="Variance{{message.ObjectID}}"
[(ngModel)]="message.Variance" [disabled]="showLoader" [(ngModel)]="message.Variance" [disabled]="showLoader"
type="text" class="form-control"> type="text" class="form-control">
</div> </div>
<div class="col-md-2"> </div>
<div class="col-lg-12 col-md-12">
<div class="col-md-4">
<label>Business Hours only</label> <label>Business Hours only</label>
<p-checkbox name="BusinessHoursOnly{{message.ObjectID}}" <p-checkbox name="BusinessHoursOnly{{message.ObjectID}}"
[(ngModel)]="message.BusinessHoursOnly" [(ngModel)]="message.BusinessHoursOnly"
binary="true"> binary="true">
</p-checkbox> </p-checkbox>
</div> </div>
<div class="col-md-4"> <div class="col-md-6">
<label>Send</label> <label>Send</label>
<p-dropdown [options]="messageTemplates" filter="true" <p-dropdown [options]="messageTemplates" filter="true"
optionLabel="TemplateName" optionLabel="TemplateName"
...@@ -383,7 +397,8 @@ ...@@ -383,7 +397,8 @@
<div class="col-md-offset-9 col-md-3"> <div class="col-md-offset-9 col-md-3">
<button class="btn btn-primary add-more-btn" tabindex="11" <button class="btn btn-primary add-more-btn" tabindex="11"
[disabled]="showLoader" [disabled]="showLoader"
(click)="addMessage(stage)">Add Message (click)="addMessage(stage)" *ngIf="stage.UseMessaging">Add
Message
</button> </button>
</div> </div>
</div> </div>
...@@ -394,37 +409,40 @@ ...@@ -394,37 +409,40 @@
*ngIf="message.IsWithdrawalMessage"> *ngIf="message.IsWithdrawalMessage">
<h3>Withdrawal Process</h3> <h3>Withdrawal Process</h3>
</div> </div>
<div class="col-lg-12 col-md-12"> <div class="col-lg-12 col-md-12" *ngIf="stage.UseMessaging">
<div class="col-md-2"> <div class="col-md-4">
<label>After</label> <label>After</label>
<p-inputMask name="Delay{{message.ObjectID}}" <p-inputMask name="Delay{{message.ObjectID}}"
class="form-control" class="form-control" [disabled]="showLoader"
id="Delay{{message.ObjectID}}" id="Delay{{message.ObjectID}}"
[(ngModel)]="message.Delay" [disabled]="showLoader" [(ngModel)]="message.Delay"
characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]" (onFocus)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)"
*ngIf="showDelayInput('Delay'+message.ObjectID, message)" (onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID, message)"
(onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)" *ngIf="!showDelayLabel('Delay'+message.ObjectID, message)"
mask="99:99:99"> mask="9?9:99:99">
</p-inputMask> </p-inputMask>
<label <div *ngIf="showDelayLabel('Delay'+message.ObjectID, message)"
(click)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)" (click)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)">
*ngIf="showDelayLabel('Delay'+message.ObjectID, message)">{{message.Delay}}</label> <label>{{message.DelayString}}</label>
</div>
</div> </div>
<div class="col-md-2"> <div class="col-md-4">
<label for="Variance{{message.ObjectID}}">+/-</label> <label for="Variance{{message.ObjectID}}">+/-</label>
<input name="Variance{{message.ObjectID}}" <input name="Variance{{message.ObjectID}}"
id="Variance{{message.ObjectID}}" id="Variance{{message.ObjectID}}"
[(ngModel)]="message.Variance" [disabled]="showLoader" [(ngModel)]="message.Variance" [disabled]="showLoader"
type="text" class="form-control"> type="text" class="form-control">
</div> </div>
<div class="col-md-2"> <div class="col-md-4">
<label>Business Hours only</label> <label>Business Hours only</label>
<p-checkbox name="BusinessHoursOnly{{message.ObjectID}}" <p-checkbox name="BusinessHoursOnly{{message.ObjectID}}"
[(ngModel)]="message.BusinessHoursOnly" [(ngModel)]="message.BusinessHoursOnly"
binary="true"> binary="true">
</p-checkbox> </p-checkbox>
</div> </div>
<div class="col-md-4"> </div>
<div class="col-lg-12 col-md-12" *ngIf="stage.UseMessaging">
<div class="col-md-8">
<label>Send</label> <label>Send</label>
<p-dropdown [options]="messageTemplates" filter="true" <p-dropdown [options]="messageTemplates" filter="true"
optionLabel="TemplateName" optionLabel="TemplateName"
...@@ -447,7 +465,7 @@ ...@@ -447,7 +465,7 @@
</ng-template> </ng-template>
</p-dropdown> </p-dropdown>
</div> </div>
<div class="col-md-2 text-center"> <div class="col-md-4 text-center">
<button type="button" pButton label=" " [disabled]="showLoader" <button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-settings" icon="ui-icon-settings"
(click)="configureMessageTemplate(message)"></button> (click)="configureMessageTemplate(message)"></button>
...@@ -522,36 +540,39 @@ ...@@ -522,36 +540,39 @@
<h3>Withdrawal Process</h3> <h3>Withdrawal Process</h3>
</div> </div>
<div class="col-lg-12 col-md-12" *ngIf="stage.UseMessaging"> <div class="col-lg-12 col-md-12" *ngIf="stage.UseMessaging">
<div class="col-md-2"> <div class="col-md-4">
<label>After</label> <label>After</label>
<p-inputMask name="Delay{{message.ObjectID}}" <p-inputMask name="Delay{{message.ObjectID}}"
class="form-control" class="form-control" [disabled]="showLoader"
id="Delay{{message.ObjectID}}" [disabled]="showLoader" id="Delay{{message.ObjectID}}"
[(ngModel)]="message.Delay" [(ngModel)]="message.Delay"
characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]" (onFocus)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)"
*ngIf="showDelayInput('Delay'+message.ObjectID, message)" (onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID, message)"
(onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)" *ngIf="!showDelayLabel('Delay'+message.ObjectID, message)"
mask="99:99:99"> mask="9?9:99:99">
</p-inputMask> </p-inputMask>
<label <div *ngIf="showDelayLabel('Delay'+message.ObjectID, message)"
(click)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)" (click)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)">
*ngIf="showDelayLabel('Delay'+message.ObjectID, message)">{{message.Delay}}</label> <label>{{message.DelayString}}</label>
</div>
</div> </div>
<div class="col-md-2"> <div class="col-md-4">
<label for="Variance{{message.ObjectID}}">+/-</label> <label for="Variance{{message.ObjectID}}">+/-</label>
<input name="Variance{{message.ObjectID}}" <input name="Variance{{message.ObjectID}}"
id="Variance{{message.ObjectID}}" id="Variance{{message.ObjectID}}"
[(ngModel)]="message.Variance" [disabled]="showLoader" [(ngModel)]="message.Variance" [disabled]="showLoader"
type="text" class="form-control"> type="text" class="form-control">
</div> </div>
<div class="col-md-2"> <div class="col-md-4">
<label>Business Hours only</label> <label>Business Hours only</label>
<p-checkbox name="BusinessHoursOnly{{message.ObjectID}}" <p-checkbox name="BusinessHoursOnly{{message.ObjectID}}"
[(ngModel)]="message.BusinessHoursOnly" [(ngModel)]="message.BusinessHoursOnly"
binary="true"> binary="true">
</p-checkbox> </p-checkbox>
</div> </div>
<div class="col-md-4"> </div>
<div class="col-lg-12 col-md-12" *ngIf="stage.UseMessaging">
<div class="col-md-8">
<label>Send</label> <label>Send</label>
<p-dropdown [options]="messageTemplates" filter="true" <p-dropdown [options]="messageTemplates" filter="true"
optionLabel="TemplateName" optionLabel="TemplateName"
...@@ -571,7 +592,7 @@ ...@@ -571,7 +592,7 @@
</ng-template> </ng-template>
</p-dropdown> </p-dropdown>
</div> </div>
<div class="col-md-2 text-center"> <div class="col-md-4 text-center">
<button type="button" pButton label=" " [disabled]="showLoader" <button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-settings" icon="ui-icon-settings"
(click)="configureMessageTemplate(message)"></button> (click)="configureMessageTemplate(message)"></button>
...@@ -582,7 +603,6 @@ ...@@ -582,7 +603,6 @@
</div> </div>
</div> </div>
</div> </div>
</p-panel> </p-panel>
<!-- End displaying messages --> <!-- End displaying messages -->
<hr/> <hr/>
......
...@@ -7,6 +7,7 @@ import { combineLatest } from 'rxjs/observable/combineLatest'; ...@@ -7,6 +7,7 @@ import { combineLatest } from 'rxjs/observable/combineLatest';
import { Subscription } from 'rxjs/Subscription'; import { Subscription } from 'rxjs/Subscription';
import { AppService } from '../../app.service'; import { AppService } from '../../app.service';
import { ASSOCS, SERVICES } from '../../constants'; import { ASSOCS, SERVICES } from '../../constants';
import { ApplicantSourcesEnum } from '../../models/applicantSources.enum';
import { MessageTemplateModel } from '../../models/messageTemplate.model'; import { MessageTemplateModel } from '../../models/messageTemplate.model';
import { ResponseActionEnum } from '../../models/responseAction.enum'; import { ResponseActionEnum } from '../../models/responseAction.enum';
import { StageTypeEnum } from '../../models/stageType.enum'; import { StageTypeEnum } from '../../models/stageType.enum';
...@@ -43,6 +44,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -43,6 +44,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
stepTypeOptions: Array<StepTypeEnum>; stepTypeOptions: Array<StepTypeEnum>;
stepTypes: Array<StepTypeEnum>; stepTypes: Array<StepTypeEnum>;
responseActions: Array<ResponseActionEnum>; responseActions: Array<ResponseActionEnum>;
applicantSources: Array<ApplicantSourcesEnum>;
messageTemplates: Array<MessageTemplateModel> = []; messageTemplates: Array<MessageTemplateModel> = [];
editField: any = {}; editField: any = {};
showLoader = false; showLoader = false;
...@@ -93,8 +95,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -93,8 +95,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this.subscriptions.push( this.subscriptions.push(
combineLatest( combineLatest(
this.appService.getTypes('StageTypes'), this.appService.getTypes('StageTypes'),
this.appService.getTypes('StepTypes', true, 'Add Step'), this.appService.getTypes('StepTypes', true, 'Please Select'),
this.appService.getTypes('ResponseActions') this.appService.getTypes('ResponseActions'),
this.appService.getTypes('ApplicantSources')
) )
.subscribe(response => { .subscribe(response => {
...@@ -110,6 +113,8 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -110,6 +113,8 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
} }
this.responseActions = response[2]; this.responseActions = response[2];
this.applicantSources = response[3];
if (params.id && params.id !== '0') { if (params.id && params.id !== '0') {
this.editMode = true; this.editMode = true;
this.getWorkflowTemplateByID(params.id); this.getWorkflowTemplateByID(params.id);
...@@ -119,9 +124,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -119,9 +124,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this.setDefaults(); this.setDefaults();
this.addDefaultStages(); this.addDefaultStages();
this.stepTypes = [...this.stepTypeOptions]; this.stepTypes = [...this.stepTypeOptions];
this.showLogs();
this.showLoader = false; this.showLoader = false;
} }
}) })
); );
} }
...@@ -228,7 +233,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -228,7 +233,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
if (!message.Delay || message.Delay === '') { if (!message.Delay || message.Delay === '') {
return false; return false;
} else { } else {
return this.editField ? (this.editField[id] ? this.editField[id] : false) : false; return this.editField ? !this.editField[id] : false;
} }
} }
...@@ -247,6 +252,16 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -247,6 +252,16 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this.workflow.ApplicationResponseAction.Value === 'EMAIL_RESPONSE'; this.workflow.ApplicationResponseAction.Value === 'EMAIL_RESPONSE';
} }
sortWorkFlowMessage(): void {
if (this.workflow && this.workflow.WorkFlowStages) {
this.workflow.WorkFlowStages.forEach(stage => {
if (stage && stage.WorkFlowMessages) {
stage.WorkFlowMessages.sort((a, b) => a.DelayMinutes - b.DelayMinutes);
}
});
}
}
showInput(id: string): boolean { showInput(id: string): boolean {
return this.editField && !!this.editField[id]; return this.editField && !!this.editField[id];
} }
...@@ -309,9 +324,10 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -309,9 +324,10 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
if (!message.Delay || message.Delay === '') { if (!message.Delay || message.Delay === '') {
return; return;
} }
if (!this.form.controls[fieldName].invalid) { if (!this.form.controls[fieldName].invalid) {
this.editField[fieldName] = false; this.editField[fieldName] = false;
this.generateDelayString(message);
this.sortWorkFlowMessage();
} else { } else {
this.utilsService.showAllErrorMessages(); this.utilsService.showAllErrorMessages();
} }
...@@ -331,6 +347,26 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -331,6 +347,26 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
} }
} }
generateDelayString(message: WorkflowMessageModel): void {
const delay = message.Delay.replace(/_/g, '')
.split(':');
delay[0] = delay[0] || '';
delay[1] = delay[1] || '';
delay[2] = delay[2] || '';
if (delay[1] === '' && delay[2] === '') {
message.DelayString = `${delay[0]}m`;
message.DelayMinutes = parseInt(delay[0], 10);
} else if (delay[2] === '') {
message.DelayString = `${delay[0]}h: ${delay[1]}m`;
message.DelayMinutes = parseInt(delay[0], 10) * 60 + parseInt(delay[1], 10);
} else {
message.DelayString = `${delay[0]}d: ${delay[1]}h: ${delay[2]}m`;
message.DelayMinutes = parseInt(delay[0], 10) * 24 * 60 + parseInt(delay[1], 10) * 60 + parseInt(delay[1], 10);
}
}
getMessageTemplates(callback = null): void { getMessageTemplates(callback = null): void {
const sharedMsgParams = { const sharedMsgParams = {
OnlyGlobalTemplate: true, OnlyGlobalTemplate: true,
...@@ -478,6 +514,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -478,6 +514,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
addMessage(stage: WorkflowStageModel): void { addMessage(stage: WorkflowStageModel): void {
const message = new WorkflowMessageModel(stage.ObjectID); const message = new WorkflowMessageModel(stage.ObjectID);
message.ApplicantSources = this.utilsService.cloneObject(this.applicantSources);
this.utilsService.addMultiRefObject(message, stage, 'WorkFlowMessages', this.createdObjs); this.utilsService.addMultiRefObject(message, stage, 'WorkFlowMessages', this.createdObjs);
} }
...@@ -567,7 +604,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -567,7 +604,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
} }
}); });
this.reOrderStages(this.filterStages(true, true, true)); this.reOrderStages(this.filterStages(true, true, true));
this.showLogs();
this.showLoader = false; this.showLoader = false;
}, },
error => { error => {
...@@ -587,12 +623,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -587,12 +623,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this.utilsService.clearErrorMessages(); this.utilsService.clearErrorMessages();
const service = `svc/${saveCopy ? SERVICES.SAVE_MESSAGE_AS_COPY : SERVICES.SAVE}`; const service = `svc/${saveCopy ? SERVICES.SAVE_MESSAGE_AS_COPY : SERVICES.SAVE}`;
if (testing) {
this.showLogs();
return;
}
if (this.form.invalid) { if (this.form.invalid) {
this.utilsService.showAllErrorMessages(); this.utilsService.showAllErrorMessages();
} else { } else {
...@@ -612,13 +642,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -612,13 +642,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
} }
} }
showLogs(): void {
console.log(this.workflow);
console.log(this.createdObjs);
console.log(this.updatedObjs);
console.log(this.deletedObjs);
}
alreadyExists(): boolean { alreadyExists(): boolean {
return Object.keys(this.createdObjs).length > 0 || Object.keys(this.updatedObjs).length > 0; return Object.keys(this.createdObjs).length > 0 || Object.keys(this.updatedObjs).length > 0;
} }
......
export class ApplicantSourcesEnum {
Name: string;
Value: string;
Description: string;
Disabled: boolean;
}
import { CLASSES } from '../constants'; import { CLASSES } from '../constants';
import { MessageTemplateModel } from './messageTemplate.model'; import { MessageTemplateModel } from './messageTemplate.model';
import { ApplicantSourcesEnum } from './applicantSources.enum';
export class WorkflowMessageModel { export class WorkflowMessageModel {
ObjectID: string; ObjectID: string;
ObjectClass = CLASSES.WORKFLOW_MESSAGE; ObjectClass = CLASSES.WORKFLOW_MESSAGE;
Delay: string; Delay: string;
DelayString: string;
DelayMinutes: number;
Variance: string; Variance: string;
BusinessHoursOnly: boolean; BusinessHoursOnly: boolean;
IsWithdrawalMessage: boolean; IsWithdrawalMessage: boolean;
ApplicantSources: any; ApplicantSources: Array<ApplicantSourcesEnum>;
MessageTemplate: MessageTemplateModel | string; MessageTemplate: MessageTemplateModel | string;
WorkFlowStage: string; WorkFlowStage: string;
......
...@@ -49,6 +49,10 @@ ...@@ -49,6 +49,10 @@
padding-bottom: 0 !important; padding-bottom: 0 !important;
} }
.mb-0 {
margin-bottom: 0 !important;
}
.mt-80 { .mt-80 {
margin-top: 80px; margin-top: 80px;
} }
...@@ -61,6 +65,10 @@ ...@@ -61,6 +65,10 @@
border: 0 !important; border: 0 !important;
} }
.h-60 {
height: 60px;
}
.bg-grey { .bg-grey {
background-color: #e9ecef; background-color: #e9ecef;
} }
...@@ -98,3 +106,97 @@ ...@@ -98,3 +106,97 @@
} }
/* End listing of message and workflow template styling */ /* End listing of message and workflow template styling */
/* Panel Styling */
.ui-panel {
margin-right: auto;
margin-left: auto;
.ui-panel-titlebar {
height: 90px;
border-radius: 5px 5px 0 0 !important;
padding: 2em 1em !important;
background-color: #4E5258;
align-items: center;
border-bottom: 0 !important;
width: 100%;
.ui-panel-title {
color: #FFFFFF;
font-size: 20px;
padding-left: 40px;
}
}
.ui-panel-content {
background-color: #F5F7F8;
padding: 65px 10.5% !important;
}
}
/* End panel styling */
/* Overriding switch input styles */
.ui-inputswitch-slider:before {
height: 17px !important;
width: 17px !important;
left: 3px !important;
background: white;
}
.ui-inputswitch {
height: 22px !important;
width: 40px !important !important;
border-color: #667281 !important;
background-color: #667281 !important;
border-radius: 34px !important;
&.ui-inputswitch-checked {
background-color: #67b413 !important;
border-color: #67b413 !important;
.ui-inputswitch-slider:before {
transform: translateX(0.8em);
}
}
}
/* End styling switchInput */
/* styling selectButton */
.ui-selectbutton {
border: solid 1px #dbdbdf;
border-radius: 50px !important;
width: 100%;
display: flex;
flex: 1 1 auto;
.ui-button {
width: 100%;
border-left: solid 1px #dbdbdf;
background: #ffffff !important;
&:first-child {
border-top-left-radius: 50px;
border-bottom-left-radius: 50px;
}
&:last-child {
border-top-right-radius: 50px;
border-bottom-right-radius: 50px;
}
&.ui-state-active {
span {
color: #ffffff;
}
}
span {
color: #d14b5d;
font-size: 12px;
margin-top: 4px;
}
}
}
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