From 4d4f41c7cc831906100e10838b40c3b8d86657f2 Mon Sep 17 00:00:00 2001 From: huaxing Date: Wed, 11 Mar 2020 09:50:37 +0800 Subject: Setup js unit test and code coverage framework (1) Use frontend-maven-plugin to integrate frontend development (2) Use jest as test tool (3) Use webpack to create webapp bundle (4) Coverage data is saved in target/jscoverage Issue-ID: POLICY-2311 Signed-off-by: huaxing Change-Id: I34fb7487c1e0ca29114eb7accba8bb7c4812da34 --- gui-pdp-monitoring/src/webapp/js/PdpListView.js | 75 +++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 gui-pdp-monitoring/src/webapp/js/PdpListView.js (limited to 'gui-pdp-monitoring/src/webapp/js/PdpListView.js') diff --git a/gui-pdp-monitoring/src/webapp/js/PdpListView.js b/gui-pdp-monitoring/src/webapp/js/PdpListView.js new file mode 100644 index 0000000..1457a9e --- /dev/null +++ b/gui-pdp-monitoring/src/webapp/js/PdpListView.js @@ -0,0 +1,75 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2020 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +function RenderPdpList(treeArr, className) { + var $ = treeArr, + root = document.createDocumentFragment(), + childLevel = 0 + var index='' + var isNode=false + function insertChildren(parentNode, traverseArr, subGroup) { + + for(let i = 0; i < traverseArr.length; i++) { + if(parentNode === root) { + childLevel = 0 + } + var currentLi = document.createElement('li') + currentLi.setAttribute('level', childLevel) + if(traverseArr[i].children && traverseArr[i].children.length > 0) { + var title = document.createElement('div') + var triangle = document.createElement('i') + var text = document.createElement('p') + currentLi.classList.add('parentNode') + title.classList.add('title') + triangle.classList.add('triangle') + text.innerText = traverseArr[i].title + title.appendChild(triangle) + title.appendChild(text) + currentLi.appendChild(title) + childLevel++ + if(isNode) index="" + if(subGroup !== null){ + index+= subGroup+"/" + } + insertChildren(currentLi, traverseArr[i].children, traverseArr[i].title) + }else { + var a = document.createElement('a') + a.setAttribute('href',"#"+index+subGroup+"/"+traverseArr[i].title) + a.classList.add('pdps__link') + a.textContent= traverseArr[i].title + currentLi.appendChild(a) + isNode=true + } + parentNode.appendChild(currentLi) + } + } + insertChildren(root, $, null) + document.querySelector('ul.' + className + '').appendChild(root) +} + +function highlightSelected (id){ + const resultsArr = Array.from(document.querySelectorAll('.pdps__link')); + resultsArr.forEach(el => { + el.classList.remove('pdps__link--active'); + }); + document.querySelector(`.pdps__link[href*="${id}"]`).classList.add('pdps__link--active'); +}; + +export { RenderPdpList, highlightSelected, }; \ No newline at end of file -- cgit