diff options
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp')
91 files changed, 1015 insertions, 631 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin-routing.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin-routing.module.ts new file mode 100644 index 00000000..87d01fa2 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin-routing.module.ts @@ -0,0 +1,30 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; +import {RoleFunctionsComponent} from './role-functions/role-functions.component'; +import {UsageComponent} from './usage/usage.component'; +import {CacheAdminComponent} from './cache-admin/cache-admin.component'; +import {RolesComponent} from './roles/roles.component'; +import {MenusComponent} from './menus/menus.component'; +import {AdminComponent} from './admin.component'; + +const routes: Routes = [ + { + path: '', + component: AdminComponent, + children: [ + {path: 'role_function_list', component: RoleFunctionsComponent}, + {path: 'usage_list', component: UsageComponent}, + {path: 'cache_admin', component: CacheAdminComponent}, + {path: 'admin', component: RolesComponent}, + {path: 'admin_menu_edit', component: MenusComponent}, + ] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AdminRouting { + +} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.html new file mode 100644 index 00000000..0680b43f --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.html @@ -0,0 +1 @@ +<router-outlet></router-outlet> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.scss index e69de29b..e69de29b 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.scss diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.spec.ts index 72e742ff..e93ac925 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.spec.ts @@ -1,6 +1,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { AdminComponent } from './admin.component'; +import { RouterTestingModule } from '@angular/router/testing'; describe('AdminComponent', () => { let component: AdminComponent; @@ -8,7 +9,8 @@ describe('AdminComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ AdminComponent ] + declarations: [ AdminComponent ], + imports: [ RouterTestingModule ] }) .compileComponents(); })); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.ts index ad5498c6..ad5498c6 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.component.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.module.ts new file mode 100644 index 00000000..ba546647 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.module.ts @@ -0,0 +1,46 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { AdminComponent } from './admin.component'; +import {CacheAdminComponent} from './cache-admin/cache-admin.component'; +import {MenusModule} from './menus/menus.module'; +import {UsageModule} from './usage/usage.module'; +import {FormsModule} from '@angular/forms'; +import { + MatExpansionModule, + MatFormFieldModule, + MatPaginatorModule, + MatRadioModule, + MatSlideToggleModule, + MatTableModule, + MatInputModule +} from '@angular/material'; +import {RdpModule} from 'portalsdk-tag-lib'; +import {AdminRouting} from './admin-routing.module'; +import {RoleFunctionsComponent} from './role-functions/role-functions.component'; +import {RolesComponent} from './roles/roles.component'; +import {NewRoleComponent} from './roles/new-role/new-role.component' +import { UserService } from '../shared/services/user/user.service'; + +@NgModule({ + declarations: [AdminComponent, CacheAdminComponent, RoleFunctionsComponent, RolesComponent, NewRoleComponent], + imports: [ + CommonModule, + MenusModule, + UsageModule, + FormsModule, + MatRadioModule, + RdpModule, + AdminRouting, + MatExpansionModule, + MatFormFieldModule, + MatTableModule, + MatSlideToggleModule, + MatPaginatorModule, + MatInputModule + ], + entryComponents: [NewRoleComponent], + exports: [ + ], + providers: [UserService] +}) +export class AdminModule { } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.service.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.service.spec.ts index d23489be..d23489be 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.service.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.service.spec.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.service.ts index 1240e981..2a7135ad 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.service.ts @@ -39,7 +39,7 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { JsonPipe } from '@angular/common'; -import { environment } from '../../../environments/environment'; +import { environment } from '../../environments/environment'; import { Observable } from 'rxjs'; @Injectable({ @@ -51,7 +51,7 @@ export class AdminService { constructor(private http:HttpClient) { } getRoleFunctionList(){ - return this.http.get(environment.roleFunctionList,{ withCredentials: true }); + return this.http.get(environment.roleFunctionList); } saveRoleFunction(roleData:string){ @@ -60,65 +60,65 @@ export class AdminService { getUsageList() { - return this.http.get(environment.usageList,{ withCredentials: true }); + return this.http.get(environment.usageList); } getCacheRegions(){ - return this.http.get(environment.cachedRegions,{ withCredentials: true }); + return this.http.get(environment.cachedRegions); } getRole(roleId){ - return this.http.get(environment.getRole+'?role_id=' + roleId,{ withCredentials: true }); + return this.http.get(environment.getRole+'?role_id=' + roleId); } getFnMenuItems() { - return this.http.get(environment.getFnMenuItems,{ withCredentials: true }); + return this.http.get(environment.getFnMenuItems); } updateFnMenuItem(menuObj: any): Observable<any> { let updateMenuURL = environment.updateFnMenuItem; - return this.http.post(updateMenuURL, menuObj, {withCredentials: true}) + return this.http.post(updateMenuURL, menuObj) } getFunctionCdList(): Observable<any>{ let getFunctionCdListURL = environment.getFunctionCdList; - return this.http.get(getFunctionCdListURL , { withCredentials: true } ); + return this.http.get(getFunctionCdListURL); } getParentData(): Observable<any>{ let getParentDataURL = environment.getParentList; - return this.http.get(getParentDataURL , { withCredentials: true } ); + return this.http.get(getParentDataURL); } deleteRole(roleData:any){ - return this.http.post(environment.deleteRole,JSON.stringify({role: roleData}),{ withCredentials: true }); + return this.http.post(environment.deleteRole,JSON.stringify({role: roleData})); } deleteRoleFunction(roleFunc:any) { - return this.http.post(environment.deleteRoleFunction,roleFunc,{ withCredentials: true }); + return this.http.post(environment.deleteRoleFunction,roleFunc); } removeRoleFunction(roleFunc:any, roleId:any){ let removeRoleFunctionURL = environment.removeRoleFunction+roleId; - return this.http.post(removeRoleFunctionURL,JSON.stringify({roleFunction:roleFunc}),{ withCredentials: true }); + return this.http.post(removeRoleFunctionURL,JSON.stringify({roleFunction:roleFunc})); } saveRole(roleObj:any, roleId:any){ let saveRoleURL = environment.saveRole+roleId; - return this.http.post(saveRoleURL,JSON.stringify(roleObj),{ withCredentials: true }); + return this.http.post(saveRoleURL,JSON.stringify(roleObj)); } deleteMenu(fnMenuItem:any){ - return this.http.post(environment.deleteMenu,JSON.stringify({fnMenuItem: fnMenuItem}),{ withCredentials: true }); + return this.http.post(environment.deleteMenu,JSON.stringify({fnMenuItem: fnMenuItem})); } getCacheRegionDetails(cacheName:any){ - return this.http.get(environment.getRegion+'?cacheName='+cacheName,{ withCredentials: true }); + return this.http.get(environment.getRegion+'?cacheName='+cacheName); } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.html index 8aba64c9..8aba64c9 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.html diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.scss new file mode 100644 index 00000000..39ba7164 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.scss @@ -0,0 +1,68 @@ +table { + width: 100%; +} + +.mat-form-field { + font-size: 14px; + width: 100%; +} + +td, th { + width: 25%; +} + + +.mat-accordion .mat-header-row { + padding-left: 1.5rem; + padding-right: 2rem; + border-bottom: none; +} + + +//copied from https://github.com/angular/material2/blob/master/src/lib/table/table.scss +$mat-header-row-height: 56px; +$mat-row-height: 48px; +$mat-row-horizontal-padding: 24px; + + +.mat-header-row { + min-height: $mat-header-row-height; +} + +.mat-row { + min-height: $mat-row-height; +} + +.mat-row, .mat-header-row { + display: flex; + border-bottom-width: 1px; + border-bottom-style: solid; + align-items: center; + padding: 0 $mat-row-horizontal-padding; + box-sizing: border-box; + + // Workaround for https://goo.gl/pFmjJD in IE 11. Adds a pseudo + // element that will stretch the row the correct height. See: + // https://connect.microsoft.com/IE/feedback/details/802625 + &::after { + display: inline-block; + min-height: inherit; + content: ''; + } +} + +:host::ng-deep .mat-cell, .mat-header-cell { + flex: 1; + overflow: hidden; + word-wrap: break-word; + font-weight: bold; + font-size: 14px; + color: #343a40; +} + +.mat-expansion-panel { + margin: 0; + border-radius: 4px; + overflow: hidden; + transition: margin 225ms cubic-bezier(.4,0,.2,1),box-shadow 280ms cubic-bezier(.4,0,.2,1); +}
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.spec.ts index 03d21797..01ec7a92 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.spec.ts @@ -2,15 +2,14 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CacheAdminComponent } from './cache-admin.component'; import { MatExpansionModule } from '@angular/material'; -import { HttpClientModule } from '@angular/common/http'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { AdminService } from '../admin.service'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/of'; import { CookieService } from 'ngx-cookie-service'; -import { SuccessModalComponent } from 'src/app/modals/success-modal/success-modal.component'; import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { SuccessModalComponent } from '../../modals/success-modal/success-modal.component'; describe('CacheAdminComponent', () => { @@ -31,7 +30,6 @@ describe('CacheAdminComponent', () => { schemas: [CUSTOM_ELEMENTS_SCHEMA], imports:[ MatExpansionModule, - HttpClientModule, HttpClientTestingModule, NgbModule.forRoot() ], diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.ts index d9f5ca80..d9f5ca80 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/cache-admin/cache-admin.component.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.html index 25ae9665..25ae9665 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.html diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.scss index d5bf6ac0..4e88eeb8 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.scss @@ -36,7 +36,7 @@ * */ -table { + table { width: 100%; } @@ -61,4 +61,10 @@ td[_ngcontent-c4], th[_ngcontent-c4] { rdp-data-table{ overflow-x : scroll; +} + +:host::ng-deep .mat-header-cell{ + font-weight: bold; + font-size: 14px; + color: #343a40; }
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.spec.ts index eb8b63dd..49fee828 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.spec.ts @@ -2,13 +2,11 @@ import { async, ComponentFixture, TestBed, inject } from '@angular/core/testing' import { MatTableModule } from '@angular/material/table'; import { MatPaginatorModule } from '@angular/material/paginator'; import { MatSortModule } from '@angular/material/sort'; -import { HttpClientModule } from '@angular/common/http'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing'; import { NgbModule, NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { MenusComponent } from './menus.component'; -import { InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component'; import { AdminService } from '../admin.service'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { HttpClientTestingModule } from '@angular/common/http/testing'; @@ -18,6 +16,7 @@ import { MockBackend } from '@angular/http/testing'; import { BaseRequestOptions, Http } from '@angular/http'; import 'rxjs/add/observable/of'; import { Observable } from 'rxjs/Observable'; +import { InformationModalComponent } from '../../modals/information-modal/information-modal.component'; describe('MenusComponent', () => { let component: MenusComponent; @@ -33,8 +32,7 @@ describe('MenusComponent', () => { InformationModalComponent ], imports: [ MatTableModule, MatPaginatorModule, - MatSortModule, - HttpClientModule, + MatSortModule, HttpClientTestingModule, NoopAnimationsModule, NgbModule.forRoot() @@ -56,11 +54,6 @@ describe('MenusComponent', () => { expect(component).toBeTruthy(); }); - // it('should test getFnMenuItems method inside getMenus',()=>{ - // let spy=spyOn(adminService,'getFnMenuItems').and.returnValue(Observable.of(stubData)) - // component.getMenus(); - // expect(spy).toHaveBeenCalled(); - // }) describe('test getMenus',()=>{ it('should test getMenus',()=>{ let spy=spyOn(adminService,'getParentData').and.returnValue(Observable.of('you object')) diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.ts index 5d996964..c6fbc8c4 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.component.ts @@ -72,12 +72,12 @@ export class MenusComponent implements OnInit { public columns: any = []; activeStatusOptions = [ - {index: 0, value: 'true', name: 'Y'}, - {index: 1, value: 'false', name: 'N'} + {id: '0', name: 'Y'}, + {id: '1', name: 'N'} ]; separatorStatusOptions = [ - {index: 0, value: 'true', name: 'Y'}, - {index: 1, value: 'false', name: 'N'} + {id: '0', name: 'Y'}, + {id: '1', name: 'N'} ]; functionCDselectData = []; parentListSelectData = []; @@ -192,6 +192,7 @@ export class MenusComponent implements OnInit { this.parentList.push({id: _data[i][0], name: _data[i][1]}); } console.log("Actual parent list : ", this.parentList); + this.menuService.getParentList(this.parentList); } }, error => { this.showSpinner = false; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.module.ts index c6f39f6b..99268e9f 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.module.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.module.ts @@ -33,7 +33,7 @@ * * ============LICENSE_END============================================ * - * + * */ import { NgModule } from '@angular/core'; @@ -43,12 +43,13 @@ import { MaterialModule } from 'src/app/material-module'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatFormFieldModule } from '@angular/material/form-field'; import { NewMenuComponent } from './new-menu/new-menu.component'; +import {RdpModule} from 'portalsdk-tag-lib'; @NgModule({ declarations: [MenusComponent, NewMenuComponent], - imports: [ - CommonModule,FormsModule,ReactiveFormsModule,MatFormFieldModule - ], + imports: [ + CommonModule, FormsModule, ReactiveFormsModule, MatFormFieldModule, RdpModule + ], exports: [MenusComponent], bootstrap: [MenusComponent] }) diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts index aeb8ea49..912b65bb 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/menus.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts @@ -104,23 +104,32 @@ export class MenusService implements RdpCrudInterface { data.active = this.updateStatus(data.active); data.separator = this.updateStatus(data.separator); let keys = Object.keys(data); + let menuCache = this.menu; keys.forEach(element => { if (data[element] != null || data[element] != undefined) { if (element == 'parentId') { - this.menu[element] = 1; + if (isNaN(data[element])) { + menuCache[element] = this.updateParentNameToID(data[element]); + } else{ + menuCache[element] = data[element]; + } + console.log("Parent Id to update : ", menuCache[element]); } else { - this.menu[element] = data[element]; + menuCache[element] = data[element]; } } }); - let result = { availableFnMenuItem: this.menu }; + let result = { availableFnMenuItem: menuCache }; let postData = JSON.stringify(result); console.log("postData >>>>>>", postData); this.adminService.updateFnMenuItem(postData) .subscribe(_data => { + console.log("Response : ", _data); this.statusResponse.next("200"); + menuCache = this.menu; }, error => { console.log("Error : ", error); + menuCache = this.menu; }); } @@ -130,11 +139,10 @@ export class MenusService implements RdpCrudInterface { console.log(data.active); data.active = this.updateStatus(data.active); data.separator = this.updateStatus(data.separator); - let result = { availableFnMenuItem: data }; - this.adminService.deleteMenu(result).subscribe(response => { + this.adminService.deleteMenu(data).subscribe(response => { console.log("Response ", response); this.statusResponse.next("200"); - }, error =>{ + }, error => { console.log("Error : ", error); }) } @@ -147,15 +155,44 @@ export class MenusService implements RdpCrudInterface { } } + private updateBooleanValue(data) { + if (data) { + return 'Y'; + } else { + return 'N'; + } + } + + parentList: any; + + getParentList(list) { + this.parentList = list; + } + + private updateParentNameToID(data) { + let val; + this.parentList.forEach(ele => { + if (ele['name'] == data) { + val = ele['id']; + } + }); + console.log("ParentId value ", val); + return val; + } + get() { - console.log("get method is getting called from AppServie data:: "); + console.log("get method is getting called from MenuServie data:: "); let response = this.adminService.getFnMenuItems(); let resp; response.subscribe(res => { - console.log("Get Response : ", res); resp = res; - console.log("edited : ",JSON.parse(resp.data).fnMenuItems); - this.updatedData.next(JSON.parse(resp.data).fnMenuItems); + let responseData = JSON.parse(resp.data).fnMenuItems; + responseData.forEach(element => { + element.active = this.updateBooleanValue(element.active); + element.separator = this.updateBooleanValue(element.separator); + }) + this.updatedData.next(responseData); }) } + } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.html index 6a5426a8..6a5426a8 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.html diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.scss index a8b5f966..a8b5f966 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.scss diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.spec.ts index 1c08a97a..650f09a6 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.spec.ts @@ -36,7 +36,6 @@ * * ============LICENSE_END============================================ * - * */ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; @@ -46,13 +45,10 @@ import { HttpClientTestingModule } from '@angular/common/http/testing'; import { NgbActiveModal, NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; import { RouterTestingModule } from '@angular/router/testing'; import { CookieService } from 'ngx-cookie-service'; -import { MockBackend } from '@angular/http/testing'; -import { BaseRequestOptions, Http } from '@angular/http'; import { AdminService } from '../../admin.service'; import 'rxjs/add/operator/toPromise'; import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { MaterialModule } from 'portalsdk-tag-lib/material-module'; import 'rxjs/add/observable/of'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/catch'; @@ -64,7 +60,6 @@ describe('NewMenuComponent', () => { let component: NewMenuComponent; let fixture: ComponentFixture<NewMenuComponent>; let adminService:AdminService; - // let entryComponents:any; beforeEach(async(() => { TestBed.configureTestingModule({ @@ -149,6 +144,8 @@ describe('NewMenuComponent', () => { let spy=spyOn(adminService,'getFunctionCdList').and.returnValue(Observable.of('your object')); component.getFunctionCDselectData(); expect(spy).toHaveBeenCalled(); + expect(component.result).toEqual('your object'); + expect(component.functionCDselectData).toEqual('your object'); }) describe('should test getFunctionCDselectData method2',()=>{ @@ -156,6 +153,7 @@ describe('NewMenuComponent', () => { let spy= spyOn(adminService,'getFunctionCdList').and.returnValue(Observable.throw({status:404})) component.getFunctionCDselectData(); expect(spy).toHaveBeenCalled(); + expect(component.showSpinner).toEqual(false); }) }) diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.ts index 4acf2252..6e5b0c1a 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/menus/new-menu/new-menu.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/new-menu/new-menu.component.ts @@ -134,7 +134,6 @@ export class NewMenuComponent implements OnInit { }else{ this.menu.menuSetCode='APP'; } - //console.log("selected menu >>>>",this.menu); this.getFunctionCDselectData(); this.getParentData(); } @@ -143,7 +142,6 @@ export class NewMenuComponent implements OnInit { this.showSpinner = true; this.adminService.getParentData() .subscribe( _data => { - //console.log("getParentData :: _data ",_data); this.result = _data; if(_data){ this.parentListSelectData= _data; // data from server @@ -174,9 +172,6 @@ export class NewMenuComponent implements OnInit { } heirarchicalMenuItems.sort(this.sortItems("label")); this.childListSelectData = heirarchicalMenuItems; - //console.log("childListSelectData ::: ",this.childListSelectData); - //console.log("heirarchicalMenuItems ::: ",heirarchicalMenuItems); - //console.log("parentListSelectData ::: ",this.parentListSelectData); } }, error => { this.showSpinner = false; @@ -208,7 +203,6 @@ export class NewMenuComponent implements OnInit { updateFnMenu(){ this.showSpinner = true; - //console.log("updateFnMenu Changes Called..",this.menu); if( this.menu && this.menu.imageSrc == "" ) this.menu.imageSrc = "N/A"; if( this.menu && this.menu.target == "" ) this.menu.target = "N/A"; if( this.menu && this.menu.externalUrl == "" ) this.menu.externalUrl = "N/A"; @@ -230,7 +224,6 @@ export class NewMenuComponent implements OnInit { this.menu.parentId=parseFloat(this.menu.parentId); let data ={availableFnMenuItem: this.menu}; let postData = JSON.stringify(data); - //console.log("postData >>>>>>",postData); this.adminService.updateFnMenuItem(postData) .subscribe( _data => { this.result = _data; @@ -247,7 +240,6 @@ export class NewMenuComponent implements OnInit { } getLeftMenuItems(){ - //console.log("getLeftMenuItems called after update menu"); let sidebarComponent = new SidebarComponent(this.router, this.sidebarService,this.cookieService); sidebarComponent.ngOnInit(); } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.html index 888deca8..888deca8 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.html diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.scss index 56cb1aa3..56cb1aa3 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.scss diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.spec.ts index ecc0947d..ecc0947d 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.spec.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.ts index d0be5145..d0be5145 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/new-role-function/new-role-function.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-function.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-function.ts index 9a00995b..9a00995b 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-function.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-function.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.html index 460f69b3..460f69b3 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.html diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.scss index 7379b988..ec7b2cac 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.scss @@ -35,7 +35,7 @@ * * */ -table { + table { width: 100%; } @@ -54,4 +54,10 @@ td[_ngcontent-c4], th[_ngcontent-c4] { ::ng-deep .mat-form-field-infix { width: 250px; margin-left: 10px; +} + +:host::ng-deep .mat-header-cell{ + font-weight: bold; + font-size: 14px; + color: #343a40; }
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.spec.ts index 9cb908dd..dab6af2b 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.spec.ts @@ -44,11 +44,11 @@ import { CUSTOM_ELEMENTS_SCHEMA} from '@angular/core'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { RdpModule } from 'portalsdk-tag-lib'; import { FormsModule} from '@angular/forms'; -import { UserService } from 'src/app/shared/services/user/user.service'; import { AdminService } from '../admin.service'; import { MatSelectModule} from '@angular/material'; import { Observable } from 'rxjs'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { UserService } from '../../shared/services/user/user.service'; describe('RoleFunctionsComponent', () => { let component: RoleFunctionsComponent; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.ts index 118225d2..3b97be51 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.ts @@ -38,7 +38,7 @@ import { Component, OnInit, Directive, Input, Output, EventEmitter, ViewChildren, QueryList, PipeTransform, ViewChild } from '@angular/core'; import { AdminService } from '../admin.service'; -import {UserService} from '../../../shared/services/user/user.service' +import {UserService} from '../../shared/services/user/user.service' import { User } from 'src/app/shared/services/user/user'; import { of, Observable } from 'rxjs'; import { RoleFunction } from './role-function'; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.service.ts index bd44a63d..bd44a63d 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.service.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.html index f3a7f8ea..f3a7f8ea 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.html diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.scss index 972094c7..972094c7 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.scss diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.spec.ts index 4b496f1b..4eca8263 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.spec.ts @@ -43,21 +43,46 @@ import {FormsModule} from '@angular/forms'; import { NewRoleComponent } from './new-role.component'; import { MatTableModule } from '@angular/material' import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { HttpClient, HttpClientModule } from '@angular/common/http'; import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component'; +import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing'; +import { AdminService } from '../../admin.service'; +import { Observable } from 'rxjs'; +import { InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component'; describe('NewRoleComponent', () => { let component: NewRoleComponent; let fixture: ComponentFixture<NewRoleComponent>; let role1 = ""; + let adminService:AdminService; + var _element={ + "selected":false, + "code":"code", + "type":"type", + "action":"action" + }; beforeEach(async(() => { TestBed.configureTestingModule({ - providers: [NgbActiveModal], + providers: [NgbActiveModal,AdminService], schemas: [CUSTOM_ELEMENTS_SCHEMA] , - declarations: [ NewRoleComponent ], - imports: [FormsModule, MatTableModule, HttpClientTestingModule] + declarations: [ + NewRoleComponent, + ConfirmationModalComponent, + InformationModalComponent + ], + imports: [ + FormsModule, + MatTableModule, + HttpClientTestingModule, + NgbModule.forRoot() + ] + }) + TestBed.overrideModule(BrowserDynamicTestingModule,{ + set:{ + entryComponents:[ConfirmationModalComponent,InformationModalComponent] + } }) .compileComponents(); })); @@ -67,9 +92,41 @@ describe('NewRoleComponent', () => { component = fixture.componentInstance; component.role = role1; fixture.detectChanges(); + adminService=TestBed.get(AdminService); + }); + + it('should create', () => { + expect(component).toBeTruthy(); }); - // it('should create', () => { - // expect(component).toBeTruthy(); - // }); + it('should test delRoleFunctionConfirmPopUp method',()=>{ + component.delRoleFunctionConfirmPopUp("abc","def"); + }) + + it('should test else condition in saveChanges method',()=>{ + spyOn(adminService,'saveRole').and.returnValue(Observable.of('your object')); + component.saveChanges() + }) + + it('should test toggleRoleFunction method',()=>{ + component.finalSelectedRoleFunctions="Indrijeet kuma"; + component.ociavailableRoleFunctions="i"; + component.finalSelectedRoleFunctions="k"; + component.toggleRoleFunction(_element) + }) + + it('should test populateTableData method',()=>{ + component.populateTableData("populateTableData"); + expect(component.roleFunctionDataSource.sort).toEqual(component.sort); + expect(component.roleFunctionDataSource.paginator).toEqual(component.paginator) + }) + + it('should test isRoleAlreadyExist method',()=>{ + component.availableRoles={"name":["currentRoleName"]}; + component.isRoleAlreadyExist("currentRoleName") + }) + + it('it should test openConfirmationModal method',()=>{ + component.openConfirmationModal("test","value"); + }) });
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.ts index 6b1470fa..6b1470fa 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/new-role/new-role.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/new-role/new-role.component.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.html new file mode 100644 index 00000000..7d845fee --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.html @@ -0,0 +1,104 @@ +<!-- + ============LICENSE_START========================================== + ONAP Portal SDK + =================================================================== + Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + =================================================================== + + Unless otherwise specified, all software contained herein is licensed + under the Apache License, Version 2.0 (the "License"); + you may not use this software except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Unless otherwise specified, all documentation contained herein is licensed + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + you may not use this documentation except in compliance with the License. + You may obtain a copy of the License at + + https://creativecommons.org/licenses/by/4.0/ + + Unless required by applicable law or agreed to in writing, documentation + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ============LICENSE_END============================================ + + --> + + <div class="main-container"> + <div id="page-content"> + <div class="ecomp-main-view-title"> + <h3 class="heading-page">Roles</h3> + <span class= "heading-small" *ngIf="isAppCentralized=='true'"><b>Please go to portal to Manage Roles.</b></span> + </div> + + <span class="ecomp-spinner" *ngIf="showSpinner"></span> + + <div class="table-search-div"> + <mat-form-field> + <input matInput type="text" (keyup)="applyFilter($event.target.value)" placeholder="Search in entire table"> + </mat-form-field> + + <button type="button" *ngIf="isAppCentralized=='false'" class="btn btn-primary new-role-button" (click)="openAddNewRoleModal('')"> + <i class="icon ion-md-person-add"></i>Add New Role + </button> + </div> + + <table mat-table [dataSource]="dataSource" matSort> + <ng-container matColumnDef="name"> + <th mat-header-cell *matHeaderCellDef mat-sort-header id="heading1"> Name</th> + <td mat-cell *matCellDef="let rowData"> {{rowData.name}} </td> + </ng-container> + + <ng-container matColumnDef="priority"> + <th mat-header-cell *matHeaderCellDef id="heading2"> Priority</th> + <td mat-cell *matCellDef="let rowData"> {{rowData.priority}} </td> + </ng-container> + + <ng-container matColumnDef="Edit"> + <th mat-header-cell *matHeaderCellDef id="heading3">{{roleHeaders[2]}} </th> + <td id="rowheader_t1_{{i}}" mat-cell *matCellDef="let rowData; let i=index;"> + <span class="icon-trash" id="{{i}}-button-role-edit" + (click)="openAddNewRoleModal(rowData)"> + <i class="ion ion-md-create"></i> + </span> + </td> + </ng-container> + + <ng-container matColumnDef="Active?"> + <th mat-header-cell *matHeaderCellDef id="heading4"> {{roleHeaders[3]}} </th> + <td mat-cell *matCellDef="let rowData"> + <mat-slide-toggle [(ngModel)]="rowData.active" (change)="toggleRole(rowData)"></mat-slide-toggle> + </td> + </ng-container> + + <ng-container matColumnDef="Delete?"> + <th mat-header-cell *matHeaderCellDef id="heading6"> {{roleHeaders[4]}} </th> + <td id="rowheader_t1_{{i}}" mat-cell *matCellDef="let rowData; let i=index;"> + <span class="icon-trash" id="{{i}}-button-role-remove" + (click)="delRoleConfirmPopUp(rowData)"> + <i class="icon ion-md-trash"></i> + </span> + </td> + </ng-container> + <tr mat-header-row *matHeaderRowDef="roleHeaders"></tr> + <tr mat-row *matRowDef="let rowData; columns: roleHeaders;"> + </table> + <mat-paginator [pageSizeOptions]="[5, 10, 25, 100]"></mat-paginator> + <span class="ecomp-spinner" *ngIf="showSpinner"></span> + <div> + <a (click)="getFunctions()" id="functions-link">Manage Role Functions</a><br><br> + </div> + </div> + </div> +
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.scss index a87fb896..1a4d76ae 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.scss @@ -36,35 +36,25 @@ * */ -@import '~@angular/material/prebuilt-themes/deeppurple-amber.css'; + @import '~@angular/material/prebuilt-themes/deeppurple-amber.css'; table { - width: 100%; - } - - .mat-form-field { - font-size: 14px; - width: 100%; - } - - td, th { - width: 25%; - } - .mat-form-field[_ngcontent-c4] { - font-size: 14px; - width: 20%; - float: right; - } - - /*td.mat-cell, td.mat-footer-cell{ - padding: 0; - border-bottom-width: 1px; - border-bottom-style: solid; - border-right-style: solid; - border-right-color: rgba(0,0,0,.12); - border-right-width: 1px; - } -*/ + width: 100%; +} + +.mat-form-field { + font-size: 14px; + width: 100%; +} +td, th { + width: 25%; +} +.mat-form-field[_ngcontent-c4] { + font-size: 14px; + width: 20%; + float: right; +} + td[_ngcontent-c4], th[_ngcontent-c4] { width: 15%; } @@ -107,4 +97,24 @@ body { } #functions-link{ cursor: pointer; text-decoration: underline; color: #007bff; +} + +:host::ng-deep .mat-form-field-wrapper{ + width: 28%; + float: right; + padding-top: 14px; +} + +.table-search-div{ + display: flex; +} + +.new-role-button{ + height: 38px; +} + +:host::ng-deep .mat-header-cell{ + font-weight: bold; + font-size: 14px; + color: #343a40; }
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.spec.ts index 16c81cc5..ab27b353 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.spec.ts @@ -45,12 +45,12 @@ import { RolesComponent } from './roles.component'; import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { MatTableModule } from '@angular/material'; import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { UserService } from 'src/app/shared/services/user/user.service'; import { Observable } from 'rxjs'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component'; import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing'; import { RouterTestingModule } from '@angular/router/testing'; +import { UserService } from '../../shared/services/user/user.service'; +import { InformationModalComponent } from '../../modals/information-modal/information-modal.component'; describe('RolesComponent', () => { let component: RolesComponent; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.ts index 8032aa18..8032aa18 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.component.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.module.ts new file mode 100644 index 00000000..5986e863 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/roles/roles.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RolesComponent } from './roles.component'; +import {NewRoleComponent} from './new-role/new-role.component'; +import {MatFormFieldModule, MatPaginatorModule, MatSlideToggleModule, MatTableModule} from '@angular/material'; +import {FormsModule} from '@angular/forms'; + +@NgModule({ + declarations: [RolesComponent, NewRoleComponent], + imports: [ + CommonModule, + MatTableModule, + MatFormFieldModule, + MatSlideToggleModule, + MatPaginatorModule, + FormsModule + ] +}) +export class RolesModule { } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.html index 402d5e0a..ac56a13f 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.html @@ -35,14 +35,14 @@ --> -<div class="container"> +<div class="main-container"> <div id="page-content"> <div> - <h1 class="heading-page" id="Usage">Current Usage</h1> + <h3 class="heading-page" id="Usage">Current Usage</h3> </div> - <h4 class="heading-small"> + <p class="heading-small"> The following table shows all current user sessions. Click the icon to end a user's session. - </h4> + </p> <!-- RDP datatable --> <rdp-data-table [data]="users" [settings]="settings"></rdp-data-table> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.scss index 7dd0a4ec..8712b3b2 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.scss @@ -36,23 +36,29 @@ * */ -table { - width: 100%; - } - - .mat-form-field { - font-size: 14px; - width: 100%; - } - - td, th { - width: 25%; - } - .mat-form-field[_ngcontent-c4] { - font-size: 14px; - width: 20%; - float: right; - } + table { + width: 100%; +} + +.mat-form-field { + font-size: 14px; + width: 100%; +} + +td, th { + width: 25%; +} +.mat-form-field[_ngcontent-c4] { + font-size: 14px; + width: 20%; + float: right; +} td[_ngcontent-c4], th[_ngcontent-c4] { - width: 15%; +width: 15%; +} + +:host::ng-deep .mat-header-cell{ + font-weight: bold; + font-size: 14px; + color: #343a40; }
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.spec.ts index 01f31669..01f31669 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.spec.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.ts index d5121909..d5121909 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.component.ts diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.module.ts index 3c1f1769..6043d5df 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/usage/usage.module.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/usage/usage.module.ts @@ -39,11 +39,13 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { UsageComponent } from './usage.component'; +import { RdpModule } from 'portalsdk-tag-lib'; @NgModule({ declarations: [UsageComponent], imports: [ - CommonModule + CommonModule, + RdpModule ] }) export class UsageModule { } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.html index 04701ca7..90f1ca85 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.html @@ -1,5 +1,5 @@ <nav class="navbar navbar-expand-lg fixed-top" *ngIf=showHeader> - <a class="navbar-brand" href="#">{{appName}}</a> + <a class="navbar-brand" href="v2">{{appName}}</a> <button class="navbar-toggler" type="button" (click)="toggleSidebar()"> <i class="fa fa-bars" aria-hidden="true"></i> </button> @@ -7,7 +7,7 @@ <ul class="navbar-nav ml-auto"> <li class="nav-item dropdown" ngbDropdown> <a href="javascript:void(0)" class="nav-link" ngbDropdownToggle> - <i class="fa fa-user"></i> {{userFirstName}} <b class="caret"></b> + <i class="icon ion-md-person"></i> {{userFirstName}} <b class="caret"></b> </a> <div class="dropdown-menu-right" ngbDropdownMenu> @@ -16,13 +16,13 @@ <br/> <div ><span class="reg-userEmail-value-spn"> - <div>Email:</div>{{userEmail}}</span></div> + <div style="font-weight: bold;">Email:</div>{{userEmail}}</span></div> <br/> <div ><span class="reg-userEmail-value-spn"> - <div>userId:</div>{{userId}}</span></div> + <div style="font-weight: bold;">User Id:</div>{{userId}}</span></div> <br/> <div id="reg-logout-div" style="padding-top: 8px"> - <a href="logout.htm" id="allLogout" class="btn btn-primary"> + <a href="{{logOutURL}}" id="allLogout" class="btn btn-primary"> Log out </a> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.spec.ts index bd9bea48..4b3e1c7c 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.spec.ts @@ -47,7 +47,6 @@ import { LayoutModule } from '../../layout.module'; import { CookieService } from 'ngx-cookie-service'; import { HeaderService } from 'src/app/shared/services/header/header.service'; import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { Router } from '@angular/router'; import 'rxjs/add/observable/of'; import { Observable } from 'rxjs/Observable'; @@ -55,11 +54,8 @@ import { Observable } from 'rxjs/Observable'; describe('HeaderComponent', () => { let headerService:HeaderService; - let cookieService:CookieService; - let router:Router; let component: HeaderComponent; let fixture: ComponentFixture<HeaderComponent>; - let spy: any; beforeEach(async(() => { TestBed.configureTestingModule({ @@ -83,7 +79,6 @@ describe('HeaderComponent', () => { component = fixture.componentInstance; fixture.detectChanges(); headerService = TestBed.get(HeaderService); - cookieService=TestBed.get(CookieService); }); @@ -96,6 +91,10 @@ describe('HeaderComponent', () => { let spy=spyOn(headerService, 'getTopMenuItems').and.returnValue(Observable.of('you object')); component.ngOnInit(); expect(spy).toHaveBeenCalled(); + expect(component.userFirstName).toEqual(component.response.firstName); + expect(component.userEmail).toEqual(component.response.email); + expect(component.userId).toEqual(component.response.userid); + expect(component.userName).toEqual(component.userName); }) }) diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.ts index 7bf5c649..c42e1544 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/header/header.component.ts @@ -38,9 +38,8 @@ import { Component, OnInit } from '@angular/core'; import { Router, NavigationEnd } from '@angular/router'; import { HeaderService } from '../../../shared/services/header/header.service'; -import { UserService } from 'src/app/shared/services/user/user.service'; -import { User } from 'src/app/shared/services/user/user'; import { CookieService } from 'ngx-cookie-service'; +import { environment } from 'src/environments/environment'; @Component({ selector: 'app-header', @@ -57,9 +56,18 @@ export class HeaderComponent implements OnInit { userName; appName:string; showHeader:boolean = true; + logOutURL = environment.baseUrl; - constructor(public router: Router,public headerService: HeaderService,public cookieService: CookieService) { + constructor(public router: Router,public headerService: HeaderService,public cookieService: CookieService) { + + if(window.location.pathname.split('/').length > 3) { + var portNum = ( window.location.port === '' || window.location.port === '0' ) ? '' : ':'+ window.location.port; + this.logOutURL = window.location.protocol + "//" + window.location.hostname + portNum + window.location.pathname.substring(0, this.nthIndex(window.location.pathname, "/", 2) + 0) + '/logout.htm'; + } else { + this.logOutURL = environment.baseUrl + 'logout.htm'; + } + this.router.events.subscribe(val => { if ( @@ -78,7 +86,10 @@ export class HeaderComponent implements OnInit { } this.pushRightClass = 'push-right'; - this.appName= 'ONAP Portal' ; + this.appName= 'Portal SDK' ; + if(environment.brandName && environment.brandName !=''){ + this.appName = environment.brandName; + } let result = this.headerService.getTopMenuItems(); result.subscribe(res => { this.response = res; @@ -103,4 +114,13 @@ export class HeaderComponent implements OnInit { onLoggedout() { localStorage.removeItem('isLoggedin'); } + + nthIndex(str, pat, n) { + var L = str.length, i = -1; + while (n-- && i++ < L) { + i = str.indexOf(pat, i); + if (i < 0) break; + } + return i; + } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.html index e640f84f..5f8a2ec5 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.html @@ -1,7 +1,11 @@ -<div class="sidebar" [ngClass]="{'siderbar-height': showHeader, 'siderbar-height-noHeader': !showHeader}" > +<div class="sidebar" [ngClass]="{'siderbar-height': showHeader, 'siderbar-height-noHeader': !showHeader, collapsed:collapsed}" > <nav [ngClass]="{sidebarPushRight: isActive, collapsed: collapsed}"> <div class="toggle-button" [ngClass]="{collapsed: collapsed}" (click)="toggleCollapsed()"> - <i class="fa fa-angle-double-{{collapsed?'right':'left'}}"></i> + <!--<i class="fa fa-angle-double-{{collapsed?'right':'left'}}"></i> --> + <i class="icon ion-md-arrow-{{collapsed?'dropright':'dropleft'}}" style="float:right"></i> + <i class="icon ion-md-arrow-{{collapsed?'dropright':'dropleft'}}" style="float:right"></i> + + </div> <div class="list-group" *ngFor="let menu of menuData ; index as item"> @@ -23,7 +27,7 @@ <a href="javascript:void(0)" class="list-group-item" (click)="addExpandClass(menu.name)"> <i class="{{menu.imageSrc}}"></i> - <i style="float: right;" class="icon ion-ios-add-circle-outline"></i> + <i *ngIf = "!collapsed" style="float: right;" class="icon ion-ios-add-circle-outline"></i> <span>{{menu.name}}</span> </a> <li class="nested" [class.expand]="showMenu === menu.name"> @@ -45,4 +49,4 @@ </div> </div> </nav> -</div>
\ No newline at end of file +</div>
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.spec.ts index 9bbcfc4e..eaa6a070 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.spec.ts @@ -59,10 +59,6 @@ describe('SidebarComponent', () => { "data":'"d"', "data2":'"data2"' }; - var stubData2={ - "data":'"d"', - "data2":'" "' - }; beforeEach(async(() => { TestBed.configureTestingModule({ @@ -94,17 +90,15 @@ describe('SidebarComponent', () => { it('should validate on ngOnInit',()=>{ let spy=spyOn(sidebarService,'getLeftMenu').and.returnValue(Observable.of(stubData1)); component.ngOnInit(); + expect(component.isActive).toEqual(false); + expect(component.collapsed).toEqual(false); + expect(component.showMenu).toEqual(''); + expect(component.pushRightClass).toEqual('push-right'); + expect(component.leftParentData).toEqual(JSON.parse(component.result.data)); + expect(component.leftChildData).toEqual(JSON.parse(component.result.data2)); expect(spy).toHaveBeenCalled(); }) - }) - - //describe('should test ngOnInit if part',()=>{ - //it('should validate on ngOnInit',()=>{ - //let spy=spyOn(sidebarService,'getLeftMenu').and.returnValue(Observable.of(stubData2)); - // component.ngOnInit(); - //expect(spy).toHaveBeenCalled(); - //}) - //}) + }); it('should test addExpandClass if element and showMenu variable value are same', () => { component.showMenu= '1'; @@ -132,15 +126,15 @@ describe('SidebarComponent', () => { it('should test isToggled method',()=>{ expect(component.isToggled()).toBe(false); - }) + }); it('should test toggleSidebar method',()=>{ component.pushRightClass="kumar"; expect(component.toggleSidebar()).toBeUndefined; - }) + }); it('should test on onLoggedout method',()=>{ expect(localStorage.getItem('isLoggedin')).toBeFalsy - }) + }); }); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.ts index 6487d745..fbe38c9d 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/components/sidebar/sidebar.component.ts @@ -144,6 +144,8 @@ export class SidebarComponent implements OnInit { } else { this.showMenu = element; } + this.collapsed=false; + this.collapsedEvent.emit(false); } toggleCollapsed() { diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.module.ts index a6bc03f0..51af0be1 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.module.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.module.ts @@ -33,7 +33,7 @@ * * ============LICENSE_END============================================ * - * + * */ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; @@ -44,8 +44,18 @@ import { LayoutRoutingModule } from './layout-routing.module'; import { LayoutComponent } from './layout.component'; import { SidebarComponent } from './components/sidebar/sidebar.component'; import { HeaderComponent } from './components/header/header.component'; -import { MatDialogModule } from '@angular/material/dialog'; -import { CookieService } from 'ngx-cookie-service'; +import {A11yModule} from '@angular/cdk/a11y'; +import {BidiModule} from '@angular/cdk/bidi'; +import {ObserversModule} from '@angular/cdk/observers'; +import {OverlayModule} from '@angular/cdk/overlay'; +import {PlatformModule} from '@angular/cdk/platform'; +import {PortalModule} from '@angular/cdk/portal'; +import {ScrollDispatchModule} from '@angular/cdk/scrolling'; +import {CdkStepperModule} from '@angular/cdk/stepper'; +import {CdkTableModule} from '@angular/cdk/table'; +import { MaterialModule } from '../material-module'; +import {AdminComponent} from '../admin/admin.component'; +import {AdminModule} from '../admin/admin.module'; @NgModule({ imports: [ @@ -53,9 +63,17 @@ import { CookieService } from 'ngx-cookie-service'; LayoutRoutingModule, TranslateModule, NgbDropdownModule, - MatDialogModule + MaterialModule, + A11yModule, + BidiModule, + ObserversModule, + OverlayModule, + PlatformModule, + PortalModule, + ScrollDispatchModule, + CdkStepperModule, + CdkTableModule ], - declarations: [LayoutComponent, SidebarComponent, HeaderComponent], - providers:[CookieService] + declarations: [LayoutComponent, SidebarComponent, HeaderComponent] }) export class LayoutModule {} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.html deleted file mode 100644 index e69de29b..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.component.html +++ /dev/null diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.module.ts deleted file mode 100644 index e73e3c5a..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/admin.module.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { AdminComponent } from './admin.component'; - - -@NgModule({ - declarations: [AdminComponent], - imports: [ - CommonModule - ] -}) -export class AdminModule { } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.scss deleted file mode 100644 index 34516bbf..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.component.scss +++ /dev/null @@ -1,66 +0,0 @@ -table { - width: 100%; - } - - .mat-form-field { - font-size: 14px; - width: 100%; - } - - td, th { - width: 25%; - } - - - .mat-accordion .mat-header-row { - padding-left: 1.5rem; - padding-right: 2rem; - border-bottom: none; - } - - - //copied from https://github.com/angular/material2/blob/master/src/lib/table/table.scss - $mat-header-row-height: 56px; - $mat-row-height: 48px; - $mat-row-horizontal-padding: 24px; - - - .mat-header-row { - min-height: $mat-header-row-height; - } - - .mat-row { - min-height: $mat-row-height; - } - - .mat-row, .mat-header-row { - display: flex; - border-bottom-width: 1px; - border-bottom-style: solid; - align-items: center; - padding: 0 $mat-row-horizontal-padding; - box-sizing: border-box; - - // Workaround for https://goo.gl/pFmjJD in IE 11. Adds a pseudo - // element that will stretch the row the correct height. See: - // https://connect.microsoft.com/IE/feedback/details/802625 - &::after { - display: inline-block; - min-height: inherit; - content: ''; - } - } - - .mat-cell, .mat-header-cell { - flex: 1; - overflow: hidden; - word-wrap: break-word; - } - - .mat-expansion-panel { - margin: 0; - border-radius: 4px; - overflow: hidden; - transition: margin 225ms cubic-bezier(.4,0,.2,1),box-shadow 280ms cubic-bezier(.4,0,.2,1); - } -
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.module.ts deleted file mode 100644 index 5974dd7b..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/cache-admin/cache-admin.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { CacheAdminComponent } from './cache-admin.component'; -import { MatFormField, MatFormFieldModule } from '@angular/material/form-field'; - -@NgModule({ - declarations: [CacheAdminComponent], - imports: [ - CommonModule, - MatFormFieldModule - ] -}) -export class CacheAdminModule { } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.module.ts deleted file mode 100644 index 3406f5bd..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/role-functions/role-functions.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RoleFunctionsComponent } from './role-functions.component'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatTooltipModule } from '@angular/material/tooltip'; - -@NgModule({ - declarations: [RoleFunctionsComponent], - imports: [ - CommonModule,FormsModule,ReactiveFormsModule,MatFormFieldModule,MatTooltipModule - ], - exports: [RoleFunctionsComponent], - bootstrap: [RoleFunctionsComponent] -}) -export class RoleFunctionsModule { } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.html deleted file mode 100644 index 6266ee72..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.component.html +++ /dev/null @@ -1,103 +0,0 @@ -<!-- - ============LICENSE_START========================================== - ONAP Portal SDK - =================================================================== - Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - =================================================================== - - Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the "License"); - you may not use this software except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the "License"); - you may not use this documentation except in compliance with the License. - You may obtain a copy of the License at - - https://creativecommons.org/licenses/by/4.0/ - - Unless required by applicable law or agreed to in writing, documentation - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - ============LICENSE_END============================================ - - --> - -<div class="main-container"> - <div id="page-content"> - <div class="ecomp-main-view-title"> - <h3 class="heading-page">Roles</h3> - <span class= "heading-small" *ngIf="isAppCentralized=='true'"><b>Please go to portal to Manage Roles.</b></span> - </div> - - <button type="button" *ngIf="isAppCentralized=='false'" class="btn btn-primary new-role-button" (click)="openAddNewRoleModal('')"> - <i class="icon ion-md-person-add"></i>Add New Role - </button> - - <span class="ecomp-spinner" *ngIf="showSpinner"></span> - - <div class="role-search"> - <mat-form-field> - <input matInput type="text" (keyup)="applyFilter($event.target.value)" placeholder="Search in entire table"> - </mat-form-field> - </div> - - <table mat-table [dataSource]="dataSource" matSort> - <ng-container matColumnDef="name"> - <th mat-header-cell *matHeaderCellDef mat-sort-header id="heading1"> Name</th> - <td mat-cell *matCellDef="let rowData"> {{rowData.name}} </td> - </ng-container> - - <ng-container matColumnDef="priority"> - <th mat-header-cell *matHeaderCellDef id="heading2"> Priority</th> - <td mat-cell *matCellDef="let rowData"> {{rowData.priority}} </td> - </ng-container> - - <ng-container matColumnDef="Edit"> - <th mat-header-cell *matHeaderCellDef id="heading3">{{roleHeaders[2]}} </th> - <td id="rowheader_t1_{{i}}" mat-cell *matCellDef="let rowData; let i=index;"> - <span class="icon-trash" id="{{i}}-button-role-edit" - (click)="openAddNewRoleModal(rowData)"> - <i class="ion ion-md-create"></i> - </span> - </td> - </ng-container> - - <ng-container matColumnDef="Active?"> - <th mat-header-cell *matHeaderCellDef id="heading4"> {{roleHeaders[3]}} </th> - <td mat-cell *matCellDef="let rowData"> - <mat-slide-toggle [(ngModel)]="rowData.active" (change)="toggleRole(rowData)"></mat-slide-toggle> - </td> - </ng-container> - - <ng-container matColumnDef="Delete?"> - <th mat-header-cell *matHeaderCellDef id="heading6"> {{roleHeaders[4]}} </th> - <td id="rowheader_t1_{{i}}" mat-cell *matCellDef="let rowData; let i=index;"> - <span class="icon-trash" id="{{i}}-button-role-remove" - (click)="delRoleConfirmPopUp(rowData)"> - <i class="icon ion-md-trash"></i> - </span> - </td> - </ng-container> - <tr mat-header-row *matHeaderRowDef="roleHeaders"></tr> - <tr mat-row *matRowDef="let rowData; columns: roleHeaders;"> - </table> - <mat-paginator [pageSizeOptions]="[5, 10, 25, 100]"></mat-paginator> - <span class="ecomp-spinner" *ngIf="showSpinner"></span> - <div> - <a (click)="getFunctions()" id="functions-link">Manage Role Functions</a><br><br> - </div> - </div> -</div>
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.module.ts deleted file mode 100644 index cf3547a3..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/admin/roles/roles.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RolesComponent } from './roles.component'; - -@NgModule({ - declarations: [RolesComponent], - imports: [ - CommonModule - ] -}) -export class RolesModule { } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html index 1c0dc5a2..bc6bf83e 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html @@ -51,6 +51,7 @@ <mat-form-field> <mat-label class="b2b-dro">Chart Type:</mat-label> <mat-select data-select-color="blue" [(ngModel)]="chartJson.chartType" aria-label="reportType" placeholder="Select chart Type"> + <mat-option value="none">--select--</mat-option> <mat-option value="BarChart3D" (onSelectionChange)="setBarChartOptions()">Bar Chart</mat-option> <mat-option value="TimeSeriesChart" (onSelectionChange)="setTimeSeriesChartOptions()">Time Series/Area Chart</mat-option> <mat-option value="PieChart">Pie Chart</mat-option> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts index 2a8561e6..25f5109c 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts @@ -114,7 +114,7 @@ export class ColumnListComponent implements OnInit { } ngOnInit() { - + this.showSpinner = true; this.displayTable = true; this._columnService.getColumnList() .subscribe((response) => { diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts index 3cd72584..0c1781bc 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts @@ -12,6 +12,6 @@ export class DashboardReportGridService { getReportList() : Observable<any> { - return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0"); + return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0&show_all=true"); } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.spec.ts index 762d780f..c5fe0a6c 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.spec.ts @@ -59,6 +59,7 @@ describe('PilotPageComponent', () => { it('should test first if condition in saveDefinitionInfo method',()=>{ component.IncomingReportId=-1; component.reportMode="Create"; + component.reportTitle='Report'; component.allowScheduler=true; component.sizedByContent = true; component.saveDefinitionInfo(); @@ -83,7 +84,7 @@ describe('PilotPageComponent', () => { expect(component.finalPostObj["dataContainerWidth"]).toEqual(component.widthContainer); expect(component.finalPostObj["runtimeColSortDisabled"]).toEqual(component.disableColumnSort); expect(component.finalPostObj["numFormCols"]).toEqual(component.runTimeFormNum); - expect(component.finalPostObj["reportTitle"]).toEqual(component.reportTitle); + expect(component.finalPostObj["reportTitle"]).toEqual('Report'); expect(component.finalPostObj["reportSubTitle"]).toEqual(component.reportSubTitle); expect(component.finalPostObj["oneTimeRec"]).toEqual(component.oneTime); expect(component.finalPostObj["hourlyRec"]).toEqual(component.hourly); @@ -103,6 +104,7 @@ describe('PilotPageComponent', () => { component.allowScheduler=true; component.sizedByContent = true; component.reportType="Dashboard"; + component.reportTitle='Report'; component.saveDefinitionInfo(); expect(component.finalPostObj["tabName"]).toEqual("Definition"); @@ -123,6 +125,7 @@ describe('PilotPageComponent', () => { component.IncomingReportId=1; component.reportMode="Edit"; component.reportType!="dashboard"; + component.reportTitle='Report'; component.saveDefinitionInfo(); expect(component.finalPostObj["reportTypeList"]).toEqual(null); expect(component.finalPostObj["dbInfo"]).toEqual(component.dataSrc); @@ -134,6 +137,7 @@ describe('PilotPageComponent', () => { component.IncomingReportId=1; component.reportMode="Edit"; component.showDialog=true; + component.reportTitle='Report'; let spy=spyOn(_definitionService,'portDefinitionPageDetails').and.returnValue(Observable.of('')) component.saveDefinitionInfo(); expect(spy).toHaveBeenCalled() diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts index ccd6dbcb..059c90b5 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts @@ -385,7 +385,11 @@ export class DefinitionComponent implements OnInit, OnDestroy { ]; this.finalPostObj['runtimeColSortDisabled'] = this.disableColumnSort; this.finalPostObj['numFormCols'] = this.runTimeFormNum; - this.finalPostObj['reportTitle'] = this.reportTitle; + if (this.reportTitle.length > 0) { + this.finalPostObj['reportTitle'] = this.reportTitle; + } else { + this.finalPostObj['reportTitle'] = this.reportName; + } this.finalPostObj['reportSubTitle'] = this.reportSubTitle; this.finalPostObj['oneTimeRec'] = this.oneTime; this.finalPostObj['hourlyRec'] = this.hourly; @@ -397,6 +401,13 @@ export class DefinitionComponent implements OnInit, OnDestroy { this.finalPostObj['sizedByContent'] = (this.sizedByContent == true ? 'Y' : 'N'); this.finalPostObj['repDefType'] = this.reportDefinition; if (this.reportType === 'Dashboard') { + this.dashboardObj = this.dashboardObj.sort(function (a, b) { + if (a['x'] === b['x']) { + return a['y'] - b['y']; + } else { + return a['x'] - b['x']; + } + }); this.finalPostObj['dashboardLayoutJSON'] = JSON.stringify(this.dashboardObj); this.finalPostObj['dashboardLayoutHTML'] = this.dashboardLayoutHTML; } @@ -434,6 +445,13 @@ export class DefinitionComponent implements OnInit, OnDestroy { this.IncomingReportId = -1; } if (this.reportType === 'Dashboard') { + this.dashboardObj = this.dashboardObj.sort(function (a, b) { + if (a['x'] === b['x']) { + return a['y'] - b['y']; + } else { + return a['x'] - b['x']; + } + }); this.finalPostObj['dashboardLayoutJSON'] = JSON.stringify(this.dashboardObj); this.finalPostObj['dashboardLayoutHTML'] = this.dashboardLayoutHTML; } else { @@ -496,7 +514,11 @@ export class DefinitionComponent implements OnInit, OnDestroy { ]; this.finalPostObj['runtimeColSortDisabled'] = this.disableColumnSort; this.finalPostObj['numFormCols'] = this.runTimeFormNum; - this.finalPostObj['reportTitle'] = this.reportTitle; + if ( this.reportTitle.length > 0) { + this.finalPostObj['reportTitle'] = this.reportTitle; + } else { + this.finalPostObj['reportTitle'] = this.reportName;; + } this.finalPostObj['reportSubTitle'] = this.reportSubTitle; this.finalPostObj['oneTimeRec'] = this.oneTime; this.finalPostObj['hourlyRec'] = this.hourly; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts index fc34cccd..e3bab3bb 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts @@ -76,16 +76,20 @@ export class FormFieldsComponent implements OnInit { } ngOnInit() { + this.showSpinner = true; this._formFieldsService.getListOfFormFields() .subscribe((responseFormFields) => { + this.showSpinner = true; for (let m = 0; m < responseFormFields.length; m++) { responseFormFields[m]["orderSeq"] = m + 1; this.formFieldsListObj.push(responseFormFields[m]); } - + this.showSpinner = false; this._formFieldsService.getFormFieldGroupsData(this.reportId1) .subscribe((responseGroupsData) => { + this.showSpinner = true; this.Groups = JSON.parse(responseGroupsData["formFieldGroupsJSON"]); + this.showSpinner = false; }); }); } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts index 47ec2383..a90a1f8e 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts @@ -22,7 +22,7 @@ export class LogComponent implements OnInit { } ngOnInit() { - + this.showSpinner = true; if(this.reportType === "Dashboard") { this.stepNo= "3"; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.html index dc6ef1cd..fcfcf4d4 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.html @@ -146,7 +146,7 @@ <app-run-report [DashboardReportObj]="DashboardReportObj" [TriggerFFArr]="triggerFormFieldArr" [hitCnt]="hitCnt" [queryString]="getQueryString()" - [reportId]="reportId" [reportMode]="reportMode" [runAgain]="runReportAgain" [groupSelectValue]="groupSelectValue" ></app-run-report> + [reportId]="reportId" [reportMode]="reportMode" [runAgain]="runReportAgain" [groupSelectValue]="groupSelectValue" [chartType]="chartType" ></app-run-report> </div> <div *ngIf="error == true"> @@ -156,4 +156,4 @@ <h1>Stack Trace:</h1> <p>{{stackTrace}}</p> -</div>
\ No newline at end of file +</div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.ts index d4baba66..c0856b44 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.ts @@ -60,6 +60,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { commonFormFields: any[]; formFieldListValueMap: any; saveFormFieldListValueMap: any; + chartType = ''; constructor(private _runService: RunService, private _route: ActivatedRoute, private _router: Router) { this.formFieldListValueArr = []; @@ -79,6 +80,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { this.commonFormFields = []; this.formFieldListValueMap = new Map<any, any>(); this.saveFormFieldListValueMap = new Map<any, any>(); + this.chartType = ''; } ngOnDestroy(): void { @@ -126,6 +128,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { this.commonFormFields = []; this.formFieldListValueMap = new Map<any, any>(); this.saveFormFieldListValueMap = new Map<any, any>(); + this.chartType = ''; } ngOnInit() { @@ -165,6 +168,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { .subscribe((responseDefPage) => { this.reportName = responseDefPage['reportName']; this.reportSubTitle = responseDefPage['reportSubTitle']; + this.chartType = responseDefPage['chartType']; if (responseDefPage['reportType'] !== 'Dashboard') { if (this.calledWithFormFields == false) { this._runService.getReportData(this.reportId) @@ -733,7 +737,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { } editReport(reportId: string) { - this._router.navigate(['v2/reports', 'Edit', reportId]); + this._router.navigate(['v2/app/reports', 'Edit', reportId]); } showLabelFn() { @@ -762,8 +766,8 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { localStorage.clear(); localStorage.setItem('id', myItem); if (this.formFieldGroupObjList != null) { - this._router.navigateByUrl('v2/refresh', {skipLocationChange: true}).then(() => - this._router.navigate(['v2/run', this.reportId])); + this._router.navigateByUrl('v2/app/refresh', {skipLocationChange: true}).then(() => + this._router.navigate(['v2/app/run', this.reportId])); } else { this.avoidDoCheck = true; this.formFieldListValueMap = new Map<any, any>(); @@ -785,7 +789,9 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy { for (let ffGrpValue = 0; ffGrpValue < formFieldGroupObjItem['formFieldList'].length; ffGrpValue++) { this.finalQueryParamsObj[formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId']] = '-1'; this.formFieldListValueMap.delete(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId']); + this.triggerFormFieldArr= []; } + } } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts index 3a38eba4..ccf6212a 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts @@ -9,9 +9,6 @@ import { environment } from '../../../../../../../../environments/environment'; import { DisplayHtml } from '../../../display-html'; import { RunService } from '../../run.service'; import {FormControl} from '@angular/forms'; - - - export interface PeriodicElement { } @@ -118,8 +115,8 @@ saveResponseObj:any; this.postFetchingReportDataFn(JSON.parse(localStorage.getItem(this.inputReportId))); localStorage.removeItem(this.inputReportId); } else { - this._dashboardReportService.getReportDataWithFormFields(this.queryString, this.inputReportId) - .subscribe((response) => { + this._dashboardReportService.getReportDataWithFormFields(this.queryString, this.inputReportId) + .subscribe((response) => { this.postFetchingReportDataFn(response); }); } @@ -128,79 +125,79 @@ saveResponseObj:any; postFetchingReportDataFn(response: any){ this.saveResponseObj = response; - this.formFieldPresent = false; - this.responseFormFieldListLength = 0; - this.reportName = response['reportName']; - let columnCntr = 0; - while (response['reportDataColumns'][columnCntr]) { - this.displayedColumnsArr.push(response['reportDataColumns'][columnCntr]['columnTitle'] + ',' - + response['reportDataColumns'][columnCntr]['colId']); - columnCntr++; - } - let totalCnt = 0; - while (response['reportTotalDataRows'][totalCnt]) { - this.displayTotal.push(response['reportTotalDataRows'][totalCnt]); - totalCnt++; - } - let rdr_cntr = 0; - while (response['reportDataRows'][rdr_cntr]) { - let dca_cntr = 0; - const obj = {}; - const reportDataRows = response['reportDataRows'][rdr_cntr]; - while (this.displayedColumnsArr[dca_cntr]) { - const rowColumnId = this.displayedColumnsArr[dca_cntr].split(',')[1]; - if (reportDataRows[rowColumnId]) { - let drillDownHtml = ''; - let displayValue = ''; - drillDownHtml = reportDataRows[rowColumnId]['drillDownURL']; - displayValue = reportDataRows[rowColumnId]['displayValue']; - if (drillDownHtml !== null && - drillDownHtml.length > 0 && - !displayValue.includes('linkToReport')) { - const value = this.convertToLinkToReport(drillDownHtml); - if (value.length > 0) { - this.replaceDisplayValue = value + ',' + - reportDataRows[rowColumnId]['displayValue']; - } else { - this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue']; - } - } else { - this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue']; - } - let displayObj: DisplayHtml = new class implements DisplayHtml { - 'background-color': string; - 'font-family': string; - 'font-size': string; - 'font-style': string; - 'font-weight': string; - 'text-align': string; - 'text-decoration': string; - color: string; - }; - if (reportDataRows[rowColumnId]['displayValueHtml'].includes('{')) { - displayObj = JSON.parse(reportDataRows[rowColumnId]['displayValueHtml']); - } - displayObj['text-align'] = reportDataRows[rowColumnId]['alignment']; - if (this.replaceDisplayValue.includes('linkToReport') || this.replaceDisplayValue.includes('linkToFeedback') || this.replaceDisplayValue.includes('linkToMail')) { - obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|') - + '|' + JSON.stringify(displayObj); - } else { - obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue - + '|' + JSON.stringify(displayObj); - } - } - dca_cntr++; + this.formFieldPresent = false; + this.responseFormFieldListLength = 0; + this.reportName = response['reportName']; + let columnCntr = 0; + while (response['reportDataColumns'][columnCntr]) { + this.displayedColumnsArr.push(response['reportDataColumns'][columnCntr]['columnTitle'] + ',' + + response['reportDataColumns'][columnCntr]['colId']); + columnCntr++; + } + let totalCnt = 0; + while (response['reportTotalDataRows'][totalCnt]) { + this.displayTotal.push(response['reportTotalDataRows'][totalCnt]); + totalCnt++; + } + let rdr_cntr = 0; + while (response['reportDataRows'][rdr_cntr]) { + let dca_cntr = 0; + const obj = {}; + const reportDataRows = response['reportDataRows'][rdr_cntr]; + while (this.displayedColumnsArr[dca_cntr]) { + const rowColumnId = this.displayedColumnsArr[dca_cntr].split(',')[1]; + if (reportDataRows[rowColumnId]) { + let drillDownHtml = ''; + let displayValue = ''; + drillDownHtml = reportDataRows[rowColumnId]['drillDownURL']; + displayValue = reportDataRows[rowColumnId]['displayValue']; + if (drillDownHtml !== null && + drillDownHtml.length > 0 && + !displayValue.includes('linkToReport')) { + const value = this.convertToLinkToReport(drillDownHtml); + if (value.length > 0) { + this.replaceDisplayValue = value + ',' + + reportDataRows[rowColumnId]['displayValue']; + } else { + this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue']; } - this.displayedRowObj.push(obj); - rdr_cntr++; + } else { + this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue']; } - for (let pushCounter = 0; pushCounter < this.displayedColumnsArr.length; pushCounter++) { - this.displayedColumns.push(this.displayedColumnsArr[pushCounter].split(',')[1]); + let displayObj: DisplayHtml = new class implements DisplayHtml { + 'background-color': string; + 'font-family': string; + 'font-size': string; + 'font-style': string; + 'font-weight': string; + 'text-align': string; + 'text-decoration': string; + color: string; + }; + if (reportDataRows[rowColumnId]['displayValueHtml'].includes('{')) { + displayObj = JSON.parse(reportDataRows[rowColumnId]['displayValueHtml']); } - this.showSpinner = false; - this.dataSource = new MatTableDataSource<PeriodicElement>(this.displayedRowObj); - this.dataSource.sort = this.sort; - this.dataSource.paginator = this.paginator; + displayObj['text-align'] = reportDataRows[rowColumnId]['alignment']; + if (this.replaceDisplayValue.includes('linkToReport') || this.replaceDisplayValue.includes('linkToFeedback') || this.replaceDisplayValue.includes('linkToMail')) { + obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|') + + '|' + JSON.stringify(displayObj); + } else { + obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue + + '|' + JSON.stringify(displayObj); + } + } + dca_cntr++; + } + this.displayedRowObj.push(obj); + rdr_cntr++; + } + for (let pushCounter = 0; pushCounter < this.displayedColumnsArr.length; pushCounter++) { + this.displayedColumns.push(this.displayedColumnsArr[pushCounter].split(',')[1]); + } + this.showSpinner = false; + this.dataSource = new MatTableDataSource<PeriodicElement>(this.displayedRowObj); + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; } linkToReport(reportID: string, queryParameters: string) { @@ -212,11 +209,11 @@ saveResponseObj:any; length++; sessionStorage.setItem(length.toString(), this.parentId + '|' + this.queryString); } - this._router.navigate(['v2/run', reportID, queryParameters]); + this._router.navigate(['v2/app/run', reportID, queryParameters]); } linkToFeedback(feedBackId: string, queryParameters: string) { - this._router.navigate(['v2/feedback', feedBackId]); + this._router.navigate(['v2/app/feedback', feedBackId]); } linkToMail(mailId: string) { @@ -274,4 +271,5 @@ saveResponseObj:any; return outPut; } + } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html index 4b647528..16c15710 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html @@ -3,7 +3,7 @@ <div *ngIf="showDashboardReport"> <span *ngIf="download_in_progress" class="ecomp-small-spinner"></span> Download: - <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlsx')" + <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlsx')" placement="top" ngbTooltip="Download Dashboard Report" src="assets/images/xlsx.png"></a> @@ -36,7 +36,7 @@ <div *ngIf="error == false" [hidden]="isChartAvailable == false" align="center"> <iframe #iframe height="500" style="border: none" width="70%"></iframe> </div> - + <div> <div class="field-group"> @@ -65,19 +65,18 @@ <ng-container matColumnDef="{{keys}}"> <th *matHeaderCellDef align="center" mat-header-cell mat-sort-header> {{displayedColumnsArr[i].split(",")[0]}}</th> - <td *matCellDef="let row" mat-cell> - <div *ngIf="row[keys].split('|')[0] == 'linkToReport'" - [ngStyle]="setStyle(row[keys].split('|')[4])"> + <td *matCellDef="let row" mat-cell [ngStyle]="setStyle(row[keys])"> + <div *ngIf="row[keys].split('|')[0] == 'linkToReport'"> <a (click)="linkToReport(row[keys].split('|')[1], row[keys].split('|')[2])" [routerLink]="">{{row[keys].split('|')[3]}}</a> </div> <div *ngIf="row[keys].split('|')[0] == 'linkToFeedback'" - [ngStyle]="setStyle(row[keys].split('|')[4])"> + > <a (click)="linkToFeedback(row[keys].split('|')[1], row[keys].split('|')[2])" [routerLink]="">{{row[keys].split('|')[3]}}</a> </div> <div *ngIf="row[keys].split('|')[0] == 'linkToMail'" - [ngStyle]="setStyle(row[keys].split('|')[3])"> + > <a (click)="linkToMail(row[keys].split('|')[1])" [routerLink]="">{{row[keys].split('|')[2]}}</a> </div> @@ -141,4 +140,3 @@ } </style> - diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.spec.ts index da718262..e1476421 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.spec.ts @@ -121,10 +121,6 @@ describe('RunReportComponent', () => { component.linkToReport("test", "abc"); }) - it('should test linkToFeedback', () => { - component.linkToFeedback("test", "abc"); - }) - it('should test linkToMail', () => { component.linkToMail("test"); }) diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts index a2163054..7f1e8331 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts @@ -1,28 +1,28 @@ import { AfterViewInit, + ChangeDetectionStrategy, + ChangeDetectorRef, Component, - OnInit, - ViewChild, + ElementRef, Input, - SimpleChange, + OnInit, SimpleChanges, - ChangeDetectorRef, - Inject, - ElementRef + ViewChild } from '@angular/core'; -import {MatPaginator} from '@angular/material/paginator'; -import {MatSort} from '@angular/material/sort'; -import {MatTable, MatTableDataSource} from '@angular/material/table'; -import {ActivatedRoute, Router} from '@angular/router'; -import {HttpClient} from '@angular/common/http'; -import {environment} from '../../../../../../../environments/environment'; -import {RunService} from '../run.service'; -import {GridsterConfig, GridsterItem, GridType} from 'angular-gridster2'; -import {Observable} from 'rxjs'; -import {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser'; -import {displayGrids} from 'angular-gridster2/lib/gridsterConfig.interface'; -import {DisplayHtml} from '../../display-html'; -import {FormControl} from '@angular/forms'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { MatTableDataSource } from '@angular/material/table'; +import { ActivatedRoute, Router } from '@angular/router'; +import { HttpClient } from '@angular/common/http'; +import { environment } from '../../../../../../../environments/environment'; +import { RunService } from '../run.service'; +import { GridsterConfig, GridsterItem, GridType } from 'angular-gridster2'; +import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; +import { DisplayHtml } from '../../display-html'; +import { FormControl } from '@angular/forms'; +import { HeaderService } from 'src/app/shared/services/header/header.service'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component'; export interface PeriodicElement { @@ -33,7 +33,8 @@ const ELEMENT_DATA: PeriodicElement[] = [{}]; @Component({ selector: 'app-run-report', templateUrl: './run-report.component.html', - styleUrls: ['./run-report.component.css'] + styleUrls: ['./run-report.component.css'], + changeDetection: ChangeDetectionStrategy.OnPush }) export class RunReportComponent implements OnInit, AfterViewInit { @Input('reportId') inputReportId: string; @@ -44,9 +45,10 @@ export class RunReportComponent implements OnInit, AfterViewInit { @Input('hitCnt') hitCnt: number; @Input('runAgain') runAgain: string; @Input('groupSelectValue') groupSelectValue: string; + @Input('chartType') chartType: string; @ViewChild('iframe') iframe: ElementRef; - @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator; - @ViewChild(MatSort, {static: false} as any) sort: MatSort; + @ViewChild(MatPaginator, { static: false } as any) paginator: MatPaginator; + @ViewChild(MatSort, { static: false } as any) sort: MatSort; dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA); displayedColumns: string[]; IncomingReportId: string; @@ -218,7 +220,7 @@ export class RunReportComponent implements OnInit, AfterViewInit { pushItems: true, disablePushOnDrag: false, disablePushOnResize: false, - pushDirections: {north: true, east: true, south: true, west: true}, + pushDirections: { north: true, east: true, south: true, west: true }, pushResizeItems: true, disableWindowResize: true, disableWarnings: false, @@ -244,7 +246,6 @@ export class RunReportComponent implements OnInit, AfterViewInit { this.hitCnt = this.runButtonHitCnt; this.initialQueryString = this.queryString; this.initCounter++; - } ngAfterViewInit() { @@ -309,22 +310,22 @@ export class RunReportComponent implements OnInit, AfterViewInit { this.showMoreVert = true; localStorage.removeItem(this.inputReportId); } else { - this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - } else { - this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + - this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0'; + this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId) + .subscribe((response) => { + if (response['errormessage']) { + this.showError(response); + } else { + this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + + this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0'; this.saveResponseObj = response; - this.postFetchingReportDataFn(response, false); - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.showMoreVert = true; - } - }); - } + this.postFetchingReportDataFn(response, false); + const endDate: Date = new Date(); + const endTime = endDate.getTime(); + this.timeTaken = ((endTime - startTime) / 1000).toString(); + this.showMoreVert = true; + } + }); + } } } else { this.showMoreVert = true; @@ -359,7 +360,7 @@ export class RunReportComponent implements OnInit, AfterViewInit { rdc_cntr++; } - if (response['chartWizardAvailable'] === true) { + if (response['chartWizardAvailable'] === true && this.chartType !== 'none') { this.isChartAvailable = true; this.iframe.nativeElement.setAttribute('src', this.chartRunUrl); } @@ -449,13 +450,10 @@ export class RunReportComponent implements OnInit, AfterViewInit { length++; sessionStorage.setItem(length.toString(), this.inputReportId + '|' + this.queryString); } - this._router.navigate(['v2/run', reportID, queryParameters]); + this._router.navigate(['v2/app/run', reportID, queryParameters]); } - linkToFeedback(feedBackId: string, queryParameters: string) { - this._router.navigate(['v2/feedback', feedBackId]); - } linkToMail(mailId: string) { const email = 'mailto:' + mailId; @@ -503,13 +501,19 @@ export class RunReportComponent implements OnInit, AfterViewInit { } downLoadFile(data: any, type: string, extension: string, reportType: string) { - const blob = new Blob([data], {type: type}); - const dt = new Date(); - const utcDate = dt.getTime(); - let fileName = this.reportName + utcDate + '.' + extension; + const blob = new Blob([data], { type: type }); + const date = new Date(); + const dateStr = + ('00' + (date.getMonth() + 1)).slice(-2) + + ('00' + date.getDate()).slice(-2) + + date.getFullYear() + + ('00' + date.getHours()).slice(-2) + + ('00' + date.getMinutes()).slice(-2) + + ('00' + date.getMilliseconds()); + let fileName = this.reportName + dateStr + '.' + extension; if (reportType === 'Dashboard') { fileName = ''; - fileName = reportType + '-' + this.inputReportId + '.' + extension; + fileName = reportType + '_' + this.inputReportId + '_' + dateStr + '.' + extension; } if (window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveBlob(blob, fileName); @@ -533,7 +537,15 @@ export class RunReportComponent implements OnInit, AfterViewInit { } } - setStyle(styles: string) { + setStyle(rowData: string) { + let styles = ''; + if (rowData.split('|')[0] === 'linkToReport') { + styles = rowData.split('|')[4]; + } else if (rowData.split('|')[0] === 'linkToMail') { + styles = rowData.split('|')[3]; + } else { + styles = rowData.split('|')[1]; + } if (styles.includes('{')) { return JSON.parse(styles); } else { @@ -541,6 +553,8 @@ export class RunReportComponent implements OnInit, AfterViewInit { } } + + getDisplayTotal(keys: string) { if (this.displayTotal.length > 0) { return this.displayTotal[0][keys].displayValue; @@ -627,7 +641,6 @@ export class RunReportComponent implements OnInit, AfterViewInit { } } const split = value.split('&'); - // const spltFirst = split[0].split('='); if (split[1].length <= 0) { return outPut; } @@ -645,10 +658,8 @@ export class RunReportComponent implements OnInit, AfterViewInit { return outPut; } - - takeToReport(queryString: string, reportID: string) { - this._router.navigate(['v2/run', reportID, queryString , this.groupSelectValue]); + this._router.navigate(['v2/app/run', reportID, queryString, this.groupSelectValue]); } goBack() { @@ -669,8 +680,7 @@ export class RunReportComponent implements OnInit, AfterViewInit { sessionStorage.removeItem('1'); } localStorage.removeItem(this.inputReportId); - this._router.navigate(['v2/run', repId, queryString]); + this._router.navigate(['v2/app/run', repId, queryString]); } } - diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts index 46d7af7e..3d339b70 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts @@ -38,14 +38,14 @@ export class RunComponent implements OnInit { runReport() { this.toggle = true; - + this._route.params.subscribe(params => { - + this.IncomingReportId = params["reportId"]; this.reportId1 = params["reportId"]; }); - this.router.navigate(['v2/run', this.reportId1]); + this.router.navigate(['v2/app/run', this.reportId1]); } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/security/security.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/security/security.component.ts index 6c994723..b7e14bc6 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/security/security.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/security/security.component.ts @@ -71,7 +71,7 @@ export class SecurityComponent implements OnInit { .subscribe((responseSecurityInfo) => { this.reportSecurityInfo = responseSecurityInfo; - //console.log(this.reportSecurityInfo); + console.log(this.reportSecurityInfo); this.reportOwnerId = this.reportSecurityInfo["ownerId"]; @@ -107,7 +107,7 @@ export class SecurityComponent implements OnInit { .subscribe((responseUserList) => { this.reportUserList = responseUserList; - //console.log(this.reportUserList); + console.log(this.reportUserList); for(let ru=0; ru<this.reportUserList.length; ru++) { @@ -132,7 +132,7 @@ export class SecurityComponent implements OnInit { .subscribe((responseSecurityRoles) => { this.reportSecurityRoles = responseSecurityRoles; - //console.log(this.reportSecurityRoles); + console.log(this.reportSecurityRoles); for(let sr=0; sr<this.reportSecurityRoles.length; sr++) { @@ -145,13 +145,13 @@ export class SecurityComponent implements OnInit { this.addRoleEditAccessArr[sr] = true; } } - //console.log(this.reportSecurityRoles); + console.log(this.reportSecurityRoles); this._securityService.getReportRoleList() .subscribe((responseRoleList) => { this.reportRoleList = responseRoleList; - //console.log(this.reportRoleList); + console.log(this.reportRoleList); for(let m=0; m<this.reportSecurityRoles.length; m++) { @@ -194,7 +194,7 @@ export class SecurityComponent implements OnInit { } } - //console.log(reportUserId); + console.log(reportUserId); this._securityService.addReportUser(reportUserId) .subscribe((responseAddUser) => { @@ -204,7 +204,7 @@ export class SecurityComponent implements OnInit { .subscribe((responseUserList) => { this.reportUserList = responseUserList; - //console.log(this.reportUserList); + console.log(this.reportUserList); this.showUserListSpinner = false; }); @@ -227,7 +227,7 @@ export class SecurityComponent implements OnInit { } } - //console.log(reportUserId); + console.log(reportUserId); this._securityService.removeReportUser(reportUserId) .subscribe((responseRemoveUser) => { @@ -237,7 +237,7 @@ export class SecurityComponent implements OnInit { .subscribe((responseUserList) => { this.reportUserList = responseUserList; - //console.log(this.reportUserList); + console.log(this.reportUserList); this.showUserListSpinner = false; }); @@ -248,8 +248,8 @@ export class SecurityComponent implements OnInit { addUserEditAccess(reportUserId : string, reportUserIndex : number) { - //console.log(reportUserId, reportUserIndex); - //console.log(this.userEditAccessArr); + console.log(reportUserId, reportUserIndex); + console.log(this.userEditAccessArr); let readOnly=""; if(this.userEditAccessArr[reportUserIndex] === true) @@ -273,7 +273,7 @@ export class SecurityComponent implements OnInit { let roleId; this.showRoleListSpinner = true; - //console.log(this.reportRoleList); + console.log(this.reportRoleList); for(let ro=0; ro<this.reportRoleList.length; ro++) { @@ -283,7 +283,7 @@ export class SecurityComponent implements OnInit { } } - //console.log(roleId); + console.log(roleId); this._securityService.addReportRole(roleId) .subscribe((addRoleResponse) => { @@ -292,13 +292,13 @@ export class SecurityComponent implements OnInit { .subscribe((responseSecurityRoles) => { this.reportSecurityRoles = responseSecurityRoles; - //console.log(this.reportSecurityRoles); + console.log(this.reportSecurityRoles); this._securityService.getReportRoleList() .subscribe((responseRoleList) => { this.reportRoleList = responseRoleList; - //console.log(this.reportRoleList); + console.log(this.reportRoleList); for(let m=0; m<this.reportSecurityRoles.length; m++) { @@ -338,13 +338,13 @@ export class SecurityComponent implements OnInit { .subscribe((responseSecurityRoles) => { this.reportSecurityRoles = responseSecurityRoles; - //console.log(this.reportSecurityRoles); + console.log(this.reportSecurityRoles); this._securityService.getReportRoleList() .subscribe((responseRoleList) => { this.reportRoleList = responseRoleList; - //console.log(this.reportRoleList); + console.log(this.reportRoleList); for(let m=0; m<this.reportSecurityRoles.length; m++) { @@ -366,7 +366,7 @@ export class SecurityComponent implements OnInit { addRoleEditAccess(roleId : string, roleIndex : number) { - //console.log(this.addRoleEditAccessArr); + console.log(this.addRoleEditAccessArr); let readOnly = ""; if(this.addRoleEditAccessArr[roleIndex] === true) @@ -391,7 +391,7 @@ export class SecurityComponent implements OnInit { this.fetchCnt = 0; let finalPostObj = new Object(); - // //console.log(this.reportOwnerList); + // console.log(this.reportOwnerList); for(let kl=0; kl<this.reportOwnerList.length; kl++) { if(this.reportOwnerList[kl]["name"] == this.reportOwner) @@ -408,7 +408,7 @@ export class SecurityComponent implements OnInit { { finalPostObj["isPublic"] = "false"; } - //console.log(finalPostObj); + // console.log(finalPostObj); this._securityService.saveSecurityTabInfo(finalPostObj) .subscribe((responseFinalPost) => { @@ -420,13 +420,13 @@ export class SecurityComponent implements OnInit { .subscribe((responseOwnerList) => { this.reportOwnerList = responseOwnerList; - //console.log(this.reportOwnerList); + console.log(this.reportOwnerList); this._securityService.getReportSecurityInfo() .subscribe((responseSecurityInfo) => { this.reportSecurityInfo = responseSecurityInfo; - //console.log(this.reportSecurityInfo); + console.log(this.reportSecurityInfo); this.reportOwnerId = this.reportSecurityInfo["ownerId"]; @@ -462,7 +462,7 @@ export class SecurityComponent implements OnInit { .subscribe((responseUserList) => { this.reportUserList = responseUserList; - //console.log(this.reportUserList); + console.log(this.reportUserList); for(let ru=0; ru<this.reportUserList.length; ru++) { @@ -487,7 +487,7 @@ export class SecurityComponent implements OnInit { .subscribe((responseSecurityRoles) => { this.reportSecurityRoles = responseSecurityRoles; - //console.log(this.reportSecurityRoles); + console.log(this.reportSecurityRoles); for(let sr=0; sr<this.reportSecurityRoles.length; sr++) { @@ -500,13 +500,13 @@ export class SecurityComponent implements OnInit { this.addRoleEditAccessArr[sr] = true; } } - //console.log(this.reportSecurityRoles); + console.log(this.reportSecurityRoles); this._securityService.getReportRoleList() .subscribe((responseRoleList) => { this.reportRoleList = responseRoleList; - //console.log(this.reportRoleList); + console.log(this.reportRoleList); for(let m=0; m<this.reportSecurityRoles.length; m++) { diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts index 62c7d7a4..c1559c75 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts @@ -46,6 +46,7 @@ export class SQLComponent implements OnInit { } ngOnInit() { + this.showSpinner = true; this.showSaveSQLDialog = false; this.SQLPostResponse = true; this.ValidatePostResponse = {}; @@ -135,7 +136,7 @@ export class SQLComponent implements OnInit { } else { this._http.get(environment.baseUrl + 'report/wizard/retrieve_def_tab_wise_data/InSession') .subscribe((response) => { - // console.log(response); + console.log(response); this._router.navigate(['v2/reports', 'Edit', response['reportId']]); }); } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.html new file mode 100644 index 00000000..eb07a769 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.html @@ -0,0 +1,14 @@ + +<div > +<div class="tab-content"> + <h3>{{this.menuId}} Reports</h3> +</div> +<span class="ecomp-spinner" *ngIf="showSpinner"></span> +<div> + +<ng-container *ngFor="let item of finalRowArr"> + <li><a href="javascript:void(0);" (click)="runReport(item.reportURL)">{{item.reportName}}</a></li> +</ng-container> + +</div> +</div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.scss new file mode 100644 index 00000000..bc189348 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.scss @@ -0,0 +1,10 @@ + +button{ + margin: 0; + font-size: 100%; + vertical-align: middle; + color:white; + background-color: #0568ae +} + +
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.spec.ts new file mode 100644 index 00000000..27329a9b --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.spec.ts @@ -0,0 +1,26 @@ +// import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +// import { DisplayAreaComponent } from './display-area.component'; + +// describe('DisplayAreaComponent', () => { +// let component: DisplayAreaComponent; +// let fixture: ComponentFixture<DisplayAreaComponent>; + +// beforeEach(async(() => { +// TestBed.configureTestingModule({ +// declarations: [ DisplayAreaComponent ] +// }) +// .compileComponents(); +// })); + +// beforeEach(() => { +// fixture = TestBed.createComponent(DisplayAreaComponent); +// component = fixture.componentInstance; +// fixture.detectChanges(); +// }); + +// it('should create', () => { +// expect(component).toBeTruthy(); +// }); +// }); + diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.ts new file mode 100644 index 00000000..e08190e7 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/display-area/display-area.component.ts @@ -0,0 +1,65 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DisplayAreaService } from 'src/app/shared/services/displayArea/display-area.service'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; +import { MatTable, MatTableDataSource } from '@angular/material/table'; + +@Component({ + selector: 'app-display-area', + templateUrl: './display-area.component.html', + styleUrls: ['./display-area.component.scss'] +}) +export class DisplayAreaComponent implements OnInit { + + @ViewChild( MatPaginator, { static: false } as any ) paginator: MatPaginator; + @ViewChild( MatSort, { static: false } as any ) sort: MatSort; + @ViewChild( MatTable, { static: false } as any ) table: MatTable<any>; + menuId:string; + showSpinner: boolean; + dataSource1: any; + displayedColumns = ["reportName", "reportDescr","reportURL"]; + finalGETObj: {}; + finalRowArr: any[]; + rowObj: any; + reportId: string; + + constructor(private _route: ActivatedRoute, private _router: Router, private _displayAreaService: DisplayAreaService) { } + + ngOnInit() { + this._route.params.subscribe(params => { + this.menuId = params['menuId']; + console.log("displayArea " +this.menuId); + this.initializeReportList(this.menuId); + }); + + + + } + + initializeReportList(menuId:string) { + this.showSpinner = true; + this.dataSource1 = new MatTableDataSource(); + this.finalGETObj = new Object(); +//this.finalGETObjRowsArr = new Array(); + this.finalRowArr = new Array(); + this._displayAreaService.getMenuIdSpecificReports(this.menuId) + .subscribe(( responseObj ) => { + this.finalGETObj = responseObj; + for (let entry of responseObj) { + this.rowObj = new Object(); + this.rowObj["reportName"] = entry["reportName"]; + this.rowObj["reportDescr"] = entry["reportDescr"]; + this.rowObj["reportURL"] = entry["reportURL"]; + this.finalRowArr.push( this.rowObj ); + } + this.showSpinner = false; + } ); +} + +runReport( reportId: string ) { + this.reportId = reportId; + this._router.navigate( [reportId] ); +} + +} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html index 0295bdd6..7bb6729d 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html @@ -84,7 +84,7 @@ [length]="dataSource1?.data.length" [pageIndex]="0" [pageSize]="20" - [pageSizeOptions]="[20]"> + [pageSizeOptions]="[20,40,60,80,100]"> </mat-paginator> </div> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts index 1c2d443e..dfb485e1 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts @@ -42,7 +42,7 @@ export class ReportListComponent implements AfterViewInit, OnInit { this.delete = false; this.initializeReportList(); } - + initializeReportList() { this.showSpinner = true; this.dataSource = new AllReportsDataSource(); @@ -148,12 +148,12 @@ export class ReportListComponent implements AfterViewInit, OnInit { displayReport( reportId: string ) { this.reportId = reportId; - this._router.navigate( ["v2/reports", "Edit", reportId] ); + this._router.navigate( ["v2/app/reports", "Edit", reportId] ); } runReport( reportId: string ) { this.reportId = reportId; - this._router.navigate( ['v2/run', reportId] ); + this._router.navigate( ['v2/app/run', reportId] ); } applyFilter( filterValue: string ) { @@ -182,15 +182,15 @@ export class ReportListComponent implements AfterViewInit, OnInit { this.showDialog = !this.showDialog; this.closable = false; } - + openReportSchedule( reportId: string ) { - this._router.navigate( ['v2/schedule_report', reportId] ); + this._router.navigate( ['v2/app/schedule_report', reportId] ); } copydisplayReport(reportId : string) { this.reportId = reportId; - this._router.navigate(["v2/reports", "Copy",reportId]); + this._router.navigate(["v2/app/reports", "Copy",reportId]); } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts index 560bd6e1..aad435f5 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts @@ -15,6 +15,6 @@ export class ReportListService { return this._http.get(environment.baseUrl + "/raptor.htm?action=report.delete&c_master=" + reportId); } getAllReports():Observable<any>{ - return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0"); + return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0&show_all=true"); } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.html index 5f131fb6..a6682306 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.html @@ -50,12 +50,12 @@ <ng-container matColumnDef="Last Name"> <th mat-header-cell *matHeaderCellDef id="heading2"> {{userHeaders[1]}} </th> - <td mat-cell *matCellDef="let rowData"> {{rowData.lastName}} </td> + <td mat-cell *matCellDef="let rowData"> {{rowData.last_name}} </td> </ng-container> <ng-container matColumnDef="First Name"> <th mat-header-cell *matHeaderCellDef id="heading3">{{userHeaders[2]}} </th> - <td mat-cell *matCellDef="let rowData"> {{rowData.firstName}}</td> + <td mat-cell *matCellDef="let rowData"> {{rowData.first_name}}</td> </ng-container> <ng-container matColumnDef="Email"> @@ -63,12 +63,12 @@ <td mat-cell *matCellDef="let rowData" > {{rowData.email}} </td> </ng-container> - <ng-container matColumnDef="orgUserId"> + <ng-container matColumnDef="Org User ID"> <th mat-header-cell *matHeaderCellDef id="heading4"> {{userHeaders[4]}} </th> <td mat-cell *matCellDef="let rowData" > {{rowData.orgUserId}} </td> </ng-container> - <ng-container matColumnDef="orgManagerUserId"> + <ng-container matColumnDef="Org Manager User ID"> <th mat-header-cell *matHeaderCellDef id="heading4"> {{userHeaders[5]}} </th> <td mat-cell *matCellDef="let rowData" > {{rowData.orgManagerUserId}} </td> </ng-container> @@ -86,7 +86,7 @@ <ng-container matColumnDef="Active?"> <th mat-header-cell *matHeaderCellDef id="heading6"> {{userHeaders[7]}} </th> <td mat-cell *matCellDef="let rowData"> - <mat-slide-toggle [(ngModel)]="rowData.active" (change)="toggleUserActive(rowData)"></mat-slide-toggle> + <mat-slide-toggle [checked]="(rowData.active_yn =='Y' || rowData.active_yn == true) ? true : false" (change)="toggleUserActive(rowData,$event)"></mat-slide-toggle> </td> </ng-container> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.scss index 3b9e9d3b..30ba1ff9 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.scss +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.scss @@ -36,36 +36,19 @@ * */ -table { - width: 100%; - } - - .mat-form-field { - font-size: 14px; - width: 100%; - } - - td, th { - width: 25%; - } - .mat-form-field[_ngcontent-c4] { - font-size: 14px; - width: 20%; - float: right; - } + table { + width: 100%; +} - /*td.mat-cell, td.mat-footer-cell{ - padding: 0; - border-bottom-width: 1px; - border-bottom-style: solid; - border-right-style: solid; - border-right-color: rgba(0,0,0,.12); - border-right-width: 1px; - } -*/ +::ng-deep .mat-header-cell{ + font-weight: bold; + font-size: 14px; + color: #343a40; +} -td[_ngcontent-c4], th[_ngcontent-c4] { - width: 15%; +::ng-deep .mat-form-field[_ngcontent-c4] { + font-size: 14px; + width: 20%; } #edit-button{ diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.ts index 9ae59ca8..734aaf09 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.ts @@ -57,14 +57,13 @@ export class SearchComponent implements OnInit { response: any; result: any; profileList:any; - userHeaders = ["User ID","Last Name","First Name","Email","orgUserId","orgManagerUserId","Edit","Active?"]; + userHeaders = ["User ID","Last Name","First Name","Email","Org User ID","Org Manager User ID","Edit","Active?"]; constructor(public profileservice:ProfileService, public ngbModal: NgbModal,private _router: Router) { } dataSource: MatTableDataSource<[]>; @ViewChild(MatPaginator, {}) paginator: MatPaginator; @ViewChild(MatSort, {}) sort: MatSort; - ngOnInit() { this.getUsers(); } @@ -72,7 +71,7 @@ export class SearchComponent implements OnInit { getUsers(){ this.showSpinner = true; let response; - this.response = this.profileservice.getUserPagination(); + this.response = this.profileservice.getAllUsers(); this.response.subscribe(data => { response = data; this.result = JSON.parse(response.data); @@ -84,9 +83,9 @@ export class SearchComponent implements OnInit { }); } - toggleUserActive(user){ - let activeOrInactive = (user.active) ? 'activate' : 'inactivate'; - let confirmationMsg = 'You are about to ' + activeOrInactive + ' the user ' + user.firstName +" "+user.lastName+ '. Do you want to continue?'; + toggleUserActive(user, e){ + let activeOrInactive = (e.checked) ? 'activate' : 'inactivate'; + let confirmationMsg = 'You are about to ' + activeOrInactive + ' the user ' + user.first_name +" "+user.last_name+ '. Do you want to continue?'; const modalInfoRef = this.ngbModal.open(InformationModalComponent); modalInfoRef.componentInstance.title = 'Confirmation'; modalInfoRef.componentInstance.message = confirmationMsg; @@ -104,7 +103,7 @@ export class SearchComponent implements OnInit { this.openConfirmationModal("Error",error); }); } else { - user.active = !user.active; + this.ngOnInit(); } }, (result) => { diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/pages.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/pages.module.ts index 37231147..45789f27 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/pages.module.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/pages.module.ts @@ -67,6 +67,7 @@ import { LayoutModule } from '@angular/cdk/layout'; import { DashboardReportGridComponent } from './analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.component'; import { DataChartComponent } from './analytics/Report_List/Report/definition/dashboard-report-grid/data-chart/data-chart.component'; import { RunDashboardReportComponent } from './analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component'; +import { DisplayAreaComponent } from './analytics/Report_List/display-area/display-area.component'; @@ -118,6 +119,7 @@ import { RdpModule } from 'portalsdk-tag-lib'; DashboardReportGridComponent, DataChartComponent, RunDashboardReportComponent, DialogOverviewExampleDialog, + DisplayAreaComponent ], diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.ts index 5a5a41a8..1539877c 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.ts @@ -42,21 +42,27 @@ import { HttpHandler, HttpRequest, HttpHeaders, + HttpErrorResponse } from '@angular/common/http'; -import { Observable } from 'rxjs'; +import { Observable, throwError} from 'rxjs'; import { v4 as uuid } from 'uuid'; -declare const getWebJunctionXSRFToken: any; +import { catchError } from 'rxjs/internal/operators/catchError'; +import { environment } from '../../../environments/environment'; + +function nthIndex(str, pat, n) { + var L = str.length, i = -1; + while (n-- && i++ < L) { + i = str.indexOf(pat, i); + if (i < 0) break; + } + return i; +} + export class HeaderInterceptor implements HttpInterceptor { intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { - // Clone the request to add the new header - // HttpHeader object immutable - copy values - var XSRFToken = getWebJunctionXSRFToken(); - console.log('XSRFToken:', XSRFToken); const headerSettings: { [name: string]: string | string[]; } = {}; headerSettings['X-ECOMP-RequestID'] = uuid(); const requestType = req.params.get('requestType'); - if (XSRFToken.name && XSRFToken.value) - headerSettings['X-XSRF-TOKEN'] = XSRFToken.value; if(requestType!=null && requestType==='fileUpload'){ //headerSettings['Content-Type'] = 'multipart/form-data'; }else{ @@ -65,6 +71,23 @@ export class HeaderInterceptor implements HttpInterceptor { const newHeader = new HttpHeaders(headerSettings); const clonedRequest = req.clone({ headers: newHeader, withCredentials: true }); // Pass the cloned request instead of the original request to the next handle - return next.handle(clonedRequest); + //return next.handle(clonedRequest); + var url = ''; + return next.handle(clonedRequest).pipe( + catchError(error => { + if ( error instanceof HttpErrorResponse ) { + if ( error.status === 0 ) { // If 0(302) Redirect to Login Page + if(window.location.pathname.split('/').length > 3) { + var portNum = ( window.location.port === '' || window.location.port === '0' ) ? '' : ':'+ window.location.port; + url = window.location.protocol + "//" + window.location.hostname + portNum + window.location.pathname.substring(0, nthIndex(window.location.pathname, "/", 2) + 0) + '/login.htm'; + window.open( url, '_self' ); + } else { + window.open( environment.baseUrl + 'login.htm', '_self' ); + } + } + } + return throwError(error); + }) + ); } }
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/displayArea/display-area.service.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/displayArea/display-area.service.spec.ts new file mode 100644 index 00000000..f8324dac --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/displayArea/display-area.service.spec.ts @@ -0,0 +1,13 @@ +// import { TestBed } from '@angular/core/testing'; + +// import { DisplayAreaService } from './display-area.service'; + +// describe('DisplayAreaService', () => { +// beforeEach(() => TestBed.configureTestingModule({})); + +// it('should be created', () => { +// const service: DisplayAreaService = TestBed.get(DisplayAreaService); +// expect(service).toBeTruthy(); +// }); +// }); + diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/displayArea/display-area.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/displayArea/display-area.service.ts new file mode 100644 index 00000000..71433031 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/displayArea/display-area.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from '../../../../environments/environment'; +@Injectable({ + providedIn: 'root' +}) +export class DisplayAreaService { + + constructor(private _http : HttpClient) { } + + getMenuIdSpecificReports(menuId : string) : Observable<any> + { + return this._http.get(environment.baseUrl + "raptor.htm?action=quicklinks.json&quick_links_menu_id=" + menuId); + } +} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/user/user.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/user/user.service.ts index 44d9e5ef..4c4a01c3 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/user/user.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/user/user.service.ts @@ -20,7 +20,7 @@ data; observable; getFunctionalMenuStaticDetailSession2(){ - return this.http.get(environment.getTopMenu,{ withCredentials: true }) + return this.http.get(environment.getFunctionalMenuStaticDetail,{ withCredentials: true }) .subscribe((results: Object) => { this.user = new User(results); }); @@ -30,7 +30,7 @@ getFunctionalMenuStaticDetailSession2(){ public getFunctionalMenuStaticDetailSession(): Observable<User> { return this.http - .get(environment.getTopMenu,{ withCredentials: true }) + .get(environment.getFunctionalMenuStaticDetail,{ withCredentials: true }) .map(response => { return new User(response); }) @@ -43,7 +43,7 @@ getFunctionalMenuStaticDetailSession1() { } else if (this.observable) { return this.observable; } else { - this.observable = this.http.get(environment.getTopMenu, { + this.observable = this.http.get(environment.getFunctionalMenuStaticDetail, { withCredentials: true, observe: 'response' }) |