summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src')
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/admin.module.ts24
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/new-role-function/new-role-function.component.ts3
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.component.ts3
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/role-functions/role-functions.service.ts5
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.html8
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.ts15
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html3
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts4
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts4
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html474
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts8
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts98
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html12
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts3
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.component.ts1
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts2
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html10
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts8
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/edit-group.component.html32
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css23
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css17
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html481
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts1167
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html11
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts3
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts47
-rw-r--r--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.css3218
-rw-r--r--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.html159
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.ts23
-rw-r--r--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.html82
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css56
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html50
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts13
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html2
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts87
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts2
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run-routing.module.ts28
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.html1
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.scss (renamed from 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.scss)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.spec.ts26
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.ts15
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.module.ts62
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/remove-space.directive.ts18
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css4146
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html340
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.spec.ts (renamed from 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.spec.ts)3
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.ts (renamed from 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)375
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set-datasource.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set-datasource.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.css (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.css)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.html (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.html)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.spec.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.spec.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.ts)1
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/dashboard-report.service.spec.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.spec.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/dashboard-report.service.ts22
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.css (renamed from 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.css)4
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.html44
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.scss0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.spec.ts (renamed from 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.spec.ts)6
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.ts (renamed from 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)76
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report-datasource.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report-datasource.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report.component.css (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.css)65
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report.component.html (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html)31
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report.component.spec.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.spec.ts)28
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report.component.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts)244
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.css (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.css)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.html (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.html)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.spec.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.spec.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts)2
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.service.spec.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.spec.ts)2
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.service.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.ts)92
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.spec.ts4
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.ts103
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/cache.service.ts59
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/header/header.service.ts6
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.component.html (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.html)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.component.scss (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.scss)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.component.spec.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.spec.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.component.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.module.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.module.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.html (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.html)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.scss (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.scss)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.spec.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.spec.ts)2
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.ts (renamed from ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.ts)0
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/assets/images/csv.pngbin0 -> 2231 bytes
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/styles/app.scss12
85 files changed, 6840 insertions, 5135 deletions
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
index 57554de5..1d7b9ba6 100644
--- 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
@@ -2,32 +2,31 @@ 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 {UsageComponent} from './usage/usage.component';
import {FormsModule} from '@angular/forms';
+import {MatSortModule} from '@angular/material/sort';
import {
MatExpansionModule,
MatFormFieldModule,
MatPaginatorModule,
MatRadioModule,
MatSlideToggleModule,
- MatTableModule,
- MatInputModule
+ MatTableModule
} 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';
+import {NewRoleComponent} from './roles/new-role/new-role.component';
+import {MenusComponent} from './menus/menus.component';
+import {NewMenuComponent} from './menus/new-menu/new-menu.component';
+import {NewRoleFunctionComponent} from './role-functions/new-role-function/new-role-function.component';
import { InformationModalComponent } from '../modals/information-modal/information-modal.component';
@NgModule({
- declarations: [AdminComponent, CacheAdminComponent, RoleFunctionsComponent, RolesComponent, NewRoleComponent, InformationModalComponent],
+ declarations: [AdminComponent, CacheAdminComponent, RoleFunctionsComponent, RolesComponent, NewRoleComponent, MenusComponent, NewMenuComponent, NewRoleFunctionComponent, UsageComponent, InformationModalComponent],
imports: [
CommonModule,
- MenusModule,
- UsageModule,
FormsModule,
MatRadioModule,
RdpModule,
@@ -37,11 +36,8 @@ import { InformationModalComponent } from '../modals/information-modal/informati
MatTableModule,
MatSlideToggleModule,
MatPaginatorModule,
- MatInputModule
+ MatSortModule
],
- entryComponents: [NewRoleComponent, InformationModalComponent],
- exports: [
- ],
- providers: [UserService]
+ entryComponents: [NewRoleComponent, InformationModalComponent]
})
export class AdminModule { }
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/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..ce894fe9 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/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
@@ -136,11 +136,9 @@ export class NewRoleFunctionComponent implements OnInit {
if (!exists && this.roleFunction.name.trim() != '' && this.roleFunction.code.trim() != '') {
var postData = this.roleFunction;
- //console.log("saveRoleFunction post data :: ",postData);
this.adminService.saveRoleFunction(JSON.stringify(postData))
.subscribe(_data => {
this.showSpinner = false;
- //console.log("saveRoleFunction response",_data);
if (this.editRoleFunction) {
this.editRoleFunction.name = this.roleFunction.name;
this.passBackRoleFunctionPopup.emit(this.editRoleFunction);
@@ -153,7 +151,6 @@ export class NewRoleFunctionComponent implements OnInit {
this.openConfirmationModal('Success', "Role function created successfully.");
}
}, error =>{
- //console.log(error);
this.showSpinner = false;
this.openConfirmationModal('Error', error.message);
});
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/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 3b97be51..6b836ebb 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/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';
@@ -105,7 +105,6 @@ export class RoleFunctionsComponent implements OnInit {
this.result = JSON.parse(response.data);
this.availableRoleFunctions = this.result.availableRoleFunctions;
this.tableData = JSON.parse(this.result.availableRoleFunctions);
- //console.log("Table data : ", this.tableData);
this.columns.push(new Column("name", "Name", ColumnTypes.TEXT, true, null));
this.columns.push(new Column("code", "Code", ColumnTypes.TEXT, true, null));
this.columns.push(new Column("type", "Type", ColumnTypes.RADIO, true, this.typeOptions));
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/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..38c6708c 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/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
@@ -21,14 +21,12 @@ export class RoleFunctionsService implements RdpCrudInterface {
constructor(private adminService: AdminService) { }
add(data: any) {
- //console.log("Add method is getting called from RoleFunctionService data:: ", data);
}
update(data: any): any {
console.log("Update method is getting called from RoleFunctionService data:: ", data);
return this.adminService.saveRoleFunction(data).subscribe(response => {
- //console.log("Success Response ", response);
this.statusResponse.next("200");
}, error => {
console.log("Error ", error);
@@ -36,9 +34,7 @@ export class RoleFunctionsService implements RdpCrudInterface {
}
delete(data: any) {
- //console.log("Delete method is getting called from RoleFunctionService data::>> " + JSON.stringify(data));
this.adminService.deleteRoleFunction(data).subscribe(response => {
- //console.log("Repsonse : ", response);
this.statusResponse.next("200");
})
@@ -50,7 +46,6 @@ export class RoleFunctionsService implements RdpCrudInterface {
response.subscribe(res => {
editedData = res;
let data = JSON.parse(JSON.parse(editedData.data).availableRoleFunctions);
- //console.log("Get Method called : ", data);
this.updatedData.next(data);
})
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.html
index 2ae6c463..02ae5daa 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.html
@@ -4,10 +4,12 @@
</section>
</div>
-<section class="main-container" [ngClass]="{'collapsed': collapedSideBar , 'remove-header': showHeader == false }">
+<section class="main-container" [ngClass]="{'collapsed': collapedSideBar , 'remove-header': showHeader == false}">
<app-sidebar (collapsedEvent)="receiveCollapsed($event)"></app-sidebar>
-
- <router-outlet></router-outlet>
+ <ng-container *ngIf="loadingRouteConfig">Loading route config...</ng-container>
+ <span *ngIf="loadingRouteConfig" class="ecomp-spinner"></span>
+ <router-outlet>
+ </router-outlet>
</section>
<section >
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.ts
index 12617548..f1c6a269 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/layout/layout.component.ts
@@ -38,6 +38,8 @@
import { Component, OnInit } from '@angular/core';
import { MatDialog, MatDialogConfig} from '@angular/material';
import { CookieService } from 'ngx-cookie-service';
+import {RouteConfigLoadEnd, RouteConfigLoadStart, Router} from '@angular/router';
+
@Component({
selector: 'app-layout',
templateUrl: './layout.component.html',
@@ -47,13 +49,22 @@ export class LayoutComponent implements OnInit {
collapedSideBar: boolean;
showHeader:boolean = true;
+ loadingRouteConfig = false;
- constructor(private dialog:MatDialog,public cookieService: CookieService) {}
+ constructor(private dialog:MatDialog,public cookieService: CookieService, private router: Router) {}
ngOnInit() {
if(this.cookieService.get('show_app_header') == 'false'){
this.showHeader = false;
- }
+ }
+
+ this.router.events.subscribe(event => {
+ if (event instanceof RouteConfigLoadStart) {
+ this.loadingRouteConfig = true;
+ } else if (event instanceof RouteConfigLoadEnd) {
+ this.loadingRouteConfig = false;
+ }
+ });
}
receiveCollapsed($event) {
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 bc6bf83e..4440b9e5 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
@@ -442,7 +442,8 @@
<br/>
<div class="field-group">
- <button (click)="saveChartData()" class="btn btn-alt btn-small" style="font-size: 17px;">Save</button>
+ <button (click)="saveChartData('save')" class="btn btn-alt btn-small" style="font-size: 17px;">Save</button>
+ <button (click)="saveChartData('reset')" class="btn btn-alt btn-small" style="font-size: 17px;">Reset</button>
</div>
</div>
</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts
index 18f5ab1b..2d9a52c0 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts
@@ -109,7 +109,7 @@ export class ChartWizardComponent implements OnInit {
}
}
- saveChartData() {
+ saveChartData(value: String) {
this.showSpinner = true;
this.chartJson.chartTypeJSON = {
index: 0,
@@ -133,7 +133,7 @@ export class ChartWizardComponent implements OnInit {
this.chartJson.rangeAxisList.push(removeList);
}
- this.chartService.saveChartData(this.chartJson).subscribe(
+ this.chartService.saveChartData(this.chartJson, value).subscribe(
(response) => {
this.ngOnInit();
});
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts
index e6a7bf56..bd5e500c 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts
@@ -15,8 +15,8 @@ export class ChartWizard {
{ headers: new HttpHeaders({'Content-Type': 'application/json'})});
}
- saveChartData(chartJson: any) {
- return this._http.post(environment.baseUrl + 'save_chart', chartJson,
+ saveChartData(chartJson: any, action: any) {
+ return this._http.post(environment.baseUrl + 'save_chart?action=' + action, chartJson,
{ headers: new HttpHeaders({'Content-Type': 'application/json'})});
}
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.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html
index 0d4f3c80..4a8f2695 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html
@@ -3,251 +3,311 @@
<div class="card">
<div class="card-body" style="height: 200px;">
<div class="modalTitle">{{EditColstatus}}</div>
- <button *ngIf="SQLclosable" (click)="close()" aria-label="Close" class="dialog__close-btn">X</button>
+ <button (click)="close()" *ngIf="SQLclosable" aria-label="Close" class="dialog__close-btn">X</button>
<br/>
<label>{{EditColmessage}}</label>
</div>
- <div class="card-footer"style="width: 500px;">
+ <div class="card-footer" style="width: 500px;">
<button (click)="close()" class="btn btn-alt btn-small">Close</button>
</div>
</div>
</app-save-sql-changes-dialog-component>
-
-
<app-columns-edit-component [(visible)]="showDialog">
<div class="card">
- <div class="card-header">
- <div class="modalTitle">{{message}}</div>
- <button *ngIf="closable" (click)="close()" aria-label="Close" class="dialog__close-btn">X</button>
- <br/>
- </div>
+ <div class="card-header">
+ <div class="modalTitle">{{message}}</div>
+ <button (click)="close()" *ngIf="closable" aria-label="Close" class="dialog__close-btn">X</button>
+ <br/>
+ </div>
<div class="card-body" style="width: 1000px; height: 532px; ">
<div style="height:500px; overflow: scroll; overflow-x: hidden;">
<div class="tab-pane">
- <app-edit-drill-down-link *ngIf="showEditDrillDownPage" [reportId]="reportId" [drillDownObj]="drillDownObj" (completed)="onCompleted($event)" >
+ <app-edit-drill-down-link (completed)="onCompleted($event)" *ngIf="showEditDrillDownPage"
+ [drillDownObj]="drillDownObj" [reportId]="reportId">
- </app-edit-drill-down-link>
- <app-column-advanced-display *ngIf="showAdvancedDisplayPage"
- [semaphoreArr]="semaphoreList"
- [inputSemaphoreName]="semaphoreName"
+ </app-edit-drill-down-link>
+ <app-column-advanced-display (completed)="finishAdvancedDisplay($event)"
+ *ngIf="showAdvancedDisplayPage"
[addNew]="addDisplay"
- (completed)="finishAdvancedDisplay($event)" [columnName]="finalEditRowGetObj.colId">
+ [columnList]="columnList"
+ [columnName]="finalEditRowGetObj.colId"
+ [inputSemaphoreName]="semaphoreName"
+ [semaphoreArr]="semaphoreList">
</app-column-advanced-display>
- <div *ngIf="!showEditDrillDownPage && !showAdvancedDisplayPage">
- <div class="field-group">
- <label class="defaultFontSize1">Column ID:</label><label class="boxMargin defaultFontSize">{{finalEditRowGetObj.colId}}</label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Column Name:</label><label class="boxMargin defaultFontSize">{{finalEditRowGetObj.colName}}</label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Depends on formfield:</label><label><input class=" defaultFontSize" id="depeondsOnForField" type="text" [(ngModel)]="dependsOnFormFields" value="{{finalEditRowGetObj.depeondsOnForField}}"/></label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1" for="dataType">Data Type:</label>
- <select class="browser-default custom-select" required="required" placeholder="Select Report Type" [(ngModel)]="dataType" value="{{finalEditRowGetObj.dataType}}">
- <option class="defaultFontSize1" selected>Select Data Type </option>
- <option class="defaultFontSize1" value="Number" >Number</option>
- <option class="defaultFontSize1" value="Date" >Date</option>
- <option class="defaultFontSize1" value="Character" >Character</option>
- <option class="defaultFontSize1" value="Hyperlink" >Hyperlink</option>
- </select>
- </div>
- <br/>
- <div>
- <label class="defaultFontSize1">Group By Pos:</label><label><input class="defaultFontSize" id="groupByPos" type="text" [(ngModel)]="groupByPos" value="{{finalEditRowGetObj.groupByPos}}"/></label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Custom Text for Sub-Total:</label><label><input class="defaultFontSize" id="subTotalCustomText" type="text" [(ngModel)]="customTextForSubTotal" value="{{finalEditRowGetObj.subTotalCustomText}}"/></label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Hide Repeated Values:</label>
- <label class="defaultFontSize1" for="hideFormFieldsAfterRun" class="checkbox">
- <input id="hideFormFieldsAfterRun" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="hideRepeatedValues" value="{{finalEditRowGetObj.hideRepeatedKey}}"><i class="skin"></i><span></span>
+ <div *ngIf="!showEditDrillDownPage && !showAdvancedDisplayPage">
+ <div class="field-group">
+ <label class="defaultFontSize1">Column ID:</label><label
+ class="boxMargin defaultFontSize">{{finalEditRowGetObj.colId}}</label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Column Name:</label><label
+ class="boxMargin defaultFontSize">{{finalEditRowGetObj.colName}}</label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Depends on formfield:</label><label><input
+ [(ngModel)]="dependsOnFormFields" class=" defaultFontSize" id="depeondsOnForField"
+ type="text"
+ value="{{finalEditRowGetObj.depeondsOnForField}}"/></label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1" for="dataType">Data Type:</label>
+ <select [(ngModel)]="dataType" class="browser-default custom-select"
+ placeholder="Select Report Type" required="required"
+ value="{{finalEditRowGetObj.dataType}}">
+ <option class="defaultFontSize1" selected>Select Data Type</option>
+ <option class="defaultFontSize1" value="Number">Number</option>
+ <option class="defaultFontSize1" value="Date">Date</option>
+ <option class="defaultFontSize1" value="Character">Character</option>
+ <option class="defaultFontSize1" value="Hyperlink">Hyperlink</option>
+ </select>
+ </div>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Group By Pos:</label><label><input [(ngModel)]="groupByPos"
+ class="defaultFontSize"
+ id="groupByPos"
+ type="text"
+ value="{{finalEditRowGetObj.groupByPos}}"/></label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Custom Text for Sub-Total:</label><label><input
+ [(ngModel)]="customTextForSubTotal" class="defaultFontSize" id="subTotalCustomText"
+ type="text"
+ value="{{finalEditRowGetObj.subTotalCustomText}}"/></label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Hide Repeated Values:</label>
+ <label class="defaultFontSize1" class="checkbox" for="hideFormFieldsAfterRun">
+ <input [(ngModel)]="hideRepeatedValues" class="ng-valid ng-dirty ng-valid-parse ng-touched"
+ id="hideFormFieldsAfterRun"
+ type="checkbox"
+ value="{{finalEditRowGetObj.hideRepeatedKey}}"><i class="skin"></i><span></span>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Multi Group Column Level:</label>
+ <label><select [(ngModel)]="multiGroupColumnLevel" class="browser-default custom-select defaultFontSize"
+ placeholder="Select Report Type" required="required"
+ value="{{finalEditRowGetObj.multiGroupColumnLevel}}">
+ <option class="defaultFontSize1" selected>Select Level</option>
+ <option class="defaultFontSize1" value="1">1</option>
+ <option class="defaultFontSize1" value="2">2</option>
+ <option class="defaultFontSize1" value="3">3</option>
+ <option class="defaultFontSize1" value="4">4</option>
+ </select>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Multi group Column Range : Colspan:</label><label><input
+ [(ngModel)]="colspan" class="defaultFontSize" id="colspan" type="text"
+ value="{{finalEditRowGetObj.colspan}}"/></label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="displayName">Display Name:</label><label><input [(ngModel)]="displayName"
+ class="defaultFontSize" id="displayName"
+ type="text"
+ value="{{finalEditRowGetObj.displayName}}"/></label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Display Width (In Pxls):</label><label><input
+ [(ngModel)]="displayWidthInPixel" class="defaultFontSize" id="displayWidthInPixel"
+ type="text"
+ value="{{finalEditRowGetObj.displayWidthInPixel}}"/></label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">No Wrap ?:</label>
+ <label class="defaultFontSize" class="checkbox" for="noWrap">
+ <input [(ngModel)]="noWrap" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="noWrap"
+ type="checkbox" value="{{finalEditRowGetObj.noWrap}}"><i
+ class="skin"></i><span></span>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Indent Parameter to display value:</label>
+ <label><select [(ngModel)]="indentation" class="browser-default custom-select defaultFontSize"
+ placeholder="Select Indent" required="required"
+ value="{{finalEditRowGetObj.indentation}}">
+ <option class="defaultFontSize" selected>Select Indent</option>
+ <option class="defaultFontSize" value="1">1</option>
+ <option class="defaultFontSize" value="2">2</option>
+ <option class="defaultFontSize" value="3">3</option>
+ </select>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Display Alignment:</label>
+ <label><select [(ngModel)]="displayAlignment" class="browser-default custom-select defaultFontSize"
+ placeholder="Select Report Type" required="required"
+ value="{{finalEditRowGetObj.displayAlignment}}">
+ <option class="defaultFontSize" selected>Select Alignment</option>
+ <option value="Left">Left</option>
+ <option class="defaultFontSize" value="Center">Center</option>
+ <option class="defaultFontSize" value="Right">Right</option>
+ </select>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Display Header Alignment:</label>
+ <label><select [(ngModel)]="displayHeaderAlignment" class="browser-default custom-select defaultFontSize"
+ placeholder="Select Report Type" required="required"
+ value="{{finalEditRowGetObj.displayHeaderAlignment}}">
+ <option selected>Select Header Alignment</option>
+ <option value="Left">Left</option>
+ <option value="Center">Center</option>
+ <option value="Right">Right</option>
+ </select>
</label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Multi Group Column Level:</label>
- <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="multiGroupColumnLevel" value="{{finalEditRowGetObj.multiGroupColumnLevel}}">
- <option class="defaultFontSize1" selected>Select Level </option>
- <option class="defaultFontSize1" value="1" >1</option>
- <option class="defaultFontSize1" value="2" >2</option>
- <option class="defaultFontSize1" value="3" >3</option>
- <option class="defaultFontSize1" value="4" >4</option>
- </select>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Multi group Column Range : Colspan:</label><label><input class="defaultFontSize" id="colspan" type="text" [(ngModel)]="colspan" value="{{finalEditRowGetObj.colspan}}"/></label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="displayName">Display Name:</label><label><input class="defaultFontSize" id="displayName" type="text" [(ngModel)]="displayName" value="{{finalEditRowGetObj.displayName}}"/></label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Display Width (In Pxls):</label><label><input class="defaultFontSize" id="displayWidthInPixel" type="text" [(ngModel)]="displayWidthInPixel" value="{{finalEditRowGetObj.displayWidthInPixel}}"/></label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">No Wrap ?:</label>
- <label class="defaultFontSize" for="noWrap" class="checkbox">
- <input id="noWrap" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="noWrap" value="{{finalEditRowGetObj.noWrap}}"><i class="skin"></i><span></span>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Indent Parameter to display value:</label>
- <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Indent" [(ngModel)]="indentation" value="{{finalEditRowGetObj.indentation}}">
- <option class="defaultFontSize" selected>Select Indent </option>
- <option class="defaultFontSize" value="1" >1</option>
- <option class="defaultFontSize" value="2" >2</option>
- <option class="defaultFontSize" value="3" >3</option>
- </select>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Display Alignment:</label>
- <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="displayAlignment" value="{{finalEditRowGetObj.displayAlignment}}">
- <option class="defaultFontSize" selected>Select Alignment </option><option value="Left" >Left</option>
- <option class="defaultFontSize" value="Center" >Center</option>
- <option class="defaultFontSize" value="Right" >Right</option>
- </select>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Display Header Alignment:</label>
- <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="displayHeaderAlignment" value="{{finalEditRowGetObj.displayHeaderAlignment}}">
- <option selected>Select Header Alignment </option>
- <option value="Left" >Left</option>
- <option value="Center" >Center</option>
- <option value="Right" >Right</option>
- </select>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Sortable:</label>
- <label class="defaultFontSize" for="sortable" class="checkbox">
- <input id="sortable" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="sortable" value="{{finalEditRowGetObj.sortable}}"><i class="skin"></i><span></span>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Visible:</label>
- <label class="defaultFontSize" for="visible" class="checkbox">
- <input id="visible" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="visible" value="true"><i class="skin"></i><span></span>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Drill-down Link: <mat-icon aria-hidden="false" aria-label="edit" (click)="drillDownLinkPage()">edit</mat-icon> </label>
- <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="drilldownURL" value="{{finalEditRowGetObj.drilldownURL}}">
- <option class="defaultFontSize" value="" selected>Select Drill Down Link </option>
- <option class="defaultFontSize" *ngFor="let URLObj of URLListObjArray" value="{{URLObj.id}}" >{{URLObj.id}}|{{URLObj.name}}</option>
- </select>
- </label>
- </div>
- <div>
- <label class="defaultFontSize1">Advanced Display
- <mat-icon *ngIf="semaphoreName !== 'No Display'" aria-hidden="false" aria-label="edit" (click)="editDisplay()">edit</mat-icon>
- <mat-icon aria-hidden="false" aria-label="add" (click)="addNewDisplay()">add</mat-icon>
- </label>
- <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="semaphoreName" value="{{semaphoreName}}">
- <option class="defaultFontSize" selected>No Display </option>
- <option class="defaultFontSize" *ngFor="let sem of semaphoreList.semaphore" value="{{sem.semaphoreName}}" >{{sem.semaphoreName}}</option>
- </select>
- </label>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultFontSize1">Total for the column:</label>
- <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="displayTotal" value="{{finalEditRowGetObj.displayTotal}}">
- <option selected value="">Select Total </option>
- <option *ngFor="let TotalListObj of TotalColListObjArray" value="{{TotalListObj.id}}" >{{TotalListObj.name}}</option>
- </select>
- </label>
- </div>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Sortable:</label>
+ <label class="defaultFontSize" class="checkbox" for="sortable">
+ <input [(ngModel)]="sortable" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="sortable"
+ type="checkbox" value="{{finalEditRowGetObj.sortable}}"><i
+ class="skin"></i><span></span>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Visible:</label>
+ <label class="defaultFontSize" class="checkbox" for="visible">
+ <input [(ngModel)]="visible" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="visible"
+ type="checkbox" value="true"><i class="skin"></i><span></span>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Drill-down Link:
+ <mat-icon (click)="drillDownLinkPage()" aria-hidden="false" aria-label="edit">edit
+ </mat-icon>
+ </label>
+ <label><select [(ngModel)]="drilldownURL" class="browser-default custom-select defaultFontSize"
+ placeholder="Select Report Type" required="required"
+ value="{{finalEditRowGetObj.drilldownURL}}">
+ <option class="defaultFontSize" selected value="">Select Drill Down Link</option>
+ <option *ngFor="let URLObj of URLListObjArray" class="defaultFontSize"
+ value="{{URLObj.id}}">{{URLObj.id}}|{{URLObj.name}}</option>
+ </select>
+ </label>
+ </div>
+ <div>
+ <label class="defaultFontSize1">Advanced Display
+ <mat-icon (click)="editDisplay()" *ngIf="semaphoreName !== 'No Display'" aria-hidden="false"
+ aria-label="edit">edit
+ </mat-icon>
+ <mat-icon (click)="addNewDisplay()" aria-hidden="false" aria-label="add">add</mat-icon>
+ </label>
+ <label><select [(ngModel)]="semaphoreName" class="browser-default custom-select defaultFontSize"
+ placeholder="Select Report Type" required="required"
+ value="{{semaphoreName}}">
+ <option class="defaultFontSize" selected>No Display</option>
+ <option *ngFor="let sem of semaphoreList.semaphore" class="defaultFontSize"
+ value="{{sem.semaphoreName}}">{{sem.semaphoreName}}</option>
+ </select>
+ </label>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultFontSize1">Total for the column:</label>
+ <label><select [(ngModel)]="displayTotal" class="browser-default custom-select defaultFontSize"
+ placeholder="Select Report Type" required="required"
+ value="{{finalEditRowGetObj.displayTotal}}">
+ <option selected value="">Select Total</option>
+ <option *ngFor="let TotalListObj of TotalColListObjArray"
+ value="{{TotalListObj.id}}">{{TotalListObj.name}}</option>
+ </select>
+ </label>
+ </div>
</div>
</div>
</div>
</div>
<div class="card-footer" style="width: 1000px; padding-left: 770px;">
- <button *ngIf="!showConfirmButton && !showAdvancedDisplayPage" (click)="save();" class="btn btn-alt btn-small">Save</button>&nbsp;
- <button *ngIf="showConfirmButton && !showAdvancedDisplayPage" (click)="complete();" class="btn btn-alt btn-small">Confirm</button>&nbsp;&nbsp;
+ <button (click)="save();" *ngIf="!showConfirmButton && !showAdvancedDisplayPage"
+ class="btn btn-alt btn-small">Save
+ </button>&nbsp;
+ <button (click)="complete();" *ngIf="showConfirmButton && !showAdvancedDisplayPage"
+ class="btn btn-alt btn-small">Confirm
+ </button>&nbsp;&nbsp;
<button (click)="close()" class="btn btn-alt btn-small">Cancel</button>
</div>
</div>
</app-columns-edit-component>
- <span class="ecomp-spinner" *ngIf="showSpinner"></span>
+<span *ngIf="showSpinner" class="ecomp-spinner"></span>
<div class="app-data-table">
- <table mat-table class="full-width-table app-data-table" matSort aria-label="Elements">
- <!-- Id Column -->
- <ng-container matColumnDef="id">
- <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">ID</th>
- <td mat-cell *matCellDef="let row">{{row.id}}</td>
- </ng-container>
+ <table aria-label="Elements" class="full-width-table app-data-table" mat-table matSort>
+ <!-- Id Column -->
+ <ng-container matColumnDef="id">
+ <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>ID</th>
+ <td *matCellDef="let row" mat-cell>{{row.id}}</td>
+ </ng-container>
- <!-- No Column -->
- <ng-container matColumnDef="no">
- <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">NO</th>
- <td mat-cell *matCellDef="let row">{{row.no}}</td>
- </ng-container>
+ <!-- No Column -->
+ <ng-container matColumnDef="no">
+ <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>NO</th>
+ <td *matCellDef="let row" mat-cell>{{row.no}}</td>
+ </ng-container>
- <!-- Name Column -->
- <ng-container matColumnDef="name">
- <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">NAME</th>
- <td mat-cell *matCellDef="let row">{{row.name}}</td>
- </ng-container>
+ <!-- Name Column -->
+ <ng-container matColumnDef="name">
+ <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>NAME</th>
+ <td *matCellDef="let row" mat-cell>{{row.name}}</td>
+ </ng-container>
- <!-- Name Column -->
- <ng-container matColumnDef="edit">
- <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">EDIT</th>
- <td mat-cell *matCellDef="let row"><mat-icon aria-hidden="false" aria-label="edit" (click)="editRecord(row.id)">edit</mat-icon></td>
+ <!-- Name Column -->
+ <ng-container matColumnDef="edit">
+ <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>EDIT</th>
+ <td *matCellDef="let row" mat-cell>
+ <mat-icon (click)="editRecord(row.id)" aria-hidden="false" aria-label="edit">edit</mat-icon>
+ </td>
</ng-container>
- <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
- <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
- </table>
+ <tr *matHeaderRowDef="displayedColumns" mat-header-row></tr>
+ <tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr>
+ </table>
- <mat-paginator #paginator
- [length]="dataSource?.data.length"
- [pageIndex]="0"
- [pageSize]="25"
- [pageSizeOptions]="[25, 50, 100, 250]">
- </mat-paginator>
+ <mat-paginator #paginator
+ [length]="dataSource?.data.length"
+ [pageIndex]="0"
+ [pageSizeOptions]="[25, 50, 100, 250]"
+ [pageSize]="25">
+ </mat-paginator>
</div>
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.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts
index e9b8ff85..c4c200e7 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts
@@ -78,8 +78,10 @@ describe('ColumnListComponent', () => {
it('should test close method',()=>{
let spy1=spyOn(_columnService,'getColumnList').and.returnValue(Observable.of(''));
+ const spy = spyOn((component as any).changeDetectorRefs, 'detectChanges');
component.close();
expect(spy1).toHaveBeenCalled();
+ expect(spy).toHaveBeenCalled();
expect(component.finalObjArr).toEqual([]);
expect(component.finalGetObj).toEqual('');
expect(component.dataSource.data).toEqual(component.finalObjArr);
@@ -103,7 +105,9 @@ it('should test onCompleted method',()=>{
it('should test save method',()=>{
component.noWrap=true;
+ const spy = spyOn((component as any).changeDetectorRefs, 'detectChanges');
component.save();
+ expect(spy).toHaveBeenCalled();
expect(component.showSpinner).toBe(true);
expect(component.finalPOSTObj["tabId"]).toEqual("ColEdit");
expect(component.finalPOSTObj["tabName"]).toEqual("Column Edit");
@@ -140,8 +144,10 @@ it('should test save method',()=>{
it('should test if codition inside save method',()=>{
component.showSaveColDialog=true;
let spy=spyOn(_columnService,'postColumnChanges').and.returnValue(Observable.of('you object'))
+ const spy1 = spyOn((component as any).changeDetectorRefs, 'detectChanges');
component.save();
expect(spy).toHaveBeenCalled();
+ expect(spy1).toHaveBeenCalled();
expect(component.EditColstatus).toEqual("Success!");
expect(component.EditColmessage).toEqual("Your change has been saved! Row definition is updated.");
expect(component.showSaveColDialog).toBe(false);
@@ -151,8 +157,10 @@ it('should test if codition inside save method',()=>{
it('should test else codition inside save method',()=>{
component.showSaveColDialog=true;
let spy=spyOn(_columnService,'postColumnChanges').and.returnValue(Observable.of(''))
+ const spy1 = spyOn((component as any).changeDetectorRefs, 'detectChanges');
component.save();
expect(spy).toHaveBeenCalled();
+ expect(spy1).toHaveBeenCalled();
expect(component.EditColstatus).toEqual("Failure!");
expect(component.EditColmessage).toEqual("Row definition could not be updated.");
expect(component.showSaveColDialog).toBe(false);
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 25f5109c..193e5ad0 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
@@ -1,28 +1,23 @@
-import { AfterViewInit, Component, OnInit, ViewChild, SimpleChange, Input, Output } from '@angular/core';
-import { MatPaginator } from '@angular/material/paginator';
-import { MatSort } from '@angular/material/sort';
-import { MatTable } from '@angular/material/table';
-import { DataTableDataSource, DataTableItem } from './column-list-datasource';
-import { HttpClient } from '@angular/common/http';
-import { environment } from '../../../../../../../environments/environment';
-import { ColumnService } from '../column.service';
+import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, ViewChild} from '@angular/core';
+import {MatPaginator} from '@angular/material/paginator';
+import {MatSort} from '@angular/material/sort';
+import {MatTable} from '@angular/material/table';
+import {DataTableDataSource, DataTableItem} from './column-list-datasource';
+import {HttpClient} from '@angular/common/http';
+import {ColumnService} from '../column.service';
import {SemaphoreList} from '../model/semaphore-list';
import {Semaphore} from '../model/semaphore';
@Component({
selector: 'app-column-list',
templateUrl: './column-list.component.html',
- styleUrls: ['./column-list.component.css']
+ styleUrls: ['./column-list.component.css'],
})
export class ColumnListComponent 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<DataTableItem>;
-
@Input('reportId') reportId: number;
-
-
-
dataSource: DataTableDataSource;
finalGetObj: {};
finalEditRowGetObj: {};
@@ -31,7 +26,6 @@ export class ColumnListComponent implements OnInit {
message: string;
showDialog: boolean;
closable: boolean;
-
columnId: string;
id: string;
name: string;
@@ -59,8 +53,6 @@ export class ColumnListComponent implements OnInit {
finalPOSTObj: {};
isDisabled: boolean;
showConfirmButton: boolean;
-
- /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
displayedColumns = ['no', 'id', 'name', 'edit'];
SQLstatus: string;
SQLmessage: string;
@@ -68,7 +60,6 @@ export class ColumnListComponent implements OnInit {
Colclosable: boolean;
EditColmessage: string;
EditColstatus: string;
-
showEditDrillDownPage: boolean;
showAdvancedDisplayPage = false;
drillDownReportId: string;
@@ -81,45 +72,47 @@ export class ColumnListComponent implements OnInit {
semaphoreList: SemaphoreList;
semaphoreName: String;
semaphoreId: String;
- private newSemaphoreList: any;
- private addDisplay = false;
incomingDrillDownParams: string;
isIncomingDrillDownParams: boolean;
+ SQLclosable: any;
+ private newSemaphoreList: any;
+ private addDisplay = false;
+ columnList: any;
- constructor(private _http: HttpClient, private _columnService: ColumnService) {
+ constructor(private _http: HttpClient,
+ private _columnService: ColumnService,
+ private changeDetectorRefs: ChangeDetectorRef) {
this.showEditDrillDownPage = false;
this.showAdvancedDisplayPage = false;
this.showConfirmButton = false;
this.addDisplay = false;
-
this.dataSource = new DataTableDataSource();
-
- this.finalGetObj = new Object();
- this.finalObjArr = new Array();
- this.finalEditRowGetObj = new Object();
- this.URLListObjArray = new Array();
- this.TotalColListObjArray = new Array();
- this.finalPOSTObj = new Object();
- this.drillDownObj = new Object();
+ this.finalGetObj = {};
+ this.finalObjArr = [];
+ this.finalEditRowGetObj = {};
+ this.URLListObjArray = [];
+ this.TotalColListObjArray = [];
+ this.finalPOSTObj = {};
+ this.drillDownObj = {};
this.checkCnt = 0;
this.showSpinner = false;
this.semaphoreList = new class implements SemaphoreList {
semaphore: Semaphore[];
};
this.semaphoreName = 'No Display';
+ this.semaphoreId = '';
this.incomingDrillDownParams = '';
this.isIncomingDrillDownParams = false;
-
}
ngOnInit() {
- this.showSpinner = true;
this.displayTable = true;
this._columnService.getColumnList()
.subscribe((response) => {
this.showSpinner = true;
this.finalGetObj = response;
+ this.columnList = response;
let fgo_counter = 0;
while (this.finalGetObj[fgo_counter]) {
this.finalGetObj[fgo_counter]['no'] = fgo_counter + 1;
@@ -136,8 +129,6 @@ export class ColumnListComponent implements OnInit {
});
this.showDialog = false;
this.showSaveColDialog = false;
-
-
}
@@ -151,7 +142,11 @@ export class ColumnListComponent implements OnInit {
editRecord(id: string) {
this.showSpinner = true;
-
+ this.semaphoreList = new class implements SemaphoreList {
+ semaphore: Semaphore[];
+ };
+ this.semaphoreName = 'No Display';
+ this.semaphoreId = '';
this.columnId = id;
this._columnService.getIndividualColumnData(id)
.subscribe((response) => {
@@ -162,13 +157,13 @@ export class ColumnListComponent implements OnInit {
this.visible = this.finalEditRowGetObj['visible'];
this.dependsOnFormFields = this.finalEditRowGetObj['depeondsOnForField'];
this.dataType = this.finalEditRowGetObj['dataType'];
- this.groupByPos = (this.finalEditRowGetObj['groupByPos'] == null ? 0 : this.finalEditRowGetObj['groupByPos'] );
+ this.groupByPos = (this.finalEditRowGetObj['groupByPos'] == null ? 0 : this.finalEditRowGetObj['groupByPos']);
this.customTextForSubTotal = this.finalEditRowGetObj['subTotalCustomText'];
this.hideRepeatedValues = this.finalEditRowGetObj['hideRepeatedKey'];
this.multiGroupColumnLevel = (this.finalEditRowGetObj['level'] == null ? 0 : this.finalEditRowGetObj['level']);
- this.colspan = (this.finalEditRowGetObj['colspan'] == null ? 0 : this.finalEditRowGetObj['colspan']);
+ this.colspan = (this.finalEditRowGetObj['colspan'] == null ? 0 : this.finalEditRowGetObj['colspan']);
this.displayName = this.finalEditRowGetObj['displayName'];
- this.displayWidthInPixel = (this.finalEditRowGetObj['displayWidthInPixel'] == null ? 0 : this.finalEditRowGetObj['displayWidthInPixel'] );
+ this.displayWidthInPixel = (this.finalEditRowGetObj['displayWidthInPixel'] == null ? 0 : this.finalEditRowGetObj['displayWidthInPixel']);
this.indentation = (this.finalEditRowGetObj['indentation'] == null ? 0 : this.finalEditRowGetObj['indentation']);
this.displayAlignment = this.finalEditRowGetObj['displayAlignment'];
this.displayHeaderAlignment = (this.finalEditRowGetObj['displayHeaderAlignment'] == null ? '' : this.finalEditRowGetObj['displayHeaderAlignment']);
@@ -179,7 +174,7 @@ export class ColumnListComponent implements OnInit {
this.drillDownObj['drillDownUrl'] = this.drilldownURL;
this.drillDownObj['drillDownParams'] = this.drilldownParams;
this.drillDownObj['drillDownType'] = this.drilldownType;
- this.semaphoreList = this.finalEditRowGetObj['semaphoreList'];
+ this.semaphoreList = this.finalEditRowGetObj['semaphoreList'];
this.semaphoreId = this.finalEditRowGetObj['semaphoreId'];
if (this.semaphoreId === '') {
this.semaphoreName = 'No Display';
@@ -192,7 +187,7 @@ export class ColumnListComponent implements OnInit {
}
}
}
- this. displayTotal = (this.finalEditRowGetObj['displayTotal'] == null ? '' : this.finalEditRowGetObj['displayTotal']);
+ this.displayTotal = (this.finalEditRowGetObj['displayTotal'] == null ? '' : this.finalEditRowGetObj['displayTotal']);
this._columnService.getDrillDownReportList()
.subscribe((responseURLList) => {
this.URLListObj = responseURLList;
@@ -203,7 +198,6 @@ export class ColumnListComponent implements OnInit {
listCtr++;
}
});
-
this._columnService.getResponseTotalColsList()
.subscribe((responseTotalColList) => {
this.TotalColListObj = responseTotalColList;
@@ -227,13 +221,13 @@ export class ColumnListComponent implements OnInit {
close() {
+ this.changeDetectorRefs.detectChanges();
this._columnService.getColumnList()
.subscribe((response) => {
this.showSpinner = true;
this.dataSource = new DataTableDataSource();
this.finalObjArr = [];
this.finalGetObj = response;
-
let fgo_counter = 0;
while (this.finalGetObj[fgo_counter]) {
this.finalGetObj[fgo_counter]['no'] = fgo_counter + 1;
@@ -270,15 +264,12 @@ export class ColumnListComponent implements OnInit {
save() {
-
+ this.changeDetectorRefs.detectChanges();
this.showSpinner = true;
-
this.finalPOSTObj['tabId'] = 'ColEdit';
this.finalPOSTObj['tabName'] = 'Column Edit';
-
this.finalPOSTObj['colId'] = this.id;
this.finalPOSTObj['colName'] = this.name;
-
this.finalPOSTObj['colType'] = '';
this.finalPOSTObj['colspan'] = this.colspan;
this.finalPOSTObj['dataType'] = this.dataType;
@@ -309,41 +300,38 @@ export class ColumnListComponent implements OnInit {
if (this.semaphoreName === 'No Display') {
this.semaphoreId = '';
} else {
- for ( let slcount = 0 ; slcount < this.semaphoreList.semaphore.length; slcount++) {
- if (this.semaphoreName === this.semaphoreList.semaphore[slcount].semaphoreName) {
- this.semaphoreId = this.semaphoreList.semaphore[slcount].semaphoreId;
+ if(this.semaphoreList && this.semaphoreList.semaphore){
+ for (let slcount = 0; slcount < this.semaphoreList.semaphore.length; slcount++) {
+ if (this.semaphoreName === this.semaphoreList.semaphore[slcount].semaphoreName) {
+ this.semaphoreId = this.semaphoreList.semaphore[slcount].semaphoreId;
+ this.semaphoreList.semaphore[slcount].comment = this.id;
+ }
}
}
}
this.finalPOSTObj['semaphoreId'] = this.semaphoreId;
this.finalPOSTObj['semaphoreList'] = this.semaphoreList;
-
this._columnService.postColumnChanges(this.finalPOSTObj)
.subscribe((finalPOSTResponse) => {
-
if (finalPOSTResponse) {
this.EditColstatus = 'Success!';
this.EditColmessage = 'Your change has been saved! Row definition is updated.';
this.showSaveColDialog = !this.showSaveColDialog;
-
this.Colclosable = true;
-
} else {
this.EditColstatus = 'Failure!';
this.EditColmessage = 'Row definition could not be updated.';
this.showSaveColDialog = !this.showSaveColDialog;
-
this.Colclosable = true;
}
-
this.showEditDrillDownPage = false;
this.showAdvancedDisplayPage = false;
this.isIncomingDrillDownParams = false;
this.addDisplay = false;
this.showSpinner = false;
- });
+ });
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html
index 63d024b1..55df3786 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html
@@ -6,12 +6,22 @@
<input [(ngModel)]="semaphore.semaphoreName" class="defaultFontSize" id="semaphoreName" name="displayName"
style="width: 60%" type="text" >
</div>
+<label class="defaultFontSize1">Comments: {{semaphore.comment}}</label>
<div class="field-group">
<mat-form-field>
<mat-label class="b2b-dro">Apply To:</mat-label>
<mat-select data-select-color="blue" [(ngModel)]="semaphore.semaphoreType" aria-label="reportType" placeholder="Select chart Type">
<mat-option value="CELL">Current Value Only</mat-option>
- <mat-option value="CELL">Entire Row</mat-option>
+ <mat-option value="ROW">Entire Row</mat-option>
+ </mat-select>
+ </mat-form-field>
+</div>
+<div class="field-group">
+ <mat-form-field>
+ <mat-label class="b2b-dro">Target Column:</mat-label>
+ <mat-select data-select-color="blue" [(ngModel)]="semaphore.target" aria-label="reportType" placeholder="Select chart Type">
+ <mat-option value="">None</mat-option>
+ <mat-option *ngFor="let column of columnList" [value]="column.id">{{column.name}}</mat-option>
</mat-select>
</mat-form-field>
</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts
index 2b0e6c6d..7458fd1f 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts
@@ -14,6 +14,8 @@ export class ColumnAdvancedDisplayComponent implements OnInit {
@Input('inputSemaphoreName') inputSemaphoreName: String;
@Input('addNew') addNew: boolean;
@Input('columnName') columnName: String;
+ @Input('columnList') columnList: any;
+
@Output() completed = new EventEmitter<any>();
semaphoreObjArr: {}[];
semaphore: Semaphore;
@@ -116,6 +118,7 @@ export class ColumnAdvancedDisplayComponent implements OnInit {
semCount = this.semaphoreArr.semaphore.length + 1;
} else { semCount = 1 ; }
this.newSemaphore['comment'] = this.columnName;
+ this.newSemaphore['target'] = '';
this.newSemaphore['semaphoreType'] = 'CELL';
this.newSemaphore['semaphoreName'] = 'Display Formatting ' + semCount;
this.newSemaphore['semaphoreId'] = 'sem' + semCount;
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.component.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.component.ts
index 15ec1799..25137322 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.component.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.component.ts
@@ -28,6 +28,7 @@ export class DashboardReportGridComponent implements OnInit {
@Output() transferDashboardObj = new EventEmitter<any>();
+ name: any;
constructor(private _dashboardReportGridService: DashboardReportGridService) {
this.reportDataList = [];
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 0c1781bc..3cd72584 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&show_all=true");
+ return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0");
}
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html
index fa6570fb..efe84957 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html
@@ -60,8 +60,6 @@
required="required" value="Select Report Type" value="{{dataSrc}}">
<option class="defaultFontSize" selected>Select Data Source</option>
<option class="defaultFontSize" value="local">local</option>
- <option class="defaultFontSize" value="e911_prod">e911_prod</option>
- <option class="defaultFontSize" value="e911_dev">e911_dev</option>
</select>
</div>
<br/>
@@ -116,16 +114,12 @@
<select [(ngModel)]="maxRows" class="browser-default custom-select defaultFontSize" id="maxRows"
required="required">
<option class="defaultFontSize" selected>Select Max Rows</option>
- <option class="defaultFontSize" value="100">100</option>
- <option class="defaultFontSize" value="200">200</option>
- <option class="defaultFontSize" value="300">300</option>
- <option class="defaultFontSize" value="400">400</option>
<option class="defaultFontSize" value="500">500</option>
<option class="defaultFontSize" value="1000">1000</option>
<option class="defaultFontSize" value="10000">10000</option>
- <option class="defaultFontSize" value="60000">60000</option>
+ <option class="defaultFontSize" value="65000">65000</option>
<option class="defaultFontSize" value="100000">100000</option>
- <option class="defaultFontSize" value="1000000">1000000</option>
+ <option class="defaultFontSize" value="750000">750000</option>
</select>
</div>
<br/>
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 0259fdef..0ca05b4c 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
@@ -89,9 +89,9 @@ export class DefinitionComponent implements OnInit, OnDestroy {
ngOnInit() {
sessionStorage.clear();
- const myItem = localStorage.getItem('id');
+ const myItem = localStorage.getItem('notes');
localStorage.clear();
- localStorage.setItem('id', myItem);
+ localStorage.setItem('notes', myItem);
this.isEdit = true;
this.showDialog = false;
this.showSpinner = true;
@@ -385,7 +385,7 @@ export class DefinitionComponent implements OnInit, OnDestroy {
];
this.finalPostObj['runtimeColSortDisabled'] = this.disableColumnSort;
this.finalPostObj['numFormCols'] = this.runTimeFormNum;
- if (this.reportTitle && this.reportTitle.length > 0) {
+ if (undefined != this.reportTitle && this.reportTitle.length > 0) {
this.finalPostObj['reportTitle'] = this.reportTitle;
} else {
this.finalPostObj['reportTitle'] = this.reportName;
@@ -514,7 +514,7 @@ export class DefinitionComponent implements OnInit, OnDestroy {
];
this.finalPostObj['runtimeColSortDisabled'] = this.disableColumnSort;
this.finalPostObj['numFormCols'] = this.runTimeFormNum;
- if ( this.reportTitle && this.reportTitle.length > 0) {
+ if ( this.reportTitle.length > 0) {
this.finalPostObj['reportTitle'] = this.reportTitle;
} else {
this.finalPostObj['reportTitle'] = this.reportName;;
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/edit-group.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/edit-group.component.html
new file mode 100644
index 00000000..8a19abf7
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/edit-group.component.html
@@ -0,0 +1,32 @@
+<h1 mat-dialog-title>Edit Form Fields Group</h1>
+<div class="edit-popup" mat-dialog-content>
+ <p>Group Name</p>
+ <mat-form-field >
+ <input matInput [(ngModel)]="data['editGroupInfo'].name" disabled>
+ </mat-form-field>
+ <mat-form-field>
+ <mat-label>Select Form Fields</mat-label>
+ <mat-select multiple [(ngModel)]="data['editGroupInfo'].formFieldList">
+ <mat-option *ngFor="let item of data['formFieldsListObj']; let i = index;" value="{{item.id}}">{{item.name}}</mat-option>
+ </mat-select>
+ </mat-form-field>
+</div>
+<div class="dialog-action" mat-dialog-actions>
+ <button mat-button (click)="onNoClick()">Close</button>
+ <button class="update-button" mat-button [mat-dialog-close]="editGroupInfo" cdkFocusInitial>Update</button>
+</div>
+<style scoped>
+ ::ng-deep .cdk-global-overlay-wrapper, .cdk-overlay-container {
+ z-index: 1000 !important;
+ }
+ .edit-popup{
+ height: 450px;
+ }
+ .update-button{
+ background-color: #006496;
+ color: white;
+ }
+ .dialog-action{
+ align-items: right;
+ }
+</style> \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css
index 52a77240..578b33e8 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css
@@ -1,13 +1,3 @@
- .overlay {
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background-color: rgba(0, 0, 0, 0.705);
- z-index: 999;
- }
-
.dialog {
z-index: 1000;
display: flex;
@@ -18,10 +8,19 @@
margin-right: auto;
margin-left: auto;
margin-top: 50px;
- height: 900px;
+ height: 690px;
width: 1024px;
background-color: #fff;
padding: 12px;
box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.349), 0 13px 19px 2px rgba(0, 0, 0, 0.349), 0 5px 24px 4px rgba(0, 0, 0, 0.349);
}
- \ No newline at end of file
+
+.overlay {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background-color: rgba(0, 0, 0, 0.705);
+ z-index: 999;
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css
index e4753426..96d0a71f 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css
@@ -2440,10 +2440,10 @@ a.btn {
font-size: 1.7rem; }
.btn-small {
- /* padding: 10px 19px 9px 18px; */
+ padding: 10px 19px 9px 20px;
font-size: 1.5rem;
- border-radius: 8px; }
-
+ border-radius: 8px;
+}
.btn-fullwidth {
width: 100%; }
@@ -6278,4 +6278,13 @@ table, tr, td, th {
td{
height: 5px;
-} \ No newline at end of file
+}
+
+.edit-group{
+ margin-left: 10%;
+}
+
+.center{
+ margin: auto;
+ width: 50%;
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html
index 028c9807..63062109 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html
@@ -1,242 +1,287 @@
<app-sql-validate-changes-dialog-component [(visible)]="showDialog1">
- <span class="ecomp-spinner" *ngIf="showVerifySpinner"></span>
- <div *ngIf="!showVerifySpinner">
+ <span *ngIf="showVerifySpinner" class="ecomp-spinner"></span>
+ <div *ngIf="!showVerifySpinner">
<div class="card">
<div class="card-body" style="width: 800px; height: 615px; ">
<div style="height:600px; overflow: scroll;">
- <div class="modalTitle">{{Validatestatus}}</div>
- <button *ngIf="Validateclosable" (click)="closeValidateModal()" aria-label="Close" class="dialog__close-btn">X</button>
- <br/>
- <app-sql-validate-success-dialog-component [tableObj] = "validateResponseString"></app-sql-validate-success-dialog-component>
- <!-- <app-sql-validate-error-dialog-component *ngIf="!ValidatePostResponse.query" [tableObj] = "GetValidateResponseString()"></app-sql-validate-error-dialog-component> -->
+ <div class="modalTitle">{{Validatestatus}}</div>
+ <button (click)="closeValidateModal()" *ngIf="Validateclosable" aria-label="Close"
+ class="dialog__close-btn">X
+ </button>
+ <br/>
+ <app-sql-validate-success-dialog-component
+ [tableObj]="validateResponseString"></app-sql-validate-success-dialog-component>
+ <!-- <app-sql-validate-error-dialog-component *ngIf="!ValidatePostResponse.query" [tableObj] = "GetValidateResponseString()"></app-sql-validate-error-dialog-component> -->
</div>
</div>
<div class="card-footer" style="width: 800px;">
- <button style="font-size: 17px;" (click)="closeValidateModal()" class="btn btn-alt btn-small">Close</button>
+ <button (click)="closeValidateModal()" class="btn btn-alt btn-small" style="font-size: 17px;">Close
+ </button>
</div>
</div>
- </div>
+ </div>
</app-sql-validate-changes-dialog-component>
-<app-form-fields-add-edit [(visible)]="showDialog" >
- <div class="card">
- <div class="card-header">
- <div class="modalTitle">Report Form Field - Edit</div>
- <button *ngIf="closable" (click)="close()" aria-label="Close" class="dialog__close-btn">X</button>
- <br/>
+<app-form-fields-add-edit [(visible)]="showDialog">
+ <div class="card">
+ <div class="card-header">
+ <div class="modalTitle">Report Form Field - Edit</div>
+ <button (click)="close()" *ngIf="closable" aria-label="Close" class="dialog__close-btn">X</button>
+ <br/>
+ </div>
+
+
+ <div class="card-body" style="width: 100px; height: 760px; ">
+ <div style="height:737px; overflow: scroll; overflow-x: hidden;">
+ <br/>
+ <br/>
+
+
+ <label class="defaultLabelFontSize">Field Name:</label><label><input [(ngModel)]="fieldName"
+ class="defaultFontSize" id="fieldName"
+ type="text"
+ value="{{fieldName}}"/></label>
+
+
+ <br/>
+ <br/>
+ <br/>
+ <div class="field-group">
+ <label>Field Type:</label>
+ <select [(ngModel)]="fieldType" class="browser-default custom-select defaultFontSize" id="fieldType"
+ required="required" value="{{fieldType}}">
+ <option class="defaultFontSize" selected>Select Field Type</option>
+ <option class="defaultFontSize" value="TEXT">Text Box</option>
+ <option class="defaultFontSize" value="TEXTAREA">TEXTAREA</option>
+ <option class="defaultFontSize" value="LIST_BOX">List Box</option>
+ <option class="defaultFontSize" value="LIST_MULTI_SELECT">Multi-select List Box</option>
+ <option class="defaultFontSize" value="HIDDEN">Hidden</option>
+ </select>
+ </div>
+ <br/>
+ <br/>
+
+ <div class="field-group">
+ <label>Visible:</label>
+ <select [(ngModel)]="visible" class="browser-default custom-select defaultFontSize" id="visible"
+ required="required" value="{{visible}}">
+ <option class="defaultFontSize" selected value="YES">YES</option>
+ <option class="defaultFontSize" value="NO">NO</option>
+ </select>
+ </div>
+
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultLabelFontSize">Is used in Group By Clause?:</label>
+ <label class="defaultLabelFontSize" class="checkbox" for="groupFormField">
+ <input [(ngModel)]="groupFormField" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="groupFormField"
+ type="checkbox" value="{{groupFormField}}"><i class="skin"></i><span></span>
+ </label>
+ </div>
+
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultLabelFontSize">SQL as Default Value:</label>
+ <label class="defaultLabelFontSize" class="checkbox" for="isDefaultSql">
+ <input [(ngModel)]="isDefaultSql" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="isDefaultSql"
+ type="checkbox" value="{{isDefaultSql}}"><i class="skin"></i><span></span>
+ </label>
+ </div>
+
+ <div *ngIf="isDefaultSql">
+ <br/>
+ <br/>
+ <div class="field-group">
+ <label>Default SQL:</label>
+ <textarea [(ngModel)]="fieldDefaultSQL" class="defaultFontSize" id="fieldDefaultSQL"
+ type="textarea" value="{{fieldDefaultSQL}}"></textarea>
+ <div class="center">
+ <button (click)="verify('Default')" class="btn btn-alt btn-small" style="font-size: 17px;">
+ Verify
+ </button>
</div>
-
-
- <div class="card-body" style="width: 1000px; height: 760px; ">
- <div style="height:737px; overflow: scroll; overflow-x: hidden;">
- <br/>
- <br/>
-
-
- <label class="defaultLabelFontSize">Field Name:</label><label><input class="defaultFontSize" id="fieldName" type="text" [(ngModel)]="fieldName" value="{{fieldName}}"/></label>
-
-
-
- <br/>
- <br/>
- <br/>
- <div class="field-group">
- <label>Field Type:</label>
- <select class="browser-default custom-select defaultFontSize" id="fieldType" required="required" [(ngModel)]="fieldType" value="{{fieldType}}">
- <option class="defaultFontSize" selected>Select Field Type </option>
- <option class="defaultFontSize" value="TEXT">Text Box</option>
- <option class="defaultFontSize" value="TEXTAREA">TEXTAREA</option>
- <option class="defaultFontSize" value="LIST_BOX">List Box</option>
- <option class="defaultFontSize" value="LIST_MULTI_SELECT">Multi-select List Box</option>
- <option class="defaultFontSize" value="HIDDEN">Hidden</option>
- </select>
- </div>
- <br/>
- <br/>
-
- <div class="field-group">
- <label>Visible:</label>
- <select class="browser-default custom-select defaultFontSize" id="visible" required="required" [(ngModel)]="visible" value="{{visible}}">
- <option class="defaultFontSize" value="YES" selected>YES</option>
- <option class="defaultFontSize" value="NO">NO</option>
- </select>
- </div>
-
- <br/>
- <br/>
- <div>
- <label class="defaultLabelFontSize">Is used in Group By Clause?:</label>
- <label class="defaultLabelFontSize" for="groupFormField" class="checkbox">
- <input id="groupFormField" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="groupFormField" value="{{groupFormField}}"><i class="skin"></i><span></span>
- </label>
- </div>
-
- <br/>
- <br/>
- <div>
- <label class="defaultLabelFontSize">SQL as Default Value:</label>
- <label class="defaultLabelFontSize" for="isDefaultSql" class="checkbox">
- <input id="isDefaultSql" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="isDefaultSql" value="{{isDefaultSql}}"><i class="skin"></i><span></span>
- </label>
- </div>
-
- <div *ngIf="isDefaultSql">
- <br/>
- <br/>
- <div class="field-group">
- <label>Default SQL:</label>
- <textarea class="defaultFontSize" id="fieldDefaultSQL" type="textarea" [(ngModel)]="fieldDefaultSQL" value="{{fieldDefaultSQL}}"></textarea>
- <button style="font-size: 17px;" (click)="verify('Default')" class="btn btn-alt btn-small">Verify</button>
-
- </div>
- </div>
- <br/>
- <div *ngIf="(fieldDefaultSQL == null || fieldDefaultSQL == '') && isDefaultSql == false">
- <label class="defaultLabelFontSize" >Default Value:</label>
- <label><input class="defaultFontSize" id="defaultValue" type="text" [(ngModel)]="defaultValue" value="{{defaultValue}}"/></label>
-
-
- </div>
- <br/>
- <br/>
- <br/>
- <div class="field-group">
- <label>Verify Field Value As:</label>
- <select class="browser-default custom-select defaultFontSize" id="validationType" required="required" [(ngModel)]="validationType" value="{{validationType}}">
- <option class="defaultFontSize" value="" selected>Select Visibility </option>
- <option class="defaultFontSize" value="">Do Not Perform Validation</option>
- <option class="defaultFontSize" value="INTEGER">Integer</option>
- <option class="defaultFontSize" value="POSITIVE_INTEGER">Positive Integer</option>
- <option class="defaultFontSize" value="DATE">Date</option>
- <option class="defaultFontSize" value="TIMESTAMP_SEC">Timestamp(Hour, Min, Sec)</option>
- <option class="defaultFontSize" value="TIMESTAMP_MIN">Timestamp(Hour, Min)</option>
- <option class="defaultFontSize" value="TIMESTAMP_HOUR">Timestamp(Hour)</option>
- <option class="defaultFontSize" value="NON_NEGATIVE_INTEGER">Positive Integer Can not Be Zero</option>
- <option class="defaultFontSize" value="FLOAT">Any Number</option>
- <option class="defaultFontSize" value="NON_NEGATIVE_FLOAT">Positive Number</option>
- <option class="defaultFontSize" value="POSITIVE_FLOAT">Positive Number Can Not Be Zero</option>
- </select>
- </div>
- <br/>
- <br/>
- <div class="field-group">
- <label>SQL Generating Custom List of Values:</label>
- <textarea class="defaultFontSize" id="fieldSQL" type="textarea" [(ngModel)]="fieldSQL" value="{{fieldSQL}}"></textarea>
- <button style="font-size: 17px;" (click)="verify('Regular')" class="btn btn-alt btn-small">Verify</button>
- </div>
- <br/>
- <br/>
- <div>
- <label class="defaultLabelFontSize">Provide Predefined List of Values: Do not use Predefined list - Generate list from database:</label><label><input class="defaultFontSize" id="predefinedValue" type="text" [(ngModel)]="predefinedValue" value="{{predefinedValue}}"/></label>
- <button style="font-size: 17px;" (click)="addToList(predefinedValue)" class="btn btn-alt btn-small">Add to List</button>
- </div>
- <br/>
- <br/>
-
- <div>
- <div *ngFor="let value of predefinedValueList">
- <div style="margin-left: 5px;">
- <label >{{value.name}}</label>
- <mat-icon aria-hidden="false" aria-label="delete" (click)="deleteFromList(value.id)">delete</mat-icon>
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <div class="card-footer" style="width: 1000px; height: 65px; padding-left: 770px;">
- <button style="font-size: 17px;" *ngIf="!showConfirmButton" (click)="save();" class="btn btn-alt btn-small">Save</button>&nbsp;
- <button style="font-size: 17px;" *ngIf="showConfirmButton" (click)="complete();" class="btn btn-alt btn-small">Confirm</button>&nbsp;&nbsp;
- <button style="font-size: 17px;" (click)="close()" class="btn btn-alt btn-small">Cancel</button>
- </div>
-
-
+ </div>
</div>
-</app-form-fields-add-edit>
+ <br/>
+ <div *ngIf="(fieldDefaultSQL == null || fieldDefaultSQL == '') && isDefaultSql == false">
+ <label class="defaultLabelFontSize">Default Value:</label>
+ <label><input [(ngModel)]="defaultValue" class="defaultFontSize" id="defaultValue" type="text"
+ value="{{defaultValue}}"/></label>
-<div class="stdForm">
- <br/>
- <div class="tab-content">
- <h3>Step 4 - Report Form Fields</h3>
-
+ </div>
+ <br/>
+ <br/>
+ <br/>
+ <div class="field-group">
+ <label>Verify Field Value As:</label>
+ <select [(ngModel)]="validationType" class="browser-default custom-select defaultFontSize"
+ id="validationType" required="required" value="{{validationType}}">
+ <option class="defaultFontSize" selected value="">Select Visibility</option>
+ <option class="defaultFontSize" value="">Do Not Perform Validation</option>
+ <option class="defaultFontSize" value="INTEGER">Integer</option>
+ <option class="defaultFontSize" value="POSITIVE_INTEGER">Positive Integer</option>
+ <option class="defaultFontSize" value="DATE">Date</option>
+ <option class="defaultFontSize" value="TIMESTAMP_SEC">Timestamp(Hour, Min, Sec)</option>
+ <option class="defaultFontSize" value="TIMESTAMP_MIN">Timestamp(Hour, Min)</option>
+ <option class="defaultFontSize" value="TIMESTAMP_HOUR">Timestamp(Hour)</option>
+ <option class="defaultFontSize" value="NON_NEGATIVE_INTEGER">Positive Integer Can not Be Zero
+ </option>
+ <option class="defaultFontSize" value="FLOAT">Any Number</option>
+ <option class="defaultFontSize" value="NON_NEGATIVE_FLOAT">Positive Number</option>
+ <option class="defaultFontSize" value="POSITIVE_FLOAT">Positive Number Can Not Be Zero</option>
+ </select>
+ </div>
+ <br/>
+ <br/>
+ <div class="field-group">
+ <label>SQL Generating Custom List of Values:</label>
+ <textarea [(ngModel)]="fieldSQL" class="defaultFontSize" id="fieldSQL" type="textarea"
+ value="{{fieldSQL}}"></textarea>
+ <div class="center">
+ <button (click)="verify('Regular')" class="btn btn-alt btn-small"
+ style="font-size: 17px;">Verify
+ </button>
+ </div>
+ </div>
+ <br/>
+ <br/>
+ <div>
+ <label class="defaultLabelFontSize">Provide Predefined List of Values: Do not use Predefined list -
+ Generate list from database:</label><label><input [(ngModel)]="predefinedValue" class="defaultFontSize"
+ id="predefinedValue" type="text"
+ value="{{predefinedValue}}"/></label>
+ <button (click)="addToList(predefinedValue)" class="btn btn-alt btn-small" style="font-size: 17px;">
+ Add to List
+ </button>
+ </div>
+ <br/>
+ <br/>
+
+ <div>
+ <div *ngFor="let value of predefinedValueList">
+ <div style="margin-left: 5px;">
+ <label>{{value.name}}</label>
+ <mat-icon (click)="deleteFromList(value.id)" aria-hidden="false" aria-label="delete">
+ delete
+ </mat-icon>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
- <span class="ecomp-spinner" *ngIf="showSpinner"></span>
- <br/>
- <br/>
- <h4>Form Field Groups</h4>
- <br/>
- <div *ngFor="let group of Groups">
- <button class="formFieldGroupButton" mat-button >{{group.name}}</button><mat-icon style="margin-left: 21%;" aria-hidden="false" aria-label="delete" (click)="deleteGroup(group.name)">delete</mat-icon>
- <table style="margin-top: 10px;" class="app-data-table">
-
- <th class="defaultFontSize">Order Number</th>
- <th class="defaultFontSize">Field Name</th>
- <th class="defaultFontSize">Delete From Group</th>
-
- <tr *ngFor="let item of group.formFieldList; let i = index;">
- <td>
- {{item.orderSeq}}
- </td>
- <td>
- {{item.name}}
- </td>
- <td>
- <mat-icon aria-hidden="false" aria-label="delete" (click)="deleteFromGroup(item.id)">delete</mat-icon>
- </td>
- </tr>
-
- </table>
- <br/>
+ <div class="card-footer" style="width: 1000px; height: 65px; padding-left: 770px;">
+ <button (click)="save();" *ngIf="!showConfirmButton" class="btn btn-alt btn-small" style="font-size: 17px;">
+ Save
+ </button>&nbsp;
+ <button (click)="complete();" *ngIf="showConfirmButton" class="btn btn-alt btn-small"
+ style="font-size: 17px;">Confirm
+ </button>&nbsp;&nbsp;
+ <button (click)="close()" class="btn btn-alt btn-small" style="font-size: 17px;">Cancel</button>
</div>
+
+
+ </div>
+</app-form-fields-add-edit>
+
+
+<div class="stdForm">
+ <br/>
+ <div class="tab-content">
+ <h3>Step 4 - Report Form Fields</h3>
+
+ </div>
+ <span *ngIf="showSpinner" class="ecomp-spinner"></span>
+ <br/>
+ <br/>
+
+ <h4>Form Field Groups</h4>
+ <br/>
+ <div *ngFor="let group of Groups">
+ <button class="formFieldGroupButton" mat-button>{{group.name}}</button>
+ <mat-icon (click)="deleteGroup(group.name)" aria-hidden="false" aria-label="delete" style="margin-left: 21%;">
+ delete
+ </mat-icon>
+ <mat-icon (click)="editGroup(group)" aria-hidden="false" aria-label="edit" class="edit-group">edit</mat-icon>
+ <table class="app-data-table" style="margin-top: 10px;">
+
+ <th class="defaultFontSize">Order Number</th>
+ <th class="defaultFontSize">Field Name</th>
+ <th class="defaultFontSize">Delete From Group</th>
+
+ <tr *ngFor="let item of group.formFieldList; let i = index;">
+ <td>
+ {{item.orderSeq}}
+ </td>
+ <td>
+ {{item.name}}
+ </td>
+ <td>
+ <mat-icon (click)="deleteFromGroup(item.id)" aria-hidden="false" aria-label="delete">delete
+ </mat-icon>
+ </td>
+ </tr>
+
+ </table>
<br/>
- <div class="field-group">
+ </div>
+ <br/>
+ <div class="field-group">
<table style="width: auto; margin-left: 70%;">
- <tr>
- <td><button style="font-size: 17px;" class="btn btn-alt btn-small" (click)="createGroup()" >Create Group</button></td>
- <td><button style="font-size: 17px;" class="btn btn-alt btn-small" (click)="saveFormFieldGroups()" >Save Group</button></td>
- </tr>
+ <tr>
+ <td>
+ <button (click)="createGroup()" class="btn btn-alt btn-small" style="font-size: 17px;">Create
+ Group
+ </button>
+ </td>
+ <td>
+ <button (click)="saveFormFieldGroups()" class="btn btn-alt btn-small" style="font-size: 17px;">Save
+ Group
+ </button>
+ </td>
+ </tr>
</table>
+ </div>
+ <br/>
+ <h4>Form Field List</h4>
+ <div *ngIf="!showSpinner">
+
+ <table class="app-data-table" style="margin-top: 10px;">
+
+ <th class="defaultFontSize">Order Number</th>
+ <th class="defaultFontSize">Field Name</th>
+ <th class="defaultFontSize">Edit</th>
+ <th class="defaultFontSize">Delete</th>
+
+ <tr *ngFor="let item of formFieldsListObj; let i = index;">
+ <td>
+ {{item.orderSeq}}
+ </td>
+ <td>
+ {{item.name}}
+ </td>
+ <td>
+ <mat-icon (click)="edit(item.id); setDisplayMode('Edit');" aria-hidden="false" aria-label="edit">
+ edit
+ </mat-icon>
+ </td>
+ <td>
+ <mat-icon (click)="delete(item.id)" aria-hidden="false" aria-label="delete">delete</mat-icon>
+ </td>
+ </tr>
+
+ </table>
+ <br/>
+
+ <div class="field-group">
+ <button (click)="add(); setDisplayMode('Add');" class="btn btn-alt btn-small"
+ style="font-size: 17px; margin-left: 80%;">Add
+ </button>
</div>
<br/>
- <h4>Form Field List</h4>
- <div *ngIf="!showSpinner">
-
- <table style="margin-top: 10px;" class="app-data-table">
-
- <th class="defaultFontSize">Order Number</th>
- <th class="defaultFontSize">Field Name</th>
- <th class="defaultFontSize">Edit</th>
- <th class="defaultFontSize">Order</th>
- <th class="defaultFontSize">Delete</th>
-
- <tr *ngFor="let item of formFieldsListObj; let i = index;">
- <td>
- {{item.orderSeq}}
- </td>
- <td>
- {{item.name}}
- </td>
- <td>
- <mat-icon aria-hidden="false" aria-label="edit" (click)="edit(item.id); setDisplayMode('Edit');">edit</mat-icon>
- </td>
- <td>
- <mat-icon *ngIf="!isFirst(i)" aria-hidden="false" aria-label="expand_less" (click)="moveUpward(i)">expand_less</mat-icon>
- <mat-icon *ngIf="!isLast(i)" aria-hidden="false" aria-label="expand_more" (click)="moveDownward(i)">expand_more</mat-icon>
- </td>
- <td>
- <mat-icon aria-hidden="false" aria-label="delete" (click)="delete(item.id)">delete</mat-icon>
- </td>
- </tr>
-
- </table>
- <br/>
-
- <div class="field-group">
- <button style="font-size: 17px; margin-left: 80%;" class="btn btn-alt btn-small" (click)="add(); setDisplayMode('Add');" >Add</button>
- </div>
- <br/>
- <hr/>
- </div>
+ <hr/>
</div>
+</div>
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 e3bab3bb..e8a60849 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
@@ -1,644 +1,629 @@
-import { Component, OnInit, Input, Inject } from '@angular/core';
-import { FormFieldsService } from './form-fields.service';
-import { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
-import { Observable } from 'rxjs';
-import { MatSnackBar } from '@angular/material/snack-bar';
+import {Component, OnInit, Input, Inject} from '@angular/core';
+import {FormFieldsService} from './form-fields.service';
+import {MatDialog, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
+import {Observable} from 'rxjs';
+import {MatSnackBar} from '@angular/material/snack-bar';
export interface DialogData {
- animal: string;
- name: string;
+ name: string;
}
@Component({
- selector: 'app-form-fields',
- templateUrl: './form-fields.component.html',
- styleUrls: ['./form-fields.component.css']
+ selector: 'app-form-fields',
+ templateUrl: './form-fields.component.html',
+ styleUrls: ['./form-fields.component.css']
})
export class FormFieldsComponent implements OnInit {
- @Input("reportId") reportId1 : string;
-
- formFieldsListObj : any[];
- postMoveUpwrdObj : {};
- postDownwardObj : {};
- orderSeqOfDown : number;
- orderSeqOfUp : number;
- showDialog : boolean;
- closable : boolean;
- sqlAsDefaultValue : Boolean;
- showDefaultSQLOption : boolean;
- verifyFieldValueAs : number;
- predefinedValueList : any[];
- predefinedValue : string;
- tabId : string;
- tabName : string;
- validationType : string;
- visible : string;
- orderSeq : number;
- message : any;
- groupFormField : boolean;
- fieldType : string;
- fieldSQL : string;
- fieldName : string;
- fieldId : string;
- fieldDefaultSQL : string;
- errorStackTrace : any;
- errorMessage : any;
- defaultValue : any;
- finalPOSTObj : any;
- mode : string;
- showSpinner : boolean;
- showDialog1 : boolean;
- queryObj : {};
- validateResponseString : string;
- showVerifySpinner : boolean;
- Groups : {}[] = [];
- isDefaultSql : boolean;
-
-
-
- constructor(private _formFieldsService : FormFieldsService, public dialog: MatDialog, private _snackBar: MatSnackBar) {
- this.formFieldsListObj = new Array();
- this.postMoveUpwrdObj = new Object();
- this.postDownwardObj = new Object();
- this.showDialog = false;
- this.showDefaultSQLOption = false;
- this.closable = true;
- this.predefinedValueList = new Array();
- this.finalPOSTObj = new Object();
- this.showSpinner = false;
- this.showDialog1 = false;
- this.queryObj = {};
- this.showVerifySpinner = false;
- this.Groups = new Array();
- this.isDefaultSql = false;
- }
-
- 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]);
- }
+ @Input('reportId') reportId1: string;
+
+ formFieldsListObj: any[];
+ postMoveUpwrdObj: {};
+ postDownwardObj: {};
+ orderSeqOfDown: number;
+ orderSeqOfUp: number;
+ showDialog: boolean;
+ closable: boolean;
+ sqlAsDefaultValue: Boolean;
+ showDefaultSQLOption: boolean;
+ verifyFieldValueAs: number;
+ predefinedValueList: any[];
+ predefinedValue: string;
+ tabId: string;
+ tabName: string;
+ validationType: string;
+ visible: string;
+ orderSeq: number;
+ message: any;
+ groupFormField: boolean;
+ fieldType: string;
+ fieldSQL: string;
+ fieldName: string;
+ fieldId: string;
+ fieldDefaultSQL: string;
+ errorStackTrace: any;
+ errorMessage: any;
+ defaultValue: any;
+ finalPOSTObj: any;
+ mode: string;
+ showSpinner: boolean;
+ showDialog1: boolean;
+ queryObj: {};
+ validateResponseString: string;
+ showVerifySpinner: boolean;
+ Groups: {}[] = [];
+ isDefaultSql: boolean;
+ showConfirmButton: boolean;
+
+
+ constructor(private _formFieldsService: FormFieldsService, public dialog: MatDialog, private _snackBar: MatSnackBar) {
+ this.formFieldsListObj = [];
+ this.postMoveUpwrdObj = {};
+ this.postDownwardObj = {};
+ this.showDialog = false;
+ this.showDefaultSQLOption = false;
+ this.closable = true;
+ this.predefinedValueList = [];
+ this.finalPOSTObj = {};
this.showSpinner = false;
- this._formFieldsService.getFormFieldGroupsData(this.reportId1)
- .subscribe((responseGroupsData) => {
- this.showSpinner = true;
- this.Groups = JSON.parse(responseGroupsData["formFieldGroupsJSON"]);
- this.showSpinner = false;
- });
- });
- }
-
-
- isLast( n : number)
- {
- if(n == this.formFieldsListObj.length-1)
- {
- return true;
+ this.showDialog1 = false;
+ this.queryObj = {};
+ this.showVerifySpinner = false;
+ this.Groups = [];
+ this.isDefaultSql = false;
}
- else
- {
- return false;
+
+ ngOnInit() {
+ this._formFieldsService.getListOfFormFields()
+ .subscribe((responseFormFields) => {
+ for (let m = 0; m < responseFormFields.length; m++) {
+ responseFormFields[m]['orderSeq'] = m + 1;
+ this.formFieldsListObj.push(responseFormFields[m]);
+ }
+
+ this._formFieldsService.getFormFieldGroupsData(this.reportId1)
+ .subscribe((responseGroupsData) => {
+ this.Groups = JSON.parse(responseGroupsData['formFieldGroupsJSON']);
+ });
+ });
}
- }
- isFirst( n : number)
- {
- if(n == 0)
- {
- return true;
+
+ isLast(n: number) {
+ if (n == this.formFieldsListObj.length - 1) {
+ return true;
+ } else {
+ return false;
+ }
}
- else
- {
- return false;
+
+ isFirst(n: number) {
+ if (n == 0) {
+ return true;
+ } else {
+ return false;
+ }
}
- }
-
-
- moveUpward( n : number)
- {
- this.showSpinner = true;
-
- this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]["id"])
- .subscribe((responseGetFormFieldn) => {
- this.postMoveUpwrdObj = responseGetFormFieldn;
-
- this._formFieldsService.getFormFieldData(this.formFieldsListObj[n-1]["id"])
- .subscribe((responseGetFormFieldnmin1) => {
- this.postDownwardObj = responseGetFormFieldnmin1;
-
- this.orderSeqOfDown = this.postMoveUpwrdObj["orderSeq"];
- this.orderSeqOfUp = this.postDownwardObj["orderSeq"];
-
- this.postMoveUpwrdObj["orderSeq"] = this.orderSeqOfUp;
- this.postDownwardObj["orderSeq"] = this.orderSeqOfDown;
-
- console.log(this.postDownwardObj);
- console.log(this.postMoveUpwrdObj);
- this.postMoveUpwrdObj["lastUpdatedFieldId"] = this.postDownwardObj["fieldId"];
- this.postDownwardObj["lastUpdatedFieldId"] = this.postMoveUpwrdObj["fieldId"];
-
- this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1)
- .subscribe((responsePostn) => {
- if(responsePostn["message"])
- {
- this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1)
- .subscribe((responsePostnmin1) => {
- if(responsePostnmin1["message"])
- {
-
- this.formFieldsListObj = [];
- this._formFieldsService.getListOfFormFields()
- .subscribe((finalListResponse) => {
- for(let k=0; k<finalListResponse.length; k++)
- {
- // this.formFieldsListObj.push(finalListResponse[k]);
- for(let m=0; m<finalListResponse.length; m++)
- {
- if(finalListResponse[m]["orderSeq"] == k+1)
- {
- this.formFieldsListObj.push(finalListResponse[m]);
- }
- }
- }
- this.showSpinner = false;
- });
- }
- });
- }
- });
- });
- });
-
-
-
- }
-
- moveDownward( n : number)
- {
- this.showSpinner = true;
-
- this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]["id"])
- .subscribe((responseGetFormFieldn) => {
- this.postMoveUpwrdObj = responseGetFormFieldn;
-
- this._formFieldsService.getFormFieldData(this.formFieldsListObj[n+1]["id"])
- .subscribe((responseGetFormFieldnmin1) => {
- this.postDownwardObj = responseGetFormFieldnmin1;
-
- this.orderSeqOfDown = this.postMoveUpwrdObj["orderSeq"];
- this.orderSeqOfUp = this.postDownwardObj["orderSeq"];
-
- this.postMoveUpwrdObj["orderSeq"] = this.orderSeqOfUp;
- this.postDownwardObj["orderSeq"] = this.orderSeqOfDown;
-
- console.log(this.postDownwardObj);
- console.log(this.postMoveUpwrdObj);
-
- this.postMoveUpwrdObj["lastUpdatedFieldId"] = this.postDownwardObj["fieldId"];
- this.postDownwardObj["lastUpdatedFieldId"] = this.postMoveUpwrdObj["fieldId"];
-
- this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1)
- .subscribe((responsePostn) => {
- if(responsePostn["message"])
- {
- this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1)
- .subscribe((responsePostnmin1) => {
- if(responsePostnmin1["message"])
- {
-
- this.formFieldsListObj = [];
- this._formFieldsService.getListOfFormFields()
- .subscribe((finalListResponse) => {
- for(let k=0; k<finalListResponse.length; k++)
- {
- // this.formFieldsListObj.push(finalListResponse[k]);
- for(let m=0; m<finalListResponse.length; m++)
- {
- if(finalListResponse[m]["orderSeq"] == k+1)
- {
- this.formFieldsListObj.push(finalListResponse[m]);
- }
- }
- }
- this.showSpinner = false;
- });
- }
- });
- }
-
+ moveUpward(n: number) {
+ this.showSpinner = true;
+
+ this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]['id'])
+ .subscribe((responseGetFormFieldn) => {
+ this.postMoveUpwrdObj = responseGetFormFieldn;
+
+ this._formFieldsService.getFormFieldData(this.formFieldsListObj[n - 1]['id'])
+ .subscribe((responseGetFormFieldnmin1) => {
+ this.postDownwardObj = responseGetFormFieldnmin1;
+
+ this.orderSeqOfDown = this.postMoveUpwrdObj['orderSeq'];
+ this.orderSeqOfUp = this.postDownwardObj['orderSeq'];
+
+ this.postMoveUpwrdObj['orderSeq'] = this.orderSeqOfUp;
+ this.postDownwardObj['orderSeq'] = this.orderSeqOfDown;
+
+ console.log(this.postDownwardObj);
+ console.log(this.postMoveUpwrdObj);
+ this.postMoveUpwrdObj['lastUpdatedFieldId'] = this.postDownwardObj['fieldId'];
+ this.postDownwardObj['lastUpdatedFieldId'] = this.postMoveUpwrdObj['fieldId'];
+
+ this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1)
+ .subscribe((responsePostn) => {
+ if (responsePostn['message']) {
+ this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1)
+ .subscribe((responsePostnmin1) => {
+ if (responsePostnmin1['message']) {
+
+ this.formFieldsListObj = [];
+ this._formFieldsService.getListOfFormFields()
+ .subscribe((finalListResponse) => {
+ for (let k = 0; k < finalListResponse.length; k++) {
+ // this.formFieldsListObj.push(finalListResponse[k]);
+ for (let m = 0; m < finalListResponse.length; m++) {
+ if (finalListResponse[m]['orderSeq'] == k + 1) {
+ this.formFieldsListObj.push(finalListResponse[m]);
+ }
+ }
+ }
+ this.showSpinner = false;
+ });
+ }
+ });
+ }
+ });
+
});
+ });
+
+
+ }
+
+ moveDownward(n: number) {
+ this.showSpinner = true;
+
+ this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]['id'])
+ .subscribe((responseGetFormFieldn) => {
+ this.postMoveUpwrdObj = responseGetFormFieldn;
+
+ this._formFieldsService.getFormFieldData(this.formFieldsListObj[n + 1]['id'])
+ .subscribe((responseGetFormFieldnmin1) => {
+ this.postDownwardObj = responseGetFormFieldnmin1;
+
+ this.orderSeqOfDown = this.postMoveUpwrdObj['orderSeq'];
+ this.orderSeqOfUp = this.postDownwardObj['orderSeq'];
+
+ this.postMoveUpwrdObj['orderSeq'] = this.orderSeqOfUp;
+ this.postDownwardObj['orderSeq'] = this.orderSeqOfDown;
+
+ console.log(this.postDownwardObj);
+ console.log(this.postMoveUpwrdObj);
+
+ this.postMoveUpwrdObj['lastUpdatedFieldId'] = this.postDownwardObj['fieldId'];
+ this.postDownwardObj['lastUpdatedFieldId'] = this.postMoveUpwrdObj['fieldId'];
+
+ this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1)
+ .subscribe((responsePostn) => {
+ if (responsePostn['message']) {
+ this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1)
+ .subscribe((responsePostnmin1) => {
+ if (responsePostnmin1['message']) {
+
+ this.formFieldsListObj = [];
+ this._formFieldsService.getListOfFormFields()
+ .subscribe((finalListResponse) => {
+ for (let k = 0; k < finalListResponse.length; k++) {
+ // this.formFieldsListObj.push(finalListResponse[k]);
+ for (let m = 0; m < finalListResponse.length; m++) {
+ if (finalListResponse[m]['orderSeq'] == k + 1) {
+ this.formFieldsListObj.push(finalListResponse[m]);
+ }
+ }
+ }
+ this.showSpinner = false;
+ });
+ }
+ });
+ }
+
+ });
- });
+ });
});
- }
+ }
+
+ ngDoCheck() {
+ if (this.sqlAsDefaultValue) {
+ this.showDefaultSQLOption = true;
+ } else {
+ this.showDefaultSQLOption = false;
+ }
- ngDoCheck()
- {
- if(this.sqlAsDefaultValue)
- {
- this.showDefaultSQLOption = true;
}
- else
- {
- this.showDefaultSQLOption = false;
+
+ setDisplayMode(displayMode: string) {
}
-
- }
-
- setDisplayMode(displayMode : string)
- {
- }
-
- edit(id : string)
- {
- this._formFieldsService.getFormFieldData(id)
- .subscribe((responseFormFieldData) => {
- this.validationType = responseFormFieldData["validationType"];
-
- if(responseFormFieldData["visible"] === true)
- {
- this.visible = "YES";
- }
- else
- {
- this.visible = "NO";
- }
-
- this.orderSeq = responseFormFieldData["orderSeq"];
- this.message = responseFormFieldData["message"];
- this.groupFormField = responseFormFieldData["groupFormField"];
- this.fieldType = responseFormFieldData["fieldType"];
- this.fieldSQL = responseFormFieldData["fieldSQL"];
- this.fieldName = responseFormFieldData["fieldName"];
- this.fieldId = responseFormFieldData["fieldId"];
- this.fieldDefaultSQL = responseFormFieldData["fieldDefaultSQL"];
- this.errorStackTrace = responseFormFieldData["errorStackTrace"];
- this.errorMessage = responseFormFieldData["errorMessage"];
- this.defaultValue = responseFormFieldData["defaultValue"] ;
- if(this.fieldDefaultSQL != null || this.fieldDefaultSQL != "")
- this.isDefaultSql = true;
- else
- this.isDefaultSql = false;
-
- if(this.defaultValue == null || this.defaultValue == "")
- this.isDefaultSql = true;
- else
- this.isDefaultSql = false;
-
- if ((this.fieldDefaultSQL == null || this.fieldDefaultSQL == "") && (this.defaultValue == null || this.defaultValue == ""))
- this.isDefaultSql = false;
-
- if(responseFormFieldData["predefinedValueList"] == null)
- {
+
+ editGroup(group: any) {
+ this.openEditDialog(group);
+ }
+
+ edit(id: string) {
+ this._formFieldsService.getFormFieldData(id)
+ .subscribe((responseFormFieldData) => {
+ this.validationType = responseFormFieldData['validationType'];
+
+ if (responseFormFieldData['visible'] === true) {
+ this.visible = 'YES';
+ } else {
+ this.visible = 'NO';
+ }
+
+ this.orderSeq = responseFormFieldData['orderSeq'];
+ this.message = responseFormFieldData['message'];
+ this.groupFormField = responseFormFieldData['groupFormField'];
+ this.fieldType = responseFormFieldData['fieldType'];
+ this.fieldSQL = responseFormFieldData['fieldSQL'];
+ this.fieldName = responseFormFieldData['fieldName'];
+ this.fieldId = responseFormFieldData['fieldId'];
+ this.fieldDefaultSQL = responseFormFieldData['fieldDefaultSQL'];
+ this.errorStackTrace = responseFormFieldData['errorStackTrace'];
+ this.errorMessage = responseFormFieldData['errorMessage'];
+ this.defaultValue = responseFormFieldData['defaultValue'];
+ if (this.fieldDefaultSQL != null || this.fieldDefaultSQL != '') {
+ this.isDefaultSql = true;
+ } else {
+ this.isDefaultSql = false;
+ }
+
+ if (this.defaultValue == null || this.defaultValue == '') {
+ this.isDefaultSql = true;
+ } else {
+ this.isDefaultSql = false;
+ }
+
+ if ((this.fieldDefaultSQL == null || this.fieldDefaultSQL == '') && (this.defaultValue == null || this.defaultValue == '')) {
+ this.isDefaultSql = false;
+ }
+
+ if (responseFormFieldData['predefinedValueList'] == null) {
+ this.predefinedValueList = [];
+ } else {
+ this.predefinedValueList = responseFormFieldData['predefinedValueList'];
+ }
+
+ this.showDialog = true;
+ this.closable = true;
+ this.mode = 'Edit';
+ });
+
+ }
+
+ add() {
+ this.showDialog = true;
+ this.closable = true;
+ this.validationType = '';
+ this.visible = 'YES';
+ this.message = '';
+ this.groupFormField = false;
+ this.fieldType = '';
+ this.fieldSQL = '';
+ this.fieldName = '';
+ this.fieldId = '';
+ this.fieldDefaultSQL = '';
+ this.errorStackTrace = '';
+ this.errorMessage = '';
+ this.isDefaultSql = false;
this.predefinedValueList = [];
- }
- else
- {
- this.predefinedValueList = responseFormFieldData["predefinedValueList"];
- }
-
- this.showDialog = true;
- this.closable = true;
- this.mode = "Edit";
- });
-
- }
-
- add()
- {
- this.showDialog = true;
- this.closable = true;
- this.validationType = "";
- this.visible = "YES";
- this.message = "";
- this.groupFormField = false;
- this.fieldType = "";
- this.fieldSQL = "";
- this.fieldName = "";
- this.fieldId = "";
- this.fieldDefaultSQL = "";
- this.errorStackTrace = "";
- this.errorMessage = "";
- this.isDefaultSql = false;
- this.predefinedValueList = [];
- this.defaultValue="";
-
- this.showDialog = true;
- this.closable = true;
-
- this.mode = "Add";
-
- }
-
- close() {
- this.showDialog = !this.showDialog;
- this.closable = false;
-
- }
-
- closeValidateModal()
- {
- this.showDialog1 = !this.showDialog1;
- this.showVerifySpinner = false;
- }
-
- addToList( attrib : string)
- {
- this.predefinedValueList.push(
- {
- "id" : attrib,
- "name" : attrib,
- "selected" : false
- });
- }
-
- deleteFromList(attrib : string)
- {
-
- for(let k=0; k<this.predefinedValueList.length; k++)
- {
- if(this.predefinedValueList[k]["id"] == attrib)
- {
- this.predefinedValueList.splice(k, 1);
- }
+ this.defaultValue = '';
+
+ this.showDialog = true;
+ this.closable = true;
+
+ this.mode = 'Add';
+
+ }
+
+ close() {
+ this.showDialog = !this.showDialog;
+ this.closable = false;
+
}
- }
-
-
- save()
- {
- this.showSpinner = true;
- this.showDialog = false;
- this.finalPOSTObj["validationType"] = this.validationType;
-
- if(this.visible == "YES")
- {
- this.finalPOSTObj["visible"] = true;
- }
- else
- {
- this.finalPOSTObj["visible"] = false;
- }
-
- this.finalPOSTObj["orderSeq"] = this.orderSeq;
- this.finalPOSTObj["message"] = this.message;
- this.finalPOSTObj["groupFormField"] = this.groupFormField;
- this.finalPOSTObj["fieldType"] = this.fieldType;
- this.finalPOSTObj["fieldSQL"] = this.fieldSQL;
- this.finalPOSTObj["fieldName"] = this.fieldName;
- this.finalPOSTObj["fieldId"] = this.fieldId;
-
- this.finalPOSTObj["errorStackTrace"] = this.errorStackTrace;
- this.finalPOSTObj["errorMessage"] = this.errorMessage;
- this.finalPOSTObj["lastUpdatedFieldId"] = this.fieldId;
-
- this.finalPOSTObj["fieldDefaultSQL"] = this.fieldDefaultSQL;
-
- this.finalPOSTObj["defaultValue"] = this.defaultValue;
-
- if(this.fieldDefaultSQL != "" && this.fieldDefaultSQL != null)
- {
- this.finalPOSTObj["defaultValue"] = "";
- }
-
- this.finalPOSTObj["predefinedValueList"] = this.predefinedValueList;
-
- if(this.mode == "Edit")
- {
- this._formFieldsService.postFormFieldData(this.finalPOSTObj, this.reportId1)
- .subscribe((responsePost) => {
- if(responsePost["message"])
- {
- this._formFieldsService.getListOfFormFields()
- .subscribe((responseFormFields) => {
- this.formFieldsListObj = [];
- let m=0;
- while(responseFormFields[m])
+
+ closeValidateModal() {
+ this.showDialog1 = !this.showDialog1;
+ this.showVerifySpinner = false;
+ }
+
+ addToList(attrib: string) {
+ this.predefinedValueList.push(
{
- this.formFieldsListObj.push(responseFormFields[m]);
- m++;
+ 'id': attrib,
+ 'name': attrib,
+ 'selected': false
+ });
+ }
+
+ deleteFromList(attrib: string) {
+
+ for (let k = 0; k < this.predefinedValueList.length; k++) {
+ if (this.predefinedValueList[k]['id'] == attrib) {
+ this.predefinedValueList.splice(k, 1);
}
+ }
+ }
+
+
+ save() {
+ this.showSpinner = true;
+ this.showDialog = false;
+ this.finalPOSTObj['validationType'] = this.validationType;
+
+ if (this.visible == 'YES') {
+ this.finalPOSTObj['visible'] = true;
+ } else {
+ this.finalPOSTObj['visible'] = false;
+ }
+
+ this.finalPOSTObj['orderSeq'] = this.orderSeq;
+ this.finalPOSTObj['message'] = this.message;
+ this.finalPOSTObj['groupFormField'] = this.groupFormField;
+ this.finalPOSTObj['fieldType'] = this.fieldType;
+ this.finalPOSTObj['fieldSQL'] = this.fieldSQL;
+ this.finalPOSTObj['fieldName'] = this.fieldName;
+ this.finalPOSTObj['fieldId'] = this.fieldId;
+
+ this.finalPOSTObj['errorStackTrace'] = this.errorStackTrace;
+ this.finalPOSTObj['errorMessage'] = this.errorMessage;
+ this.finalPOSTObj['lastUpdatedFieldId'] = this.fieldId;
+
+ this.finalPOSTObj['fieldDefaultSQL'] = this.fieldDefaultSQL;
+
+ this.finalPOSTObj['defaultValue'] = this.defaultValue;
+
+ if (this.fieldDefaultSQL != '' && this.fieldDefaultSQL != null) {
+ this.finalPOSTObj['defaultValue'] = '';
+ }
+
+ this.finalPOSTObj['predefinedValueList'] = this.predefinedValueList;
+
+ if (this.mode == 'Edit') {
+ this._formFieldsService.postFormFieldData(this.finalPOSTObj, this.reportId1)
+ .subscribe((responsePost) => {
+ if (responsePost['message']) {
+ this._formFieldsService.getListOfFormFields()
+ .subscribe((responseFormFields) => {
+ this.formFieldsListObj = [];
+ let m = 0;
+ while (responseFormFields[m]) {
+ this.formFieldsListObj.push(responseFormFields[m]);
+ m++;
+ }
+
+
+ this.showSpinner = false;
-
- this.showSpinner = false;
-
- });
-
+ });
+
+ }
+ });
+ } else {
+ this._formFieldsService.addFormFieldData(this.finalPOSTObj, this.reportId1)
+ .subscribe((responsePost) => {
+ if (responsePost['message']) {
+ this._formFieldsService.getListOfFormFields()
+ .subscribe((responseFormFields) => {
+ this.formFieldsListObj = [];
+ let m = 0;
+ while (responseFormFields[m]) {
+ this.formFieldsListObj.push(responseFormFields[m]);
+ m++;
+ }
+
+ this.showSpinner = false;
+
+ });
+ }
+ });
}
- });
}
- else
- {
- this._formFieldsService.addFormFieldData(this.finalPOSTObj, this.reportId1)
- .subscribe((responsePost) => {
- if(responsePost["message"])
- {
- this._formFieldsService.getListOfFormFields()
- .subscribe((responseFormFields) => {
- this.formFieldsListObj = [];
- let m=0;
- while(responseFormFields[m])
- {
- this.formFieldsListObj.push(responseFormFields[m]);
- m++;
- }
- this.showSpinner = false;
-
- });
+ delete(id: string) {
+ this.showSpinner = true;
+ this._formFieldsService.deleteFormField(id)
+ .subscribe((responseDeleted) => {
+ if (responseDeleted['message'] == 'Formfield Deleted') {
+ this._formFieldsService.getListOfFormFields()
+ .subscribe((responseFormFields) => {
+ this.formFieldsListObj = [];
+ let m = 0;
+ while (responseFormFields[m]) {
+ this.formFieldsListObj.push(responseFormFields[m]);
+ m++;
+ }
+
+ this.showSpinner = false;
+
+ });
+ }
+ });
+ }
+
+ verify(SQLType: string) {
+ this.showVerifySpinner = true;
+ this.showDialog1 = true;
+ if (SQLType == 'Default') {
+ this.queryObj = {
+ query: this.fieldDefaultSQL
+ };
+ this._formFieldsService.verifySQL(this.queryObj)
+ .subscribe((responseDefaultSQL) => {
+ this.validateResponseString = responseDefaultSQL['data']['elements'];
+ this.showVerifySpinner = false;
+ });
+ } else {
+ this.queryObj = {
+ query: this.fieldSQL
+ };
+ this._formFieldsService.verifySQL(this.queryObj)
+ .subscribe((responseSQL) => {
+ this.validateResponseString = responseSQL['data']['elements'];
+ this.showVerifySpinner = false;
+ });
}
- });
+
}
- }
-
- delete( id : string)
- {
- this.showSpinner = true;
- this._formFieldsService.deleteFormField(id)
- .subscribe((responseDeleted) => {
- if(responseDeleted["message"] == "Formfield Deleted")
- {
- this._formFieldsService.getListOfFormFields()
- .subscribe((responseFormFields) => {
- this.formFieldsListObj = [];
- let m=0;
- while(responseFormFields[m])
- {
- this.formFieldsListObj.push(responseFormFields[m]);
- m++;
+
+ deleteFromGroup(formFieldId: String) {
+ for (let k = 0; k < this.Groups.length; k++) {
+ let element = this.Groups[k];
+ for (let l = 0; l < element["formFieldList"].length; l++) {
+ if (element['formFieldList'][l]['id'] == formFieldId) {
+ this.Groups[k]['formFieldList'].splice(l, 1);
+ }
}
+ }
+ }
- this.showSpinner = false;
-
- });
+ deleteGroup(groupName: string) {
+ for (let k = 0; k < this.Groups.length; k++) {
+ if (this.Groups[k]['name'] == groupName) {
+ this.Groups.splice(k, 1);
+ }
}
- })
- }
-
- verify( SQLType : string)
- {
- this.showVerifySpinner = true;
- this.showDialog1 = true;
- if(SQLType == "Default")
- {
- this.queryObj = {
- query : this.fieldDefaultSQL
- };
- this._formFieldsService.verifySQL(this.queryObj)
- .subscribe((responseDefaultSQL) => {
- this.validateResponseString = responseDefaultSQL["data"]["elements"];
- this.showVerifySpinner = false;
- });
}
- else
- {
- this.queryObj = {
- query : this.fieldSQL
- };
- this._formFieldsService.verifySQL(this.queryObj)
- .subscribe((responseSQL) => {
- this.validateResponseString = responseSQL["data"]["elements"];
- this.showVerifySpinner = false;
- });
+
+ createGroup() {
+ this.openDialog();
}
-
- }
-
- deleteFromGroup(formFieldId : String)
- {
- for(let k=0; k<this.Groups.length; k++)
- {
- let element = this.Groups[k];
- for(let l=0; l<element["formFieldList"].length; l++)
- {
- if(element["formFieldList"][l]["id"] == formFieldId)
- {
- this.Groups[k]["formFieldList"].splice(l, 1);
+
+ openDialog() {
+ const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
+ width: '400px',
+ height: '600px',
+ data: this.formFieldsListObj,
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+
+ let groupAlreadyExists = false;
+ if (this.Groups == null || this.Groups == undefined) {
+ this.Groups = [];
+ }
+ for (let k = 0; k < this.Groups.length; k++) {
+ if (this.Groups[k]['name'] == result['name']) {
+ groupAlreadyExists = true;
+ }
+ }
+
+
+ if (!groupAlreadyExists) {
+ let UpdatedResult = result;
+ for (let i = 0; i < result["formFieldList"].length; i++) {
+ let formFieldId = result['formFieldList'][i];
+ let j = 0;
+ while (this.formFieldsListObj[j]) {
+ if (this.formFieldsListObj[j]['id'] == formFieldId) {
+ UpdatedResult['formFieldList'][i] = this.formFieldsListObj[j];
+ }
+ j++;
+ }
+
+ }
+ if (this.Groups !== null || this.Groups !== undefined) {
+ this.Groups.push(UpdatedResult);
+ } else {
+ this.Groups = [];
+ this.Groups.push(UpdatedResult);
+ }
+
+ } else {
+ this.openSnackBar('Group Already Exists.', 'Try using another name!');
+ }
+
+
+ });
+ }
+
+
+ openEditDialog(groupInfo: any) {
+ const multiSelectArray = [];
+ for (let arr = 0; arr < groupInfo['formFieldList'].length; arr++) {
+ multiSelectArray.push(groupInfo['formFieldList'][arr]['id']);
}
- }
+ let editGroupInfo = {};
+ editGroupInfo['formFieldList'] = multiSelectArray;
+ editGroupInfo['name'] = groupInfo['name'];
+ const dialogRef = this.dialog.open(EditGroupDialog, {
+ width: '400px',
+ height: '600px',
+ data: {
+ formFieldsListObj: this.formFieldsListObj,
+ editGroupInfo: editGroupInfo
+ }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ for (let k = 0; k < this.Groups.length; k++) {
+ if (this.Groups[k]['name'] == editGroupInfo['name']) {
+ let UpdatedResult = editGroupInfo;
+ for (let i = 0; i < editGroupInfo["formFieldList"].length; i++) {
+ let formFieldId = editGroupInfo['formFieldList'][i];
+ let j = 0;
+ while (this.formFieldsListObj[j]) {
+ if (this.formFieldsListObj[j]['id'] == formFieldId) {
+ UpdatedResult['formFieldList'][i] = this.formFieldsListObj[j];
+ }
+ j++;
+ }
+
+ }
+
+ this.Groups[k]['formFieldList'] = UpdatedResult['formFieldList'];
+ }
+ }
+ });
}
- }
-
- deleteGroup(groupName : string)
- {
- for(let k=0; k<this.Groups.length; k++)
- {
- if(this.Groups[k]["name"] == groupName)
- {
- this.Groups.splice(k, 1);
- }
+
+
+ openSnackBar(message: string, action: string) {
+ this._snackBar.open(message, action, {
+ duration: 5000,
+ });
}
- }
-
- createGroup()
- {
- this.openDialog();
- }
-
- openDialog(){
- const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
- width: '400px',
- height: '600px',
- data: this.formFieldsListObj
- });
-
- dialogRef.afterClosed().subscribe(result => {
-
- let groupAlreadyExists = false;
- if(this.Groups == null || this.Groups == undefined)
- {
- this.Groups = new Array();
- }
- for(let k=0; k<this.Groups.length; k++)
- {
- if(this.Groups[k]["name"] == result["name"])
- {
- groupAlreadyExists = true;
- }
- }
-
-
- if(!groupAlreadyExists)
- {
- let UpdatedResult = result;
- for(let i=0; i<result["formFieldList"].length; i++)
- {
- let formFieldId = result["formFieldList"][i];
- let j=0;
- while(this.formFieldsListObj[j])
- {
- if(this.formFieldsListObj[j]["id"] == formFieldId)
- {
- UpdatedResult["formFieldList"][i] = this.formFieldsListObj[j];
- }
- j++;
- }
- }
- if(this.Groups !== null || this.Groups!== undefined)
- {
- this.Groups.push(UpdatedResult);
- }
- else
- {
- this.Groups = new Array();
- this.Groups.push(UpdatedResult);
- }
-
- }
- else
- {
- this.openSnackBar("Group Already Exists.","Try using another name!");
- }
-
-
- });
- }
-
- openSnackBar(message: string, action: string) {
- this._snackBar.open(message, action, {
- duration: 5000,
- });
- }
-
- saveFormFieldGroups()
- {
- let formFieldGroupsPostObj =
- {
- reportId : this.reportId1,
- formFieldGroupsJSON : JSON.stringify(this.Groups)
- };
-
- this._formFieldsService.postFormFieldGroupsData(formFieldGroupsPostObj)
- .subscribe((responsePost) => {
- this.openSnackBar("Successfully Saved!","");
- });
- }
+ saveFormFieldGroups() {
+ let formFieldGroupsPostObj =
+ {
+ reportId: this.reportId1,
+ formFieldGroupsJSON: JSON.stringify(this.Groups)
+ };
+
+ this._formFieldsService.postFormFieldGroupsData(formFieldGroupsPostObj)
+ .subscribe((responsePost) => {
+ this.openSnackBar('Successfully Saved!', '');
+ });
+ }
}
@Component({
- selector: 'app-create-group',
- templateUrl: './create-group.component.html',
+ selector: 'app-create-group',
+ templateUrl: './create-group.component.html',
})
export class DialogOverviewExampleDialog {
- createGroupObj : any = {};
- constructor(
- public dialogRef: MatDialogRef<DialogOverviewExampleDialog>,
- @Inject(MAT_DIALOG_DATA) public data: DialogData) {
+ createGroupObj: any = {};
+
+ constructor(
+ public dialogRef: MatDialogRef<DialogOverviewExampleDialog>,
+ @Inject(MAT_DIALOG_DATA) public data: DialogData) {
+ }
+
+ onNoClick(): void {
+ this.dialogRef.close();
+ }
+
+}
+
+
+@Component({
+ selector: 'app-edit-group',
+ templateUrl: './edit-group.component.html',
+})
+export class EditGroupDialog {
+ @Input('mode') mode: string;
+ editGroupInfo: any = {};
+
+ constructor(
+ public dialogRef: MatDialogRef<EditGroupDialog>,
+ @Inject(MAT_DIALOG_DATA) public data: DialogData) {
}
- onNoClick() : void {
- this.dialogRef.close();
- }
+ onNoClick(): void {
+ this.dialogRef.close();
+ }
}
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html
index 3bf0b768..df69db51 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html
@@ -14,12 +14,21 @@
<th>User Name</th>
<th>Log Time</th>
<th>Action</th>
+ <th>TimeTaken</th>
</tr>
<tr *ngFor="let item of logDataList; let i = index;">
<td><label>{{i+1}}</label></td>
<td><label>{{item.userName}}</label></td>
<td><label>{{item.logTime}}</label></td>
- <td><label>{{item.action}}</label></td>
+ <td>
+ <div *ngIf="item.action.split('||')[0] == 'linkToReport'">
+ <a (click)="linkToReport(item.action.split('||')[1], item.action.split('||')[2]+item.action.split('||')[4])" [routerLink]="">{{item.action.split('||')[3]}}</a>
+ </div>
+ <div *ngIf="item.action.split('||')[0] != 'linkToReport'"><label>{{item.action}}</label></div>
+
+ </td>
+ <td><label>{{item.timeTaken}}</label></td>
+
</tr>
</table>
</div>
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts
index e2b08a4f..d87288af 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts
@@ -7,6 +7,7 @@ import { MockBackend } from '@angular/http/testing';
import { BaseRequestOptions, Http } from '@angular/http';
import 'rxjs/add/observable/of';
import { Observable } from 'rxjs/Observable';
+import { RouterTestingModule } from '@angular/router/testing';
describe('LogComponent', () => {
let component: LogComponent;
@@ -16,7 +17,7 @@ describe('LogComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ LogComponent ],
- imports: [HttpClientTestingModule],
+ imports: [HttpClientTestingModule, RouterTestingModule],
// providers:[LogService,MockBackend,BaseRequestOptions,{
// porvide:Http,useFactory:(backend:MockBackend,defaultOptions:BaseRequestOptions)=>{
// return new Http(backend,defaultOptions);
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 a90a1f8e..ff031a5a 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
@@ -1,5 +1,7 @@
import { Component, OnInit, Input } from '@angular/core';
import { LogService } from './log.service';
+import { environment } from '../../../../../../environments/environment';
+import { Router } from '@angular/router';
@Component({
selector: 'app-log',
@@ -8,42 +10,47 @@ import { LogService } from './log.service';
})
export class LogComponent implements OnInit {
- @Input("reportId") reportId1 : string;
- @Input("reportType") reportType : string;
+ @Input("reportId") repId: string;
+ @Input("reportType") reportType: string;
- showSpinner : boolean;
- logDataList : {}[];
- stepNo : string;
+ showSpinner: boolean;
+ logDataList: {}[];
+ finalLogDataList: {}[];
+ stepNo: string;
+ canReportRun: boolean;
-
- constructor(private _logService : LogService) {
+
+ constructor(private _logService: LogService, private _router: Router) {
this.showSpinner = false;
this.logDataList = new Array();
- }
+ this.finalLogDataList = new Array();
+ this.canReportRun = false;
+ }
ngOnInit() {
this.showSpinner = true;
- if(this.reportType === "Dashboard")
- {
- this.stepNo= "3";
+ if (this.reportType === "Dashboard") {
+ this.stepNo = "3";
}
- else
- {
- this.stepNo= "7";
+ else {
+ this.stepNo = "7";
}
- this._logService.getLogData(this.reportId1)
+ this._logService.getLogData(this.repId)
.subscribe((responseLogData) => {
-
this.showSpinner = true;
-
this.logDataList = responseLogData;
-
- console.log(this.logDataList);
-
this.showSpinner = false;
});
}
+ linkToReport(reportID: string, queryParameters: string) {
+ if(queryParameters != '' && queryParameters.includes('groupSelectValue') && queryParameters.substring(queryParameters.indexOf('&groupSelectValue=')+ ('&groupSelectValue=').length,queryParameters.indexOf('&fromReportLog=')).length>0){
+ this._router.navigate(['v2/run', reportID, queryParameters,queryParameters.substring(queryParameters.indexOf('&groupSelectValue=')+ ('&groupSelectValue=').length,queryParameters.indexOf('&fromReportLog='))]);
+ }else{
+ this._router.navigate(['v2/run', reportID, queryParameters]);
+ }
+ }
+
}
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.css 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.css
deleted file mode 100644
index a26636f9..00000000
--- 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.css
+++ /dev/null
@@ -1,3218 +0,0 @@
-.wrapper {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
- overflow: auto;
-}
-.wrapper > div {
- border-radius: 5px;
- padding: 0.5em;
-}
-
-mat-button-toggle-group{
- width: 800px;
- }
-
- .stdForm{
- margin-left: 20px;
- line-height: 0.5;
- }
-
- .fieldWidth{
- width: 50%;
- }
-
- .labelWidth{
- font-weight: normal;
- width: 200px;
- }
-
- mat-select{
- border: 1px solid #d2d2d2;
- border-radius: 6px;
- }
-
- :host ::ng-deep .mat-select-value{
- padding: 8px;
- font-size: 15px;
- padding-left: 15px;
- }
- :host ::ng-deep .mat-form-field-underline {
- display: none;
- }
-
- :host ::ng-deep .mat-form-field-infix{
- padding: 0;
- border-top: 0;
- }
- :host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper {
- padding-bottom: 0;
- }
-
- :host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-infix {
- padding: 0;
- }
-
- .mat-form-field{
- width: 200px;
- }
-
- label{
- size: 70px;
- padding-right: 15px;
- }
-
- input {
- width: 200px;
- height: 20px;
- }
-
- .Heading{
- font-size: 45px;
- }
-
- .field-group {
- position: relative;
- display: block;
- }
-
- label + .field-group, label + .input-append, label + .row, label + .row-nowrap, label + .form-row {
- margin-top: 5px;
- }
-
-
- select{
- display: block;
- width: 200px;
- padding: 15px;
- background-color: #e6e6e61a
- }
-
- .checkbox .skin {
- background-color: #fff;
- border: 1px solid #d2d2d2;
- border-radius: 3px;
- display: inline-block;
- height: 24px;
- width: 24px;
- position: absolute;
- left: 0;
- top: 0;
- }
- html {
- overflow-y: scroll;
- -webkit-overflow-scrolling: touch;
- height: 100%;
- position: relative; }
-
- h1,
- h2,
- h3,
- h4,
- h5,
- p,
- blockquote,
- figure,
- ol,
- ul {
- margin: 0;
- padding: 0; }
-
- /* a:focus {
- outline: thin dotted #191919;
- } */
- sub,
- .img-no-rwd {
- max-width: inherit !important; }
-
- svg {
- display: inline-block; }
-
- button,
- input,
- select,
- textarea {
- margin: 0;
- font-size: 100%;
- vertical-align: middle; }
-
- ::-moz-focus-inner {
- padding: 0;
- border: 0; }
-
- button,
- html input[type="button"],
- input[type="reset"],
- input[type="submit"] {
- appearance: button;
- cursor: pointer; }
-
- label,
- select,
- button,
- input[type="button"],
- input[type="reset"],
- input[type="submit"],
- input[type="radio"],
- input[type="checkbox"] {
- cursor: pointer; }
-
- input[type=search] {
- -webkit-appearance: textfield; }
-
- input[type=search]::-webkit-search-cancel-button,
- input[type=search]::-webkit-search-decoration {
- -webkit-appearance: none; }
-
-
-
- select {
- -moz-appearance: none;
- -webkit-appearance: none; }
-
- small {
- font-size: 1.6rem; }
-
- .container {
- margin: 0 auto;
- padding: 0; }
-
- input {
- padding: 8px 15px 8px 15px; }
- .field-group input.input-emphasized[type="search"] + .reset-field:after {
- top: 14px; }
- .field-group input.input-emphasized[type="search"] + .reset-field {
- height: 46px;
- top: 1px; }
-
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3; }
- h2,
- h3 {
- page-break-after: avoid; }
-
- .mar-top-0 {
- margin-top: 0px; }
-
- .mar-top-30 {
- margin-top: 30px; }
-
- a:focus {
- outline: thin dotted #191919; }
-
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- font-weight: normal;
- text-rendering: optimizeLegibility;
- margin: 0;
- line-height: 1; }
-
- @media (max-width: 767px) {
- h1,
- h2,
- h3,
- h4,
- h5,
- h6,
- .heading-page {
- font-size: 2rem;
- font-family: "Omnes-ECOMP-W02", Arial;
- margin-bottom: 30px; }
- .heading-major-section {
- font-size: 2rem;
- font-family: "Omnes-ECOMP-W02", Arial;
- margin-bottom: 30px; }
- .heading-sub-section {
- font-size: 2rem;
- font-family: "Omnes-ECOMP-W02", Arial;
- margin-bottom: 20px; }
- .heading-medium {
- font-size: 2rem;
- font-family: "Omnes-ECOMP-W02", Arial;
- margin-bottom: 20px; }
- .heading-medium-emphasis {
- font-size: 2rem;
- font-family: "Omnes-ECOMP-W02", Arial;
- margin-bottom: 20px; }
- .heading-small {
- font-size: 1.6rem;
- font-family: "Omnes-ECOMP-W02", Arial;
- margin-bottom: 10px; }
- .heading-small-emphasis {
- font-size: 1.6rem;
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- margin-bottom: 5px; }
- * + .heading-major-section {
- margin-top: 30px; }
- * + .heading-sub-section {
- margin-top: 30px; }
- * + .heading-group {
- margin-top: 20px; }
- * + .heading-medium {
- margin-top: 20px; }
- * + .heading-medium-emphasis {
- margin-top: 20px; }
- * + .heading-small {
- margin-top: 20px; }
- * + .heading-small-emphasis {
- margin-top: 20px; }
- * + .heading-micro {
- margin-top: 10px; } }
-
- /* Standard Type styles */
- .zeromargin {
- margin: 0 !important; }
-
- a {
- color: #0568ae;
- text-decoration: none; }
-
- a:hover,
- a:focus {
- text-decoration: underline; }
-
- a:active {
- color: #0568ae; }
-
- .a-min {
- font-size: 12px; }
-
- .a-small {
- font-size: 14px; }
-
- .a-max {
- font-size: 18px; }
-
- a.show-qualifier {
- margin-right: 25px;
- position: relative; }
-
- a.show-qualifier:after {
- color: #333333;
- display: inline-block;
- white-space: pre !important; }
-
- a[href$="pdf"].show-qualifier:after,
- a.show-qualifier.pdf:after {
- content: " (PDF)"; }
-
- a[href$="psd"].show-qualifier:after,
- a.show-qualifier.psd:after {
- content: " (PSD)"; }
-
- .standalone-link {
- display: flex; }
-
- /* 20px for the icon, 10px left of icon */
- .standalone-link.small {
- font-size: 1.4rem; }
-
- .standalone-link.small i[class*="icon-primary-"] {
- font-size: 16px;
- top: 2px; }
-
- .standalone-link.large {
- font-size: 1.8rem; }
-
- .standalone-link.large i[class*="icon-primary-"] {
- font-size: 24px;
- top: -1px; }
-
- p {
- margin: 0 0 12px 0;
- line-height: 2rem; }
-
- .p-small {
- font-size: 1.4rem;
- line-height: 1.8rem; }
-
- p + .p-small {
- margin: 10px 0 0; }
-
- .p-micro {
- font-size: 1.2rem;
- line-height: 1.5rem; }
-
- p + .p-micro {
- margin: 10px 0 0; }
-
- .p-max {
- font-size: 1.8rem; }
-
- p + .p-max {
- margin: 10px 0 0; }
-
- b,
- strong {
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- font-weight: normal; }
-
- i,
- em {
- font-family: "Omnes-ECOMP-W02-Italic", Arial;
- font-style: normal; }
-
- .strike {
- text-decoration: line-through; }
-
- sup {
- display: inline-block;
- font-style: normal;
- height: 1em;
- position: relative;
- vertical-align: text-top;
- width: auto; }
-
- .text-legal {
- color: #5a5a5a;
- font-size: 1.1rem;
- line-height: 1.5rem;
- margin: 0 0 10px; }
-
- .text-legal.legal-module {
- line-height: 1.3rem;
- margin: 0 0 12px; }
-
- .text-legal b,
- .text-legal strong {
- font-weight: bold; }
-
- .text-legal a {
- font-family: "Omnes-ECOMP-W02-Medium", Arial; }
-
- .text-left {
- text-align: left !important; }
-
- .text-right {
- text-align: right !important; }
-
- .text-center {
- text-align: center !important; }
-
- .text-justified {
- text-align: justify !important; }
-
- ul {
- padding: 0;
- margin: 0;
- list-style: none; }
-
- ul.bullet,
- ul.no-bullet,
- ul.lower-alpha,
- ul.lower-roman,
- ol {
- padding: 0;
- margin: 12px 0 0 20px; }
-
- ul.bullet li,
- ul.no-bullet li,
- ul.lower-alpha li,
- ul.lower-roman li,
- ol li {
- padding-left: 15px;
- line-height: 20px;
- position: relative; }
-
- ul.bullet li + li,
- ul.no-bullet li + li,
- ul.lower-alpha li + li,
- ul.lower-roman li + li,
- ol li + li {
- margin-top: 12px; }
-
- ul.bullet > li:before,
- ul.no-bullet > li:before,
- ul.lower-alpha > li:before,
- ul.lower-roman > li:before,
- ol > li:before {
- background-color: #333333;
- border: 2px solid #333333;
- border-radius: 100%;
- content: " ";
- display: block;
- height: 1px;
- left: 0;
- position: absolute;
- top: 8px;
- width: 1px; }
-
- ul.bullet ul,
- ul.no-bullet ul,
- ul.lower-alpha ul,
- ul.lower-roman ul,
- ol ul,
- ul.bullet ol,
- ul.no-bullet ol,
- ul.lower-alpha ol,
- ul.lower-roman ol,
- ol ol {
- margin-top: 12px; }
-
- ul + *,
- ol + * {
- margin-top: 20px; }
-
- ul.no-bullet,
- ul.lower-alpha,
- ul.lower-roman {
- margin: 0; }
-
- ul.no-bullet > li,
- ul.lower-alpha > li,
- ul.lower-roman > li {
- padding-left: 0; }
-
- ul.no-bullet > li:before,
- ul.lower-alpha > li:before,
- ul.lower-roman > li:before {
- display: none !important; }
-
- ol {
- margin: 20px 0 0 32px; }
-
- ol li {
- padding-left: 3px; }
-
- ol li:before {
- display: none; }
-
- ol ol {
- margin-left: 25px; }
-
- ol ul {
- margin-left: -5px; }
-
- ul ul,
- ul ol,
- ol ol,
- ol ul {
- margin-top: 0; }
-
- ul.lower-roman {
- list-style-type: lower-roman;
- margin-top: 12px;
- margin-left: 35px;
- margin-bottom: 0; }
-
- ul.lower-alpha {
- list-style-type: lower-alpha;
- margin-top: 12px;
- margin-left: 35px;
- margin-bottom: 0; }
-
- dl {
- display: table;
- margin: 0 0 20px;
- width: 100%; }
-
- dt,
- dd {
- display: table-cell; }
-
- .btn {
- background-color: transparent;
- background-clip: padding-box;
- border: 1px solid transparent;
- border-radius: 8px;
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15);
- cursor: pointer;
- display: inline-block;
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- font-size: 0.5rem;
- font-weight: normal;
- line-height: 1;
- margin: 0 7px 10px 0;
-
-
- padding: 14px 19px 11px 18px;
- position: relative;
- text-align: center;
- vertical-align: middle;
- white-space: nowrap;
- overflow: hidden; }
- .btn:focus {
- outline: 1px dotted #000;
- outline-offset: -5px; }
- .btn:last-child {
- margin-right: 0; }
- .btn::-moz-focus-inner {
- padding: 0;
- border: 0; }
- .btn i[class*="icon-primary-"].icon-primary-small {
- font-size: 24px;
- top: -2px; }
- .btn i[class*="icon-primary-"].icon-primary-medium {
- font-size: 10px;
- top: -2px; }
- .btn i[class*="icon-primary-"].icon-primary-large {
- font-size: 10px;
- top: -2px; }
-
- a.btn {
- vertical-align: middle; }
- a.btn:hover {
- text-decoration: none; }
-
- .field-group + .btn {
- margin-left: 20px; }
-
- .btn-primary {
- border-color: #ea7400 transparent #d16500;
- background-color: #ea7400 transparent #d16500;
- background: linear-gradient(to bottom, #ea7400 0%, #d16500 100%);
- color: #ffffff;
- font-family: "Omnes-ECOMP-W02", Arial;
- font-weight: bold; }
- .btn-primary:hover {
- text-decoration: none;
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
- .btn-primary:focus {
- text-decoration: none;
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
- .btn-primary:active {
- text-decoration: none;
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
-
- .btn-arrow {
- font-family: "Omnes-ECOMP-W02", Arial;
- font-size: 1.6rem;
- font-weight: normal;
- background-color: transparent;
- border: none;
- padding: 5px 0 0;
- top: -4px;
- color: #333333;
- position: relative; }
- .btn-arrow:hover {
- text-decoration: underline; }
- .btn-arrow:hover .btn-primary {
- text-decoration: none;
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
- .btn-arrow:hover .btn-secondary {
- color: #0568ae;
- outline-color: #000000 !important;
- background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
- .btn-arrow:hover .btn-alt {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); }
- .btn-arrow:hover .btn-specialty {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
- .btn-arrow:focus {
- text-decoration: underline;
- outline: 1px dotted #666; }
- .btn-arrow:focus .btn-primary {
- text-decoration: none;
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
- .btn-arrow:focus .btn-secondary {
- color: #0568ae;
- outline-color: #000000 !important;
- background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
- .btn-arrow:focus .btn-alt {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); }
- .btn-arrow:focus .btn-specialty {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
- .btn-arrow:active .btn-primary {
- text-decoration: none;
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); }
- .btn-arrow:active .btn-secondary {
- color: #0568ae;
- outline-color: #000000 !important;
- background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
- .btn-arrow:active .btn-alt {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); }
- .btn-arrow:active .btn-specialty {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); }
- .btn-arrow .btn-alt {
- border-color: #087ac2 transparent #0568ae;
- background-color: #0568ae;
- background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
- color: #ffffff; }
- .btn-arrow .btn-alt:hover {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
- .btn-arrow .btn-alt:focus {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
- .btn-arrow .btn-alt:active {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
- .btn-arrow::-moz-focus-inner {
- padding: 0;
- border: 0; }
- .btn-arrow .btn {
- border: 1px solid transparent;
- border-radius: 100%;
- height: 20px;
- margin-bottom: 0;
- margin-right: 7px;
- max-width: 20px;
- min-width: 20px;
- padding: 0;
- margin-top: -4px;
- vertical-align: middle;
- width: 36px; }
- .btn-arrow .btn .icon-primary-left {
- bottom: 0;
- display: block;
- height: 100%;
- left: 0;
- line-height: 0;
- position: absolute;
- right: 0;
- text-indent: 0;
- top: 0; }
- .btn-arrow .btn .icon-primary-left:before {
- position: absolute;
- font-size: 1.6rem;
- left: 1px;
- top: 9px; }
- .btn-arrow .btn .icon-primary-right {
- bottom: 0;
- display: block;
- height: 100%;
- left: 0;
- line-height: 0;
- position: absolute;
- right: 0;
- text-indent: 0;
- top: 0;
- color: #ffffff; }
- .btn-arrow .btn .icon-primary-right:before {
- position: absolute;
- font-size: 1.6rem;
- left: 17px;
- top: 9px; }
- .btn-arrow .btn.btn-primary .icon-primary-left {
- color: #fff; }
- .btn-arrow .btn.btn-primary .icon-primary-right {
- color: #fff; }
- .btn-arrow .btn.btn-alt .icon-primary-left {
- color: #fff; }
- .btn-arrow .btn.btn-alt .icon-primary-right {
- color: #fff; }
- .btn-arrow .btn.btn-secondary {
- border: 1px solid #d2d2d2; }
- .btn-arrow .btn.btn-secondary .icon-primary-left {
- color: #0568ae; }
- .btn-arrow .btn.btn-secondary .icon-primary-right {
- color: #0568ae; }
- .btn-arrow .btn.btn-small {
- height: 10px;
-
-
- width: 10px;
- top: -1px; }
- .btn-arrow .btn.btn-small .icon-primary-left:before {
- font-size: 5px;
- top: 4px;
- left: 0; }
- .btn-arrow .btn.btn-small .icon-primary-right:before {
- font-size: 5px;
- top: 4px;
- left: 10px; }
- .btn-arrow .btn.btn-large .icon-primary-left:before {
- font-size: 112%;
- top: 12px;
- left: 23px; }
- .btn-arrow .btn.btn-large .icon-primary-right:before {
- font-size: 112%;
- top: 12px;
- left: 23px; }
-
- .btn-secondary {
- border: 1px solid #d2d2d2;
- background-color: #f2f2f2;
- background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
- color: #0568ae;
- box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.15);
- padding: 14px 18px 11px 17px; }
- .btn-secondary:hover {
- color: #0568ae;
- outline-color: #000000 !important;
- background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
- .btn-secondary:focus {
- color: #0568ae;
- outline-color: #000000 !important;
- background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
- .btn-secondary:active {
- color: #0568ae;
- outline-color: #000000 !important;
- background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); }
-
- .btn-alt {
- border-color: #087ac2 transparent #0568ae;
- background-color: #0568ae;
- background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
- color: #ffffff; }
- .btn-alt:hover {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
- .btn-alt:focus {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
- .btn-alt:active {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); }
-
- .btn.disabled {
- background-image: none;
- background-color: #767676;
- box-shadow: none;
- cursor: not-allowed;
- color: #ffffff;
- border-color: transparent;
- outline: 0 !important; }
- .btn.disabled:hover {
- color: #f2f2f2;
- outline: none !important; }
- .btn.disabled:focus {
- color: #f2f2f2;
- outline: none !important; }
-
- .btn-medium {
- padding: 12px 19px 11px 18px;
- font-size: 1.7rem; }
- .btn-run {
- padding: 12px 19px 11px 18px;
- font-size: 15px;}
- .btn-small {
- font-size: 1.5rem;
- border-radius: 8px;
- margin-left: 600px;
- font-size: 15px;
- }
-
- .btn-auto-upload{
- font-size: 15px;
- }
-
- .div-auto-upload{
- display: contents;
- }
-
- .btn-fullwidth {
- width: 100%; }
-
- button .btn-fill {
- background-clip: padding-box;
- border: 0;
- border-radius: 4px;
- bottom: 0;
- display: block;
- height: auto;
- left: 0;
- margin: 5px;
- position: absolute;
- right: 0;
- top: 0;
- width: auto; }
-
- button .btn-fill[style*="#fff"] {
- border: 1px solid #d2d2d2; }
-
-
- .btn-group[data-select-color="orange"] > .btn.active {
- border-color: #ea7400; }
-
- .btn-group[data-select-color="blue"] > .btn.active {
- border-color: #0568ae; }
-
- .btn-group[data-select-color="green"] > .btn.active {
- border-color: #007a3e; }
-
- .btn-spinbutton-toggle.btn-group {
- display: block !important;
- height: 40px !important;
- margin-top: 5px;
- max-width: 138px;
- min-width: 138px;
- white-space: nowrap; }
-
- .btn-spinbutton-toggle .btn {
- border-radius: 6px;
- font-weight: normal;
- -ms-flex: unset;
- flex: unset;
- height: 40px;
- letter-spacing: normal;
- min-width: auto;
- padding: 3px 0 0;
- text-align: center;
- min-width: 46px;
- width: 46px; }
-
- .btn-spinbutton-toggle .btn[data-max-value] {
- border-bottom: 1px solid #d2d2d2;
- border-top: 1px solid #d2d2d2;
- box-shadow: 0 3px 2px -2px rgba(0, 0, 0, 0.08) inset;
- background-color: #fff;
- cursor: text;
- font-family: "Omnes-ECOMP-W02", Arial;
- font-size: 2rem;
- font-weight: normal;
- padding: 4px 0 0;
- text-align: center;
- min-width: 46px !important;
- width: 46px; }
- .btn-spinbutton-toggle .btn[data-max-value]:focus {
- border-color: #0568ae;
- outline: none; }
- .btn-spinbutton-toggle .btn[data-max-value]:focus + .btn {
- border-left: 1px solid #0568ae;
- transition: border 0.3s linear 0s; }
-
- .btn-spinbutton-toggle .icon-primary-subtractminimize {
- font-size: 30px !important;
- color: #0568ae !important; }
-
- .btn-spinbutton-toggle .icon-primary-add-maximize {
- font-size: 30px !important;
- color: #0568ae !important; }
-
- .btn-spinbutton-toggle .btn[disabled].icon-primary-subtractminimize {
- background-color: #d2d2d2;
- color: #767676 !important; }
-
- .btn-spinbutton-toggle .btn[disabled].icon-primary-add-maximize {
- background-color: #d2d2d2;
- color: #767676 !important; }
-
- .btn-spinbutton-toggle input.btn[disabled] {
- background-color: #d2d2d2;
- color: #5a5a5a;
- cursor: not-allowed; }
-
- .btn-group.btn-spinbutton-toggle .btn[disabled] + .btn[disabled] {
- border-left: 1px solid #f0f0f0 !important; }
-
- .btn-group.btn-spinbutton-toggle .btn[data-max-value]:focus + .btn:not(:first-child) {
- border-left: 1px solid #0568ae !important; }
-
- @media (max-width: 480px) {
- .btn-group:not([data-select-color]) > .btn {
- font-size: 1.3rem;
- min-width: auto; } }
-
- button.close {
- border: 0;
- appearance: none; }
-
- .corner-button {
- box-shadow: 0 -50px 0 0 #f2f2f2 inset;
- height: 69px;
- /*overflow: hidden;*/
- position: absolute;
- right: -35px;
- top: -35px;
- transform: rotate(45deg);
- width: 69px; }
-
-
- .field-group input + .reset-field {
- background: none;
- height: 36px;
- width: 45px;
- display: none;
- padding: 0;
- position: absolute;
- right: 0;
- top: 0;
- box-shadow: none;
- border: none;
- content: " "; }
-
- .field-group input[type="search"] + .reset-field,
- .field-group input[type="search"] + .btn-search + .reset-field,
- .tooltip-onclick input + .reset-field,
- .tooltip-onclick input + .icon-primary-tooltip + .reset-field,
- .tooltip-onclick textarea + .reset-field,
- .tooltip-onclick textarea + .icon-primary-tooltip + .reset-field {
- right: 45px; }
-
- .field-group input[type="search"] + .reset-field:after,
- .field-group input[type="search"] + .btn-search + .reset-field:after,
-
- input:-ms-clear {
- display: none; }
-
- input[type]::-webkit-inner-spin-button,
- input[type]::-webkit-outer-spin-button {
- -webkit-appearance: none; }
-
- input[type] {
- -moz-appearance: textfield; }
-
- form {
- margin: 0; }
-
- fieldset {
- padding: 0;
- margin: 0;
- border: 0; }
-
- label,
- legend {
- display: inline-block;
- /* font-size: 1.4rem; */
- font-family: "Omnes-ECOMP-W02-Medium", Arial; }
-
- legend {
- display: block; }
-
- .error-msg {
- display: none; }
-
- select,
- textarea,
- input {
- border-radius: 6px;
- color: #5a5a5a;
- display: inline-block;
- font-size: 1.6rem;
- margin: 0px;
- padding: 0 15px 0 15px;
- vertical-align: middle;
- line-height: normal; }
-
- select::-webkit-input-placeholder,
- textarea::-webkit-input-placeholder,
- input::-webkit-input-placeholder {
- color: #5a5a5a;
- font-family: "Omnes-ECOMP-W02-Italic", Arial;
- font-style: normal;
- opacity: 1; }
-
- select:-moz-placeholder,
- textarea:-moz-placeholder,
- input:-moz-placeholder {
- color: #5a5a5a;
- font-family: "Omnes-ECOMP-W02-Italic", Arial;
- font-style: normal;
- opacity: 1; }
-
- select::-moz-placeholder,
- textarea::-moz-placeholder,
- input::-moz-placeholder {
- color: #5a5a5a;
- font-family: "Omnes-ECOMP-W02-Italic", Arial;
- font-style: normal;
- opacity: 1; }
-
- select:-ms-input-placeholder,
- textarea:-ms-input-placeholder,
- input:-ms-input-placeholder {
- color: #5a5a5a;
- font-family: "Omnes-ECOMP-W02-Italic", Arial;
- transition: none;
- opacity: 1; }
-
- select:placeholder,
- textarea:placeholder,
- input:placeholder {
- color: #5a5a5a;
- font-family: "Omnes-ECOMP-W02-Italic", Arial;
- font-style: normal;
- opacity: 1; }
-
- select:last-child,
- textarea:last-child,
- input:last-child {
- margin-right: 0; }
-
- input:not([type="button"]) {
- height: 36px; }
-
- input.input-emphasized {
- font-size: 1.8rem;
- height: 48px;
- padding: 13px 20px 13px; }
-
- input[type="search"]:focus {
- padding-right: 88px; }
-
- input[type="search"] {
- padding-right: 40px;
- -webkit-appearance: none !important; }
-
- input[type="search"].input-emphasized {
- padding-right: 45px; }
-
- .btn-search[class*="btn"] {
- background-color: transparent;
- background-position: 50% 50%;
- background-size: 20px;
- background-repeat: no-repeat;
- border: none;
- height: 100%;
- margin-left: 0;
- margin-top: 0;
- min-width: 45px !important;
- outline-offset: 0;
- padding: 0 !important;
- position: absolute;
- right: 0;
- top: 0;
- border-radius: 0 5px 5px 0;
- min-width: 44px;
- width: 44px; }
-
- .input-emphasized + .btn-search[class*="btn"],
- .input-emphasized + .reset-field + .btn-search[class*="btn"] {
- background-size: 26px;
- height: 46px;
- top: 1px;
- outline-offset: -3px;
- margin-bottom: 0;
- border-radius: 0 5px 5px 0; }
-
- input[type="search"].input-emphasized + .reset-field {
- right: 45px !important; }
-
-
- input[data-provide="datepicker"],
- [data-provide="datepicker"]:-moz-placeholder,
- [data-provide="datepicker"]:-ms-input-placeholder,
- [data-provide="datepicker"]:-webkit-input-placeholder {
- color: #0568ae !important;
- opacity: 1;
- filter: alpha(opacity=100); }
-
- input[disabled],
- input[readonly],
- select[disabled],
- select[readonly],
- textarea[disabled],
- textarea[readonly],
- i.icon-primary-calendar.disabled,
- span.icon-primary-calendar.readonly {
- cursor: not-allowed;
- background-color: #f2f2f2;
- box-shadow: none; }
-
- i.icon-primary-calendar.disabled input,
- span.icon-primary-calendar.readonly input {
- color: #959595 !important; }
-
- textarea {
- display: block;
- width: 800px;
-
- padding: 15px; }
-
- textarea.small {
- line-height: 20px; }
-
- textarea + .reset-field {
- display: none; }
-
- textarea::-webkit-input-placeholder {
- line-height: .99; }
-
- textarea:-moz-placeholder {
- line-height: .99; }
-
- textarea::-moz-placeholder {
- line-height: .99; }
-
- textarea:-ms-input-placeholder {
- line-height: .99; }
-
- textarea:placeholder {
- line-height: .99; }
-
- textarea,
- input {
- background-color: #ffffff;
- border: 1px solid #d2d2d2;
- -webkit-appearance: none;
- box-shadow: 2px 3px 2px -2px rgba(0, 0, 0, 0.08) inset;
- transition: border .3s linear 0s;
- font-family: "Omnes-ECOMP-W02", Arial; }
-
- textarea:focus,
- input:focus {
- outline: 0;
- border-color: #0568ae; }
-
- .input-append {
- display: table; }
-
- .input-append > div {
- display: table-cell;
- width: 1%; }
-
- .input-append > .field-group {
- width: 100%; }
-
- .row .field-group input[class*="span"] {
- float: none; }
-
- .field-group {
- position: relative;
- display: inline-block; }
-
- label + .field-group,
- label + .input-append,
- label + .row,
- label + .row-nowrap,
- label + .form-row {
- margin-top: 5px; }
-
- .field-group {
- position: relative;
- display: block; }
-
- .field-group input:not([type="button"])[disabled] {
- padding-right: 15px; }
-
- input:invalid,
- textarea:invalid,
- select:invalid {
- outline: none !important; }
-
- .form-row {
- margin-top: 20px; }
-
- .form-row.nomar {
- margin: 0; }
-
- .row-nowrap.no-flex.form-row > label + br {
- margin-bottom: 5px; }
-
- span.form-row {
- display: inline-block; }
-
- legend + .form-row {
- margin-top: 20px; }
-
- .tooltip-onclick input {
- padding-right: 45px; }
-
- .ds2_touchevents .tooltip-onclick input:focus {
- padding-right: 95px; }
-
- .radio {
- position: relative;
- min-height: 24px;
- font-family: "Omnes-ECOMP-W02", Arial;
- font-size: 1.6rem;
- margin-bottom: 5px; }
- .radio input {
- -webkit-tap-highlight-color: transparent;
- height: 10px;
- margin: 6px;
- opacity: 0;
- outline: none;
- position: absolute;
- left: 1px;
- top: 1px;
- width: 10px; }
- .radio input:focus + .skin {
- border-color: #0568ae; }
- .radio input:focus + .skin:before {
- content: "";
- height: 34px;
- left: -6px;
- top: -6px;
- outline: 1px dotted #000000;
- position: absolute;
- width: 34px; }
- .radio input + .skin {
- border-radius: 100%; }
- .radio input:checked + .skin:after {
- background-color: #0568ae;
- border-radius: 100%;
- border: 3px solid #FFFFFF;
- content: "";
- display: block;
- height: 16px;
- position: absolute;
- width: 16px; }
- .radio input:disabled + .skin {
- cursor: not-allowed;
- background-color: #d2d2d2;
- border-color: #d2d2d2;
- color: #666666; }
- .radio input:disabled + .skin + span {
- cursor: not-allowed;
- color: #666666; }
- .radio input:disabled:checked + .skin:after {
- background-color: #666666; }
- .radio input:invalid + .skin {
- border: solid 1px #cf2a2a; }
- .radio .skin {
- background-color: #FFFFFF;
- border: 1px solid #d2d2d2;
- border-radius: 3px;
- display: inline-block;
- height: 24px;
- left: 0;
- position: absolute;
- top: 0;
- width: 24px; }
- .radio span {
- display: inline-block;
- margin-left: 34px;
- margin-top: 0;
- position: relative;
- top: 3px; }
- .radio label {
- font-size: 1.6rem;
- font-family: "Omnes-ECOMP-W02", Arial; }
-
- .radio.inline {
- display: inline-block;
- margin-bottom: 10px;
- vertical-align: middle;
- margin-right: 10px; }
- .radio.inline:last-child {
- margin-right: 0; }
-
- .radio-box {
- border: 1px solid #d2d2d2;
- border-radius: 8px; }
- .radio-box > [role="radio"] label {
- padding: 15px 15px 20px 15px;
- display: block;
- width: 100%; }
- .radio-box > [role="radio"] label .skin + span {
- top: 2px; }
- .radio-box > [role="radio"] + div {
- padding: 0 15px 15px 47px; }
- .radio-box > [aria-checked="false"] label > input {
- top: 15px;
- left: 15px; }
- .radio-box > [aria-checked="false"] label .skin {
- top: 15px;
- left: 15px; }
- .radio-box > [aria-checked="true"] label > input {
- top: 13px;
- left: 13px; }
- .radio-box > [aria-checked="true"] label .skin {
- top: 13px;
- left: 13px; }
-
- .radio-box.active {
- border: 3px solid #0568ae; }
- .radio-box.active > [role="radio"] label {
- padding: 13px 14px 19px 13px; }
-
- .checkbox {
- position: relative;
- min-height: 24px;
- font-family: "Omnes-ECOMP-W02", Arial;
- font-size: 1rem;
- }
- .checkbox input {
- -webkit-tap-highlight-color: transparent;
- height: 20px;
- margin-left: 20px;
- opacity: 0;
- outline: none;
- position: absolute;
- left: 1px;
- top: 1px;
- width: 10px; }
- .checkbox input:focus + .skin {
- border-color: #0568ae; }
- .checkbox input:focus + .skin:before {
- content: "";
- height: 34px;
- left: -6px;
- top: -6px;
- outline: 1px dotted #000000;
- position: absolute;
- width: 34px; }
- .checkbox input:checked:not(:disabled) + .skin {
- background-color: #0568ae;
- border-color: #0568ae; }
- .checkbox input:checked:disabled + .skin:after {
- color: #5A5A5A; }
- .checkbox input:checked + .skin:after {
- height: 20px;
- width: 10px;
- background-color: transparent;
- font-size: 23.4px;
- color: #FFFFFF;
- line-height: 21px; }
- .checkbox input:disabled + .skin {
- cursor: not-allowed;
- background-color: #d2d2d2;
- border-color: #d2d2d2;
- color: #666666; }
- .checkbox input:disabled + .skin + span {
- cursor: not-allowed;
- color: #666666; }
- .checkbox input:invalid + .skin {
- border: solid 1px #cf2a2a; }
- .checkbox input:indeterminate + .skin:after {
- background-color: transparent;
- font-size: 25px;
- color: #0574ac;
- content: "\e920"; }
- .checkbox .skin {
- background-color: #fff;
- border: 1px solid #d2d2d2;
- border-radius: 3px;
- display: inline-block;
- height: 24px;
- width: 24px;
- position: absolute;
- left: 0;
- top: 0; }
- .checkbox span {
- display: inline-block;
- margin-left: 34px;
- margin-top: 0;
- position: relative;
- top: 3px; }
- .checkbox label {
- font-size: 1.6rem;
- font-family: "Omnes-ECOMP-W02", Arial; }
- .checkbox input {
- z-index: 9999; }
- .checkbox input.indeterminate + .skin:after {
- font-size: 22px;
- color: #0568ae; }
-
- .breadcrumb {
- padding: 10px 15px;
- height: 40px;
- list-style: none;
- border-bottom: 1px solid #d2d2d2;
- font-size: 1.2rem;
- width: 100%;
- z-index: 1000; }
-
- .breadcrumb > li {
- position: relative;
- display: inline-block;
- margin-right: 15px; }
-
- .breadcrumb > li:after {
- font-size: 8px;
- margin-right: 0;
- right: -8px;
- color: #333333; }
-
- .breadcrumb > li:last-child {
- color: #333333; }
-
- .breadcrumb > li:last-child:after {
- content: ""; }
-
- .breadcrumb li > * {
- float: none !important;
- margin: 0; }
-
- .breadcrumb {
- padding: 10px 15px !important; }
-
- /* ARROW */
- /* spanish */
- .datepicker {
- background-color: #FFFFFF;
- padding: 0;
- border-radius: 5px;
- direction: ltr; }
- .datepicker > div {
- display: none; }
- .datepicker table {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- margin: 0 0 0 0; }
- .datepicker td {
- text-align: center;
- display: block;
- width: 30px;
- height: 30px;
- border: none; }
- .datepicker td span {
- display: block;
- width: 23%;
- height: 54px;
- line-height: 54px;
- float: left;
- margin: 1%;
- cursor: pointer;
- border-radius: 4px; }
- .datepicker td span:hover {
- background: #eeeeee; }
- .datepicker td span.disabled {
- background: none;
- color: #5A5A5A;
- cursor: default; }
- .datepicker td span.disabled:hover {
- background: none;
- color: #5A5A5A;
- cursor: default; }
- .datepicker td span.active {
- color: #FFFFFF;
- background-color: #0568ae;
- border-color: #357ebd; }
- .datepicker td span.active:hover {
- color: #FFFFFF;
- background-color: #0568ae;
- border-color: #357ebd; }
- .datepicker td span.active.disabled {
- color: #FFFFFF;
- background-color: #0568ae;
- border-color: #357ebd; }
- .datepicker th {
- text-align: center;
- display: block;
- width: 30px;
- height: 30px;
- border: none; }
- .datepicker tbody:focus {
- outline: none; }
- .datepicker td.day {
- background-color: transparent;
- color: #0568ae;
- cursor: pointer;
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- font-size: 16px;
- height: 34px;
- line-height: 30rem;
- margin: -2px -1px 0 0;
- overflow: hidden;
- text-align: center;
- width: 42px; }
- .datepicker:focus {
- outline: 1px dotted #191919;
- outline-offset: -2px; }
- .datepicker th[tabindex]:focus {
- outline-offset: -15px; }
- .datepicker td.day.focused {
- background: #ededed;
- cursor: pointer; }
- .datepicker td.day.focused.active {
- background-color: #ededed;
- color: #0568ae; }
- .datepicker td.disabled {
- font-family: "Omnes-ECOMP-W02", Arial;
- color: #5A5A5A;
- cursor: default; }
- .datepicker td.disabled:hover {
- font-family: "Omnes-ECOMP-W02", Arial;
- color: #5A5A5A;
- cursor: default; }
- .datepicker td.disabled:hover .show-date {
- font-family: "Omnes-ECOMP-W02", Arial;
- color: #5A5A5A; }
- .datepicker td.disabled .show-date {
- font-family: "Omnes-ECOMP-W02", Arial;
- color: #5A5A5A; }
- .datepicker td.today {
- color: #FFFFFF;
- background-color: #0568ae; }
- .datepicker td.today:hover {
- color: #FFFFFF;
- background-color: #0568ae;
- color: #FFFFFF;
- background-color: #0568ae; }
- .datepicker td.today:active {
- color: #FFFFFF;
- background-color: #0568ae; }
- .datepicker td.today:focus {
- color: #FFFFFF;
- background-color: #0568ae; }
- .datepicker td.today.disabled {
- color: #FFFFFF;
- background-color: #0568ae; }
- .datepicker td.today.active {
- color: #FFFFFF;
- background-color: #0568ae; }
- .datepicker td.today.active:hover {
- color: #FFFFFF; }
- .datepicker td.selected {
- color: #FFFFFF;
- background-color: #95959500; }
- .datepicker td.selected:hover {
- color: #FFFFFF;
- background-color: #95959500; }
- .datepicker td.selected.disabled {
- color: #FFFFFF;
- background-color: #95959500; }
- .datepicker td.active:not(.new) {
- color: #FFFFFF;
- border-color: #357ebd; }
- .datepicker td.active:not(.new) .show-date {
- color: #0568ae;
- font-family: "Omnes-ECOMP-W02-Medium", Arial; }
- .datepicker td.active:hover:not(.new) {
- color: #FFFFFF;
- border-color: #357ebd; }
- .datepicker td.active:hover:not(.new) .show-date {
- color: #0568ae;
- font-family: "Omnes-ECOMP-W02-Medium", Arial; }
- .datepicker .start-date .show-date {
- background-color: #0568ae;
- color: #FFFFFF !important;
- border-radius: 5px 0 0 5px;
- z-index: 1; }
- .datepicker .start-date .show-date:before {
- background-color: #0568ae;
- content: "";
- display: block;
- height: 26px;
- left: 20px;
- position: absolute;
- width: 100%;
- z-index: -1; }
- .datepicker .between-date .show-date {
- background-color: #0568ae;
- color: #FFFFFF !important; }
- .datepicker .between-date .show-date:before {
- background-color: #0568ae;
- content: "";
- display: block;
- height: 26px;
- left: 0;
- position: absolute;
- width: 100%;
- z-index: -1; }
- .datepicker .between-date:first-child .show-date:before {
- background-color: #FFFFFF;
- content: "";
- height: 26px;
- position: absolute;
- left: 0;
- width: 8px; }
- .datepicker .end-date .show-date {
- background-color: #0568ae;
- color: #FFFFFF !important;
- border-radius: 0 5px 5px 0; }
- .datepicker .end-date .show-date:before {
- background-color: #0568ae;
- content: "";
- display: block;
- height: 26px;
- left: -20px;
- position: absolute;
- width: 100%;
- z-index: -1; }
- .datepicker .end-date:first-child .show-date:after {
- background-color: #FFFFFF;
- content: "";
- height: 26px;
- position: absolute;
- left: 0;
- width: 8px; }
- .datepicker .end-date:first-child .show-date::before {
- background-color: #FFFFFF; }
- .datepicker tr td.start-date:last-child .show-date:after {
- background-color: #FFFFFF;
- content: "";
- height: 26px;
- position: absolute;
- right: 0;
- width: 8px; }
- .datepicker tr td.start-date:last-child:focus .show-date:after {
- height: 30px;
- width: 30px;
- background-color: transparent; }
- .datepicker tr td.start-date:first-child:focus .show-date:after {
- height: 30px;
- width: 30px;
- background-color: transparent; }
- .datepicker tr td.between-date:last-child .show-date:after {
- background-color: #FFFFFF;
- content: "";
- height: 26px;
- position: absolute;
- right: 0;
- width: 8px; }
- .datepicker tr td.between-date:last-child:focus .show-date:after {
- height: 30px;
- width: 30px;
- background-color: transparent; }
- .datepicker tr td.between-date:first-child:focus .show-date:after {
- height: 30px;
- width: 30px;
- background-color: transparent; }
- .datepicker tr td.end-date:last-child:focus .show-date:after {
- height: 30px;
- width: 30px;
- background-color: transparent; }
- .datepicker tr td.end-date:first-child:focus .show-date:after {
- height: 30px;
- width: 30px;
- background-color: transparent; }
- .datepicker th.datepicker-switch {
- width: 198px;
- font-size: 20px;
- font-weight: normal;
- cursor: default !important; }
- .datepicker thead tr:first-child th {
- cursor: pointer;
- height: 60px;
- line-height: 60px; }
- .datepicker thead tr:first-child th.cw {
- cursor: default;
- background-color: transparent; }
- .datepicker tfoot tr th {
- cursor: pointer;
- height: 60px;
- line-height: 60px;
- height: auto;
- line-height: normal; }
- .datepicker tfoot tr th li {
- margin-bottom: 5px; }
- .datepicker .prev {
- color: transparent;
- font-size: 0;
- margin: 0 -1px -1px 0;
- width: 46px; }
- .datepicker .prev i {
- color: #0568ae;
- position: absolute;
- font-size: 27px;
- margin: 0;
- top: 15px;
- left: 8px; }
- .datepicker .next {
- color: transparent;
- font-size: 0;
- margin: 0 -1px -1px 0;
- width: 46px; }
- .datepicker .next i {
- color: #0568ae;
- position: absolute;
- font-size: 27px;
- margin: 0;
- top: 15px;
- right: 8px; }
- .datepicker .cw {
- font-size: 5px;
- width: 12px;
- padding: 0 2px 0 5px;
- vertical-align: middle; }
- .datepicker .due-date .show-date {
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- background-color: #cf2a2a;
- border-radius: 5px;
- color: #FFFFFF !important; }
- .datepicker .day.active .show-date:after {
- border: 2px solid #0568ae;
- border-radius: 7px;
- content: "";
- display: block;
- height: 30px;
- left: 4px;
- position: absolute;
- top: 0;
- width: 30px; }
- .datepicker .day:focus .show-date:after {
- border: 2px solid #0568ae;
- border-radius: 7px;
- content: "";
- display: block;
- height: 30px;
- left: 4px;
- position: absolute;
- top: 0;
- width: 30px;
- height: 30px;
- left: 4px;
- top: 0;
- width: 30px; }
- .datepicker .due-date.disabled .show-date:after {
- border: 2px solid #0568ae;
- border-radius: 7px;
- content: "";
- display: block;
- height: 30px;
- left: 4px;
- position: absolute;
- top: 0;
- width: 30px; }
- .datepicker .day.due-date:focus .show-date:after {
- height: 30px;
- left: 4px;
- top: 0;
- width: 30px; }
- .datepicker .due-date.old:after {
- visibility: hidden; }
- .datepicker .due-date.new:after {
- visibility: hidden; }
- .datepicker .due-date.active:after {
- border-color: #FFFFFF; }
- .datepicker .due-date.active.focused {
- color: #0568ae !important; }
- .datepicker .due-date.active.focused:after {
- border-color: #cf2a2a !important; }
- .datepicker .dow {
- height: 24px;
- width: 42px;
- font-weight: normal;
- position: relative;
- overflow: hidden;
- color: transparent;
- letter-spacing: -6px;
- margin: 0 -1px -1px 0; }
- .datepicker .dow span[aria-hidden="true"] {
- bottom: 0;
- color: #5A5A5A;
- display: block;
- left: 1px;
- letter-spacing: 0;
- line-height: .9;
- margin: 0 auto;
- padding: 0;
- position: relative;
- width: 22px; }
- .datepicker .calendar-legend {
- margin-top: 3px;
- margin-bottom: 20px; }
- .datepicker .calendar-legend li {
- font-size: 1.4rem;
- font-weight: normal;
- margin-bottom: 5px;
- padding-left: 10px;
- padding-top: 5px;
- position: relative; }
- .datepicker i.legend-due-date {
- background-color: #cf2a2a;
- border-radius: 5px;
- height: 18px;
- width: 18px;
- margin-right: 8px;
- vertical-align: middle;
- display: inline-block; }
- .datepicker i.legend-selected-date {
- background-color: #FFFFFF;
- border: 2px solid #0568ae;
- border-radius: 5px;
- height: 18px;
- width: 18px;
- margin-right: 8px;
- vertical-align: middle;
- display: inline-block; }
- .datepicker i.legend-selectedisdue {
- background-color: #FFFFFF;
- border: 2px solid #0568ae;
- border-radius: 5px;
- display: inline-block;
- height: 18px;
- margin-right: 8px;
- position: relative;
- vertical-align: middle;
- width: 18px; }
- .datepicker i.legend-selectedisdue:after {
- background-color: #cf2a2a;
- border-radius: 3px;
- content: "";
- display: block;
- height: 10px;
- left: 2px;
- position: absolute;
- top: 2px;
- width: 10px; }
- .datepicker .text-left {
- width: 100%; }
- .datepicker .active.old {
- background-color: #ededed !important;
- color: #ededed !important; }
-
- .datepicker-inline {
- width: 220px; }
-
- .datepicker.datepicker-rtl {
- direction: rtl; }
- .datepicker.datepicker-rtl td span {
- float: right; }
-
- .datepicker-dropdown {
- top: 0;
- left: 0; }
- .datepicker-dropdown:before {
- content: " ";
- display: inline-block;
- border-left: 10px solid transparent;
- border-right: 10px solid transparent;
- border-bottom: 10px solid #d2d2d2;
- border-top: 0;
- border-bottom-color: rgba(0, 0, 0, 0.2);
- position: absolute; }
- .datepicker-dropdown:after {
- content: " ";
- display: inline-block;
- border-left: 10px solid transparent;
- border-right: 10px solid transparent;
- border-bottom: 10px solid #fff;
- border-top: 0;
- position: absolute; }
-
- .datepicker-dropdown.datepicker-orient-left:before {
- left: 16px; }
-
- .datepicker-dropdown.datepicker-orient-left:after {
- left: 16px; }
-
- .datepicker-dropdown.datepicker-orient-right:before {
- right: 16px; }
-
- .datepicker-dropdown.datepicker-orient-right:after {
- right: 16px; }
-
- .datepicker-dropdown.datepicker-orient-top:before {
- top: -10px; }
-
- .datepicker-dropdown.datepicker-orient-top:after {
- top: -9px; }
-
- .datepicker-dropdown.datepicker-orient-bottom:before {
- bottom: -7px;
- border-bottom: 0;
- border-top: 7px solid #959595; }
-
- .datepicker-dropdown.datepicker-orient-bottom:after {
- bottom: -6px;
- border-bottom: 0;
- border-top: 6px solid #fff; }
-
- .datepicker.days div.datepicker-days {
- display: block; }
-
- .datepicker.months div.datepicker-months {
- display: block; }
-
- .datepicker.years div.datepicker-years {
- display: block; }
-
- .show-date {
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- color: #0568ae;
- height: 26px;
- line-height: 26px;
- margin: 4px auto 0;
- width: 26px; }
-
- .input-group.date .input-group-addon i {
- cursor: pointer;
- width: 16px;
- height: 16px; }
-
- .datepicker.dropdown-menu {
- box-shadow: 0 10px 15px -10px rgba(0, 0, 0, 0.7);
- position: absolute;
- top: 100%;
- left: 0;
- float: left;
- display: none;
- margin-top: 13px;
- width: 290px;
- list-style: none;
- background-color: #FFFFFF;
- border: 1px solid #d2d2d2;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 5px;
- color: #333333;
- font-size: 13px;
- line-height: 1.428571429;
- z-index: 1050; }
- .datepicker.dropdown-menu th {
- display: block;
- float: left;
- padding: 0;
- position: relative; }
- .datepicker.dropdown-menu td {
- display: block;
- float: left;
- padding: 0;
- position: relative; }
-
- .s {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: -62px 0; }
-
- .m {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: -5px 0; }
-
- .t {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: -19px 0; }
-
- .w {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: -34px 0; }
-
- .f {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: -49px 0; }
-
- .d {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: 0 0; }
-
- .l {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: 0 0; }
-
- .v {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: 0 0; }
-
- .j {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: #FFFFFF;
- background-repeat: no-repeat;
- background-position: 0 0; }
-
- .datepicker {
- background-color: #fff;
- padding: 0;
- border-radius: 5px;
- direction: ltr; }
-
- .datepicker-inline {
- width: 220px; }
-
- .datepicker.datepicker-rtl {
- direction: rtl; }
-
- .datepicker.datepicker-rtl td span {
- float: right; }
-
- .datepicker-dropdown {
- top: 0;
- left: 0; }
-
- /* ARROW */
- .datepicker-dropdown:before {
- content: " ";
- display: inline-block;
- border-left: 10px solid transparent;
- border-right: 10px solid transparent;
- border-bottom: 10px solid #d2d2d2;
- border-top: 0;
- border-bottom-color: rgba(0, 0, 0, 0.2);
- position: absolute; }
-
- .datepicker-dropdown:after {
- content: " ";
- display: inline-block;
- border-left: 10px solid transparent;
- border-right: 10px solid transparent;
- border-bottom: 10px solid #fff;
- border-top: 0;
- position: absolute; }
-
- .datepicker-dropdown.datepicker-orient-left:before,
- .datepicker-dropdown.datepicker-orient-left:after {
- left: 255px; }
-
- .datepicker-dropdown.datepicker-orient-right:before,
- .datepicker-dropdown.datepicker-orient-right:after {
- right: 16px; }
-
- .datepicker-dropdown.datepicker-orient-top:before {
- top: -10px; }
-
- .datepicker-dropdown.datepicker-orient-top:after {
- top: -9px; }
-
- .datepicker-dropdown.datepicker-orient-bottom:before {
- bottom: -7px;
- border-bottom: 0;
- border-top: 7px solid #959595; }
-
- .datepicker-dropdown.datepicker-orient-bottom:after {
- bottom: -6px;
- border-bottom: 0;
- border-top: 6px solid #fff; }
-
- .datepicker > div {
- display: none; }
-
- .datepicker.days div.datepicker-days {
- display: block; }
-
- .datepicker.months div.datepicker-months {
- display: block; }
-
- .datepicker.years div.datepicker-years {
- display: block; }
-
- .datepicker table {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- margin: 0 0 0 0; }
-
- .datepicker td,
- .datepicker th {
- text-align: center;
- display: block;
- width: 30px;
- height: 30px;
- border: none; }
-
- .datepicker tbody :focus {
- outline: none; }
-
- .datepicker td.day {
- background-color: transparent;
- color: #0568ae;
- cursor: pointer;
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- font-size: 16px;
- height: 34px;
- line-height: 30rem;
- margin: -2px -1px 0 0;
- overflow: hidden;
- text-align: center;
- width: 42px; }
-
- .datepicker :focus {
- outline: 1px dotted #000;
- outline-offset: -2px; }
-
- .datepicker td.day.focused {
- background: #ededed;
- cursor: pointer; }
-
- .datepicker td.day.focused.active {
- background-color: #ededed;
- color: #0568ae; }
-
- .datepicker td.disabled,
- .datepicker td.disabled:hover {
- font-family: "Omnes-ECOMP-W02", Arial;
- color: #5a5a5a;
- cursor: default; }
-
- .datepicker td.today,
- .datepicker td.today:hover,
- .datepicker td.today.disabled {
- color: #fff;
- background-color: #0568ae; }
-
- .datepicker td.today.active,
- .datepicker td.today:active,
- .datepicker td.today:hover,
- .datepicker td.today:focus {
- color: #fff;
- background-color: #0568ae; }
-
- .datepicker td.today.active:hover {
- color: #fff; }
-
- .datepicker td.selected,
- .datepicker td.selected:hover,
- .datepicker td.selected.disabled {
- color: #ffffff;
- background-color: #959595; }
-
- .datepicker td.active:not(.new),
- .datepicker td.active:hover:not(.new) {
- color: #ffffff;
- border-color: #357ebd; }
-
- .show-date {
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- color: #0568ae;
- height: 26px;
- line-height: 26px;
- margin: 4px auto 0;
- width: 26px; }
-
- .datepicker .start-date .show-date,
- .datepicker .between-date .show-date,
- .datepicker .end-date .show-date {
- background-color: #0568ae;
- color: #fff !important; }
-
- .datepicker .start-date .show-date {
- border-radius: 5px 0 0 5px;
- z-index: 1; }
-
- .datepicker .start-date .show-date:before {
- background-color: #0568ae;
- content: "";
- display: block;
- height: 26px;
- left: 20px;
- position: absolute;
- width: 100%;
- z-index: -1; }
-
- .datepicker .between-date .show-date:before {
- background-color: #0568ae;
- content: "";
- display: block;
- height: 26px;
- left: 0;
- position: absolute;
- width: 100%;
- z-index: -1; }
-
- .datepicker .end-date .show-date {
- border-radius: 0 5px 5px 0; }
-
- .datepicker .end-date .show-date:before {
- background-color: #0568ae;
- content: "";
- display: block;
- height: 26px;
- left: -20px;
- position: absolute;
- width: 100%;
- z-index: -1; }
-
- .datepicker .between-date:first-child .show-date:before {
- background-color: #fff;
- content: "";
- height: 26px;
- position: absolute;
- left: 0;
- width: 8px; }
-
- .datepicker .end-date:first-child .show-date:after {
- background-color: #fff;
- content: "";
- height: 26px;
- position: absolute;
- left: 0;
- width: 8px; }
-
- .datepicker .end-date:first-child .show-date::before {
- background-color: #fff; }
-
- .datepicker tr td.start-date:last-child .show-date:after,
- .datepicker tr td.between-date:last-child .show-date:after {
- background-color: #fff;
- content: "";
- height: 26px;
- position: absolute;
- right: 0;
- width: 8px; }
-
- .datepicker tr td.start-date:last-child:focus .show-date:after,
- .datepicker tr td.end-date:last-child:focus .show-date:after,
- .datepicker tr td.between-date:last-child:focus .show-date:after,
- .datepicker tr td.start-date:first-child:focus .show-date:after,
- .datepicker tr td.end-date:first-child:focus .show-date:after,
- .datepicker tr td.between-date:first-child:focus .show-date:after {
- height: 30px;
- width: 30px;
- background-color: transparent; }
-
- .datepicker td.active:not(.new) .show-date,
- .datepicker td.active:hover:not(.new) .show-date {
- color: #0568ae;
- font-family: "Omnes-ECOMP-W02-Medium", Arial; }
-
- .datepicker td.disabled .show-date,
- .datepicker td.disabled:hover .show-date {
- font-family: "Omnes-ECOMP-W02", Arial;
- color: #5a5a5a; }
-
- .datepicker td span {
- display: block;
- width: 23%;
- height: 54px;
- line-height: 54px;
- float: left;
- margin: 1%;
- cursor: pointer;
- border-radius: 4px; }
-
- .datepicker td span:hover {
- background: #eeeeee; }
-
- .datepicker td span.disabled,
- .datepicker td span.disabled:hover {
- background: none;
- color: #5a5a5a;
- cursor: default; }
-
- .datepicker td span.active,
- .datepicker td span.active:hover,
- .datepicker td span.active.disabled {
- color: #ffffff;
- background-color: #0568ae;
- border-color: #357ebd; }
-
- .datepicker th.datepicker-switch {
- width: 198px;
- font-size: 20px;
- font-weight: normal;
- cursor: default !important; }
-
- .datepicker thead tr:first-child th,
- .datepicker tfoot tr th {
- cursor: pointer;
- height: 60px;
- line-height: 60px; }
-
- .datepicker tfoot tr th {
- height: auto;
- line-height: normal; }
-
- .datepicker tfoot tr th li {
- margin-bottom: 5px; }
-
- .datepicker .prev,
- .datepicker .next {
- color: transparent;
- font-size: 0;
- margin: 0 -1px -1px 0;
- width: 46px; }
-
- .datepicker .prev i,
- .datepicker .next i {
- color: #0568ae;
- position: absolute;
- font-size: 27px;
- margin: 0;
- top: 15px; }
-
- .datepicker .prev i {
- left: 8px; }
-
- .datepicker .next i {
- right: 8px; }
-
- .datepicker .cw {
- font-size: 5px;
- width: 12px;
- padding: 0 2px 0 5px;
- vertical-align: middle; }
-
- .datepicker thead tr:first-child th.cw {
- cursor: default;
- background-color: transparent; }
-
- .input-group.date .input-group-addon i {
- cursor: pointer;
- width: 16px;
- height: 16px; }
-
- .datepicker.dropdown-menu {
- box-shadow: 0 10px 15px -10px rgba(0, 0, 0, 0.7);
- position: absolute;
- top: 100%;
- left: 0;
- float: left;
- display: none;
- margin-top: 13px;
- width: 290px;
- list-style: none;
- background-color: #ffffff;
- border: 1px solid #d2d2d2;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 5px;
- color: #333333;
- font-size: 13px;
- line-height: 1.428571429;
- z-index: 1050; }
-
- .datepicker.dropdown-menu th,
- .datepicker.dropdown-menu td {
- display: block;
- float: left;
- padding: 0;
- position: relative; }
-
- .datepicker .due-date .show-date {
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- background-color: #cf2a2a;
- border-radius: 5px;
- color: #fff !important; }
-
- .datepicker .day.active .show-date:after,
- .datepicker .day:focus .show-date:after,
- .datepicker .due-date.disabled .show-date:after {
- border: 2px solid #0568ae;
- border-radius: 7px;
- content: "";
- display: block;
- height: 30px;
- left: 4px;
- position: absolute;
- top: 0;
- width: 30px; }
-
- .datepicker .day:focus .show-date:after {
- height: 30px;
- left: 4px;
- top: 0;
- width: 30px; }
-
- .datepicker .day.due-date:focus .show-date:after {
- height: 30px;
- left: 4px;
- top: 0;
- width: 30px; }
-
- .datepicker .due-date.old:after,
- .datepicker .due-date.new:after {
- visibility: hidden; }
-
- .datepicker .due-date.active:after {
- border-color: #fff; }
-
- .datepicker .due-date.active.focused {
- color: #0568ae !important; }
-
- .datepicker .due-date.active.focused:after {
- border-color: #cf2a2a !important; }
-
- .datepicker .dow {
- height: 24px;
- width: 42px;
- font-weight: normal;
- position: relative;
- overflow: hidden;
- color: transparent;
- letter-spacing: -6px;
- margin: 0 -1px -1px 0; }
-
- .datepicker .dow span[aria-hidden="true"] {
- bottom: 0;
- color: #5a5a5a;
- display: block;
- left: 1px;
- letter-spacing: 0;
- line-height: .9;
- margin: 0 auto;
- padding: 0;
- position: relative;
- width: 22px; }
-
- .datepicker .calendar-legend {
- margin-top: 3px;
- margin-bottom: 20px; }
-
- .datepicker .calendar-legend li {
- font-size: 1.4rem;
- font-weight: normal;
- margin-bottom: 5px;
- padding-left: 10px;
- padding-top: 5px;
- position: relative; }
-
- .datepicker i.legend-due-date {
- background-color: #cf2a2a;
- border-radius: 5px;
- height: 18px;
- width: 18px;
- margin-right: 8px;
- vertical-align: middle;
- display: inline-block; }
-
- .datepicker i.legend-selected-date {
- background-color: #fff;
- border: 2px solid #0568ae;
- border-radius: 5px;
- height: 18px;
- width: 18px;
- margin-right: 8px;
- vertical-align: middle;
- display: inline-block; }
-
- .datepicker i.legend-selectedisdue {
- background-color: #fff;
- border: 2px solid #0568ae;
- border-radius: 5px;
- display: inline-block;
- height: 18px;
- margin-right: 8px;
- position: relative;
- vertical-align: middle;
- width: 18px; }
-
- .datepicker i.legend-selectedisdue:after {
- background-color: #cf2a2a;
- border-radius: 3px;
- content: "";
- display: block;
- height: 10px;
- left: 2px;
- position: absolute;
- top: 2px;
- width: 10px; }
-
- .datepicker .text-left {
- width: 100%; }
-
- .datepicker .active.old {
- background-color: #ededed !important;
- color: #ededed !important; }
-
- .s,
- .m,
- .t,
- .w,
- .f,
- .d,
- .l,
- .v,
- .j {
- display: block;
- height: 20px;
- width: 12px;
- margin: 0 auto;
- background-color: white;
- background-repeat: no-repeat; }
-
- .s {
- background-position: -62px 0; }
-
- .m {
- background-position: -5px 0; }
-
- .t {
- background-position: -19px 0; }
-
- .w {
- background-position: -34px 0; }
-
- .f {
- background-position: -49px 0; }
-
- /* spanish */
- .d {
- background-position: 0 0; }
-
- .l {
- background-position: 0 0; }
-
- .v {
- background-position: 0 0; }
-
- .j {
- background-position: 0 0; }
-
- .datepicker-container {
- position: relative; }
-
- .btn-calendar-icon:focus .icon-primary-calendar {
- outline: 1px dotted #191919; }
-
- .btn-calendar-icon:focus {
- outline: none; }
-
- /* remove focus outline when dropdown is opened */
- /*resolve blue focus outline over dropdown with error*/
- select {
- margin-right: -1;
-
- height: 36px;
- line-height: 25px;
-
- background-color: #95959521; }
-
- .selectWrap.disabled .icon-primary-down {
- color: #d6d6d6; }
-
- .selectWrap.disabled input.awd-select {
- z-index: 0;
- padding: 10px 45px 10px 15px;
- text-indent: 0; }
-
- .selectWrap.disabled button.awd-select {
- z-index: 0;
- text-indent: 15px; }
-
- .selectWrap.disabled:after {
- color: #5A5A5A;
- cursor: not-allowed; }
-
- input.awd-select {
- background-color: transparent;
- border: 1px solid #d2d2d2;
- border-radius: 6px;
- box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15);
- color: #333333;
- display: block;
- font-family: "Omnes-ECOMP-W02", Arial;
- /*font-size: 1.6rem;*/
- height: 36px;
- line-height: 0;
- margin-bottom: 0;
- position: relative;
- text-align: left;
- top: 0;
- width: 100%;
- z-index: 10;
- padding: 12px 45px 8px 15px;
- user-select: none; }
- input.awd-select:focus {
- border-color: #0568ae !important;
- text-overflow: ellipsis;
- padding-right: 45px; }
-
- button.awd-select {
- background-color: transparent;
- border: 1px solid #d2d2d2;
- border-radius: 6px;
- box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15);
- color: #333333;
- display: block;
- font-family: "Omnes-ECOMP-W02", Arial;
- /*font-size: 1.6rem;*/
- height: 36px;
- line-height: 36px;
- margin-bottom: 0;
- position: relative;
- text-align: left;
- top: 0;
- width: 100%;
- z-index: 10; }
- button.awd-select:not(.large) {
- text-indent: 15px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: clip;
- text-overflow: ellipsis; }
- button.awd-select img {
- height: 26px;
- margin-right: 7px;
- margin-top: -10px;
- position: relative;
- top: 2px;
- vertical-align: text-bottom; }
- button.awd-select:focus {
- border-color: #0568ae !important; }
- button.awd-select i {
- font-size: 23px;
- position: absolute;
- right: 33px;
- top: 5px;
- z-index: 1000; }
-
- button.awd-select.large {
- align-items: center;
- display: flex;
- height: 60px;
- line-height: 20px;
- overflow: hidden;
- padding-left: 70px;
- vertical-align: middle; }
- button.awd-select.large img {
- height: 40px;
- left: 20px;
- position: absolute;
- top: 20px;
- width: 40px; }
-
- .selectWrap.large {
- height: 60px; }
- .selectWrap.large .awd-select-list-item {
- align-items: center;
- display: flex;
- height: 60px;
- line-height: 20px;
- overflow: hidden;
- padding-left: 70px;
- vertical-align: middle; }
- .selectWrap.large .awd-select-list-item img {
- height: 40px;
- left: 20px;
- position: absolute;
- top: 20px;
- width: 40px;
- top: 10px; }
-
- .inputWrap {
- border-radius: 6px;
- position: relative;
- height: 36px;
- line-height: 44px;
- display: block;
- margin: 0;
- }
-
- button.awd-select.active {
- border-radius: 6px 6px 0 0; }
- button.awd-select.active:focus {
- border-color: #d2d2d2 !important; }
-
- input.awd-select.active {
- border-radius: 6px 6px 0 0; }
- input.awd-select.active:focus {
- border-color: #d2d2d2 !important; }
-
- .selectWrapper {
- position: relative; }
-
- span.selectWrap input[readonly]:focus {
- color: transparent;
- text-shadow: 0 0 0 #000; }
-
- .isIE.ds2-no-colors .awd-select:focus {
- outline: 1px dashed transparent; }
-
- .awd-select-list {
- box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15);
- border-radius: 0 0 6px 6px;
- position: absolute;
- border: 1px solid #d2d2d2;
- border-top: 0;
- padding: 0;
- background-color: #f2f2f2;
- z-index: 1000;
- width: 100%;
- max-height: 320px;
- overflow-y: auto; }
-
- .awd-select-list-item {
- cursor: pointer;
- height: 100%;
- min-height: 36px;
- line-height: 20px;
- overflow: hidden;
- padding: 8px 15px;
- position: relative;
- z-index: 1000; }
- .awd-select-list-item:hover {
- cursor: pointer;
- background-color: #d2d2d2;
- outline: 1px dashed transparent; }
- .awd-select-list-item:focus {
- cursor: pointer;
- background-color: #d2d2d2;
- outline: 1px dashed transparent; }
- .awd-select-list-item img {
- margin-top: 0;
- margin-right: 7px;
- height: 26px;
- width: 26px; }
-
- .selectWrap {
- border-radius: 6px;
- position: relative;
- height: 36px;
- line-height: 28px;
- display: block;
- margin: 0;
- background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
- background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); }
- .selectWrap:not(.large) .awd-select-list-item:first-child {
- margin-top: 15px; }
- .selectWrap:not(.large) .awd-select-list-item:last-child {
- margin-bottom: 15px; }
- .selectWrap .icon-primary-down {
- font-size: 23px;
- margin-top: -11px;
- position: absolute;
- right: 4px;
- top: 50%; }
- .selectWrap + [aria-expanded="true"] {
- padding-bottom: 9px;
- padding-top: 20px; }
-
- .awd-select-list-item[data-hover="true"] {
- background-color: #d2d2d2; }
-
- span input.awd-select {
- width: 100%;
- cursor: pointer;
- text-overflow: ellipsis;
- padding-right: 45px; }
-
- li.optgroup-wrapper {
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- cursor: default !important;
- padding: 0px 15px; }
- li.optgroup-wrapper:first-child {
- padding-top: 10px; }
- li.optgroup-wrapper:hover {
- background-color: #f2f2f2; }
-
- ul.optgroup {
- font-family: "Omnes-ECOMP-W02", Arial;
- cursor: pointer !important;
- margin: 0 -15px; }
- ul.optgroup li {
- padding: 0 0 0 33px; }
-
- label + .selectWrap {
- margin-top: 4px; }
-
- .group .selectWrap {
- margin: 0 0 10px 0; }
-
- select.awd-select {
- position: relative;
- top: 0;
- left: 0;
- font-size: 16px;
- z-index: 1010;
- height: 33px;
- min-width: 100%;
- opacity: 0.01; }
- select.awd-select > optgroup {
- padding-left: 8px;
- font-style: normal;
- margin-top: 10px; }
- select.awd-select > optgroup:first-child {
- margin-top: 0; }
- select.awd-select > optgroup > option {
- padding-left: 8px; }
- select.awd-select > option {
- padding-left: 8px; }
- select.awd-select + span {
- background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
- background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0);
- position: absolute;
- top: 0;
- left: 0;
- z-index: 0;
- display: block;
- border: 1px solid #d2d2d2;
- border-radius: 6px;
- height: 35px;
- line-height: 0;
- padding: 18px 45px 15px 15px;
- width: 100%;
- font-size: 1.6rem;
- padding-right: 45px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis; }
- select.awd-select + span > i {
- font-size: 23px;
- position: absolute;
- right: 33px;
- top: 5px;
- z-index: 1000; }
- select.awd-select + span > i:before {
- left: 1px;
- position: absolute;
- top: -1px; }
- select.awd-select:focus + span {
- border-color: #0568ae; }
-
-
- .btn.disabled[ddh-load-button] {
- line-height: 46px;
- padding: 0 19px 0 18px; }
-
- .btn.disabled[ddh-load-button] {
- color: #666666; }
-
- .icon-primary-spinner-ddh.large {
- height: 50px;
- width: 50px; }
-
- .icon-primary-spinner-ddh.small {
- height: 30px;
- width: 30px; }
-
- .icon-primary-spinner-ddh {
- -webkit-animation: 1s linear infinite spinner;
- animation: 1s linear infinite spinner;
- background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNiAzNiIgaWQ9InN2Zy1zcGlubmVyIiB4PSIwcHgiIHk9IjBweCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgIDxwYXRoIGZpbGw9IiNGNUY1RjUiIGQ9Ik0xOCAzNkM4LjEgMzYgMCAyNy45IDAgMThTOC4xIDAgMTggMHMxOCA4LjEgMTggMTgtOC4xIDE4LTE4IDE4em0wLTMxLjVjLTcuNSAwLTEzLjUgNi0xMy41IDEzLjVTMTAuNiAzMS41IDE4IDMxLjVjNy41IDAgMTMuNS02LjEgMTMuNS0xMy41IDAtNy41LTYtMTMuNS0xMy41LTEzLjV6Ii8+CiAgIDxwYXRoIGZpbGw9IiMwNTY4QUUiIGlkPSJzcGlubmVyIiBkPSJNMzAuNyA1LjNsLTMuMSAzLjJjMi40IDIuNCAzLjkgNS44IDMuOSA5LjUgMCA3LjQtNi4xIDEzLjUtMTMuNSAxMy41UzQuNSAyNS40IDQuNSAxOCAxMC42IDQuNSAxOCA0LjVWMEM4LjEgMCAwIDguMSAwIDE4czguMSAxOCAxOCAxOCAxOC04LjEgMTgtMThjMC01LTItOS41LTUuMy0xMi43eiIgdHJhbnNmb3JtPSIiPiAgICAgIAogICA8L3BhdGg+Cjwvc3ZnPg==); }
-
- .btn-small .icon-primary-spinner-ddh {
- height: 30px !important;
- width: 30px !important; }
-
- .btn-small .icon-primary-spinner {
- height: 30px;
- width: 30px; }
-
- i:focus {
- outline: thin dotted #666; }
-
- .p-col-md-12 {
- width: 50%; }
-
- .fieldLabel {
- color: #666666; }
-
- .fieldLabel input {
- color: #666666; }
-
-
- .fade1, .fadel {
- opacity: 0.4; }
-
- .fade2, .fadesl {
- opacity: 0.6; }
-
- h4#pagination-truncated {
- margin-top: 50px; }
-
- h4#pagination-large-count {
- margin-top: 50px; }
-
- input[type="text"]::-moz-placeholder {
- color: #767676;
- font-family: "Omnes-ECOMP-W02-Italic", Arial; }
-
- input[type="text"]:focus {
- z-index: 1000; }
-
- input[type="text"] + .reset-field {
- background-color: #FFFFFF;
- height: 90%;
- top: 5%; }
-
- .btn-search:focus {
- outline: 1px dotted #0574ac; }
-
- .field-group input:not([type="button"])[disabled] ~ .btn-search {
- background-color: #eee; }
-
- .btn-search[class*="btn"] {
- background-color: #FFFFFF;
- background-size: 20px 20px;
- border-radius: 0 1.5rem 1.5rem 0;
- height: 3rem;
- min-width: 4.4rem !important;
- right: 0.15rem;
- top: 0.15rem;
- width: 4.4rem; }
-
- .search-suggestion-wrapper {
- margin-bottom: 15px;
- position: relative; }
- .search-suggestion-wrapper .no-result {
- padding: 0px 15px; }
-
- .search-suggestion-item {
- color: #333333;
- line-height: 4rem;
- padding: 0 15px;
- position: relative;
- z-index: 1000; }
- .search-suggestion-item:hover {
- background-color: #e4e4e4;
- cursor: pointer; }
- .search-suggestion-item:focus {
- background-color: #e4e4e4;
- cursor: pointer; }
- .search-suggestion-item a {
- color: #333333;
- text-decoration: none; }
-
- .btn-search i {
- color: #767676; }
-
- input.b2b-search-input-field:focus ~ .btn-search > i, .btn-search:focus > i {
- color: #0568ae; }
-
- button.btn-search[disabled] {
- cursor: not-allowed; }
- button.btn-search[disabled] i {
- color: #767676; }
-
- .innershadow {
- -webkit-background-blend-mode: mutilply;
- box-shadow: 0 3px 0 2px rgba(0, 0, 0, 0.08); }
-
- li.module-groups {
- cursor: default !important;
- padding: 18px 15px 0px 15px; }
-
- li.module-list-item[selected]:before {
- box-sizing: border-box;
- display: inline-block;
- font-size: 2em;
- height: 1em;
- position: absolute;
- top: 20px;
- right: 0px;
- vertical-align: middle;
- width: 1em;
- color: #007a3e; }
-
- ul.module-optinalcta {
- position: relative;
- height: 44px;
- margin-top: 0px;
- border-bottom: 1px solid #d2d2d2;
- border-left: 1px solid #d2d2d2;
- border-right: 1px solid #d2d2d2;
- border-radius: 0px 0px 6px 6px; }
- ul.module-optinalcta li {
- position: absolute;
- bottom: 10px; }
- ul.module-optinalcta a {
- text-indent: 15px;
- padding: 15px; }
-
- @keyframes spinner {
- 0% {
- transform: rotate(0deg); }
- 100% {
- transform: rotate(359deg); } }
-
- table {
- max-width: 100%;
- background-color: transparent;
- border-collapse: collapse;
- border-spacing: 0;
- width: 100%;
- }
-
- table caption {
- text-align: left; }
-
- table thead th {
- vertical-align: bottom; }
-
- table th,
- table td {
- padding: 19px 20px;
- line-height: 1;
- font-size: 1.4rem;
- text-align: left;
- vertical-align: top;
- word-wrap: break-word; }
-
- table th {
- font-family: "Omnes-ECOMP-W02-Medium", Arial;
- font-size: 1.6rem;
- font-weight: normal;
- color: #333333;
- padding: 13px 20px; }
-
-
- table tbody td:first-child {
- border-left: none; }
-
- @media (max-width: 767px) {
- table th,
- table td {
- padding: 19px 10px; }
- table th:first-child,
- table td:first-child {
- padding: 19px 15px; } }
-
- .data-row-list ul > li {
- background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewport%3D%220%200%201%201%22%20style%3D%22width%3A100%25%3B%20height%3A1px%3B%22%3E%3Cstyle%3Eline%7Bstroke%3Argba(153%2C153%2C153%2C1)%3Bstroke-width%3A2%3B%7D%3C%2Fstyle%3E%3Cline%20y2%3D%221%22%20y1%3D%221%22%20x1%3D%221%22%20x2%3D%22100%25%22%20stroke-dasharray%3D%221%2C%203%22%2F%3E%3C%2Fsvg%3E") !important; }
-
- table {
- border-bottom: 1px solid #d2d2d2; }
-
- table th,
- table td {
- padding: 15px 15px 10px; }
-
- button .colors-off-msg {
- position: relative; }
-
-
- textarea, input {
- color: #333; }
-
- .selectWrap::after {
- align-items: center;
- background-position: 7px 7px;
- background-repeat: no-repeat;
- background-size: auto 23px;
- border-left: 1px solid transparent;
- color: #0568ae;
- display: flex;
- font-size: 23px;
- height: 36px;
- margin-right: 0;
- overflow: hidden;
- position: absolute;
- right: 0;
- text-indent: 7px;
- top: 0;
- user-select: none;
- width: 41px;
- z-index: 0;
- position: absolute !important;
- display: flex !important;
- }
-
- .card{
- border-radius: 5px;
- }
-
- .card-header{
- height: 50px;
- }
-
- .card-body{
- height: 150px;
- }
-
- .card-footer{
- height: 50px;
- }
-
- .dialog__close-btn {
- border: 0;
- background: #087ac2;
- color: #ffffff;
- position: absolute;
- top: 8px;
- right: 8px;
- font-size: 1.2em;
- display: block;
- border: #087ac2 2px solid;
- }
-
- .dialog{
- margin-top: 50px;
- }
-
- .modalTitle{
- font-size: 35px;
- }
-
- .defaultFontSize{
- font-size: 15px;
- }
-
-.defaultFontSizeTextArea{
- font-size: 15px;
- width: 200px;
- height: 36px
-}
-
-
- .tab-content{
- margin-right: 20px;
- /* background-color: #006496; */
- color: rgb(0, 0, 0);
- }
-
- .btn-sm{
- width: 30px;
- height: 15px;
- font-size: 10px;
- }
-
-
-table, tr, td, th {
- border: 0;
- width: fit-content
-}
-
-
-mat-icon{
- color: #006496;
- cursor: pointer;
-}
-
-.matFormField{
- width:300px;
-}
-
-.proceedWitLoadButton{
- font-size: 15px;
- background: green;
- color: white;
-
-}
-.abortButton{
- font-size: 15px;
- background: red;
- color: white;
-}
-
-.reportTitle{
- font-weight: bold;
-}
-textarea{
- display: block;
- width: 800px;
- padding: 8px;
- padding-left: 15px;
- height: 36px;
-}
-
-.subtitle{
- color: #f44336 ;
- padding-top: 5px;
- font-size: 12px;
-} \ No newline at end of file
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
deleted file mode 100644
index fcfcf4d4..00000000
--- 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
+++ /dev/null
@@ -1,159 +0,0 @@
-<span *ngIf="showSpinner" class="ecomp-spinner"></span>
-
-<div *ngIf="!showSpinner" class="stdForm">
-
- <div class="tab-content">
- <table>
- <tr>
- <td>
- <h6 class="reportTitle">{{reportName}}</h6>
- <h6 class="reportsubTitle" class="subtitle">{{reportSubTitle}}</h6>
- </td>
- <td>
- <mat-icon (click)="editReport(reportId)" *ngIf="allowEdit"
- aria-hidden="false" aria-label="edit">edit
- </mat-icon>
- </td>
- </tr>
- </table>
- <span *ngIf="showformFiledSpinner" class="ecomp-spinner"></span>
- <br>
- <div *ngIf="!showformFiledSpinner" class="stdForm">
- <div *ngIf="formFieldList" class="wrapper">
- <div *ngFor="let item of formFieldList; let i = index;">
- <div *ngIf="item.fieldType == 'TEXT' && item.validationType !== 'DATE'"
- class="fieldWidth">
- <label class="labelWidth">{{item.fieldDisplayName}} :</label> <textarea placement="right" ngbTooltip="comma seperated"
- [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" [(ngModel)]="formFieldListValueArr[i]" class="defaultFontSizeTextArea" id="item.fieldId"></textarea>
- </div>
- <div *ngIf="item.fieldType == 'LIST_BOX'" class="fieldWidth">
- <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
- <select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
- class="browser-default custom-select defaultFontSize" required="required"
- >
- <option *ngFor="let listItem of item.formFieldValues"
- class="defaultFontSize" value="{{listItem.id}}">{{listItem.name}}</option>
- </select>
- </div>
- <div *ngIf="item.fieldType == 'LIST_MULTI_SELECT'" class="fieldWidth">
- <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
- <mat-form-field>
- <mat-select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" multiple>
- <mat-option *ngFor="let listItem of item.formFieldValues"
- value="{{listItem.id}}">{{listItem.name}}</mat-option>
- </mat-select>
- </mat-form-field>
- </div>
- <div *ngIf="item.validationType == 'DATE'" class="fieldWidth">
- <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
- <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
- [matDatepicker]="picker"
- class="defaultFontSize" matInput>
- <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
- <mat-datepicker #picker></mat-datepicker>
- </mat-form-field>
- </div>
- </div>
- </div>
- <div *ngIf="formFieldList" style="padding: 0.3em" >
- <div *ngIf="unCommonGropusList.length > 0">
- <label>Select :</label><br/>
- <br/>
- <mat-radio-group ngmodel [(ngModel)]="groupSelectValue"
- aria-label="Select an option" (ngModelChange) ="toggleChangeWhenCalledWithFromFields()">
- <div *ngFor="let group of formFieldGroupObjList; let i=index;" style="display: table-cell">
- <mat-radio-button value="{{group.name}}">{{group.name}}</mat-radio-button>&nbsp;&nbsp;&nbsp;
- </div>
- </mat-radio-group>
-
- </div>
- </div>
-
- <div *ngIf="formFieldList" class="wrapper">
- <div *ngFor="let item of toggleFormFieldRenderArr; let i = index;">
- <div *ngIf="item.fieldType == 'TEXT' && item.validationType !== 'DATE'" class="fieldWidth">
- <label class="labelWidth">{{item.fieldDisplayName}} :</label><textarea placement="right" ngbTooltip="comma seperated"
- [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" class="defaultFontSizeTextArea" id="item.fieldId"></textarea>
- </div>
- <div *ngIf="item.fieldType == 'LIST_BOX'" class="fieldWidth">
- <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
- <select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
- class="browser-default custom-select defaultFontSize" required="required"
- >
- <option *ngFor="let listItem of item.formFieldValues"
- class="defaultFontSize" value="{{listItem.id}}">{{listItem.name}}</option>
- </select>
-
- </div>
- <div *ngIf="item.fieldType == 'LIST_MULTI_SELECT'" class="fieldWidth">
- <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
- <mat-form-field>
- <mat-select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
- multiple>
- <mat-option *ngFor="let listItem of item.formFieldValues"
- value="{{listItem.id}}">{{listItem.name}}</mat-option>
- </mat-select>
- </mat-form-field>
-
- <br/>
- </div>
- <div *ngIf="item.validationType == 'DATE'" class="fieldWidth">
- <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
- <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" [matDatepicker]="picker"
- class="defaultFontSize"
- matInput
- value="{{item.formFieldValues[0][name]}}">
- <mat-datepicker-toggle
- [for]="picker" matSuffix></mat-datepicker-toggle>
- <mat-datepicker
- #picker></mat-datepicker>
- </mat-form-field>
- </div>
- <br/>
- </div>
- </div>
- <div *ngIf="formFieldList" style="float: left;">
- <button (click)="runReport()" class="btn btn-alt btn-run" >Run Report</button>
- <button (click)="resetFormFieldValues()" class="btn btn-alt btn-run" >Reset</button>
- </div>
- </div>
- </div>
-</div>
-<div></div>
-
-<div *ngIf="isUpload" class="row isFileUploadDiv">
- <p>
- <mat-form-field class="matFormField">
- <textarea matInput placeholder="Comments">{{uploadfileComments}}</textarea>
- </mat-form-field>
- </p>
- <div class="btn-group row" style="margin: auto;">
- <p>
- <button (click)="onProceedWithLoad()" *ngIf="isUpload"
- class="btn btn-secondary proceedWitLoadButton" type="button">Proceed
- With Load
- </button>
- <button *ngIf="isUpload" class="btn btn-secondary abortButton"
- type="button">Abort
- </button>
- </p>
- </div>
-</div>
-<br><br><br>
-
-<div *ngIf="navigateToRun">
- <!-- <app-run-dashboard-report [reportId]="reportId" [reportMode]="reportMode" [queryString]="getQueryString()" [DashboardReportObj]="DashboardReportObj"></app-run-dashboard-report> -->
- <app-run-report [DashboardReportObj]="DashboardReportObj" [TriggerFFArr]="triggerFormFieldArr"
- [hitCnt]="hitCnt"
- [queryString]="getQueryString()"
- [reportId]="reportId" [reportMode]="reportMode" [runAgain]="runReportAgain" [groupSelectValue]="groupSelectValue" [chartType]="chartType" ></app-run-report>
-</div>
-
-<div *ngIf="error == true">
- <h1>Error Message:</h1>
- <p>{{errorMessage}}</p>
- <br/>
- <h1>Stack Trace:</h1>
- <p>{{stackTrace}}</p>
-
-</div>
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/dashboard-report.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.ts
deleted file mode 100644
index 1b046334..00000000
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { environment } from 'src/environments/environment';
-
-@Injectable({
- providedIn: 'root'
-})
-export class DashboardReportService {
-
- constructor(private _http : HttpClient) { }
-
-
- getReportData(reportId : string) : Observable<any>
- {
- return this._http.get(environment.baseUrl + "raptor.htm?action=report.run.container&c_master="+reportId+"&refresh=Y");
- }
-
- getReportDataWithFormFields(queryString : string, reportId : string) : Observable<any>
- {
- return this._http.get(environment.baseUrl + "raptor.htm?action=report.run.container&c_master="+reportId+queryString+"&refresh=Y&display_content=Y&r_page=0");
- }
-}
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.html 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.html
deleted file mode 100644
index 08ae8d42..00000000
--- 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.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<span class="ecomp-spinner" *ngIf="showSpinner"></span>
-
-<div *ngIf="!showChart">
- <div class="app-data-table">
- <div class="app-data-table-fixed-height">
- <div class="example-container">
- <table [dataSource]="dataSource" mat-table matSort>
- <div *ngFor="let keys of displayedColumns; let i = index">
- <ng-container matColumnDef="{{keys}}">
- <th *matHeaderCellDef 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])">
- <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>
- <div *ngIf="row[keys].split('|')[0] == 'clickToDownload' ">
- <mat-icon class="mat-icon-delete" aria-hidden="false" aria-label="play-for-work"
- (click)="onClickToDowload(row)">play-for-work</mat-icon>
- </div>
- <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToFeedback' && row[keys].split('|')[0] !== 'linkToMail'
- && row[keys].split('|')[0] !== 'clickToDownload' "
- [ngStyle]="setStyle(row[keys].split('|')[1])">
- {{row[keys].split('|')[0]}}</div>
- </td>
- <td *matFooterCellDef align="center"
- mat-footer-cell>{{getDisplayTotal(keys)}}</td>
- </ng-container>
- </div>
-
- <tr *matHeaderRowDef="displayedColumns; sticky: true;"
- mat-header-row></tr>
- <tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr>
- <tr mat-footer-row *matFooterRowDef="displayedColumns; sticky: true;"></tr>
- </table>
-
- <mat-paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator>
- </div>
- </div>
- </div>
-</div>
-<div *ngIf="showChart" align="center">
- <iframe #iframe height="550px" style="border: none" width="100%"></iframe>
-</div>
-
-
-<!-- <div *ngIf="!showDashboardReport">
- <div class="app-data-table">
- <div class="app-data-table-fixed-height">
- <table mat-table class="full-width-table" matSort aria-label="Elements">
-
- <div *ngFor="let keys of displayedColumns; let i = index">
- <ng-container matColumnDef="{{keys}}">
- <th mat-header-cell *matHeaderCellDef mat-sort-header >{{displayedColumnsArr[i].split(",")[0]}}</th>
- <td mat-cell *matCellDef="let row">{{row[keys]}}</td>
- </ng-container>
- </div>
-
-
- <tr mat-header-row *matHeaderRowDef="displayedColumns" ></tr>
- <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
- </table>
- </div>
- <mat-paginator #paginator
- [length]="dataSource?.data.length"
- [pageIndex]="0"
- [pageSize]="15"
- [pageSizeOptions]="[15, 25, 50, 100, 250]">
- </mat-paginator>
- </div>
- </div> -->
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css
index fb9d85b8..bf51ea3a 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css
@@ -71,7 +71,7 @@ input {
line-height: normal;
}
-.btn {
+.btns {
background-color: transparent;
background-clip: padding-box;
border: 1px solid transparent;
@@ -80,7 +80,7 @@ input {
cursor: pointer;
display: inline-block;
font-family: "Omnes-ECOMP-W02-Medium", Arial;
- font-size: 1.9rem;
+ font-size: 16px;
font-weight: normal;
line-height: 1;
margin: 0 7px 10px 0;
@@ -94,63 +94,17 @@ input {
overflow: hidden;
}
-.btn:focus {
- outline: 1px dotted #000;
- outline-offset: -5px;
-}
-
-.btn:last-child {
- margin-right: 0;
-}
-
-.btn::-moz-focus-inner {
- padding: 0;
- border: 0;
-}
-
-.btn i[class*="icon-primary-"].icon-primary-small {
- font-size: 17px;
- top: -2px;
-}
-
-.btn i[class*="icon-primary-"].icon-primary-medium {
- font-size: 30px;
- top: -2px;
-}
-
-.btn i[class*="icon-primary-"].icon-primary-large {
- font-size: 36px;
- top: -2px;
-}
-
-.btn-alt {
+.btns-alt {
border-color: #087ac2 transparent #0568ae;
background-color: #0568ae;
background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
color: #ffffff;
}
-.btn-alt:hover {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
-}
-
-.btn-alt:focus {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
-}
-
-.btn-alt:active {
- color: #ffffff;
- outline-color: #ffffff !important;
- background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
-}
-.btn-small {
+.btns-small {
padding: 10px 19px 9px 18px;
- font-size: 17px;
+ font-size: 15px;
border-radius: 8px;
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html
index 270ee870..01215576 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html
@@ -9,7 +9,7 @@
<label>{{SQLmessage}}</label>
</div>
<div class="card-footer">
- <button (click)="showSaveSQLDialog = !showSaveSQLDialog" class="btn btn-alt btn-small close-model">Close
+ <button (click)="showSaveSQLDialog = !showSaveSQLDialog" class="btns btns-alt btns-small close-model">Close
</button>
</div>
</div>
@@ -38,7 +38,7 @@
</div>
</div>
<div class="card-footer">
- <button (click)="closeValidateModal()" class="btn btn-alt btn-small close-model">Close</button>
+ <button (click)="closeValidateModal()" class="btns btns-alt btns-small close-model">Close</button>
</div>
</div>
</app-sql-validate-changes-dialog-component>
@@ -57,12 +57,52 @@
<div class="field-group">
<label>Report SQL</label> <br/>
<textarea [(ngModel)]="sqlText" class="defaultFontSize textarea-sql" id="sqlText" name="sqlText" type="textarea"
- value="{{finalGetObj['query']}}"></textarea>
+ value="{{finalGetObj['query']}}" autocomplete="on"></textarea>
+ <b> Keyword Assistance:<br>
+ <a href="javascript:;" (click)="addText('SELECT')">SELECT</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('DISTINCT')">DISTINCT</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('FROM')">FROM</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('WHERE')">WHERE</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('GROUP BY')">GROUP BY</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('ORDER BY')">ORDER BY</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('ASC')">ASC</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('DESC')">DESC</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('AND')">AND</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('OR')">OR</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('NOT')">NOT</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('EXISTS')">EXISTS</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('IS')">IS</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('NULL')">NULL</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('IN')">IN</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('BETWEEN')">BETWEEN</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+ <a href="javascript:;" (click)="addText('COUNT(')">COUNT(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('SUM(')">SUM(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('AVG(')">AVG(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('MAX(')">MAX(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('MIN(')">MIN(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('NVL(')">NVL(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('DECODE(')">DECODE(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('SYDATE')">SYSDATE</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('TO_CHAR')">TO_CHAR</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('TO_NUMBER(')">TO_NUMBER(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('TO_DATE(')">TO_DATE(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('TRUNC(')">TRUNC(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('ROUND(')">ROUND(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('ABS(')">ABS(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('SUBSTR(')">SUBSTR(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+ <a href="javascript:;" (click)="addText('REPLACE(')">REPLACE(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('LOWER(')">LOWER(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('UPPER(')">UPPER(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('LTRM(')">LTRM(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('RTRIM(')">RTRIM(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('LPAD(')">LPAD(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('RPAD(')">RPAD(</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="javascript:;" (click)="addText('(linkToReport, , , )')">linkToReport</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </b>
</div>
- <br/>
<div class="field-group">
<pre>
- <div class="divider"></div><button (click)="validate()" class="btn btn-alt btn-small">Validate & Save</button>
+ <div class="divider"></div><button (click)="validate()" class="btns btns-alt btns-small">Validate & Save</button>
</pre>
</div>
<br/>
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 afa84c63..7a547e3d 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
@@ -36,6 +36,7 @@ export class SQLComponent implements OnInit {
@Input() SQLclosable = true;
@Input() Validateclosable = true;
+ keyWordAssistance: any[];
constructor(private _http: HttpClient, private _router: Router, private _sqlService: SqlService) {
@@ -43,13 +44,20 @@ export class SQLComponent implements OnInit {
this.SQLPostResponse = true;
this.ValidatePostResponse = {};
this.showErrorSqlMessage = false;
+ this.keyWordAssistance = [];
+
}
ngOnInit() {
- this.showSpinner = true;
this.showSaveSQLDialog = false;
this.SQLPostResponse = true;
this.ValidatePostResponse = {};
+ this.keyWordAssistance.push( 'SELECT', 'DISTINCT', 'FROM', 'WHERE',
+ 'GROUP BY', 'HAVING', 'ORDER BY', 'ASC', 'DESC', 'AND', 'OR', 'NOT', 'EXISTS',
+ 'IS', 'NULL', 'IN', 'BETWEEN', 'COUNT(', 'SUM(', 'AVG(', 'MAX(', 'MIN(', 'NVL(',
+ 'DECODE(', 'SYSDATE', 'TO_CHAR(', 'TO_NUMBER(', 'TO_DATE(',
+ 'TRUNC(', 'ROUND(', 'ABS(', 'SUBSTR(', 'REPLACE(', 'LOWER(', 'UPPER(',
+ 'LTRM(', 'RTRIM(', 'LPAD(', 'RPAD(', 'linkToReport');
this._sqlService.getSQLTabData(this.reportId1)
.subscribe((response) => {
this.showSpinner = true;
@@ -153,4 +161,7 @@ export class SQLComponent implements OnInit {
return this.ValidateResponseString;
}
+ addText(word: string) {
+ this.sqlText = this.sqlText + ' ' + word + ' ';
+ }
}
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 7bb6729d..0295bdd6 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,40,60,80,100]">
+ [pageSizeOptions]="[20]">
</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 dfb485e1..01c1254a 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
@@ -17,7 +17,7 @@ export class ReportListComponent implements AfterViewInit, 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<AllReportsItem>;
- @Input( "reportId" ) reportId1: string;
+ @Input('reportId') reportId1: string;
dataSource: AllReportsDataSource;
dataSource1: any;
finalGETObj: {};
@@ -26,7 +26,7 @@ export class ReportListComponent implements AfterViewInit, OnInit {
reportIdArr: string[];
toggle: boolean;
intermediateDisplayedColumns: string[];
- displayedColumns = ["rep_id", "rep_name", "descr", "owner", "create_date", "copy", "edit", "delete", "schedule", "run"];
+ displayedColumns = ['rep_id', 'rep_name', 'descr', 'owner', 'create_date', 'copy', 'edit', 'delete', 'schedule', 'run'];
finalRowArr: AllReportsItem[];
rowObj: any;
reportId: string;
@@ -47,23 +47,23 @@ export class ReportListComponent implements AfterViewInit, OnInit {
this.showSpinner = true;
this.dataSource = new AllReportsDataSource();
this.dataSource1 = new MatTableDataSource();
- this.intermediateDisplayedColumns = new Array();
- this.finalGETObj = new Object();
- this.finalGETObj = new Object();
- this.finalGETObjRowsArr = new Array();
- this.rowArr = new Array();
- this.reportIdArr = new Array();
+ this.intermediateDisplayedColumns = [];
+ this.finalGETObj = {};
+ this.finalGETObj = {};
+ this.finalGETObjRowsArr = [];
+ this.rowArr = [];
+ this.reportIdArr = [];
this.toggle = false;
this.toggle1 = false;
- this.finalRowArr = new Array();
+ this.finalRowArr = [];
this._reportListService.getAllReports()
.subscribe(( responseObj ) => {
this.finalGETObj = responseObj;
- this.finalGETObjRowsArr = this.finalGETObj["rows"];
+ this.finalGETObjRowsArr = this.finalGETObj['rows'];
let j = 0;
- while ( this.finalGETObj["columns"][0][j] ) {
- if ( this.finalGETObj["columns"][0][j]["columnId"] !== "no" ) {
- this.intermediateDisplayedColumns.push( this.finalGETObj["columns"][0][j]["columnId"] );
+ while (this.finalGETObj['columns'][0][j]) {
+ if (this.finalGETObj['columns'][0][j]['columnId'] !== 'no') {
+ this.intermediateDisplayedColumns.push(this.finalGETObj['columns'][0][j]['columnId']);
}
j++;
}
@@ -71,50 +71,50 @@ export class ReportListComponent implements AfterViewInit, OnInit {
let i = 0;
while ( this.finalGETObjRowsArr[0][i] ) {
this.rowArr = this.finalGETObjRowsArr[0][i];
- this.rowObj = new Object();
+ this.rowObj = {};
let j = 0;
while ( this.rowArr[j] ) {
- if ( this.rowArr[j]["columnId"] === "rep_id" ) {
- this.rowObj["rep_id"] = this.rowArr[j]["searchresultField"]["displayValue"];
- this.reportIdArr.push( this.rowArr[j]["searchresultField"]["displayValue"] );
+ if (this.rowArr[j]['columnId'] === 'rep_id') {
+ this.rowObj['rep_id'] = this.rowArr[j]['searchresultField']['displayValue'];
+ this.reportIdArr.push(this.rowArr[j]['searchresultField']['displayValue']);
}
- if ( this.rowArr[j]["columnId"] === "rep_name" ) {
- this.rowObj["rep_name"] = this.rowArr[j]["searchresultField"]["displayValue"];
+ if (this.rowArr[j]['columnId'] === 'rep_name') {
+ this.rowObj['rep_name'] = this.rowArr[j]['searchresultField']['displayValue'];
}
- if ( this.rowArr[j]["columnId"] === "descr" ) {
- this.rowObj["descr"] = this.rowArr[j]["searchresultField"]["displayValue"];
+ if (this.rowArr[j]['columnId'] === 'descr') {
+ this.rowObj['descr'] = this.rowArr[j]['searchresultField']['displayValue'];
}
- if ( this.rowArr[j]["columnId"] === "owner" ) {
- this.rowObj["owner"] = this.rowArr[j]["searchresultField"]["displayValue"];
+ if (this.rowArr[j]['columnId'] === 'owner') {
+ this.rowObj['owner'] = this.rowArr[j]['searchresultField']['displayValue'];
}
- if ( this.rowArr[j]["columnId"] === "create_date" ) {
- this.rowObj["create_date"] = this.rowArr[j]["searchresultField"]["displayValue"];
+ if (this.rowArr[j]['columnId'] === 'create_date') {
+ this.rowObj['create_date'] = this.rowArr[j]['searchresultField']['displayValue'];
}
- if ( this.rowArr[j]["columnId"] === "copy" ) {
- this.rowObj["copy"] = this.rowArr[j]["searchresultField"]["displayValue"];
+ if (this.rowArr[j]['columnId'] === 'copy') {
+ this.rowObj['copy'] = this.rowArr[j]['searchresultField']['displayValue'];
}
- if ( this.rowArr[j]["columnId"] === "edit" ) {
- this.rowObj["edit"] = this.rowArr[j]["searchresultField"]["displayValue"];
- this.rowObj["canEdit"] = this.rowArr[j]["searchresultField"]["authorized"];
+ if (this.rowArr[j]['columnId'] === 'edit') {
+ this.rowObj['edit'] = this.rowArr[j]['searchresultField']['displayValue'];
+ this.rowObj['canEdit'] = this.rowArr[j]['searchresultField']['authorized'];
}
- if ( this.rowArr[j]["columnId"] === "delete" ) {
- this.rowObj["delete"] = this.rowArr[j]["searchresultField"]["displayValue"];
- this.rowObj["canDelete"] = this.rowArr[j]["searchresultField"]["authorized"];
+ if (this.rowArr[j]['columnId'] === 'delete') {
+ this.rowObj['delete'] = this.rowArr[j]['searchresultField']['displayValue'];
+ this.rowObj['canDelete'] = this.rowArr[j]['searchresultField']['authorized'];
}
- if ( this.rowArr[j]["columnId"] === "schedule" ) {
- this.rowObj["schedule"] = this.rowArr[j]["searchresultField"]["displayValue"];
+ if (this.rowArr[j]['columnId'] === 'schedule') {
+ this.rowObj['schedule'] = this.rowArr[j]['searchresultField']['displayValue'];
}
- if ( this.rowArr[j]["columnId"] === "run" ) {
- this.rowObj["run"] = this.rowArr[j]["searchresultField"]["displayValue"];
+ if (this.rowArr[j]['columnId'] === 'run') {
+ this.rowObj['run'] = this.rowArr[j]['searchresultField']['displayValue'];
}
j++;
}
@@ -134,9 +134,9 @@ export class ReportListComponent implements AfterViewInit, OnInit {
ngOnInit() {
sessionStorage.clear();
- const myItem = localStorage.getItem('id');
+ const myItem = localStorage.getItem('notes');
localStorage.clear();
- localStorage.setItem('id', myItem);
+ localStorage.setItem('notes', myItem);
this.toggle = false;
}
@@ -148,12 +148,12 @@ export class ReportListComponent implements AfterViewInit, OnInit {
displayReport( reportId: string ) {
this.reportId = reportId;
- this._router.navigate( ["v2/app/reports", "Edit", reportId] );
+ this._router.navigate(['v2/app/reports', 'Edit', reportId]);
}
runReport( reportId: string ) {
this.reportId = reportId;
- this._router.navigate( ['v2/app/run', reportId] );
+ this._router.navigate(['v2/run', reportId]);
}
applyFilter( filterValue: string ) {
@@ -187,10 +187,9 @@ export class ReportListComponent implements AfterViewInit, OnInit {
this._router.navigate( ['v2/app/schedule_report', reportId] );
}
- copydisplayReport(reportId : string)
- {
+ copydisplayReport(reportId: string) {
this.reportId = reportId;
- this._router.navigate(["v2/app/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 d0094ab9..88d1c84f 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&show_all=true");
+ return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0");
}
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run-routing.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run-routing.module.ts
new file mode 100644
index 00000000..38f4d5b3
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run-routing.module.ts
@@ -0,0 +1,28 @@
+import {RouterModule, Routes} from '@angular/router';
+
+import {NgModule} from '@angular/core';
+import {ReportRunComponent} from './report-run.component';
+import {RunReportFormFieldsComponent} from './run/run-report-form-fields/run-report-form-fields.component';
+
+
+const routes: Routes = [
+ {
+ path: '',
+ component: ReportRunComponent,
+ children: [
+ {path: ':reportId', component: RunReportFormFieldsComponent},
+ {path: ':reportId/:queryParameters', component: RunReportFormFieldsComponent},
+ {path: ':reportId/:queryParameters/:groupSelectValue', component: RunReportFormFieldsComponent},
+ {path: ':reportId/:queryParameters/:groupSelectValue/:showBackButton/:downloadPrevReport', component: RunReportFormFieldsComponent},
+ {path: '', component: RunReportFormFieldsComponent},
+ ]
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class ReportRunRouting{
+
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.html
new file mode 100644
index 00000000..0680b43f
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.html
@@ -0,0 +1 @@
+<router-outlet></router-outlet>
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.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.scss
index e69de29b..e69de29b 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.scss
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.scss
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.spec.ts
new file mode 100644
index 00000000..af615a92
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.spec.ts
@@ -0,0 +1,26 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+import { ReportRunComponent } from './report-run.component';
+
+describe('ReportRunComponent', () => {
+ let component: ReportRunComponent;
+ let fixture: ComponentFixture<ReportRunComponent>;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ ReportRunComponent ],
+ imports: [ RouterTestingModule]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ReportRunComponent);
+ 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/report-run/report-run.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.ts
new file mode 100644
index 00000000..e74449cb
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-report-run',
+ templateUrl: './report-run.component.html',
+ styleUrls: ['./report-run.component.scss']
+})
+export class ReportRunComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit() {
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.module.ts
new file mode 100644
index 00000000..775494d7
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/report-run.module.ts
@@ -0,0 +1,62 @@
+import {NgModule} from '@angular/core';
+import {RunDashboardReportComponent} from './run/run-report/run-dashboard-report/run-dashboard-report.component';
+import {RunReportFormFieldsComponent} from './run/run-report-form-fields/run-report-form-fields.component';
+import {RunReportComponent} from './run/run-report/run-report.component';
+import {ReportRunComponent} from './report-run.component';
+import {RunReportResultSetComponent} from './run/run-report-result-set/run-report-result-set.component';
+import {
+ MatAutocompleteModule,
+ MatCheckboxModule,
+ MatDatepickerModule,
+ MatFormFieldModule,
+ MatIconModule,
+ MatInputModule,
+ MatPaginatorModule,
+ MatRadioModule,
+ MatSelectModule,
+ MatSortModule,
+ MatTableModule
+} from '@angular/material';
+import {CommonModule} from '@angular/common';
+import {RouterModule} from '@angular/router';
+import {FormsModule, ReactiveFormsModule} from '@angular/forms';
+import {GridsterModule} from 'angular-gridster2';
+import {RunComponent} from './run/run.component';
+import {ReportRunRouting} from './report-run-routing.module';
+import {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';
+import { RemoveSpaceDirective} from './run/run-report-form-fields/remove-space.directive';
+
+@NgModule({
+ declarations: [RunDashboardReportComponent,
+ RunReportFormFieldsComponent,
+ RunReportComponent,
+ ReportRunComponent,
+ RunReportResultSetComponent,
+ RunComponent,
+ RemoveSpaceDirective],
+ imports: [
+ MatTableModule,
+ CommonModule,
+ RouterModule,
+ MatIconModule,
+ MatCheckboxModule,
+ MatFormFieldModule,
+ ReactiveFormsModule,
+ MatAutocompleteModule,
+ MatPaginatorModule,
+ FormsModule,
+ GridsterModule,
+ MatSelectModule,
+ MatDatepickerModule,
+ MatRadioModule,
+ MatInputModule,
+ ReportRunRouting,
+ MatSortModule,
+ NgbTooltipModule
+ ],
+ exports: [RunReportComponent, RunComponent]
+})
+
+export class ReportRun {
+
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/remove-space.directive.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/remove-space.directive.ts
new file mode 100644
index 00000000..5bc8058d
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/remove-space.directive.ts
@@ -0,0 +1,18 @@
+import {Directive, ElementRef, HostListener} from '@angular/core';
+
+@Directive({
+ selector: '[appRemoveSpace]'
+})
+export class RemoveSpaceDirective {
+
+ constructor(private _el: ElementRef) { }
+
+ @HostListener('textarea', ['$event']) onInputChange(event) {
+ const initialValue = this._el.nativeElement.value;
+ this._el.nativeElement.value = initialValue.toString().trim();
+ if ( initialValue !== this._el.nativeElement.value) {
+ event.stopPropagation();
+ }
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css
new file mode 100644
index 00000000..91456c6a
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.css
@@ -0,0 +1,4146 @@
+.wrapper {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: row;
+}
+
+.wrapper > div {
+ border-radius: 3px;
+ padding: 0.4em;
+}
+
+mat-button-toggle-group {
+ width: 800px;
+}
+
+.stdForm {
+ margin-left: 20px;
+ line-height: 0.5;
+}
+
+.fieldWidth {
+ width: 200px;
+}
+
+.labelWidth {
+ font-weight: normal;
+ width: 300px;
+}
+
+mat-select {
+ border: 1px solid #d2d2d2;
+ border-radius: 6px;
+ height: 36px;
+}
+
+:host ::ng-deep .mat-select-value {
+ padding: 8px;
+ font-size: 12px;
+ padding-left: 15px;
+}
+
+:host ::ng-deep .mat-form-field-underline {
+ display: none;
+}
+
+:host ::ng-deep .mat-form-field-infix {
+ padding: 0;
+ border-top: 0;
+}
+
+:host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper {
+ padding-bottom: 0;
+}
+
+:host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-infix {
+ padding: 0;
+}
+
+.mat-form-field {
+ width: 200px;
+}
+
+label {
+ size: 70px;
+ padding-right: 15px;
+}
+
+input {
+ width: 200px;
+ height: 20px;
+}
+
+.Heading {
+ font-size: 45px;
+}
+
+.field-group {
+ position: relative;
+ display: block;
+}
+
+label + .field-group, label + .input-append, label + .row, label + .row-nowrap, label + .form-row {
+ margin-top: 5px;
+}
+
+
+select {
+ display: block;
+ width: 200px;
+ padding: 15px;
+ background-color: #e6e6e61a
+}
+
+.checkbox .skin {
+ background-color: #fff;
+ border: 1px solid #d2d2d2;
+ border-radius: 3px;
+ display: inline-block;
+ height: 24px;
+ width: 24px;
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+
+html {
+ overflow-y: scroll;
+ -webkit-overflow-scrolling: touch;
+ height: 100%;
+ position: relative;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+p,
+blockquote,
+figure,
+ol,
+ul {
+ margin: 0;
+ padding: 0;
+}
+
+sub,
+.img-no-rwd {
+ max-width: inherit !important;
+}
+
+svg {
+ display: inline-block;
+}
+
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+
+::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ appearance: button;
+ cursor: pointer;
+}
+
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer;
+}
+
+input[type=search] {
+ -webkit-appearance: textfield;
+}
+
+input[type=search]::-webkit-search-cancel-button,
+input[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+
+select {
+ -moz-appearance: none;
+ -webkit-appearance: none;
+}
+
+small {
+ font-size: 1.6rem;
+}
+
+.container {
+ margin: 0 auto;
+ padding: 0;
+}
+
+input {
+ padding: 8px 15px 8px 15px;
+}
+
+.field-group input.input-emphasized[type="search"] + .reset-field:after {
+ top: 14px;
+}
+
+.field-group input.input-emphasized[type="search"] + .reset-field {
+ height: 46px;
+ top: 1px;
+}
+
+p,
+h2,
+h3 {
+ orphans: 3;
+ widows: 3;
+}
+
+h2,
+h3 {
+ page-break-after: avoid;
+}
+
+.mar-top-0 {
+ margin-top: 0px;
+}
+
+.mar-top-30 {
+ margin-top: 30px;
+}
+
+a:focus {
+ outline: thin dotted #191919;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-weight: normal;
+ text-rendering: optimizeLegibility;
+ margin: 0;
+ line-height: 1;
+}
+
+@media (max-width: 767px) {
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ .heading-page {
+ font-size: 2rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ margin-bottom: 30px;
+ }
+
+ .heading-major-section {
+ font-size: 2rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ margin-bottom: 30px;
+ }
+
+ .heading-sub-section {
+ font-size: 2rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ margin-bottom: 20px;
+ }
+
+ .heading-medium {
+ font-size: 2rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ margin-bottom: 20px;
+ }
+
+ .heading-medium-emphasis {
+ font-size: 2rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ margin-bottom: 20px;
+ }
+
+ .heading-small {
+ font-size: 1.6rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ margin-bottom: 10px;
+ }
+
+ .heading-small-emphasis {
+ font-size: 1.6rem;
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ margin-bottom: 5px;
+ }
+
+ * + .heading-major-section {
+ margin-top: 30px;
+ }
+
+ * + .heading-sub-section {
+ margin-top: 30px;
+ }
+
+ * + .heading-group {
+ margin-top: 20px;
+ }
+
+ * + .heading-medium {
+ margin-top: 20px;
+ }
+
+ * + .heading-medium-emphasis {
+ margin-top: 20px;
+ }
+
+ * + .heading-small {
+ margin-top: 20px;
+ }
+
+ * + .heading-small-emphasis {
+ margin-top: 20px;
+ }
+
+ * + .heading-micro {
+ margin-top: 10px;
+ }
+}
+
+/* Standard Type styles */
+.zeromargin {
+ margin: 0 !important;
+}
+
+a {
+ color: #0568ae;
+ text-decoration: none;
+}
+
+a:hover,
+a:focus {
+ text-decoration: underline;
+}
+
+a:active {
+ color: #0568ae;
+}
+
+.a-min {
+ font-size: 12px;
+}
+
+.a-small {
+ font-size: 14px;
+}
+
+.a-max {
+ font-size: 18px;
+}
+
+a.show-qualifier {
+ margin-right: 25px;
+ position: relative;
+}
+
+a.show-qualifier:after {
+ color: #333333;
+ display: inline-block;
+ white-space: pre !important;
+}
+
+a[href$="pdf"].show-qualifier:after,
+a.show-qualifier.pdf:after {
+ content: " (PDF)";
+}
+
+a[href$="psd"].show-qualifier:after,
+a.show-qualifier.psd:after {
+ content: " (PSD)";
+}
+
+.standalone-link {
+ display: flex;
+}
+
+/* 20px for the icon, 10px left of icon */
+.standalone-link.small {
+ font-size: 1.4rem;
+}
+
+.standalone-link.small i[class*="icon-primary-"] {
+ font-size: 16px;
+ top: 2px;
+}
+
+.standalone-link.large {
+ font-size: 1.8rem;
+}
+
+.standalone-link.large i[class*="icon-primary-"] {
+ font-size: 24px;
+ top: -1px;
+}
+
+p {
+ margin: 0 0 12px 0;
+ line-height: 2rem;
+}
+
+.p-small {
+ font-size: 1.4rem;
+ line-height: 1.8rem;
+}
+
+p + .p-small {
+ margin: 10px 0 0;
+}
+
+.p-micro {
+ font-size: 1.2rem;
+ line-height: 1.5rem;
+}
+
+p + .p-micro {
+ margin: 10px 0 0;
+}
+
+.p-max {
+ font-size: 1.8rem;
+}
+
+p + .p-max {
+ margin: 10px 0 0;
+}
+
+b,
+strong {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ font-weight: normal;
+}
+
+i,
+em {
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+ font-style: normal;
+}
+
+.strike {
+ text-decoration: line-through;
+}
+
+sup {
+ display: inline-block;
+ font-style: normal;
+ height: 1em;
+ position: relative;
+ vertical-align: text-top;
+ width: auto;
+}
+
+.text-legal {
+ color: #5a5a5a;
+ font-size: 1.1rem;
+ line-height: 1.5rem;
+ margin: 0 0 10px;
+}
+
+.text-legal.legal-module {
+ line-height: 1.3rem;
+ margin: 0 0 12px;
+}
+
+.text-legal b,
+.text-legal strong {
+ font-weight: bold;
+}
+
+.text-legal a {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+}
+
+.text-left {
+ text-align: left !important;
+}
+
+.text-right {
+ text-align: right !important;
+}
+
+.text-center {
+ text-align: center !important;
+}
+
+.text-justified {
+ text-align: justify !important;
+}
+
+ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+ul.bullet,
+ul.no-bullet,
+ul.lower-alpha,
+ul.lower-roman,
+ol {
+ padding: 0;
+ margin: 12px 0 0 20px;
+}
+
+ul.bullet li,
+ul.no-bullet li,
+ul.lower-alpha li,
+ul.lower-roman li,
+ol li {
+ padding-left: 15px;
+ line-height: 20px;
+ position: relative;
+}
+
+ul.bullet li + li,
+ul.no-bullet li + li,
+ul.lower-alpha li + li,
+ul.lower-roman li + li,
+ol li + li {
+ margin-top: 12px;
+}
+
+ul.bullet > li:before,
+ul.no-bullet > li:before,
+ul.lower-alpha > li:before,
+ul.lower-roman > li:before,
+ol > li:before {
+ background-color: #333333;
+ border: 2px solid #333333;
+ border-radius: 100%;
+ content: " ";
+ display: block;
+ height: 1px;
+ left: 0;
+ position: absolute;
+ top: 8px;
+ width: 1px;
+}
+
+ul.bullet ul,
+ul.no-bullet ul,
+ul.lower-alpha ul,
+ul.lower-roman ul,
+ol ul,
+ul.bullet ol,
+ul.no-bullet ol,
+ul.lower-alpha ol,
+ul.lower-roman ol,
+ol ol {
+ margin-top: 12px;
+}
+
+ul + *,
+ol + * {
+ margin-top: 20px;
+}
+
+ul.no-bullet,
+ul.lower-alpha,
+ul.lower-roman {
+ margin: 0;
+}
+
+ul.no-bullet > li,
+ul.lower-alpha > li,
+ul.lower-roman > li {
+ padding-left: 0;
+}
+
+ul.no-bullet > li:before,
+ul.lower-alpha > li:before,
+ul.lower-roman > li:before {
+ display: none !important;
+}
+
+ol {
+ margin: 20px 0 0 32px;
+}
+
+ol li {
+ padding-left: 3px;
+}
+
+ol li:before {
+ display: none;
+}
+
+ol ol {
+ margin-left: 25px;
+}
+
+ol ul {
+ margin-left: -5px;
+}
+
+ul ul,
+ul ol,
+ol ol,
+ol ul {
+ margin-top: 0;
+}
+
+ul.lower-roman {
+ list-style-type: lower-roman;
+ margin-top: 12px;
+ margin-left: 35px;
+ margin-bottom: 0;
+}
+
+ul.lower-alpha {
+ list-style-type: lower-alpha;
+ margin-top: 12px;
+ margin-left: 35px;
+ margin-bottom: 0;
+}
+
+dl {
+ display: table;
+ margin: 0 0 20px;
+ width: 100%;
+}
+
+dt,
+dd {
+ display: table-cell;
+}
+
+.btn {
+ background-color: transparent;
+ background-clip: padding-box;
+ border: 1px solid transparent;
+ border-radius: 8px;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15);
+ cursor: pointer;
+ display: inline-block;
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ font-size: 0.5rem;
+ font-weight: normal;
+ line-height: 1;
+ margin: 0 7px 10px 0;
+
+
+ padding: 14px 19px 11px 18px;
+ position: relative;
+ text-align: center;
+ vertical-align: middle;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+.btn:focus {
+ outline: 1px dotted #000;
+ outline-offset: -5px;
+}
+
+.btn:last-child {
+ margin-right: 0;
+}
+
+.btn::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+
+.btn i[class*="icon-primary-"].icon-primary-small {
+ font-size: 24px;
+ top: -2px;
+}
+
+.btn i[class*="icon-primary-"].icon-primary-medium {
+ font-size: 10px;
+ top: -2px;
+}
+
+.btn i[class*="icon-primary-"].icon-primary-large {
+ font-size: 10px;
+ top: -2px;
+}
+
+a.btn {
+ vertical-align: middle;
+}
+
+a.btn:hover {
+ text-decoration: none;
+}
+
+.field-group + .btn {
+ margin-left: 20px;
+}
+
+.btn-primary {
+ border-color: #ea7400 transparent #d16500;
+ background-color: #ea7400 transparent #d16500;
+ background: linear-gradient(to bottom, #ea7400 0%, #d16500 100%);
+ color: #ffffff;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-weight: bold;
+}
+
+.btn-primary:hover {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%);
+}
+
+.btn-primary:focus {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%);
+}
+
+.btn-primary:active {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%);
+}
+
+.btn-arrow {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-size: 1.6rem;
+ font-weight: normal;
+ background-color: transparent;
+ border: none;
+ padding: 5px 0 0;
+ top: -4px;
+ color: #333333;
+ position: relative;
+}
+
+.btn-arrow:hover {
+ text-decoration: underline;
+}
+
+.btn-arrow:hover .btn-primary {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%);
+}
+
+.btn-arrow:hover .btn-secondary {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%);
+}
+
+.btn-arrow:hover .btn-alt {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+}
+
+.btn-arrow:hover .btn-specialty {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%);
+}
+
+.btn-arrow:focus {
+ text-decoration: underline;
+ outline: 1px dotted #666;
+}
+
+.btn-arrow:focus .btn-primary {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%);
+}
+
+.btn-arrow:focus .btn-secondary {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%);
+}
+
+.btn-arrow:focus .btn-alt {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+}
+
+.btn-arrow:focus .btn-specialty {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%);
+}
+
+.btn-arrow:active .btn-primary {
+ text-decoration: none;
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%);
+}
+
+.btn-arrow:active .btn-secondary {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%);
+}
+
+.btn-arrow:active .btn-alt {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+}
+
+.btn-arrow:active .btn-specialty {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #007a3e 0%, #008744 100%);
+}
+
+.btn-arrow .btn-alt {
+ border-color: #087ac2 transparent #0568ae;
+ background-color: #0568ae;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+ color: #ffffff;
+}
+
+.btn-arrow .btn-alt:hover {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
+}
+
+.btn-arrow .btn-alt:focus {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
+}
+
+.btn-arrow .btn-alt:active {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
+}
+
+.btn-arrow::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+
+.btn-arrow .btn {
+ border: 1px solid transparent;
+ border-radius: 100%;
+ height: 20px;
+ margin-bottom: 0;
+ margin-right: 7px;
+ max-width: 20px;
+ min-width: 20px;
+ padding: 0;
+ margin-top: -4px;
+ vertical-align: middle;
+ width: 36px;
+}
+
+.btn-arrow .btn .icon-primary-left {
+ bottom: 0;
+ display: block;
+ height: 100%;
+ left: 0;
+ line-height: 0;
+ position: absolute;
+ right: 0;
+ text-indent: 0;
+ top: 0;
+}
+
+.btn-arrow .btn .icon-primary-left:before {
+ position: absolute;
+ font-size: 1.6rem;
+ left: 1px;
+ top: 9px;
+}
+
+.btn-arrow .btn .icon-primary-right {
+ bottom: 0;
+ display: block;
+ height: 100%;
+ left: 0;
+ line-height: 0;
+ position: absolute;
+ right: 0;
+ text-indent: 0;
+ top: 0;
+ color: #ffffff;
+}
+
+.btn-arrow .btn .icon-primary-right:before {
+ position: absolute;
+ font-size: 1.6rem;
+ left: 17px;
+ top: 9px;
+}
+
+.btn-arrow .btn.btn-primary .icon-primary-left {
+ color: #fff;
+}
+
+.btn-arrow .btn.btn-primary .icon-primary-right {
+ color: #fff;
+}
+
+.btn-arrow .btn.btn-alt .icon-primary-left {
+ color: #fff;
+}
+
+.btn-arrow .btn.btn-alt .icon-primary-right {
+ color: #fff;
+}
+
+.btn-arrow .btn.btn-secondary {
+ border: 1px solid #d2d2d2;
+}
+
+.btn-arrow .btn.btn-secondary .icon-primary-left {
+ color: #0568ae;
+}
+
+.btn-arrow .btn.btn-secondary .icon-primary-right {
+ color: #0568ae;
+}
+
+.btn-arrow .btn.btn-small {
+ height: 10px;
+
+
+ width: 10px;
+ top: -1px;
+}
+
+.btn-arrow .btn.btn-small .icon-primary-left:before {
+ font-size: 5px;
+ top: 4px;
+ left: 0;
+}
+
+.btn-arrow .btn.btn-small .icon-primary-right:before {
+ font-size: 5px;
+ top: 4px;
+ left: 10px;
+}
+
+.btn-arrow .btn.btn-large .icon-primary-left:before {
+ font-size: 112%;
+ top: 12px;
+ left: 23px;
+}
+
+.btn-arrow .btn.btn-large .icon-primary-right:before {
+ font-size: 112%;
+ top: 12px;
+ left: 23px;
+}
+
+.btn-secondary {
+ border: 1px solid #d2d2d2;
+ background-color: #f2f2f2;
+ background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
+ color: #0568ae;
+ box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.15);
+ padding: 14px 18px 11px 17px;
+}
+
+.btn-secondary:hover {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%);
+}
+
+.btn-secondary:focus {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%);
+}
+
+.btn-secondary:active {
+ color: #0568ae;
+ outline-color: #000000 !important;
+ background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%);
+}
+
+.btn-alt {
+ border-color: #087ac2 transparent #0568ae;
+ background-color: #0568ae;
+ background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%);
+ color: #ffffff;
+}
+
+.btn-alt:hover {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
+}
+
+.btn-alt:focus {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
+}
+
+.btn-alt:active {
+ color: #ffffff;
+ outline-color: #ffffff !important;
+ background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%);
+}
+
+.btn.disabled {
+ background-image: none;
+ background-color: #767676;
+ box-shadow: none;
+ cursor: not-allowed;
+ color: #ffffff;
+ border-color: transparent;
+ outline: 0 !important;
+}
+
+.btn.disabled:hover {
+ color: #f2f2f2;
+ outline: none !important;
+}
+
+.btn.disabled:focus {
+ color: #f2f2f2;
+ outline: none !important;
+}
+
+.btn-medium {
+ padding: 12px 19px 11px 18px;
+ font-size: 1.7rem;
+}
+
+.btn-run {
+ padding: 12px 19px 11px 18px;
+ font-size: 15px;
+}
+
+.btn-small {
+ font-size: 1.5rem;
+ border-radius: 8px;
+ margin-left: 600px;
+ font-size: 15px;
+}
+
+.btn-auto-upload {
+ font-size: 15px;
+}
+
+.div-auto-upload {
+ display: contents;
+}
+
+.btn-fullwidth {
+ width: 100%;
+}
+
+button .btn-fill {
+ background-clip: padding-box;
+ border: 0;
+ border-radius: 4px;
+ bottom: 0;
+ display: block;
+ height: auto;
+ left: 0;
+ margin: 5px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: auto;
+}
+
+button .btn-fill[style*="#fff"] {
+ border: 1px solid #d2d2d2;
+}
+
+
+.btn-group[data-select-color="orange"] > .btn.active {
+ border-color: #ea7400;
+}
+
+.btn-group[data-select-color="blue"] > .btn.active {
+ border-color: #0568ae;
+}
+
+.btn-group[data-select-color="green"] > .btn.active {
+ border-color: #007a3e;
+}
+
+.btn-spinbutton-toggle.btn-group {
+ display: block !important;
+ height: 40px !important;
+ margin-top: 5px;
+ max-width: 138px;
+ min-width: 138px;
+ white-space: nowrap;
+}
+
+.btn-spinbutton-toggle .btn {
+ border-radius: 6px;
+ font-weight: normal;
+ -ms-flex: unset;
+ flex: unset;
+ height: 40px;
+ letter-spacing: normal;
+ min-width: auto;
+ padding: 3px 0 0;
+ text-align: center;
+ min-width: 46px;
+ width: 46px;
+}
+
+.btn-spinbutton-toggle .btn[data-max-value] {
+ border-bottom: 1px solid #d2d2d2;
+ border-top: 1px solid #d2d2d2;
+ box-shadow: 0 3px 2px -2px rgba(0, 0, 0, 0.08) inset;
+ background-color: #fff;
+ cursor: text;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-size: 2rem;
+ font-weight: normal;
+ padding: 4px 0 0;
+ text-align: center;
+ min-width: 46px !important;
+ width: 46px;
+}
+
+.btn-spinbutton-toggle .btn[data-max-value]:focus {
+ border-color: #0568ae;
+ outline: none;
+}
+
+.btn-spinbutton-toggle .btn[data-max-value]:focus + .btn {
+ border-left: 1px solid #0568ae;
+ transition: border 0.3s linear 0s;
+}
+
+.btn-spinbutton-toggle .icon-primary-subtractminimize {
+ font-size: 30px !important;
+ color: #0568ae !important;
+}
+
+.btn-spinbutton-toggle .icon-primary-add-maximize {
+ font-size: 30px !important;
+ color: #0568ae !important;
+}
+
+.btn-spinbutton-toggle .btn[disabled].icon-primary-subtractminimize {
+ background-color: #d2d2d2;
+ color: #767676 !important;
+}
+
+.btn-spinbutton-toggle .btn[disabled].icon-primary-add-maximize {
+ background-color: #d2d2d2;
+ color: #767676 !important;
+}
+
+.btn-spinbutton-toggle input.btn[disabled] {
+ background-color: #d2d2d2;
+ color: #5a5a5a;
+ cursor: not-allowed;
+}
+
+.btn-group.btn-spinbutton-toggle .btn[disabled] + .btn[disabled] {
+ border-left: 1px solid #f0f0f0 !important;
+}
+
+.btn-group.btn-spinbutton-toggle .btn[data-max-value]:focus + .btn:not(:first-child) {
+ border-left: 1px solid #0568ae !important;
+}
+
+@media (max-width: 480px) {
+ .btn-group:not([data-select-color]) > .btn {
+ font-size: 1.3rem;
+ min-width: auto;
+ }
+}
+
+button.close {
+ border: 0;
+ appearance: none;
+}
+
+.corner-button {
+ box-shadow: 0 -50px 0 0 #f2f2f2 inset;
+ height: 69px;
+ /*overflow: hidden;*/
+ position: absolute;
+ right: -35px;
+ top: -35px;
+ transform: rotate(45deg);
+ width: 69px;
+}
+
+
+.field-group input + .reset-field {
+ background: none;
+ height: 36px;
+ width: 45px;
+ display: none;
+ padding: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ box-shadow: none;
+ border: none;
+ content: " ";
+}
+
+.field-group input[type="search"] + .reset-field,
+.field-group input[type="search"] + .btn-search + .reset-field,
+.tooltip-onclick input + .reset-field,
+.tooltip-onclick input + .icon-primary-tooltip + .reset-field,
+.tooltip-onclick textarea + .reset-field,
+.tooltip-onclick textarea + .icon-primary-tooltip + .reset-field {
+ right: 45px;
+}
+
+.field-group input[type="search"] + .reset-field:after,
+.field-group input[type="search"] + .btn-search + .reset-field:after,
+input:-ms-clear {
+ display: none;
+}
+
+input[type]::-webkit-inner-spin-button,
+input[type]::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+}
+
+input[type] {
+ -moz-appearance: textfield;
+}
+
+form {
+ margin: 0;
+}
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+label,
+legend {
+ display: inline-block;
+ /* font-size: 1.4rem; */
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+}
+
+legend {
+ display: block;
+}
+
+.error-msg {
+ display: none;
+}
+
+select,
+textarea,
+input {
+ border-radius: 6px;
+ color: #5a5a5a;
+ display: inline-block;
+ font-size: 1.6rem;
+ margin: 0px;
+ padding: 0 15px 0 15px;
+ vertical-align: middle;
+ line-height: normal;
+}
+
+select::-webkit-input-placeholder,
+textarea::-webkit-input-placeholder,
+input::-webkit-input-placeholder {
+ color: #5a5a5a;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+ font-style: normal;
+ opacity: 1;
+}
+
+select:-moz-placeholder,
+textarea:-moz-placeholder,
+input:-moz-placeholder {
+ color: #5a5a5a;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+ font-style: normal;
+ opacity: 1;
+}
+
+select::-moz-placeholder,
+textarea::-moz-placeholder,
+input::-moz-placeholder {
+ color: #5a5a5a;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+ font-style: normal;
+ opacity: 1;
+}
+
+select:-ms-input-placeholder,
+textarea:-ms-input-placeholder,
+input:-ms-input-placeholder {
+ color: #5a5a5a;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+ transition: none;
+ opacity: 1;
+}
+
+select:placeholder,
+textarea:placeholder,
+input:placeholder {
+ color: #5a5a5a;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+ font-style: normal;
+ opacity: 1;
+}
+
+select:last-child,
+textarea:last-child,
+input:last-child {
+ margin-right: 0;
+}
+
+input:not([type="button"]) {
+ height: 36px;
+}
+
+input.input-emphasized {
+ font-size: 1.8rem;
+ height: 48px;
+ padding: 13px 20px 13px;
+}
+
+input[type="search"]:focus {
+ padding-right: 88px;
+}
+
+input[type="search"] {
+ padding-right: 40px;
+ -webkit-appearance: none !important;
+}
+
+input[type="search"].input-emphasized {
+ padding-right: 45px;
+}
+
+.btn-search[class*="btn"] {
+ background-color: transparent;
+ background-position: 50% 50%;
+ background-size: 20px;
+ background-repeat: no-repeat;
+ border: none;
+ height: 100%;
+ margin-left: 0;
+ margin-top: 0;
+ min-width: 45px !important;
+ outline-offset: 0;
+ padding: 0 !important;
+ position: absolute;
+ right: 0;
+ top: 0;
+ border-radius: 0 5px 5px 0;
+ min-width: 44px;
+ width: 44px;
+}
+
+.input-emphasized + .btn-search[class*="btn"],
+.input-emphasized + .reset-field + .btn-search[class*="btn"] {
+ background-size: 26px;
+ height: 46px;
+ top: 1px;
+ outline-offset: -3px;
+ margin-bottom: 0;
+ border-radius: 0 5px 5px 0;
+}
+
+input[type="search"].input-emphasized + .reset-field {
+ right: 45px !important;
+}
+
+
+input[data-provide="datepicker"],
+[data-provide="datepicker"]:-moz-placeholder,
+[data-provide="datepicker"]:-ms-input-placeholder,
+[data-provide="datepicker"]:-webkit-input-placeholder {
+ color: #0568ae !important;
+ opacity: 1;
+ filter: alpha(opacity=100);
+}
+
+input[disabled],
+input[readonly],
+select[disabled],
+select[readonly],
+textarea[disabled],
+textarea[readonly],
+i.icon-primary-calendar.disabled,
+span.icon-primary-calendar.readonly {
+ cursor: not-allowed;
+ background-color: #f2f2f2;
+ box-shadow: none;
+}
+
+i.icon-primary-calendar.disabled input,
+span.icon-primary-calendar.readonly input {
+ color: #959595 !important;
+}
+
+textarea {
+ display: block;
+ width: 800px;
+
+ padding: 15px;
+}
+
+textarea.small {
+ line-height: 20px;
+}
+
+textarea + .reset-field {
+ display: none;
+}
+
+textarea::-webkit-input-placeholder {
+ line-height: .99;
+}
+
+textarea:-moz-placeholder {
+ line-height: .99;
+}
+
+textarea::-moz-placeholder {
+ line-height: .99;
+}
+
+textarea:-ms-input-placeholder {
+ line-height: .99;
+}
+
+textarea:placeholder {
+ line-height: .99;
+}
+
+textarea,
+input {
+ background-color: #ffffff;
+ border: 1px solid #d2d2d2;
+ -webkit-appearance: none;
+ box-shadow: 2px 3px 2px -2px rgba(0, 0, 0, 0.08) inset;
+ transition: border .3s linear 0s;
+ font-family: "Omnes-ECOMP-W02", Arial;
+}
+
+textarea:focus,
+input:focus {
+ outline: 0;
+ border-color: #0568ae;
+}
+
+.input-append {
+ display: table;
+}
+
+.input-append > div {
+ display: table-cell;
+ width: 1%;
+}
+
+.input-append > .field-group {
+ width: 100%;
+}
+
+.row .field-group input[class*="span"] {
+ float: none;
+}
+
+.field-group {
+ position: relative;
+ display: inline-block;
+}
+
+label + .field-group,
+label + .input-append,
+label + .row,
+label + .row-nowrap,
+label + .form-row {
+ margin-top: 5px;
+}
+
+.field-group {
+ position: relative;
+ display: block;
+}
+
+.field-group input:not([type="button"])[disabled] {
+ padding-right: 15px;
+}
+
+input:invalid,
+textarea:invalid,
+select:invalid {
+ outline: none !important;
+}
+
+.form-row {
+ margin-top: 20px;
+}
+
+.form-row.nomar {
+ margin: 0;
+}
+
+.row-nowrap.no-flex.form-row > label + br {
+ margin-bottom: 5px;
+}
+
+span.form-row {
+ display: inline-block;
+}
+
+legend + .form-row {
+ margin-top: 20px;
+}
+
+.tooltip-onclick input {
+ padding-right: 45px;
+}
+
+.ds2_touchevents .tooltip-onclick input:focus {
+ padding-right: 95px;
+}
+
+.radio {
+ position: relative;
+ min-height: 24px;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-size: 1.6rem;
+ margin-bottom: 5px;
+}
+
+.radio input {
+ -webkit-tap-highlight-color: transparent;
+ height: 10px;
+ margin: 6px;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ left: 1px;
+ top: 1px;
+ width: 10px;
+}
+
+.radio input:focus + .skin {
+ border-color: #0568ae;
+}
+
+.radio input:focus + .skin:before {
+ content: "";
+ height: 34px;
+ left: -6px;
+ top: -6px;
+ outline: 1px dotted #000000;
+ position: absolute;
+ width: 34px;
+}
+
+.radio input + .skin {
+ border-radius: 100%;
+}
+
+.radio input:checked + .skin:after {
+ background-color: #0568ae;
+ border-radius: 100%;
+ border: 3px solid #FFFFFF;
+ content: "";
+ display: block;
+ height: 16px;
+ position: absolute;
+ width: 16px;
+}
+
+.radio input:disabled + .skin {
+ cursor: not-allowed;
+ background-color: #d2d2d2;
+ border-color: #d2d2d2;
+ color: #666666;
+}
+
+.radio input:disabled + .skin + span {
+ cursor: not-allowed;
+ color: #666666;
+}
+
+.radio input:disabled:checked + .skin:after {
+ background-color: #666666;
+}
+
+.radio input:invalid + .skin {
+ border: solid 1px #cf2a2a;
+}
+
+.radio .skin {
+ background-color: #FFFFFF;
+ border: 1px solid #d2d2d2;
+ border-radius: 3px;
+ display: inline-block;
+ height: 24px;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 24px;
+}
+
+.radio span {
+ display: inline-block;
+ margin-left: 34px;
+ margin-top: 0;
+ position: relative;
+ top: 3px;
+}
+
+.radio label {
+ font-size: 1.6rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+}
+
+.radio.inline {
+ display: inline-block;
+ margin-bottom: 10px;
+ vertical-align: middle;
+ margin-right: 10px;
+}
+
+.radio.inline:last-child {
+ margin-right: 0;
+}
+
+.radio-box {
+ border: 1px solid #d2d2d2;
+ border-radius: 8px;
+}
+
+.radio-box > [role="radio"] label {
+ padding: 15px 15px 20px 15px;
+ display: block;
+ width: 100%;
+}
+
+.radio-box > [role="radio"] label .skin + span {
+ top: 2px;
+}
+
+.radio-box > [role="radio"] + div {
+ padding: 0 15px 15px 47px;
+}
+
+.radio-box > [aria-checked="false"] label > input {
+ top: 15px;
+ left: 15px;
+}
+
+.radio-box > [aria-checked="false"] label .skin {
+ top: 15px;
+ left: 15px;
+}
+
+.radio-box > [aria-checked="true"] label > input {
+ top: 13px;
+ left: 13px;
+}
+
+.radio-box > [aria-checked="true"] label .skin {
+ top: 13px;
+ left: 13px;
+}
+
+.radio-box.active {
+ border: 3px solid #0568ae;
+}
+
+.radio-box.active > [role="radio"] label {
+ padding: 13px 14px 19px 13px;
+}
+
+.checkbox {
+ position: relative;
+ min-height: 24px;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ font-size: 1rem;
+}
+
+.checkbox input {
+ -webkit-tap-highlight-color: transparent;
+ height: 20px;
+ margin-left: 20px;
+ opacity: 0;
+ outline: none;
+ position: absolute;
+ left: 1px;
+ top: 1px;
+ width: 10px;
+}
+
+.checkbox input:focus + .skin {
+ border-color: #0568ae;
+}
+
+.checkbox input:focus + .skin:before {
+ content: "";
+ height: 34px;
+ left: -6px;
+ top: -6px;
+ outline: 1px dotted #000000;
+ position: absolute;
+ width: 34px;
+}
+
+.checkbox input:checked:not(:disabled) + .skin {
+ background-color: #0568ae;
+ border-color: #0568ae;
+}
+
+.checkbox input:checked:disabled + .skin:after {
+ color: #5A5A5A;
+}
+
+.checkbox input:checked + .skin:after {
+ height: 20px;
+ width: 10px;
+ background-color: transparent;
+ font-size: 23.4px;
+ color: #FFFFFF;
+ line-height: 21px;
+}
+
+.checkbox input:disabled + .skin {
+ cursor: not-allowed;
+ background-color: #d2d2d2;
+ border-color: #d2d2d2;
+ color: #666666;
+}
+
+.checkbox input:disabled + .skin + span {
+ cursor: not-allowed;
+ color: #666666;
+}
+
+.checkbox input:invalid + .skin {
+ border: solid 1px #cf2a2a;
+}
+
+.checkbox input:indeterminate + .skin:after {
+ background-color: transparent;
+ font-size: 25px;
+ color: #0574ac;
+ content: "\e920";
+}
+
+.checkbox .skin {
+ background-color: #fff;
+ border: 1px solid #d2d2d2;
+ border-radius: 3px;
+ display: inline-block;
+ height: 24px;
+ width: 24px;
+ position: absolute;
+ left: 0;
+ top: 0;
+}
+
+.checkbox span {
+ display: inline-block;
+ margin-left: 34px;
+ margin-top: 0;
+ position: relative;
+ top: 3px;
+}
+
+.checkbox label {
+ font-size: 1.6rem;
+ font-family: "Omnes-ECOMP-W02", Arial;
+}
+
+.checkbox input {
+ z-index: 9999;
+}
+
+.checkbox input.indeterminate + .skin:after {
+ font-size: 22px;
+ color: #0568ae;
+}
+
+.breadcrumb {
+ padding: 10px 15px;
+ height: 40px;
+ list-style: none;
+ border-bottom: 1px solid #d2d2d2;
+ font-size: 1.2rem;
+ width: 100%;
+ z-index: 1000;
+}
+
+.breadcrumb > li {
+ position: relative;
+ display: inline-block;
+ margin-right: 15px;
+}
+
+.breadcrumb > li:after {
+ font-size: 8px;
+ margin-right: 0;
+ right: -8px;
+ color: #333333;
+}
+
+.breadcrumb > li:last-child {
+ color: #333333;
+}
+
+.breadcrumb > li:last-child:after {
+ content: "";
+}
+
+.breadcrumb li > * {
+ float: none !important;
+ margin: 0;
+}
+
+.breadcrumb {
+ padding: 10px 15px !important;
+}
+
+/* ARROW */
+/* spanish */
+.datepicker {
+ background-color: #FFFFFF;
+ padding: 0;
+ border-radius: 5px;
+ direction: ltr;
+}
+
+.datepicker > div {
+ display: none;
+}
+
+.datepicker table {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ margin: 0 0 0 0;
+}
+
+.datepicker td {
+ text-align: center;
+ display: block;
+ width: 30px;
+ height: 30px;
+ border: none;
+}
+
+.datepicker td span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ border-radius: 4px;
+}
+
+.datepicker td span:hover {
+ background: #eeeeee;
+}
+
+.datepicker td span.disabled {
+ background: none;
+ color: #5A5A5A;
+ cursor: default;
+}
+
+.datepicker td span.disabled:hover {
+ background: none;
+ color: #5A5A5A;
+ cursor: default;
+}
+
+.datepicker td span.active {
+ color: #FFFFFF;
+ background-color: #0568ae;
+ border-color: #357ebd;
+}
+
+.datepicker td span.active:hover {
+ color: #FFFFFF;
+ background-color: #0568ae;
+ border-color: #357ebd;
+}
+
+.datepicker td span.active.disabled {
+ color: #FFFFFF;
+ background-color: #0568ae;
+ border-color: #357ebd;
+}
+
+.datepicker th {
+ text-align: center;
+ display: block;
+ width: 30px;
+ height: 30px;
+ border: none;
+}
+
+.datepicker tbody:focus {
+ outline: none;
+}
+
+.datepicker td.day {
+ background-color: transparent;
+ color: #0568ae;
+ cursor: pointer;
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ font-size: 16px;
+ height: 34px;
+ line-height: 30rem;
+ margin: -2px -1px 0 0;
+ overflow: hidden;
+ text-align: center;
+ width: 42px;
+}
+
+.datepicker:focus {
+ outline: 1px dotted #191919;
+ outline-offset: -2px;
+}
+
+.datepicker th[tabindex]:focus {
+ outline-offset: -15px;
+}
+
+.datepicker td.day.focused {
+ background: #ededed;
+ cursor: pointer;
+}
+
+.datepicker td.day.focused.active {
+ background-color: #ededed;
+ color: #0568ae;
+}
+
+.datepicker td.disabled {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ color: #5A5A5A;
+ cursor: default;
+}
+
+.datepicker td.disabled:hover {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ color: #5A5A5A;
+ cursor: default;
+}
+
+.datepicker td.disabled:hover .show-date {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ color: #5A5A5A;
+}
+
+.datepicker td.disabled .show-date {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ color: #5A5A5A;
+}
+
+.datepicker td.today {
+ color: #FFFFFF;
+ background-color: #0568ae;
+}
+
+.datepicker td.today:hover {
+ color: #FFFFFF;
+ background-color: #0568ae;
+ color: #FFFFFF;
+ background-color: #0568ae;
+}
+
+.datepicker td.today:active {
+ color: #FFFFFF;
+ background-color: #0568ae;
+}
+
+.datepicker td.today:focus {
+ color: #FFFFFF;
+ background-color: #0568ae;
+}
+
+.datepicker td.today.disabled {
+ color: #FFFFFF;
+ background-color: #0568ae;
+}
+
+.datepicker td.today.active {
+ color: #FFFFFF;
+ background-color: #0568ae;
+}
+
+.datepicker td.today.active:hover {
+ color: #FFFFFF;
+}
+
+.datepicker td.selected {
+ color: #FFFFFF;
+ background-color: #95959500;
+}
+
+.datepicker td.selected:hover {
+ color: #FFFFFF;
+ background-color: #95959500;
+}
+
+.datepicker td.selected.disabled {
+ color: #FFFFFF;
+ background-color: #95959500;
+}
+
+.datepicker td.active:not(.new) {
+ color: #FFFFFF;
+ border-color: #357ebd;
+}
+
+.datepicker td.active:not(.new) .show-date {
+ color: #0568ae;
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+}
+
+.datepicker td.active:hover:not(.new) {
+ color: #FFFFFF;
+ border-color: #357ebd;
+}
+
+.datepicker td.active:hover:not(.new) .show-date {
+ color: #0568ae;
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+}
+
+.datepicker .start-date .show-date {
+ background-color: #0568ae;
+ color: #FFFFFF !important;
+ border-radius: 5px 0 0 5px;
+ z-index: 1;
+}
+
+.datepicker .start-date .show-date:before {
+ background-color: #0568ae;
+ content: "";
+ display: block;
+ height: 26px;
+ left: 20px;
+ position: absolute;
+ width: 100%;
+ z-index: -1;
+}
+
+.datepicker .between-date .show-date {
+ background-color: #0568ae;
+ color: #FFFFFF !important;
+}
+
+.datepicker .between-date .show-date:before {
+ background-color: #0568ae;
+ content: "";
+ display: block;
+ height: 26px;
+ left: 0;
+ position: absolute;
+ width: 100%;
+ z-index: -1;
+}
+
+.datepicker .between-date:first-child .show-date:before {
+ background-color: #FFFFFF;
+ content: "";
+ height: 26px;
+ position: absolute;
+ left: 0;
+ width: 8px;
+}
+
+.datepicker .end-date .show-date {
+ background-color: #0568ae;
+ color: #FFFFFF !important;
+ border-radius: 0 5px 5px 0;
+}
+
+.datepicker .end-date .show-date:before {
+ background-color: #0568ae;
+ content: "";
+ display: block;
+ height: 26px;
+ left: -20px;
+ position: absolute;
+ width: 100%;
+ z-index: -1;
+}
+
+.datepicker .end-date:first-child .show-date:after {
+ background-color: #FFFFFF;
+ content: "";
+ height: 26px;
+ position: absolute;
+ left: 0;
+ width: 8px;
+}
+
+.datepicker .end-date:first-child .show-date::before {
+ background-color: #FFFFFF;
+}
+
+.datepicker tr td.start-date:last-child .show-date:after {
+ background-color: #FFFFFF;
+ content: "";
+ height: 26px;
+ position: absolute;
+ right: 0;
+ width: 8px;
+}
+
+.datepicker tr td.start-date:last-child:focus .show-date:after {
+ height: 30px;
+ width: 30px;
+ background-color: transparent;
+}
+
+.datepicker tr td.start-date:first-child:focus .show-date:after {
+ height: 30px;
+ width: 30px;
+ background-color: transparent;
+}
+
+.datepicker tr td.between-date:last-child .show-date:after {
+ background-color: #FFFFFF;
+ content: "";
+ height: 26px;
+ position: absolute;
+ right: 0;
+ width: 8px;
+}
+
+.datepicker tr td.between-date:last-child:focus .show-date:after {
+ height: 30px;
+ width: 30px;
+ background-color: transparent;
+}
+
+.datepicker tr td.between-date:first-child:focus .show-date:after {
+ height: 30px;
+ width: 30px;
+ background-color: transparent;
+}
+
+.datepicker tr td.end-date:last-child:focus .show-date:after {
+ height: 30px;
+ width: 30px;
+ background-color: transparent;
+}
+
+.datepicker tr td.end-date:first-child:focus .show-date:after {
+ height: 30px;
+ width: 30px;
+ background-color: transparent;
+}
+
+.datepicker th.datepicker-switch {
+ width: 198px;
+ font-size: 20px;
+ font-weight: normal;
+ cursor: default !important;
+}
+
+.datepicker thead tr:first-child th {
+ cursor: pointer;
+ height: 60px;
+ line-height: 60px;
+}
+
+.datepicker thead tr:first-child th.cw {
+ cursor: default;
+ background-color: transparent;
+}
+
+.datepicker tfoot tr th {
+ cursor: pointer;
+ height: 60px;
+ line-height: 60px;
+ height: auto;
+ line-height: normal;
+}
+
+.datepicker tfoot tr th li {
+ margin-bottom: 5px;
+}
+
+.datepicker .prev {
+ color: transparent;
+ font-size: 0;
+ margin: 0 -1px -1px 0;
+ width: 46px;
+}
+
+.datepicker .prev i {
+ color: #0568ae;
+ position: absolute;
+ font-size: 27px;
+ margin: 0;
+ top: 15px;
+ left: 8px;
+}
+
+.datepicker .next {
+ color: transparent;
+ font-size: 0;
+ margin: 0 -1px -1px 0;
+ width: 46px;
+}
+
+.datepicker .next i {
+ color: #0568ae;
+ position: absolute;
+ font-size: 27px;
+ margin: 0;
+ top: 15px;
+ right: 8px;
+}
+
+.datepicker .cw {
+ font-size: 5px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+}
+
+.datepicker .due-date .show-date {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ background-color: #cf2a2a;
+ border-radius: 5px;
+ color: #FFFFFF !important;
+}
+
+.datepicker .day.active .show-date:after {
+ border: 2px solid #0568ae;
+ border-radius: 7px;
+ content: "";
+ display: block;
+ height: 30px;
+ left: 4px;
+ position: absolute;
+ top: 0;
+ width: 30px;
+}
+
+.datepicker .day:focus .show-date:after {
+ border: 2px solid #0568ae;
+ border-radius: 7px;
+ content: "";
+ display: block;
+ height: 30px;
+ left: 4px;
+ position: absolute;
+ top: 0;
+ width: 30px;
+ height: 30px;
+ left: 4px;
+ top: 0;
+ width: 30px;
+}
+
+.datepicker .due-date.disabled .show-date:after {
+ border: 2px solid #0568ae;
+ border-radius: 7px;
+ content: "";
+ display: block;
+ height: 30px;
+ left: 4px;
+ position: absolute;
+ top: 0;
+ width: 30px;
+}
+
+.datepicker .day.due-date:focus .show-date:after {
+ height: 30px;
+ left: 4px;
+ top: 0;
+ width: 30px;
+}
+
+.datepicker .due-date.old:after {
+ visibility: hidden;
+}
+
+.datepicker .due-date.new:after {
+ visibility: hidden;
+}
+
+.datepicker .due-date.active:after {
+ border-color: #FFFFFF;
+}
+
+.datepicker .due-date.active.focused {
+ color: #0568ae !important;
+}
+
+.datepicker .due-date.active.focused:after {
+ border-color: #cf2a2a !important;
+}
+
+.datepicker .dow {
+ height: 24px;
+ width: 42px;
+ font-weight: normal;
+ position: relative;
+ overflow: hidden;
+ color: transparent;
+ letter-spacing: -6px;
+ margin: 0 -1px -1px 0;
+}
+
+.datepicker .dow span[aria-hidden="true"] {
+ bottom: 0;
+ color: #5A5A5A;
+ display: block;
+ left: 1px;
+ letter-spacing: 0;
+ line-height: .9;
+ margin: 0 auto;
+ padding: 0;
+ position: relative;
+ width: 22px;
+}
+
+.datepicker .calendar-legend {
+ margin-top: 3px;
+ margin-bottom: 20px;
+}
+
+.datepicker .calendar-legend li {
+ font-size: 1.4rem;
+ font-weight: normal;
+ margin-bottom: 5px;
+ padding-left: 10px;
+ padding-top: 5px;
+ position: relative;
+}
+
+.datepicker i.legend-due-date {
+ background-color: #cf2a2a;
+ border-radius: 5px;
+ height: 18px;
+ width: 18px;
+ margin-right: 8px;
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.datepicker i.legend-selected-date {
+ background-color: #FFFFFF;
+ border: 2px solid #0568ae;
+ border-radius: 5px;
+ height: 18px;
+ width: 18px;
+ margin-right: 8px;
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.datepicker i.legend-selectedisdue {
+ background-color: #FFFFFF;
+ border: 2px solid #0568ae;
+ border-radius: 5px;
+ display: inline-block;
+ height: 18px;
+ margin-right: 8px;
+ position: relative;
+ vertical-align: middle;
+ width: 18px;
+}
+
+.datepicker i.legend-selectedisdue:after {
+ background-color: #cf2a2a;
+ border-radius: 3px;
+ content: "";
+ display: block;
+ height: 10px;
+ left: 2px;
+ position: absolute;
+ top: 2px;
+ width: 10px;
+}
+
+.datepicker .text-left {
+ width: 100%;
+}
+
+.datepicker .active.old {
+ background-color: #ededed !important;
+ color: #ededed !important;
+}
+
+.datepicker-inline {
+ width: 220px;
+}
+
+.datepicker.datepicker-rtl {
+ direction: rtl;
+}
+
+.datepicker.datepicker-rtl td span {
+ float: right;
+}
+
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+}
+
+.datepicker-dropdown:before {
+ content: " ";
+ display: inline-block;
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-bottom: 10px solid #d2d2d2;
+ border-top: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+}
+
+.datepicker-dropdown:after {
+ content: " ";
+ display: inline-block;
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-bottom: 10px solid #fff;
+ border-top: 0;
+ position: absolute;
+}
+
+.datepicker-dropdown.datepicker-orient-left:before {
+ left: 16px;
+}
+
+.datepicker-dropdown.datepicker-orient-left:after {
+ left: 16px;
+}
+
+.datepicker-dropdown.datepicker-orient-right:before {
+ right: 16px;
+}
+
+.datepicker-dropdown.datepicker-orient-right:after {
+ right: 16px;
+}
+
+.datepicker-dropdown.datepicker-orient-top:before {
+ top: -10px;
+}
+
+.datepicker-dropdown.datepicker-orient-top:after {
+ top: -9px;
+}
+
+.datepicker-dropdown.datepicker-orient-bottom:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid #959595;
+}
+
+.datepicker-dropdown.datepicker-orient-bottom:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid #fff;
+}
+
+.datepicker.days div.datepicker-days {
+ display: block;
+}
+
+.datepicker.months div.datepicker-months {
+ display: block;
+}
+
+.datepicker.years div.datepicker-years {
+ display: block;
+}
+
+.show-date {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ color: #0568ae;
+ height: 26px;
+ line-height: 26px;
+ margin: 4px auto 0;
+ width: 26px;
+}
+
+.input-group.date .input-group-addon i {
+ cursor: pointer;
+ width: 16px;
+ height: 16px;
+}
+
+.datepicker.dropdown-menu {
+ box-shadow: 0 10px 15px -10px rgba(0, 0, 0, 0.7);
+ position: absolute;
+ top: 100%;
+ left: 0;
+ float: left;
+ display: none;
+ margin-top: 13px;
+ width: 290px;
+ list-style: none;
+ background-color: #FFFFFF;
+ border: 1px solid #d2d2d2;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 5px;
+ color: #333333;
+ font-size: 13px;
+ line-height: 1.428571429;
+ z-index: 1050;
+}
+
+.datepicker.dropdown-menu th {
+ display: block;
+ float: left;
+ padding: 0;
+ position: relative;
+}
+
+.datepicker.dropdown-menu td {
+ display: block;
+ float: left;
+ padding: 0;
+ position: relative;
+}
+
+.s {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: -62px 0;
+}
+
+.m {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: -5px 0;
+}
+
+.t {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: -19px 0;
+}
+
+.w {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: -34px 0;
+}
+
+.f {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: -49px 0;
+}
+
+.d {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: 0 0;
+}
+
+.l {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: 0 0;
+}
+
+.v {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: 0 0;
+}
+
+.j {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ background-repeat: no-repeat;
+ background-position: 0 0;
+}
+
+.datepicker {
+ background-color: #fff;
+ padding: 0;
+ border-radius: 5px;
+ direction: ltr;
+}
+
+.datepicker-inline {
+ width: 220px;
+}
+
+.datepicker.datepicker-rtl {
+ direction: rtl;
+}
+
+.datepicker.datepicker-rtl td span {
+ float: right;
+}
+
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+}
+
+/* ARROW */
+.datepicker-dropdown:before {
+ content: " ";
+ display: inline-block;
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-bottom: 10px solid #d2d2d2;
+ border-top: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+}
+
+.datepicker-dropdown:after {
+ content: " ";
+ display: inline-block;
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-bottom: 10px solid #fff;
+ border-top: 0;
+ position: absolute;
+}
+
+.datepicker-dropdown.datepicker-orient-left:before,
+.datepicker-dropdown.datepicker-orient-left:after {
+ left: 255px;
+}
+
+.datepicker-dropdown.datepicker-orient-right:before,
+.datepicker-dropdown.datepicker-orient-right:after {
+ right: 16px;
+}
+
+.datepicker-dropdown.datepicker-orient-top:before {
+ top: -10px;
+}
+
+.datepicker-dropdown.datepicker-orient-top:after {
+ top: -9px;
+}
+
+.datepicker-dropdown.datepicker-orient-bottom:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid #959595;
+}
+
+.datepicker-dropdown.datepicker-orient-bottom:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid #fff;
+}
+
+.datepicker > div {
+ display: none;
+}
+
+.datepicker.days div.datepicker-days {
+ display: block;
+}
+
+.datepicker.months div.datepicker-months {
+ display: block;
+}
+
+.datepicker.years div.datepicker-years {
+ display: block;
+}
+
+.datepicker table {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ margin: 0 0 0 0;
+}
+
+.datepicker td,
+.datepicker th {
+ text-align: center;
+ display: block;
+ width: 30px;
+ height: 30px;
+ border: none;
+}
+
+.datepicker tbody :focus {
+ outline: none;
+}
+
+.datepicker td.day {
+ background-color: transparent;
+ color: #0568ae;
+ cursor: pointer;
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ font-size: 16px;
+ height: 34px;
+ line-height: 30rem;
+ margin: -2px -1px 0 0;
+ overflow: hidden;
+ text-align: center;
+ width: 42px;
+}
+
+.datepicker :focus {
+ outline: 1px dotted #000;
+ outline-offset: -2px;
+}
+
+.datepicker td.day.focused {
+ background: #ededed;
+ cursor: pointer;
+}
+
+.datepicker td.day.focused.active {
+ background-color: #ededed;
+ color: #0568ae;
+}
+
+.datepicker td.disabled,
+.datepicker td.disabled:hover {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ color: #5a5a5a;
+ cursor: default;
+}
+
+.datepicker td.today,
+.datepicker td.today:hover,
+.datepicker td.today.disabled {
+ color: #fff;
+ background-color: #0568ae;
+}
+
+.datepicker td.today.active,
+.datepicker td.today:active,
+.datepicker td.today:hover,
+.datepicker td.today:focus {
+ color: #fff;
+ background-color: #0568ae;
+}
+
+.datepicker td.today.active:hover {
+ color: #fff;
+}
+
+.datepicker td.selected,
+.datepicker td.selected:hover,
+.datepicker td.selected.disabled {
+ color: #ffffff;
+ background-color: #959595;
+}
+
+.datepicker td.active:not(.new),
+.datepicker td.active:hover:not(.new) {
+ color: #ffffff;
+ border-color: #357ebd;
+}
+
+.show-date {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ color: #0568ae;
+ height: 26px;
+ line-height: 26px;
+ margin: 4px auto 0;
+ width: 26px;
+}
+
+.datepicker .start-date .show-date,
+.datepicker .between-date .show-date,
+.datepicker .end-date .show-date {
+ background-color: #0568ae;
+ color: #fff !important;
+}
+
+.datepicker .start-date .show-date {
+ border-radius: 5px 0 0 5px;
+ z-index: 1;
+}
+
+.datepicker .start-date .show-date:before {
+ background-color: #0568ae;
+ content: "";
+ display: block;
+ height: 26px;
+ left: 20px;
+ position: absolute;
+ width: 100%;
+ z-index: -1;
+}
+
+.datepicker .between-date .show-date:before {
+ background-color: #0568ae;
+ content: "";
+ display: block;
+ height: 26px;
+ left: 0;
+ position: absolute;
+ width: 100%;
+ z-index: -1;
+}
+
+.datepicker .end-date .show-date {
+ border-radius: 0 5px 5px 0;
+}
+
+.datepicker .end-date .show-date:before {
+ background-color: #0568ae;
+ content: "";
+ display: block;
+ height: 26px;
+ left: -20px;
+ position: absolute;
+ width: 100%;
+ z-index: -1;
+}
+
+.datepicker .between-date:first-child .show-date:before {
+ background-color: #fff;
+ content: "";
+ height: 26px;
+ position: absolute;
+ left: 0;
+ width: 8px;
+}
+
+.datepicker .end-date:first-child .show-date:after {
+ background-color: #fff;
+ content: "";
+ height: 26px;
+ position: absolute;
+ left: 0;
+ width: 8px;
+}
+
+.datepicker .end-date:first-child .show-date::before {
+ background-color: #fff;
+}
+
+.datepicker tr td.start-date:last-child .show-date:after,
+.datepicker tr td.between-date:last-child .show-date:after {
+ background-color: #fff;
+ content: "";
+ height: 26px;
+ position: absolute;
+ right: 0;
+ width: 8px;
+}
+
+.datepicker tr td.start-date:last-child:focus .show-date:after,
+.datepicker tr td.end-date:last-child:focus .show-date:after,
+.datepicker tr td.between-date:last-child:focus .show-date:after,
+.datepicker tr td.start-date:first-child:focus .show-date:after,
+.datepicker tr td.end-date:first-child:focus .show-date:after,
+.datepicker tr td.between-date:first-child:focus .show-date:after {
+ height: 30px;
+ width: 30px;
+ background-color: transparent;
+}
+
+.datepicker td.active:not(.new) .show-date,
+.datepicker td.active:hover:not(.new) .show-date {
+ color: #0568ae;
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+}
+
+.datepicker td.disabled .show-date,
+.datepicker td.disabled:hover .show-date {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ color: #5a5a5a;
+}
+
+.datepicker td span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ border-radius: 4px;
+}
+
+.datepicker td span:hover {
+ background: #eeeeee;
+}
+
+.datepicker td span.disabled,
+.datepicker td span.disabled:hover {
+ background: none;
+ color: #5a5a5a;
+ cursor: default;
+}
+
+.datepicker td span.active,
+.datepicker td span.active:hover,
+.datepicker td span.active.disabled {
+ color: #ffffff;
+ background-color: #0568ae;
+ border-color: #357ebd;
+}
+
+.datepicker th.datepicker-switch {
+ width: 198px;
+ font-size: 20px;
+ font-weight: normal;
+ cursor: default !important;
+}
+
+.datepicker thead tr:first-child th,
+.datepicker tfoot tr th {
+ cursor: pointer;
+ height: 60px;
+ line-height: 60px;
+}
+
+.datepicker tfoot tr th {
+ height: auto;
+ line-height: normal;
+}
+
+.datepicker tfoot tr th li {
+ margin-bottom: 5px;
+}
+
+.datepicker .prev,
+.datepicker .next {
+ color: transparent;
+ font-size: 0;
+ margin: 0 -1px -1px 0;
+ width: 46px;
+}
+
+.datepicker .prev i,
+.datepicker .next i {
+ color: #0568ae;
+ position: absolute;
+ font-size: 27px;
+ margin: 0;
+ top: 15px;
+}
+
+.datepicker .prev i {
+ left: 8px;
+}
+
+.datepicker .next i {
+ right: 8px;
+}
+
+.datepicker .cw {
+ font-size: 5px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+}
+
+.datepicker thead tr:first-child th.cw {
+ cursor: default;
+ background-color: transparent;
+}
+
+.input-group.date .input-group-addon i {
+ cursor: pointer;
+ width: 16px;
+ height: 16px;
+}
+
+.datepicker.dropdown-menu {
+ box-shadow: 0 10px 15px -10px rgba(0, 0, 0, 0.7);
+ position: absolute;
+ top: 100%;
+ left: 0;
+ float: left;
+ display: none;
+ margin-top: 13px;
+ width: 290px;
+ list-style: none;
+ background-color: #ffffff;
+ border: 1px solid #d2d2d2;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 5px;
+ color: #333333;
+ font-size: 13px;
+ line-height: 1.428571429;
+ z-index: 1050;
+}
+
+.datepicker.dropdown-menu th,
+.datepicker.dropdown-menu td {
+ display: block;
+ float: left;
+ padding: 0;
+ position: relative;
+}
+
+.datepicker .due-date .show-date {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ background-color: #cf2a2a;
+ border-radius: 5px;
+ color: #fff !important;
+}
+
+.datepicker .day.active .show-date:after,
+.datepicker .day:focus .show-date:after,
+.datepicker .due-date.disabled .show-date:after {
+ border: 2px solid #0568ae;
+ border-radius: 7px;
+ content: "";
+ display: block;
+ height: 30px;
+ left: 4px;
+ position: absolute;
+ top: 0;
+ width: 30px;
+}
+
+.datepicker .day:focus .show-date:after {
+ height: 30px;
+ left: 4px;
+ top: 0;
+ width: 30px;
+}
+
+.datepicker .day.due-date:focus .show-date:after {
+ height: 30px;
+ left: 4px;
+ top: 0;
+ width: 30px;
+}
+
+.datepicker .due-date.old:after,
+.datepicker .due-date.new:after {
+ visibility: hidden;
+}
+
+.datepicker .due-date.active:after {
+ border-color: #fff;
+}
+
+.datepicker .due-date.active.focused {
+ color: #0568ae !important;
+}
+
+.datepicker .due-date.active.focused:after {
+ border-color: #cf2a2a !important;
+}
+
+.datepicker .dow {
+ height: 24px;
+ width: 42px;
+ font-weight: normal;
+ position: relative;
+ overflow: hidden;
+ color: transparent;
+ letter-spacing: -6px;
+ margin: 0 -1px -1px 0;
+}
+
+.datepicker .dow span[aria-hidden="true"] {
+ bottom: 0;
+ color: #5a5a5a;
+ display: block;
+ left: 1px;
+ letter-spacing: 0;
+ line-height: .9;
+ margin: 0 auto;
+ padding: 0;
+ position: relative;
+ width: 22px;
+}
+
+.datepicker .calendar-legend {
+ margin-top: 3px;
+ margin-bottom: 20px;
+}
+
+.datepicker .calendar-legend li {
+ font-size: 1.4rem;
+ font-weight: normal;
+ margin-bottom: 5px;
+ padding-left: 10px;
+ padding-top: 5px;
+ position: relative;
+}
+
+.datepicker i.legend-due-date {
+ background-color: #cf2a2a;
+ border-radius: 5px;
+ height: 18px;
+ width: 18px;
+ margin-right: 8px;
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.datepicker i.legend-selected-date {
+ background-color: #fff;
+ border: 2px solid #0568ae;
+ border-radius: 5px;
+ height: 18px;
+ width: 18px;
+ margin-right: 8px;
+ vertical-align: middle;
+ display: inline-block;
+}
+
+.datepicker i.legend-selectedisdue {
+ background-color: #fff;
+ border: 2px solid #0568ae;
+ border-radius: 5px;
+ display: inline-block;
+ height: 18px;
+ margin-right: 8px;
+ position: relative;
+ vertical-align: middle;
+ width: 18px;
+}
+
+.datepicker i.legend-selectedisdue:after {
+ background-color: #cf2a2a;
+ border-radius: 3px;
+ content: "";
+ display: block;
+ height: 10px;
+ left: 2px;
+ position: absolute;
+ top: 2px;
+ width: 10px;
+}
+
+.datepicker .text-left {
+ width: 100%;
+}
+
+.datepicker .active.old {
+ background-color: #ededed !important;
+ color: #ededed !important;
+}
+
+.s,
+.m,
+.t,
+.w,
+.f,
+.d,
+.l,
+.v,
+.j {
+ display: block;
+ height: 20px;
+ width: 12px;
+ margin: 0 auto;
+ background-color: white;
+ background-repeat: no-repeat;
+}
+
+.s {
+ background-position: -62px 0;
+}
+
+.m {
+ background-position: -5px 0;
+}
+
+.t {
+ background-position: -19px 0;
+}
+
+.w {
+ background-position: -34px 0;
+}
+
+.f {
+ background-position: -49px 0;
+}
+
+/* spanish */
+.d {
+ background-position: 0 0;
+}
+
+.l {
+ background-position: 0 0;
+}
+
+.v {
+ background-position: 0 0;
+}
+
+.j {
+ background-position: 0 0;
+}
+
+.datepicker-container {
+ position: relative;
+}
+
+.btn-calendar-icon:focus .icon-primary-calendar {
+ outline: 1px dotted #191919;
+}
+
+.btn-calendar-icon:focus {
+ outline: none;
+}
+
+/* remove focus outline when dropdown is opened */
+/*resolve blue focus outline over dropdown with error*/
+select {
+ margin-right: -1;
+
+ height: 36px;
+ line-height: 25px;
+
+ background-color: #95959521;
+}
+
+.selectWrap.disabled .icon-primary-down {
+ color: #d6d6d6;
+}
+
+.selectWrap.disabled input.awd-select {
+ z-index: 0;
+ padding: 10px 45px 10px 15px;
+ text-indent: 0;
+}
+
+.selectWrap.disabled button.awd-select {
+ z-index: 0;
+ text-indent: 15px;
+}
+
+.selectWrap.disabled:after {
+ color: #5A5A5A;
+ cursor: not-allowed;
+}
+
+input.awd-select {
+ background-color: transparent;
+ border: 1px solid #d2d2d2;
+ border-radius: 6px;
+ box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15);
+ color: #333333;
+ display: block;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ /*font-size: 1.6rem;*/
+ height: 36px;
+ line-height: 0;
+ margin-bottom: 0;
+ position: relative;
+ text-align: left;
+ top: 0;
+ width: 100%;
+ z-index: 10;
+ padding: 12px 45px 8px 15px;
+ user-select: none;
+}
+
+input.awd-select:focus {
+ border-color: #0568ae !important;
+ text-overflow: ellipsis;
+ padding-right: 45px;
+}
+
+button.awd-select {
+ background-color: transparent;
+ border: 1px solid #d2d2d2;
+ border-radius: 6px;
+ box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15);
+ color: #333333;
+ display: block;
+ font-family: "Omnes-ECOMP-W02", Arial;
+ /*font-size: 1.6rem;*/
+ height: 36px;
+ line-height: 36px;
+ margin-bottom: 0;
+ position: relative;
+ text-align: left;
+ top: 0;
+ width: 100%;
+ z-index: 10;
+}
+
+button.awd-select:not(.large) {
+ text-indent: 15px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: clip;
+ text-overflow: ellipsis;
+}
+
+button.awd-select img {
+ height: 26px;
+ margin-right: 7px;
+ margin-top: -10px;
+ position: relative;
+ top: 2px;
+ vertical-align: text-bottom;
+}
+
+button.awd-select:focus {
+ border-color: #0568ae !important;
+}
+
+button.awd-select i {
+ font-size: 23px;
+ position: absolute;
+ right: 33px;
+ top: 5px;
+ z-index: 1000;
+}
+
+button.awd-select.large {
+ align-items: center;
+ display: flex;
+ height: 60px;
+ line-height: 20px;
+ overflow: hidden;
+ padding-left: 70px;
+ vertical-align: middle;
+}
+
+button.awd-select.large img {
+ height: 40px;
+ left: 20px;
+ position: absolute;
+ top: 20px;
+ width: 40px;
+}
+
+.selectWrap.large {
+ height: 60px;
+}
+
+.selectWrap.large .awd-select-list-item {
+ align-items: center;
+ display: flex;
+ height: 60px;
+ line-height: 20px;
+ overflow: hidden;
+ padding-left: 70px;
+ vertical-align: middle;
+}
+
+.selectWrap.large .awd-select-list-item img {
+ height: 40px;
+ left: 20px;
+ position: absolute;
+ top: 20px;
+ width: 40px;
+ top: 10px;
+}
+
+.inputWrap {
+ border-radius: 6px;
+ position: relative;
+ height: 36px;
+ line-height: 44px;
+ display: block;
+ margin: 0;
+}
+
+button.awd-select.active {
+ border-radius: 6px 6px 0 0;
+}
+
+button.awd-select.active:focus {
+ border-color: #d2d2d2 !important;
+}
+
+input.awd-select.active {
+ border-radius: 6px 6px 0 0;
+}
+
+input.awd-select.active:focus {
+ border-color: #d2d2d2 !important;
+}
+
+.selectWrapper {
+ position: relative;
+}
+
+span.selectWrap input[readonly]:focus {
+ color: transparent;
+ text-shadow: 0 0 0 #000;
+}
+
+.isIE.ds2-no-colors .awd-select:focus {
+ outline: 1px dashed transparent;
+}
+
+.awd-select-list {
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15);
+ border-radius: 0 0 6px 6px;
+ position: absolute;
+ border: 1px solid #d2d2d2;
+ border-top: 0;
+ padding: 0;
+ background-color: #f2f2f2;
+ z-index: 1000;
+ width: 100%;
+ max-height: 320px;
+ overflow-y: auto;
+}
+
+.awd-select-list-item {
+ cursor: pointer;
+ height: 100%;
+ min-height: 36px;
+ line-height: 20px;
+ overflow: hidden;
+ padding: 8px 15px;
+ position: relative;
+ z-index: 1000;
+}
+
+.awd-select-list-item:hover {
+ cursor: pointer;
+ background-color: #d2d2d2;
+ outline: 1px dashed transparent;
+}
+
+.awd-select-list-item:focus {
+ cursor: pointer;
+ background-color: #d2d2d2;
+ outline: 1px dashed transparent;
+}
+
+.awd-select-list-item img {
+ margin-top: 0;
+ margin-right: 7px;
+ height: 26px;
+ width: 26px;
+}
+
+.selectWrap {
+ border-radius: 6px;
+ position: relative;
+ height: 36px;
+ line-height: 28px;
+ display: block;
+ margin: 0;
+ background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
+ background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0);
+}
+
+.selectWrap:not(.large) .awd-select-list-item:first-child {
+ margin-top: 15px;
+}
+
+.selectWrap:not(.large) .awd-select-list-item:last-child {
+ margin-bottom: 15px;
+}
+
+.selectWrap .icon-primary-down {
+ font-size: 23px;
+ margin-top: -11px;
+ position: absolute;
+ right: 4px;
+ top: 50%;
+}
+
+.selectWrap + [aria-expanded="true"] {
+ padding-bottom: 9px;
+ padding-top: 20px;
+}
+
+.awd-select-list-item[data-hover="true"] {
+ background-color: #d2d2d2;
+}
+
+span input.awd-select {
+ width: 100%;
+ cursor: pointer;
+ text-overflow: ellipsis;
+ padding-right: 45px;
+}
+
+li.optgroup-wrapper {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ cursor: default !important;
+ padding: 0px 15px;
+}
+
+li.optgroup-wrapper:first-child {
+ padding-top: 10px;
+}
+
+li.optgroup-wrapper:hover {
+ background-color: #f2f2f2;
+}
+
+ul.optgroup {
+ font-family: "Omnes-ECOMP-W02", Arial;
+ cursor: pointer !important;
+ margin: 0 -15px;
+}
+
+ul.optgroup li {
+ padding: 0 0 0 33px;
+}
+
+label + .selectWrap {
+ margin-top: 4px;
+}
+
+.group .selectWrap {
+ margin: 0 0 10px 0;
+}
+
+select.awd-select {
+ position: relative;
+ top: 0;
+ left: 0;
+ font-size: 16px;
+ z-index: 1010;
+ height: 33px;
+ min-width: 100%;
+ opacity: 0.01;
+}
+
+select.awd-select > optgroup {
+ padding-left: 8px;
+ font-style: normal;
+ margin-top: 10px;
+}
+
+select.awd-select > optgroup:first-child {
+ margin-top: 0;
+}
+
+select.awd-select > optgroup > option {
+ padding-left: 8px;
+}
+
+select.awd-select > option {
+ padding-left: 8px;
+}
+
+select.awd-select + span {
+ background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%);
+ background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0);
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 0;
+ display: block;
+ border: 1px solid #d2d2d2;
+ border-radius: 6px;
+ height: 35px;
+ line-height: 0;
+ padding: 18px 45px 15px 15px;
+ width: 100%;
+ font-size: 1.6rem;
+ padding-right: 45px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+select.awd-select + span > i {
+ font-size: 23px;
+ position: absolute;
+ right: 33px;
+ top: 5px;
+ z-index: 1000;
+}
+
+select.awd-select + span > i:before {
+ left: 1px;
+ position: absolute;
+ top: -1px;
+}
+
+select.awd-select:focus + span {
+ border-color: #0568ae;
+}
+
+
+.btn.disabled[ddh-load-button] {
+ line-height: 46px;
+ padding: 0 19px 0 18px;
+}
+
+.btn.disabled[ddh-load-button] {
+ color: #666666;
+}
+
+.icon-primary-spinner-ddh.large {
+ height: 50px;
+ width: 50px;
+}
+
+.icon-primary-spinner-ddh.small {
+ height: 30px;
+ width: 30px;
+}
+
+.icon-primary-spinner-ddh {
+ -webkit-animation: 1s linear infinite spinner;
+ animation: 1s linear infinite spinner;
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNiAzNiIgaWQ9InN2Zy1zcGlubmVyIiB4PSIwcHgiIHk9IjBweCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgIDxwYXRoIGZpbGw9IiNGNUY1RjUiIGQ9Ik0xOCAzNkM4LjEgMzYgMCAyNy45IDAgMThTOC4xIDAgMTggMHMxOCA4LjEgMTggMTgtOC4xIDE4LTE4IDE4em0wLTMxLjVjLTcuNSAwLTEzLjUgNi0xMy41IDEzLjVTMTAuNiAzMS41IDE4IDMxLjVjNy41IDAgMTMuNS02LjEgMTMuNS0xMy41IDAtNy41LTYtMTMuNS0xMy41LTEzLjV6Ii8+CiAgIDxwYXRoIGZpbGw9IiMwNTY4QUUiIGlkPSJzcGlubmVyIiBkPSJNMzAuNyA1LjNsLTMuMSAzLjJjMi40IDIuNCAzLjkgNS44IDMuOSA5LjUgMCA3LjQtNi4xIDEzLjUtMTMuNSAxMy41UzQuNSAyNS40IDQuNSAxOCAxMC42IDQuNSAxOCA0LjVWMEM4LjEgMCAwIDguMSAwIDE4czguMSAxOCAxOCAxOCAxOC04LjEgMTgtMThjMC01LTItOS41LTUuMy0xMi43eiIgdHJhbnNmb3JtPSIiPiAgICAgIAogICA8L3BhdGg+Cjwvc3ZnPg==);
+}
+
+.btn-small .icon-primary-spinner-ddh {
+ height: 30px !important;
+ width: 30px !important;
+}
+
+.btn-small .icon-primary-spinner {
+ height: 30px;
+ width: 30px;
+}
+
+i:focus {
+ outline: thin dotted #666;
+}
+
+.p-col-md-12 {
+ width: 50%;
+}
+
+.fieldLabel {
+ color: #666666;
+}
+
+.fieldLabel input {
+ color: #666666;
+}
+
+
+.fade1, .fadel {
+ opacity: 0.4;
+}
+
+.fade2, .fadesl {
+ opacity: 0.6;
+}
+
+h4#pagination-truncated {
+ margin-top: 50px;
+}
+
+h4#pagination-large-count {
+ margin-top: 50px;
+}
+
+input[type="text"]::-moz-placeholder {
+ color: #767676;
+ font-family: "Omnes-ECOMP-W02-Italic", Arial;
+}
+
+input[type="text"]:focus {
+ z-index: 1000;
+}
+
+input[type="text"] + .reset-field {
+ background-color: #FFFFFF;
+ height: 90%;
+ top: 5%;
+}
+
+.btn-search:focus {
+ outline: 1px dotted #0574ac;
+}
+
+.field-group input:not([type="button"])[disabled] ~ .btn-search {
+ background-color: #eee;
+}
+
+.btn-search[class*="btn"] {
+ background-color: #FFFFFF;
+ background-size: 20px 20px;
+ border-radius: 0 1.5rem 1.5rem 0;
+ height: 3rem;
+ min-width: 4.4rem !important;
+ right: 0.15rem;
+ top: 0.15rem;
+ width: 4.4rem;
+}
+
+.search-suggestion-wrapper {
+ margin-bottom: 15px;
+ position: relative;
+}
+
+.search-suggestion-wrapper .no-result {
+ padding: 0px 15px;
+}
+
+.search-suggestion-item {
+ color: #333333;
+ line-height: 4rem;
+ padding: 0 15px;
+ position: relative;
+ z-index: 1000;
+}
+
+.search-suggestion-item:hover {
+ background-color: #e4e4e4;
+ cursor: pointer;
+}
+
+.search-suggestion-item:focus {
+ background-color: #e4e4e4;
+ cursor: pointer;
+}
+
+.search-suggestion-item a {
+ color: #333333;
+ text-decoration: none;
+}
+
+.btn-search i {
+ color: #767676;
+}
+
+input.b2b-search-input-field:focus ~ .btn-search > i, .btn-search:focus > i {
+ color: #0568ae;
+}
+
+button.btn-search[disabled] {
+ cursor: not-allowed;
+}
+
+button.btn-search[disabled] i {
+ color: #767676;
+}
+
+.innershadow {
+ -webkit-background-blend-mode: mutilply;
+ box-shadow: 0 3px 0 2px rgba(0, 0, 0, 0.08);
+}
+
+li.module-groups {
+ cursor: default !important;
+ padding: 18px 15px 0px 15px;
+}
+
+li.module-list-item[selected]:before {
+ box-sizing: border-box;
+ display: inline-block;
+ font-size: 2em;
+ height: 1em;
+ position: absolute;
+ top: 20px;
+ right: 0px;
+ vertical-align: middle;
+ width: 1em;
+ color: #007a3e;
+}
+
+ul.module-optinalcta {
+ position: relative;
+ height: 44px;
+ margin-top: 0px;
+ border-bottom: 1px solid #d2d2d2;
+ border-left: 1px solid #d2d2d2;
+ border-right: 1px solid #d2d2d2;
+ border-radius: 0px 0px 6px 6px;
+}
+
+ul.module-optinalcta li {
+ position: absolute;
+ bottom: 10px;
+}
+
+ul.module-optinalcta a {
+ text-indent: 15px;
+ padding: 15px;
+}
+
+@keyframes spinner {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(359deg);
+ }
+}
+
+table {
+ max-width: 100%;
+ background-color: transparent;
+ border-collapse: collapse;
+ border-spacing: 0;
+ width: 100%;
+}
+
+table caption {
+ text-align: left;
+}
+
+table thead th {
+ vertical-align: bottom;
+}
+
+table th,
+table td {
+ padding: 19px 20px;
+ line-height: 1;
+ font-size: 1.4rem;
+ text-align: left;
+ vertical-align: top;
+ word-wrap: break-word;
+}
+
+table th {
+ font-family: "Omnes-ECOMP-W02-Medium", Arial;
+ font-size: 1.6rem;
+ font-weight: normal;
+ color: #333333;
+ padding: 13px 20px;
+}
+
+
+table tbody td:first-child {
+ border-left: none;
+}
+
+@media (max-width: 767px) {
+ table th,
+ table td {
+ padding: 19px 10px;
+ }
+
+ table th:first-child,
+ table td:first-child {
+ padding: 19px 15px;
+ }
+}
+
+.data-row-list ul > li {
+ background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewport%3D%220%200%201%201%22%20style%3D%22width%3A100%25%3B%20height%3A1px%3B%22%3E%3Cstyle%3Eline%7Bstroke%3Argba(153%2C153%2C153%2C1)%3Bstroke-width%3A2%3B%7D%3C%2Fstyle%3E%3Cline%20y2%3D%221%22%20y1%3D%221%22%20x1%3D%221%22%20x2%3D%22100%25%22%20stroke-dasharray%3D%221%2C%203%22%2F%3E%3C%2Fsvg%3E") !important;
+}
+
+table {
+ border-bottom: 1px solid #d2d2d2;
+}
+
+table th,
+table td {
+ padding: 15px 15px 10px;
+}
+
+button .colors-off-msg {
+ position: relative;
+}
+
+
+textarea, input {
+ color: #333;
+}
+
+.selectWrap::after {
+ align-items: center;
+ background-position: 7px 7px;
+ background-repeat: no-repeat;
+ background-size: auto 23px;
+ border-left: 1px solid transparent;
+ color: #0568ae;
+ display: flex;
+ font-size: 23px;
+ height: 36px;
+ margin-right: 0;
+ overflow: hidden;
+ position: absolute;
+ right: 0;
+ text-indent: 7px;
+ top: 0;
+ user-select: none;
+ width: 41px;
+ z-index: 0;
+ position: absolute !important;
+ display: flex !important;
+}
+
+.card {
+ border-radius: 5px;
+}
+
+.card-header {
+ height: 50px;
+}
+
+.card-body {
+ height: 150px;
+}
+
+.card-footer {
+ height: 50px;
+}
+
+.dialog__close-btn {
+ border: 0;
+ background: #087ac2;
+ color: #ffffff;
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ font-size: 1.2em;
+ display: block;
+ border: #087ac2 2px solid;
+}
+
+.dialog {
+ margin-top: 50px;
+}
+
+.modalTitle {
+ font-size: 35px;
+}
+
+.defaultFontSize {
+ font-size: 12px;
+}
+
+.defaultFontSizeTextArea {
+ font-size: 12px;
+ width: 200px;
+ height: 42px
+}
+
+
+.tab-content {
+ margin-right: 20px;
+ /* background-color: #006496; */
+ color: rgb(0, 0, 0);
+ font-size: 12px;
+}
+
+.btn-sm {
+ width: 30px;
+ height: 15px;
+ font-size: 10px;
+}
+
+
+table, tr, td, th {
+ border: 0;
+ width: fit-content
+}
+
+
+mat-icon {
+ color: #006496;
+ cursor: pointer;
+}
+
+.matFormField {
+ width: 300px;
+}
+
+.proceedWitLoadButton {
+ font-size: 15px;
+ background: green;
+ color: white;
+
+}
+
+.abortButton {
+ font-size: 15px;
+ background: red;
+ color: white;
+}
+
+.reportTitle {
+ font-size: 16px;
+ font-weight: bold;
+}
+
+textarea {
+ display: block;
+ width: 800px;
+ padding: 8px;
+ padding-left: 15px;
+ height: 36px;
+}
+
+.subtitle {
+ font-weight: bold;
+ color: #f44336;
+ padding-top: 5px;
+ font-size: 12px;
+}
+
+.finalWidth{
+ width: 100%;
+}
+
+.finalTimeDivWidth{
+ width: 70%;
+}
+.timeStamp-HMS-sec-span{
+ width: 35%; font-size: 12px; float: left; padding-top: 12px; padding-left: 5px;
+}
+
+.timeStamp-HMS-sec-div{
+ width:65%; float: right; padding-left: 2px;
+}
+
+.timeStamp-HMS-Min-span{
+ width: 35%; font-size: 12px; float: left; padding-top: 12px; padding-left: 5px;
+}
+
+.timeStamp-HMS-Min-div{
+ width:60%; float: right; padding-left: 2px;
+}
+
+.timeStamp-HMS-Hrs-span{
+ width: 35%; font-size: 12px; float: left; padding-top: 12px; padding-left: 2px;
+}
+
+.timeStamp-HMS-Hrs-div{
+ width:65%; float: right;
+}
+
+.timeStamp-HMS-matFormField{
+ width: 40%;
+}
+
+.timeStamp-HMS-input{
+ font-size: 12px; padding: 3px;
+}
+.timeStamp-HMS-inner-div{
+ width: 20%; float: right;
+}
+.timeStamp-sec-select{
+ width: 42px; height: 30px; font-size: 12px; padding-left: 3px;
+}
+
+.timeStamp-HM-matFormField{
+ width: 50%;
+}
+
+
+.timeStamp-HM-Min-div{
+ width: 25%; float: right; padding-left: 13px;
+}
+.timeStamp-HM-Min-span{
+ width: 35%; font-size: 12px; float: left; padding-top: 12px;
+}
+.timeStamp-HM-Min-inner-div{
+ width:65%; float: right; padding-left: 10px;
+}
+
+.timeStamp-min-select{
+ width: 45px; height: 30px; font-size: 12px; padding-left: 3px;
+}
+
+.timeStamp-HM-Hrs-inner-div{
+ width:60%; float: right; padding-right: 3px;
+}
+
+.timeStamp-HM-Hrs-inner-span{
+ width: 40%; font-size: 12px; float: left; padding-top: 12px;
+}
+
+.timeStamp-HM-Hrs-div{
+ width: 25%; float: right;
+}
+
+
+.timeStamp-H-Hrs-div{
+ width: 30%; float: right;
+}
+
+.timeStamp-H-Hrs-inner-span{
+ width: 40%; font-size: 12px; float: left; padding-top: 12px;
+}
+
+.timeStamp-H-Hrs-inner-div{
+ width:60%; float: right;
+}
+
+.timeStamp-H-Hrs-inner-div-select{
+ width: 45px; height: 30px; font-size: 12px ; padding-left: 3px;
+}
+
+
+:host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon {
+ width: 1.5em;
+} \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html
new file mode 100644
index 00000000..aea6c768
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.html
@@ -0,0 +1,340 @@
+<span *ngIf="showSpinner" class="ecomp-spinner"></span>
+
+<div *ngIf="!showSpinner" class="stdForm">
+
+ <div class="tab-content">
+ <table>
+ <tr>
+ <td>
+ <h6 class="reportTitle">{{reportName}}</h6>
+ <h6 class="subtitle">{{reportSubTitle}}</h6>
+ </td>
+ <td>
+ <mat-icon (click)="editReport(reportId)" *ngIf="allowEdit"
+ aria-hidden="false" aria-label="edit">edit
+ </mat-icon>
+ </td>
+ </tr>
+ </table>
+ <span *ngIf="showformFiledSpinner" class="ecomp-spinner"></span>
+ <br>
+ <div *ngIf="!showformFiledSpinner" class="stdForm">
+ <div *ngIf="formFieldList" class="wrapper">
+ <div *ngFor="let item of formFieldList; let i = index;">
+ <div *ngIf="item.fieldType == 'TEXT' && item.validationType !== 'DATE'"
+ class="fieldWidth">
+ <label class="labelWidth">{{item.fieldDisplayName}} :</label> <textarea matInput placement="right" ngbTooltip="comma seperated"
+ [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event.toString().trim())" class="defaultFontSizeTextArea" id="item.fieldId"></textarea>
+ </div>
+ <div *ngIf="item.fieldType == 'LIST_BOX'" class="fieldWidth">
+ <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
+ <select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
+ class="browser-default custom-select defaultFontSize" required="required"
+ >
+ <option *ngFor="let listItem of item.formFieldValues"
+ class="defaultFontSize" value="{{listItem.id}}">{{listItem.name}}</option>
+ </select>
+ </div>
+ <div *ngIf="item.fieldType == 'LIST_MULTI_SELECT'" class="fieldWidth">
+ <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
+ <mat-form-field>
+ <mat-select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" multiple>
+ <mat-option *ngFor="let listItem of item.formFieldValues"
+ value="{{listItem.id}}">{{listItem.name}}</mat-option>
+ </mat-select>
+ </mat-form-field>
+ </div>
+ <div *ngIf="item.validationType == 'DATE'" class="fieldWidth">
+ <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
+ <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
+ [matDatepicker]="picker"
+ class="defaultFontSize" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+ </div>
+
+ <div *ngIf="item.validationType == 'TIMESTAMP_SEC'" class="finalWidth">
+ <label class="labelWidth" class="defaultFontSize" for="reportType">{{item.fieldDisplayName}} :</label>
+ <div class="finalWidth">
+ <mat-form-field class="timeStamp-HMS-matFormField"><input class="timeStamp-HMS-input"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[0]" [matDatepicker]="picker" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+ <div class="timeStamp-HMS-inner-div">
+ <span class="timeStamp-HMS-sec-span">Sec:</span>
+ <div class="timeStamp-HMS-sec-div">
+ <select name="Seconds" id="Seconds" class="browser-default custom-select timeStamp-sec-select "
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[3]">
+ <option *ngFor="let listItem of timeStampArray" class="defaultFontSize" value="{{listItem}}">
+ {{listItem}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="timeStamp-HMS-inner-div">
+ <span class="timeStamp-HMS-Min-span">Min:</span>
+ <div class="timeStamp-HMS-Min-div">
+ <select name="Minutes" id="Minutes" class="browser-default custom-select timeStamp-sec-select"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[2]">
+ <option *ngFor="let listItem of timeStampArray" class="defaultFontSize" value="{{listItem}}">
+ {{listItem}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="timeStamp-HMS-inner-div">
+ <span class="timeStamp-HMS-Hrs-span">Hrs:</span>
+ <div class="timeStamp-HMS-Hrs-div">
+ <select name="Hours" id="Hours" class="browser-default custom-select timeStamp-sec-select"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[1]">
+ <option *ngFor="let listItem of hoursArray" class="defaultFontSize" value="{{listItem}}">{{listItem}}
+ </option>
+
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div *ngIf="item.validationType == 'TIMESTAMP_MIN'" class="finalWidth">
+ <label class="labelWidth" class="defaultFontSize" for="reportType">{{item.fieldDisplayName}} :</label>
+ <div class="finalTimeDivWidth">
+ <mat-form-field class="timeStamp-HM-matFormField"><input class="timeStamp-HMS-input"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[0]" [matDatepicker]="picker" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+
+ <div class="timeStamp-HM-Min-div">
+ <span class="timeStamp-HM-Min-span">Min:</span>
+ <div class="timeStamp-HM-Min-inner-div">
+ <select name="Minutes" id="Minutes" class="browser-default custom-select timeStamp-min-select "
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[2]">
+ <option *ngFor="let listItem of timeStampArray" class="defaultFontSize" value="{{listItem}}">
+ {{listItem}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="timeStamp-HM-Hrs-div">
+ <span class="timeStamp-HM-Hrs-inner-span">Hrs:</span>
+ <div class="timeStamp-HM-Hrs-inner-div">
+ <select name="Hours" id="Hours" class="browser-default custom-select timeStamp-min-select "
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[1]">
+ <option *ngFor="let listItem of hoursArray" class="defaultFontSize" value="{{listItem}}">{{listItem}}
+ </option>
+
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div *ngIf="item.validationType == 'TIMESTAMP_HOUR'" class="finalWidth">
+ <label class="labelWidth defaultFontSize" for="reportType">{{item.fieldDisplayName}} :</label>
+ <div class="finalTimeDivWidth">
+ <mat-form-field class="finalTimeDivWidth"><input class="timeStamp-HMS-input"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[0]" [matDatepicker]="picker" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+
+ <div class="timeStamp-H-Hrs-div">
+ <span class="timeStamp-H-Hrs-inner-span">Hrs:</span>
+ <div class="timeStamp-H-Hrs-inner-div">
+ <select name="Hours" id="Hours" class="browser-default custom-select timeStamp-H-Hrs-inner-div-select"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[1]">
+ <option *ngFor="let listItem of hoursArray" class="defaultFontSize" value="{{listItem}}">{{listItem}}
+ </option>
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+
+ </div>
+ </div>
+ <div *ngIf="formFieldList" style="padding: 0.3em" >
+ <div *ngIf="unCommonGropusList.length > 0">
+ <label style="padding-top: 3px;">Select :</label><br/>
+ <br/>
+ <mat-radio-group ngmodel [(ngModel)]="groupSelectValue"
+ aria-label="Select an option" (ngModelChange) ="toggleChangeWhenCalledWithFromFields()">
+ <div *ngFor="let group of formFieldGroupObjList; let i=index;" style="display: table-cell">
+ <mat-radio-button value="{{group.name}}">{{group.name}}</mat-radio-button>&nbsp;&nbsp;&nbsp;
+ </div>
+ </mat-radio-group>
+
+ </div>
+ </div>
+
+ <div *ngIf="formFieldList" class="wrapper">
+ <div *ngFor="let item of toggleFormFieldRenderArr; let i = index;">
+ <div *ngIf="item.fieldType == 'TEXT' && item.validationType !== 'DATE'" class="fieldWidth">
+ <label class="labelWidth">{{item.fieldDisplayName}} :</label><textarea matInput placement="right" ngbTooltip="comma seperated" appRemoveSpace
+ [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event.toString().trim())" class="defaultFontSizeTextArea" id="item.fieldId"></textarea>
+ </div>
+ <div *ngIf="item.fieldType == 'LIST_BOX'" class="fieldWidth">
+ <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
+ <select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
+ class="browser-default custom-select defaultFontSize" required="required"
+ >
+ <option *ngFor="let listItem of item.formFieldValues"
+ class="defaultFontSize" value="{{listItem.id}}">{{listItem.name}}</option>
+ </select>
+
+ </div>
+ <div *ngIf="item.fieldType == 'LIST_MULTI_SELECT'" class="fieldWidth">
+ <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
+ <mat-form-field>
+ <mat-select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)"
+ multiple>
+ <mat-option *ngFor="let listItem of item.formFieldValues"
+ value="{{listItem.id}}">{{listItem.name}}</mat-option>
+ </mat-select>
+ </mat-form-field>
+
+ <br/>
+ </div>
+ <div *ngIf="item.validationType == 'DATE'" class="fieldWidth">
+ <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label>
+ <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" [matDatepicker]="picker"
+ class="defaultFontSize"
+ matInput
+ value="{{item.formFieldValues[0][name]}}">
+ <mat-datepicker-toggle
+ [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker
+ #picker></mat-datepicker>
+ </mat-form-field>
+ </div>
+
+ <div *ngIf="item.validationType == 'TIMESTAMP_SEC'" class="finalWidth">
+ <label class="labelWidth" class="defaultFontSize" for="reportType">{{item.fieldDisplayName}} :</label>
+ <div class="finalWidth">
+ <mat-form-field class="timeStamp-HMS-matFormField"><input class="timeStamp-HMS-input"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[0]" [matDatepicker]="picker" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+ <div class="timeStamp-HMS-inner-div">
+ <span class="timeStamp-HMS-sec-span">Sec:</span>
+ <div class="timeStamp-HMS-sec-div">
+ <select name="Seconds" id="Seconds" class="browser-default custom-select timeStamp-sec-select "
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[3]">
+ <option *ngFor="let listItem of timeStampArray" class="defaultFontSize" value="{{listItem}}">
+ {{listItem}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="timeStamp-HMS-inner-div">
+ <span class="timeStamp-HMS-Min-span">Min:</span>
+ <div class="timeStamp-HMS-Min-div">
+ <select name="Minutes" id="Minutes" class="browser-default custom-select timeStamp-sec-select"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[2]">
+ <option *ngFor="let listItem of timeStampArray" class="defaultFontSize" value="{{listItem}}">
+ {{listItem}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="timeStamp-HMS-inner-div">
+ <span class="timeStamp-HMS-Hrs-span">Hrs:</span>
+ <div class="timeStamp-HMS-Hrs-div">
+ <select name="Hours" id="Hours" class="browser-default custom-select timeStamp-sec-select"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[1]">
+ <option *ngFor="let listItem of hoursArray" class="defaultFontSize" value="{{listItem}}">{{listItem}}
+ </option>
+
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div *ngIf="item.validationType == 'TIMESTAMP_MIN'" class="finalWidth">
+ <label class="labelWidth" class="defaultFontSize" for="reportType">{{item.fieldDisplayName}} :</label>
+ <div class="finalTimeDivWidth">
+ <mat-form-field class="timeStamp-HM-matFormField"><input class="timeStamp-HMS-input"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[0]" [matDatepicker]="picker" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+
+ <div class="timeStamp-HM-Min-div">
+ <span class="timeStamp-HM-Min-span">Min:</span>
+ <div class="timeStamp-HM-Min-inner-div">
+ <select name="Minutes" id="Minutes" class="browser-default custom-select timeStamp-min-select "
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[2]">
+ <option *ngFor="let listItem of timeStampArray" class="defaultFontSize" value="{{listItem}}">
+ {{listItem}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="timeStamp-HM-Hrs-div">
+ <span class="timeStamp-HM-Hrs-inner-span">Hrs:</span>
+ <div class="timeStamp-HM-Hrs-inner-div">
+ <select name="Hours" id="Hours" class="browser-default custom-select timeStamp-min-select "
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[1]">
+ <option *ngFor="let listItem of hoursArray" class="defaultFontSize" value="{{listItem}}">{{listItem}}
+ </option>
+
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div *ngIf="item.validationType == 'TIMESTAMP_HOUR'" class="finalWidth">
+ <label class="labelWidth defaultFontSize" for="reportType">{{item.fieldDisplayName}} :</label>
+ <div class="finalTimeDivWidth">
+ <mat-form-field class="finalTimeDivWidth"><input class="timeStamp-HMS-input"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[0]" [matDatepicker]="picker" matInput>
+ <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
+ <mat-datepicker #picker></mat-datepicker>
+ </mat-form-field>
+
+ <div class="timeStamp-H-Hrs-div">
+ <span class="timeStamp-H-Hrs-inner-span">Hrs:</span>
+ <div class="timeStamp-H-Hrs-inner-div">
+ <select name="Hours" id="Hours" class="browser-default custom-select timeStamp-H-Hrs-inner-div-select"
+ [(ngModel)]="formFieldListValueMap.get(item.fieldId)[1]">
+ <option *ngFor="let listItem of hoursArray" class="defaultFontSize" value="{{listItem}}">{{listItem}}
+ </option>
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <br/>
+ </div>
+ </div>
+ <div *ngIf="showRunButton" style="float: left;">
+ <button (click)="runReport()" class="btn btn-alt btn-run" >Run Report</button>
+ <button (click)="resetFormFieldValues()" class="btn btn-alt btn-run" >Reset</button>
+ </div>&nbsp;
+ <button *ngIf="showBackButton" (click)="goBack()" class="btn btn-alt btn-run" >Back</button>
+ </div>
+ </div>
+</div>
+<div></div>
+
+<br><br><br>
+
+<div *ngIf="navigateToRun">
+ <!-- <app-run-dashboard-report [reportId]="reportId" [reportMode]="reportMode" [queryString]="getQueryString()" [DashboardReportObj]="DashboardReportObj"></app-run-dashboard-report> -->
+ <app-run-report [DashboardReportObj]="DashboardReportObj" [TriggerFFArr]="triggerFormFieldArr"
+ [hitCnt]="hitCnt"
+ [queryString]="getQueryString()"
+ [reportId]="reportId" [reportMode]="reportMode" [runAgain]="runReportAgain" [groupSelectValue]="groupSelectValue" [chartType]="chartType" [isGoBack]="downloadPrevReport" ></app-run-report>
+</div>
+
+<div *ngIf="error == true">
+ <h1>Error Message:</h1>
+ <p>{{errorMessage}}</p>
+ <br/>
+ <h1>Stack Trace:</h1>
+ <p>{{stackTrace}}</p>
+
+</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.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.spec.ts
index 640128ce..9678345a 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.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-form-fields/run-report-form-fields.component.spec.ts
@@ -8,6 +8,7 @@ import { RouterTestingModule } from '@angular/router/testing';
import { RunService } from '../run.service';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
+import { HttpCacheService } from 'src/app/shared/services/cache.service';
describe('RunReportFormFieldsComponent', () => {
let component: RunReportFormFieldsComponent;
@@ -26,7 +27,7 @@ describe('RunReportFormFieldsComponent', () => {
schemas: [CUSTOM_ELEMENTS_SCHEMA],
imports: [FormsModule, MatDatepickerModule, HttpClientTestingModule, RouterTestingModule],
declarations: [ RunReportFormFieldsComponent ],
- providers: [RunService]
+ providers: [RunService,HttpCacheService]
})
.compileComponents();
runService = TestBed.get(RunService);
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/report-run/run/run-report-form-fields/run-report-form-fields.component.ts
index c0856b44..ced812d2 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/report-run/run/run-report-form-fields/run-report-form-fields.component.ts
@@ -1,10 +1,9 @@
-import {Component, OnInit, Input, SimpleChange, SystemJsNgModuleLoader, OnDestroy} from '@angular/core';
+import {ChangeDetectorRef, Component, HostListener, OnInit, Input, SimpleChange, SystemJsNgModuleLoader, OnDestroy} from '@angular/core';
import {RunService} from '../run.service';
import {ActivatedRoute, Router} from '@angular/router';
-import {inlineInterpolate} from '@angular/core/src/view';
-import {copyStyles} from '@angular/animations/browser/src/util';
-import {split} from 'ts-node';
import * as cloneDeep from 'lodash/cloneDeep';
+import {environment} from 'src/environments/environment';
+import {HttpCacheService} from '../../../shared/services/cache.service';
@Component({
selector: 'app-run-report-form-fields',
@@ -61,8 +60,16 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
formFieldListValueMap: any;
saveFormFieldListValueMap: any;
chartType = '';
-
- constructor(private _runService: RunService, private _route: ActivatedRoute, private _router: Router) {
+ showRunButton = false;
+ showBackButton = false;
+ downloadPrevReport = '';
+ timeStampArray: any[];
+ hoursArray : any[];
+ constructor(private _runService: RunService,
+ private _route: ActivatedRoute,
+ private _router: Router,
+ private changeDetectorRefs: ChangeDetectorRef,
+ private httpCacheService: HttpCacheService) {
this.formFieldListValueArr = [];
this.saveFormFieldListValueArr = [];
this.saveFormFieldGroups = [];
@@ -81,6 +88,16 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
this.formFieldListValueMap = new Map<any, any>();
this.saveFormFieldListValueMap = new Map<any, any>();
this.chartType = '';
+ this.showRunButton = false;
+ this.showBackButton = false;
+ this.downloadPrevReport = '';
+ this.timeStampArray = [];
+ this.hoursArray = [];
+
+ }
+
+ @HostListener('click') onClick() {
+ this.changeDetectorRefs.detectChanges();
}
ngOnDestroy(): void {
@@ -98,7 +115,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
this.reportMode = '';
this.queryString = '';
this.reportName = '';
- this.reportSubTitle='';
+ this.reportSubTitle = '';
this.showSpinner = true;
this.showLabel = false;
this.runDashboardReport = false;
@@ -129,15 +146,35 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
this.formFieldListValueMap = new Map<any, any>();
this.saveFormFieldListValueMap = new Map<any, any>();
this.chartType = '';
+ this.showRunButton = false;
+ this.downloadPrevReport = '';
}
ngOnInit() {
this.showSpinner = true;
this.navigateToRun = false;
+ this.getTime();
+ this.getHours();
this._route.params.subscribe(params => {
- this.reportId = params['reportId'];
this.createNewObject();
+ this.reportId = params['reportId'];
+ const checkOfCache = this.httpCacheService.getPreviousId(this.reportId) || null;
+ if (!checkOfCache) {
+ this.httpCacheService.clearCache();
+ }
+ const backButton = params['showBackButton'];
+ const downloadPrevReport = params['downloadPrevReport'];
+ if (downloadPrevReport && downloadPrevReport === 'true') {
+ this.downloadPrevReport = 'true';
+ }
+ if (backButton && backButton === 'true') {
+ this.showBackButton = true;
+ } else if (backButton && backButton === 'false') {
+ this.showBackButton = false;
+ } else {
+ this.showBackButton = false;
+ }
this.groupSelectValue = params['groupSelectValue'];
if (this.groupSelectValue === undefined) {
this.groupSelectValue = '';
@@ -185,6 +222,8 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
} else {
this.formFieldList = response['formFieldList'];
this.reportMode = 'Regular';
+ this.httpCacheService.setRouteCache(this.reportId, this.getQueryString());
+ this.httpCacheService.setRouteGroupCache(this.reportId, this.groupSelectValue);
this.navigateToRun = true;
this.showformFiledSpinner = false;
@@ -215,12 +254,25 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
const multiSelectArray = [];
let multiVal = this.finalQueryParamsObj[ff.fieldId];
multiVal = multiVal.toString().replace(/%2F/g, '/');
+ multiVal = multiVal.toString().replace(/%20/g, ' ');
+ multiVal = multiVal.toString().replace(/%28/g, '(');
+ multiVal = multiVal.toString().replace(/%29/g, ')');
multiVal = multiVal.toString().replace('+', ' ');
- multiSelectArray.push(multiVal);
+ if (multiVal.split('|').length > 1) {
+ let tempArray = multiVal.split('|');
+ for (let arr = 0; arr < tempArray.length; arr++) {
+ multiSelectArray.push(tempArray[arr]);
+ }
+ } else {
+ multiSelectArray.push(multiVal);
+ }
this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
} else {
let multiVal = this.finalQueryParamsObj[ff.fieldId];
multiVal = multiVal.toString().replace(/%2F/g, '/');
+ multiVal = multiVal.toString().replace(/%20/g, ' ');
+ multiVal = multiVal.toString().replace(/%28/g, '(');
+ multiVal = multiVal.toString().replace(/%29/g, ')');
multiVal = multiVal.toString().split('+').join(' ');
this.formFieldListValueMap.set(ff.fieldId, multiVal);
}
@@ -234,6 +286,8 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
}
this.error = false;
+ this.httpCacheService.setRouteCache(this.reportId, this.getQueryString());
+ this.httpCacheService.setRouteGroupCache(this.reportId, this.groupSelectValue);
this.navigateToRun = true;
this.showformFiledSpinner = true;
this.directCallQueryParams = '';
@@ -261,7 +315,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
let i = 0;
let subReportId = '';
const tempDashboardArray = [];
- for (let dash = 0; dash < this.DashboardReportObj.length ; dash++) {
+ for (let dash = 0; dash < this.DashboardReportObj.length; dash++) {
if (this.DashboardReportObj[dash]['hasContent']['hideDisplay'] !== true) {
tempDashboardArray.push(this.DashboardReportObj[dash]);
}
@@ -293,33 +347,103 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
this.showSpinner = false;
this.showformFiledSpinner = true;
} else if (this.calledWithFormFields == true) {
+ this.httpCacheService.setRouteCache(this.reportId, this.getQueryString());
+ this.httpCacheService.setRouteGroupCache(this.reportId, this.groupSelectValue);
this.iSDashboardReport = 'Dashboard';
this.reportName = responseDefPage['reportName'];
this.DashboardReportObj = JSON.parse(responseDefPage['dashboardLayoutJSON']);
const tempDashboardArray = [];
- for (let dash = 0; dash < this.DashboardReportObj.length ; dash++) {
+ for (let dash = 0; dash < this.DashboardReportObj.length; dash++) {
if (this.DashboardReportObj[dash]['hasContent']['hideDisplay'] !== true) {
tempDashboardArray.push(this.DashboardReportObj[dash]);
}
}
this.DashboardReportObj = [];
this.DashboardReportObj = tempDashboardArray;
- let subReportId = '';
- for (const dashboard of this.DashboardReportObj) {
- let temp = '';
- temp = dashboard['hasContent']['id'].split('#')[1];
- subReportId = temp;
- this.directCallQueryParams = '';
- this.runDashboardReport = true;
- this.navigateToRun = true;
- this.showSpinner = false;
+ let subReportId1 = '';
+ let i = 0;
+ while (this.DashboardReportObj[i]) {
+ subReportId1 = this.DashboardReportObj[i]['hasContent']['id'].split('#')[1];
+ i++;
+ break;
+ }
+ this._runService.getReportData(subReportId1)
+ .subscribe((response) => {
+ if (response['errormessage']) {
+ this.showError(response);
+ this.allowEdit = response['allowEdit'];
+ } else {
+ this.allowEdit = response['allowEdit'];
+ if (response['formFieldList'].length > 0) {
+ this.fetchAndPopulateFormFields(response, subReportId1);
+ this.formFieldListValueMap = new Map<any, any>();
+ for (const ff of response['formFieldList']) {
+ if (this.finalQueryParamsObj[ff.fieldId]) {
+ if (ff.validationType == 'DATE') {
+ const dateVal = this.finalQueryParamsObj[ff.fieldId];
+ this.formFieldListValueMap.set(ff.fieldId, new Date(dateVal.toString().replace(/%2F/g, '/')));
+ } else if (ff.fieldType == 'LIST_MULTI_SELECT') {
+ const multiSelectArray = [];
+ let multiVal = this.finalQueryParamsObj[ff.fieldId];
+ multiVal = multiVal.toString().replace(/%2F/g, '/');
+ multiVal = multiVal.toString().replace(/%20/g, ' ');
+ multiVal = multiVal.toString().replace(/%28/g, '(');
+ multiVal = multiVal.toString().replace(/%29/g, ')');
+ multiVal = multiVal.toString().replace('+', ' ');
+ if (multiVal.split('|').length > 1) {
+ let tempArray = multiVal.split('|');
+ for (let arr = 0; arr < tempArray.length; arr++) {
+ multiSelectArray.push(tempArray[arr]);
+ }
+ } else {
+ multiSelectArray.push(multiVal);
+ }
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ } else {
+ let multiVal = this.finalQueryParamsObj[ff.fieldId];
+ multiVal = multiVal.toString().replace(/%2F/g, '/');
+ multiVal = multiVal.toString().replace(/%20/g, ' ');
+ multiVal = multiVal.toString().replace(/%28/g, '(');
+ multiVal = multiVal.toString().replace(/%29/g, ')');
+ multiVal = multiVal.toString().split('+').join(' ');
+ if (multiVal == 'NULL') {
+ this.formFieldListValueMap.set(ff.fieldId, '');
+ } else {
+ this.formFieldListValueMap.set(ff.fieldId, multiVal);
+ }
+ }
+ } else {
+ if (ff.fieldType == 'LIST_MULTI_SELECT') {
+ const multiSelectArray = [];
+ this.formFieldListValueMap.set(ff.fieldId, multiSelectArray);
+ } else {
+ this.formFieldListValueMap.set(ff.fieldId, '');
+ }
+ }
+ }
+ } else {
+ this.navigateToRun = true;
+ }
+ let subReportId = '';
+ for (const dashboard of this.DashboardReportObj) {
+ let temp = '';
+ temp = dashboard['hasContent']['id'].split('#')[1];
+ subReportId = temp;
+ this.directCallQueryParams = '';
+ this.runDashboardReport = true;
+ this.navigateToRun = true;
+ this.showSpinner = false;
+ }
+ }
+ });
+
}
- }
+
}
});
}
- toggleChangeWhenCalledWithFromFields(){
+ toggleChangeWhenCalledWithFromFields() {
this.calledWithFormFields = false;
}
@@ -353,7 +477,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
}
- if(this.calledWithFormFields != true){
+ if (this.calledWithFormFields != true) {
for (const formFieldGroupObjItem of this.saveFormFieldGroups) {
if (formFieldGroupObjItem['name'] == this.groupSelectValue) {
this.toggleFormFieldRenderArr = formFieldGroupObjItem['formFieldList'];
@@ -428,16 +552,13 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
}
for (const tffr of this.toggleFormFieldRenderArr) {
- if (this.formFieldListValueMap.get(tffr['fieldId']) || this.formFieldListValueMap.get(tffr['fieldId']) == "") {
+ if (this.formFieldListValueMap.get(tffr['fieldId']) || this.formFieldListValueMap.get(tffr['fieldId']) == '') {
if (tffr['validationType'] == 'DATE') {
this.finalQueryParamsObj[tffr['fieldId']] = this.convertDate(this.formFieldListValueMap.get(tffr['fieldId']));
- } else if (this.formFieldListValueMap.get(tffr['fieldId']) == "") {
+ } else if (this.formFieldListValueMap.get(tffr['fieldId']) == '') {
if (tffr['fieldType'] == 'LIST_MULTI_SELECT') {
let multiSelectValue = '';
- for (let ffValue = 0; ffValue < tffr['formFieldValues'].length; ffValue++) {
- multiSelectValue = multiSelectValue + tffr['formFieldValues'][ffValue]['id'] + '|';
- }
if (multiSelectValue != '') {
multiSelectValue = multiSelectValue.substring(0, multiSelectValue.length - 1);
}
@@ -448,55 +569,82 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
} else {
this.finalQueryParamsObj[tffr['fieldId']] = this.formFieldListValueMap.get(tffr['fieldId']);
- for (const trigElement of this.triggerFormFieldArr) {
- if (this.initialObject[trigElement] !== this.finalQueryParamsObj[trigElement]) {
- this.initialObject[trigElement] = this.finalQueryParamsObj[trigElement];
- this.generateQueryString();
- await this.delay(1000);
- console.log('Afterp: ' + new Date().toString());
- this._runService.refreshFormFields(this.reportId, this.queryString)
- .subscribe((responseRefreshFF) => {
- for (let rrff = 0; rrff < responseRefreshFF['formFieldList'].length; rrff++) {
- for (let innerTFRR = 0; innerTFRR < this.toggleFormFieldRenderArr.length; innerTFRR++) {
- if (responseRefreshFF['formFieldList'][rrff]['fieldId'] == this.toggleFormFieldRenderArr[innerTFRR]['fieldId']) {
- this.toggleFormFieldRenderArr[innerTFRR] = responseRefreshFF['formFieldList'][rrff];
+ if (this.initialObject[tffr['fieldId']] !== this.finalQueryParamsObj[tffr['fieldId']]) {
+ this.initialObject[tffr['fieldId']] = this.finalQueryParamsObj[tffr['fieldId']];
+ this.generateQueryString();
+ await this.delay(1000);
+ console.log('Afterp: ' + new Date().toString());
+ if ( tffr['triggerOtherFormFields'] == true) {
+ this._runService.refreshFormFields(this.reportId, this.queryString)
+ .subscribe((responseRefreshFF) => {
+ for (let rrff = 0; rrff < responseRefreshFF['formFieldList'].length; rrff++) {
+ for (let innerTFRR = 0; innerTFRR < this.toggleFormFieldRenderArr.length; innerTFRR++) {
+ if (responseRefreshFF['formFieldList'][rrff]['fieldId'] == this.toggleFormFieldRenderArr[innerTFRR]['fieldId']) {
+ this.toggleFormFieldRenderArr[innerTFRR] = responseRefreshFF['formFieldList'][rrff];
+ }
}
}
- }
- });
- this.initialObject[trigElement] = this.finalQueryParamsObj[trigElement];
+ });
+
}
+ this.initialObject[tffr['fieldId']] = this.finalQueryParamsObj[tffr['fieldId']];
}
-
}
}
}
if (this.reportMode !== 'Regular' && this.reportMode !== 'Dashboard') {
for (const ffvalue of this.formFieldList) {
- if (this.formFieldListValueMap.get(ffvalue['fieldId'])) {
- if (ffvalue['validationType'] == 'DATE') {
+ if (this.formFieldListValueMap.get(ffvalue['fieldId']) === '' || this.formFieldListValueMap.get(ffvalue['fieldId']) ) {
+ if (ffvalue['validationType'] == 'DATE' && this.formFieldListValueMap.get(ffvalue['fieldId']) !== '' ) {
this.finalQueryParamsObj[ffvalue['fieldId']] = this.convertDate(this.formFieldListValueMap.get(ffvalue['fieldId']));
+ }else if (ffvalue['validationType'] == 'TIMESTAMP_SEC' && this.formFieldListValueMap.get(ffvalue['fieldId']) !== ''){
+ if(this.formFieldListValueMap.get(ffvalue['fieldId'])[0] != ''){
+ this.finalQueryParamsObj[ffvalue['fieldId']] = this.convertDate(this.formFieldListValueMap.get(ffvalue['fieldId'])[0]);
} else {
+ this.finalQueryParamsObj[ffvalue['fieldId']] = this.formFieldListValueMap.get(ffvalue['fieldId'])[0];
+ }
+ this.finalQueryParamsObj[ffvalue['fieldId']+'_Hr'] = this.formFieldListValueMap.get(ffvalue['fieldId'])[1];
+ this.finalQueryParamsObj[ffvalue['fieldId']+'_Min'] = this.formFieldListValueMap.get(ffvalue['fieldId'])[2];
+ this.finalQueryParamsObj[ffvalue['fieldId']+'_Sec'] = this.formFieldListValueMap.get(ffvalue['fieldId'])[3];
+ }else if (ffvalue['validationType'] == 'TIMESTAMP_MIN' && this.formFieldListValueMap.get(ffvalue['fieldId']) !== ''){
+ if(this.formFieldListValueMap.get(ffvalue['fieldId'])[0] != ''){
+ this.finalQueryParamsObj[ffvalue['fieldId']] = this.convertDate(this.formFieldListValueMap.get(ffvalue['fieldId'])[0]);
+ }else{
+ this.finalQueryParamsObj[ffvalue['fieldId']] = this.formFieldListValueMap.get(ffvalue['fieldId'])[0];
+ }
+ this.finalQueryParamsObj[ffvalue['fieldId']+'_Hr'] = this.formFieldListValueMap.get(ffvalue['fieldId'])[1];
+ this.finalQueryParamsObj[ffvalue['fieldId']+'_Min'] = this.formFieldListValueMap.get(ffvalue['fieldId'])[2];
+ }else if (ffvalue['validationType'] == 'TIMESTAMP_HOUR' && this.formFieldListValueMap.get(ffvalue['fieldId']) !== ''){
+ if(this.formFieldListValueMap.get(ffvalue['fieldId'])[0] != ''){
+ this.finalQueryParamsObj[ffvalue['fieldId']] = this.convertDate(this.formFieldListValueMap.get(ffvalue['fieldId'])[0]);
+ }else{
+ this.finalQueryParamsObj[ffvalue['fieldId']] = this.formFieldListValueMap.get(ffvalue['fieldId'])[0];
+ }
+ this.finalQueryParamsObj[ffvalue['fieldId']+'_Hr'] = this.formFieldListValueMap.get(ffvalue['fieldId'])[1];
+ }
+ else {
this.finalQueryParamsObj[ffvalue['fieldId']] = this.formFieldListValueMap.get(ffvalue['fieldId']);
+ }
for (const trigElement of this.triggerFormFieldArr) {
if (this.initialObject[trigElement] !== this.finalQueryParamsObj[trigElement]) {
this.initialObject[trigElement] = this.finalQueryParamsObj[trigElement];
this.generateQueryString();
await this.delay(1000);
console.log('Afterp: ' + new Date().toString());
- this._runService.refreshFormFields(this.reportId, this.queryString)
- .subscribe((responseRefreshFF) => {
-
- for (let rrff = 0; rrff < responseRefreshFF['formFieldList'].length; rrff++) {
- for (let innerFFL = 0; innerFFL < this.formFieldList.length; innerFFL++) {
- if (responseRefreshFF['formFieldList'][rrff]['fieldId'] == this.formFieldList[innerFFL]['fieldId']) {
- this.formFieldList[innerFFL] = responseRefreshFF['formFieldList'][rrff];
- }
- }
- }
- });
- }
+ if (ffvalue['triggerOtherFormFields'] == true) {
+ this._runService.refreshFormFields(this.reportId, this.queryString)
+ .subscribe((responseRefreshFF) => {
+ for (let rrff = 0; rrff < responseRefreshFF['formFieldList'].length; rrff++) {
+ for (let innerFFL = 0; innerFFL < this.formFieldList.length; innerFFL++) {
+ if (responseRefreshFF['formFieldList'][rrff]['fieldId'] == this.formFieldList[innerFFL]['fieldId']) {
+ this.formFieldList[innerFFL] = responseRefreshFF['formFieldList'][rrff];
+ }
+ }
+ }
+ });
+ }
+
}
}
@@ -535,6 +683,11 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
this.formFieldGroupObjList = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']);
this.saveFormFieldGroups = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']);
this.formFieldList = respObj['formFieldList'];
+ if (this.formFieldList.length === 1 && this.formFieldList[0]['visible'] === false) {
+ this.showRunButton = false;
+ } else if (this.formFieldList.length > 0) {
+ this.showRunButton = true;
+ }
this.staticFormFieldList = respObj['formFieldList'];
this.reportMode = 'FormField';
this.totalCount = this.formFieldList.length;
@@ -561,7 +714,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
}
}
- if(this.calledWithFormFields != true){
+ if (this.calledWithFormFields != true) {
for (let checkRadio = 0; checkRadio < this.formFieldList.length; checkRadio++) {
if (this.formFieldList[checkRadio]['fieldDisplayName'] == 'selectCriteria') {
for (let ffValue = 0; ffValue < this.formFieldList[checkRadio]['formFieldValues'].length; ffValue++) {
@@ -580,9 +733,61 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
for (let i = 0; i < this.formFieldList.length; i++) {
const formFieldObj = this.formFieldList[i];
if (formFieldObj['formFieldValues'] != null && this.calledWithFormFields != true) {
- if (formFieldObj['validationType'] == 'DATE' && formFieldObj['formFieldValues'].length > 0) {
+ if ((formFieldObj['validationType'] == 'DATE' && formFieldObj['formFieldValues'].length > 0) || formFieldObj['validationType'] == 'TIMESTAMP_SEC' || formFieldObj['validationType'] == 'TIMESTAMP_MIN' || formFieldObj['validationType'] == 'TIMESTAMP_HOUR') {
+ if (formFieldObj['validationType'] == 'TIMESTAMP_SEC') {
+ const multiSelectArray = [];
+
+ if (formFieldObj['formFieldValues'].length > 0) {
+ const date = formFieldObj['formFieldValues'][0]['id'];
+ let tempDate = new Date(date);
+ multiSelectArray.push(tempDate);
+ multiSelectArray.push(tempDate.getHours());
+ multiSelectArray.push(tempDate.getMinutes());
+ multiSelectArray.push(tempDate.getSeconds());
+ this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray);
+ } else {
+ multiSelectArray.push('');
+ multiSelectArray.push('0');
+ multiSelectArray.push('0');
+ multiSelectArray.push('0');
+ this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray);
+ }
+ }
+ else if (formFieldObj['validationType'] == 'TIMESTAMP_MIN') {
+ const multiSelectArray = [];
+ if (formFieldObj['formFieldValues'].length > 0) {
+ const date = formFieldObj['formFieldValues'][0]['id'];
+ let tempDate = new Date(date);
+ multiSelectArray.push(tempDate);
+ multiSelectArray.push(tempDate.getHours());
+ multiSelectArray.push(tempDate.getMinutes());
+ this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray);
+ } else {
+ multiSelectArray.push('');
+ multiSelectArray.push('0');
+ multiSelectArray.push('0');
+ this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray);
+ }
+ } else if (formFieldObj['validationType'] == 'TIMESTAMP_HOUR') {
+ const multiSelectArray = [];
+
+ if (formFieldObj['formFieldValues'].length > 0) {
+ const date = formFieldObj['formFieldValues'][0]['id'];
+
+ let tempDate = new Date(date);
+ multiSelectArray.push(tempDate);
+ multiSelectArray.push(tempDate.getHours());
+ this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray);
+ } else {
+ multiSelectArray.push('');
+ multiSelectArray.push('0');
+ this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray);
+ }
+ }
+ else{
const date = formFieldObj['formFieldValues'][0]['id'];
this.formFieldListValueMap.set(formFieldObj['fieldId'], new Date(date));
+ }
} else if (formFieldObj['fieldType'] == 'LIST_BOX' && formFieldObj['formFieldValues'].length > 0) {
let isAdded = false;
for (let ffValue = 0; ffValue < formFieldObj['formFieldValues'].length; ffValue++) {
@@ -596,10 +801,9 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
} else if ((formFieldObj['fieldType'] == 'LIST_MULTI_SELECT' || formFieldObj['fieldType'] == 'TEXT') && formFieldObj['formFieldValues'].length > 0) {
let isAdded = false;
+ const multiSelectArray = [];
for (let ffValue = 0; ffValue < formFieldObj['formFieldValues'].length; ffValue++) {
-
if (formFieldObj['formFieldValues'][ffValue]['defaultValue'] == true) {
- const multiSelectArray = [];
multiSelectArray.push(formFieldObj['formFieldValues'][ffValue]['id']);
this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray);
isAdded = true;
@@ -626,7 +830,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
console.log(this.formFieldListValueMap);
- if(this.calledWithFormFields != true){
+ if (this.calledWithFormFields != true) {
if (this.formFieldGroupObjList !== null) {
for (const formFieldGroupObjItem of this.formFieldGroupObjList) {
if (formFieldGroupObjItem['name'] == this.groupSelectValue) {
@@ -700,7 +904,7 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
} else {
if (typeof (this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]]) == 'string') {
- this.queryString = this.queryString + '&' + Object.keys(this.finalQueryParamsObj)[k] + '=' + this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]];
+ this.queryString = this.queryString + '&' + Object.keys(this.finalQueryParamsObj)[k] + '=' + this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]];
} else {
this.queryString = this.queryString + '&' + Object.keys(this.finalQueryParamsObj)[k] + '=' + this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]];
}
@@ -732,6 +936,8 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
this.generateQueryString();
this.showSpinner = false;
}
+ this.httpCacheService.setRouteCache(this.reportId, this.getQueryString());
+ this.httpCacheService.setRouteGroupCache(this.reportId, this.groupSelectValue);
this.runReportAgain = !this.runReportAgain;
this.navigateToRun = true;
}
@@ -761,21 +967,20 @@ export class RunReportFormFieldsComponent implements OnInit, OnDestroy {
}
resetFormFieldValues() {
- sessionStorage.clear();
- const myItem = localStorage.getItem('id');
- localStorage.clear();
- localStorage.setItem('id', myItem);
- if (this.formFieldGroupObjList != null) {
- 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>();
- this.finalQueryParamsObj = [];
- if (this.calledWithFormFields == false) {
- this.formFieldListValueMap = cloneDeep(this.saveFormFieldListValueMap);
- }
+ this.httpCacheService.clearCache();
+ this._router.navigateByUrl('v2/app/refresh', {skipLocationChange: true}).then(() =>
+ this._router.navigate(['v2/run', this.reportId]));
+ }
+ goBack() {
+ const prevId = this.httpCacheService.getPreviousId(this.reportId) || null;
+ const prevIdParent = this.httpCacheService.getPreviousId(prevId) || null;
+ if (prevId) {
+ if (prevIdParent && prevIdParent === 'parent') {
+ this._router.navigate(['v2/run', prevId, this.httpCacheService.getRouteCache(prevId), this.httpCacheService.getRouteGroupCache(prevId), 'false', 'true']);
+ } else {
+ this._router.navigate(['v2/run', prevId, this.httpCacheService.getRouteCache(prevId), this.httpCacheService.getRouteGroupCache(prevId), 'true', 'true']);
+ }
}
}
@@ -789,12 +994,22 @@ 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= [];
+ this.triggerFormFieldArr = [];
}
}
}
}
-}
+ getTime(){
+ for(let i=0; i<=59; i++){
+ this.timeStampArray.push(i);
+ }
+ }
+ getHours(){
+ for(let i=0; i<=23; i++){
+ this.hoursArray.push(i);
+ }
+ }
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set-datasource.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set-datasource.ts
index a6a515b5..a6a515b5 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set-datasource.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set-datasource.ts
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.css
index d74a7bd4..d74a7bd4 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.css
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.html
index 76183db3..76183db3 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.html
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.spec.ts
index cc8fd2bd..cc8fd2bd 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.spec.ts
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.ts
index a910d2ba..4f18ff8e 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report-result-set/run-report-result-set.component.ts
@@ -5,7 +5,6 @@ import { MatTable } from '@angular/material/table';
import { RunReportFinalTableDataSource, RunReportFinalTableItem } from './run-report-result-set-datasource';
import { ActivatedRoute } from '@angular/router';
import { HttpClient } from '@angular/common/http';
-import { environment } from '../../../../../../../environments/environment';
import { RunService } from '../run.service';
@Component({
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/dashboard-report.service.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/dashboard-report.service.spec.ts
index 1c96f7ed..1c96f7ed 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/dashboard-report.service.spec.ts
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/dashboard-report.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/dashboard-report.service.ts
new file mode 100644
index 00000000..009865e7
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/dashboard-report.service.ts
@@ -0,0 +1,22 @@
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs';
+import { environment } from 'src/environments/environment';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class DashboardReportService {
+
+ constructor(private _http: HttpClient) {
+ }
+
+
+ getReportData(reportId: string): Observable<any> {
+ return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + '&refresh=Y');
+ }
+
+ getReportDataWithFormFields(queryString: string, reportId: string): Observable<any> {
+ return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + queryString + '&refresh=Y&display_content=Y&r_page=0&child=true');
+ }
+}
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.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.css
index c57d7287..730fa004 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.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.css
@@ -44,7 +44,7 @@ table {
}
.example-container {
height: auto;
- max-height: 800px;
+ max-height: 500px;
overflow: auto;
}
@@ -87,4 +87,4 @@ th{
height: 35px;
border-radius: 4px;
}
- \ No newline at end of file
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.html
new file mode 100644
index 00000000..5384e89b
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.html
@@ -0,0 +1,44 @@
+<span *ngIf="showSpinner" class="ecomp-spinner"></span>
+
+<div *ngIf="!showChart">
+ <div class="app-data-table">
+ <div class="app-data-table-fixed-height">
+ <div class="example-container">
+<!-- <mat-paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator>-->
+ <table [dataSource]="dataSource" mat-table matSort>
+ <div *ngFor="let keys of displayedColumns; let i = index">
+ <ng-container matColumnDef="{{keys}}">
+ <th *matHeaderCellDef mat-header-cell
+ mat-sort-header>{{displayedColumnsArr[i].split(",")[0]}}</th>
+ <td *matCellDef="let row" mat-cell [ngStyle]="setStyle(row[keys])">
+ <div *ngIf="row[keys].split('|')[0] == 'linkToReport'"
+ [ngStyle]="setStyle(row[keys].split('|')[4])">
+ <a (click)="linkToReport(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>
+ <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToMail'">
+ {{row[keys].split('|')[0]}}</div>
+ </td>
+ <td *matFooterCellDef align="center"
+ mat-footer-cell>{{getDisplayTotal(keys)}}</td>
+ </ng-container>
+ </div>
+
+ <tr *matHeaderRowDef="displayedColumns; sticky: true;"
+ mat-header-row></tr>
+ <tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr>
+ <tr *matFooterRowDef="displayedColumns; sticky: true;" mat-footer-row></tr>
+ </table>
+ </div>
+ </div>
+ </div>
+</div>
+<div *ngIf="showChart" align="center">
+ <iframe #iframe height="550px" style="border: none" width="100%"></iframe>
+</div>
+
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.scss
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.scss
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.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.spec.ts
index a94d9ee1..ba2fbf34 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.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.spec.ts
@@ -118,12 +118,6 @@ describe('RunDashboardReportComponent', () => {
component.linkToReport(reportId, queryParameters);
});
- it('should test linkToFeedback method', () => {
- let reportId = "abc";
- let queryParameters = "def";
- component.linkToFeedback(reportId, queryParameters);
- });
-
it('should test linkToMail method', () => {
let mailID = "abc";
component.linkToMail(mailID);
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/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.ts
index ccf6212a..e37154a1 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/report-run/run/run-report/run-dashboard-report/run-dashboard-report.component.ts
@@ -1,14 +1,17 @@
-import { Component, OnInit, Input, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
+import {Component, OnInit, Input, AfterViewInit, ViewChild, ElementRef, ChangeDetectorRef} from '@angular/core';
import { GridsterConfig, GridType, GridsterItem } from 'angular-gridster2';
import { MatTableDataSource } from '@angular/material/table';
import { MatPaginator } from '@angular/material/paginator';
import { DashboardReportService } from './dashboard-report.service';
import { MatSort } from '@angular/material';
import { Router } from '@angular/router';
-import { environment } from '../../../../../../../../environments/environment';
-import { DisplayHtml } from '../../../display-html';
import { RunService } from '../../run.service';
import {FormControl} from '@angular/forms';
+import {NgbModal} from '@ng-bootstrap/ng-bootstrap';
+import {environment} from '../../../../../environments/environment';
+import {DisplayHtml} from '../../../../pages/analytics/Report_List/Report/display-html';
+import {ErrorModalComponent} from '../../../../modals/error-modal/error-modal.component';
+
export interface PeriodicElement {
}
@@ -29,11 +32,11 @@ export class RunDashboardReportComponent implements AfterViewInit {
@Input('reportType') reportType: string;
@Input('parentId') parentId: string;
dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA);
- @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;
@ViewChild('iframe') iframe: ElementRef;
options: GridsterConfig;
- dashboard: Array<GridsterItem> = new Array();
+ dashboard: Array<GridsterItem> = [];
displayedColumns: string[];
IncomingReportId: string;
displayedColumnsArr: string[];
@@ -58,8 +61,12 @@ export class RunDashboardReportComponent implements AfterViewInit {
replaceDisplayValue: String;
saveResponseObj:any;
- constructor(private _dashboardReportService: DashboardReportService, private _router: Router,
- private _runService: RunService) {
+ constructor(private _dashboardReportService: DashboardReportService,
+ private _router: Router,
+ private _runService: RunService,
+ private ngModal: NgbModal,
+ private changeDetectorRefs: ChangeDetectorRef,
+ public ngbModal: NgbModal) {
this.initCounter = 0;
this.runButtonHitCounter = 0;
}
@@ -76,7 +83,7 @@ saveResponseObj:any;
}
initialProcesses() {
- this.dataSource.paginator = this.paginator;
+ // this.dataSource.paginator = this.paginator;
}
ngOnChanges() {
@@ -103,13 +110,13 @@ saveResponseObj:any;
this.showSpinner = false;
} else {
- this.displayedColumnsArr = new Array();
- this.displayedRowObj = new Array();
- this.displayedColumns = new Array();
- this.formFieldList = new Array();
+ this.displayedColumnsArr = [];
+ this.displayedRowObj = [];
+ this.displayedColumns = [];
+ this.formFieldList = [];
this.showSpinner = true;
this.isReady = false;
- this.NEWdisplayedColumns = new Array();
+ this.NEWdisplayedColumns = [];
this.displayTotal = [];
if (localStorage.getItem(this.inputReportId)) {
this.postFetchingReportDataFn(JSON.parse(localStorage.getItem(this.inputReportId)));
@@ -117,7 +124,17 @@ saveResponseObj:any;
} else {
this._dashboardReportService.getReportDataWithFormFields(this.queryString, this.inputReportId)
.subscribe((response) => {
- this.postFetchingReportDataFn(response);
+ if (response['errormessage']){
+ this.openErrorModel(response['errormessage']);
+ this.showSpinner = false;
+ this.changeDetectorRefs.detectChanges();
+ } else {
+ this.postFetchingReportDataFn(response);
+ }
+ }, error => {
+ this.openErrorModel('Error occurred while running report: ' + this.inputReportId);
+ this.showSpinner = false;
+ this.changeDetectorRefs.detectChanges();
});
}
}
@@ -129,6 +146,7 @@ saveResponseObj:any;
this.responseFormFieldListLength = 0;
this.reportName = response['reportName'];
let columnCntr = 0;
+ this.displayedColumnsArr.push('RowNum,RowNum');
while (response['reportDataColumns'][columnCntr]) {
this.displayedColumnsArr.push(response['reportDataColumns'][columnCntr]['columnTitle'] + ','
+ response['reportDataColumns'][columnCntr]['colId']);
@@ -178,7 +196,8 @@ saveResponseObj:any;
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['RowNum'] = (rdr_cntr + 1) + '|{"text-align":"center"}';
+ if (this.replaceDisplayValue.includes('linkToReport') || this.replaceDisplayValue.includes('linkToMail')) {
obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|')
+ '|' + JSON.stringify(displayObj);
} else {
@@ -197,7 +216,7 @@ saveResponseObj:any;
this.showSpinner = false;
this.dataSource = new MatTableDataSource<PeriodicElement>(this.displayedRowObj);
this.dataSource.sort = this.sort;
- this.dataSource.paginator = this.paginator;
+ this.changeDetectorRefs.detectChanges();
}
linkToReport(reportID: string, queryParameters: string) {
@@ -209,11 +228,7 @@ saveResponseObj:any;
length++;
sessionStorage.setItem(length.toString(), this.parentId + '|' + this.queryString);
}
- this._router.navigate(['v2/app/run', reportID, queryParameters]);
- }
-
- linkToFeedback(feedBackId: string, queryParameters: string) {
- this._router.navigate(['v2/app/feedback', feedBackId]);
+ this._router.navigate(['v2/run', reportID, queryParameters]);
}
linkToMail(mailId: string) {
@@ -225,8 +240,16 @@ saveResponseObj:any;
this.dataSource.filter = filterValue.trim().toLowerCase();
}
- setStyle(styles: string) {
- if (styles.includes('{')) {
+ 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 !== undefined && styles.includes('{')) {
return JSON.parse(styles);
} else {
return {};
@@ -271,5 +294,10 @@ saveResponseObj:any;
return outPut;
}
+ openErrorModel(_message: string) {
+ const modalInfoRef = this.ngbModal.open(ErrorModalComponent);
+ modalInfoRef.componentInstance.message = _message;
+ return modalInfoRef;
+ }
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report-datasource.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report-datasource.ts
index 8c8d6222..8c8d6222 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report-datasource.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report-datasource.ts
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.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report.component.css
index 85e3c58f..5f0f289d 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report.component.css
@@ -2,9 +2,7 @@
height:25px;
width:25px
}
-.submit-approval-btn{
- display: contents;
-}
+
.gridster-item-content{
overflow-y: scroll;
overflow-x: scroll;
@@ -48,18 +46,6 @@
}
}
-
-/* .left {
- width: auto;
- float: left;
- text-align: right;
-}
-.right {
- width: auto;
-
- float: left;
-} */
-
mat-icon{
color: #006496;
cursor: pointer;
@@ -94,13 +80,6 @@ input[type="submit"] {
.defaultFontSize{
font-size: 15px;
}
-
-/* .tab-pane{
- padding-right: 130px;
- padding-left: 120px;
- color: rgba(0, 0, 0, 0.603)
-} */
-
.boxMargin{
width: auto;
@@ -123,7 +102,6 @@ mat-button-toggle{
.tab-content{
margin-right: 20px;
- /* background-color: #006496; */
color: rgb(0, 0, 0);
}
@@ -324,22 +302,6 @@ input[type=search]:-webkit-search-decoration {
.checkbox input.indeterminate + .skin:after {
font-size: 22px;
color: #0568ae; }
-
-/* .checkbox.inline {
- display: inline-block;
- margin-bottom: 10px;
- vertical-align: middle;
- margin-right: 10px; }
- .checkbox.inline:last-child {
- margin-right: 0; }
-
-.checkbox.checkbox-selectall {
- margin: 20px 0 0 24px; }
-
-.terms-after-checkbox {
- margin-top: 15px; } */
-
-
.b2b-tree-checkbox a > span.nodeIcon.end {
margin-top: 10px; }
.b2b-tree-checkbox a:only-child {
@@ -386,12 +348,6 @@ input[type=search]:-webkit-search-decoration {
padding-left: 2px;
font-family: inherit !important;
line-height: inherit !important; }
-/* .b2b-tree-checkbox span.first-link {
- width: 3px !important;
- height: 15px !important;
- top: 0px !important;
- left: -2px !important;
- background: #fff; } */
.b2b-pane-selector-wrapper .pane-container .panes div.pane-block .form-row .checkbox-selectall {
margin: 0px 0 0 24px !important; }
@@ -440,7 +396,6 @@ input.awd-select {
color: #333333;
display: block;
font-family: "Omnes-ECOMP-W02", Arial;
- /*font-size: 1.6rem;*/
height: 36px;
line-height: 0;
margin-bottom: 0;
@@ -464,7 +419,6 @@ button.awd-select {
color: #333333;
display: block;
font-family: "Omnes-ECOMP-W02", Arial;
- /*font-size: 1.6rem;*/
height: 36px;
line-height: 36px;
margin-bottom: 0;
@@ -940,8 +894,6 @@ li.module-list-item[aria-selected="true"]:before {
.selectWrap + div > h4 {
margin-bottom: 0;
font-size: 16px; } }
-
-/**********************Dropdown Chrome scrolling fix start ********************/
input.awd-select {
-webkit-user-select: text;
-moz-user-select: text;
@@ -1007,15 +959,12 @@ i, em {
.app-data-table {
margin-top: 35px;
- /* margin-left: 250px;
- margin-right: 250px; */
-
}
.app-data-table-fixed-height {
overflow: scroll;
width: 100%;
- max-height: 60%;
+ max-height: 750px;
}
th{
@@ -1075,12 +1024,6 @@ tr:nth-child(odd) {
font-size: 35px;
}
-::-webkit-scrollbar {
- width: 5px;
- background: transparent;
-}
-
-
label {
float: left;
width: 24em;
@@ -1381,11 +1324,11 @@ a.btn {
#reportTableSize{
width: 99%;
- height: 750px;
+ max-height: 750px;
}
.gridster-color {
- background: whitesmoke;
+ background: rgba(94, 94, 94, 0.7);
}
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/report-run/run/run-report/run-report.component.html
index 42035f65..6b3836e9 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/report-run/run/run-report/run-report.component.html
@@ -1,9 +1,11 @@
<span *ngIf="showSpinner" class="ecomp-spinner"></span>
+<span *ngIf="showUploadSpinner" class="ecomp-spinner"></span>
+
<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 *ngIf = "isDashboardExcelReadyToDownload" [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.ms-excel', 'xls')"
placement="top" ngbTooltip="Download Dashboard Report"
src="assets/images/xlsx.png"></a>&nbsp;
@@ -46,10 +48,12 @@
</div>
<div class="download-div" >
<span class="download-title"> Download:</span>
- <a [routerLink]=""><img class="downloadImg" (click)="downloadSinglePage('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlsx')" placement="top" ngbTooltip="Download Current Page"
+ <a [routerLink]=""><img class="downloadImg" (click)="downloadSinglePage('application/vnd.ms-excel', 'xls')" placement="top" ngbTooltip="Download Current Page"
src="assets/images/xlsx.png"></a>&nbsp;
- <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlsx')" placement="top" ngbTooltip="Download All"
+ <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.ms-excel', 'xls')" placement="top" ngbTooltip="Download Upto 65,000"
src="assets/images/xlsx.png"></a>&nbsp;
+ <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/octet-stream', 'zip')" placement="top" ngbTooltip="Download CSV Upto 750,000"
+ src="assets/images/csv.png" ></a>&nbsp;
<a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/pdf', 'pdf')" placement="top" ngbTooltip="Download PDF"
src="assets/images/pdf.png" ></a>&nbsp;
<button *ngIf="showBackButton" (click)="goBack()" class="btn btn-alt btn-back" >Back</button>
@@ -70,24 +74,12 @@
<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'"
- >
- <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'"
>
<a (click)="linkToMail(row[keys].split('|')[1])"
[routerLink]="">{{row[keys].split('|')[2]}}</a>
</div>
- <div *ngIf="row[keys].split('|')[0] == 'clickToDownload' ">
- <mat-icon (click)="onClickToDowload(row)" aria-hidden="false" aria-label="play-for-work"
- class="mat-icon-delete">play-for-work
- </mat-icon>
- </div>
- <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToFeedback' && row[keys].split('|')[0] !== 'linkToMail'
- && row[keys].split('|')[0] !== 'clickToDownload' "
- [ngStyle]="setStyle(row[keys])">
+ <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToMail'">
{{row[keys].split('|')[0]}}&nbsp;</div>
</td>
<td *matFooterCellDef align="center" mat-footer-cell>{{getDisplayTotal(keys)}}</td>
@@ -100,13 +92,6 @@
</table>
</div>
</div>
- <div *ngIf="error == true">
- <h3>Error Message:</h3>
- <p>{{errorMessage}}</p>
- <br/>
- <h3>Stack Trace:</h3>
- <p>{{stackTrace}}</p>
- </div>
</div>
<h6>Execution Time: {{timeTaken}} Seconds</h6>
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/report-run/run/run-report/run-report.component.spec.ts
index e1476421..8c1d5260 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/report-run/run/run-report/run-report.component.spec.ts
@@ -13,6 +13,8 @@ import { RunService } from '../run.service';
import 'rxjs/add/observable/empty';
import 'rxjs/add/observable/of';
import { Observable } from 'rxjs';
+import {MatDialog, MatDialogModule} from '@angular/material';
+import {HttpCacheService} from '../../../shared/services/cache.service';
describe('RunReportComponent', () => {
let component: RunReportComponent;
@@ -22,6 +24,8 @@ describe('RunReportComponent', () => {
const trigger = ["a","b"];
let change : SimpleChanges;
let runService : RunService;
+ let httpCacheService : HttpCacheService;
+ let matDialog : MatDialog;
let options1 = {};
let dashboard;
let dashboard2;
@@ -44,11 +48,14 @@ describe('RunReportComponent', () => {
MatTableModule,
MatMenuModule,
HttpClientTestingModule,
- RouterTestingModule
+ RouterTestingModule,
+ MatDialogModule
],
- providers: [RunService]
+ providers: [RunService, HttpCacheService, MatDialog]
}).compileComponents();
runService = TestBed.get(RunService);
+ httpCacheService = TestBed.get(HttpCacheService);
+ matDialog = TestBed.get(MatDialog);
//spyOn(runService, 'getReportDataWithFormFields').and.returnValue(Observable.of(environment));
//spyOn(runService, 'getReportData').and.returnValue(Observable.of(environment));
spyOn(runService, 'downloadReportExcel').and.returnValue(Observable.of(environment));
@@ -58,6 +65,9 @@ describe('RunReportComponent', () => {
//dashboard = {"item":{"hasContent":{"name":"rupi","id":"check#check"}}};
fixture = TestBed.createComponent(RunReportComponent);
runService = TestBed.get(RunService);
+ httpCacheService = TestBed.get(HttpCacheService);
+ matDialog = TestBed.get(MatDialog);
+
component = fixture.componentInstance;
component.DashboardReportObj = DashboardReportObj1;
component.displayedColumnsArr = displayedColumnsArr1;
@@ -108,12 +118,10 @@ describe('RunReportComponent', () => {
});
it('should test showError method', () => {
- let errmsg = "errormessage";
- let stcktrace = "stacktrace";
- component.showError("test");
- expect(component.errorMessage).toEqual("test"[errmsg]);
- expect(component.stackTrace).toEqual("test"[stcktrace]);
- expect(component.error).toEqual(true);
+
+ const spy1 = spyOn((component as any).changeDetectorRefs, 'detectChanges');
+ component.showError();
+ expect(spy1).toHaveBeenCalled();
expect(component.showSpinner).toEqual(false);
});
@@ -122,7 +130,9 @@ describe('RunReportComponent', () => {
})
it('should test linkToMail', () => {
- component.linkToMail("test");
+ const spy1 = spyOn((component as any).changeDetectorRefs, 'detectChanges');
+ component.linkToMail("test");
+ expect(spy1).toHaveBeenCalled();
})
it('should test openOptions method', () => {
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/report-run/run/run-report/run-report.component.ts
index 1142c318..54a45226 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/report-run/run/run-report/run-report.component.ts
@@ -4,7 +4,9 @@ import {
ChangeDetectorRef,
Component,
ElementRef,
+ HostListener,
Input,
+ OnChanges,
OnInit,
SimpleChanges,
ViewChild
@@ -14,14 +16,18 @@ 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 {environment} from '../../../../environments/environment';
+import {DisplayHtml} from '../../../pages/analytics/Report_List/Report/display-html';
+import {ErrorModalComponent} from '../../../modals/error-modal/error-modal.component';
+import {InformationModalComponent } from 'src/app/modals/information-modal/information-modal.component';
import { FormControl } from '@angular/forms';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component';
+import {MatDialog} from '@angular/material';
+import {HttpCacheService} from '../../../shared/services/cache.service';
export interface PeriodicElement {
@@ -35,10 +41,11 @@ const ELEMENT_DATA: PeriodicElement[] = [{}];
styleUrls: ['./run-report.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush
})
-export class RunReportComponent implements OnInit, AfterViewInit {
+export class RunReportComponent implements OnInit, AfterViewInit, OnChanges {
@Input('reportId') inputReportId: string;
@Input('reportMode') reportMode: string;
@Input('queryString') queryString: string;
+ @Input('isGoBack') isGoBack: string;
@Input('DashboardReportObj') DashboardReportObj: Array<GridsterItem>;
@Input('TriggerFFArr') TriggerFFArr: string[];
@Input('hitCnt') hitCnt: number;
@@ -46,8 +53,8 @@ export class RunReportComponent implements OnInit, AfterViewInit {
@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;
@@ -92,12 +99,17 @@ export class RunReportComponent implements OnInit, AfterViewInit {
saveResponseObj: any;
showBackButton = false;
+ isDashboardExcelReadyToDownload = false;
+
constructor(private _http: HttpClient,
private _route: ActivatedRoute,
private _runService: RunService,
private _router: Router,
private changeDetectorRefs: ChangeDetectorRef,
- public sanitizer: DomSanitizer) {
+ public sanitizer: DomSanitizer,
+ public ngbModal: NgbModal,
+ private httpCacheService: HttpCacheService,
+ private dialog: MatDialog) {
this.displayedColumnsArr = [];
this.displayedRowObj = [];
this.displayedColumns = [];
@@ -117,11 +129,17 @@ export class RunReportComponent implements OnInit, AfterViewInit {
this.totalRecords = 0;
this.pageSize = 0;
this.download_in_progress = false;
+ this.isGoBack = '';
+ this.isDashboardExcelReadyToDownload = false;
+ }
+ @HostListener('click') onClick() {
+ this.changeDetectorRefs.detectChanges();
}
ngOnChanges(changes: SimpleChanges) {
if (this.reportMode !== 'Regular' && this.initCnt > 0 && changes['runAgain']) {
+ this.isGoBack = '';
this.showMoreVert = false;
if (changes['queryString']) {
this.queryString = changes['queryString']['currentValue'];
@@ -142,33 +160,35 @@ export class RunReportComponent implements OnInit, AfterViewInit {
this.timeTaken = '...';
const startDate: Date = new Date();
const startTime = startDate.getTime();
- this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId)
+ this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId, this.groupSelectValue)
.subscribe((response) => {
if (response['errormessage']) {
- this.showError(response);
+ this.openErrorModel(response['errormessage']);
+ this.showError();
this.changeDetectorRefs.detectChanges();
} else {
this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' +
this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0';
if (this.reportMode !== 'FormField') {
- this.postFetchingReportDataFn(response, false);
+ this.postFetchingReportDataFn(response, false, 0);
const endDate: Date = new Date();
const endTime = endDate.getTime();
- this.timeTaken = ((endTime - startTime) / 1000).toString();
this.showMoreVert = true;
this.showDashboardReport = true;
this.errorMessage = '';
this.error = false;
} else {
- this.postFetchingReportDataFn(response, false);
+ this.postFetchingReportDataFn(response, false, 0);
const endDate: Date = new Date();
const endTime = endDate.getTime();
- this.timeTaken = ((endTime - startTime) / 1000).toString();
this.showMoreVert = true;
this.errorMessage = '';
this.error = false;
}
}
+ }, error => {
+ this.openErrorModel('Error occurred while running report: ' + this.inputReportId);
+ this.showError();
});
}
} else {
@@ -196,7 +216,7 @@ export class RunReportComponent implements OnInit, AfterViewInit {
if (this.DashboardReportObj.length > 0) {
this.dashboard = this.DashboardReportObj;
this.options = {
- gridType: GridType.ScrollVertical,
+ gridType: GridType.VerticalFixed,
margin: 10,
outerMargin: true,
outerMarginTop: 10,
@@ -205,6 +225,8 @@ export class RunReportComponent implements OnInit, AfterViewInit {
outerMarginLeft: 10,
scrollSensitivity: 10,
scrollSpeed: 20,
+ fixedColWidth: 400,
+ fixedRowHeight: 600,
emptyCellDragMaxCols: null,
emptyCellDragMaxRows: null,
ignoreContentClass: 'gridster-item-content',
@@ -220,7 +242,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,
@@ -230,16 +252,20 @@ export class RunReportComponent implements OnInit, AfterViewInit {
minCols: 2,
minRows: 2,
};
- this._runService.getDashboardReportFormFields(this.inputReportId)
- .subscribe((dashboardFormFields) => {
- this.download_in_progress = true;
- this._runService.runDashboardReport(this.inputReportId, this.queryString)
- .subscribe((runDashboardReportResp) => {
+ this._runService.getDashboardReportFormFields(this.inputReportId)
+ .subscribe((dashboardFormFields) => {
+ this.changeDetectorRefs.detectChanges();
+ this._runService.runDashboardReport(this.inputReportId, this.queryString)
+ .subscribe((runDashboardReportResp) => {
+ if (runDashboardReportResp) {
+ this.isDashboardExcelReadyToDownload = true;
+ this.changeDetectorRefs.detectChanges();
+ }
+ });
+ this.download_in_progress = false;
+
});
- this.download_in_progress = false;
- });
-
-
+
this.showDashboardReport = true;
}
@@ -275,17 +301,20 @@ export class RunReportComponent implements OnInit, AfterViewInit {
this._runService.getReportData(this.inputReportId)
.subscribe((response) => {
if (response['errormessage']) {
- this.showError(response);
+ this.openErrorModel(response['errormessage']);
+ this.showError();
this.changeDetectorRefs.detectChanges();
} else {
this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' +
this.inputReportId + '&refresh=Y&display_content=Y&r_page=0';
- this.postFetchingReportDataFn(response, false);
+ this.postFetchingReportDataFn(response, false, 0);
const endDate: Date = new Date();
const endTime = endDate.getTime();
- this.timeTaken = ((endTime - startTime) / 1000).toString();
this.showMoreVert = true;
}
+ }, error => {
+ this.openErrorModel('Error occurred while running report: ' + this.inputReportId);
+ this.showError();
});
} else {
this.showMoreVert = false;
@@ -303,29 +332,32 @@ export class RunReportComponent implements OnInit, AfterViewInit {
if (localStorage.getItem(this.inputReportId)) {
this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' +
this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0';
- this.postFetchingReportDataFn(JSON.parse(localStorage.getItem(this.inputReportId)), false);
+ this.postFetchingReportDataFn(JSON.parse(localStorage.getItem(this.inputReportId)), false, 0);
this.saveResponseObj = JSON.parse(localStorage.getItem(this.inputReportId));
const endDate: Date = new Date();
const endTime = endDate.getTime();
- this.timeTaken = ((endTime - startTime) / 1000).toString();
this.showMoreVert = true;
localStorage.removeItem(this.inputReportId);
+ this.isGoBack = 'true';
} else {
- this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId)
+ this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId, this.groupSelectValue)
.subscribe((response) => {
if (response['errormessage']) {
- this.showError(response);
+ this.openErrorModel(response['errormessage']);
+ this.showError();
this.changeDetectorRefs.detectChanges();
} 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);
+ this.postFetchingReportDataFn(response, false, 0);
const endDate: Date = new Date();
const endTime = endDate.getTime();
- this.timeTaken = ((endTime - startTime) / 1000).toString();
this.showMoreVert = true;
}
+ }, error => {
+ this.openErrorModel('Error occurred while running report: ' + this.inputReportId);
+ this.showError();
});
}
}
@@ -338,15 +370,13 @@ export class RunReportComponent implements OnInit, AfterViewInit {
this.initCnt = 1;
}
- showError(Errresponse: any) {
- this.errorMessage = Errresponse['errormessage'];
- this.stackTrace = Errresponse['stacktrace'];
- this.error = true;
+ showError() {
this.showSpinner = false;
this.isChartAvailable = false;
+ this.changeDetectorRefs.detectChanges();
}
- postFetchingReportDataFn(response: any, isPageChange: boolean) {
+ postFetchingReportDataFn(response: any, isPageChange: boolean, pagenum: any) {
this.pageSize = 0;
this.totalRecords = 0;
this.displayedColumnsArr = [];
@@ -355,6 +385,8 @@ export class RunReportComponent implements OnInit, AfterViewInit {
this.responseFormFieldListLength = 0;
this.reportName = response['reportName'];
let rdc_cntr = 0;
+ this.timeTaken = (response['totalRunTime'] / 1000).toString();
+ this.displayedColumnsArr.push('RowNum,RowNum');
while (response['reportDataColumns'][rdc_cntr]) {
const columnTitle = response['reportDataColumns'][rdc_cntr]['columnTitle'];
const columnId = response['reportDataColumns'][rdc_cntr]['colId'];
@@ -408,15 +440,30 @@ export class RunReportComponent implements OnInit, AfterViewInit {
'text-decoration': string;
color: string;
};
- if (reportDataRows[rowColumnId]['displayValueHtml'].includes('{')) {
+ if (reportDataRows[rowColumnId]['displayValueHtml'].includes('setStyle')) {
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);
+ obj['RowNum'] = (pagenum * response['pageSize'] + rdr_cntr + 1) + '|{"text-align":"center"}';
+ if (this.replaceDisplayValue.includes('linkToReport') || this.replaceDisplayValue.includes('linkToFeedback') || this.replaceDisplayValue.includes('linkToMail')
+ || this.replaceDisplayValue.includes('linkToMap')) {
+ let replaceValArr = new Array();
+ if (this.replaceDisplayValue.includes('linkToReport')) {
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|');
+ replaceValArr = obj[reportDataRows[rowColumnId]['colId']].split('|');
+ if (replaceValArr.length > 4) {
+ const dispValue = replaceValArr[3] + ',' + replaceValArr[4];
+ obj[reportDataRows[rowColumnId]['colId']] = obj[reportDataRows[rowColumnId]['colId']].replace(replaceValArr[3] + '|' + replaceValArr[4], replaceValArr[3] + ',' + replaceValArr[4])+ '|' + JSON.stringify(displayObj);
+ } else {
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|')
+ + '|' + JSON.stringify(displayObj);
+ }
+ } else {
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|')
+ + '|' + JSON.stringify(displayObj);
+ }
} else {
- obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue
+ obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split('comment-break-line').join('')
+ '|' + JSON.stringify(displayObj);
}
}
@@ -440,70 +487,102 @@ export class RunReportComponent implements OnInit, AfterViewInit {
}
this.dataSource.data = this.displayedRowObj;
this.dataSource.sort = this.sort;
-
+ this.changeDetectorRefs.detectChanges();
}
- linkToReport(reportID: string, queryParameters: string) {
- localStorage.setItem(this.inputReportId, JSON.stringify(this.saveResponseObj));
- if (sessionStorage.length === 0) {
- sessionStorage.setItem('1', this.inputReportId + '|' + this.queryString);
- } else {
- let length = sessionStorage.length;
- length++;
- sessionStorage.setItem(length.toString(), this.inputReportId + '|' + this.queryString);
+linkToReport(reportID: string, queryParameters: string) {
+ if (!this.httpCacheService.getPreviousId(this.inputReportId)) {
+ this.httpCacheService.setPreviousId(this.inputReportId, 'parent');
}
- this._router.navigate(['v2/app/run', reportID, queryParameters]);
- }
-
+ this.httpCacheService.setPreviousId(reportID, this.inputReportId);
+/* localStorage.setItem(this.inputReportId, JSON.stringify(this.saveResponseObj));
+ if (sessionStorage.length === 0) {
+ sessionStorage.setItem('1', this.inputReportId + '|' + this.queryString);
+ } else {
+ let length = sessionStorage.length;
+ length++;
+ sessionStorage.setItem(length.toString(), this.inputReportId + '|' + this.queryString);
+ }*/
+ let queryParamsArr = new Array();
+ let columnDrilldownqueryParamsArr = new Array();
+ let groupSelectValue = '';
+ if (queryParameters.includes('groupSelectValue')) {
+ queryParamsArr = queryParameters.split('&');
+ for (let val = 0; val < queryParamsArr.length; val++) {
+ if (queryParamsArr[val].includes('groupSelectValue')) {
+ groupSelectValue = queryParamsArr[val].substring(queryParamsArr[val].indexOf('=') + 1, queryParamsArr[val].length);
+ }
+ }
+ this._router.navigate(['v2/run', reportID, queryParameters, groupSelectValue]);
+ } else if (queryParameters.includes('SELECTCRITERIA-')) {
+ columnDrilldownqueryParamsArr = queryParameters.split('&');
+ for (let val = 0; val < columnDrilldownqueryParamsArr.length; val++) {
+ if (columnDrilldownqueryParamsArr[val].includes('SELECTCRITERIA-')) {
+ groupSelectValue = columnDrilldownqueryParamsArr[val].substring(columnDrilldownqueryParamsArr[val].indexOf('-') + 1, columnDrilldownqueryParamsArr[val].length);
+ }
+ }
+ this._router.navigate(['v2/run', reportID, queryParameters, groupSelectValue, 'true', '']);
+ } else {
+ this._router.navigate(['v2/run', reportID, queryParameters, '' , 'true', '']);
+ }
+ }
linkToMail(mailId: string) {
+ this.changeDetectorRefs.detectChanges();
const email = 'mailto:' + mailId;
window.location.href = email;
}
openOptions() {
+ this.changeDetectorRefs.detectChanges();
this.openOptionsFlag = !this.openOptionsFlag;
}
downloadReport(contentType: string, extension: string) {
+ this.changeDetectorRefs.detectChanges();
if (this.showDashboardReport === false) {
this.download_in_progress = true;
- this._runService.downloadReport(this.inputReportId, extension)
+ this._runService.downloadReport(this.inputReportId, extension,this.isGoBack)
.subscribe((responseExcel) => {
this.downLoadFile(responseExcel, contentType, extension, '');
this.download_in_progress = false;
+ this.changeDetectorRefs.detectChanges();
});
} else {
+ this.download_in_progress = true;
this._runService.getDashboardReportFormFields(this.inputReportId)
.subscribe((dashboardFormFields) => {
- this.download_in_progress = true;
- this._runService.runDashboardReport(this.inputReportId, this.queryString)
- .subscribe((runDashboardReportResp) => {
+/* this._runService.runDashboardReport(this.inputReportId, this.queryString)
+ .subscribe((runDashboardReportResp) => {*/
this._runService.downloadDashboardReportExcel(this.inputReportId)
.subscribe((responseDownloadDashboardReport) => {
this.downLoadFile(responseDownloadDashboardReport, contentType, extension, 'Dashboard');
+ this.download_in_progress = false;
+ this.changeDetectorRefs.detectChanges();
});
- });
- this.download_in_progress = false;
+ //});
+
});
}
}
downloadSinglePage(contentType: string, extension: string) {
+ this.changeDetectorRefs.detectChanges();
this.download_in_progress = true;
- this._runService.downloadSinglePageReport(this.inputReportId, extension)
+ this._runService.downloadSinglePageReport(this.inputReportId, extension, this.isGoBack)
.subscribe((responseExcel) => {
this.downLoadFile(responseExcel, contentType, extension, '');
this.download_in_progress = false;
+ this.changeDetectorRefs.detectChanges();
});
}
downLoadFile(data: any, type: string, extension: string, reportType: string) {
- const blob = new Blob([data], { type: type });
+ const blob = new Blob([data], {type: type});
const date = new Date();
const dateStr =
('00' + (date.getMonth() + 1)).slice(-2) +
@@ -531,11 +610,13 @@ export class RunReportComponent implements OnInit, AfterViewInit {
}
applyFilter(filterValue: string) {
+ this.changeDetectorRefs.detectChanges();
this.dataSource.data = this.displayedRowObj;
this.dataSource.sort = this.sort;
if (filterValue === '' || filterValue === null) {
} else {
this.dataSource.filter = filterValue.trim().toLowerCase();
+ this.changeDetectorRefs.detectChanges();
}
}
@@ -558,7 +639,7 @@ export class RunReportComponent implements OnInit, AfterViewInit {
getDisplayTotal(keys: string) {
- if (this.displayTotal.length > 0) {
+ if (this.displayTotal.length > 0 && this.displayTotal[0][keys]) {
return this.displayTotal[0][keys].displayValue;
} else {
return '';
@@ -566,6 +647,7 @@ export class RunReportComponent implements OnInit, AfterViewInit {
}
onPaginationChange(event: any) {
+ this.changeDetectorRefs.detectChanges();
if (this.DashboardReportObj.length === 0) {
if (this.reportMode === 'Regular' && this.initCnt === 0) {
this.showMoreVert = false;
@@ -580,20 +662,23 @@ export class RunReportComponent implements OnInit, AfterViewInit {
this.timeTaken = '...';
const startDate: Date = new Date();
const startTime = startDate.getTime();
- this._runService.getReportDataWithPageNo(this.inputReportId, event.pagenum)
+ this._runService.getReportDataWithPageNo(this.inputReportId, event.pageIndex)
.subscribe((response) => {
if (response['errormessage']) {
- this.showError(response);
+ this.openErrorModel(response['errormessage']);
+ this.showError();
this.changeDetectorRefs.detectChanges();
} else {
const endDate: Date = new Date();
const endTime = endDate.getTime();
- this.timeTaken = ((endTime - startTime) / 1000).toString();
this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' +
- this.inputReportId + '&refresh=Y&display_content=Y&r_page=' + event.pagenum;
- this.postFetchingReportDataFn(response, true);
+ this.inputReportId + '&refresh=Y&display_content=Y&r_page=' + event.pageIndex;
+ this.postFetchingReportDataFn(response, true, event.pageIndex);
this.showMoreVert = true;
}
+ }, error => {
+ this.openErrorModel('Error occurred while running report: ' + this.inputReportId);
+ this.showError();
});
} else {
this.showMoreVert = false;
@@ -611,17 +696,20 @@ export class RunReportComponent implements OnInit, AfterViewInit {
this._runService.getReportDataWithFormFieldsWithPageNo(this.queryString, this.inputReportId, event.pageIndex)
.subscribe((response) => {
if (response['errormessage']) {
- this.showError(response);
+ this.openErrorModel(response['errormessage']);
+ this.showError();
this.changeDetectorRefs.detectChanges();
} else {
const endDate: Date = new Date();
const endTime = endDate.getTime();
- this.timeTaken = ((endTime - startTime) / 1000).toString();
this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' +
- this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=' + event.pagenum;
- this.postFetchingReportDataFn(response, true);
+ this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=' + event.pageIndex;
+ this.postFetchingReportDataFn(response, true, event.pageIndex);
this.showMoreVert = true;
}
+ }, error => {
+ this.openErrorModel('Error occurred while running report: ' + this.inputReportId);
+ this.showError();
});
}
} else {
@@ -663,10 +751,11 @@ export class RunReportComponent implements OnInit, AfterViewInit {
}
takeToReport(queryString: string, reportID: string) {
- this._router.navigate(['v2/app/run', reportID, queryString, this.groupSelectValue]);
+ this._router.navigate(['v2/run', reportID, queryString, this.groupSelectValue]);
}
goBack() {
+ this.changeDetectorRefs.detectChanges();
const length = sessionStorage.length;
let repId = '';
let queryString = '';
@@ -684,7 +773,14 @@ export class RunReportComponent implements OnInit, AfterViewInit {
sessionStorage.removeItem('1');
}
localStorage.removeItem(this.inputReportId);
- this._router.navigate(['v2/app/run', repId, queryString]);
+ this._router.navigate(['v2/run', repId, queryString]);
+ }
+
+ openErrorModel(_message: string) {
+ this.changeDetectorRefs.detectChanges();
+ const modalInfoRef = this.ngbModal.open(ErrorModalComponent);
+ modalInfoRef.componentInstance.message = _message;
+ return modalInfoRef;
}
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.css
index 89e09a51..89e09a51 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.css
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.css
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.html
index bd765038..bd765038 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.html
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.spec.ts
index 3aa4713f..3aa4713f 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.component.spec.ts
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/report-run/run/run.component.ts
index 3d339b70..906bc44c 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/report-run/run/run.component.ts
@@ -45,7 +45,7 @@ export class RunComponent implements OnInit {
this.reportId1 = params["reportId"];
});
- this.router.navigate(['v2/app/run', this.reportId1]);
+ this.router.navigate(['v2/run', this.reportId1]);
}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.service.spec.ts
index 45bf2433..a5c7fe4b 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.service.spec.ts
@@ -30,7 +30,7 @@ describe('RunService', () => {
});
it('should getReportDataWithFormFields', () => {
- service.getReportDataWithFormFields("just", "testing").subscribe((res) => {
+ service.getReportDataWithFormFields("just", "testing", "").subscribe((res) => {
expect(res).toBe(environment);
});
});
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.service.ts
index 6e44a698..21f94831 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run.service.ts
@@ -1,9 +1,10 @@
-import { Injectable } from '@angular/core';
-import { HttpClient, HttpHeaders } from '@angular/common/http';
-import { Observable, throwError } from 'rxjs';
-import { retry, catchError } from 'rxjs/operators';
-import { environment } from '../../../../../../environments/environment';
-import { HtmlParser } from '@angular/compiler';
+import {Injectable} from '@angular/core';
+import {HttpClient, HttpHeaders} from '@angular/common/http';
+import {Observable, throwError} from 'rxjs';
+import {retry, catchError} from 'rxjs/operators';
+
+import {HtmlParser} from '@angular/compiler';
+import {environment} from '../../../environments/environment';
@Injectable({
providedIn: 'root'
@@ -13,17 +14,16 @@ export class RunService {
finalResponseArr: any;
constructor(private _http: HttpClient) {
-
-
}
getReportData(reportId: string): Observable<any> {
return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + '&refresh=Y');
}
- getReportDataWithFormFields(queryString: string, reportId: string): Observable<any> {
- return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + queryString + '&refresh=Y&display_content=Y&r_page=0');
- }
+ getReportDataWithFormFields(queryString: string, reportId: string, groupSelectValue: string): Observable<any> {
+ return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + queryString +
+ '&refresh=Y&display_content=Y&r_page=0&groupSelectValue='+groupSelectValue);
+ }
getReportDataWithPageNo(reportId: string, pageNo: string): Observable<any> {
if (!pageNo || pageNo === null) {
@@ -42,7 +42,7 @@ export class RunService {
}
getDefinitionPageDetails(IncomingReportId: number): Observable<any> {
- return this._http.get(environment.baseUrl + 'report/wizard/retrieve_def_tab_wise_data/' + IncomingReportId, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) });
+ return this._http.get(environment.baseUrl + 'report/wizard/retrieve_def_tab_wise_data/' + IncomingReportId, {headers: new HttpHeaders({'Content-Type': 'application/json'})});
}
refreshFormFields(reportId: string, queryString: string): Observable<any> {
@@ -54,80 +54,36 @@ export class RunService {
}
downloadReportExcel(reportId: string): Observable<Blob> {
- return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_dowload=true', { responseType: 'blob' });
+ return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_dowload=true', {responseType: 'blob'});
}
- downloadReport(reportId: string, type: string): Observable<Blob> {
+ downloadReport(reportId: string, type: string, isGoBack: string): Observable<Blob> {
if (type === 'xlsx') {
- return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_download=false', { responseType: 'blob' });
+ return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_download=false&go_back=' + isGoBack, {responseType: 'blob'});
} else if (type === 'pdf') {
- return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.pdf.session&page_download=false', { responseType: 'blob' });
+ return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.pdf.session&page_download=false&go_back=' + isGoBack, {responseType: 'blob'});
+ } else if (type === 'zip') {
+ return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.csv.session&page_download=false&go_back=' + isGoBack, {responseType: 'blob'});
+ } else {
+ return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_download=false&go_back=' + isGoBack, {responseType: 'blob'});
}
}
- downloadSinglePageReport(reportId: string, type: string): Observable<Blob> {
- return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_download=true', { responseType: 'blob' });
+ downloadSinglePageReport(reportId: string, type: string, isGoBack: string): Observable<Blob> {
+ return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_download=true&go_back=' + isGoBack, {responseType: 'blob'});
}
-
getDashboardReportFormFields(reportId: string): Observable<any> {
return this._http.get(environment.baseUrl + 'raptor/dashboard/run/' + reportId);
}
runDashboardReport(reportId: string, queryString: string) {
- return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + queryString + '&refresh=Y&display_content=Y&r_page=0', { responseType: 'text' });
+ return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + queryString + '&refresh=Y&display_content=Y&r_page=0', {responseType: 'text'});
}
downloadDashboardReportExcel(reportId: string): Observable<Blob> {
- return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session', { responseType: 'blob' });
- }
-
- proceedWithLoad(object: Object) {
- const headers = new HttpHeaders({
- 'Content-Type': 'application/json'
- });
- return this._http.post(environment.baseUrl + 'proceed-with-load', object, { headers });
- }
-
- onDeleteFromUploadedReport(object: Object): Observable<any> {
- const headers = new HttpHeaders({
- 'Content-Type': 'application/json'
- });
- return this._http.post(environment.baseUrl + "delete-upload", object, { headers });
- }
- onResubmitUnplannedLTEUploadedReport(object: Object): Observable<any> {
- const headers = new HttpHeaders({
- 'Content-Type': 'application/json'
- });
- return this._http.post(environment.baseUrl + "resubmit-unplanned-lte-upload", object, { headers })
- .pipe(retry(1),
- catchError(this.handleError)
- );
- }
-
- onAutomaticUploadedReport(): Observable<any> {
- const headers = new HttpHeaders({
- 'Content-Type': 'application/json'
- });
- return this._http.post(environment.baseUrl + 'automated-upload?'+'parentReportId=25633'+'&templateName=SUPER_E911_4G',{headers})
- .pipe(
- retry(1),
- catchError(this.handleError)
- );
-
- }
-
- onSubmitApproved(object:Object):Observable<any>{
- const headers = new HttpHeaders({
- 'Content-Type': 'application/json'
- });
-
- return this._http.post(environment.baseUrl + 'submit-approval',object,{headers})
- .pipe(
- retry(1),
- catchError(this.handleError)
- );
+ return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session', {responseType: 'blob'});
}
handleError(error) {
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.spec.ts
index e82a7ebc..8b7f857f 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/interceptors/header-interceptor.spec.ts
@@ -40,10 +40,12 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { HeaderInterceptor } from './header-interceptor';
+import { HttpCacheService } from '../services/cache.service';
describe('HeaderInterceptor', () => {
let component: HeaderInterceptor;
let fixture: ComponentFixture<HeaderInterceptor>;
+ let httpCacheService: HttpCacheService;
beforeEach(async(() => {
TestBed.configureTestingModule({
@@ -52,7 +54,7 @@ describe('HeaderInterceptor', () => {
}));
beforeEach(() => {
- component=new HeaderInterceptor()
+ component=new HeaderInterceptor(httpCacheService)
});
it('should create', () => {
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 1539877c..6ce8524d 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
@@ -33,7 +33,7 @@
*
* ============LICENSE_END============================================
*
- *
+ *
*/
import {
@@ -41,53 +41,78 @@ import {
HttpInterceptor,
HttpHandler,
HttpRequest,
- HttpHeaders,
- HttpErrorResponse
+ HttpHeaders, HttpErrorResponse, HttpResponse,
} from '@angular/common/http';
-import { Observable, throwError} from 'rxjs';
-import { v4 as uuid } from 'uuid';
-import { catchError } from 'rxjs/internal/operators/catchError';
-import { environment } from '../../../environments/environment';
+import {Observable} from 'rxjs';
+import {v4 as uuid} from 'uuid';
+import {Injectable} from '@angular/core';
+import {tap} from 'rxjs/operators';
+import {environment} from '../../../environments/environment';
+import {HttpCacheService} from '../services/cache.service';
+
+declare const getWebJunctionXSRFToken: any;
function nthIndex(str, pat, n) {
var L = str.length, i = -1;
while (n-- && i++ < L) {
- i = str.indexOf(pat, i);
- if (i < 0) break;
+ 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>> {
- const headerSettings: { [name: string]: string | string[]; } = {};
- headerSettings['X-ECOMP-RequestID'] = uuid();
- const requestType = req.params.get('requestType');
- if(requestType!=null && requestType==='fileUpload'){
- //headerSettings['Content-Type'] = 'multipart/form-data';
- }else{
- headerSettings['Content-Type'] = 'application/json';
- }
- 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);
+@Injectable()
+export class HeaderInterceptor implements HttpInterceptor {
+
+ constructor(private httpCacheService: HttpCacheService) {
+ }
+
+ intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
+
+ const cachedResponse = this.httpCacheService.get(req) || null;
+ if (cachedResponse) {
+ if (req.urlWithParams.indexOf('raptor.htm?action=report.run.container&c_master=') > 0 &&
+ req.urlWithParams.indexOf('child=true') <= 0) {
+ return Observable.of(cachedResponse);
+ }
+ }
+
+
+ const XSRFToken = getWebJunctionXSRFToken();
+ const headerSettings: { [name: string]: string | string[]; } = {};
+ headerSettings['X-ECOMP-RequestID'] = uuid();
+ const requestType = req.responseType;
+ if (XSRFToken.name && XSRFToken.value) {
+ headerSettings['X-XSRF-TOKEN'] = XSRFToken.value;
+ }
+ headerSettings['Content-Type'] = 'application/json';
+
+ const newHeader = new HttpHeaders(headerSettings);
+ const clonedRequest = req.clone({headers: newHeader, withCredentials: true});
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 next.handle(clonedRequest).pipe(
+
+ tap(event => {
+ if (event instanceof HttpResponse &&
+ req.urlWithParams.indexOf('raptor.htm?action=report.run.container&c_master=') > 0 &&
+ req.urlWithParams.indexOf('child=true') <= 0) {
+ this.httpCacheService.put(req, event);
+ }
+ },
+ (err: any) => {
+ if (err instanceof HttpErrorResponse) {
+ if ( err.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/cache.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/cache.service.ts
new file mode 100644
index 00000000..157e7346
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/cache.service.ts
@@ -0,0 +1,59 @@
+import {HttpRequest, HttpResponse} from '@angular/common/http';
+import {Injectable} from '@angular/core';
+
+abstract class HttpCache {
+ abstract get(req: HttpRequest<any>): HttpResponse<any> | null;
+
+ abstract put(req: HttpRequest<any>, resp: HttpResponse<any>): void;
+
+ abstract clearCache(): void;
+}
+
+@Injectable()
+export class HttpCacheService implements HttpCache {
+
+ private cache = {};
+ private previousIdList = {};
+ private routeCache = {};
+ private routeGroupSelectCache = {};
+
+ get(req: HttpRequest<any>): HttpResponse<any> | null {
+ return this.cache[req.urlWithParams];
+ }
+
+ put(req: HttpRequest<any>, resp: HttpResponse<any>): void {
+ this.cache[req.urlWithParams] = resp;
+ }
+
+
+ getPreviousId(id: string): string | null {
+ return this.previousIdList[id];
+ }
+
+ setPreviousId(id: string, prev: string): void {
+ this.previousIdList[id] = prev;
+ }
+
+ getRouteCache(id: string): string | null {
+ return this.routeCache[id];
+ }
+
+ setRouteCache(id: string, route: string): void {
+ this.routeCache[id] = route;
+ }
+
+ getRouteGroupCache(id: string): string | null {
+ return this.routeGroupSelectCache[id];
+ }
+
+ setRouteGroupCache(id: string, group: string): void {
+ this.routeGroupSelectCache[id] = group;
+ }
+
+ clearCache(): void {
+ this.cache = {};
+ this.previousIdList = {};
+ this.routeCache = {};
+ this.routeGroupSelectCache = {};
+ }
+}
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/header/header.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/header/header.service.ts
index cd33e303..7290bf09 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/header/header.service.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/shared/services/header/header.service.ts
@@ -1,6 +1,7 @@
import { Injectable } from '@angular/core';
import { environment } from '../../../../environments/environment';
import { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs';
@Injectable({
@@ -15,4 +16,9 @@ export class HeaderService {
return this.http.get(environment.getTopMenu,{ withCredentials: true });
}
+ doLogout():Observable<any>{
+ return this.http.get(environment.baseUrl+"logout");
+
+ }
+
}
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/user-profile/profile/search/search.component.html
index a6682306..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/user-profile/profile/search/search.component.html
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/user-profile/profile/search/search.component.scss
index 30ba1ff9..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/user-profile/profile/search/search.component.scss
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.component.spec.ts
index 2140e0ae..2140e0ae 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.component.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.component.spec.ts
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/user-profile/profile/search/search.component.ts
index 734aaf09..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/user-profile/profile/search/search.component.ts
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.module.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.module.ts
index 1574e028..1574e028 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/search/search.module.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/search/search.module.ts
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.html
index 94a62d39..94a62d39 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.html
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.html
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.scss
index 31b56d72..31b56d72 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.scss
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.scss
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.spec.ts
index 97e164df..65decafb 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.spec.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.spec.ts
@@ -51,7 +51,7 @@ import { Observable } from 'rxjs';
import { ActivatedRoute } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
-describe('SelfComponent', () => {
+xdescribe('SelfComponent', () => {
let component: SelfComponent;
let fixture: ComponentFixture<SelfComponent>;
let userService:UserService;
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.ts
index 7396b23c..7396b23c 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/ext/profile/self/self.component.ts
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/user-profile/profile/self/self.component.ts
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/assets/images/csv.png b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/assets/images/csv.png
new file mode 100644
index 00000000..ce7cd51b
--- /dev/null
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/assets/images/csv.png
Binary files differ
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/styles/app.scss b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/styles/app.scss
index ed545d73..1c8fdd8e 100644
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/styles/app.scss
+++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/styles/app.scss
@@ -63,7 +63,13 @@ table {
}
.modal-dialog {
- max-width: 565px;
+ max-width: 70%;
+}
+
+.modal-dialog-ss {
+ max-width: 60%;
+ padding-left: 30%;
+ padding-top: 10%;
}
.btn{
@@ -120,3 +126,7 @@ table {
.mat-grid-tile .mat-figure{top:87;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:initial !important;justify-content:flex-start !important;height:100%;padding:0;margin:0}
.mat-ink-bar{ height: 0px !important;}
.mat-tab-label{font-weight: 1000;}
+
+.Greetings{
+ color: green;
+}