summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/admin/menus/menus.service.ts
diff options
context:
space:
mode:
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.ts198
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);
+ })
+ }
+
+}