diff options
Diffstat (limited to 'portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog')
4 files changed, 373 insertions, 0 deletions
diff --git a/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.html b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.html new file mode 100644 index 00000000..01e27a99 --- /dev/null +++ b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.html @@ -0,0 +1,117 @@ +<!-- + ============LICENSE_START========================================== + ONAP Portal + =================================================================== + Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + =================================================================== + + Unless otherwise specified, all software contained herein is licensed + under the Apache License, Version 2.0 (the "License"); + you may not use this software except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Unless otherwise specified, all documentation contained herein is licensed + under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + you may not use this documentation except in compliance with the License. + You may obtain a copy of the License at + + https://creativecommons.org/licenses/by/4.0/ + + Unless required by applicable law or agreed to in writing, documentation + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ============LICENSE_END============================================ + + + --> +<div class="container"> + <!--Modal Headers--> + <div class="modal-header"> + <h4 class="modal-title">Web Analytics Report Details</h4> + <button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross')"> + <span aria-hidden="true">×</span> + </button> + </div> + + <!--Modal Body goes here--> + <div class="modal-body"> + <div class="app-properties-main"> + <div [hidden]="isEditMode" style="width: 75%;"> + <!--<div id='ecomp-small-spinner' class="ecomp-small-spinner" *ngIf="isAllApplications"></div>--> + <div *ngIf="isAllApplications"> + <span runat="server" ID="required" style="color: Red;" + visible="false">*</span> + <mat-form-field class="web-analytics-applications-select"> + <mat-label> Application Name </mat-label> + <mat-select name="web-analytics-application-select" id="application" + name="applicationName" [(ngModel)]="userTableAppReport.appName" [(value)]="selected"> + <mat-option *ngFor="let d of allApplications" [value]="d" >{{d.appName}}</mat-option> + </mat-select> + </mat-form-field> + </div> + <div id="web-analytics-message-required" + *ngIf="!userTableAppReport.appName && userTableAppReport.appName === ''"> + <small class="mandatory-categories" + style="color: Red; font-size: 11px;">Application Name is Required</small> + </div> + </div> + + <div class="property-label" *ngIf="isEditMode"> + <div class="property-label"> + <span runat="server" ID="required" style="color: Red;" visible="false"> *</span>Application Name : + </div> + <input id="input-Application-name" type="text" ddh-reset + [(ngModel)]="userTableAppReport.appName" style="width: 75%;" + name="appId" [disabled]="isEditMode" /> + <div id="web-analytics-message-required" + ng-show="(userTableAppReport.appName && (userTableAppReport.appName.length == 0 ||! userTableAppReport.appName))"> + <small class="mandatory-categories" style="color: Red; font-size: 11px;">Application ID is Required</small> + </div> + </div> + + <div class="property-label"> + <div class="property-label"> + <span runat="server" ID="required" style="color: Red;" visible="false"> *</span>Report Name : + </div> + <input id="input-report-name" type="text" ddh-reset [(ngModel)]="userTableAppReport.reportName" style="width: 75%;" /> + <div id="web-analytics-message-required" + [hidden]="(userTableAppReport.reportName && (userTableAppReport.reportName|| userTableAppReport.reportName.length == 0))"> + <small class="mandatory-categories" + style="color: Red; font-size: 11px;">Report Name is Required</small> + </div> + </div> + + <div class="property-label"> + <div class="property-label"> + <span runat="server" ID="required" style="color: Red;" visible="false"> *</span>Report URL : + </div> + <input id="input-report-url" type="text" ddh-reset [(ngModel)]="userTableAppReport.reportSrc" style="width: 75%;" /> + <div id="web-analytics-message-required" + [hidden]="(userTableAppReport.reportSrc && (userTableAppReport.reportSrc || userTableAppReport.reportSrc.length == 0))"> + <small class="mandatory-categories" style="color: Red; font-size: 11px;">Report URL is Required</small> + </div> + </div> + </div> + </div> + + <!--Modal Footer goes Here--> + <div class="modal-footer"> + <button type="submit" class="btn btn-primary" + [disabled]="(userTableAppReport.appName && userTableAppReport.appName === '')||(userTableAppReport.reportName && (!userTableAppReport.reportName + ||userTableAppReport.reportName.length == 0))||(userTableAppReport.reportSrc && (userTableAppReport.reportSrc.length == 0 + || !userTableAppReport.reportSrc))"(click)="saveChanges()">Save</button> + + <button type="button" class="btn btn-primary" (click)="activeModal.close('Close')">Cancel</button> + </div> +</div>
\ No newline at end of file diff --git a/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.scss b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.scss new file mode 100644 index 00000000..7a773398 --- /dev/null +++ b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.scss @@ -0,0 +1,37 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * + */
\ No newline at end of file diff --git a/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.spec.ts b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.spec.ts new file mode 100644 index 00000000..4dc85724 --- /dev/null +++ b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.spec.ts @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * + */ + +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WebAnalyticsDetailsDialogComponent } from './web-analytics-details-dialog.component'; + +describe('WebAnalyticsDetailsDialogComponent', () => { + let component: WebAnalyticsDetailsDialogComponent; + let fixture: ComponentFixture<WebAnalyticsDetailsDialogComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ WebAnalyticsDetailsDialogComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(WebAnalyticsDetailsDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.ts b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.ts new file mode 100644 index 00000000..3b5a23ef --- /dev/null +++ b/portal-FE-common/src/app/pages/web-analytics/web-analytics-details-dialog/web-analytics-details-dialog.component.ts @@ -0,0 +1,156 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * + */ + +import { Component, OnInit, Input, Output, EventEmitter} from '@angular/core'; +import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { WebAnalyticsService } from 'src/app/shared/services'; + +@Component({ + selector: 'app-web-analytics-details-dialog', + templateUrl: './web-analytics-details-dialog.component.html', + styleUrls: ['./web-analytics-details-dialog.component.scss'] +}) +export class WebAnalyticsDetailsDialogComponent implements OnInit { + + result: any; + isEditMode: boolean = false; + isAllApplications: boolean = true; + emptyImg = null; + allApplications: any = []; + allApps: any = []; + + newAppModel = { + 'appId': null, + 'appName':null, + 'reportName': null, + 'reportSrc': null, + 'resourceId': null + }; + + newApp={ + 'appId': '', + 'appName':'' + } + + constructor(public activeModal: NgbActiveModal, public ngbModal: NgbModal, + public webAnalyticsService : WebAnalyticsService) { } + + @Input() userTableAppReport: any; + @Output() passEntry: EventEmitter<any> = new EventEmitter(); + + ngOnInit() { + this.isAllApplications = true; + if(this.userTableAppReport.appName){ + this.isEditMode = true; + }else{ + this.isEditMode = false; + } + //console.log("IsEditMode in Web analytycs Dialog :: ",this.isEditMode) + this.getAllApplications(); + } + + getAllApplications(){ + this.isAllApplications = true; + this.webAnalyticsService.getAllApplications() + .subscribe(_data => { + this.result = _data; + if (this.result == null || this.result == 'undefined') { + //console.log('WebAnalyticsService::getAllApplications Failed: Result or result.data is null'); + }else { + for (let i = 0; i < this.result.length; i++) { + var application = { + appId : this.result[i].id, + appName: this.result[i].name, + enabled : this.result[i].enabled, + restrictedApp :this.result[i].restrictedApp, + }; + this.allApps.push(application); + } + for (let i = 0; i < this.allApps.length; i++) { + if((this.allApps[i].enabled == true && this.allApps[i].restrictedApp == false) || (this.allApps[i].appId == 1) ) { + var validApplication = { + appId : this.allApps[i].appId, + appName: this.allApps[i].appName, + }; + this.allApplications.push(validApplication); + } + } + } + }, error =>{ + this.isAllApplications = false; + console.log(error); + }); + } + + saveChanges(){ + //console.log("Save Changes Called."); + let selectedApplication = this.userTableAppReport.appName; + this.newAppModel.appId = selectedApplication.appId; + this.newAppModel.appName = selectedApplication.appName; + this.newAppModel.reportName = this.userTableAppReport.reportName; + this.newAppModel.reportSrc = this.userTableAppReport.reportSrc; + this.newAppModel.resourceId = this.userTableAppReport.resourceId; + + if (this.isEditMode) { + this.newAppModel.appId = this.userTableAppReport.appId; + //console.log("Update Analytics..newAppModel :: ",this.userTableAppReport); + this.webAnalyticsService.updateWebAnalyticsReport(this.newAppModel) + .subscribe(_data => { + this.result = _data; + //console.log("Update Analytics Response:: ",this.result); + this.passEntry.emit(this.result); + this.ngbModal.dismissAll(); + }, error =>{ + this.isAllApplications = false; + console.log(error); + }); + }else{ + //console.log("Save Analytics.newAppModel :: ",this.userTableAppReport); + this.webAnalyticsService.save(this.newAppModel) + .subscribe(_data => { + this.result = _data; + //console.log("Save Analytics Response:: ",this.result); + this.passEntry.emit(this.result); + this.ngbModal.dismissAll(); + }, error =>{ + this.isAllApplications = false; + console.log(error); + }); + } + } +} |