Commit a2f964f6 by GD-A-150752

Bug-Fix

+ S52549430 #UI Issues
+ S52559620 #Time field behavior expectations
parent 2b1f009a
......@@ -109,6 +109,10 @@ export const routes: Routes = [
{
path: 'home',
component: HomeComponent
},
{
path: 'message-engine',
component: MessageEngineApplicantViewComponent
}
]
}
......
......@@ -9,7 +9,7 @@
{{editMode ? "Edit" : "Add"}} Message Template
</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="form-group row">
<div class="col-md-6">
......@@ -84,12 +84,12 @@
</p-editor>
<textarea id="messageContentTxtAreaId" *ngIf="smsTemplateType()" pInputTextarea
[(ngModel)]="messageTemplate.MessageContent"
name="MessageContent"
fieldLabel="Message Content" style="width: 100%;max-width: 100%;"
name="MessageContent" class="form-control textarea-box"
fieldLabel="Message Content"
placeholder="Message Content"></textarea>
</div>
</div>
<div class="ui-g form-group">
<div class="ui-g">
<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"
......
......@@ -22,7 +22,7 @@
</p-dialog>
<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>
for="TemplateNameId" class="editable">{{workflow.TemplateName}}</label>
<input (blur)="toggleInput($event, 'TemplateName', false)" *ngIf="!showLabel('TemplateName')"
[(ngModel)]="workflow.TemplateName" [disabled]="showLoader"
class="form-control" id="TemplateNameId"
......@@ -210,6 +210,10 @@
</div>
<div class="ui-g-12 ui-md-12"></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-12">
<!-- Start Post Stages -->
......@@ -393,13 +397,13 @@
<label>{{message.VarianceString}}</label>
</div>
</div>
<div class="col-md-2">
<label title="Business Hours only" class="mb-0">Business Hours
only</label>
<div class="col-md-2 business-hours">
<p-checkbox [(ngModel)]="message.BusinessHoursOnly"
binary="true"
name="BusinessHoursOnly{{message.ObjectID}}">
</p-checkbox>
<label title="Business Hours only" class="mb-0">Business Hours
only</label>
</div>
<div class="col-md-3">
<label>Send</label>
......@@ -438,7 +442,10 @@
</div>
</div>
</div>
<div class="ui-g">
<div class="separator">
</div>
</div>
<div *ngFor="let message of stage.WorkFlowMessages" class="form-group row">
<div *ngIf="stage.UseMessaging && message.IsWithdrawalMessage"
class="ui-g ui-g-3">
......@@ -480,13 +487,13 @@
<label>{{message.VarianceString}}</label>
</div>
</div>
<div class="col-md-2">
<label title="Business Hours only" class="mb-0">Business Hours
only</label>
<div class="col-md-3 business-hours">
<p-checkbox [(ngModel)]="message.BusinessHoursOnly"
binary="true"
name="BusinessHoursOnly{{message.ObjectID}}">
</p-checkbox>
<label title="Business Hours only" class="mb-0">Business Hours
only</label>
</div>
<div class="col-md-4">
<label>Send</label>
......@@ -512,7 +519,7 @@
</ng-template>
</p-dropdown>
</div>
<div class="col-md-2 text-center">
<div class="col-md-1 text-center">
<button (click)="configureMessageTemplate(message)"
[disabled]="showLoader" icon="ui-icon-settings"
pButton
......
......@@ -112,3 +112,8 @@ label {
.disable-drop {
pointer-events: none;
}
.business-hours {
display: flex;
margin-top: 43px;
}
......@@ -303,15 +303,20 @@ export class EditWorkflowTemplateComponent extends BaseComponent implements OnIn
.split(':');
delay[0] = delay[0] || '';
delay[0] = delay[0] !== '00' ? delay[0] : '';
delay[1] = delay[1] || '';
delay[1] = delay[1] !== '00' ? delay[1] : '';
delay[2] = delay[2] || '';
delay[2] = delay[2] !== '00' ? delay[2] : '';
if (delay[1] === '' && delay[2] === '') {
message.DelayString = `${delay[0]}m`;
message.DelayMinutes = parseInt(delay[0], 10);
message.Delay = `00:00:${delay[0]}`;
} else if (delay[2] === '') {
message.DelayString = `${delay[0]}h: ${delay[1]}m`;
message.DelayMinutes = parseInt(delay[0], 10) * 60 + parseInt(delay[1], 10);
message.Delay = `00:${delay[0]}:${delay[1]}`;
} else {
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);
......
......@@ -6,8 +6,8 @@
<div class="ui-g-4">
<a routerLink="/admin/edit-message-template" class="add-more-btn">Add Message Template</a>
</div>
<div class="shorting-dropdown">
<div class="order-label">order by</div>
<div class="listing-dropdown">
<span class="order-label mr-0">order by</span>
<app-select-2 [data]="sortOptions" [value]="sortOptions[0]" fieldLabel="description"
(valChange)="sortMessageTemplates($event)">
</app-select-2>
......@@ -21,7 +21,7 @@
<div class="main-client-list">
<div class="template-list" *ngFor="let message of myTemplates" id="{{message.ObjectID}}">
<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">
<span class="calcField"
(click)="onRowSelect(message)">{{message.TemplateName}}</span>
......@@ -53,7 +53,7 @@
<div class="main-client-list">
<div class="template-list" *ngFor="let message of sharedTemplates" id="{{message.ObjectID}}">
<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">
<span class="calcField"
(click)="onRowSelect(message)">{{message.TemplateName}}</span>
......
......@@ -6,8 +6,8 @@
<div class="ui-g-4">
<a routerLink="/admin/edit-workflow-template" class="add-more-btn">Add Workflow Template</a>
</div>
<div class="shorting-dropdown">
<div class="order-label">order by</div>
<div class="listing-dropdown">
<span class="order-label mr-0">order by</span>
<app-select-2 [data]="sortOptions" [value]="sortOptions[0]" fieldLabel="description"
(valChange)="sortWorkFlowTemplates($event)">
</app-select-2>
......@@ -21,7 +21,7 @@
<div class="main-client-list">
<div class="template-list" *ngFor="let workflow of myTemplates" id="{{workflow.ObjectID}}">
<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">
<span class="calcField"
(click)="onRowSelect(workflow)">{{workflow.TemplateName}}</span>
......@@ -53,7 +53,7 @@
<div class="main-client-list">
<div class="template-list" *ngFor="let workflow of sharedTemplates" id="{{workflow.ObjectID}}">
<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">
<span class="calcField"
(click)="onRowSelect(workflow)">{{workflow.TemplateName}}</span>
......
<form #form="ngForm">
<div class="ui-g ui-fluid">
<div class="ui-g-12 nopad">
<p-toolbar>
<div class="ui-toolbar-group-left">
Mine Manager- Lone Star Gold
</div>
<div class="ui-toolbar-group-right actionBtn">
<button pButton type="button" label="" icon="ui-icon-"></button>
<div class="dashboard-content-area second-part {{embedded ? 'openedFromWorkflow' : '' }}">
<form #form="ngForm">
<div class="ui-g ui-fluid">
<div class="first-part w-100">
<div class="officer-name">
<div class="chief-officer">
<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>
</p-toolbar>
</div>
</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 class="ui-g ui-fluid">
<div class="ui-g-10 message-block">
<div class="ui-g-12 ui-md-1 name other">
<label>Martin </label>
</div>
<div class="ui-g-12 ui-md-9">
<label> Hi John, </label><br/>
<label> Thanks for applying. Please click on the following link to complete your
application. </label><br/>
<a href="#" class=" data-link " style="" data-fielduid="4b7f9f1e27010d23b5c5"
data-elementID="httpsbitly2aBi0jj">https://bit.ly/2aBi0jj</a><br/>
<div class="ui-g form-group">
<div class="ui-g-12 ui-md-5">
<div class="ui-g-12 ui-md-11">
<div>
<label> Hi John, </label><br>
<label> Thanks for applying. Please click on the following link to complete your
application. </label><br>
<a class=" data-link " data-elementid="httpsbitly2aBi0jj" data-fielduid="4b7f9f1e27010d23b5c5"
href="#" style="">https://bit.ly/2aBi0jj</a><br>
</div>
<div class="ui-g">
<div class="ui-g-12 ui-md-5 pb-0">
<label> via Email </label>
</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>
</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-12">
<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-offset-2 ui-g-10 message-block">
<div class="ui-g-10 ui-md-11">
<label> Hi John, </label><br>
<label> Thanks for applying. Please click on the following link to complete your
application. </label><br>
<a class=" data-link " data-elementid="httpsbitly2aBi0jj" data-fielduid="4b7f9f1e27010d23b5c5"
href="#" style="">https://bit.ly/2aBi0jj</a><br>
<div class="ui-g">
<div class="ui-g-12 ui-md-5">
<label> via App </label>
<label> via Email </label>
</div>
<div class="ui-g-12 ui-md-7">
<label> 05/03/2019 02:39pm </label>
<label> 01/03/2019 11:43am </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">
<label> via SMS </label>
</div>
<div class="ui-g-12 ui-md-7">
<label> 08/03/2019 03:15pm </label>
</div>
</div>
<div class="ui-g-12 ui-md-1 name owner">
<label>Martin </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-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 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 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 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 class="ui-g-2">
<button class="btn btn-primary add-more-btn">Send</button>
</div>
</div>
<div class="ui-g-12 ui-md-1">
<p-button label=""></p-button>
</div>
</div>
<p-progressSpinner *ngIf="showLoader"></p-progressSpinner>
</form>
<p-progressSpinner *ngIf="showLoader"></p-progressSpinner>
</form>
</div>
.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;
}
}
}
import { Component, OnInit, ViewChild } from '@angular/core';
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Editor } from "primeng/editor";
import { Subscription } from 'rxjs/Subscription';
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 { 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 { MessageEngineApplicantViewService } from './message-engine-applicant-view.service';
......@@ -14,12 +16,15 @@ import { EngineApplicantView } from './message-engine-applicant-view.model';
@Component({
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 {
@Input() embedded = false;
subscriptions: Array<Subscription> = [];
@ViewChild('form') form: NgForm;
@ViewChild('message') message: Editor;
createdObjs = {};
updatedObjs = {};
deletedObjs = {};
......@@ -34,14 +39,16 @@ export class MessageEngineApplicantViewComponent extends BaseComponent implement
private saveService: SaveService,
private appService: AppService,
private messageEngineApplicantViewService: MessageEngineApplicantViewService,
private iframeMsgHandlingService: IframeMsgHandlingService
private iframeMsgHandlingService: IframeMsgHandlingService,
private adminPortalLayoutService: AdminPortalLayoutService
) {
super(utilsService);
}
ngOnInit(): void {
this.utilsService.resetCounter();
this.message.getQuill().container.addClass('form-control');
this.showLoader = true;
this.subscriptions.push(this.activatedRoute.params
.subscribe(
(params: Params) => {
......@@ -56,6 +63,10 @@ export class MessageEngineApplicantViewComponent extends BaseComponent implement
));
}
initComponent(): void {
}
getEngineApplicantViewByID(id): void {
this.showLoader = true;
......
......@@ -7,7 +7,10 @@ export const CLASSES = {
WORKFLOW_TEMPLATE: 'performa.orm.WorkFlowTemplate',
WORKFLOW_MESSAGE: 'performa.orm.WorkFlowMessage',
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 = {
......
import { CLASSES } from '../constants';
import { MessageModel } from './message.model';
export class ChatAttachmentModel {
ObjectID: string;
ObjectClass = CLASSES.CHAT_ATTACHMENT;
File: string;
Message: MessageModel;
}
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>;
}
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;
}
export class SentViaEnum {
Name: string;
Value: string;
Description: string;
Disabled: boolean;
}
......@@ -4,6 +4,40 @@
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 {
.ui-inputswitch {
height: 18px;
......@@ -43,6 +77,10 @@
margin-bottom: 0 !important;
}
.mr-0 {
margin-right: 0 !important;
}
.w-100 {
width: 100% !important;
}
......@@ -66,7 +104,18 @@
}
.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 {
......@@ -76,7 +125,7 @@
.postStage {
.ui-panel {
margin-bottom: 10px;
margin-bottom: 5px;
}
}
......@@ -102,8 +151,7 @@
.ui-panel-content {
background-color: white;
padding-left: 3em;
padding-right: 3em;
padding: 3em 3em !important;
}
}
......@@ -187,9 +235,11 @@
.dropdown-text {
width: 75% !important;
}
.select2-container--open {
z-index: 100000;
}
.normalDropDown {
......@@ -221,7 +271,7 @@
}
.editor {
min-height: 100px !important;
min-height: 150px !important;
}
body .ui-selectbutton .ui-button.ui-state-active {
......@@ -240,10 +290,6 @@ body .ui-selectbutton .ui-button {
color: #fff !important;
}
.mb-10 {
margin-bottom: 10px;
}
body .ui-button {
background-color: #667281;
}
......@@ -256,3 +302,67 @@ body .ui-widget-header {
body .ui-dropdown-panel .ui-dropdown-filter-container {
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;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment