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();
this.router.navigate(['/admin/list-message-templates']);
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']);
}
}, },
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];
}
}
);
}
}
...@@ -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,11 +364,61 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn ...@@ -359,11 +364,61 @@ 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> {
...@@ -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