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
a2f964f6
Commit
a2f964f6
authored
Nov 28, 2019
by
GD-A-150752
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug-Fix
+ S52549430 #UI Issues + S52559620 #Time field behavior expectations
parent
2b1f009a
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
333 additions
and
141 deletions
+333
-141
app.routing.ts
frontend/angular/src/app/app.routing.ts
+4
-0
edit-message-template.component.html
...dit-message-template/edit-message-template.component.html
+4
-4
edit-workflow-template.component.html
...t-workflow-template/edit-workflow-template.component.html
+16
-9
edit-workflow-template.component.scss
...t-workflow-template/edit-workflow-template.component.scss
+5
-0
edit-workflow-template.component.ts
...dit-workflow-template/edit-workflow-template.component.ts
+5
-0
list-message-template.component.html
...ist-message-template/list-message-template.component.html
+4
-4
list-work-flows.component.html
...min-portal/list-work-flows/list-work-flows.component.html
+4
-4
message-engine-applicant-view.component.html
...plicant-view/message-engine-applicant-view.component.html
+61
-105
message-engine-applicant-view.component.scss
...plicant-view/message-engine-applicant-view.component.scss
+24
-0
message-engine-applicant-view.component.ts
...applicant-view/message-engine-applicant-view.component.ts
+16
-5
constants.ts
frontend/angular/src/app/constants.ts
+4
-1
chat-attachment.model.ts
frontend/angular/src/app/models/chat-attachment.model.ts
+9
-0
job-application.model.ts
frontend/angular/src/app/models/job-application.model.ts
+35
-0
message.model.ts
frontend/angular/src/app/models/message.model.ts
+17
-0
sent-via.enum.ts
frontend/angular/src/app/models/sent-via.enum.ts
+6
-0
custom.scss
frontend/angular/src/assets/css/custom.scss
+119
-9
No files found.
frontend/angular/src/app/app.routing.ts
View file @
a2f964f6
...
@@ -109,6 +109,10 @@ export const routes: Routes = [
...
@@ -109,6 +109,10 @@ export const routes: Routes = [
{
{
path
:
'home'
,
path
:
'home'
,
component
:
HomeComponent
component
:
HomeComponent
},
{
path
:
'message-engine'
,
component
:
MessageEngineApplicantViewComponent
}
}
]
]
}
}
...
...
frontend/angular/src/app/components/admin-portal/edit-message-template/edit-message-template.component.html
View file @
a2f964f6
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
{{editMode ? "Edit" : "Add"}} Message Template
{{editMode ? "Edit" : "Add"}} Message Template
</div>
</div>
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g form-group
bg-white message-template-form
"
>
<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=
"col-md-6"
>
<div
class=
"col-md-6"
>
...
@@ -84,12 +84,12 @@
...
@@ -84,12 +84,12 @@
</p-editor>
</p-editor>
<textarea
id=
"messageContentTxtAreaId"
*
ngIf=
"smsTemplateType()"
pInputTextarea
<textarea
id=
"messageContentTxtAreaId"
*
ngIf=
"smsTemplateType()"
pInputTextarea
[(
ngModel
)]="
messageTemplate
.
MessageContent
"
[(
ngModel
)]="
messageTemplate
.
MessageContent
"
name=
"MessageContent"
name=
"MessageContent"
class=
"form-control textarea-box"
fieldLabel=
"Message Content"
style=
"width: 100%;max-width: 100%;"
fieldLabel=
"Message Content"
placeholder=
"Message Content"
></textarea>
placeholder=
"Message Content"
></textarea>
</div>
</div>
</div>
</div>
<div
class=
"ui-g
form-group
"
>
<div
class=
"ui-g"
>
<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"
...
...
frontend/angular/src/app/components/admin-portal/edit-workflow-template/edit-workflow-template.component.html
View file @
a2f964f6
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
</p-dialog>
</p-dialog>
<div
class=
"ui-g-12 ui-g-offset-3 ui-md-6 h-60 text-center 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')"
<label
(
click
)="
toggleInput
($
event
,
'
TemplateName
',
true
)"
*
ngIf=
"showLabel('TemplateName')"
for=
"TemplateNameId"
>
{{workflow.TemplateName}}
</label>
for=
"TemplateNameId"
class=
"editable"
>
{{workflow.TemplateName}}
</label>
<input
(
blur
)="
toggleInput
($
event
,
'
TemplateName
',
false
)"
*
ngIf=
"!showLabel('TemplateName')"
<input
(
blur
)="
toggleInput
($
event
,
'
TemplateName
',
false
)"
*
ngIf=
"!showLabel('TemplateName')"
[(
ngModel
)]="
workflow
.
TemplateName
"
[
disabled
]="
showLoader
"
[(
ngModel
)]="
workflow
.
TemplateName
"
[
disabled
]="
showLoader
"
class=
"form-control"
id=
"TemplateNameId"
class=
"form-control"
id=
"TemplateNameId"
...
@@ -210,6 +210,10 @@
...
@@ -210,6 +210,10 @@
</div>
</div>
<div
class=
"ui-g-12 ui-md-12"
></div>
<div
class=
"ui-g-12 ui-md-12"
></div>
</div>
</div>
<div
class=
"separator"
></div>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12 ui-md-12"
></div>
</div>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12"
>
<div
class=
"ui-g-12"
>
<!-- Start Post Stages -->
<!-- Start Post Stages -->
...
@@ -393,13 +397,13 @@
...
@@ -393,13 +397,13 @@
<label>
{{message.VarianceString}}
</label>
<label>
{{message.VarianceString}}
</label>
</div>
</div>
</div>
</div>
<div
class=
"col-md-2"
>
<div
class=
"col-md-2 business-hours"
>
<label
title=
"Business Hours only"
class=
"mb-0"
>
Business Hours
only
</label>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true"
binary=
"true"
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
</p-checkbox>
</p-checkbox>
<label
title=
"Business Hours only"
class=
"mb-0"
>
Business Hours
only
</label>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"col-md-3"
>
<label>
Send
</label>
<label>
Send
</label>
...
@@ -438,7 +442,10 @@
...
@@ -438,7 +442,10 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"ui-g"
>
<div
class=
"separator"
>
</div>
</div>
<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=
"ui-g ui-g-3"
>
class=
"ui-g ui-g-3"
>
...
@@ -480,13 +487,13 @@
...
@@ -480,13 +487,13 @@
<label>
{{message.VarianceString}}
</label>
<label>
{{message.VarianceString}}
</label>
</div>
</div>
</div>
</div>
<div
class=
"col-md-2"
>
<div
class=
"col-md-3 business-hours"
>
<label
title=
"Business Hours only"
class=
"mb-0"
>
Business Hours
only
</label>
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
<p-checkbox
[(
ngModel
)]="
message
.
BusinessHoursOnly
"
binary=
"true"
binary=
"true"
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
name=
"BusinessHoursOnly{{message.ObjectID}}"
>
</p-checkbox>
</p-checkbox>
<label
title=
"Business Hours only"
class=
"mb-0"
>
Business Hours
only
</label>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"col-md-4"
>
<label>
Send
</label>
<label>
Send
</label>
...
@@ -512,7 +519,7 @@
...
@@ -512,7 +519,7 @@
</ng-template>
</ng-template>
</p-dropdown>
</p-dropdown>
</div>
</div>
<div
class=
"col-md-
2
text-center"
>
<div
class=
"col-md-
1
text-center"
>
<button
(
click
)="
configureMessageTemplate
(
message
)"
<button
(
click
)="
configureMessageTemplate
(
message
)"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
[
disabled
]="
showLoader
"
icon=
"ui-icon-settings"
pButton
pButton
...
...
frontend/angular/src/app/components/admin-portal/edit-workflow-template/edit-workflow-template.component.scss
View file @
a2f964f6
...
@@ -112,3 +112,8 @@ label {
...
@@ -112,3 +112,8 @@ label {
.disable-drop
{
.disable-drop
{
pointer-events
:
none
;
pointer-events
:
none
;
}
}
.business-hours
{
display
:
flex
;
margin-top
:
43px
;
}
frontend/angular/src/app/components/admin-portal/edit-workflow-template/edit-workflow-template.component.ts
View file @
a2f964f6
...
@@ -303,15 +303,20 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
...
@@ -303,15 +303,20 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
.
split
(
':'
);
.
split
(
':'
);
delay
[
0
]
=
delay
[
0
]
||
''
;
delay
[
0
]
=
delay
[
0
]
||
''
;
delay
[
0
]
=
delay
[
0
]
!==
'00'
?
delay
[
0
]
:
''
;
delay
[
1
]
=
delay
[
1
]
||
''
;
delay
[
1
]
=
delay
[
1
]
||
''
;
delay
[
1
]
=
delay
[
1
]
!==
'00'
?
delay
[
1
]
:
''
;
delay
[
2
]
=
delay
[
2
]
||
''
;
delay
[
2
]
=
delay
[
2
]
||
''
;
delay
[
2
]
=
delay
[
2
]
!==
'00'
?
delay
[
2
]
:
''
;
if
(
delay
[
1
]
===
''
&&
delay
[
2
]
===
''
)
{
if
(
delay
[
1
]
===
''
&&
delay
[
2
]
===
''
)
{
message
.
DelayString
=
`
${
delay
[
0
]}
m`
;
message
.
DelayString
=
`
${
delay
[
0
]}
m`
;
message
.
DelayMinutes
=
parseInt
(
delay
[
0
],
10
);
message
.
DelayMinutes
=
parseInt
(
delay
[
0
],
10
);
message
.
Delay
=
`00:00:
${
delay
[
0
]}
`
;
}
else
if
(
delay
[
2
]
===
''
)
{
}
else
if
(
delay
[
2
]
===
''
)
{
message
.
DelayString
=
`
${
delay
[
0
]}
h:
${
delay
[
1
]}
m`
;
message
.
DelayString
=
`
${
delay
[
0
]}
h:
${
delay
[
1
]}
m`
;
message
.
DelayMinutes
=
parseInt
(
delay
[
0
],
10
)
*
60
+
parseInt
(
delay
[
1
],
10
);
message
.
DelayMinutes
=
parseInt
(
delay
[
0
],
10
)
*
60
+
parseInt
(
delay
[
1
],
10
);
message
.
Delay
=
`00:
${
delay
[
0
]}
:
${
delay
[
1
]}
`
;
}
else
{
}
else
{
message
.
DelayString
=
`
${
delay
[
0
]}
d:
${
delay
[
1
]}
h:
${
delay
[
2
]}
m`
;
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
);
message
.
DelayMinutes
=
parseInt
(
delay
[
0
],
10
)
*
24
*
60
+
parseInt
(
delay
[
1
],
10
)
*
60
+
parseInt
(
delay
[
1
],
10
);
...
...
frontend/angular/src/app/components/admin-portal/list-message-template/list-message-template.component.html
View file @
a2f964f6
...
@@ -6,8 +6,8 @@
...
@@ -6,8 +6,8 @@
<div
class=
"ui-g-4"
>
<div
class=
"ui-g-4"
>
<a
routerLink=
"/admin/edit-message-template"
class=
"add-more-btn"
>
Add Message Template
</a>
<a
routerLink=
"/admin/edit-message-template"
class=
"add-more-btn"
>
Add Message Template
</a>
</div>
</div>
<div
class=
"
shor
ting-dropdown"
>
<div
class=
"
lis
ting-dropdown"
>
<
div
class=
"order-label"
>
order by
</div
>
<
span
class=
"order-label mr-0"
>
order by
</span
>
<app-select-2
[
data
]="
sortOptions
"
[
value
]="
sortOptions
[
0
]"
fieldLabel=
"description"
<app-select-2
[
data
]="
sortOptions
"
[
value
]="
sortOptions
[
0
]"
fieldLabel=
"description"
(
valChange
)="
sortMessageTemplates
($
event
)"
>
(
valChange
)="
sortMessageTemplates
($
event
)"
>
</app-select-2>
</app-select-2>
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
<div
class=
"main-client-list"
>
<div
class=
"main-client-list"
>
<div
class=
"template-list"
*
ngFor=
"let message of myTemplates"
id=
"{{message.ObjectID}}"
>
<div
class=
"template-list"
*
ngFor=
"let message of myTemplates"
id=
"{{message.ObjectID}}"
>
<div
class=
"template-row"
>
<div
class=
"template-row"
>
<div
class=
"job-template-left w-80 job-template-cl1 "
>
<div
class=
"job-template-left w-80 job-template-cl1
no-border
"
>
<div
class=
"template-name heading"
>
<div
class=
"template-name heading"
>
<span
class=
"calcField"
<span
class=
"calcField"
(
click
)="
onRowSelect
(
message
)"
>
{{message.TemplateName}}
</span>
(
click
)="
onRowSelect
(
message
)"
>
{{message.TemplateName}}
</span>
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
<div
class=
"main-client-list"
>
<div
class=
"main-client-list"
>
<div
class=
"template-list"
*
ngFor=
"let message of sharedTemplates"
id=
"{{message.ObjectID}}"
>
<div
class=
"template-list"
*
ngFor=
"let message of sharedTemplates"
id=
"{{message.ObjectID}}"
>
<div
class=
"template-row"
>
<div
class=
"template-row"
>
<div
class=
"job-template-left w-80 job-template-cl1 "
>
<div
class=
"job-template-left w-80 job-template-cl1
no-border
"
>
<div
class=
"template-name heading"
>
<div
class=
"template-name heading"
>
<span
class=
"calcField"
<span
class=
"calcField"
(
click
)="
onRowSelect
(
message
)"
>
{{message.TemplateName}}
</span>
(
click
)="
onRowSelect
(
message
)"
>
{{message.TemplateName}}
</span>
...
...
frontend/angular/src/app/components/admin-portal/list-work-flows/list-work-flows.component.html
View file @
a2f964f6
...
@@ -6,8 +6,8 @@
...
@@ -6,8 +6,8 @@
<div
class=
"ui-g-4"
>
<div
class=
"ui-g-4"
>
<a
routerLink=
"/admin/edit-workflow-template"
class=
"add-more-btn"
>
Add Workflow Template
</a>
<a
routerLink=
"/admin/edit-workflow-template"
class=
"add-more-btn"
>
Add Workflow Template
</a>
</div>
</div>
<div
class=
"
shor
ting-dropdown"
>
<div
class=
"
lis
ting-dropdown"
>
<
div
class=
"order-label"
>
order by
</div
>
<
span
class=
"order-label mr-0"
>
order by
</span
>
<app-select-2
[
data
]="
sortOptions
"
[
value
]="
sortOptions
[
0
]"
fieldLabel=
"description"
<app-select-2
[
data
]="
sortOptions
"
[
value
]="
sortOptions
[
0
]"
fieldLabel=
"description"
(
valChange
)="
sortWorkFlowTemplates
($
event
)"
>
(
valChange
)="
sortWorkFlowTemplates
($
event
)"
>
</app-select-2>
</app-select-2>
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
<div
class=
"main-client-list"
>
<div
class=
"main-client-list"
>
<div
class=
"template-list"
*
ngFor=
"let workflow of myTemplates"
id=
"{{workflow.ObjectID}}"
>
<div
class=
"template-list"
*
ngFor=
"let workflow of myTemplates"
id=
"{{workflow.ObjectID}}"
>
<div
class=
"template-row"
>
<div
class=
"template-row"
>
<div
class=
"job-template-left w-80 job-template-cl1 "
>
<div
class=
"job-template-left w-80 job-template-cl1
no-border
"
>
<div
class=
"template-name heading"
>
<div
class=
"template-name heading"
>
<span
class=
"calcField"
<span
class=
"calcField"
(
click
)="
onRowSelect
(
workflow
)"
>
{{workflow.TemplateName}}
</span>
(
click
)="
onRowSelect
(
workflow
)"
>
{{workflow.TemplateName}}
</span>
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
<div
class=
"main-client-list"
>
<div
class=
"main-client-list"
>
<div
class=
"template-list"
*
ngFor=
"let workflow of sharedTemplates"
id=
"{{workflow.ObjectID}}"
>
<div
class=
"template-list"
*
ngFor=
"let workflow of sharedTemplates"
id=
"{{workflow.ObjectID}}"
>
<div
class=
"template-row"
>
<div
class=
"template-row"
>
<div
class=
"job-template-left w-80 job-template-cl1 "
>
<div
class=
"job-template-left w-80 job-template-cl1
no-border
"
>
<div
class=
"template-name heading"
>
<div
class=
"template-name heading"
>
<span
class=
"calcField"
<span
class=
"calcField"
(
click
)="
onRowSelect
(
workflow
)"
>
{{workflow.TemplateName}}
</span>
(
click
)="
onRowSelect
(
workflow
)"
>
{{workflow.TemplateName}}
</span>
...
...
frontend/angular/src/app/components/message-engine-applicant-view/message-engine-applicant-view.component.html
View file @
a2f964f6
<form
#
form=
"ngForm"
>
<div
class=
"dashboard-content-area second-part {{embedded ? 'openedFromWorkflow' : '' }}"
>
<form
#
form=
"ngForm"
>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-12 nopad"
>
<div
class=
"first-part w-100"
>
<p-toolbar>
<div
class=
"officer-name"
>
<div
class=
"ui-toolbar-group-left"
>
<div
class=
"chief-officer"
>
Mine Manager- Lone Star Gold
<a
[
routerLink
]="['/
admin
/
list-message-templates
']"
class=
"arrow-btn-blue"
*
ngIf=
"!embedded"
>
<img
src=
"assets/images/arrow-left-prev_blue.svg"
>
</a>
<a
href=
"#"
>
<span
class=
"calcField"
>
Mine Manager
</span>
<span
class=
"ref-no"
>
(
<span
class=
"calcField"
>
Lone Star Gold
</span>
)
</span>
</a>
</div>
</div>
<div
class=
"ui-toolbar-group-right actionBtn"
>
<button
pButton
type=
"button"
label=
""
icon=
"ui-icon-"
></button>
</div>
</div>
</p-toolbar>
</div>
</div>
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g
-12 ui-md-12
"
>
<div
class=
"ui-g
ui-fluid
"
>
<div
class=
"ui-g
form-group
"
>
<div
class=
"ui-g
-10 message-block
"
>
<div
class=
"ui-g-12 ui-md-1"
>
<div
class=
"ui-g-12 ui-md-1
name other
"
>
<label>
M
</label>
<label>
Martin
</label>
</div>
</div>
<div
class=
"ui-g-12 ui-md-9"
>
<div
class=
"ui-g-12 ui-md-11"
>
<label>
Hi John,
</label><br/>
<div>
<label>
Hi John,
</label><br>
<label>
Thanks for applying. Please click on the following link to complete your
<label>
Thanks for applying. Please click on the following link to complete your
application.
</label><br/>
application.
</label><br>
<a
href=
"#"
class=
" data-link "
style=
""
data-fielduid=
"4b7f9f1e27010d23b5c5"
<a
class=
" data-link "
data-elementid=
"httpsbitly2aBi0jj"
data-fielduid=
"4b7f9f1e27010d23b5c5"
data-elementID=
"httpsbitly2aBi0jj"
>
https://bit.ly/2aBi0jj
</a><br/>
href=
"#"
style=
""
>
https://bit.ly/2aBi0jj
</a><br>
<div
class=
"ui-g form-group"
>
</div>
<div
class=
"ui-g-12 ui-md-5"
>
<div
class=
"ui-g"
>
<div
class=
"ui-g-12 ui-md-5 pb-0"
>
<label>
via Email
</label>
<label>
via Email
</label>
</div>
</div>
<div
class=
"ui-g-12 ui-md-7"
>
<div
class=
"ui-g-12 ui-md-7
pb-0
"
>
<label>
01/03/2019 11:43am
</label>
<label>
01/03/2019 11:43am
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"ui-g-offset-2 ui-g-10 message-block"
>
</div>
<div
class=
"ui-g-10 ui-md-11"
>
<div
class=
"ui-g form-group"
>
<label>
Hi John,
</label><br>
<div
class=
"ui-g-12 ui-md-1"
>
<label>
Thanks for applying. Please click on the following link to complete your
</div>
application.
</label><br>
</div>
<a
class=
" data-link "
data-elementid=
"httpsbitly2aBi0jj"
data-fielduid=
"4b7f9f1e27010d23b5c5"
<div
class=
"ui-g form-group"
>
href=
"#"
style=
""
>
https://bit.ly/2aBi0jj
</a><br>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"ui-g"
>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-2"
>
</div>
<div
class=
"ui-g-12 ui-md-9"
>
<label>
Hi
</label><br/>
<label>
I have updated my details.
</label><br/>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-5"
>
<label>
via App
</label>
</div>
<div
class=
"ui-g-12 ui-md-7"
>
<label>
05/03/2019 02:39pm
</label>
</div>
</div>
</div>
<div
class=
"ui-g-12 ui-md-1"
>
<label>
J
</label>
</div>
</div>
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-1"
>
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-12"
>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-1"
>
<label>
M
</label>
</div>
<div
class=
"ui-g-12 ui-md-9"
>
<label>
Hi John,
</label><br/>
<label>
Thanks for for completing your application
</label><br/>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-5"
>
<div
class=
"ui-g-12 ui-md-5"
>
<label>
via
SMS
</label>
<label>
via
Email
</label>
</div>
</div>
<div
class=
"ui-g-12 ui-md-7"
>
<div
class=
"ui-g-12 ui-md-7"
>
<label>
08/03/2019 03:15pm
</label>
<label>
01/03/2019 11:43am
</label>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-1"
>
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-11"
>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-11"
>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-1 ui-fluid"
>
<i
class=
"fa fa fa-bold "
style=
""
data-fielduid=
"4e2d86417c490daa4d82"
></i>
</div>
<div
class=
"ui-g-12 ui-md-1 ui-fluid"
>
<i
class=
"fa fa fa-italic "
style=
""
data-fielduid=
"4c7d84047c2d8cb20bb3"
></i>
</div>
<div
class=
"ui-g-12 ui-md-1 ui-fluid"
>
<i
class=
"fa fa fa-underline "
style=
""
data-fielduid=
"4c35a64bbd878e1bbd2a"
></i>
</div>
</div>
</div>
</div>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-11 ui-fluid"
>
<textarea
[(
ngModel
)]="
engineApplicantView
.
ComposeSection
"
name=
"ComposeSection{{engineApplicantView.ObjectID}}"
fieldLabel=
"Compose Section"
pInputTextarea
autoResize=
"autoResize"
></textarea>
</div>
</div>
<div
class=
"ui-g-12 ui-md-1"
>
<div
class=
"ui-g form-group"
>
<div
class=
"ui-g-12 ui-md-6 ui-fluid"
>
<i
class=
"fa fa fa-paperclip fa-lg "
style=
""
data-fielduid=
"4875a2129633b42c96b3"
></i>
</div>
</div>
</div>
</div>
<div
class=
"ui-g-12 ui-md-1 name owner"
>
<label>
Martin
</label>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"ui-g-12 ui-md-1"
>
<p-button
label=
""
></p-button>
<div
class=
"ui-g ui-fluid"
>
<div
class=
"ui-g-10"
>
<p-editor
#
message
>
<p-header>
<span
class=
"ql-formats"
>
<button
class=
"ql-bold"
aria-label=
"Bold"
></button>
<button
class=
"ql-italic"
aria-label=
"Italic"
></button>
<button
class=
"ql-underline"
aria-label=
"Underline"
></button>
</span>
<span
class=
"ql-formats"
>
<button
class=
"ql-list"
aria-label=
"Bullet"
value=
"bullet"
></button>
<button
class=
"ql-link"
aria-label=
"Link"
></button>
</span>
</p-header>
</p-editor>
</div>
<div
class=
"ui-g-2"
>
<button
class=
"btn btn-primary add-more-btn"
>
Send
</button>
</div>
</div>
</div>
</div>
<p-progressSpinner
*
ngIf=
"showLoader"
></p-progressSpinner>
<p-progressSpinner
*
ngIf=
"showLoader"
></p-progressSpinner>
</form>
</form>
</div>
frontend/angular/src/app/components/message-engine-applicant-view/message-engine-applicant-view.component.scss
0 → 100644
View file @
a2f964f6
.message-block
{
background-color
:
white
;
border-radius
:
20px
;
-webkit-box-shadow
:
inset
0
0
5px
0
rgba
(
0
,
0
,
0
,
0
.08
);
box-shadow
:
inset
0
0
5px
0
rgba
(
0
,
0
,
0
,
0
.08
);
border
:
solid
1px
#dbdbdf
;
margin-top
:
5px
;
padding-bottom
:
0
!
important
;
.name
{
height
:
95%
;
background
:
rgba
(
1
,
1
,
1
,
0
.1
);
&
.owner
{
border-top-right-radius
:
12px
;
border-bottom-right-radius
:
12px
;
}
&
.other
{
border-top-left-radius
:
12px
;
border-bottom-left-radius
:
12px
;
}
}
}
frontend/angular/src/app/components/message-engine-applicant-view/message-engine-applicant-view.component.ts
View file @
a2f964f6
import
{
Component
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
Component
,
Input
,
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
{
Editor
}
from
"primeng/editor"
;
import
{
Subscription
}
from
'rxjs/Subscription'
;
import
{
Subscription
}
from
'rxjs/Subscription'
;
import
{
AppService
}
from
'../../app.service'
;
import
{
AppService
}
from
'../../app.service'
;
import
{
IframeMsgHandlingService
}
from
"../../oneit/services/iframe-msg-handling.service"
;
import
{
IframeMsgHandlingService
}
from
'../../oneit/services/iframe-msg-handling.service'
;
import
{
SaveService
}
from
'../../oneit/services/save.service'
;
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
{
BaseComponent
}
from
'../admin-portal/base/base.component'
;
import
{
BaseComponent
}
from
'../admin-portal/base/base.component'
;
import
{
MessageEngineApplicantViewService
}
from
'./message-engine-applicant-view.service'
;
import
{
MessageEngineApplicantViewService
}
from
'./message-engine-applicant-view.service'
;
...
@@ -14,12 +16,15 @@ import { EngineApplicantView } from './message-engine-applicant-view.model';
...
@@ -14,12 +16,15 @@ import { EngineApplicantView } from './message-engine-applicant-view.model';
@
Component
({
@
Component
({
selector
:
'app-message-engine-applicant-view'
,
selector
:
'app-message-engine-applicant-view'
,
templateUrl
:
'./message-engine-applicant-view.component.html'
templateUrl
:
'./message-engine-applicant-view.component.html'
,
styleUrls
:
[
'./message-engine-applicant-view.component.scss'
]
})
})
export
class
MessageEngineApplicantViewComponent
extends
BaseComponent
implements
OnInit
{
export
class
MessageEngineApplicantViewComponent
extends
BaseComponent
implements
OnInit
{
@
Input
()
embedded
=
false
;
subscriptions
:
Array
<
Subscription
>
=
[];
subscriptions
:
Array
<
Subscription
>
=
[];
@
ViewChild
(
'form'
)
form
:
NgForm
;
@
ViewChild
(
'form'
)
form
:
NgForm
;
@
ViewChild
(
'message'
)
message
:
Editor
;
createdObjs
=
{};
createdObjs
=
{};
updatedObjs
=
{};
updatedObjs
=
{};
deletedObjs
=
{};
deletedObjs
=
{};
...
@@ -34,14 +39,16 @@ export class MessageEngineApplicantViewComponent extends BaseComponent implement
...
@@ -34,14 +39,16 @@ export class MessageEngineApplicantViewComponent extends BaseComponent implement
private
saveService
:
SaveService
,
private
saveService
:
SaveService
,
private
appService
:
AppService
,
private
appService
:
AppService
,
private
messageEngineApplicantViewService
:
MessageEngineApplicantViewService
,
private
messageEngineApplicantViewService
:
MessageEngineApplicantViewService
,
private
iframeMsgHandlingService
:
IframeMsgHandlingService
private
iframeMsgHandlingService
:
IframeMsgHandlingService
,
private
adminPortalLayoutService
:
AdminPortalLayoutService
)
{
)
{
super
(
utilsService
);
super
(
utilsService
);
}
}
ngOnInit
():
void
{
ngOnInit
():
void
{
this
.
utilsService
.
resetCounter
();
this
.
utilsService
.
resetCounter
();
this
.
message
.
getQuill
().
container
.
addClass
(
'form-control'
);
this
.
showLoader
=
true
;
this
.
subscriptions
.
push
(
this
.
activatedRoute
.
params
this
.
subscriptions
.
push
(
this
.
activatedRoute
.
params
.
subscribe
(
.
subscribe
(
(
params
:
Params
)
=>
{
(
params
:
Params
)
=>
{
...
@@ -56,6 +63,10 @@ export class MessageEngineApplicantViewComponent extends BaseComponent implement
...
@@ -56,6 +63,10 @@ export class MessageEngineApplicantViewComponent extends BaseComponent implement
));
));
}
}
initComponent
():
void
{
}
getEngineApplicantViewByID
(
id
):
void
{
getEngineApplicantViewByID
(
id
):
void
{
this
.
showLoader
=
true
;
this
.
showLoader
=
true
;
...
...
frontend/angular/src/app/constants.ts
View file @
a2f964f6
...
@@ -7,7 +7,10 @@ export const CLASSES = {
...
@@ -7,7 +7,10 @@ export const CLASSES = {
WORKFLOW_TEMPLATE
:
'performa.orm.WorkFlowTemplate'
,
WORKFLOW_TEMPLATE
:
'performa.orm.WorkFlowTemplate'
,
WORKFLOW_MESSAGE
:
'performa.orm.WorkFlowMessage'
,
WORKFLOW_MESSAGE
:
'performa.orm.WorkFlowMessage'
,
WORKFLOW_STAGE
:
'performa.orm.WorkFlowStage'
,
WORKFLOW_STAGE
:
'performa.orm.WorkFlowStage'
,
WORKFLOW_STEP
:
'performa.orm.WorkFlowStep'
WORKFLOW_STEP
:
'performa.orm.WorkFlowStep'
,
JOB_APPLICATION
:
'class performa.orm.JobApplication'
,
MESSAGE
:
'performa.orm.Message'
,
CHAT_ATTACHMENT
:
'performa.orm.ChatAttachment'
};
};
export
const
SERVICES
=
{
export
const
SERVICES
=
{
...
...
frontend/angular/src/app/models/chat-attachment.model.ts
0 → 100644
View file @
a2f964f6
import
{
CLASSES
}
from
'../constants'
;
import
{
MessageModel
}
from
'./message.model'
;
export
class
ChatAttachmentModel
{
ObjectID
:
string
;
ObjectClass
=
CLASSES
.
CHAT_ATTACHMENT
;
File
:
string
;
Message
:
MessageModel
;
}
frontend/angular/src/app/models/job-application.model.ts
0 → 100644
View file @
a2f964f6
import
{
CLASSES
}
from
'../constants'
;
import
{
ApplicantSourcesEnum
}
from
'./applicant-sources.enum'
;
import
{
ApplicationStatusEnum
}
from
'./application-status.enum'
;
import
{
MessageModel
}
from
'./message.model'
;
import
{
WorkflowStageModel
}
from
'./workflow-stage.model'
;
export
class
JobApplicationModel
{
ObjectID
:
string
;
ObjectClass
=
CLASSES
.
JOB_APPLICATION
;
id
:
string
;
CV
:
string
;
CoverLetter
:
string
;
ApplicationStatus
:
ApplicationStatusEnum
;
SubmittedDate
:
string
;
GoogleAddressText
:
string
;
PreferRemote
:
boolean
;
HappyToRelocate
:
boolean
;
IsEmailIngest
:
boolean
;
ApplicantSource
:
ApplicantSourcesEnum
;
AppProcessOption
:
string
;
OverallRank
:
number
;
RoleFit
:
string
;
RequirementFit
:
string
;
CultureFit
:
string
;
FactorScoreDetails
:
string
;
Note
:
string
;
Candidate
:
string
;
Job
:
string
;
WorkFlowStage
:
WorkflowStageModel
;
AssessmentCriteriaAnswers
:
string
;
Notes
:
string
;
ScheduledEmails
:
string
;
SentEmails
:
string
;
Messages
:
Array
<
MessageModel
>
;
}
frontend/angular/src/app/models/message.model.ts
0 → 100644
View file @
a2f964f6
import
{
CLASSES
}
from
'../constants'
;
import
{
ChatAttachmentModel
}
from
'./chat-attachment.model'
;
import
{
JobApplicationModel
}
from
'./job-application.model'
;
import
{
SentViaEnum
}
from
'./sent-via.enum'
;
import
{
WorkflowMessageModel
}
from
'./workflow-message.model'
;
export
class
MessageModel
{
ObjectID
:
string
;
ObjectClass
=
CLASSES
.
MESSAGE
;
SentVia
:
SentViaEnum
;
MessageContent
:
string
;
IsRead
:
boolean
;
SentBy
:
string
;
WorkFlowMessage
:
WorkflowMessageModel
;
JobApplication
:
JobApplicationModel
;
Attachments
:
ChatAttachmentModel
;
}
frontend/angular/src/app/models/sent-via.enum.ts
0 → 100644
View file @
a2f964f6
export
class
SentViaEnum
{
Name
:
string
;
Value
:
string
;
Description
:
string
;
Disabled
:
boolean
;
}
frontend/angular/src/assets/css/custom.scss
View file @
a2f964f6
...
@@ -4,6 +4,40 @@
...
@@ -4,6 +4,40 @@
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
.listing-dropdown
{
display
:
flex
;
width
:
35%
;
box-sizing
:
border-box
;
padding
:
.5em
;
float
:
right
;
span
{
width
:
25%
;
align-self
:
center
;
}
app-select-2
{
width
:
75%
;
}
}
.select2-selection__rendered
{
width
:
100%
!
important
;
}
.select2-selection
{
width
:
100%
!
important
;
}
.editable
{
transition
:
all
0
.3s
ease
;
cursor
:
pointer
;
&
:hover
{
color
:
#03a0e7
;
}
}
::ng-deep
{
::ng-deep
{
.ui-inputswitch
{
.ui-inputswitch
{
height
:
18px
;
height
:
18px
;
...
@@ -43,6 +77,10 @@
...
@@ -43,6 +77,10 @@
margin-bottom
:
0
!
important
;
margin-bottom
:
0
!
important
;
}
}
.mr-0
{
margin-right
:
0
!
important
;
}
.w-100
{
.w-100
{
width
:
100%
!
important
;
width
:
100%
!
important
;
}
}
...
@@ -66,7 +104,18 @@
...
@@ -66,7 +104,18 @@
}
}
.ui-chkbox
{
.ui-chkbox
{
margin-top
:
20px
;
margin-bottom
:
2px
;
.ui-chkbox-box
{
&
.ui-state-active
{
border-color
:
rgba
(
3
,
160
,
231
,
0
.5
);
background-color
:
rgba
(
3
,
160
,
231
,
0
.5
);
}
&
.ui-state-focus
{
border-color
:
rgba
(
3
,
160
,
231
,
0
.5
);
}
}
}
}
.ui-dropdown
{
.ui-dropdown
{
...
@@ -76,7 +125,7 @@
...
@@ -76,7 +125,7 @@
.postStage
{
.postStage
{
.ui-panel
{
.ui-panel
{
margin-bottom
:
10
px
;
margin-bottom
:
5
px
;
}
}
}
}
...
@@ -102,8 +151,7 @@
...
@@ -102,8 +151,7 @@
.ui-panel-content
{
.ui-panel-content
{
background-color
:
white
;
background-color
:
white
;
padding-left
:
3em
;
padding
:
3em
3em
!
important
;
padding-right
:
3em
;
}
}
}
}
...
@@ -187,9 +235,11 @@
...
@@ -187,9 +235,11 @@
.dropdown-text
{
.dropdown-text
{
width
:
75%
!
important
;
width
:
75%
!
important
;
}
}
.select2-container--open
{
.select2-container--open
{
z-index
:
100000
;
z-index
:
100000
;
}
}
.normalDropDown
{
.normalDropDown
{
...
@@ -221,7 +271,7 @@
...
@@ -221,7 +271,7 @@
}
}
.editor
{
.editor
{
min-height
:
1
0
0px
!
important
;
min-height
:
1
5
0px
!
important
;
}
}
body
.ui-selectbutton
.ui-button.ui-state-active
{
body
.ui-selectbutton
.ui-button.ui-state-active
{
...
@@ -240,10 +290,6 @@ body .ui-selectbutton .ui-button {
...
@@ -240,10 +290,6 @@ body .ui-selectbutton .ui-button {
color
:
#fff
!
important
;
color
:
#fff
!
important
;
}
}
.mb-10
{
margin-bottom
:
10px
;
}
body
.ui-button
{
body
.ui-button
{
background-color
:
#667281
;
background-color
:
#667281
;
}
}
...
@@ -256,3 +302,67 @@ body .ui-widget-header {
...
@@ -256,3 +302,67 @@ body .ui-widget-header {
body
.ui-dropdown-panel
.ui-dropdown-filter-container
{
body
.ui-dropdown-panel
.ui-dropdown-filter-container
{
background-color
:
#667281
;
background-color
:
#667281
;
}
}
.mb-10
{
margin-bottom
:
10px
;
}
.pb-0
{
padding-bottom
:
0
!
important
;
}
.message-template-form
{
label
{
font-family
:
'Usual-Regular'
!
important
;
}
textarea
{
width
:
100%
;
max-width
:
100%
;
padding
:
10px
;
border
:
solid
1px
#dbdbdf
;
}
}
.separator
{
width
:
80%
;
background
:
#4E5258
;
display
:
flex
;
height
:
5px
;
margin-left
:
auto
;
margin-right
:
auto
;
border-radius
:
20px
;
}
.bg-white
{
background-color
:
white
;
}
.ui-inputtext
{
background-image
:
linear-gradient
(
to
bottom
,
rgba
(
3
,
160
,
231
,
0
.5
)
,
rgba
(
3
,
160
,
231
,
0
.5
))
,
linear-gradient
(
to
bottom
,
#bdbdbd
,
#bdbdbd
)
!
important
;
&
.ui-dropdown-label
{
background-image
:
none
!
important
;
}
}
.ui-dropdown
{
background
:
transparent
no-repeat
;
background-image
:
linear-gradient
(
to
bottom
,
rgba
(
3
,
160
,
231
,
0
.5
)
,
rgba
(
3
,
160
,
231
,
0
.5
))
,
linear-gradient
(
to
bottom
,
#bdbdbd
,
#bdbdbd
)
!
important
;
}
.ui-multiselect-panel
{
.ui-multiselect-item
{
&
.ui-state-highlight
{
background
:
none
!
important
;
color
:
#4e5258
!
important
;
}
label
{
margin-bottom
:
0
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
}
}
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