From 2670137564479c3d6fc00928944d48b3a5d5fe23 Mon Sep 17 00:00:00 2001 From: Karan Takalkar Date: Wed, 15 Jul 2020 17:25:17 +0530 Subject: [PATCH] refactor: client view survey page (#1112) Fixes: #1111 --- src/app/clients/clients-routing.module.ts | 26 +---- .../client-actions.component.html | 1 + .../client-actions.component.ts | 4 +- .../take-survey/take-survey.component.html | 2 - .../take-survey/take-survey.component.scss | 0 .../take-survey/take-survey.component.spec.ts | 0 .../take-survey/take-survey.component.ts | 8 +- .../view-survey/view-survey.component.html | 94 ++++++++----------- .../view-survey/view-survey.component.ts | 28 +++--- src/app/clients/clients.module.ts | 2 +- .../client-actions.resolver.ts | 2 + .../common-resolvers/take-survey.resolver.ts | 30 ------ 12 files changed, 67 insertions(+), 130 deletions(-) rename src/app/clients/clients-view/client-actions/{view-survey => }/take-survey/take-survey.component.html (98%) rename src/app/clients/clients-view/client-actions/{view-survey => }/take-survey/take-survey.component.scss (100%) rename src/app/clients/clients-view/client-actions/{view-survey => }/take-survey/take-survey.component.spec.ts (100%) rename src/app/clients/clients-view/client-actions/{view-survey => }/take-survey/take-survey.component.ts (92%) delete mode 100644 src/app/clients/common-resolvers/take-survey.resolver.ts diff --git a/src/app/clients/clients-routing.module.ts b/src/app/clients/clients-routing.module.ts index 9e9c316a2..6bb7a598a 100644 --- a/src/app/clients/clients-routing.module.ts +++ b/src/app/clients/clients-routing.module.ts @@ -20,7 +20,6 @@ import { DocumentsTabComponent } from './clients-view/documents-tab/documents-ta import { DatatableTabComponent } from './clients-view/datatable-tab/datatable-tab.component'; import { AddressTabComponent } from './clients-view/address-tab/address-tab.component'; import { ClientActionsComponent } from './clients-view/client-actions/client-actions.component'; -import { TakeSurveyComponent } from './clients-view/client-actions/view-survey/take-survey/take-survey.component'; /** Custom Resolvers */ import { ClientViewResolver } from './common-resolvers/client-view.resolver'; @@ -42,10 +41,7 @@ import { ClientAddressTemplateResolver } from './common-resolvers/client-address import { ChargesOverviewComponent } from './clients-view/charges-overview/charges-overview.component'; import { ClientChargeOverviewResolver } from './clients-view/charges-overview/charge-overview.resolver'; import { ClientActionsResolver } from './common-resolvers/client-actions.resolver'; -import { TakeSurveyResolver } from './common-resolvers/take-survey.resolver'; -import { ViewChargeComponent } from './clients-view/view-charge/view-charge.component'; import { ClientChargeViewResolver } from './common-resolvers/client-charge-view.resolver'; -import { ClientPayChargesComponent } from './clients-view/client-pay-charges/client-pay-charges.component'; import { ClientTransactionPayResolver } from './common-resolvers/client-transaction-pay.resolver'; const routes: Routes = [ @@ -179,23 +175,10 @@ const routes: Routes = [ { path: 'actions/:name', data: { title: extract('Client Actions'), routeParamBreadcrumb: 'name' }, - children: [ - { - path: '', - component: ClientActionsComponent, - resolve: { - clientActionData: ClientActionsResolver - } - }, - { - path: 'Take-Survey', - component: TakeSurveyComponent, - data: { title: extract('Take Survey'), breadcrumb: 'Take Survey', routeParamBreadcrumb: 'Survey' }, - resolve: { - allSurveysData: TakeSurveyResolver - } - }, - ] + component: ClientActionsComponent, + resolve: { + clientActionData: ClientActionsResolver + } }, { path: 'loans', @@ -247,7 +230,6 @@ const routes: Routes = [ ClientAddressTemplateResolver, ClientChargeOverviewResolver, ClientActionsResolver, - TakeSurveyResolver, ClientChargeViewResolver, ClientTransactionPayResolver ] diff --git a/src/app/clients/clients-view/client-actions/client-actions.component.html b/src/app/clients/clients-view/client-actions/client-actions.component.html index 59bd16425..8a54bd743 100644 --- a/src/app/clients/clients-view/client-actions/client-actions.component.html +++ b/src/app/clients/clients-view/client-actions/client-actions.component.html @@ -12,3 +12,4 @@ + \ No newline at end of file diff --git a/src/app/clients/clients-view/client-actions/client-actions.component.ts b/src/app/clients/clients-view/client-actions/client-actions.component.ts index 1dc978be4..30aa9c23f 100644 --- a/src/app/clients/clients-view/client-actions/client-actions.component.ts +++ b/src/app/clients/clients-view/client-actions/client-actions.component.ts @@ -27,6 +27,7 @@ export class ClientActionsComponent { 'Reactivate': boolean 'Undo Rejection': boolean 'Add Charge': boolean + 'Take Survey': boolean } = { 'Assign Staff': false, 'Close': false, @@ -40,7 +41,8 @@ export class ClientActionsComponent { 'Reject Transfer': false, 'Reactivate': false, 'Undo Rejection': false, - 'Add Charge': false + 'Add Charge': false, + 'Take Survey': false }; /** diff --git a/src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.html b/src/app/clients/clients-view/client-actions/take-survey/take-survey.component.html similarity index 98% rename from src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.html rename to src/app/clients/clients-view/client-actions/take-survey/take-survey.component.html index 952b43232..e57b06e26 100644 --- a/src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.html +++ b/src/app/clients/clients-view/client-actions/take-survey/take-survey.component.html @@ -1,7 +1,5 @@
-

Surveys

-
diff --git a/src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.scss b/src/app/clients/clients-view/client-actions/take-survey/take-survey.component.scss similarity index 100% rename from src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.scss rename to src/app/clients/clients-view/client-actions/take-survey/take-survey.component.scss diff --git a/src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.spec.ts b/src/app/clients/clients-view/client-actions/take-survey/take-survey.component.spec.ts similarity index 100% rename from src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.spec.ts rename to src/app/clients/clients-view/client-actions/take-survey/take-survey.component.spec.ts diff --git a/src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.ts b/src/app/clients/clients-view/client-actions/take-survey/take-survey.component.ts similarity index 92% rename from src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.ts rename to src/app/clients/clients-view/client-actions/take-survey/take-survey.component.ts index 14029e614..4724211f7 100644 --- a/src/app/clients/clients-view/client-actions/view-survey/take-survey/take-survey.component.ts +++ b/src/app/clients/clients-view/client-actions/take-survey/take-survey.component.ts @@ -3,8 +3,8 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; /** Custom Services */ -import { ClientsService } from '../../../../clients.service'; -import { AuthenticationService } from '../../../../../core/authentication/authentication.service'; +import { ClientsService } from '../../../clients.service'; +import { AuthenticationService } from '../../../../core/authentication/authentication.service'; /** * Take Survey Component */ @@ -44,8 +44,8 @@ export class TakeSurveyComponent implements OnInit { private clientsService: ClientsService, private router: Router, private authenticationService: AuthenticationService) { - this.route.data.subscribe((data: { allSurveysData: any }) => { - this.allSurveyData = data.allSurveysData; + this.route.data.subscribe((data: { clientActionData: any }) => { + this.allSurveyData = data.clientActionData; this.clientId = this.route.parent.parent.snapshot.paramMap.get('clientId'); }); diff --git a/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.html b/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.html index 59c9711b1..08aae1756 100644 --- a/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.html +++ b/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.html @@ -1,71 +1,51 @@ +
+ +
+ +
- +
+ + Filter + + +
-
+
- + -
-
-
-

List of All Surveys

-
-
-
-
- -
-
-
+ + + + -
- - Filter - - -
+ + + + -
+ +
+ + -
Survey {{ survey.surveyName }} Created By {{ survey.createdBy }} Date {{ survey.date | date }}
+ + + + - - - - + + - - - - +
Score {{ survey.score }} Survey {{ surveydata.surveyName }}
Created By {{ surveydata.createdby }}
- - Date - {{ surveydata.date | date }} - + - - Score - {{ surveydata.score }} - - - - - - - - - -
- - - -
- -
+
diff --git a/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.ts b/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.ts index 7b635ab94..837f34908 100644 --- a/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.ts +++ b/src/app/clients/clients-view/client-actions/view-survey/view-survey.component.ts @@ -13,11 +13,13 @@ import { MatTableDataSource, MatPaginator, MatSort } from '@angular/material'; }) export class ViewSurveyComponent implements OnInit { + /** Survey Data */ surveyData: any; /** Data source for view surveys table. */ dataSource: MatTableDataSource; /** Columns to be displayed in list of surveys table. */ displayedColumns: string[] = ['surveyName', 'createdBy', 'date', 'score']; + /** Paginator for list of surveys table. */ @ViewChild(MatPaginator) paginator: MatPaginator; /** Sorter for list of surveys table. */ @@ -35,26 +37,26 @@ export class ViewSurveyComponent implements OnInit { } ngOnInit() { - this.constructSurvey(this.surveyData); + this.constructSurveys(this.surveyData); } /** - * Constructs the list of survey data + * Sets datasource, paginator and sorter for surveys table. * @param data Survey Data */ - constructSurvey(data: any) { - const surveys: any[] = []; - data.forEach((ele: { id: number, userId: number, username: string, clientId: number, surveyId: number, surveyName: string, scorecardValues: Object[] }) => { - ele.scorecardValues.forEach((element: { createdOn: number, value: number }) => { - const item = {} as { surveyName: string, createdby: string, date: number, score: number }; - item.surveyName = ele.surveyName; - item.createdby = ele.username; - item.date = element.createdOn; - item.score = element.value; - surveys.push(item); + constructSurveys(data: any) { + let surveys: any[] = []; + data.forEach((entry: any) => { + const scoreCards: any[] = entry.scorecardValues.map((element: any) => { + return { + surveyName: entry.surveyName, + createdBy: entry.username, + date: element.createdOn, + score: element.value + }; }); + surveys = surveys.concat(scoreCards); }); - this.dataSource = new MatTableDataSource(surveys); this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; diff --git a/src/app/clients/clients.module.ts b/src/app/clients/clients.module.ts index 97fa8ad1e..99752a7e0 100644 --- a/src/app/clients/clients.module.ts +++ b/src/app/clients/clients.module.ts @@ -33,7 +33,7 @@ import { ViewSurveyComponent } from './clients-view/client-actions/view-survey/v import { RejectClientComponent } from './clients-view/client-actions/reject-client/reject-client.component'; import { ActivateClientComponent } from './clients-view/client-actions/activate-client/activate-client.component'; import { WithdrawClientComponent } from './clients-view/client-actions/withdraw-client/withdraw-client.component'; -import { TakeSurveyComponent } from './clients-view/client-actions/view-survey/take-survey/take-survey.component'; +import { TakeSurveyComponent } from './clients-view/client-actions/take-survey/take-survey.component'; import { UpdateClientSavingsAccountComponent } from './clients-view/client-actions/update-client-savings-account/update-client-savings-account.component'; import { TransferClientComponent } from './clients-view/client-actions/transfer-client/transfer-client.component'; import { UndoClientTransferComponent } from './clients-view/client-actions/undo-client-transfer/undo-client-transfer.component'; diff --git a/src/app/clients/common-resolvers/client-actions.resolver.ts b/src/app/clients/common-resolvers/client-actions.resolver.ts index 0faadeaa7..03e10fffb 100644 --- a/src/app/clients/common-resolvers/client-actions.resolver.ts +++ b/src/app/clients/common-resolvers/client-actions.resolver.ts @@ -33,6 +33,8 @@ export class ClientActionsResolver implements Resolve { return this.clientsService.getClientDataAndTemplate(clientId); case 'Survey': return this.clientsService.getSurveys(clientId); + case 'Take Survey': + return this.clientsService.getAllSurveysType(); case 'Close': return this.clientsService.getClientCommandTemplate('close'); case 'Reject': diff --git a/src/app/clients/common-resolvers/take-survey.resolver.ts b/src/app/clients/common-resolvers/take-survey.resolver.ts deleted file mode 100644 index 93003250f..000000000 --- a/src/app/clients/common-resolvers/take-survey.resolver.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** Angular Imports */ -import { Injectable } from '@angular/core'; -import { Resolve, ActivatedRouteSnapshot } from '@angular/router'; - -/** rxjs Imports */ -import { Observable } from 'rxjs'; - -/** Clients Services */ -import { ClientsService } from '../clients.service'; - -/** - * Take Survey data resolver. - */ -@Injectable() -export class TakeSurveyResolver implements Resolve { - - /** - * @param {ClientsService} clientsService Client service. - */ - constructor(private clientsService: ClientsService) { } - - /** - * Returns the All Survey Type and question data. - * @returns {Observable} - */ - resolve(): Observable { - return this.clientsService.getAllSurveysType(); - } - -}