Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PERFORMA_REPLICA
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Muhammad Usman
PERFORMA_REPLICA
Commits
5acafeab
Commit
5acafeab
authored
Nov 26, 2019
by
Ali Arshad
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CR fix for messages duplicate code.
Fixed sorting issue.
parent
30b6d65e
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
162 additions
and
561 deletions
+162
-561
edit-workflow-template.component.html
...t-workflow-template/edit-workflow-template.component.html
+156
-557
edit-workflow-template.component.ts
...dit-workflow-template/edit-workflow-template.component.ts
+5
-4
constants.ts
frontend/angular/src/app/constants.ts
+1
-0
No files found.
frontend/angular/src/app/components/edit-workflow-template/edit-workflow-template.component.html
View file @
5acafeab
...
@@ -161,6 +161,161 @@
...
@@ -161,6 +161,161 @@
<ng-container
*
ngTemplateOutlet=
"stepsTemplate; context:{stage: stage}"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"stepsTemplate; context:{stage: stage}"
></ng-container>
<!-- End steps section -->
<!-- End steps section -->
<!-- Start messaging section -->
<!-- Start messaging section -->
<ng-container
*
ngTemplateOutlet=
"messageTemplate; context:{stage: stage}"
></ng-container>
<!-- End messaging section -->
</div>
</p-panel>
</div>
</div>
<!-- End Pre stages -->
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-6 text-right"
>
<h3>
Stages
</h3>
</div>
<div
class=
"ui-g-3 ui-g-offset-3"
>
<button
(
click
)="
addStage
()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary add-more-btn"
tabindex=
"11"
>
Add Stage
</button>
</div>
</div>
<div
(
dndDrop
)="
onDrop
($
event
,
genericStages
,
000
)"
class=
"ui-g ui-fluid"
dndDropzone
>
<div
[
hidden
]="
draggingId
!==
000
"
dndPlaceholderRef
style=
"background: #CCCCCC; border: 1px dashed #000; width: 100%; height: 53px"
></div>
<div
(
dndEnd
)="
onDragEnd
($
event
)"
(
dndStart
)="
onDragStart
(
stage
,
genericStages
,
000
)"
*
ngFor=
"let stage of genericStages"
[
dndDraggable
]="
stage
"
class=
"ui-g-12 ui-md-12"
dndEffectAllowed=
"copy"
toggler=
"header"
>
<p-panel
[
toggleable
]="
true
"
#
panel
[
collapsed
]="
true
"
toggler=
"header"
>
<p-header>
<span
(
click
)="
toggleInput
($
event
,
'
StageName
'+
stage
.
SortOrder
,
true
)"
*
ngIf=
"showLabel('StageName'+stage.SortOrder)"
class=
"ui-panel-title"
>
{{getStageHeader(stage)}}
</span>
<input
(
blur
)="
toggleInput
($
event
,
'
StageName
'+
stage
.
SortOrder
,
false
)"
*
ngIf=
"!showLabel('StageName'+stage.SortOrder)"
[(
ngModel
)]="
stage
.
Name
"
[
disabled
]="
showLoader
"
class=
"form-control panel-header-input"
id=
"StageName{{stage.SortOrder}}Id"
name=
"StageName{{stage.SortOrder}}"
pInputText
required
/>
</p-header>
<div
class=
"ui-g form-group"
*
ngIf=
"!panel.collapsed"
>
<!-- Start steps section -->
<ng-container
*
ngTemplateOutlet=
"stepsTemplate; context:{stage: stage}"
></ng-container>
<!-- End steps section -->
<!-- Start messaging section -->
<ng-container
*
ngTemplateOutlet=
"messageTemplate; context:{stage: stage}"
></ng-container>
<!-- End messaging section -->
</div>
</p-panel>
</div>
<div
class=
"ui-g-12 ui-md-12"
></div>
</div>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12"
>
<!-- Start Post Stages -->
<p-panel
*
ngFor=
"let stage of postStages"
[
toggleable
]="
true
"
toggler=
"header"
[
collapsed
]="
true
"
class=
"postStage"
>
<p-header>
<span
class=
"ui-panel-title"
>
{{getStageHeader(stage)}}
</span>
</p-header>
<div
class=
"ui-g form-group"
>
<!-- Start messaging section -->
<ng-container
*
ngTemplateOutlet=
"messageTemplate; context:{stage: stage}"
></ng-container>
<!-- End messaging section -->
</div>
</p-panel>
<!-- End Post Stages -->
</div>
</div>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"text-center form-group"
>
<button
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn greyBtn"
routerLink=
"/admin/list-workflow-templates"
type=
"button"
value=
"Cancel"
>
Cancel
</button>
<button
(
click
)="
saveWorkflowTemplate
()"
*
ngIf=
"showSaveBtn()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn"
type=
"button"
value=
"Save"
>
Save
</button>
<button
(
click
)="
saveWorkflowTemplate
(
true
)"
*
ngIf=
"showSaveCopyBtn()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn"
type=
"button"
value=
"Save As a Copy"
>
Save As a Copy
</button>
</div>
</div>
</div>
</div>
</div>
</form>
<p-progressSpinner
*
ngIf=
"showLoader"
></p-progressSpinner>
</div>
<p-confirmDialog
header=
"Confirmation"
key=
"RemoveRow"
autoZIndex=
"false"
baseZIndex=
"12000"
icon=
"pi pi-exclamation-triangle"
appendTo=
"body"
>
</p-confirmDialog>
<ng-template
#
stepsTemplate
let-stage=
"stage"
>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-6"
>
<h3>
Steps
</h3>
</div>
<div
*
ngIf=
"stepTypes && stepTypes.length"
class=
"col-md-offset-2 col-md-4"
>
<app-select-2
(
valChange
)="
addStep
($
event
,
stage
)"
[
data
]="
stepTypes
"
[
value
]="
stepTypes
[
0
]"
fieldLabel=
"Description"
>
</app-select-2>
</div>
</div>
<div
*
ngIf=
"stage.Steps.length===0"
>
No steps added...
</div>
<div
(
dndDrop
)="
onDrop
($
event
,
stage
.
Steps
,
stage
.
ObjectID
)"
[
class
.
disable-drop
]="
draggingId
!=
null
&&
draggingId
!==
stage
.
ObjectID
"
dndDropzone
>
<div
[
hidden
]="
draggingId
!==
stage
.
ObjectID
"
dndPlaceholderRef
style=
"background: #CCCCCC; border: 1px dashed #000; width: 50%; height: 53px"
></div>
<div
*
ngFor=
"let step of stage.Steps"
class=
"ui-g"
>
<div
(
dndEnd
)="
onDragEnd
($
event
)"
(
dndStart
)="
onDragStart
(
step
,
stage
.
Steps
,
stage
.
ObjectID
)"
[
dndDraggable
]="
step
"
class=
"ui-g-6"
dndEffectAllowed=
"copy"
>
<div
class=
"ui-g"
>
<div
class=
"col-md-8 interactive"
>
<h4>
{{step.StepType.Description}}
</h4>
</div>
<div
class=
"col-md-4"
>
<button
(
click
)="
removeStep
(
step
,
stage
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
pButton
type=
"button"
></button>
</div>
</div>
</div>
</div>
</div>
<hr/>
</div>
</ng-template>
<ng-template
let-stage=
"stage"
#
messageTemplate
>
<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"
>
<div
class=
"ui-g-12 ui-md-6"
>
<div
class=
"ui-g-12 ui-md-6"
>
...
@@ -197,7 +352,7 @@
...
@@ -197,7 +352,7 @@
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group row"
>
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group row"
>
<div
*
ngIf=
"stage.UseMessaging && !message.IsWithdrawalMessage"
<div
*
ngIf=
"stage.UseMessaging && !message.IsWithdrawalMessage"
class=
"col-lg-12 col-md-12 mb-10"
>
class=
"col-lg-12 col-md-12 mb-10"
>
<div
class=
"col-md-3
"
>
<div
class=
"col-md-3"
*
ngIf=
"stage.StageType.IsPreStage
"
>
<label>
</label>
<label>
</label>
<p-multiSelect
[(
ngModel
)]="
message
.
ApplicantSources
"
<p-multiSelect
[(
ngModel
)]="
message
.
ApplicantSources
"
[
disabled
]="
showLoader
"
[
disabled
]="
showLoader
"
...
@@ -376,560 +531,4 @@
...
@@ -376,560 +531,4 @@
<!-- End displaying messages -->
<!-- End displaying messages -->
<hr/>
<hr/>
</div>
</div>
<!-- End messaging section -->
</div>
</p-panel>
</div>
</div>
<!-- End Pre stages -->
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-6 text-right"
>
<h3>
Stages
</h3>
</div>
<div
class=
"ui-g-3 ui-g-offset-3"
>
<button
(
click
)="
addStage
()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary add-more-btn"
tabindex=
"11"
>
Add Stage
</button>
</div>
</div>
<div
(
dndDrop
)="
onDrop
($
event
,
genericStages
,
000
)"
class=
"ui-g ui-fluid"
dndDropzone
>
<div
[
hidden
]="
draggingId
!==
000
"
dndPlaceholderRef
style=
"background: #CCCCCC; border: 1px dashed #000; width: 100%; height: 53px"
></div>
<div
(
dndEnd
)="
onDragEnd
($
event
)"
(
dndStart
)="
onDragStart
(
stage
,
genericStages
,
000
)"
*
ngFor=
"let stage of genericStages"
[
dndDraggable
]="
stage
"
class=
"ui-g-12 ui-md-12"
dndEffectAllowed=
"copy"
toggler=
"header"
>
<p-panel
[
toggleable
]="
true
"
#
panel
[
collapsed
]="
true
"
toggler=
"header"
>
<p-header>
<span
(
click
)="
toggleInput
($
event
,
'
StageName
'+
stage
.
SortOrder
,
true
)"
*
ngIf=
"showLabel('StageName'+stage.SortOrder)"
class=
"ui-panel-title"
>
{{getStageHeader(stage)}}
</span>
<input
(
blur
)="
toggleInput
($
event
,
'
StageName
'+
stage
.
SortOrder
,
false
)"
*
ngIf=
"!showLabel('StageName'+stage.SortOrder)"
[(
ngModel
)]="
stage
.
Name
"
[
disabled
]="
showLoader
"
class=
"form-control panel-header-input"
id=
"StageName{{stage.SortOrder}}Id"
name=
"StageName{{stage.SortOrder}}"
pInputText
required
/>
</p-header>
<div
class=
"ui-g form-group"
*
ngIf=
"!panel.collapsed"
>
<!-- Start steps section -->
<ng-container
*
ngTemplateOutlet=
"stepsTemplate; context:{stage: stage}"
></ng-container>
<!-- End steps section -->
<!-- Start messaging section -->
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<label>
Automatically progress to next stage
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
AutoProgress
"
[
disabled
]="
showLoader
"
name=
"AutoProgress{{stage.ObjectID}}"
>
</p-inputSwitch>
</div>
</div>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<label>
Use messaging
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
UseMessaging
"
[
disabled
]="
showLoader
"
name=
"UseMessaging{{stage.ObjectID}}"
>
</p-inputSwitch>
</div>
</div>
<p-panel
[
collapsed
]="!
stage
.
UseMessaging
"
[
toggleable
]="
stage
.
UseMessaging
"
header=
"{{stageMessagesCount(stage)}}"
toggler=
"header"
class=
"messaging"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-offset-9 col-md-3"
>
<button
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging"
[
disabled
]="
showLoader
"
class=
"btn btn-primary add-more-btn"
tabindex=
"11"
>
Add
Message
</button>
</div>
</div>
<!-- Display Messages here -->
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group row"
>
<div
*
ngIf=
"stage.UseMessaging && !message.IsWithdrawalMessage"
class=
"col-lg-12 col-md-12"
>
<div
class=
"col-md-2"
>
<label>
After
</label>
<p-inputMask
(
change
)="
generateDelayString
(
message
)"
(
onBlur
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
false
)"
(
onFocus
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"!showLabel('Delay'+message.ObjectID) || !message.Delay"
[(
ngModel
)]="
message
.
Delay
"
[
disabled
]="
showLoader
"
[
id
]="'
Delay
'+
message
.
ObjectID
"
class=
"form-control"
mask=
"9?9:99:99"
name=
"Delay{{message.ObjectID}}"
>
</p-inputMask>
<div
(
click
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Delay'+message.ObjectID) && message.Delay"
>
<label>
{{message.DelayString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label
for=
"Variance{{message.ObjectID}}"
>
+/-
</label>
<input
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
(
change
)="
generateVarianceString
(
message
)"
(
blur
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
false
)"
(
focusin
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
class=
"form-control"
id=
"Variance{{message.ObjectID}}"
*
ngIf=
"!showLabel('Variance'+message.ObjectID) || !message.Variance"
name=
"Variance{{message.ObjectID}}"
type=
"text"
>
<div
(
click
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Variance'+message.ObjectID) && message.Variance"
>
<label>
{{message.VarianceString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label>
Business Hours only
</label>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true"
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
</p-checkbox>
</div>
<div
class=
"col-md-4"
>
<label>
Send
</label>
<p-dropdown
(
onChange
)="
showMessageTemplateDialog
($
event
,
message
)"
[(
ngModel
)]="
message
.
MessageTemplate
"
[
autoDisplayFirst
]="
false
"
[
options
]="
messageTemplates
"
filter=
"true"
name=
"messageTemplate{{message.ObjectID}}"
optionLabel=
"TemplateName"
>
<ng-template
let-message
pTemplate=
"selectedItem"
>
<i
class=
"{{getMessageClass(message.value)}}"
></i>
<span
class=
"dropdown-text"
>
{{message.label}}
</span>
</ng-template>
<ng-template
let-selectedMsg
pTemplate=
"item"
>
<div
class=
"ui-helper-clearfix"
style=
"position: relative;height: 25px;"
>
<i
class=
"{{getMessageClass(selectedMsg.value)}}"
></i>
<div
class=
"dropdown-text"
>
{{selectedMsg.label}}
</div>
</div>
</ng-template>
</p-dropdown>
</div>
<div
class=
"col-md-2 text-center"
>
<button
(
click
)="
configureMessageTemplate
(
message
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
pButton
type=
"button"
></button>
<button
(
click
)="
removeMessage
(
message
,
stage
)"
*
ngIf=
"!message.IsWithdrawalMessage"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
pButton
type=
"button"
></button>
</div>
</div>
</div>
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group row"
>
<div
*
ngIf=
"stage.UseMessaging && message.IsWithdrawalMessage"
class=
"col-lg-12 col-md-12"
>
<h4>
Withdrawal Process
</h4>
</div>
<div
*
ngIf=
"stage.UseMessaging && message.IsWithdrawalMessage"
class=
"col-lg-12 col-md-12 mb-10"
>
<div
class=
"col-md-2"
>
<label>
After
</label>
<p-inputMask
(
change
)="
generateDelayString
(
message
)"
(
onBlur
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
false
)"
(
onFocus
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"!showLabel('Delay'+message.ObjectID) || !message.Delay"
[(
ngModel
)]="
message
.
Delay
"
[
disabled
]="
showLoader
"
[
id
]="'
Delay
'+
message
.
ObjectID
"
class=
"form-control"
mask=
"9?9:99:99"
name=
"Delay{{message.ObjectID}}"
>
</p-inputMask>
<div
(
click
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Delay'+message.ObjectID) && message.Delay"
>
<label>
{{message.DelayString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label
for=
"Variance{{message.ObjectID}}"
>
+/-
</label>
<input
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
(
change
)="
generateVarianceString
(
message
)"
(
blur
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
false
)"
(
focusin
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
class=
"form-control"
id=
"Variance{{message.ObjectID}}"
*
ngIf=
"!showLabel('Variance'+message.ObjectID) || !message.Variance"
name=
"Variance{{message.ObjectID}}"
type=
"text"
>
<div
(
click
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Variance'+message.ObjectID) && message.Variance"
>
<label>
{{message.VarianceString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label
title=
"Business Hours only"
class=
"mb-0"
>
Business Hours
only
</label>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true"
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
</p-checkbox>
</div>
<div
class=
"col-md-4"
>
<label>
Send
</label>
<p-dropdown
(
onChange
)="
showMessageTemplateDialog
($
event
,
message
)"
[(
ngModel
)]="
message
.
MessageTemplate
"
[
autoDisplayFirst
]="
false
"
[
options
]="
messageTemplates
"
filter=
"true"
name=
"messageTemplate{{message.ObjectID}}"
optionLabel=
"TemplateName"
>
<ng-template
let-message
pTemplate=
"selectedItem"
>
<i
class=
"{{getMessageClass(message.value)}}"
></i>
<span
class=
"dropdown-text"
>
{{message.label}}
</span>
</ng-template>
<ng-template
let-selectedMsg
pTemplate=
"item"
>
<div
class=
"ui-helper-clearfix"
style=
"position: relative;height: 25px;"
>
<i
class=
"{{getMessageClass(selectedMsg.value)}}"
></i>
<div
class=
"dropdown-text"
>
{{selectedMsg.label}}
</div>
</div>
</ng-template>
</p-dropdown>
</div>
<div
class=
"col-md-2 text-center"
>
<button
(
click
)="
configureMessageTemplate
(
message
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
pButton
type=
"button"
>
</button>
</div>
</div>
</div>
</p-panel>
<!-- End displaying messages -->
<hr/>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<button
(
click
)="
removeStage
(
stage
)"
[
disabled
]="
showLoader
"
class=
"btn btn-primary add-more-btn"
>
Remove Stage
</button>
</div>
</div>
</div>
<!-- End messaging section -->
</div>
</p-panel>
</div>
<div
class=
"ui-g-12 ui-md-12"
></div>
</div>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12"
>
<!-- Start Post Stages -->
<p-panel
*
ngFor=
"let stage of postStages"
[
toggleable
]="
true
"
toggler=
"header"
[
collapsed
]="
true
"
class=
"postStage"
>
<p-header>
<span
class=
"ui-panel-title"
>
{{getStageHeader(stage)}}
</span>
</p-header>
<div
class=
"ui-g form-group"
>
<!-- Start messaging section -->
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<label>
Automatically progress to next stage
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
AutoProgress
"
[
disabled
]="
showLoader
"
name=
"AutoProgress{{stage.ObjectID}}"
>
</p-inputSwitch>
</div>
</div>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<label>
Use messaging
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
UseMessaging
"
[
disabled
]="
showLoader
"
name=
"UseMessaging{{stage.ObjectID}}"
>
</p-inputSwitch>
</div>
</div>
<p-panel
[
collapsed
]="!
stage
.
UseMessaging
"
[
toggleable
]="
stage
.
UseMessaging
"
header=
"{{stageMessagesCount(stage)}}"
toggler=
"header"
class=
"messaging"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-offset-9 col-md-3"
>
<button
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging"
[
disabled
]="
showLoader
"
class=
"btn btn-primary add-more-btn"
tabindex=
"11"
>
Add
Message
</button>
</div>
</div>
<!-- Display Messages here -->
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group row"
>
<div
*
ngIf=
"stage.UseMessaging && !message.IsWithdrawalMessage"
class=
"col-lg-12 col-md-12"
>
<div
class=
"col-md-2"
>
<label>
After
</label>
<p-inputMask
(
change
)="
generateDelayString
(
message
)"
(
onBlur
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
false
)"
(
onFocus
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"!showLabel('Delay'+message.ObjectID) || !message.Delay"
[(
ngModel
)]="
message
.
Delay
"
[
disabled
]="
showLoader
"
class=
"form-control"
id=
"Delay{{message.ObjectID}}"
mask=
"9?9:99:99"
name=
"Delay{{message.ObjectID}}"
>
</p-inputMask>
<div
(
click
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Delay'+message.ObjectID, message) && message.Delay"
>
<label>
{{message.DelayString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label
for=
"Variance{{message.ObjectID}}"
>
+/-
</label>
<input
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
(
change
)="
generateVarianceString
(
message
)"
(
blur
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
false
)"
(
focusin
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
class=
"form-control"
id=
"Variance{{message.ObjectID}}"
*
ngIf=
"!showLabel('Variance'+message.ObjectID) || !message.Variance"
name=
"Variance{{message.ObjectID}}"
type=
"text"
>
<div
(
click
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Variance'+message.ObjectID) && message.Variance"
>
<label>
{{message.VarianceString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label>
Business Hours only
</label>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true"
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
</p-checkbox>
</div>
<div
class=
"col-md-4"
>
<label>
Send
</label>
<p-dropdown
(
onChange
)="
showMessageTemplateDialog
($
event
,
message
)"
[(
ngModel
)]="
message
.
MessageTemplate
"
[
autoDisplayFirst
]="
false
"
[
options
]="
messageTemplates
"
filter=
"true"
name=
"messageTemplate{{message.ObjectID}}"
optionLabel=
"TemplateName"
>
<ng-template
let-message
pTemplate=
"selectedItem"
>
<i
class=
"{{getMessageClass(message.value)}}"
></i>
<span
class=
"dropdown-text"
>
{{message.label}}
</span>
</ng-template>
<ng-template
let-selectedMsg
pTemplate=
"item"
>
<div
class=
"ui-helper-clearfix"
style=
"position: relative;height: 25px;"
>
<i
class=
"{{getMessageClass(selectedMsg.value)}}"
></i>
<div
class=
"dropdown-text"
>
{{selectedMsg.label}}
</div>
</div>
</ng-template>
</p-dropdown>
</div>
<div
class=
"col-md-2 text-center"
>
<button
(
click
)="
configureMessageTemplate
(
message
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
pButton
type=
"button"
></button>
<button
(
click
)="
removeMessage
(
message
,
stage
)"
*
ngIf=
"!message.IsWithdrawalMessage"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
pButton
type=
"button"
></button>
</div>
</div>
</div>
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group ui-g"
>
<div
*
ngIf=
"stage.UseMessaging && message.IsWithdrawalMessage"
class=
"ui-g-offset-0 ui-g-10"
>
<h4>
Withdrawal Process
</h4>
</div>
<div
*
ngIf=
"stage.UseMessaging && message.IsWithdrawalMessage"
class=
"ui-g-12 mb-10"
>
<div
class=
"col-md-2"
>
<label>
After
</label>
<p-inputMask
(
change
)="
generateDelayString
(
message
)"
(
onBlur
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
false
)"
(
onFocus
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"!showLabel('Delay'+message.ObjectID) || !message.Delay"
[(
ngModel
)]="
message
.
Delay
"
[
disabled
]="
showLoader
"
[
id
]="'
Delay
'+
message
.
ObjectID
"
class=
"form-control"
mask=
"9?9:99:99"
name=
"Delay{{message.ObjectID}}"
>
</p-inputMask>
<div
(
click
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Delay'+message.ObjectID) && message.Delay"
>
<label>
{{message.DelayString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label
for=
"Variance{{message.ObjectID}}"
>
+/-
</label>
<input
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
(
change
)="
generateVarianceString
(
message
)"
(
blur
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
false
)"
(
focusin
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
class=
"form-control"
id=
"Variance{{message.ObjectID}}"
*
ngIf=
"!showLabel('Variance'+message.ObjectID) || !message.Variance"
name=
"Variance{{message.ObjectID}}"
type=
"text"
>
<div
(
click
)="
toggleInput
($
event
,
'
Variance
'+
message
.
ObjectID
,
true
)"
*
ngIf=
"showLabel('Variance'+message.ObjectID) && message.Variance"
>
<label>
{{message.VarianceString}}
</label>
</div>
</div>
<div
class=
"col-md-2"
>
<label
title=
"Business Hours only"
class=
"mb-0"
>
Business Hours
only
</label>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true"
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
</p-checkbox>
</div>
<div
class=
"col-md-4"
>
<label>
Send
</label>
<p-dropdown
(
onChange
)="
showMessageTemplateDialog
($
event
,
message
)"
[(
ngModel
)]="
message
.
MessageTemplate
"
[
autoDisplayFirst
]="
false
"
[
options
]="
messageTemplates
"
filter=
"true"
name=
"messageTemplate{{message.ObjectID}}"
optionLabel=
"TemplateName"
>
<ng-template
let-message
pTemplate=
"selectedItem"
>
<i
class=
"{{getMessageClass(message.value)}}"
></i>
<span
class=
"dropdown-text"
>
{{message.label}}
</span>
</ng-template>
<ng-template
let-selectedMsg
pTemplate=
"item"
>
<div
class=
"ui-helper-clearfix"
style=
"position: relative;height: 25px;"
>
<i
class=
"{{getMessageClass(selectedMsg.value)}}"
></i>
<div
class=
"dropdown-text"
>
{{selectedMsg.label}}
</div>
</div>
</ng-template>
</p-dropdown>
</div>
<div
class=
"col-md-2 text-center"
>
<button
(
click
)="
configureMessageTemplate
(
message
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
pButton
type=
"button"
>
</button>
</div>
</div>
</div>
</p-panel>
<!-- End displaying messages -->
<hr/>
</div>
<!-- End messaging section -->
</div>
</p-panel>
<!-- End Post Stages -->
</div>
</div>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"text-center form-group"
>
<button
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn greyBtn"
routerLink=
"/admin/list-workflow-templates"
type=
"button"
value=
"Cancel"
>
Cancel
</button>
<button
(
click
)="
saveWorkflowTemplate
()"
*
ngIf=
"showSaveBtn()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn"
type=
"button"
value=
"Save"
>
Save
</button>
<button
(
click
)="
saveWorkflowTemplate
(
true
)"
*
ngIf=
"showSaveCopyBtn()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn"
type=
"button"
value=
"Save As a Copy"
>
Save As a Copy
</button>
</div>
</div>
</div>
</div>
</div>
</form>
<p-progressSpinner
*
ngIf=
"showLoader"
></p-progressSpinner>
</div>
<p-confirmDialog
header=
"Confirmation"
key=
"RemoveRow"
autoZIndex=
"false"
baseZIndex=
"12000"
icon=
"pi pi-exclamation-triangle"
appendTo=
"body"
>
</p-confirmDialog>
<ng-template
#
stepsTemplate
let-stage=
"stage"
>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-6"
>
<h3>
Steps
</h3>
</div>
<div
*
ngIf=
"stepTypes && stepTypes.length"
class=
"col-md-offset-2 col-md-4"
>
<app-select-2
(
valChange
)="
addStep
($
event
,
stage
)"
[
data
]="
stepTypes
"
[
value
]="
stepTypes
[
0
]"
fieldLabel=
"Description"
>
</app-select-2>
</div>
</div>
<div
*
ngIf=
"stage.Steps.length===0"
>
No steps added...
</div>
<div
(
dndDrop
)="
onDrop
($
event
,
stage
.
Steps
,
stage
.
ObjectID
)"
[
class
.
disable-drop
]="
draggingId
!=
null
&&
draggingId
!==
stage
.
ObjectID
"
dndDropzone
>
<div
[
hidden
]="
draggingId
!==
stage
.
ObjectID
"
dndPlaceholderRef
style=
"background: #CCCCCC; border: 1px dashed #000; width: 50%; height: 53px"
></div>
<div
*
ngFor=
"let step of stage.Steps"
class=
"ui-g"
>
<div
(
dndEnd
)="
onDragEnd
($
event
)"
(
dndStart
)="
onDragStart
(
step
,
stage
.
Steps
,
stage
.
ObjectID
)"
[
dndDraggable
]="
step
"
class=
"ui-g-6"
dndEffectAllowed=
"copy"
>
<div
class=
"ui-g"
>
<div
class=
"col-md-8 interactive"
>
<h4>
{{step.StepType.Description}}
</h4>
</div>
<div
class=
"col-md-4"
>
<button
(
click
)="
removeStep
(
step
,
stage
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
pButton
type=
"button"
></button>
</div>
</div>
</div>
</div>
</div>
<hr/>
</div>
</ng-template>
</ng-template>
frontend/angular/src/app/components/edit-workflow-template/edit-workflow-template.component.ts
View file @
5acafeab
...
@@ -164,12 +164,14 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
...
@@ -164,12 +164,14 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
}
reOrderStages
():
void
{
reOrderStages
():
void
{
this
.
workflow
.
WorkFlowStages
=
this
.
utilsService
.
sort
(
this
.
workflow
.
WorkFlowStages
,
[
'SortOrder'
],
[
-
1
]);
this
.
workflow
.
WorkFlowStages
=
this
.
utilsService
.
sort
(
this
.
workflow
.
WorkFlowStages
,
[
'SortOrder'
],
[
1
]);
this
.
filterStages
();
this
.
filterStages
();
}
}
reOrderSteps
():
void
{
reOrderSteps
():
void
{
this
.
workflow
.
WorkFlowStages
=
this
.
utilsService
.
sort
(
this
.
workflow
.
WorkFlowStages
,
[
'SortOrder'
],
[
-
1
]);
this
.
workflow
.
WorkFlowStages
.
forEach
(
stage
=>
{
stage
.
Steps
=
this
.
utilsService
.
sort
(
stage
.
Steps
,
[
'SortOrder'
],
[
1
]);
});
}
}
isGeneric
(
stage
:
WorkflowStageModel
):
boolean
{
isGeneric
(
stage
:
WorkflowStageModel
):
boolean
{
...
@@ -509,7 +511,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
...
@@ -509,7 +511,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this
.
utilsService
.
addObjsToJSONByObjectID
(
this
.
updatedObjs
,
stage
.
WorkFlowMessages
);
this
.
utilsService
.
addObjsToJSONByObjectID
(
this
.
updatedObjs
,
stage
.
WorkFlowMessages
);
this
.
utilsService
.
addObjsToJSONByObjectID
(
this
.
updatedObjs
,
stage
.
Steps
);
this
.
utilsService
.
addObjsToJSONByObjectID
(
this
.
updatedObjs
,
stage
.
Steps
);
});
});
this
.
reOrderStages
();
this
.
reOrderStages
();
...
@@ -531,7 +532,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
...
@@ -531,7 +532,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
saveWorkflowTemplate
(
saveCopy
=
false
):
void
{
saveWorkflowTemplate
(
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_
WORKFLOW
_AS_COPY
:
SERVICES
.
SAVE
}
`
;
if
(
this
.
form
.
invalid
)
{
if
(
this
.
form
.
invalid
)
{
this
.
utilsService
.
showAllErrorMessages
();
this
.
utilsService
.
showAllErrorMessages
();
...
...
frontend/angular/src/app/constants.ts
View file @
5acafeab
...
@@ -14,6 +14,7 @@ export const SERVICES = {
...
@@ -14,6 +14,7 @@ export const SERVICES = {
MESSAGE_TEMPLATES
:
'MessageTemplates'
,
MESSAGE_TEMPLATES
:
'MessageTemplates'
,
WORKFLOW_TEMPLATES
:
'WorkFlowTemplates'
,
WORKFLOW_TEMPLATES
:
'WorkFlowTemplates'
,
SAVE_MESSAGE_AS_COPY
:
'SaveMessageAsCopy'
,
SAVE_MESSAGE_AS_COPY
:
'SaveMessageAsCopy'
,
SAVE_WORKFLOW_AS_COPY
:
'SaveWorkflowAsCopy'
,
SAVE
:
'Save'
SAVE
:
'Save'
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment