Commit 94fda9f2 by GD-A-150752

edit-workflow-template 90%

parent 7d463ed7
...@@ -14,7 +14,6 @@ import { AdminPortalLayoutService } from './components/admin-portal/admin-portal ...@@ -14,7 +14,6 @@ import { AdminPortalLayoutService } from './components/admin-portal/admin-portal
import { ApplicantPortalLayoutComponent } from './components/applicant-portal/applicant-portal-layout/applicant-portal-layout.component'; import { ApplicantPortalLayoutComponent } from './components/applicant-portal/applicant-portal-layout/applicant-portal-layout.component';
import { ApplicantPortalLayoutService } from './components/applicant-portal/applicant-portal-layout/applicant-portal-layout.service'; import { ApplicantPortalLayoutService } from './components/applicant-portal/applicant-portal-layout/applicant-portal-layout.service';
import { EditMessageTemplateComponent } from './components/edit-message-template/edit-message-template.component'; import { EditMessageTemplateComponent } from './components/edit-message-template/edit-message-template.component';
import { EditMessageTemplateService } from './components/edit-message-template/edit-message-template.service';
import { EditWorkflowTemplateComponent } from './components/edit-workflow-template/edit-workflow-template.component'; import { EditWorkflowTemplateComponent } from './components/edit-workflow-template/edit-workflow-template.component';
import { EditWorkflowTemplateService } from './components/edit-workflow-template/edit-workflow-template.service'; import { EditWorkflowTemplateService } from './components/edit-workflow-template/edit-workflow-template.service';
import { ErrorMessageComponent } from './components/error-message/error-message.component'; import { ErrorMessageComponent } from './components/error-message/error-message.component';
...@@ -55,7 +54,6 @@ import { OneITModule } from './oneit/oneit.module'; ...@@ -55,7 +54,6 @@ import { OneITModule } from './oneit/oneit.module';
AdminPortalLayoutService, AdminPortalLayoutService,
ApplicantPortalLayoutService, ApplicantPortalLayoutService,
AppService, AppService,
EditMessageTemplateService,
EditWorkflowTemplateService EditWorkflowTemplateService
], ],
bootstrap: [AppComponent] bootstrap: [AppComponent]
......
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { MessageTemplateModel } from "./models/messageTemplate.model";
import { PlaceholderOptionsEnum } from './models/placeholderOptions.enum'; import { PlaceholderOptionsEnum } from './models/placeholderOptions.enum';
import { TemplateTypeEnum } from './models/templateType.enum'; import { TemplateTypeEnum } from './models/templateType.enum';
import { EnumService } from './oneit/services/enum.service'; import { EnumService } from './oneit/services/enum.service';
...@@ -39,4 +40,17 @@ export class AppService { ...@@ -39,4 +40,17 @@ export class AppService {
this.utilsService.convertResponseToObjects(data, assocs) this.utilsService.convertResponseToObjects(data, assocs)
); );
} }
getMessageTemplateByID(id, assocs): Observable<MessageTemplateModel> {
return this.searchService.getObjectById('MessageTemplates', id, assocs)
.map(
data => {
const objs = this.utilsService.convertResponseToObjects(data, assocs);
if (objs && objs.length > 0) {
return objs[0];
}
}
);
}
} }
...@@ -6,54 +6,43 @@ ...@@ -6,54 +6,43 @@
</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">
<div class="ui-g form-group"> <div class="form-group row">
<div class="ui-g-12 ui-md-4 s-a-center"> <div class="col-md-6">
<label>Message Template</label> <label for="MessageTemplate{{messageTemplate.ObjectID}}">Message Template</label>
</div>
<div class="ui-g-12 ui-md-4 ui-fluid">
<input [(ngModel)]="messageTemplate.TemplateName" <input [(ngModel)]="messageTemplate.TemplateName"
name="MessageTemplate{{messageTemplate.ObjectID}}" name="MessageTemplate{{messageTemplate.ObjectID}}"
fieldLabel="Message Template" type="text" [disabled]="showLoader" pInputText fieldLabel="Message Template" type="text" [disabled]="showLoader"
class="form-control ui-inputtext" id="MessageTemplate{{messageTemplate.ObjectID}}"> class="form-control" id="MessageTemplate{{messageTemplate.ObjectID}}">
</div>
</div>
<div class="ui-g form-group">
<div class="ui-g-12 ui-md-4">
<label>Message Template Type</label>
</div> </div>
<div class="ui-g-12 ui-md-4 ui-fluid" <div class="col-md-6"
*ngIf="this.messageTemplateTypes.length && this.messageTemplate && this.messageTemplate.TemplateType"> *ngIf="this.messageTemplateTypes.length && this.messageTemplate && this.messageTemplate.TemplateType">
<label for="select">Message Template Type</label>
<app-select-2 [data]="messageTemplateTypes" [value]="templateTypeId" <app-select-2 [data]="messageTemplateTypes" [value]="templateTypeId"
fieldLabel="Description" fieldLabel="Description" id="select"
(valChange)="storeMessageContent($event)"> (valChange)="storeMessageContent($event)">
</app-select-2> </app-select-2>
</div> </div>
</div> </div>
<div class="ui-g form-group" *ngIf="emailTemplateType()"> <div class="form-group row">
<div class="ui-g-12 ui-md-4 s-a-center"> <div class="col-md-6">
<label>Subject</label> <label for="subjectInputId">Subject</label>
</div>
<div class="ui-g-12 ui-md-4 ui-fluid">
<input id="subjectInputId" [(ngModel)]="messageTemplate.Subject" <input id="subjectInputId" [(ngModel)]="messageTemplate.Subject"
name="Subject{{messageTemplate.ObjectID}}" name="Subject{{messageTemplate.ObjectID}}"
fieldLabel="Subject" placeholder="Subject" type="text" pInputText fieldLabel="Subject" placeholder="Subject" type="text"
class="form-control ui-inputtext" class="form-control"
[disabled]="showLoader"> [disabled]="showLoader">
</div> </div>
<div class="ui-g-12 ui-md-4" *ngIf="subjectPlaceholderOptions.length"> <div class="col-md-6" *ngIf="subjectPlaceholderOptions.length">
<label>Placeholder for Subject</label>
<app-select-2 [data]="subjectPlaceholderOptions" [value]="0" <app-select-2 [data]="subjectPlaceholderOptions" [value]="0"
fieldLabel="Description" fieldLabel="Description"
(valChange)="addPlaceholderInSubject($event)"> (valChange)="addPlaceholderInSubject($event)">
</app-select-2> </app-select-2>
</div> </div>
</div> </div>
<div class="ui-g form-group"> <div class="form-group row">
<div class="ui-g-12 ui-md-4"> <div class="col-md-offset-6 col-md-6" *ngIf="contentPlaceholderOptions.length">
<label> Message Content </label> <label>Placeholder for Content</label>
</div>
<div class="ui-g-12 ui-md-4" *ngIf="emailTemplateType()">
</div>
<div class="ui-g-12 ui-md-4" *ngIf="contentPlaceholderOptions.length">
<app-select-2 [data]="contentPlaceholderOptions" [value]="0" <app-select-2 [data]="contentPlaceholderOptions" [value]="0"
fieldLabel="Description" fieldLabel="Description"
(valChange)="addPlaceholderInMessageContent($event)"> (valChange)="addPlaceholderInMessageContent($event)">
...@@ -73,8 +62,9 @@ ...@@ -73,8 +62,9 @@
</p-overlayPanel> </p-overlayPanel>
</div> </div>
</div> </div>
<div class="ui-g form-group"> <div class="form-group row">
<div class="ui-g-12 ui-md-12"> <div class="col-md-12">
<label>Message Content</label>
<p-editor *ngIf="emailTemplateType()" [(ngModel)]="messageTemplate.MessageContent" <p-editor *ngIf="emailTemplateType()" [(ngModel)]="messageTemplate.MessageContent"
name="MessageContent{{messageTemplate.ObjectID}}" name="MessageContent{{messageTemplate.ObjectID}}"
#messageContent #messageContent
...@@ -102,12 +92,17 @@ ...@@ -102,12 +92,17 @@
<div class="ui-g-12 ui-md-12"> <div class="ui-g-12 ui-md-12">
<div class="text-center form-group"> <div class="text-center form-group">
<button type="button" value="Cancel" class="btn btn-primary largeBtn greyBtn" <button type="button" value="Cancel" class="btn btn-primary largeBtn greyBtn"
routerLink="/admin/list-message-templates">Cancel (click)="cancelClicked()">Cancel
</button> </button>
<button *ngIf="showSaveBtn()" type="button" value="Save" class="btn btn-primary largeBtn" <button *ngIf="showSaveBtn()" type="button" value="Save" class="btn btn-primary largeBtn"
(click)="saveMessageTemplate()" [disabled]="showLoader"> (click)="saveMessageTemplate()" [disabled]="showLoader">
Save Save
</button> </button>
<button *ngIf="showSaveIntoAllTemplates()" type="button" value="Save into all templates"
class="btn btn-primary largeBtn"
(click)="saveMessageTemplate()" [disabled]="showLoader">
Save into all templates
</button>
<button *ngIf="showSaveCopyBtn()" type="button" value="Save As a Copy" <button *ngIf="showSaveCopyBtn()" type="button" value="Save As a Copy"
class="btn btn-primary largeBtn" class="btn btn-primary largeBtn"
(click)="saveMessageTemplate(true)" [disabled]="showLoader"> (click)="saveMessageTemplate(true)" [disabled]="showLoader">
......
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms'; import { NgForm } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router'; import { ActivatedRoute, Params, Router } from '@angular/router';
import { Editor } from 'primeng/editor'; import { Editor } from 'primeng/editor';
...@@ -13,7 +13,6 @@ import { SaveService } from '../../oneit/services/save.service'; ...@@ -13,7 +13,6 @@ import { SaveService } from '../../oneit/services/save.service';
import { UtilsService } from '../../oneit/services/utils.service'; import { UtilsService } from '../../oneit/services/utils.service';
import { AdminPortalLayoutService } from '../admin-portal/admin-portal-layout/admin-portal-layout.service'; import { AdminPortalLayoutService } from '../admin-portal/admin-portal-layout/admin-portal-layout.service';
import { BaseComponent } from '../base/base.component'; import { BaseComponent } from '../base/base.component';
import { EditMessageTemplateService } from './edit-message-template.service';
@Component({ @Component({
selector: 'app-edit-message-template', selector: 'app-edit-message-template',
...@@ -21,6 +20,10 @@ import { EditMessageTemplateService } from './edit-message-template.service'; ...@@ -21,6 +20,10 @@ import { EditMessageTemplateService } from './edit-message-template.service';
}) })
export class EditMessageTemplateComponent extends BaseComponent implements OnInit { export class EditMessageTemplateComponent extends BaseComponent implements OnInit {
@Input() objectID: string;
// tslint:disable-next-line:prefer-output-readonly
@Output() closeModal: EventEmitter<any> = new EventEmitter<any>();
subscriptions: Array<Subscription> = []; subscriptions: Array<Subscription> = [];
@ViewChild('form') form: NgForm; @ViewChild('form') form: NgForm;
@ViewChild('messageContent') messageContentEditor: Editor; @ViewChild('messageContent') messageContentEditor: Editor;
...@@ -50,7 +53,6 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -50,7 +53,6 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
private utilsService: UtilsService, private utilsService: UtilsService,
private saveService: SaveService, private saveService: SaveService,
private appService: AppService, private appService: AppService,
private editMessageTemplateService: EditMessageTemplateService,
private adminPortalLayoutService: AdminPortalLayoutService private adminPortalLayoutService: AdminPortalLayoutService
) { ) {
super(utilsService); super(utilsService);
...@@ -83,7 +85,7 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -83,7 +85,7 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
.subscribe( .subscribe(
data => { data => {
if (this.createdExists()) { if (this.alreadyExists()) {
return; return;
} }
...@@ -93,10 +95,10 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -93,10 +95,10 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
.subscribe( .subscribe(
(params: Params) => { (params: Params) => {
if (params.id && params.id !== '0') { if ((params.id && params.id !== '0') || this.templateUpdateFromWorkflow()) {
this.editMode = true; this.editMode = true;
this.getMessageTemplateByID(params.id); this.getMessageTemplateByID(this.templateUpdateFromWorkflow() ? this.objectID : params.id);
} else { } else {
this.messageTemplate.HiringTeam = this.adminPortalLayoutService.getHiringTeamID().ObjectID; this.messageTemplate.HiringTeam = this.adminPortalLayoutService.getHiringTeamID().ObjectID;
...@@ -126,6 +128,11 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -126,6 +128,11 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
!this.editMode) : false; !this.editMode) : false;
} }
showSaveIntoAllTemplates(): boolean {
return !!this.messageTemplate && !!this.messageTemplate.ObjectID &&
(!this.alreadyExists() && !this.messageTemplate.IsSystemGenerated && !!this.objectID);
}
showSaveCopyBtn(): boolean { showSaveCopyBtn(): boolean {
return this.messageTemplate && this.messageTemplate.ObjectID ? return this.messageTemplate && this.messageTemplate.ObjectID ?
(!!this.messageTemplate.HiringTeam) : false; (!!this.messageTemplate.HiringTeam) : false;
...@@ -299,10 +306,11 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -299,10 +306,11 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
this.utilsService.resetCounter(); this.utilsService.resetCounter();
this.utilsService.clearErrorMessages(); this.utilsService.clearErrorMessages();
this.subscriptions.push(this.editMessageTemplateService.getMessageTemplateByID(id, []) this.subscriptions.push(this.appService.getMessageTemplateByID(id, [])
.subscribe( .subscribe(
data => { data => {
this.messageTemplate = data; this.messageTemplate = data;
this.updatedObjs[this.messageTemplate.ObjectID] = this.messageTemplate;
this.templateTypeId = this.templateTypeId =
this.messageTemplateTypes.find(elem => elem.Value === this.messageTemplate.TemplateType.Value).id; this.messageTemplateTypes.find(elem => elem.Value === this.messageTemplate.TemplateType.Value).id;
this.showLoader = false; this.showLoader = false;
...@@ -316,6 +324,25 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -316,6 +324,25 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
); );
} }
// If new message template is being created from 'EditWorkFlowComponent'
templateCreationFromWorkflow(): boolean {
return this.objectID && this.objectID.indexOf('NEW') !== -1;
}
// If a message template is being updated from 'EditWorkFlowComponent'
templateUpdateFromWorkflow(): boolean {
return this.objectID && this.objectID.indexOf('NEW') === -1;
}
cancelClicked(): void {
// If new message template is being created from 'EditWorkFlowComponent'
if (this.templateCreationFromWorkflow() || this.templateUpdateFromWorkflow()) {
this.closeModal.emit(-1);
} else {
this.router.navigate(['/admin/list-message-templates']);
}
}
saveMessageTemplate(saveCopy = false): void { saveMessageTemplate(saveCopy = false): void {
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}`;
...@@ -326,9 +353,20 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -326,9 +353,20 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
this.showLoader = true; this.showLoader = true;
this.subscriptions.push(this.saveService.saveObjects(service, this.createdObjs, this.updatedObjs, this.deletedObjs) this.subscriptions.push(this.saveService.saveObjects(service, this.createdObjs, this.updatedObjs, this.deletedObjs)
.subscribe( .subscribe(
() => { data => {
this.utilsService.handleSuccess(); this.utilsService.handleSuccess();
if (this.templateCreationFromWorkflow()) {
let id = this.messageTemplate.ObjectID;
if (data.created[id]) {
id = data.created[id];
}
this.closeModal.emit(id);
} else if (this.templateUpdateFromWorkflow()) {
this.closeModal.emit(this.messageTemplate.ObjectID);
} else {
this.router.navigate(['/admin/list-message-templates']); this.router.navigate(['/admin/list-message-templates']);
}
}, },
error => { error => {
this.showLoader = false; this.showLoader = false;
...@@ -397,8 +435,8 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni ...@@ -397,8 +435,8 @@ export class EditMessageTemplateComponent extends BaseComponent implements OnIni
}, 0); }, 0);
} }
createdExists(): boolean { alreadyExists(): boolean {
return Object.keys(this.createdObjs).length > 0; return Object.keys(this.createdObjs).length > 0 || Object.keys(this.updatedObjs).length > 0;
} }
// tslint:disable-next-line:max-file-line-count // tslint:disable-next-line:max-file-line-count
......
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { MessageTemplateModel } from '../../models/messageTemplate.model';
import { SearchService } from '../../oneit/services/search.service';
import { UtilsService } from '../../oneit/services/utils.service';
@Injectable()
export class EditMessageTemplateService {
constructor(
private searchService: SearchService,
private utilsService: UtilsService
) {
}
getMessageTemplateByID(id, assocs): Observable<MessageTemplateModel> {
return this.searchService.getObjectById('MessageTemplates', id, assocs)
.map(
data => {
const objs = this.utilsService.convertResponseToObjects(data, assocs);
if (objs && objs.length > 0) {
return objs[0];
}
}
);
}
}
...@@ -7,22 +7,25 @@ ...@@ -7,22 +7,25 @@
<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">
<div class="ui-g form-group"> <div class="ui-g form-group">
<p-dialog header="Message Template" [(visible)]="displayNewMessageTemplate"> <p-dialog header="Message Template" [(visible)]="displayNewMessageTemplate" #messageTemplateDialog>
<app-edit-message-template></app-edit-message-template> <app-edit-message-template *ngIf="displayNewMessageTemplate"
[objectID]="selectedTemplateID"
(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">
<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')" pInputText
[(ngModel)]="workflow.TemplateName" [(ngModel)]="workflow.TemplateName" [disabled]="showLoader"
(blur)="toggleInput($event, 'TemplateName')" (blur)="toggleInput($event, 'TemplateName')"
name="TemplateName" required/> name="TemplateName" required/>
</div> </div>
</div> </div>
<!-- Start Pre stages -->
<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">
<p-panel *ngFor="let stage of filteredStages(true, false)" toggler="header" <p-panel *ngFor="let stage of filteredStages(true, false)" toggler="header"
[toggleable]="true" [collapsed]="true"> [toggleable]="true">
<p-header> <p-header>
<span class="ui-panel-title" *ngIf="showStageLabel('StageName'+stage.ObjectID, stage)" <span class="ui-panel-title" *ngIf="showStageLabel('StageName'+stage.ObjectID, stage)"
(click)="toggleStageInput($event, 'StageName'+stage.ObjectID, stage)"> (click)="toggleStageInput($event, 'StageName'+stage.ObjectID, stage)">
...@@ -38,7 +41,7 @@ ...@@ -38,7 +41,7 @@
<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" [(ngModel)]="workflow.LandingButtonText" [disabled]="showLoader"
fieldLabel="Landing Button Text" fieldLabel="Landing Button Text"
tabindex="1" required> tabindex="1" required>
</div> </div>
...@@ -49,7 +52,7 @@ ...@@ -49,7 +52,7 @@
<div class="col-md-12"> <div class="col-md-12">
<label for="VerificationHeaderText">Header Text</label> <label for="VerificationHeaderText">Header Text</label>
<input name="VerificationHeaderText" type="text" class="form-control" <input name="VerificationHeaderText" type="text" class="form-control"
id="VerificationHeaderText" id="VerificationHeaderText" [disabled]="showLoader"
[(ngModel)]="workflow.VerificationHeaderText" [(ngModel)]="workflow.VerificationHeaderText"
fieldLabel="Verification Header Text" fieldLabel="Verification Header Text"
tabindex="2" required> tabindex="2" required>
...@@ -63,7 +66,8 @@ ...@@ -63,7 +66,8 @@
<label> Capture CV </label> <label> Capture CV </label>
</div> </div>
<div class="ui-g-12 ui-md-2"> <div class="ui-g-12 ui-md-2">
<p-inputSwitch [(ngModel)]="workflow.CaptureCV" name="CaptureCV"> <p-inputSwitch [(ngModel)]="workflow.CaptureCV" name="CaptureCV"
[disabled]="showLoader">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
</div> </div>
...@@ -73,6 +77,7 @@ ...@@ -73,6 +77,7 @@
</div> </div>
<div class="ui-g-12 ui-md-2"> <div class="ui-g-12 ui-md-2">
<p-inputSwitch [(ngModel)]="workflow.IsCVMandatory" <p-inputSwitch [(ngModel)]="workflow.IsCVMandatory"
[disabled]="showLoader"
name="IsCVMandatory"> name="IsCVMandatory">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -84,7 +89,8 @@ ...@@ -84,7 +89,8 @@
<label>Capture Cover Letter</label> <label>Capture Cover Letter</label>
</div> </div>
<div class="ui-g-12 ui-md-2"> <div class="ui-g-12 ui-md-2">
<p-inputSwitch [(ngModel)]="workflow.CaptureCL" name="CaptureCL"> <p-inputSwitch [(ngModel)]="workflow.CaptureCL" name="CaptureCL"
[disabled]="showLoader">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
</div> </div>
...@@ -94,6 +100,7 @@ ...@@ -94,6 +100,7 @@
</div> </div>
<div class="ui-g-12 ui-md-2"> <div class="ui-g-12 ui-md-2">
<p-inputSwitch [(ngModel)]="workflow.IsCLMandatory" <p-inputSwitch [(ngModel)]="workflow.IsCLMandatory"
[disabled]="showLoader"
name="IsCLMandatory"> name="IsCLMandatory">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -104,6 +111,7 @@ ...@@ -104,6 +111,7 @@
<label>Button Text</label> <label>Button Text</label>
<input name="ApplicationButtonText" type="text" class="form-control" <input name="ApplicationButtonText" type="text" class="form-control"
[(ngModel)]="workflow.ApplicationButtonText" [(ngModel)]="workflow.ApplicationButtonText"
[disabled]="showLoader"
fieldLabel="Application Button Text" fieldLabel="Application Button Text"
tabindex="7" required> tabindex="7" required>
</div> </div>
...@@ -124,7 +132,7 @@ ...@@ -124,7 +132,7 @@
<div class="col-md-6"> <div class="col-md-6">
<label for="ThankYouHeaderText">Header Text for Thank You page</label> <label for="ThankYouHeaderText">Header Text for Thank You page</label>
<input name="ThankYouHeaderText" [(ngModel)]="workflow.ThankYouHeaderText" <input name="ThankYouHeaderText" [(ngModel)]="workflow.ThankYouHeaderText"
id="ThankYouHeaderText" id="ThankYouHeaderText" [disabled]="showLoader"
type="text" class="form-control" type="text" class="form-control"
fieldLabel="Header Text for Thank You page" fieldLabel="Header Text for Thank You page"
tabindex="8" required> tabindex="8" required>
...@@ -132,7 +140,7 @@ ...@@ -132,7 +140,7 @@
<div class="col-md-6"> <div class="col-md-6">
<label for="ThankYouSecondaryText">Secondary Text</label> <label for="ThankYouSecondaryText">Secondary Text</label>
<input name="ThankYouSecondaryText" id="ThankYouSecondaryText" <input name="ThankYouSecondaryText" id="ThankYouSecondaryText"
[(ngModel)]="workflow.ThankYouSecondaryText" [(ngModel)]="workflow.ThankYouSecondaryText" [disabled]="showLoader"
fieldLabel="Secondary Text" type="text" class="form-control" fieldLabel="Secondary Text" type="text" class="form-control"
tabindex="9"> tabindex="9">
</div> </div>
...@@ -144,7 +152,7 @@ ...@@ -144,7 +152,7 @@
<label for="JobOutlineButtonText">Button Text</label> <label for="JobOutlineButtonText">Button Text</label>
<input name="JobOutlineButtonText" id="JobOutlineButtonText" <input name="JobOutlineButtonText" id="JobOutlineButtonText"
[(ngModel)]="workflow.JobOutlineButtonText" [(ngModel)]="workflow.JobOutlineButtonText"
type="text" class="form-control" type="text" class="form-control" [disabled]="showLoader"
fieldLabel="Job Outline Button Text" fieldLabel="Job Outline Button Text"
tabindex="10" required> tabindex="10" required>
</div> </div>
...@@ -156,7 +164,7 @@ ...@@ -156,7 +164,7 @@
<div class="col-md-6"> <div class="col-md-6">
<h3>Steps</h3> <h3>Steps</h3>
</div> </div>
<div class="col-md-offset-2 col-md-4" *ngIf="stepTypes.length"> <div class="col-md-offset-2 col-md-4" *ngIf="stepTypes && stepTypes.length">
<app-select-2 [data]="stepTypes" [value]="0" <app-select-2 [data]="stepTypes" [value]="0"
fieldLabel="Description" fieldLabel="Description"
(valChange)="addStep($event, stage)"> (valChange)="addStep($event, stage)">
...@@ -172,6 +180,7 @@ ...@@ -172,6 +180,7 @@
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
<button type="button" pButton label=" " icon="ui-icon-close" <button type="button" pButton label=" " icon="ui-icon-close"
[disabled]="showLoader"
(click)="removeStep(step, stage)"></button> (click)="removeStep(step, stage)"></button>
</div> </div>
<div class="col-md-6"></div> <div class="col-md-6"></div>
...@@ -188,7 +197,7 @@ ...@@ -188,7 +197,7 @@
<label> Automatically progress to next stage </label> <label> Automatically progress to next stage </label>
</div> </div>
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<p-inputSwitch [(ngModel)]="stage.AutoProgress" <p-inputSwitch [(ngModel)]="stage.AutoProgress" [disabled]="showLoader"
name="AutoProgress{{stage.ObjectID}}"> name="AutoProgress{{stage.ObjectID}}">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -198,7 +207,7 @@ ...@@ -198,7 +207,7 @@
<label> Use messaging </label> <label> Use messaging </label>
</div> </div>
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<p-inputSwitch [(ngModel)]="stage.UseMessaging" <p-inputSwitch [(ngModel)]="stage.UseMessaging" [disabled]="showLoader"
name="UseMessaging{{stage.ObjectID}}"> name="UseMessaging{{stage.ObjectID}}">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -208,6 +217,7 @@ ...@@ -208,6 +217,7 @@
<div class="form-group row"> <div class="form-group row">
<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"
(click)="addMessage(stage)">Add Message (click)="addMessage(stage)">Add Message
</button> </button>
</div> </div>
...@@ -221,7 +231,7 @@ ...@@ -221,7 +231,7 @@
<div class="col-md-2"> <div class="col-md-2">
<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" [(ngModel)]="message.Delay"
characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]" characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]"
...@@ -237,7 +247,7 @@ ...@@ -237,7 +247,7 @@
<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" [(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-2">
...@@ -268,9 +278,10 @@ ...@@ -268,9 +278,10 @@
</p-dropdown> </p-dropdown>
</div> </div>
<div class="col-md-2 text-center"> <div class="col-md-2 text-center">
<button type="button" pButton label=" " <button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-settings"></button> icon="ui-icon-settings"
<button type="button" pButton label=" " (click)="configureMessageTemplate(message)"></button>
<button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-close" icon="ui-icon-close"
*ngIf="!message.IsWithdrawalMessage" *ngIf="!message.IsWithdrawalMessage"
(click)="removeMessage(message, stage)"></button> (click)="removeMessage(message, stage)"></button>
...@@ -287,23 +298,21 @@ ...@@ -287,23 +298,21 @@
</p-panel> </p-panel>
</div> </div>
</div> </div>
<!-- End Pre stages -->
<div class="row"> <div class="row">
<div class="col-md-6 text-right"> <div class="col-md-6 text-right">
<h3>Stages</h3> <h3>Stages</h3>
</div> </div>
<div class="col-md-3 col-md-offset-3"> <div class="col-md-3 col-md-offset-3">
<button class="btn btn-primary add-more-btn" tabindex="11" <button class="btn btn-primary add-more-btn" tabindex="11" [disabled]="showLoader"
(click)="addStage()">Add Stage (click)="addStage()">Add Stage
</button> </button>
</div> </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">
<p-orderList [value]="filteredStages(false, false)" header="Stages" <p-panel *ngFor="let stage of filteredStages(false, false)" toggler="header"
dragdrop="true"> [toggleable]="true">
<ng-template let-stage pTemplate="item">
<div>
<p-panel toggler="header" [toggleable]="true" [collapsed]="true">
<p-header> <p-header>
<span class="ui-panel-title" *ngIf="showStageLabel('StageName'+stage.SortOrder, stage)" <span class="ui-panel-title" *ngIf="showStageLabel('StageName'+stage.SortOrder, stage)"
(click)="toggleStageInput($event, 'StageName'+stage.SortOrder, stage)"> (click)="toggleStageInput($event, 'StageName'+stage.SortOrder, stage)">
...@@ -311,7 +320,7 @@ ...@@ -311,7 +320,7 @@
</span> </span>
<input id="StageName{{stage.SortOrder}}Id" <input id="StageName{{stage.SortOrder}}Id"
*ngIf="showStageInput('StageName'+stage.SortOrder, stage)" *ngIf="showStageInput('StageName'+stage.SortOrder, stage)"
pInputText pInputText [disabled]="showLoader"
[(ngModel)]="stage.Name" [(ngModel)]="stage.Name"
(blur)="toggleStageInput($event, 'StageName'+stage.SortOrder, stage)" (blur)="toggleStageInput($event, 'StageName'+stage.SortOrder, stage)"
name="StageName{{stage.SortOrder}}" required/> name="StageName{{stage.SortOrder}}" required/>
...@@ -320,7 +329,7 @@ ...@@ -320,7 +329,7 @@
<!-- Start steps section --> <!-- Start steps section -->
<div class="ui-g-12 ui-md-12" *ngIf="!stage.StageType.IsPostStage"> <div class="ui-g-12 ui-md-12" *ngIf="!stage.StageType.IsPostStage">
<div class="form-group row"> <div class="form-group row">
<div class="col-md-offset-8 col-md-4" *ngIf="stepTypes.length"> <div class="col-md-offset-8 col-md-4" *ngIf="stepTypes && stepTypes.length">
<app-select-2 [data]="stepTypes" [value]="0" <app-select-2 [data]="stepTypes" [value]="0"
fieldLabel="Description" fieldLabel="Description"
(valChange)="addStep($event, stage)"> (valChange)="addStep($event, stage)">
...@@ -335,7 +344,7 @@ ...@@ -335,7 +344,7 @@
<h4>{{step.StepType.Description}}</h4> <h4>{{step.StepType.Description}}</h4>
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
<button type="button" pButton label=" " <button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-close" icon="ui-icon-close"
(click)="removeStep(step, stage)"></button> (click)="removeStep(step, stage)"></button>
</div> </div>
...@@ -353,7 +362,7 @@ ...@@ -353,7 +362,7 @@
<label> Automatically progress to next stage </label> <label> Automatically progress to next stage </label>
</div> </div>
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<p-inputSwitch [(ngModel)]="stage.AutoProgress" <p-inputSwitch [(ngModel)]="stage.AutoProgress" [disabled]="showLoader"
name="AutoProgress{{stage.ObjectID}}"> name="AutoProgress{{stage.ObjectID}}">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -363,7 +372,7 @@ ...@@ -363,7 +372,7 @@
<label> Use messaging </label> <label> Use messaging </label>
</div> </div>
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<p-inputSwitch [(ngModel)]="stage.UseMessaging" <p-inputSwitch [(ngModel)]="stage.UseMessaging" [disabled]="showLoader"
name="UseMessaging{{stage.ObjectID}}"> name="UseMessaging{{stage.ObjectID}}">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -373,6 +382,7 @@ ...@@ -373,6 +382,7 @@
<div class="form-group row"> <div class="form-group row">
<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"
(click)="addMessage(stage)">Add Message (click)="addMessage(stage)">Add Message
</button> </button>
</div> </div>
...@@ -390,7 +400,7 @@ ...@@ -390,7 +400,7 @@
<p-inputMask name="Delay{{message.ObjectID}}" <p-inputMask name="Delay{{message.ObjectID}}"
class="form-control" class="form-control"
id="Delay{{message.ObjectID}}" id="Delay{{message.ObjectID}}"
[(ngModel)]="message.Delay" [(ngModel)]="message.Delay" [disabled]="showLoader"
characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]" characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]"
*ngIf="showDelayInput('Delay'+message.ObjectID, message)" *ngIf="showDelayInput('Delay'+message.ObjectID, message)"
(onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)" (onBlur)="toggleDelayInput($event, 'Delay'+message.ObjectID,message)"
...@@ -404,7 +414,7 @@ ...@@ -404,7 +414,7 @@
<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" [(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-2">
...@@ -420,7 +430,7 @@ ...@@ -420,7 +430,7 @@
optionLabel="TemplateName" optionLabel="TemplateName"
name="messageTemplate{{message.ObjectID}}" name="messageTemplate{{message.ObjectID}}"
[(ngModel)]="message.MessageTemplate" [(ngModel)]="message.MessageTemplate"
(onChange)="showMessageTemplateDialog($event)" (onChange)="showMessageTemplateDialog($event, message)"
[autoDisplayFirst]="false"> [autoDisplayFirst]="false">
<ng-template let-message pTemplate="selectedItem"> <ng-template let-message pTemplate="selectedItem">
<i class="{{getMessageClass(message.value)}}"></i> <i class="{{getMessageClass(message.value)}}"></i>
...@@ -438,10 +448,11 @@ ...@@ -438,10 +448,11 @@
</p-dropdown> </p-dropdown>
</div> </div>
<div class="col-md-2 text-center"> <div class="col-md-2 text-center">
<button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-settings"
(click)="configureMessageTemplate(message)"></button>
<button type="button" pButton label=" " <button type="button" pButton label=" "
icon="ui-icon-settings"></button> icon="ui-icon-close" [disabled]="showLoader"
<button type="button" pButton label=" "
icon="ui-icon-close"
*ngIf="!message.IsWithdrawalMessage" *ngIf="!message.IsWithdrawalMessage"
(click)="removeMessage(message, stage)"></button> (click)="removeMessage(message, stage)"></button>
</div> </div>
...@@ -453,7 +464,7 @@ ...@@ -453,7 +464,7 @@
<hr/> <hr/>
<div class="form-group row"> <div class="form-group row">
<div class="ui-g-12 ui-md-6"> <div class="ui-g-12 ui-md-6">
<button class="btn btn-primary add-more-btn" <button class="btn btn-primary add-more-btn" [disabled]="showLoader"
(click)="removeStage(stage)">Remove Stage (click)="removeStage(stage)">Remove Stage
</button> </button>
</div> </div>
...@@ -462,11 +473,9 @@ ...@@ -462,11 +473,9 @@
<!-- End messaging section --> <!-- End messaging section -->
</div> </div>
</p-panel> </p-panel>
</div>
</ng-template> <!-- Start Post Stages -->
</p-orderList> <p-panel *ngFor="let stage of filteredStages(false, true)" toggler="header" [toggleable]="true">
<p-panel *ngFor="let stage of filteredStages(false, true)" toggler="header"
[toggleable]="true" [collapsed]="true">
<p-header> <p-header>
<span class="ui-panel-title" *ngIf="showStageLabel('StageName'+stage.ObjectID, stage)" <span class="ui-panel-title" *ngIf="showStageLabel('StageName'+stage.ObjectID, stage)"
(click)="toggleStageInput($event, 'StageName'+stage.ObjectID, stage)"> (click)="toggleStageInput($event, 'StageName'+stage.ObjectID, stage)">
...@@ -481,7 +490,7 @@ ...@@ -481,7 +490,7 @@
<label> Automatically progress to next stage </label> <label> Automatically progress to next stage </label>
</div> </div>
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<p-inputSwitch [(ngModel)]="stage.AutoProgress" <p-inputSwitch [(ngModel)]="stage.AutoProgress" [disabled]="showLoader"
name="AutoProgress{{stage.ObjectID}}"> name="AutoProgress{{stage.ObjectID}}">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -491,7 +500,7 @@ ...@@ -491,7 +500,7 @@
<label> Use messaging </label> <label> Use messaging </label>
</div> </div>
<div class="ui-g-12 ui-md-4"> <div class="ui-g-12 ui-md-4">
<p-inputSwitch [(ngModel)]="stage.UseMessaging" <p-inputSwitch [(ngModel)]="stage.UseMessaging" [disabled]="showLoader"
name="UseMessaging{{stage.ObjectID}}"> name="UseMessaging{{stage.ObjectID}}">
</p-inputSwitch> </p-inputSwitch>
</div> </div>
...@@ -501,6 +510,7 @@ ...@@ -501,6 +510,7 @@
<div class="form-group row"> <div class="form-group row">
<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"
(click)="addMessage(stage)" *ngIf="stage.UseMessaging">Add (click)="addMessage(stage)" *ngIf="stage.UseMessaging">Add
Message Message
</button> </button>
...@@ -516,7 +526,7 @@ ...@@ -516,7 +526,7 @@
<label>After</label> <label>After</label>
<p-inputMask name="Delay{{message.ObjectID}}" <p-inputMask name="Delay{{message.ObjectID}}"
class="form-control" class="form-control"
id="Delay{{message.ObjectID}}" id="Delay{{message.ObjectID}}" [disabled]="showLoader"
[(ngModel)]="message.Delay" [(ngModel)]="message.Delay"
characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]" characterPattern="[(\d+\:\d+\:\d+)|(\d+\:\d+)|(\d+)]"
*ngIf="showDelayInput('Delay'+message.ObjectID, message)" *ngIf="showDelayInput('Delay'+message.ObjectID, message)"
...@@ -531,7 +541,7 @@ ...@@ -531,7 +541,7 @@
<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" [(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-2">
...@@ -562,9 +572,10 @@ ...@@ -562,9 +572,10 @@
</p-dropdown> </p-dropdown>
</div> </div>
<div class="col-md-2 text-center"> <div class="col-md-2 text-center">
<button type="button" pButton label=" " <button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-settings"></button> icon="ui-icon-settings"
<button type="button" pButton label=" " (click)="configureMessageTemplate(message)"></button>
<button type="button" pButton label=" " [disabled]="showLoader"
icon="ui-icon-close" icon="ui-icon-close"
*ngIf="!message.IsWithdrawalMessage" *ngIf="!message.IsWithdrawalMessage"
(click)="removeMessage(message, stage)"></button> (click)="removeMessage(message, stage)"></button>
...@@ -579,12 +590,14 @@ ...@@ -579,12 +590,14 @@
<!-- End messaging section --> <!-- End messaging section -->
</div> </div>
</p-panel> </p-panel>
<!-- End Post Stages -->
</div> </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">
<div class="text-center form-group"> <div class="text-center form-group">
<button type="button" value="Cancel" class="btn btn-primary largeBtn greyBtn" <button type="button" value="Cancel" class="btn btn-primary largeBtn greyBtn"
[disabled]="showLoader"
routerLink="/admin/list-message-templates">Cancel routerLink="/admin/list-message-templates">Cancel
</button> </button>
<button *ngIf="showSaveBtn()" type="button" value="Save" class="btn btn-primary largeBtn" <button *ngIf="showSaveBtn()" type="button" value="Save" class="btn btn-primary largeBtn"
......
...@@ -51,8 +51,14 @@ p-inputMask { ...@@ -51,8 +51,14 @@ p-inputMask {
&:hover { &:hover {
background-color: transparent !important; background-color: transparent !important;
color: #4e5258 !important;
} }
} }
.ui-state-highlight {
background-color: transparent !important;
color: #4e5258 !important;
}
} }
} }
......
...@@ -2,10 +2,11 @@ import { Component, OnInit, ViewChild } from '@angular/core'; ...@@ -2,10 +2,11 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms'; import { NgForm } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router'; import { ActivatedRoute, Params, Router } from '@angular/router';
import { ConfirmationService } from 'primeng/api'; import { ConfirmationService } from 'primeng/api';
import { Dialog } from 'primeng/dialog';
import { combineLatest } from 'rxjs/observable/combineLatest'; 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 { SERVICES } from '../../constants'; import { ASSOCS, SERVICES } from '../../constants';
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';
...@@ -29,6 +30,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -29,6 +30,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
subscriptions: Array<Subscription> = []; subscriptions: Array<Subscription> = [];
@ViewChild('form') form: NgForm; @ViewChild('form') form: NgForm;
@ViewChild('messageTemplateDialog') messageTemplateDialog: Dialog;
createdObjs; createdObjs;
updatedObjs; updatedObjs;
deletedObjs; deletedObjs;
...@@ -46,6 +48,8 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -46,6 +48,8 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
showLoader = false; showLoader = false;
editMode = false; editMode = false;
displayNewMessageTemplate = false; displayNewMessageTemplate = false;
selectedTemplateID = null;
selectedMessageTemplate = null; // object id of type WorkflowMessageModel
constructor( constructor(
private router: Router, private router: Router,
...@@ -327,7 +331,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -327,7 +331,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
} }
} }
getMessageTemplates(): void { getMessageTemplates(callback = null): void {
const sharedMsgParams = { const sharedMsgParams = {
OnlyGlobalTemplate: true, OnlyGlobalTemplate: true,
attribsByName: 'Autocomplete' attribsByName: 'Autocomplete'
...@@ -347,10 +351,11 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -347,10 +351,11 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
const myTemplates = response[0].filter(message => message.HiringTeam === const myTemplates = response[0].filter(message => message.HiringTeam ===
this.adminPortalLayoutService.getHiringTeamID().ObjectID); this.adminPortalLayoutService.getHiringTeamID().ObjectID);
this.messageTemplates = [...myTemplates, ...response[1]]; this.messageTemplates = [...myTemplates, ...response[1]];
const newTemplate = new MessageTemplateModel(); this.addNewOptionToMessageTemplate();
newTemplate.TemplateName = 'New Template'; if (callback) {
newTemplate.id = '0'; // called when a new message template is created
this.messageTemplates.push(newTemplate); callback();
}
}, },
error => { error => {
this.utilsService.handleError(error); this.utilsService.handleError(error);
...@@ -359,13 +364,63 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -359,13 +364,63 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
); );
} }
showMessageTemplateDialog($event): void { addNewOptionToMessageTemplate(): void {
const newTemplate = new MessageTemplateModel();
newTemplate.TemplateName = 'New Template';
newTemplate.id = '0';
this.messageTemplates.push(newTemplate);
}
showMessageTemplateDialog($event, message: WorkflowMessageModel): void {
const template = $event.value; const template = $event.value;
if (template.id && template.id === '0') { if (template.id && template.id === '0') {
// When new template is selected, store it to global variable
this.selectedTemplateID = 'NEW';
this.displayNewMessageTemplate = true; this.displayNewMessageTemplate = true;
this.selectedMessageTemplate = message.ObjectID;
} else {
// When other options from message template are selected, assign global variable to null
this.selectedMessageTemplate = null;
} }
} }
configureMessageTemplate(message: WorkflowMessageModel): void {
if (message.MessageTemplate && typeof message.MessageTemplate !== 'string') {
this.selectedTemplateID = message.MessageTemplate.ObjectID;
this.displayNewMessageTemplate = true;
}
}
closeDialog(value): void {
if (value === -1) {
// Cancel button is clicked
} else if (this.selectedTemplateID === 'NEW' && this.selectedMessageTemplate !== null) {
// When new value is created, assign it to the current WorkFlowMessage
this.showLoader = true;
this.getMessageTemplates(() => {
const found = this.messageTemplates.find(elem => elem.ObjectID === value);
if (found) {
this.workflow.WorkFlowStages.forEach(wfStage => {
const messageTemplate = wfStage.WorkFlowMessages.find(wfMessage => wfMessage.ObjectID ===
this.selectedMessageTemplate);
if (messageTemplate) {
messageTemplate.MessageTemplate = found;
}
});
}
this.selectedMessageTemplate = null;
this.selectedTemplateID = null;
this.showLoader = false;
});
}
this.displayNewMessageTemplate = false;
}
populateMessageTemplates(template: MessageTemplateModel): void {
this.messageTemplates.splice(this.messageTemplates.length - 1, 1);
this.messageTemplates.push(template);
}
availableStepTypes(): Array<StepTypeEnum> { availableStepTypes(): Array<StepTypeEnum> {
const availableStepTypes = this.stepTypeOptions; const availableStepTypes = this.stepTypeOptions;
if (this.workflow.WorkFlowStages) { if (this.workflow.WorkFlowStages) {
...@@ -384,7 +439,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -384,7 +439,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
} }
stageMessagesCount(stage: WorkflowStageModel): string { stageMessagesCount(stage: WorkflowStageModel): string {
return `Message Schedule (${stage.WorkFlowMessages.length})`; return `Message Schedule (${(stage && stage.WorkFlowMessages) ? stage.WorkFlowMessages.length : 0})`;
} }
addStep($event, stage: WorkflowStageModel): void { addStep($event, stage: WorkflowStageModel): void {
...@@ -494,11 +549,25 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -494,11 +549,25 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this.utilsService.resetCounter(); this.utilsService.resetCounter();
this.utilsService.clearErrorMessages(); this.utilsService.clearErrorMessages();
this.subscriptions.push(this.editWorkflowTemplateService.getWorkflowTemplateByID(id, []) const assoc = [ASSOCS.WORKFLOW_STAGE, [ASSOCS.WORKFLOW_STAGE, ASSOCS.WORKFLOW_MESSAGE].join('.'),
[ASSOCS.WORKFLOW_STAGE, ASSOCS.WORKFLOW_MESSAGE, ASSOCS.WORKFLOW_STEP].join('.')];
this.subscriptions.push(this.editWorkflowTemplateService.getWorkflowTemplateByID(id, assoc)
.subscribe( .subscribe(
data => { data => {
this.workflow = data; this.workflow = data;
this.updatedObjs[this.workflow.ObjectID] = this.workflow; this.updatedObjs[this.workflow.ObjectID] = this.workflow;
this.utilsService.addObjsToJSONByObjectID(this.updatedObjs, this.workflow.WorkFlowStages);
this.workflow.WorkFlowStages.forEach(stage => {
if (stage.WorkFlowMessages) {
this.utilsService.addObjsToJSONByObjectID(this.updatedObjs, stage.WorkFlowMessages);
}
if (stage.Steps) {
this.utilsService.addObjsToJSONByObjectID(this.updatedObjs, stage.Steps);
}
});
this.reOrderStages(this.filterStages(true, true, true));
this.showLogs();
this.showLoader = false; this.showLoader = false;
}, },
error => { error => {
...@@ -544,7 +613,10 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -544,7 +613,10 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
} }
showLogs(): void { showLogs(): void {
console.log(this.workflow.WorkFlowStages); console.log(this.workflow);
console.log(this.createdObjs);
console.log(this.updatedObjs);
console.log(this.deletedObjs);
} }
alreadyExists(): boolean { alreadyExists(): boolean {
......
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable'; import { Observable } from 'rxjs/Observable';
import { SERVICES } from "../../constants"; import { SERVICES } from '../../constants';
import { MessageTemplateModel } from "../../models/messageTemplate.model"; import { MessageTemplateModel } from '../../models/messageTemplate.model';
import { SearchService } from '../../oneit/services/search.service'; import { SearchService } from '../../oneit/services/search.service';
import { UtilsService } from '../../oneit/services/utils.service'; import { UtilsService } from '../../oneit/services/utils.service';
...@@ -21,25 +21,8 @@ export class EditWorkflowTemplateService { ...@@ -21,25 +21,8 @@ export class EditWorkflowTemplateService {
); );
} }
getmessagetemplate_withdrawsForAutocomplete(searchTerm, assocs): Observable<any> {
return this.searchService.getObjects('', 'All', {}, assocs, null, null, null, null)
.map(
data =>
this.utilsService.convertResponseToObjects(data, assocs)
);
}
getmessagetemplatesForAutocomplete(searchTerm, assocs): Observable<any> {
return this.searchService.getObjects('', 'All', {}, assocs, null, null, null, null)
.map(
data => {
return this.utilsService.convertResponseToObjects(data, assocs);
}
);
}
getWorkflowTemplateByID(id, assocs): Observable<any> { getWorkflowTemplateByID(id, assocs): Observable<any> {
return this.searchService.getObjectById('', id, assocs) return this.searchService.getObjectById('WorkFlowTemplates', id, assocs)
.map( .map(
data => { data => {
const objs = this.utilsService.convertResponseToObjects(data, assocs); const objs = this.utilsService.convertResponseToObjects(data, assocs);
......
...@@ -21,3 +21,9 @@ export const SEARCH = { ...@@ -21,3 +21,9 @@ export const SEARCH = {
MESSAGE_TEMPLATE: 'ListMessageTemplate', MESSAGE_TEMPLATE: 'ListMessageTemplate',
WORKFLOW_TEMPLATE: 'ListWorkFlow' WORKFLOW_TEMPLATE: 'ListWorkFlow'
}; };
export const ASSOCS = {
WORKFLOW_STAGE: 'WorkFlowStages',
WORKFLOW_MESSAGE: 'WorkFlowMessages',
WORKFLOW_STEP: 'WorkFlowSteps'
};
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