Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Security updates #25

Merged
merged 6 commits into from
Nov 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "angular-wallboard",
"version": "1.1.0",
"version": "1.1.3",
"scripts": {
"ng": "ng",
"start": "ng serve",
Expand Down Expand Up @@ -39,4 +39,4 @@
"karma-jasmine-html-reporter": "~1.7.0",
"typescript": "~4.7.3"
}
}
}
1 change: 1 addition & 0 deletions src/app/footer/footer.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
<span>Github</span>
</a>
</li>
<div class="version">App version: {{version}}</div>
</ul>
</footer>
6 changes: 6 additions & 0 deletions src/app/footer/footer.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,9 @@ a {
display: inline-flex;
align-items: center;
}

.version {
color: white;
float: right;
margin-right: 1vmin;
}
7 changes: 6 additions & 1 deletion src/app/footer/footer.component.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
import { Component, OnInit } from '@angular/core';

import packageJson from '../../../package.json';


@Component({
selector: 'app-footer',
templateUrl: './footer.component.html',
styleUrls: ['./footer.component.scss']
})
export class FooterComponent implements OnInit {

public version: string = packageJson.version;

constructor() { }

ngOnInit(): void {
}

}
}
51 changes: 38 additions & 13 deletions src/app/home/home.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ <h1 class="info-header">Agents at a glance</h1>
</mat-grid-tile>
</mat-grid-list>
</div>

<mat-grid-tile-header class="tile-header-q">
<span>
<button *ngIf="queuesStateDbcnv" mat-icon-button [matMenuTriggerFor]="menuQ">
Expand Down Expand Up @@ -131,24 +132,24 @@ <h1 class="info-header">Agents at a glance</h1>

<!--RIGHT GRID-->
<!--Agents states-->
<mat-grid-tile *ngIf="agentsStateDbcnv" class="agents-tile">
<div>
<mat-grid-tile *ngIf="agentsStateDbcnv" class="agents">
<div *ngIf="!agentShow; else agentDetailDiv">
<div class="agents">
<div *ngFor="let d of agentsStateDbcnv._embedded.items" class="agent-ind">
<div *ngFor="let d of agentsStateDbcnv._embedded.items; let i=index" class="agent-ind">
<div [ngSwitch]="d.currentState">
<!--https://stackoverflow.com/questions/52558611/angular-6-grid-tiles-line-breaks-->
<!--https://stackoverflow.com/questions/46639498/style-border-error-in-angular4-->
<img *ngSwitchCase="'LoggedOut'" src="./assets/blank_avatar.png" class="agent-pic agent-loggedout" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'Idle'" src="./assets/blank_avatar.png" class="agent-pic agent-idle" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'MakeBusy'" src="./assets/blank_avatar.png" class="agent-pic agent-makebusy" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'Acd'" src="./assets/blank_avatar.png" class="agent-pic agent-acd" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'NonAcd'" src="./assets/blank_avatar.png" class="agent-pic agent-nonacd" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'WorkTimer'" src="./assets/blank_avatar.png" class="agent-pic agent-worktimer" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'Incoming'" src="./assets/blank_avatar.png" class="agent-pic agent-ringing" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'AcdHold'" src="./assets/blank_avatar.png" class="agent-pic agent-acdhold" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'Outbound'" src="./assets/blank_avatar.png" class="agent-pic agent-outb" matTooltip="{{d.currentState}}">
<img *ngSwitchCase="'LoggedOut'" src="./assets/blank_avatar.png" class="agent-pic agent-loggedout" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'Idle'" src="./assets/blank_avatar.png" class="agent-pic agent-idle" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'MakeBusy'" src="./assets/blank_avatar.png" class="agent-pic agent-makebusy" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'Acd'" src="./assets/blank_avatar.png" class="agent-pic agent-acd" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'NonAcd'" src="./assets/blank_avatar.png" class="agent-pic agent-nonacd" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'WorkTimer'" src="./assets/blank_avatar.png" class="agent-pic agent-worktimer" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'Incoming'" src="./assets/blank_avatar.png" class="agent-pic agent-ringing" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'AcdHold'" src="./assets/blank_avatar.png" class="agent-pic agent-acdhold" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<img *ngSwitchCase="'Outbound'" src="./assets/blank_avatar.png" class="agent-pic agent-outb" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<!--Default if state not of the above-->
<img *ngSwitchDefault src="./assets/blank_avatar.png" class="agent-pic" matTooltip="{{d.currentState}}">
<img *ngSwitchDefault src="./assets/blank_avatar.png" class="agent-pic" matTooltip="{{d.currentState}}" (click)="setAgentDetails(i)">
<p>
{{d.firstName}} {{d.lastName}}
<br>
Expand All @@ -158,6 +159,30 @@ <h1 class="info-header">Agents at a glance</h1>
</div>
</div>
</div>
<ng-template #agentDetailDiv>
<div *ngIf="agentDetails !== null">
<button mat-flat-button color="warn" (click)="agentShow = false">Close</button>
<br><span class="agent-details-label">Agent ID: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].id}}</span>
<br><span class="agent-details-label">Name: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].firstName}}&nbsp;{{agentsStateDbcnv._embedded.items[agentDetails].lastName}}</span>
<br><span class="agent-details-label">Current state: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].currentState}}</span>
<br><span class="agent-details-label">ACD conversations today: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].acdConversationsToday}}</span>
<br><span class="agent-details-label">Average time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].averageTime}}</span>
<br><span class="agent-details-label">Current Work timer: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].currentWorktimer}}</span>
<br><span class="agent-details-label">DND time for the day: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].doNotDisturbDurationToday}}</span>
<br><span class="agent-details-label">External answer time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].externalAnswerDurationToday}}</span>
<br><span class="agent-details-label">ACD Hold total time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].holdAcdDurationToday}}</span>
<br><span class="agent-details-label">Logged in total time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].loggedInDurationToday}}</span>
<br><span class="agent-details-label">Not present total time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].loggedInNotPresentDurationToday}}</span>
<br><span class="agent-details-label">Make Busy total time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].makeBusyDurationToday}}</span>
<br><span class="agent-details-label">Outbound total time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].outboundDurationToday}}</span>
<br><span class="agent-details-label">Member of Agent Groups: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].presentInAgentGroups}}</span>
<br><span class="agent-details-label">Make Busy reason: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].reason}}</span>
<br><span class="agent-details-label">ACD total time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].totalAcdDuration}}</span>
<br><span class="agent-details-label">Work timer total time: </span> <span class="agent-details-data">{{agentsStateDbcnv._embedded.items[agentDetails].workTimerDurationToday}}</span>

</div>

</ng-template>
<mat-grid-tile-header class="tile-header-q">
<span>Agents</span>
</mat-grid-tile-header>
Expand Down
15 changes: 14 additions & 1 deletion src/app/home/home.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,11 @@
flex-flow: row wrap;
justify-content: space-around;
align-items: flex-start;
max-height: 50%;
margin-top: 10%;
overflow: auto;
}

//Agent individual element
.agent-ind {
/*width: 10vmin;
height: 10vmin;*/
Expand Down Expand Up @@ -138,3 +139,15 @@
font-weight: lighter;
font-size: smaller;
}

.agent-details-label {
font-weight: bolder;
font-size: 2.5vmin;
line-height: 3vmin;
}

.agent-details-data {
font-size: 2.5vmin;
font-weight: lighter;
line-height: 3vmin;
}
85 changes: 12 additions & 73 deletions src/app/home/home.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,87 +32,20 @@ export class HomeComponent implements OnInit {
//service level color
slc: string = "#fc0303";

//View agent test
agentDetails: number = 0;
agentShow: boolean = false;


queuesStateDb: any[] = [];
queuesStateDbcnv!: QueuesState;
q: QItem[];
q!: QItem[];


constructor(
private dataService: DataService,
private config: AppConfig,
) {
/*Init default values for q, note [] */
this.q = [
{
_links: {self: {href: ""}, queue: {href: ""}},
id: '',
abandonedConversationsAverageDurationToday: '',
abandonedConversationsInTheLast15Minutes: 0,
abandonedConversationsInTheLastHour: 0,
abandonedConversationsPercentageInTheLast15Minutes: 0,
abandonedConversationsPercentageInTheLastHour: 0,
abandonedConversationsPercentageToday: 0,
abandonedConversationsToday: 0,
agentLoggedInTotalDurationToday: '',
agentsAvailable: 0,
agentsIdle: 0,
agentsOnAcdConversations: 0,
agentsOnNonAcdConversations: 0,
agentsOnOutboundConversations: 0,
agentsUnavailable: 0,
agentsUnavailableInTheLast15Minutes: 0,
agentsUnavailableInTheLastHour: 0,
answeredConversationsAverageDurationInTheLast15Minutes: '',
answeredConversationsAverageDurationInTheLastHour: '',
answeredConversationsAverageDurationToday: '',
answeredConversationsByAgentGroup1Today: 0,
answeredConversationsByAgentGroup2Today: 0,
answeredConversationsByAgentGroup3Today: 0,
answeredConversationsByAgentGroup4Today: 0,
answeredConversationsInTheLast15Minutes: 0,
answeredConversationsInTheLastHour: 0,
answeredConversationsPercentageByAgentGroup1Today: 0,
answeredConversationsPercentageByAgentGroup2Today: 0,
answeredConversationsPercentageByAgentGroup3Today: 0,
answeredConversationsPercentageByAgentGroup4Today: 0,
answeredConversationsPercentageInTheLast15Minutes: 0,
answeredConversationsPercentageInTheLastHour: 0,
answeredConversationsPercentageToday: 0,
answeredConversationsToday: 0,
conversationAverageDurationInTheLast15Minutes: '',
conversationAverageDurationInTheLastHour: '',
conversationAverageDurationToday: '',
conversationTotalDurationToday: '',
estimatedWaitTimeForNewConversations: '',
interflowedConversationsInTheLast15Minutes: 0,
interflowedConversationsInTheLastHour: 0,
interflowedConversationsToday: 0,
isInDoNotDisturb: false,
longestWaitingConversationDuration: '',
longestWaitingStartedTime: new Date(0),
longestWaitingStartedTimeMediaServerId: '',
makeBusyTotalDurationToday: '',
offeredConversationsInTheLast15Minutes: 0,
offeredConversationsInTheLastHour: 0,
offeredConversationsToday: 0,
name: '',
reporting: '',
isGroup: false,
mediaType: '',
requeuedConversationsToday: 0,
serviceLevelPercentageInTheLast15Minutes: 0,
serviceLevelPercentageInTheLastHour: 0,
serviceLevelPercentageToday: 0,
serviceLevelGoalPercentage: 0,
timeOfLastReceivedUpdate: new Date(0),
transfersToUnavailableQueue: 0,
transfersToUnavailableQueueTotalToday: 0,
waitingConversations: 0,
workTimerTotalDurationToday: '',
_embedded: {}
}]
}
) {}

aQ: number = this.config.getConfig().activeQ; //active Queue chosen to view. Default is zero
answP: boolean = this.config.getConfig().answeredAsPercent || false; //Answered calls as percent (true) or actual number (false)
Expand Down Expand Up @@ -237,6 +170,12 @@ export class HomeComponent implements OnInit {
this.abndP = t;
}
}

//agentDetails
setAgentDetails(a: number) {
this.agentDetails = a;
this.agentShow = true;
}


}
10 changes: 9 additions & 1 deletion src/app/page-not-found/page-not-found.component.html
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
<p>page-not-found works!</p>
<div class="main">
<div class="content">
<h1>Seems like you may be lost...Or something has gone wrong... <span style="font-size:5vmin">🤖</span> <br> The page you requested does not exist</h1>
<br>
<button mat-flat-button [routerLink]="'../home'" color="primary">Home page</button>
</div>
</div>


Loading