diff options
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts')
-rw-r--r-- | ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts new file mode 100644 index 00000000..912b65bb --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts @@ -0,0 +1,198 @@ + +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 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 { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { RdpCrudInterface } from 'portalsdk-tag-lib'; +import { environment } from 'src/environments/environment'; +import { AdminService } from '../admin.service'; +import { BehaviorSubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class MenusService implements RdpCrudInterface { + + public statusResponse = new BehaviorSubject(""); + public updatedData = new BehaviorSubject<any>({}); + + loadTableData(filter: any, sortActive: any, sortDirection: any, pageIndex: any, pageSize: any): import("rxjs").Observable<any[]> { + throw new Error("Method not implemented."); + } + getTotalRowCount() { + throw new Error("Method not implemented."); + } + + parentDataList: any; + constructor(private http: HttpClient, private adminService: AdminService) { + + } + + + menu = { + action: null, + active: false, + activeAsString: "false", + auditTrail: null, + auditUserId: null, + childMenus: [], + created: null, + createdId: null, + externalUrl: null, + functionCd: null, + id: null, + imageSrc: null, + label: null, + menuLevel: null, + menuSetCode: null, + modified: null, + modifiedId: null, + parentId: null, + parentIdAsString: null, + parentMenu: null, + queryString: null, + rowNum: null, + separator: false, + separatorAsString: false, + servlet: null, + sortOrder: null, + target: null + }; + + add(data: any) { + console.log("Add method is getting called from AppServie data:: ", data); + } + + + update(data: any) { + data.active = this.updateStatus(data.active); + data.separator = this.updateStatus(data.separator); + let keys = Object.keys(data); + let menuCache = this.menu; + keys.forEach(element => { + if (data[element] != null || data[element] != undefined) { + if (element == 'parentId') { + if (isNaN(data[element])) { + menuCache[element] = this.updateParentNameToID(data[element]); + } else{ + menuCache[element] = data[element]; + } + console.log("Parent Id to update : ", menuCache[element]); + } else { + menuCache[element] = data[element]; + } + } + }); + let result = { availableFnMenuItem: menuCache }; + let postData = JSON.stringify(result); + console.log("postData >>>>>>", postData); + this.adminService.updateFnMenuItem(postData) + .subscribe(_data => { + console.log("Response : ", _data); + this.statusResponse.next("200"); + menuCache = this.menu; + }, error => { + console.log("Error : ", error); + menuCache = this.menu; + }); + + } + + delete(data: any) { + console.log("Delete method is getting called from AppServie data::>> " + JSON.stringify(data)); + console.log(data.active); + data.active = this.updateStatus(data.active); + data.separator = this.updateStatus(data.separator); + this.adminService.deleteMenu(data).subscribe(response => { + console.log("Response ", response); + this.statusResponse.next("200"); + }, error => { + console.log("Error : ", error); + }) + } + + private updateStatus(data) { + if (data == 'N') { + return false; + } else { + return true; + } + } + + private updateBooleanValue(data) { + if (data) { + return 'Y'; + } else { + return 'N'; + } + } + + parentList: any; + + getParentList(list) { + this.parentList = list; + } + + private updateParentNameToID(data) { + let val; + this.parentList.forEach(ele => { + if (ele['name'] == data) { + val = ele['id']; + } + }); + console.log("ParentId value ", val); + return val; + } + + get() { + console.log("get method is getting called from MenuServie data:: "); + let response = this.adminService.getFnMenuItems(); + let resp; + response.subscribe(res => { + resp = res; + let responseData = JSON.parse(resp.data).fnMenuItems; + responseData.forEach(element => { + element.active = this.updateBooleanValue(element.active); + element.separator = this.updateBooleanValue(element.separator); + }) + this.updatedData.next(responseData); + }) + } + +} |