Adding search-user to portal-FE-os 84/107684/5
authorRachitha Ramappa <rachitha.ramappa@att.com>
Thu, 14 May 2020 13:03:19 +0000 (18:33 +0530)
committerRachitha Ramappa <rachitha.ramappa@att.com>
Fri, 15 May 2020 11:14:02 +0000 (16:44 +0530)
Change-Id: I7578f95d0e4f91d8499e9c973fc5bfc5a2e45e27
Issue-ID: PORTAL-867
Signed-off-by: rachitha.ramappa@att.com
portal-FE-common/src/app/shared/services/users/users.service.ts
portal-FE-os/src/app/.gitignore
portal-FE-os/src/app/layout/components/search-users/search-users.component.html [moved from portal-FE-common/src/app/layout/components/search-users/search-users.component.html with 94% similarity]
portal-FE-os/src/app/layout/components/search-users/search-users.component.scss [moved from portal-FE-common/src/app/layout/components/search-users/search-users.component.scss with 100% similarity]
portal-FE-os/src/app/layout/components/search-users/search-users.component.spec.ts [moved from portal-FE-common/src/app/layout/components/search-users/search-users.component.spec.ts with 100% similarity]
portal-FE-os/src/app/layout/components/search-users/search-users.component.ts [moved from portal-FE-common/src/app/layout/components/search-users/search-users.component.ts with 91% similarity]
portal-FE-os/src/app/pages/users/user-details-form/user-details-form.component.html
portal-FE-os/src/app/pages/users/user-details-form/user-details-form.component.ts

index 38ebedd..d977f72 100644 (file)
@@ -78,8 +78,7 @@ export class UsersService {
   
   addNewUser(newUserData){
     console.log("User service : ", newUserData);
-    return this.http.post(this.api.saveNewUser, newUserData).subscribe((response)=>{
-    });
+       return this.http.post(this.api.saveNewUser, newUserData);
   }
 
 }
index 75b6dda..fe6b8ee 100644 (file)
@@ -1,5 +1,6 @@
 /ng-material-module.ts
 /layout/
+!layout/components/search-users
 /modals/
 /shared/
 !shared/interceptors/
@@ -67,4 +67,7 @@
         <tr mat-row (click)="setSelectedUser(row)" id="table-row-{{i}}" [ngClass]="{ 'selected': row === selectedUser }"
             *matRowDef="let row; columns: displayedColumns; let i = index;"></tr>
     </table>
+</div>
+<div class="search-user-container" *ngIf="noUserFlag">
+    <p>{{message}} Or <a href="javascript:void(0);" (click)="addNewUser()"><b>Click Here</b></a> to add <b>New User!</b></p>
 </div>
\ No newline at end of file
@@ -56,6 +56,7 @@ export class SearchUsersComponent implements OnInit {
   @ViewChild(MatSort) sort: MatSort;
   @ViewChild(MatPaginator) paginator: MatPaginator;
   @Output() passBackSelectedUser: EventEmitter<any> = new EventEmitter();
+  @Output() userNotFoundFlag = new EventEmitter<boolean>();
   searchString: string;
   txtResults = 'result';
   searchUsersResults: any;
@@ -65,6 +66,8 @@ export class SearchUsersComponent implements OnInit {
   selectedUser: any;
   displayedColumns: string[] = ['firstName'];
   dataSourceMap = new MatTableDataSource(this.searchUsersResults);
+  submitted = false;
+  message = " No users found with your query. Please change your search and try again.";
 
   ngOnInit() {
     this.searchString = '';
@@ -77,6 +80,7 @@ export class SearchUsersComponent implements OnInit {
       this.passBackSelectedUser.emit(systemUser);
   }
 
+  noUserFlag: boolean = false;
   searchUsers() {
     if (!this.isSystemUser) {
       this.isLoading = true;
@@ -85,11 +89,10 @@ export class SearchUsersComponent implements OnInit {
       this.userService.searchUsers(this.searchString).subscribe((_data: PortalAdmin) => {
         this.searchUsersResults = _data;
         if (this.searchUsersResults == null || this.searchUsersResults.length == 0) {
-          const modelRef = this.ngModal.open(ConfirmationModalComponent)
-          modelRef.componentInstance.title = "Confirmation";
-          modelRef.componentInstance.message = " No users found with your query. Please change your search and try again."
+          this.noUserFlag = true;
           this.isLoading = false;
         } else {
+          this.noUserFlag = false;
           this.showUserTable = true;
           this.isLoading = false;
           this.dataSourceMap = new MatTableDataSource(this.searchUsersResults);
@@ -104,4 +107,9 @@ export class SearchUsersComponent implements OnInit {
     this.passBackSelectedUser.emit(this.selectedUser);
   }
 
+  addNewUser() {
+    console.log("Emit the value to parent");
+    this.userNotFoundFlag.emit(true);
+  }
+
 }
index 7fc35e4..bd9d69b 100644 (file)
   </form>  
 </div>
 <div class="modal-footer">
-  <button type="submit" class="btn btn-primary" (click)="addUser()" [disabled]="addNewUserForm.invalid">Next</button> &nbsp;
+  <button type="submit" class="btn btn-primary" (click)="addUser()">Next</button> &nbsp;
     <button type="button" class="btn btn-primary" aria-label="Close" (click)="activeModal.dismiss('Cross')">Close</button>
 </div>
index bea0fcd..33d2b33 100644 (file)
@@ -2,7 +2,8 @@ import { Component, OnInit } from '@angular/core';
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
 import { MustMatch } from 'src/app/shared/helpers/must-match-validator';
 import { UsersService } from 'src/app/shared/services';
-import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
+import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';
+import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component';
 
 @Component({
   selector: 'app-user-details-form',
@@ -13,9 +14,10 @@ export class UserDetailsFormComponent implements OnInit {
   addNewUserForm: FormGroup;
   submitted = false;
 
-  constructor(private formBuilder: FormBuilder, 
+  constructor(private formBuilder: FormBuilder,
     private usersService: UsersService,
-    public activeModal: NgbActiveModal) { }
+    public activeModal: NgbActiveModal,
+    public ngbModal: NgbModal) { }
 
   ngOnInit() {
     this.addNewUserForm = this.formBuilder.group({
@@ -24,7 +26,7 @@ export class UserDetailsFormComponent implements OnInit {
       lastName: ['', Validators.required],
       email: ['', [Validators.required, Validators.email]],
       loginId: ['', Validators.required],
-      loginPwd: ['', [Validators.required, Validators.minLength(6)]],
+      loginPwd: ['', Validators.required],
       confirmPassword: ['', Validators.required]
     }, {
         validator: MustMatch('loginPwd', 'confirmPassword')
@@ -44,7 +46,17 @@ export class UserDetailsFormComponent implements OnInit {
     console.log("New user Json : " + JSON.stringify(this.addNewUserForm.value));
     console.log("Get Raw value : " + this.addNewUserForm.getRawValue());
     let newUserFormData = JSON.stringify(this.addNewUserForm.getRawValue());
-    this.usersService.addNewUser(newUserFormData);
+    this.usersService.addNewUser(newUserFormData).subscribe(result => {
+      console.log("Result : ", result);
+      const modalSuccess = this.ngbModal.open(ConfirmationModalComponent);
+      modalSuccess.componentInstance.title = "Success";
+      modalSuccess.componentInstance.message = 'User added Successfully!';
+    }, error => {
+      console.log("Error : ", error);
+      const modalErrorRef = this.ngbModal.open(ConfirmationModalComponent);
+      modalErrorRef.componentInstance.title = "Error";
+      modalErrorRef.componentInstance.message = 'Something went wrong. Error Message: ' + error.message;
+    })
     this.activeModal.close();
   }