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
1587f3a0
Commit
1587f3a0
authored
Nov 23, 2019
by
Ali Arshad
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Internal CR fixes.
parent
c69ab081
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
384 additions
and
436 deletions
+384
-436
edit-workflow-template.component.html
...t-workflow-template/edit-workflow-template.component.html
+264
-253
edit-workflow-template.component.scss
...t-workflow-template/edit-workflow-template.component.scss
+34
-0
edit-workflow-template.component.ts
...dit-workflow-template/edit-workflow-template.component.ts
+46
-178
common.css
frontend/angular/src/assets/css/common.css
+34
-0
custom.scss
frontend/angular/src/assets/css/custom.scss
+6
-5
No files found.
frontend/angular/src/app/components/edit-workflow-template/edit-workflow-template.component.html
View file @
1587f3a0
<div
class=
"dashboard-content-area second-part"
>
<app-error-message></app-error-message>
<form
#
form=
"ngForm"
>
<form
#
form=
"ngForm"
*
ngIf=
"!showLoader"
>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"page-title mb-0"
>
{{editMode ? "Edit" : "Add"}} Workflow Template
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"ui-g form-group"
>
<p-dialog
header=
"Message Template"
[(
visible
)]="
displayNewMessageTemplate
"
#
messageTemplateDialog
>
<app-edit-message-template
*
ngIf=
"displayNewMessageTemplate"
[
objectID
]="
selectedTemplateID
"
(
closeModal
)="
closeDialog
($
event
)"
></app-edit-message-template>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12"
>
<div
class=
"page-title mb-0"
>
<a
[
routerLink
]="['/
admin
/
list-workflow-templates
']"
class=
"arrow-btn-blue ml-0"
>
<img
src=
"/assets/images/arrow-left-prev_blue.svg"
>
</a>
{{editMode ? "Edit" : "Add"}} Workflow Template
</div>
</div>
</div>
<div
class=
"ui-g ui-fluid"
>
<p-dialog
#
messageTemplateDialog
[(
visible
)]="
displayNewMessageTemplate
"
header=
"Message Template"
>
<app-edit-message-template
(
closeModal
)="
closeDialog
($
event
)"
*
ngIf=
"displayNewMessageTemplate"
[
objectID
]="
selectedTemplateID
"
></app-edit-message-template>
</p-dialog>
<div
class=
"ui-g-12 ui-g-offset-
4 ui-md-4 h-60
"
>
<label
for=
"TemplateNameId"
(
click
)="
toggleInput
($
event
,
'
TemplateName
')"
*
ngIf=
"showLabel('TemplateName')
"
>
{{workflow.TemplateName}}
</label>
<input
id=
"TemplateNameId"
*
ngIf=
"showInput
('TemplateName')"
<div
class=
"ui-g-12 ui-g-offset-
3 ui-md-6 h-60 text-center templateName
"
>
<label
(
click
)="
toggleInput
($
event
,
'
TemplateName
',
true
)"
*
ngIf=
"showLabel(
'TemplateName')"
for=
"TemplateNameId
"
>
{{workflow.TemplateName}}
</label>
<input
(
blur
)="
toggleInput
($
event
,
'
TemplateName
',
false
)"
*
ngIf=
"!showLabel
('TemplateName')"
[(
ngModel
)]="
workflow
.
TemplateName
"
[
disabled
]="
showLoader
"
(
blur
)="
toggleInput
($
event
,
'
TemplateName
')"
class=
"form-control
"
class=
"form-control"
id=
"TemplateNameId
"
name=
"TemplateName"
required
/>
</div>
</div>
<!-- Start Pre stages -->
<div
class=
"ui-g
form-group
"
>
<div
class=
"ui-g
ui-fluid
"
>
<div
class=
"ui-g-12 ui-md-12"
>
<p-panel
*
ngFor=
"let stage of
filteredStages(true, false)"
toggler=
"header
"
[
toggleable
]="
true
"
>
<p-panel
*
ngFor=
"let stage of
preStages"
[
toggleable
]="
true
"
toggler=
"header
"
>
<p-header>
<span
class=
"ui-panel-title"
*
ngIf=
"showStageLabel('StageName'+stage.ObjectID, stage)"
(
click
)="
toggleStageInput
($
event
,
'
StageName
'+
stage
.
ObjectID
,
stage
)"
>
<span
class=
"ui-panel-title"
>
{{getStageHeader(stage)}}
</span>
</p-header>
<div
class=
"form-group"
>
<div
class=
"work-belonging"
>
<div
class=
"form-group
ui-g
"
>
<div
class=
"work-belonging
ui-g-12 mb-0
"
>
<span
class=
"calcField"
>
Landing Page
</span>
</div>
<div
class=
"form-group row"
>
<div
class=
"col-md-8"
>
<div
class=
"form-group ui-g-12"
>
<label
for=
"LandingButtonText"
>
Button Text
</label>
<input
name=
"LandingButtonText"
type=
"text"
class=
"form-control"
id=
"LandingButtonText"
[(
ngModel
)]="
workflow
.
LandingButtonText
"
[
disabled
]="
showLoader
"
<input
[(
ngModel
)]="
workflow
.
LandingButtonText
"
[
disabled
]="
showLoader
"
class=
"form-control"
fieldLabel=
"Landing Button Text"
tabindex=
"1"
required
>
id=
"LandingButtonText"
name=
"LandingButtonText"
required
tabindex=
"1"
type=
"text"
>
</div>
</div>
<div
class=
"work-belonging"
>
<div
class=
"work-belonging ui-g-12 mb-0"
>
<span
class=
"calcField"
>
Verification Page
</span>
</div>
<div
class=
"form-group row"
>
<div
class=
"col-md-12"
>
<div
class=
"form-group ui-g-12"
>
<label
for=
"VerificationHeaderText"
>
Header Text
</label>
<input
name=
"VerificationHeaderText"
type=
"text"
class=
"form-control"
id=
"VerificationHeaderText"
[
disabled
]="
showLoader
"
[(
ngModel
)]="
workflow
.
VerificationHeaderText
"
fieldLabel=
"Verification Header Text"
tabindex=
"2"
required
>
</div>
<input
[(
ngModel
)]="
workflow
.
VerificationHeaderText
"
[
disabled
]="
showLoader
"
class=
"form-control"
fieldLabel=
"Verification Header Text"
id=
"VerificationHeaderText"
name=
"VerificationHeaderText"
required
tabindex=
"2"
type=
"text"
>
</div>
<div
class=
"work-belonging"
>
<div
class=
"work-belonging
ui-g-12 mb-0
"
>
<span
class=
"calcField"
>
Application
</span>
</div>
<div
class=
"criteria_section"
>
<div
class=
"criteria_section
ui-g-12
"
>
<fieldset>
<legend>
<span
class=
"calcField"
>
Capture CV
</span>
<p-inputSwitch
[(
ngModel
)]="
workflow
.
CaptureCV
"
name=
"CaptureCV
"
[
disabled
]="
showLoader
"
>
<p-inputSwitch
[(
ngModel
)]="
workflow
.
CaptureCV
"
[
disabled
]="
showLoader
"
name=
"CaptureCV
"
>
</p-inputSwitch>
</legend>
<div
*
ngIf=
"workflow.CaptureCV"
class=
"ui-g-12 ui-md-6"
>
<div
class=
"ui-g-12 ui-md-4"
>
<label>
Mandatory
</label>
<label>
Mandatory
</label>
</div>
<div
class=
"ui-g-12 ui-md-2"
>
<p-inputSwitch
[(
ngModel
)]="
workflow
.
IsCVMandatory
"
...
...
@@ -83,17 +85,17 @@
</div>
</fieldset>
</div>
<div
class=
"criteria_section"
>
<div
class=
"criteria_section
ui-g-12
"
>
<fieldset>
<legend>
<span
class=
"calcField"
>
Capture Cover Letter
</span>
<p-inputSwitch
[(
ngModel
)]="
workflow
.
CaptureCL
"
name=
"CaptureCL
"
[
disabled
]="
showLoader
"
>
<p-inputSwitch
[(
ngModel
)]="
workflow
.
CaptureCL
"
[
disabled
]="
showLoader
"
name=
"CaptureCL
"
>
</p-inputSwitch>
</legend>
<div
*
ngIf=
"workflow.CaptureCL"
class=
"ui-g-12 ui-md-6"
>
<div
class=
"ui-g-12 ui-md-4"
>
<label>
Mandatory
</label>
<label>
Mandatory
</label>
</div>
<div
class=
"ui-g-12 ui-md-2"
>
<p-inputSwitch
[(
ngModel
)]="
workflow
.
IsCLMandatory
"
...
...
@@ -104,57 +106,57 @@
</div>
</fieldset>
</div>
<div
class=
"form-group row"
>
<div
class=
"col-md-12"
>
<div
class=
"form-group ui-g-12"
>
<label
for=
"VerificationHeaderText"
>
Button Text
</label>
<input
name=
"ApplicationButtonText"
type=
"text"
class=
"form-control"
[(
ngModel
)]="
workflow
.
ApplicationButtonText
"
[
disabled
]="
showLoader
"
<input
[(
ngModel
)]="
workflow
.
ApplicationButtonText
"
[
disabled
]="
showLoader
"
class=
"form-control"
fieldLabel=
"Application Button Text"
tabindex=
"7"
required
>
</div>
</div>
<div
class=
"form-group row"
>
<div
class=
"col-md-2"
>
<label>
Action
</label>
</div>
<div
class=
"col-md-10"
>
<p-selectButton
[
options
]="
responseActions
"
[(
ngModel
)]="
workflow
.
ApplicationResponseAction
"
optionLabel=
"Description"
name=
"ApplicationResponseAction"
>
name=
"ApplicationButtonText"
required
tabindex=
"7"
type=
"text"
>
</div>
<div
class=
"form-group ui-g-12"
>
<div
class=
"ui-g flex-center"
>
<div
class=
"ui-g-2"
>
<label
class=
"mb-0"
>
Action
</label>
</div>
<div
class=
"ui-g-10"
>
<p-selectButton
[(
ngModel
)]="
workflow
.
ApplicationResponseAction
"
[
options
]="
responseActions
"
name=
"ApplicationResponseAction"
optionLabel=
"Description"
>
</p-selectButton>
</div>
</div>
<div
class=
"form-group row"
*
ngIf=
"emailResponseSelected()"
>
<div
class=
"col-md-6"
>
</div>
<div
*
ngIf=
"emailResponseSelected()"
class=
"form-group ui-g-12"
>
<div
class=
"ui-g"
>
<div
class=
"ui-g-6"
>
<label
for=
"ThankYouHeaderText"
>
Header Text for Thank You page
</label>
<input
name=
"ThankYouHeaderText"
[(
ngModel
)]="
workflow
.
ThankYouHeaderText
"
id=
"ThankYouHeaderText"
[
disabled
]="
showLoader
"
type=
"text"
class=
"form-control
"
fieldLabel=
"Header Text for Thank You page"
tabindex=
"8"
required
>
<input
[(
ngModel
)]="
workflow
.
ThankYouHeaderText
"
[
disabled
]="
showLoader
"
class=
"form-control"
fieldLabel=
"Header Text for Thank You page
"
id=
"ThankYouHeaderText"
name=
"ThankYouHeaderText
"
required
tabindex=
"8"
type=
"text"
>
</div>
<div
class=
"col-md
-6"
>
<div
class=
"ui-g
-6"
>
<label
for=
"ThankYouSecondaryText"
>
Secondary Text
</label>
<input
name=
"ThankYouSecondaryText"
id=
"ThankYouSecondaryText
"
[(
ngModel
)]="
workflow
.
ThankYouSecondaryText
"
[
disabled
]="
showLoader
"
fieldLabel=
"Secondary Text"
type=
"text"
class=
"form-control
"
tabindex=
"9
"
>
<input
[(
ngModel
)]="
workflow
.
ThankYouSecondaryText
"
[
disabled
]="
showLoader
"
class=
"form-control"
fieldLabel=
"Secondary Text
"
id=
"ThankYouSecondaryText"
name=
"ThankYouSecondaryText"
tabindex=
"9
"
type=
"text
"
>
</div>
</div>
<div
class=
"work-belonging"
>
</div>
<div
class=
"work-belonging ui-g-12"
>
<span
class=
"calcField"
>
Job Outline Page
</span>
</div>
<div
class=
"form-group row"
>
<div
class=
"col-md-12"
>
<div
class=
"form-group ui-g-12"
>
<label
for=
"JobOutlineButtonText"
>
Button Text
</label>
<input
name=
"JobOutlineButtonText"
id=
"JobOutlineButtonText"
[(
ngModel
)]="
workflow
.
JobOutlineButtonText
"
type=
"text"
class=
"form-control"
[
disabled
]="
showLoader
"
fieldLabel=
"Job Outline Button Text"
tabindex=
"10"
required
>
</div>
<input
[(
ngModel
)]="
workflow
.
JobOutlineButtonText
"
[
disabled
]="
showLoader
"
class=
"form-control"
fieldLabel=
"Job Outline Button Text"
id=
"JobOutlineButtonText"
name=
"JobOutlineButtonText"
required
tabindex=
"10"
type=
"text"
>
</div>
</div>
<div
class=
"ui-g form-group"
>
...
...
@@ -164,24 +166,24 @@
<div
class=
"col-md-6"
>
<h3>
Steps
</h3>
</div>
<div
class=
"col-md-offset-2 col-md-4"
*
ngIf=
"stepTypes && stepTypes.length
"
>
<app-select-2
[
data
]="
stepTypes
"
[
value
]="
0
"
fieldLabel=
"Description
"
(
valChange
)="
addStep
($
event
,
stage
)
"
>
<div
*
ngIf=
"stepTypes && stepTypes.length"
class=
"col-md-offset-2 col-md-4
"
>
<app-select-2
(
valChange
)="
addStep
($
event
,
stage
)"
[
data
]="
stepTypes
"
[
value
]="
0
"
fieldLabel=
"Description
"
>
</app-select-2>
</div>
</div>
<p-orderList
[
value
]="
stage
.
Steps
"
header=
"
Steps"
dragdrop=
"true"
(
onReorder
)="
reAssignStepOrders
(
stage
)
"
>
<p-orderList
(
onReorder
)="
reAssignStepOrders
(
stage
)"
[
value
]="
stage
.
Steps
"
dragdrop=
"true"
header=
"Steps
"
>
<ng-template
let-step
pTemplate=
"item"
>
<div
class=
"drag-block"
>
<div
class=
"col-md-4"
>
<h4>
{{step.StepType.Description}}
</h4>
</div>
<div
class=
"col-md-2"
>
<button
type=
"button"
pButton
label=
" "
icon=
"ui-icon-close
"
[
disabled
]="
showLoader
"
(
click
)="
removeStep
(
step
,
stage
)
"
></button>
<button
(
click
)="
removeStep
(
step
,
stage
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
label=
"
"
pButton
type=
"button
"
></button>
</div>
<div
class=
"col-md-6"
></div>
</div>
...
...
@@ -194,7 +196,7 @@
<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>
<label>
Automatically progress to next stage
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
AutoProgress
"
[
disabled
]="
showLoader
"
...
...
@@ -204,7 +206,7 @@
</div>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<label>
Use messaging
</label>
<label>
Use messaging
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
UseMessaging
"
[
disabled
]="
showLoader
"
...
...
@@ -212,71 +214,74 @@
</p-inputSwitch>
</div>
</div>
<p-panel
header=
"{{stageMessagesCount(stage)}}
"
[
toggleable
]="
true
"
[
collapsed
]="!
stage
.
UseMessaging
"
>
<p-panel
[
collapsed
]="!
stage
.
UseMessaging
"
[
toggleable
]="
true
"
header=
"{{stageMessagesCount(stage)}}
"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-offset-9 col-md-3"
>
<button
class=
"btn btn-primary add-more-btn"
tabindex=
"11
"
<button
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging
"
[
disabled
]="
showLoader
"
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging
"
>
Add
class=
"btn btn-primary add-more-btn"
tabindex=
"11
"
>
Add
Message
</button>
</div>
</div>
<!-- Display Pre Stage Messages here -->
<div
class=
"form-group row"
*
ngFor=
"let message of stage.WorkFlowMessages
"
>
<div
class=
"col-lg-12 col-md-12"
*
ngIf=
"message.IsWithdrawalMessage
"
>
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group row
"
>
<div
*
ngIf=
"message.IsWithdrawalMessage"
class=
"col-lg-12 col-md-12
"
>
<h3>
Withdrawal Process
</h3>
</div>
<div
class=
"col-lg-12 col-md-12"
*
ngIf=
"stage.UseMessaging
"
>
<div
*
ngIf=
"stage.UseMessaging"
class=
"col-lg-12 col-md-12 mb-10
"
>
<div
class=
"col-md-4"
>
<p-multiSelect
[
options
]="
applicantSources
"
name=
"applicantSources{{message.ObjectID}}"
[(
ngModel
)]="
message
.
ApplicantSources
"
[
panelStyle
]="{
minWidth:
'
12em
'}"
<label>
</label>
<p-multiSelect
[(
ngModel
)]="
message
.
ApplicantSources
"
[
disabled
]="
showLoader
"
[
filter
]="
false
"
optionLabel=
"Description"
[
disabled
]="
showLoader
"
>
[
options
]="
applicantSources
"
[
panelStyle
]="{
minWidth:
'
12em
'}"
class=
"form-control"
name=
"applicantSources{{message.ObjectID}}"
optionLabel=
"Description"
>
</p-multiSelect>
</div>
<div
class=
"col-md-4"
>
<label>
After
</label>
<p-inputMask
name=
"Delay{{message.ObjectID}}
"
class=
"form-control"
[
disabled
]="
showLoader
"
id=
"Delay{{message.ObjectID}}
"
<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
"
(
onFocus
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)"
(
onBlur
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)"
*
ngIf=
"!showDelayLabel('Delay'+message.ObjectID, message)"
mask=
"9?9:99:99"
>
[
disabled
]="
showLoader
"
[
id
]="'
Delay
'+
message
.
ObjectID
"
class=
"form-control"
mask=
"9?9:99:99"
name=
"Delay{{message.ObjectID}}"
>
</p-inputMask>
<div
*
ngIf=
"showDelayLabel('Delay'+message.ObjectID, messag
e)"
(
click
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)
"
>
<div
(
click
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
tru
e
)"
*
ngIf=
"showLabel('Delay'+message.ObjectID) && message.Delay
"
>
<label>
{{message.DelayString}}
</label>
</div>
</div>
<div
class=
"col-md-4"
>
<label
for=
"Variance{{message.ObjectID}}"
>
+/-
</label>
<input
name=
"Variance{{message.ObjectID}}
"
id=
"Variance{{message.ObjectID}}
"
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
type=
"text"
class=
"form-control
"
>
<input
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
class=
"form-control"
id=
"Variance{{message.ObjectID}}
"
name=
"Variance{{message.ObjectID}}"
type=
"text
"
>
</div>
</div>
<div
class=
"col-lg-12 col-md-12"
>
<div
class=
"col-lg-12 col-md-12
flex-center
"
>
<div
class=
"col-md-4"
>
<label>
Business Hours only
</label>
<p-checkbox
name=
"BusinessHoursOnly{{message.ObjectID}}
"
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true
"
>
<label
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-6"
>
<label>
Send
</label>
<p-dropdown
[
options
]="
messageTemplates
"
filter=
"true
"
optionLabel=
"TemplateNam
e"
<p-dropdown
[
(
ngModel
)]="
message
.
MessageTemplate
"
[
options
]="
messageTemplates
"
filter=
"tru
e"
name=
"messageTemplate{{message.ObjectID}}"
[(
ngModel
)]="
message
.
MessageTemplat
e
"
>
optionLabel=
"TemplateNam
e"
>
<ng-template
let-message
pTemplate=
"selectedItem"
>
<i
class=
"{{getMessageClass(message.value)}}"
></i>
<span
class=
"dropdown-text"
>
{{message.label}}
</span>
...
...
@@ -292,13 +297,13 @@
</p-dropdown>
</div>
<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=
" "
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
*
ngIf=
"!message.IsWithdrawalMessage"
(
click
)="
removeMessage
(
message
,
stage
)"
>
</button>
<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>
...
...
@@ -313,54 +318,55 @@
</div>
</div>
<!-- End Pre stages -->
<div
class=
"
row
"
>
<div
class=
"
col-md
-6 text-right"
>
<div
class=
"
ui-g ui-fluid
"
>
<div
class=
"
ui-g
-6 text-right"
>
<h3>
Stages
</h3>
</div>
<div
class=
"
col-md-3 col-md
-offset-3"
>
<button
class=
"btn btn-primary add-more-btn"
tabindex=
"11"
[
disabled
]="
showLoader
"
(
click
)="
addStage
()
"
>
Add Stage
<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
class=
"ui-g
form-group
"
>
<div
class=
"ui-g
ui-fluid
"
>
<div
class=
"ui-g-12 ui-md-12"
>
<p-panel
*
ngFor=
"let stage of
filteredStages(false, false)"
toggler=
"header
"
[
toggleable
]="
true
"
>
<p-panel
*
ngFor=
"let stage of
genericStages"
[
toggleable
]="
true
"
toggler=
"header
"
>
<p-header>
<span
class=
"ui-panel-title"
*
ngIf=
"showStageLabel('StageName'+stage.SortOrder, stage
)"
(
click
)="
toggleStageInput
($
event
,
'
StageName
'+
stage
.
SortOrder
,
stage
)
"
>
<span
(
click
)="
toggleInput
($
event
,
'
StageName
'+
stage
.
SortOrder
,
true
)"
*
ngIf=
"showLabel('StageName'+stage.SortOrder
)"
class=
"ui-panel-title
"
>
{{getStageHeader(stage)}}
</span>
<input
id=
"StageName{{stage.SortOrder}}Id"
*
ngIf=
"showStageInput('StageName'+stage.SortOrder, stage)"
pInputText
[
disabled
]="
showLoader
"
[(
ngModel
)]="
stage
.
Name
"
(
blur
)="
toggleStageInput
($
event
,
'
StageName
'+
stage
.
SortOrder
,
stage
)"
name=
"StageName{{stage.SortOrder}}"
required
/>
<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"
>
<!-- Start steps section -->
<div
class=
"ui-g-12 ui-md-12"
*
ngIf=
"!stage.StageType.IsPostStage
"
>
<div
*
ngIf=
"!stage.StageType.IsPostStage"
class=
"ui-g-12 ui-md-12
"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-offset-8 col-md-4"
*
ngIf=
"stepTypes && stepTypes.length
"
>
<app-select-2
[
data
]="
stepTypes
"
[
value
]="
0
"
fieldLabel=
"Description
"
(
valChange
)="
addStep
($
event
,
stage
)
"
>
<div
*
ngIf=
"stepTypes && stepTypes.length"
class=
"col-md-offset-8 col-md-4
"
>
<app-select-2
(
valChange
)="
addStep
($
event
,
stage
)"
[
data
]="
stepTypes
"
[
value
]="
0
"
fieldLabel=
"Description
"
>
</app-select-2>
</div>
</div>
<p-orderList
[
value
]="
stage
.
Steps
"
header=
"
Steps"
dragdrop=
"true"
(
onReorder
)="
reAssignStepOrders
(
stage
)
"
>
<p-orderList
(
onReorder
)="
reAssignStepOrders
(
stage
)"
[
value
]="
stage
.
Steps
"
dragdrop=
"true"
header=
"Steps
"
>
<ng-template
let-step
pTemplate=
"item"
>
<div
class=
"drag-block"
>
<div
class=
"col-md-4"
>
<h4>
{{step.StepType.Description}}
</h4>
</div>
<div
class=
"col-md-2"
>
<button
type=
"button"
pButton
label=
" "
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
(
click
)="
removeStep
(
step
,
stage
)
"
></button>
<button
(
click
)="
removeStep
(
step
,
stage
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
label=
"
"
pButton
type=
"button
"
></button>
</div>
<div
class=
"col-md-6"
></div>
</div>
...
...
@@ -373,7 +379,7 @@
<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>
<label>
Automatically progress to next stage
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
AutoProgress
"
[
disabled
]="
showLoader
"
...
...
@@ -383,7 +389,7 @@
</div>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<label>
Use messaging
</label>
<label>
Use messaging
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
UseMessaging
"
[
disabled
]="
showLoader
"
...
...
@@ -391,65 +397,66 @@
</p-inputSwitch>
</div>
</div>
<p-panel
header=
"{{stageMessagesCount(stage)}}
"
[
toggleable
]="
true
"
[
collapsed
]="!
stage
.
UseMessaging
"
>
<p-panel
[
collapsed
]="!
stage
.
UseMessaging
"
[
toggleable
]="
true
"
header=
"{{stageMessagesCount(stage)}}
"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-offset-9 col-md-3"
>
<button
class=
"btn btn-primary add-more-btn"
tabindex=
"11
"
<button
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging
"
[
disabled
]="
showLoader
"
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging
"
>
Add
class=
"btn btn-primary add-more-btn"
tabindex=
"11
"
>
Add
Message
</button>
</div>
</div>
<!-- Display Messages here -->
<div
class=
"form-group row
"
*
ngFor=
"let message of stage.WorkFlowMessages
"
>
<div
class=
"col-lg-12 col-md-12
"
*
ngIf=
"message.IsWithdrawalMessage
"
>
<div
*
ngFor=
"let message of stage.WorkFlowMessages
"
class=
"form-group row
"
>
<div
*
ngIf=
"message.IsWithdrawalMessage
"
class=
"col-lg-12 col-md-12
"
>
<h3>
Withdrawal Process
</h3>
</div>
<div
class=
"col-lg-12 col-md-12"
*
ngIf=
"stage.UseMessaging
"
>
<div
*
ngIf=
"stage.UseMessaging"
class=
"col-lg-12 col-md-12
"
>
<div
class=
"col-md-4"
>
<label>
After
</label>
<p-inputMask
name=
"Delay{{message.ObjectID}}
"
class=
"form-control"
[
disabled
]="
showLoader
"
id=
"Delay{{message.ObjectID}}
"
<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
"
(
onFocus
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)"
(
onBlur
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)"
*
ngIf=
"!showDelayLabel('Delay'+message.ObjectID, message)"
mask=
"9?9:99:99"
>
[
disabled
]="
showLoader
"
[
id
]="'
Delay
'+
message
.
ObjectID
"
class=
"form-control"
mask=
"9?9:99:99"
name=
"Delay{{message.ObjectID}}"
>
</p-inputMask>
<div
*
ngIf=
"showDelayLabel('Delay'+message.ObjectID, messag
e)"
(
click
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)
"
>
<div
(
click
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
tru
e
)"
*
ngIf=
"showLabel('Delay'+message.ObjectID) && message.Delay
"
>
<label>
{{message.DelayString}}
</label>
</div>
</div>
<div
class=
"col-md-4"
>
<label
for=
"Variance{{message.ObjectID}}"
>
+/-
</label>
<input
name=
"Variance{{message.ObjectID}}
"
id=
"Variance{{message.ObjectID}}
"
[
(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
type=
"text"
class=
"form-control
"
>
<input
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
[
id
]="'
Variance
'+
message
.
ObjectID
"
class=
"form-control
"
name=
"Variance{{message.ObjectID}}"
type=
"text
"
>
</div>
<div
class=
"col-md-4"
>
<label>
Business Hours only
</label>
<p-checkbox
name=
"BusinessHoursOnly{{message.ObjectID}}
"
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true
"
>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true
"
name=
"BusinessHoursOnly{{message.ObjectID}}
"
>
</p-checkbox>
</div>
</div>
<div
class=
"col-lg-12 col-md-12"
*
ngIf=
"stage.UseMessaging
"
>
<div
*
ngIf=
"stage.UseMessaging"
class=
"col-lg-12 col-md-12
"
>
<div
class=
"col-md-8"
>
<label>
Send
</label>
<p-dropdown
[
options
]="
messageTemplates
"
filter=
"true"
optionLabel=
"TemplateName"
<p-dropdown
(
onChange
)="
showMessageTemplateDialog
($
event
,
message
)"
[(
ngModel
)]="
message
.
MessageTemplate
"
[
autoDisplayFirst
]="
false
"
[
options
]="
messageTemplates
"
filter=
"true"
name=
"messageTemplate{{message.ObjectID}}"
[(
ngModel
)]="
message
.
MessageTemplate
"
(
onChange
)="
showMessageTemplateDialog
($
event
,
message
)"
[
autoDisplayFirst
]="
false
"
>
optionLabel=
"TemplateName"
>
<ng-template
let-message
pTemplate=
"selectedItem"
>
<i
class=
"{{getMessageClass(message.value)}}"
></i>
<span
...
...
@@ -466,13 +473,13 @@
</p-dropdown>
</div>
<div
class=
"col-md-4 text-center"
>
<button
type=
"button"
pButton
label=
" "
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
(
click
)="
configureMessageTemplate
(
message
)
"
></button>
<button
type=
"button"
pButton
label=
"
"
icon=
"ui-icon-close"
[
disabled
]="
showLoader
"
*
ngIf=
"!message.IsWithdrawalMessage"
(
click
)="
removeMessage
(
message
,
stage
)
"
></button>
<button
(
click
)="
configureMessageTemplate
(
message
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
label=
"
"
pButton
type=
"button
"
></button>
<button
(
click
)="
removeMessage
(
message
,
stage
)"
*
ngIf=
"!message.IsWithdrawalMessage"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close"
label=
"
"
pButton
type=
"button
"
></button>
</div>
</div>
</div>
...
...
@@ -482,8 +489,8 @@
<hr/>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<button
class=
"btn btn-primary add-more-btn
"
[
disabled
]="
showLoader
"
(
click
)="
removeStage
(
stage
)
"
>
Remove Stage
<button
(
click
)="
removeStage
(
stage
)
"
[
disabled
]="
showLoader
"
class=
"btn btn-primary add-more-btn
"
>
Remove Stage
</button>
</div>
</div>
...
...
@@ -491,12 +498,15 @@
<!-- 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
filteredStages(false, true)"
toggler=
"header"
[
toggleable
]="
true
"
>
<p-panel
*
ngFor=
"let stage of
postStages"
[
toggleable
]="
true
"
toggler=
"header
"
>
<p-header>
<span
class=
"ui-panel-title"
*
ngIf=
"showStageLabel('StageName'+stage.ObjectID, stage)"
(
click
)="
toggleStageInput
($
event
,
'
StageName
'+
stage
.
ObjectID
,
stage
)"
>
<span
class=
"ui-panel-title"
>
{{getStageHeader(stage)}}
</span>
</p-header>
...
...
@@ -505,7 +515,7 @@
<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>
<label>
Automatically progress to next stage
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
AutoProgress
"
[
disabled
]="
showLoader
"
...
...
@@ -515,7 +525,7 @@
</div>
<div
class=
"form-group row"
>
<div
class=
"ui-g-12 ui-md-6"
>
<label>
Use messaging
</label>
<label>
Use messaging
</label>
</div>
<div
class=
"ui-g-12 ui-md-4"
>
<p-inputSwitch
[(
ngModel
)]="
stage
.
UseMessaging
"
[
disabled
]="
showLoader
"
...
...
@@ -523,61 +533,62 @@
</p-inputSwitch>
</div>
</div>
<p-panel
header=
"{{stageMessagesCount(stage)}}
"
[
toggleable
]="
true
"
[
collapsed
]="!
stage
.
UseMessaging
"
>
<p-panel
[
collapsed
]="!
stage
.
UseMessaging
"
[
toggleable
]="
true
"
header=
"{{stageMessagesCount(stage)}}
"
>
<div
class=
"form-group row"
>
<div
class=
"col-md-offset-9 col-md-3"
>
<button
class=
"btn btn-primary add-more-btn"
tabindex=
"11
"
<button
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging
"
[
disabled
]="
showLoader
"
(
click
)="
addMessage
(
stage
)"
*
ngIf=
"stage.UseMessaging
"
>
Add
class=
"btn btn-primary add-more-btn"
tabindex=
"11
"
>
Add
Message
</button>
</div>
</div>
<!-- Display Messages here -->
<div
class=
"form-group row"
*
ngFor=
"let message of stage.WorkFlowMessages
"
>
<div
class=
"col-lg-12 col-md-12"
*
ngIf=
"message.IsWithdrawalMessage
"
>
<div
*
ngFor=
"let message of stage.WorkFlowMessages"
class=
"form-group row
"
>
<div
*
ngIf=
"message.IsWithdrawalMessage"
class=
"col-lg-12 col-md-12
"
>
<h3>
Withdrawal Process
</h3>
</div>
<div
class=
"col-lg-12 col-md-12"
*
ngIf=
"stage.UseMessaging
"
>
<div
*
ngIf=
"stage.UseMessaging"
class=
"col-lg-12 col-md-12
"
>
<div
class=
"col-md-4"
>
<label>
After
</label>
<p-inputMask
name=
"Delay{{message.ObjectID}}
"
class=
"form-control"
[
disabled
]="
showLoader
"
id=
"Delay{{message.ObjectID}}
"
<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
"
(
onFocus
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)"
(
onBlur
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)"
*
ngIf=
"!showDelayLabel('Delay'+message.ObjectID, message)"
mask=
"9?9:99:99"
>
[
disabled
]="
showLoader
"
class=
"form-control"
id=
"Delay{{message.ObjectID}}"
mask=
"9?9:99:99"
name=
"Delay{{message.ObjectID}}"
>
</p-inputMask>
<div
*
ngIf=
"showDelayLabel('Delay'+message.ObjectID, messag
e)"
(
click
)="
toggleDelayInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
message
)
"
>
<div
(
click
)="
toggleInput
($
event
,
'
Delay
'+
message
.
ObjectID
,
tru
e
)"
*
ngIf=
"showLabel('Delay'+message.ObjectID, message) && message.Delay
"
>
<label>
{{message.DelayString}}
</label>
</div>
</div>
<div
class=
"col-md-4"
>
<label
for=
"Variance{{message.ObjectID}}"
>
+/-
</label>
<input
name=
"Variance{{message.ObjectID}}
"
id=
"Variance{{message.ObjectID}}
"
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
type=
"text"
class=
"form-control
"
>
<input
[(
ngModel
)]="
message
.
Variance
"
[
disabled
]="
showLoader
"
class=
"form-control"
[
id
]="'
Variance
'+
message
.
ObjectID
"
name=
"Variance{{message.ObjectID}}"
type=
"text
"
>
</div>
<div
class=
"col-md-4"
>
<label>
Business Hours only
</label>
<p-checkbox
name=
"BusinessHoursOnly{{message.ObjectID}}
"
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true
"
>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true
"
name=
"BusinessHoursOnly{{message.ObjectID}}
"
>
</p-checkbox>
</div>
</div>
<div
class=
"col-lg-12 col-md-12"
*
ngIf=
"stage.UseMessaging
"
>
<div
*
ngIf=
"stage.UseMessaging"
class=
"col-lg-12 col-md-12
"
>
<div
class=
"col-md-8"
>
<label>
Send
</label>
<p-dropdown
[
options
]="
messageTemplates
"
filter=
"true
"
optionLabel=
"TemplateNam
e"
<p-dropdown
[
(
ngModel
)]="
message
.
MessageTemplate
"
[
options
]="
messageTemplates
"
filter=
"tru
e"
name=
"messageTemplate{{message.ObjectID}}"
[(
ngModel
)]="
message
.
MessageTemplat
e
"
>
optionLabel=
"TemplateNam
e"
>
<ng-template
let-message
pTemplate=
"selectedItem"
>
<i
class=
"{{getMessageClass(message.value)}}"
></i>
<span
class=
"dropdown-text"
>
{{message.label}}
</span>
...
...
@@ -593,13 +604,13 @@
</p-dropdown>
</div>
<div
class=
"col-md-4 text-center"
>
<button
type=
"button"
pButton
label=
" "
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
(
click
)="
configureMessageTemplate
(
message
)
"
></button>
<button
type=
"button"
pButton
label=
" "
[
disabled
]="
showLoader
"
icon=
"ui-icon-close
"
*
ngIf=
"!message.IsWithdrawalMessage"
(
click
)="
removeMessage
(
message
,
stage
)
"
></button>
<button
(
click
)="
configureMessageTemplate
(
message
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
label=
"
"
pButton
type=
"button
"
></button>
<button
(
click
)="
removeMessage
(
message
,
stage
)"
*
ngIf=
"!message.IsWithdrawalMessage"
[
disabled
]="
showLoader
"
icon=
"ui-icon-close
"
label=
"
"
pButton
type=
"button
"
></button>
</div>
</div>
</div>
...
...
@@ -613,20 +624,20 @@
<!-- End Post Stages -->
</div>
</div>
<div
class=
"ui-g
form-group
"
>
<div
class=
"ui-g
ui-fluid
"
>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"text-center form-group"
>
<button
type=
"button"
value=
"Cancel"
class=
"btn btn-primary largeBtn greyBtn
"
[
disabled
]="
showLoader
"
routerLink=
"/admin/list-message-templates
"
>
Cancel
<button
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn greyBtn"
routerLink=
"/admin/list-message-templates
"
type=
"button
"
value=
"Cancel
"
>
Cancel
</button>
<button
*
ngIf=
"showSaveBtn()"
type=
"button"
value=
"Save
"
class=
"btn btn-primary largeBtn"
(
click
)="
saveWorkflowTemplate
()"
[
disabled
]="
showLoader
"
>
<button
(
click
)="
saveWorkflowTemplate
()"
*
ngIf=
"showSaveBtn()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn"
type=
"button"
value=
"Save
"
>
Save
</button>
<button
*
ngIf=
"showSaveCopyBtn()"
type=
"button"
value=
"Save As a Copy
"
<button
(
click
)="
saveWorkflowTemplate
(
true
)"
*
ngIf=
"showSaveCopyBtn()"
[
disabled
]="
showLoader
"
class=
"btn btn-primary largeBtn"
(
click
)="
saveWorkflowTemplate
(
true
)"
[
disabled
]="
showLoader
"
>
type=
"button"
value=
"Save As a Copy
"
>
Save As a Copy
</button>
</div>
...
...
@@ -634,8 +645,8 @@
</div>
</div>
</div>
<p-progressSpinner
*
ngIf=
"showLoader"
></p-progressSpinner>
</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"
>
...
...
frontend/angular/src/app/components/edit-workflow-template/edit-workflow-template.component.scss
View file @
1587f3a0
...
...
@@ -67,3 +67,37 @@ p-inputMask {
.drag-block
{
cursor
:
pointer
;
}
.ml-0
{
margin-left
:
0px
;
}
.templateName
{
font-size
:
24px
;
}
label
{
font-family
:
"Usual-Regular"
;
font-weight
:
300
;
}
.calcField
{
position
:
relative
;
top
:
-5px
;
}
.flex-center
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.panel-header-input
{
width
:
95%
;
display
:
inline-block
;
position
:
relative
;
top
:
-8px
;
background
:
#fff
;
}
frontend/angular/src/app/components/edit-workflow-template/edit-workflow-template.component.ts
View file @
1587f3a0
...
...
@@ -32,9 +32,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
subscriptions
:
Array
<
Subscription
>
=
[];
@
ViewChild
(
'form'
)
form
:
NgForm
;
@
ViewChild
(
'messageTemplateDialog'
)
messageTemplateDialog
:
Dialog
;
createdObjs
;
updatedObjs
;
deletedObjs
;
createdObjs
=
{}
;
updatedObjs
=
{}
;
deletedObjs
=
{}
;
workflow
=
new
WorkflowTemplateModel
();
preStages
:
Array
<
WorkflowStageModel
>
=
[];
...
...
@@ -67,31 +67,26 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
ngOnInit
():
void
{
this
.
createdObjs
=
{};
this
.
updatedObjs
=
{};
this
.
deletedObjs
=
{};
this
.
showLoader
=
true
;
this
.
utilsService
.
resetCounter
();
this
.
startComponent
();
if
(
this
.
adminPortalLayoutService
.
userData
)
{
this
.
initComponent
();
}
else
{
this
.
subscriptions
.
push
(
this
.
adminPortalLayoutService
.
userDataUpdated
.
subscribe
(
()
=>
{
this
.
startComponent
();
.
first
()
.
subscribe
(()
=>
{
this
.
initComponent
();
}));
}
));
}
star
tComponent
():
void
{
ini
tComponent
():
void
{
if
(
!
this
.
adminPortalLayoutService
.
userData
||
this
.
alreadyExists
())
{
return
;
this
.
subscriptions
.
push
(
this
.
activatedRoute
.
params
.
subscribe
((
params
:
Params
)
=>
{
if
(
params
.
id
&&
params
.
id
!==
'0'
)
{
this
.
editMode
=
true
;
}
this
.
subscriptions
.
push
(
this
.
activatedRoute
.
params
.
subscribe
(
(
params
:
Params
)
=>
{
this
.
subscriptions
.
push
(
combineLatest
(
this
.
appService
.
getTypes
(
'StageTypes'
),
...
...
@@ -101,10 +96,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
)
.
subscribe
(
response
=>
{
if
(
this
.
alreadyExists
())
{
return
;
}
this
.
stageTypes
=
response
[
0
];
this
.
stepTypeOptions
=
response
[
1
];
...
...
@@ -116,21 +107,18 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this
.
applicantSources
=
response
[
3
];
if
(
params
.
id
&&
params
.
id
!==
'0'
)
{
this
.
editMode
=
true
;
this
.
getWorkflowTemplateByID
(
params
.
id
);
this
.
stepTypes
=
[...
this
.
stepTypeOptions
];
}
else
{
this
.
editMode
=
false
;
this
.
utilsService
.
createObject
(
this
.
workflow
,
this
.
createdObjs
);
this
.
setDefaults
();
this
.
addDefaultStages
();
this
.
stepTypes
=
[...
this
.
stepTypeOptions
];
this
.
showLoader
=
false
;
}
})
);
}
));
}));
this
.
getMessageTemplates
();
}
...
...
@@ -156,35 +144,27 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
false
,
this
.
workflow
.
ObjectID
);
this
.
utilsService
.
addMultiRefObject
(
stageObject
,
this
.
workflow
,
'WorkFlowStages'
,
this
.
createdObjs
);
});
this
.
reOrderStages
(
this
.
filterStages
(
true
,
true
,
true
)
);
this
.
reOrderStages
();
}
reOrderStages
(
callback
):
void
{
this
.
showLoader
=
true
;
reOrderStages
():
void
{
this
.
workflow
.
WorkFlowStages
.
sort
((
a
,
b
)
=>
a
.
SortOrder
<
b
.
SortOrder
?
-
1
:
a
.
SortOrder
>
b
.
SortOrder
?
1
:
0
);
if
(
callback
)
{
callback
();
}
this
.
showLoader
=
false
;
this
.
filterStages
();
}
isGeneric
(
stage
:
WorkflowStageModel
):
boolean
{
return
!
stage
.
StageType
.
IsPostStage
&&
!
stage
.
StageType
.
IsPreStage
;
}
filterStages
(
pre
=
false
,
generic
=
false
,
post
=
false
):
void
{
if
(
pre
)
{
filterStages
():
void
{
this
.
preStages
=
this
.
filteredStages
(
true
,
false
);
}
if
(
generic
)
{
this
.
genericStages
=
this
.
filteredStages
(
false
,
false
)
.
sort
((
a
,
b
)
=>
a
.
SortOrder
>
b
.
SortOrder
?
-
1
:
a
.
SortOrder
<
b
.
SortOrder
?
1
:
0
);
}
if
(
post
)
{
this
.
postStages
=
this
.
filteredStages
(
false
,
true
);
}
}
showSaveBtn
():
boolean
{
return
this
.
workflow
&&
this
.
workflow
.
ObjectID
?
...
...
@@ -198,55 +178,23 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
getStageHeader
(
stage
:
WorkflowStageModel
):
string
{
return
`
${
stage
.
Name
}
(
${
stage
.
Steps
?
stage
.
Step
s
.
length
:
0
}
)`
;
return
`
${
stage
.
Name
}
(
${
stage
.
WorkFlowMessages
?
stage
.
WorkFlowMessage
s
.
length
:
0
}
)`
;
}
showLabel
(
id
:
string
):
boolean
{
return
(
this
.
editField
[
id
]
===
undefined
||
this
.
editField
[
id
]
===
false
);
}
showStageLabel
(
id
:
string
,
stage
:
WorkflowStageModel
):
boolean
{
if
(
stage
.
StageType
.
IsPreStage
||
stage
.
StageType
.
IsPostStage
)
{
return
true
;
}
else
{
return
this
.
showLabel
(
id
);
}
}
showStageInput
(
id
:
string
,
stage
:
WorkflowStageModel
):
boolean
{
if
(
stage
.
StageType
.
IsPreStage
||
stage
.
StageType
.
IsPostStage
)
{
return
false
;
}
else
{
return
this
.
showInput
(
id
);
}
}
showDelayInput
(
id
:
string
,
message
:
WorkflowMessageModel
):
boolean
{
if
(
!
message
.
Delay
||
message
.
Delay
===
''
)
{
return
true
;
}
else
{
return
this
.
editField
?
(
this
.
editField
[
id
]
?
this
.
editField
[
id
]
:
true
)
:
true
;
}
}
showDelayLabel
(
id
:
string
,
message
:
WorkflowMessageModel
):
boolean
{
if
(
!
message
.
Delay
||
message
.
Delay
===
''
)
{
return
false
;
filteredStages
(
isPreStage
:
boolean
,
isPostStage
:
boolean
):
Array
<
WorkflowStageModel
>
{
if
(
isPreStage
){
return
this
.
workflow
.
WorkFlowStages
.
filter
(
stage
=>
stage
.
StageType
.
IsPreStage
)
}
else
if
(
isPostStage
){
return
this
.
workflow
.
WorkFlowStages
.
filter
(
stage
=>
stage
.
StageType
.
IsPostStage
)
}
else
{
return
this
.
editField
?
!
this
.
editField
[
id
]
:
false
;
return
this
.
workflow
.
WorkFlowStages
.
filter
(
stage
=>
!
stage
.
StageType
.
IsPreStage
&&
!
stage
.
StageType
.
IsPostStage
)
}
}
filteredStages
(
isPreStage
:
boolean
,
isPostStage
:
boolean
):
Array
<
WorkflowStageModel
>
{
return
this
.
workflow
&&
this
.
workflow
.
WorkFlowStages
?
(
(
!
isPreStage
&&
!
isPostStage
)
?
this
.
workflow
.
WorkFlowStages
.
filter
(
stage
=>
!
stage
.
StageType
.
IsPreStage
&&
!
stage
.
StageType
.
IsPostStage
)
:
isPreStage
?
this
.
workflow
.
WorkFlowStages
.
filter
(
stage
=>
stage
.
StageType
.
IsPreStage
)
:
isPostStage
?
this
.
workflow
.
WorkFlowStages
.
filter
(
stage
=>
stage
.
StageType
.
IsPostStage
)
:
[])
:
[];
}
emailResponseSelected
():
boolean
{
return
this
.
workflow
.
ApplicationResponseAction
&&
this
.
workflow
.
ApplicationResponseAction
.
Value
===
'EMAIL_RESPONSE'
;
...
...
@@ -262,13 +210,9 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
}
showInput
(
id
:
string
):
boolean
{
return
this
.
editField
&&
!!
this
.
editField
[
id
];
}
toggleInput
(
event
,
fieldName
):
void
{
toggleInput
(
event
,
fieldName
,
value
):
void
{
this
.
utilsService
.
clearErrorMessages
();
if
(
event
.
type
===
'blur'
)
{
if
(
value
===
false
)
{
if
(
!
this
.
form
.
controls
[
fieldName
].
invalid
)
{
this
.
editField
[
fieldName
]
=
false
;
}
else
{
...
...
@@ -290,63 +234,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
}
toggleStageInput
(
event
,
fieldName
,
stage
:
WorkflowStageModel
):
void
{
this
.
utilsService
.
clearErrorMessages
();
if
(
event
.
type
===
'blur'
)
{
if
(
!
this
.
form
.
controls
[
fieldName
].
invalid
)
{
this
.
editField
[
fieldName
]
=
false
;
}
else
{
this
.
utilsService
.
showAllErrorMessages
();
}
}
else
{
if
(
stage
.
StageType
.
IsPreStage
||
stage
.
StageType
.
IsPostStage
)
{
return
;
}
this
.
editField
[
fieldName
]
=
true
;
setTimeout
(()
=>
{
try
{
document
.
getElementById
(
`
${
fieldName
}
Id`
)
.
focus
();
document
.
getElementById
(
`
${
fieldName
}
Id`
)
.
getElementsByTagName
(
'input'
)[
0
]
.
focus
();
}
catch
(
e
)
{
// ignore this.
}
},
0
);
}
}
toggleDelayInput
(
event
,
fieldName
,
message
:
WorkflowMessageModel
):
void
{
this
.
utilsService
.
clearErrorMessages
();
if
(
event
.
type
===
'blur'
)
{
if
(
!
message
.
Delay
||
message
.
Delay
===
''
)
{
return
;
}
if
(
!
this
.
form
.
controls
[
fieldName
].
invalid
)
{
this
.
editField
[
fieldName
]
=
false
;
this
.
generateDelayString
(
message
);
this
.
sortWorkFlowMessage
();
}
else
{
this
.
utilsService
.
showAllErrorMessages
();
}
}
else
{
this
.
editField
[
fieldName
]
=
true
;
setTimeout
(()
=>
{
try
{
document
.
getElementById
(
`
${
fieldName
}
Id`
)
.
focus
();
document
.
getElementById
(
`
${
fieldName
}
Id`
)
.
getElementsByTagName
(
'input'
)[
0
]
.
focus
();
}
catch
(
e
)
{
// ignore this.
}
},
0
);
}
}
generateDelayString
(
message
:
WorkflowMessageModel
):
void
{
const
delay
=
message
.
Delay
.
replace
(
/_/g
,
''
)
.
split
(
':'
);
...
...
@@ -365,6 +252,8 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
message
.
DelayString
=
`
${
delay
[
0
]}
d:
${
delay
[
1
]}
h:
${
delay
[
2
]}
m`
;
message
.
DelayMinutes
=
parseInt
(
delay
[
0
],
10
)
*
24
*
60
+
parseInt
(
delay
[
1
],
10
)
*
60
+
parseInt
(
delay
[
1
],
10
);
}
this
.
sortWorkFlowMessage
();
}
getMessageTemplates
(
callback
=
null
):
void
{
...
...
@@ -452,28 +341,6 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this
.
displayNewMessageTemplate
=
false
;
}
populateMessageTemplates
(
template
:
MessageTemplateModel
):
void
{
this
.
messageTemplates
.
splice
(
this
.
messageTemplates
.
length
-
1
,
1
);
this
.
messageTemplates
.
push
(
template
);
}
availableStepTypes
():
Array
<
StepTypeEnum
>
{
const
availableStepTypes
=
this
.
stepTypeOptions
;
if
(
this
.
workflow
.
WorkFlowStages
)
{
this
.
workflow
.
WorkFlowStages
.
forEach
(
stage
=>
{
if
(
stage
.
Steps
)
{
stage
.
Steps
.
forEach
(
step
=>
{
if
(
availableStepTypes
.
indexOf
(
step
.
StepType
)
>
-
1
)
{
availableStepTypes
.
slice
(
availableStepTypes
.
indexOf
(
step
.
StepType
),
0
);
}
});
}
});
}
return
availableStepTypes
;
}
stageMessagesCount
(
stage
:
WorkflowStageModel
):
string
{
return
`Message Schedule (
${(
stage
&&
stage
.
WorkFlowMessages
)
?
stage
.
WorkFlowMessages
.
length
:
0
}
)`
;
}
...
...
@@ -536,7 +403,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
const
stage
=
new
WorkflowStageModel
(
`
${
stageType
.
Description
}
Stage`
,
false
,
stageType
,
this
.
getStageOrder
(),
false
,
this
.
workflow
.
ObjectID
);
this
.
utilsService
.
addMultiRefObject
(
stage
,
this
.
workflow
,
'WorkFlowStages'
,
this
.
createdObjs
);
this
.
filterStages
(
false
,
true
,
false
);
this
.
reOrderStages
(
);
}
removeStage
(
stage
:
WorkflowStageModel
):
void
{
...
...
@@ -556,7 +423,7 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
});
}
this
.
reOrderStages
(
this
.
filterStages
(
false
,
true
,
false
)
);
this
.
reOrderStages
();
}
this
.
utilsService
.
removeMultiRefObject
(
stage
,
this
.
workflow
,
'WorkFlowStages'
,
this
.
createdObjs
,
this
.
updatedObjs
,
this
.
deletedObjs
);
...
...
@@ -595,15 +462,20 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
this
.
workflow
=
data
;
this
.
updatedObjs
[
this
.
workflow
.
ObjectID
]
=
this
.
workflow
;
this
.
utilsService
.
addObjsToJSONByObjectID
(
this
.
updatedObjs
,
this
.
workflow
.
WorkFlowStages
);
this
.
workflow
.
WorkFlowStages
=
this
.
workflow
.
WorkFlowStages
||
[];
this
.
workflow
.
WorkFlowStages
.
forEach
(
stage
=>
{
if
(
stage
.
WorkFlowMessages
)
{
this
.
updatedObjs
[
stage
.
ObjectID
]
=
stage
stage
.
Steps
=
stage
.
Steps
||
[];
stage
.
WorkFlowMessages
=
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
.
reOrderStages
();
this
.
showLoader
=
false
;
},
error
=>
{
...
...
@@ -642,9 +514,5 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
}
}
alreadyExists
():
boolean
{
return
Object
.
keys
(
this
.
createdObjs
).
length
>
0
||
Object
.
keys
(
this
.
updatedObjs
).
length
>
0
;
}
// tslint:disable-next-line:max-file-line-count
}
frontend/angular/src/assets/css/common.css
View file @
1587f3a0
...
...
@@ -11953,3 +11953,37 @@ label.select-all-jobs:after {
/*
End of Manage Customer
*/
body
.ui-selectbutton
.ui-button.ui-state-active
{
background-color
:
#667281
!important
;
}
body
.ui-selectbutton
.ui-button
{
background-color
:
#fff
!important
;
}
.ui-selectbutton
.ui-button
span
{
color
:
#000
!important
;
}
.ui-selectbutton
.ui-button.ui-state-active
span
{
color
:
#fff
!important
;
}
.mb-10
{
margin-bottom
:
10px
;
}
body
.ui-button
{
background-color
:
#667281
;
}
body
.ui-widget-header
{
background-color
:
#667281
;
border
:
1px
solid
#667281
;
}
body
.ui-dropdown-panel
.ui-dropdown-filter-container
{
background-color
:
#667281
;
}
frontend/angular/src/assets/css/custom.scss
View file @
1587f3a0
...
...
@@ -129,7 +129,7 @@
}
.ui-panel-content
{
background-color
:
#F5F7F8
;
background-color
:
white
;
padding
:
65px
10
.5%
!
important
;
}
}
...
...
@@ -139,14 +139,15 @@
/* Overriding switch input styles */
.ui-inputswitch-slider
:before
{
height
:
1
7
px
!
important
;
width
:
1
7
px
!
important
;
left
:
3
px
!
important
;
height
:
1
6
px
!
important
;
width
:
1
8
px
!
important
;
left
:
4
px
!
important
;
background
:
white
;
top
:
2px
;
}
.ui-inputswitch
{
height
:
2
2
px
!
important
;
height
:
2
0
px
!
important
;
width
:
40px
!
important
!
important
;
border-color
:
#667281
!
important
;
background-color
:
#667281
!
important
;
...
...
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