From cc41a10027cc5bb44fe2a12be20be54344a2fa28 Mon Sep 17 00:00:00 2001 From: Gopi Kishan Date: Wed, 2 Apr 2025 08:51:25 +0530 Subject: [PATCH] WEB-59 removed self-service from codebase (#2374) --- e2e/testRigor/testcases/logout.txt | 1 - src/app/app.module.ts | 2 - .../client-actions.component.html | 1 - .../client-actions.component.ts | 2 - .../create-self-service-user.component.html | 122 --------------- .../create-self-service-user.component.scss | 17 --- ...create-self-service-user.component.spec.ts | 24 --- .../create-self-service-user.component.ts | 109 -------------- .../clients-view/clients-view.component.html | 3 - .../clients-view/clients-view.component.ts | 1 - src/app/clients/clients.module.ts | 2 - .../client-actions.resolver.ts | 2 - .../authentication/authentication.service.ts | 3 + .../core/shell/sidenav/frequent-activities.ts | 5 - .../core/shell/sidenav/sidenav.component.ts | 2 - .../core/shell/toolbar/toolbar.component.html | 24 --- src/app/home/activities.ts | 6 - src/app/profile/profile.component.ts | 4 +- .../app-configuration.component.html | 141 ------------------ .../app-configuration.component.scss | 3 - .../app-configuration.component.spec.ts | 24 --- .../app-configuration.component.ts | 29 ---- .../self-service-routing.module.ts | 100 ------------- .../self-service/self-service.component.html | 1 - .../self-service/self-service.component.scss | 0 .../self-service.component.spec.ts | 24 --- .../self-service/self-service.component.ts | 16 -- .../self-service/self-service.module.spec.ts | 13 -- src/app/self-service/self-service.module.ts | 37 ----- .../task-management.component.html | 3 - .../task-management.component.scss | 0 .../task-management.component.spec.ts | 24 --- .../task-management.component.ts | 22 --- .../create-user/create-user.component.html | 140 ----------------- .../create-user/create-user.component.scss | 3 - .../create-user/create-user.component.spec.ts | 24 --- .../create-user/create-user.component.ts | 95 ------------ .../users/edit-user/edit-user.component.html | 77 ---------- .../users/edit-user/edit-user.component.scss | 0 .../edit-user/edit-user.component.spec.ts | 24 --- .../users/edit-user/edit-user.component.ts | 35 ----- src/app/self-service/users/user.model.ts | 9 -- .../self-service/users/user.service.spec.ts | 15 -- src/app/self-service/users/user.service.ts | 57 ------- .../self-service/users/users.component.html | 94 ------------ .../self-service/users/users.component.scss | 12 -- .../users/users.component.spec.ts | 24 --- src/app/self-service/users/users.component.ts | 98 ------------ .../users/view-user/view-user.component.html | 119 --------------- .../users/view-user/view-user.component.scss | 14 -- .../view-user/view-user.component.spec.ts | 24 --- .../users/view-user/view-user.component.ts | 62 -------- .../users/view-user/view-user.resolver.ts | 31 ---- 53 files changed, 4 insertions(+), 1720 deletions(-) delete mode 100644 src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.html delete mode 100644 src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.scss delete mode 100644 src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.spec.ts delete mode 100644 src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.ts delete mode 100644 src/app/self-service/app-configuration/app-configuration.component.html delete mode 100644 src/app/self-service/app-configuration/app-configuration.component.scss delete mode 100644 src/app/self-service/app-configuration/app-configuration.component.spec.ts delete mode 100644 src/app/self-service/app-configuration/app-configuration.component.ts delete mode 100644 src/app/self-service/self-service-routing.module.ts delete mode 100644 src/app/self-service/self-service.component.html delete mode 100644 src/app/self-service/self-service.component.scss delete mode 100644 src/app/self-service/self-service.component.spec.ts delete mode 100644 src/app/self-service/self-service.component.ts delete mode 100644 src/app/self-service/self-service.module.spec.ts delete mode 100644 src/app/self-service/self-service.module.ts delete mode 100644 src/app/self-service/task-management/task-management.component.html delete mode 100644 src/app/self-service/task-management/task-management.component.scss delete mode 100644 src/app/self-service/task-management/task-management.component.spec.ts delete mode 100644 src/app/self-service/task-management/task-management.component.ts delete mode 100644 src/app/self-service/users/create-user/create-user.component.html delete mode 100644 src/app/self-service/users/create-user/create-user.component.scss delete mode 100644 src/app/self-service/users/create-user/create-user.component.spec.ts delete mode 100644 src/app/self-service/users/create-user/create-user.component.ts delete mode 100644 src/app/self-service/users/edit-user/edit-user.component.html delete mode 100644 src/app/self-service/users/edit-user/edit-user.component.scss delete mode 100644 src/app/self-service/users/edit-user/edit-user.component.spec.ts delete mode 100644 src/app/self-service/users/edit-user/edit-user.component.ts delete mode 100644 src/app/self-service/users/user.model.ts delete mode 100644 src/app/self-service/users/user.service.spec.ts delete mode 100644 src/app/self-service/users/user.service.ts delete mode 100644 src/app/self-service/users/users.component.html delete mode 100644 src/app/self-service/users/users.component.scss delete mode 100644 src/app/self-service/users/users.component.spec.ts delete mode 100644 src/app/self-service/users/users.component.ts delete mode 100644 src/app/self-service/users/view-user/view-user.component.html delete mode 100644 src/app/self-service/users/view-user/view-user.component.scss delete mode 100644 src/app/self-service/users/view-user/view-user.component.spec.ts delete mode 100644 src/app/self-service/users/view-user/view-user.component.ts delete mode 100644 src/app/self-service/users/view-user/view-user.resolver.ts diff --git a/e2e/testRigor/testcases/logout.txt b/e2e/testRigor/testcases/logout.txt index c77ed7e3a..2b25e1d0e 100644 --- a/e2e/testRigor/testcases/logout.txt +++ b/e2e/testRigor/testcases/logout.txt @@ -8,7 +8,6 @@ check that page contains button "Institution" check that page contains button "Accounting" check that page contains button "Reports" check that page contains button "Admin" -check that page contains button "Self Service" check that page contains button "Configuration Wizard" logout validate-login-page diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 415e34232..7fd8232d7 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -22,7 +22,6 @@ import { ClientsModule } from './clients/clients.module'; import { GroupsModule } from './groups/groups.module'; import { CentersModule } from './centers/centers.module'; import { AccountingModule } from './accounting/accounting.module'; -import { SelfServiceModule } from './self-service/self-service.module'; import { SystemModule } from './system/system.module'; import { ProductsModule } from './products/products.module'; import { OrganizationModule } from './organization/organization.module'; @@ -96,7 +95,6 @@ export function HttpLoaderFactory(http: HttpClient) { GroupsModule, CentersModule, AccountingModule, - SelfServiceModule, SystemModule, ProductsModule, OrganizationModule, 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 6e04f34c1..4b04874d6 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 @@ -14,5 +14,4 @@ - 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 e7b21915e..41ea93588 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 @@ -28,7 +28,6 @@ export class ClientActionsComponent { 'Add Charge': boolean; 'Take Survey': boolean; 'Client Screen Reports': boolean; - 'Create Self Service User': boolean; 'Create Collateral': boolean; } = { 'Assign Staff': false, @@ -46,7 +45,6 @@ export class ClientActionsComponent { 'Add Charge': false, 'Take Survey': false, 'Client Screen Reports': false, - 'Create Self Service User': false, 'Create Collateral': false }; diff --git a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.html b/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.html deleted file mode 100644 index 9f5fe54d3..000000000 --- a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.html +++ /dev/null @@ -1,122 +0,0 @@ -
- -
- -
- - {{ 'labels.inputs.User Name' | translate }} - - - {{ 'labels.inputs.User Name' | translate }} {{ 'labels.commons.is' | translate }} - {{ 'labels.commons.required' | translate }} - - - - - {{ 'labels.inputs.First Name' | translate }} - - - {{ 'labels.inputs.First Name' | translate }} {{ 'labels.commons.is' | translate }} - {{ 'labels.commons.required' | translate }} - - - - - {{ 'labels.inputs.Last Name' | translate }} - - - {{ 'labels.inputs.Last Name' | translate }} {{ 'labels.commons.is' | translate }} - {{ 'labels.commons.required' | translate }} - - - - - {{ 'labels.inputs.Email' | translate }} - - - {{ 'labels.inputs.Email' | translate }} {{ 'labels.commons.is' | translate }} - {{ 'labels.commons.required' | translate }} - - - {{ 'labels.inputs.Email should be a' | translate }} - {{ 'labels.inputs.valid' | translate }} {{ 'labels.inputs.email' | translate }}. - - - - - {{ 'labels.inputs.Auto Generate Password' | translate }} - - -
- - {{ 'labels.inputs.Override Password Expire Policy' | translate }} ? - - - -
- - - {{ 'labels.inputs.Password' | translate }} - - - {{ 'labels.inputs.Password' | translate }} {{ 'labels.commons.is required' | translate }} - - - {{ 'labels.commons.Password should be at least' | translate }} - {{ 'labels.commons.12 characters long' | translate }} - - - {{ 'labels.commons.Password should not be more than' | translate }} - {{ 'labels.commons.50 characters long' | translate }} - - - {{ 'labels.commons.Password should include a' | translate }} - {{ 'labels.commons.numeral' | translate }} {{ 'labels.commons.and at' | translate }} - {{ 'labels.commons.least one uppercase' | translate }} - , {{ 'labels.commons.lowercase and special character' | translate }} - - - - - {{ 'labels.inputs.Repeat Password' | translate }} - - - {{ 'labels.inputs.Repeat password' | translate }} {{ 'labels.commons.is' | translate }} - {{ 'labels.commons.required' | translate }} - - - {{ 'labels.inputs.Passwords should be' | translate }} - {{ 'labels.inputs.matched' | translate }} - - - - - {{ 'labels.inputs.Status' | translate }} - - -
- - - - - - -
-
-
-
diff --git a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.scss b/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.scss deleted file mode 100644 index c74f1131a..000000000 --- a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.scss +++ /dev/null @@ -1,17 +0,0 @@ -.fa-question-circle { - color: #1abc9c; -} - -.fa { - display: inline-block; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -mat-card { - box-sizing: border-box; -} diff --git a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.spec.ts b/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.spec.ts deleted file mode 100644 index bcde143a1..000000000 --- a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CreateSelfServiceUserComponent } from './create-self-service-user.component'; - -describe('CreateSelfServiceUserComponent', () => { - let component: CreateSelfServiceUserComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [CreateSelfServiceUserComponent] - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CreateSelfServiceUserComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.ts b/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.ts deleted file mode 100644 index 74210432c..000000000 --- a/src/app/clients/clients-view/client-actions/create-self-service-user/create-self-service-user.component.ts +++ /dev/null @@ -1,109 +0,0 @@ -/** Angular Imports. */ -import { Component, OnInit } from '@angular/core'; -import { - UntypedFormBuilder, - UntypedFormGroup, - UntypedFormControl, - Validators, - AbstractControl, - ValidationErrors, - ValidatorFn -} from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subscription } from 'rxjs'; - -/** Client Services. */ -import { ClientsService } from 'app/clients/clients.service'; -import { PasswordsUtility } from 'app/core/utils/passwords-utility'; - -@Component({ - selector: 'mifosx-create-self-service-user', - templateUrl: './create-self-service-user.component.html', - styleUrls: ['./create-self-service-user.component.scss'] -}) -export class CreateSelfServiceUserComponent implements OnInit { - createSelfServiceForm: UntypedFormGroup; - clientData: any; - hidePasswordField = true; - - constructor( - private formBuilder: UntypedFormBuilder, - private route: ActivatedRoute, - private clientService: ClientsService, - private router: Router, - private passwordsUtility: PasswordsUtility - ) { - this.route.data.subscribe((data: { clientActionData: any }) => { - this.clientData = data.clientActionData; - }); - } - - ngOnInit(): void { - this.createSelfServiceUser(); - this.sendPasswordToEmailChange(); - } - - /** - * Send Password To Email Change. - */ - sendPasswordToEmailChange() { - this.createSelfServiceForm.controls.sendPasswordToEmail.valueChanges.subscribe((value: any) => { - if (value === true) { - this.hidePasswordField = true; - this.createSelfServiceForm.removeControl('password'); - this.createSelfServiceForm.removeControl('repeatPassword'); - } else { - this.hidePasswordField = false; - this.createSelfServiceForm.addControl( - 'password', - new UntypedFormControl('', this.passwordsUtility.getPasswordValidators()) - ); - this.createSelfServiceForm.addControl( - 'repeatPassword', - new UntypedFormControl('', [ - Validators.required, - this.passwordsUtility.confirmPassword('password')]) - ); - } - }); - } - - /** - * Create Self User Form. - */ - createSelfServiceUser() { - this.createSelfServiceForm = this.formBuilder.group({ - username: new UntypedFormControl('', [Validators.required]), - firstname: new UntypedFormControl(this.clientData.firstname, [Validators.required]), - lastname: new UntypedFormControl(this.clientData.lastname, [Validators.required]), - email: new UntypedFormControl('', [ - Validators.required, - Validators.email - ]), - sendPasswordToEmail: new UntypedFormControl(true), - passwordNeverExpires: new UntypedFormControl(false), - status: new UntypedFormControl({ - value: this.clientData.subStatus.active ? 'Active' : 'Inactive', - disabled: true - }) - }); - } - - /** - * Submit form. - */ - submit() { - if (!this.createSelfServiceForm.get('passwordNeverExpires').value) { - this.createSelfServiceForm.removeControl('passwordNeverExpires'); - } - const clientId = this.clientData.id.toString(); - const selfServiceForm = this.createSelfServiceForm.value; - (selfServiceForm.roles = [2]), (selfServiceForm.isSelfServiceUser = true); - selfServiceForm.staffId = this.clientData.staffId; - selfServiceForm.clients = [clientId]; - selfServiceForm.officeId = this.clientData.officeId; - this.clientService.createSelfServiceUser(selfServiceForm).subscribe(() => { - this.router.navigate(['../../general'], { relativeTo: this.route }); - }); - } -} diff --git a/src/app/clients/clients-view/clients-view.component.html b/src/app/clients/clients-view/clients-view.component.html index fbf5b4a52..c031a86b4 100644 --- a/src/app/clients/clients-view/clients-view.component.html +++ b/src/app/clients/clients-view/clients-view.component.html @@ -317,9 +317,6 @@ {{ 'labels.buttons.View Standing Instructions' | translate }} - diff --git a/src/app/clients/clients-view/clients-view.component.ts b/src/app/clients/clients-view/clients-view.component.ts index 57570bcf8..a639c56c7 100644 --- a/src/app/clients/clients-view/clients-view.component.ts +++ b/src/app/clients/clients-view/clients-view.component.ts @@ -75,7 +75,6 @@ export class ClientsViewComponent implements OnInit { case 'Undo Rejection': case 'Add Charge': case 'Create Collateral': - case 'Create Self Service User': case 'Client Screen Reports': this.router.navigate([`actions/${name}`], { relativeTo: this.route }); break; diff --git a/src/app/clients/clients.module.ts b/src/app/clients/clients.module.ts index 247b2d42d..7ae349703 100644 --- a/src/app/clients/clients.module.ts +++ b/src/app/clients/clients.module.ts @@ -54,7 +54,6 @@ import { ClientPreviewStepComponent } from './client-stepper/client-preview-step import { ClientAddressStepComponent } from './client-stepper/client-address-step/client-address-step.component'; import { ClientFamilyMemberDialogComponent } from './client-stepper/client-family-members-step/client-family-member-dialog/client-family-member-dialog.component'; import { CaptureImageDialogComponent } from './clients-view/custom-dialogs/capture-image-dialog/capture-image-dialog.component'; -import { CreateSelfServiceUserComponent } from './clients-view/client-actions/create-self-service-user/create-self-service-user.component'; import { AddClientCollateralComponent } from './clients-view/client-actions/add-client-collateral/add-client-collateral.component'; import { ClientDatatableStepComponent } from './client-stepper/client-datatable-step/client-datatable-step.component'; @@ -117,7 +116,6 @@ import { ClientDatatableStepComponent } from './client-stepper/client-datatable- ClientAddressStepComponent, ClientFamilyMemberDialogComponent, CaptureImageDialogComponent, - CreateSelfServiceUserComponent, AddClientCollateralComponent, ClientDatatableStepComponent ], diff --git a/src/app/clients/common-resolvers/client-actions.resolver.ts b/src/app/clients/common-resolvers/client-actions.resolver.ts index 54d3032bd..ddd428747 100644 --- a/src/app/clients/common-resolvers/client-actions.resolver.ts +++ b/src/app/clients/common-resolvers/client-actions.resolver.ts @@ -57,8 +57,6 @@ export class ClientActionsResolver implements Resolve { case 'Accept Transfer': case 'Reject Transfer': return this.clientsService.getClientTransferProposalDate(clientId); - case 'Create Self Service User': - return this.clientsService.getClientData(clientId); default: return undefined; } diff --git a/src/app/core/authentication/authentication.service.ts b/src/app/core/authentication/authentication.service.ts index 548604dcb..199eef2bc 100644 --- a/src/app/core/authentication/authentication.service.ts +++ b/src/app/core/authentication/authentication.service.ts @@ -25,6 +25,9 @@ import { OAuth2Token } from './o-auth2-token.model'; */ @Injectable() export class AuthenticationService { + changePassword(userId: string, passwordObj: any) { + return this.http.put(`/users/${userId}`, passwordObj); + } // User logged in boolean private userLoggedIn: boolean; diff --git a/src/app/core/shell/sidenav/frequent-activities.ts b/src/app/core/shell/sidenav/frequent-activities.ts index c207572ed..e921995d4 100644 --- a/src/app/core/shell/sidenav/frequent-activities.ts +++ b/src/app/core/shell/sidenav/frequent-activities.ts @@ -48,10 +48,5 @@ export const frequentActivities: any[] = [ path: '/templates', icon: 'address-card', toolTip: 'Templates' - }, - { - path: '/self-service', - icon: 'laptop', - toolTip: 'Self Service' } ]; diff --git a/src/app/core/shell/sidenav/sidenav.component.ts b/src/app/core/shell/sidenav/sidenav.component.ts index 6bc24ed27..0fb7654a6 100644 --- a/src/app/core/shell/sidenav/sidenav.component.ts +++ b/src/app/core/shell/sidenav/sidenav.component.ts @@ -147,8 +147,6 @@ export class SidenavComponent implements OnInit, AfterViewInit { this.pushActivity('/products'); } else if (activity.includes('/templates')) { this.pushActivity('/templates'); - } else if (activity.includes('/self-service')) { - this.pushActivity('/self-service'); } }); this.mappedActivities.reverse(); diff --git a/src/app/core/shell/toolbar/toolbar.component.html b/src/app/core/shell/toolbar/toolbar.component.html index 3b163c7d4..5e3944acc 100644 --- a/src/app/core/shell/toolbar/toolbar.component.html +++ b/src/app/core/shell/toolbar/toolbar.component.html @@ -44,17 +44,6 @@ {{ 'labels.menus.Admin' | translate }} - - - {{ 'labels.menus.Self Service' | translate }} - - {{ 'labels.menus.Configuration Wizard' | translate }} @@ -104,7 +93,6 @@ - @@ -127,16 +115,6 @@ - - - - - - - - - - - -
-
- -
- - {{ 'labels.inputs.Office' | translate }} - - - {{ office.name }} - - - - {{ 'labels.inputs.Office' | translate }} {{ 'labels.commons.is' | translate }} - {{ 'labels.commons.required' | translate }} - - - - - {{ 'labels.inputs.Staff' | translate }} - - - {{ staff.displayName }} - - - - - - {{ 'labels.inputs.User Name' | translate }} - - - - - - - {{ 'labels.inputs.First Name' | translate }} - - - - - {{ 'labels.inputs.Last Name' | translate }} - - - - - {{ 'labels.inputs.Gender' | translate }} - - - {{ gender }} - - - - - - {{ 'labels.inputs.Date of Birth' | translate }} - - - - - - - {{ 'labels.inputs.Email' | translate }} - - - - - {{ 'labels.inputs.Mobile No' | translate }} - - -
-
- - - - - -
-
- - diff --git a/src/app/self-service/users/create-user/create-user.component.scss b/src/app/self-service/users/create-user/create-user.component.scss deleted file mode 100644 index 6d9fea192..000000000 --- a/src/app/self-service/users/create-user/create-user.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -.small-width-container { - max-width: 37rem; -} diff --git a/src/app/self-service/users/create-user/create-user.component.spec.ts b/src/app/self-service/users/create-user/create-user.component.spec.ts deleted file mode 100644 index c2f14c7ec..000000000 --- a/src/app/self-service/users/create-user/create-user.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CreateUserComponent } from './create-user.component'; - -describe('CreateUserComponent', () => { - let component: CreateUserComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [CreateUserComponent] - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CreateUserComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/self-service/users/create-user/create-user.component.ts b/src/app/self-service/users/create-user/create-user.component.ts deleted file mode 100644 index 8ee11911c..000000000 --- a/src/app/self-service/users/create-user/create-user.component.ts +++ /dev/null @@ -1,95 +0,0 @@ -/** Angular Imports */ -import { Component, OnInit } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; -import { ClientsService } from 'app/clients/clients.service'; -import { SettingsService } from 'app/settings/settings.service'; - -/** - * Create self service user component. - * - * TODO: Complete functionality once API is available. - */ -@Component({ - selector: 'mifosx-create-user', - templateUrl: './create-user.component.html', - styleUrls: ['./create-user.component.scss'] -}) -export class CreateUserComponent implements OnInit { - /** Create Client Form */ - createUserForm: UntypedFormGroup; - - /** Denotes type of user. */ - userTypes = [ - 'Existing User', - 'New User' - ]; - /** Radio button group form control for type of user. */ - userType = new UntypedFormControl(this.userTypes[0]); - /** Placeholder for office data. */ - offices: any[] = []; - /** Placeholder for staff data. */ - staffOptions: any[] = []; - /** Placeholder for staff data. */ - genderOptions: any[] = []; - /** Placeholder for client data. */ - clientData: any[] = []; - /** Placeholder for gender data. */ - genderData = [ - 'Male', - 'Female' - ]; - /** Minimum date of birth of user allowed. */ - minDate = new Date(1900, 0, 1); - /** Maximum date of birth of user allowed. */ - maxDate = new Date(); - - /** - * @param {SettingsService} settingsService Settings Service - */ - constructor( - private formBuilder: UntypedFormBuilder, - private route: ActivatedRoute, - private clientService: ClientsService, - private settingsService: SettingsService - ) { - this.route.data.subscribe((data: { offices: any }) => { - this.offices = data.offices; - }); - } - - ngOnInit() { - this.minDate = this.settingsService.minAllowedDate; - this.maxDate = this.settingsService.businessDate; - this.setClientForm(); - this.buildDependencies(); - } - - /** - * Creates the client form. - */ - setClientForm() { - this.createUserForm = this.formBuilder.group({ - officeId: [ - '', - Validators.required - ], - staffId: [ - '', - Validators.required - ] - }); - } - - /** - * Adds controls conditionally. - */ - buildDependencies() { - this.createUserForm.get('officeId').valueChanges.subscribe((officeId: number) => { - this.clientService.getClientWithOfficeTemplate(officeId).subscribe((clientTemplate: any) => { - this.staffOptions = clientTemplate.staffOptions; - this.genderOptions = clientTemplate.genderOptions; - }); - }); - } -} diff --git a/src/app/self-service/users/edit-user/edit-user.component.html b/src/app/self-service/users/edit-user/edit-user.component.html deleted file mode 100644 index 4bf373320..000000000 --- a/src/app/self-service/users/edit-user/edit-user.component.html +++ /dev/null @@ -1,77 +0,0 @@ -
- -
- -
- - {{ 'labels.inputs.Office' | translate }} - - - {{ office }} - - - - - - {{ 'labels.inputs.Staff' | translate }} - - - {{ staff }} - - - - - - {{ 'labels.inputs.User Name' | translate }} - - - - - - - {{ 'labels.inputs.First Name' | translate }} - - - - - {{ 'labels.inputs.Last Name' | translate }} - - - - - {{ 'labels.inputs.Gender' | translate }} - - - {{ gender }} - - - - - - {{ 'labels.inputs.Date of Birth' | translate }} - - - - - - - {{ 'labels.inputs.Email' | translate }} - - - - - {{ 'labels.inputs.Mobile No' | translate }} - - -
-
- - - - - -
-
-
diff --git a/src/app/self-service/users/edit-user/edit-user.component.scss b/src/app/self-service/users/edit-user/edit-user.component.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/app/self-service/users/edit-user/edit-user.component.spec.ts b/src/app/self-service/users/edit-user/edit-user.component.spec.ts deleted file mode 100644 index a8d5bb071..000000000 --- a/src/app/self-service/users/edit-user/edit-user.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { EditUserComponent } from './edit-user.component'; - -describe('EditUserComponent', () => { - let component: EditUserComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [EditUserComponent] - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(EditUserComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/self-service/users/edit-user/edit-user.component.ts b/src/app/self-service/users/edit-user/edit-user.component.ts deleted file mode 100644 index aa6a7e285..000000000 --- a/src/app/self-service/users/edit-user/edit-user.component.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** Angular Imports */ -import { Component, OnInit } from '@angular/core'; -import { SettingsService } from 'app/settings/settings.service'; - -/** - * Edit self service user component. - * - * TODO: Complete functionality once API is available. - */ -@Component({ - selector: 'mifosx-edit-user', - templateUrl: './edit-user.component.html', - styleUrls: ['./edit-user.component.scss'] -}) -export class EditUserComponent implements OnInit { - /** Placeholder for office data. */ - officeData: any; - /** Placeholder for staff data. */ - staffData: any; - /** Placeholder for gender data. */ - genderData: any; - /** Minimum date of birth of user allowed. */ - minDate = new Date(1900, 0, 1); - /** Maximum date of birth of user allowed. */ - maxDate = new Date(); - - /** - * @param {SettingsService} settingsService Settings Service - */ - constructor(private settingsService: SettingsService) {} - - ngOnInit() { - this.maxDate = this.settingsService.businessDate; - } -} diff --git a/src/app/self-service/users/user.model.ts b/src/app/self-service/users/user.model.ts deleted file mode 100644 index 8d4a4dada..000000000 --- a/src/app/self-service/users/user.model.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** Self Service User model. */ -export interface User { - id: number; - name: string; - email: string; - isSelfServiceUser: boolean; - officeName: string; - staff: string; -} diff --git a/src/app/self-service/users/user.service.spec.ts b/src/app/self-service/users/user.service.spec.ts deleted file mode 100644 index b26195c25..000000000 --- a/src/app/self-service/users/user.service.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { TestBed, inject } from '@angular/core/testing'; - -import { UserService } from './user.service'; - -describe('UserService', () => { - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [UserService] - }); - }); - - it('should be created', inject([UserService], (service: UserService) => { - expect(service).toBeTruthy(); - })); -}); diff --git a/src/app/self-service/users/user.service.ts b/src/app/self-service/users/user.service.ts deleted file mode 100644 index 3d54d8705..000000000 --- a/src/app/self-service/users/user.service.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** Angular Routes */ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpParams } from '@angular/common/http'; - -/** rxjs Imports */ -import { Observable } from 'rxjs'; -import { map } from 'rxjs/operators'; - -/** Custom Models */ -import { User } from './user.model'; - -/** - * Self service users service. - * - * TODO: Complete functionality once API is available. - */ -@Injectable({ - providedIn: 'root' -}) -export class UserService { - /** - * @param {HttpClient} http Http Client to send requests. - */ - constructor(private http: HttpClient) {} - - /** - * Gets all the self service users. - * - * TODO: To be replaced once API is available. - */ - getUsers(): Observable { - const httpParams = new HttpParams().set('fields', 'id,firstname,lastname,email,officeName,staff'); - return this.http.get('/users', { params: httpParams }).pipe( - map((users: any) => { - users.forEach((user: any) => { - user.name = `${user.firstname} ${user.lastname}`; - user.staff = user.staff ? `${user.staff.firstname} ${user.staff.lastname}` : ''; - delete user.firstname; - delete user.lastname; - }); - return users as User[]; - }) - ); - } - - /** - * Change User Password. - * @param userId User Id of users - * @param password New Password of the user - * @returns {Observable} - * - * TODO: update endpoint once API available - */ - changePassword(userId: string, passwordObj: any) { - return this.http.put(`/users/${userId}`, passwordObj); - } -} diff --git a/src/app/self-service/users/users.component.html b/src/app/self-service/users/users.component.html deleted file mode 100644 index 6d2ca12b9..000000000 --- a/src/app/self-service/users/users.component.html +++ /dev/null @@ -1,94 +0,0 @@ -
- - - - -
- -
-
- - {{ 'labels.inputs.Filter' | translate }} - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - {{ 'labels.inputs.name' | translate }}{{ user.name }}{{ 'labels.inputs.User ID' | translate }}{{ user.id }}{{ 'labels.inputs.Email ID' | translate }}{{ user.email }} - {{ 'labels.inputs.Status' | translate }} - -
- -
-
{{ 'labels.inputs.Office' | translate }}{{ user.officeName }}{{ 'labels.inputs.Staff' | translate }}{{ user.staff }}
- - -
-
diff --git a/src/app/self-service/users/users.component.scss b/src/app/self-service/users/users.component.scss deleted file mode 100644 index c7350db93..000000000 --- a/src/app/self-service/users/users.component.scss +++ /dev/null @@ -1,12 +0,0 @@ -table { - width: 100%; -} - -// TODO: CONFIGURE THESE CLASSES GLOBALLY -.inactive { - color: #d3d3d3; -} - -.active { - color: #32cd32; -} diff --git a/src/app/self-service/users/users.component.spec.ts b/src/app/self-service/users/users.component.spec.ts deleted file mode 100644 index 6baec2df2..000000000 --- a/src/app/self-service/users/users.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { UsersComponent } from './users.component'; - -describe('UsersComponent', () => { - let component: UsersComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [UsersComponent] - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(UsersComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/self-service/users/users.component.ts b/src/app/self-service/users/users.component.ts deleted file mode 100644 index 0e4c58b68..000000000 --- a/src/app/self-service/users/users.component.ts +++ /dev/null @@ -1,98 +0,0 @@ -/** Angular Imports */ -import { Component, OnInit, ViewChild } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { SelectionModel } from '@angular/cdk/collections'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; - -/** Custom Services */ -import { UserService } from './user.service'; - -/** Custom Model */ -import { User } from './user.model'; - -/** - * Self service users component. - * - * TODO: Complete functionality once API is available. - */ -@Component({ - selector: 'mifosx-users', - templateUrl: './users.component.html', - styleUrls: ['./users.component.scss'] -}) -export class UsersComponent implements OnInit { - /** Self service users. */ - userData: User[]; - /** Columns to be displayed in users table. */ - displayedColumns: string[] = [ - 'select', - 'name', - 'id', - 'email', - 'status', - 'officeName', - 'staff' - ]; - /** Data source for users table. */ - dataSource: MatTableDataSource; - /** Selection model for users table. */ - selection = new SelectionModel(true, []); - - /** Paginator for users table. */ - @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; - /** Sorter for users table. */ - @ViewChild(MatSort, { static: true }) sort: MatSort; - - /** - * Retrieves the users data from `resolve`. - * @param {ActivatedRoute} route Activated Route. - */ - constructor(private route: ActivatedRoute) { - this.route.data.subscribe((data: { users: User[] }) => { - this.userData = []; - data.users.forEach((user: any) => { - if (user.isSelfServiceUser) { - this.userData.push(user); - } - }); - }); - } - - /** - * Initializes the data source, paginator and sorter for users table. - */ - ngOnInit() { - this.dataSource = new MatTableDataSource(this.userData); - this.dataSource.paginator = this.paginator; - this.dataSource.sort = this.sort; - } - - /** - * Filters data in users table based on passed value. - * @param {string} filterValue Value to filter data. - */ - applyFilter(filterValue: string) { - this.dataSource.filter = filterValue.trim().toLowerCase(); - } - - /** - * Checks if all rows of users table are selected. - * @returns {boolean} True if all rows are selected. - */ - isAllSelected(): boolean { - const numSelected = this.selection.selected.length; - const numRows = this.dataSource.data.length; - return numSelected === numRows; - } - - /** - * Toggles selection for all rows of users table. - */ - masterToggle() { - this.isAllSelected() - ? this.selection.clear() - : this.dataSource.data.forEach((row: User) => this.selection.select(row)); - } -} diff --git a/src/app/self-service/users/view-user/view-user.component.html b/src/app/self-service/users/view-user/view-user.component.html deleted file mode 100644 index baa0de698..000000000 --- a/src/app/self-service/users/view-user/view-user.component.html +++ /dev/null @@ -1,119 +0,0 @@ -
- - - - - -
- -
- - -
-
- -    - {{ 'labels.inputs.ID' | translate }}: {{ user.id }} -
- -
- {{ 'labels.inputs.User Name' | translate }} -
- -
- {{ user.username }} -
- -
- {{ 'labels.inputs.First Name' | translate }} -
- -
- {{ user.firstName }} -
- -
- {{ 'labels.inputs.Last Name' | translate }} -
- -
- {{ user.lastName }} -
- -
- {{ 'labels.inputs.Gender' | translate }} -
- -
- {{ user.gender }} -
- -
- {{ 'labels.inputs.Date of Birth' | translate }} -
- -
- {{ user.dateOfBirth }} -
- -
- {{ 'labels.inputs.Email' | translate }} -
- -
- {{ user.email }} -
- -
- {{ 'labels.inputs.Mobile' | translate }} -
- -
- {{ user.mobile }} -
- -
- {{ 'labels.inputs.Office' | translate }} -
- -
- {{ user.office }} -
- -
- {{ 'labels.inputs.Staff' | translate }} -
- -
- {{ user.staff }} -
- -
- {{ 'labels.inputs.Activation Date' | translate }} -
- -
- {{ user.activationDate }} -
-
-
- - - - -
-
diff --git a/src/app/self-service/users/view-user/view-user.component.scss b/src/app/self-service/users/view-user/view-user.component.scss deleted file mode 100644 index a4541ccaf..000000000 --- a/src/app/self-service/users/view-user/view-user.component.scss +++ /dev/null @@ -1,14 +0,0 @@ -.container { - max-width: 37rem; - - .content { - div { - margin: 1rem 0; - word-wrap: break-word; - - &.header { - font-weight: 500; - } - } - } -} diff --git a/src/app/self-service/users/view-user/view-user.component.spec.ts b/src/app/self-service/users/view-user/view-user.component.spec.ts deleted file mode 100644 index 1977898ae..000000000 --- a/src/app/self-service/users/view-user/view-user.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ViewUserComponent } from './view-user.component'; - -describe('ViewUserComponent', () => { - let component: ViewUserComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ViewUserComponent] - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ViewUserComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/self-service/users/view-user/view-user.component.ts b/src/app/self-service/users/view-user/view-user.component.ts deleted file mode 100644 index 1b70d6594..000000000 --- a/src/app/self-service/users/view-user/view-user.component.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** Angular Imports */ -import { Component } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { ChangePasswordDialogComponent } from 'app/shared/change-password-dialog/change-password-dialog.component'; -import { MatDialog } from '@angular/material/dialog'; - -/** Custom Services. */ -import { UserService } from '../user.service'; - -/** - * View self service user component. - * - * TODO: Complete functionality once API is available. - */ -@Component({ - selector: 'mifosx-view-user', - templateUrl: './view-user.component.html', - styleUrls: ['./view-user.component.scss'] -}) -export class ViewUserComponent { - /** Self service user. */ - user: any; - - /** - * Retrieves the user data from `resolve`. - * @param {ActivatedRoute} route Activated Route. - * @param {UserService} userService Users Service. - * @param {ActivatedRoute} route Activated Route. - * @param {Router} router Router for navigation. - * @param {MatDialog} dialog Dialog reference. - */ - constructor( - private route: ActivatedRoute, - private userService: UserService, - private router: Router, - private dialog: MatDialog - ) { - this.route.data.subscribe((data: { user: any }) => { - this.user = data.user; - }); - } - - /** - * Open Dialog to Change Password - */ - changeUserPassword() { - const changeUserPasswordDialogRef = this.dialog.open(ChangePasswordDialogComponent, { - width: '400px', - height: '300px' - }); - changeUserPasswordDialogRef.afterClosed().subscribe((response: any) => { - if (response.password && response.repeatPassword) { - const password = response.password; - const repeatPassword = response.repeatPassword; - const data = { password: password, repeatPassword: repeatPassword }; - this.userService.changePassword(this.user.id, data).subscribe(() => { - this.router.navigate(['/..']); - }); - } - }); - } -} diff --git a/src/app/self-service/users/view-user/view-user.resolver.ts b/src/app/self-service/users/view-user/view-user.resolver.ts deleted file mode 100644 index 5804b8e90..000000000 --- a/src/app/self-service/users/view-user/view-user.resolver.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** Angular Imports */ -import { Injectable } from '@angular/core'; -import { Resolve } from '@angular/router'; - -/** rxjs Imports */ -import { Observable } from 'rxjs'; - -/** Custom Services */ - -/** Custom Model */ -import { User } from '../user.model'; -import { UsersService } from 'app/users/users.service'; - -/** - * View self service user data resolver. - */ -@Injectable() -export class ViewUserResolver implements Resolve { - /** - * @param {UserService} userService Self service user service. - */ - constructor(private userService: UsersService) {} - - /** - * Returns the user data. - * @returns {Observable} - */ - resolve(): Observable { - return this.userService.getUser('1'); - } -}