diff options
42 files changed, 998 insertions, 509 deletions
@@ -1,7 +1,45 @@ +# Summary + Copyright 2017-2018 AT&T Intellectual Property. All rights reserved. +Copyright (C) 2021 Nordix Foundation. This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE Full license text at https://creativecommons.org/licenses/by/4.0/legalcode This source repository contains the ONAP Policy GUI code. -To build it using Maven 3, run: mvn clean install +To build it using Maven 3, run: mvn clean install -P docker + + +# Docker image + +Maven produces a single docker image containing the policy GUIs. These are exposed on +the same port (8080) using different URLs: +- Apex Policy Editor: http://localhost:8080/apex-editor +- PDP Monitoring UI: http://localhost:8080/pdp-monitoring +- CLAMP Designer UI: http://localhost:8080/clamp + +## Building +You can use the following command to build the policy-gui docker image: +``` +mvn clean install -P docker +``` + +## Deployment +Currently, the policy-gui docker image can be deployed with minimal configuration. As +the clamp backend is required to use the clamp GUI, you can use the CLAMP_REST_URL +environment variable to set its location. + +By default, CLAMP_REST_URL is set to an invalid address (0.0.0.0), meaning the CLAMP GUI +will not work without specifying CLAMP_REST_URL. + +If running clamp as part of a docker network, where `policy-clamp-backend` is the CLAMP +backend, then CLAMP_REST_URL should be set to `https://policy-clamp-backend:8443`. + +If running clamp backend on localhost port 8443, the policy-gui docker image would be +started like this: +``` +docker run -p 8080:8080 \ + --add-host host.docker.internal:host-gateway \ + --env CLAMP_REST_URL=https://host.docker.internal:8443 \ + onap/policy-gui +``` diff --git a/gui-clamp/pom.xml b/gui-clamp/pom.xml index 8d29ce4..a19d1ca 100644 --- a/gui-clamp/pom.xml +++ b/gui-clamp/pom.xml @@ -147,6 +147,17 @@ </configuration> </execution> <execution> + <id>npm_build</id> + <goals> + <goal>npm</goal> + </goals> + <phase>package</phase> + <configuration> + <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory> + <arguments>run build</arguments> + </configuration> + </execution> + <execution> <id>npm_test</id> <goals> <goal>npm</goal> @@ -158,6 +169,7 @@ <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory> </configuration> </execution> + <!-- XXX Are these deploy steps using npm desirable given docker image generation? --> <execution> <id>npm_install_lib</id> <goals> @@ -228,6 +240,25 @@ <artifactId>versions-maven-plugin</artifactId> <version>1.3.1</version> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <executions> + <execution> + <id>generate-gui-clamp-tar</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <descriptors> + <descriptor>src/main/assembly/clamp-build.xml</descriptor> + </descriptors> + <finalName>${project.artifactId}-${project.version}</finalName> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </project> diff --git a/gui-clamp/src/main/assembly/clamp-build.xml b/gui-clamp/src/main/assembly/clamp-build.xml new file mode 100644 index 0000000..215b646 --- /dev/null +++ b/gui-clamp/src/main/assembly/clamp-build.xml @@ -0,0 +1,34 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2021 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========================================================= +--> + +<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd"> + <id>clamp-build</id> + <formats> + <format>tar.gz</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + <fileSets> + <fileSet> + <directory>${project.build.directory}/${ui.react.src}/build</directory> + <outputDirectory>clamp</outputDirectory> + </fileSet> + </fileSets> +</assembly> diff --git a/gui-editors/gui-editor-apex/pom.xml b/gui-editors/gui-editor-apex/pom.xml index b52631a..1854166 100644 --- a/gui-editors/gui-editor-apex/pom.xml +++ b/gui-editors/gui-editor-apex/pom.xml @@ -300,6 +300,28 @@ </transformers> </configuration> </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>3.0.0</version> + <executions> + <execution> + <id>attach-artifacts</id> + <phase>package</phase> + <goals> + <goal>attach-artifact</goal> + </goals> + <configuration> + <artifacts> + <artifact> + <file>${project.build.directory}/${project.artifactId}-uber-${project.version}.jar</file> + <type>uber.jar</type> + </artifact> + </artifacts> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </project> diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/css/interfaceAssets.css b/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/css/interfaceAssets.css index 0f965ee..137aaa7 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/css/interfaceAssets.css +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/css/interfaceAssets.css @@ -1,7 +1,7 @@ /* * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2020 Nordix Foundation. + * Modifications Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1030,14 +1030,14 @@ h4 { display: none; } .ebInput-statusOk:before { - background-image: url('../../resources/form/valid_icon.svg'); + background-image: url('../resources/form/valid_icon.svg'); } .ebInput-statusError { color: #e32119; display: none; } .ebInput-statusError:before { - background-image: url('../../resources/form/invalid_icon.svg'); + background-image: url('../resources/form/invalid_icon.svg'); } .ebInput-status_none { display: none; @@ -1805,901 +1805,901 @@ a.ebBtn_active { margin: 4px; } .ebIcon_upArrow { - background-image: url('../../resources/16px/ArrowUpSmall_black_16px.svg'); + background-image: url('../resources/16px/ArrowUpSmall_black_16px.svg'); } .ebIcon_upArrow_white { - background-image: url('../../resources/16px/arrowUpSmall_white_16px.svg'); + background-image: url('../resources/16px/arrowUpSmall_white_16px.svg'); } .ebIcon_downArrow { - background-image: url('../../resources/16px/ArrowDownSmall_black_16px.svg'); + background-image: url('../resources/16px/ArrowDownSmall_black_16px.svg'); } .ebIcon_downArrow_white { - background-image: url('../../resources/16px/ArrowDownSmall_white_16px.svg'); + background-image: url('../resources/16px/ArrowDownSmall_white_16px.svg'); } .ebIcon_leftArrow { - background-image: url('../../resources/16px/ArrowLeftSmall_black_16px.svg'); + background-image: url('../resources/16px/ArrowLeftSmall_black_16px.svg'); } .ebIcon_leftArrow_white { - background-image: url('../../resources/16px/ArrowLeftSmall_white_16px.svg'); + background-image: url('../resources/16px/ArrowLeftSmall_white_16px.svg'); } .ebIcon_rightArrow { - background-image: url('../../resources/16px/ArrowRightSmall_black_16px.svg'); + background-image: url('../resources/16px/ArrowRightSmall_black_16px.svg'); } .ebIcon_rightArrow_white { - background-image: url('../../resources/16px/ArrowRightSmall_white_16px.svg'); + background-image: url('../resources/16px/ArrowRightSmall_white_16px.svg'); } .ebIcon_prevArrow { - background-image: url('../../resources/16px/ArrowDoubleLeftSmall_black_16px.svg'); + background-image: url('../resources/16px/ArrowDoubleLeftSmall_black_16px.svg'); } .ebIcon_nextArrow { - background-image: url('../../resources/16px/ArrowDoubleRightSmall_black_16px.svg'); + background-image: url('../resources/16px/ArrowDoubleRightSmall_black_16px.svg'); } .ebIcon_upArrow_10px { - background-image: url('../../resources/10px/ArrowUpSmall_black_10px.svg'); + background-image: url('../resources/10px/ArrowUpSmall_black_10px.svg'); } .ebIcon_downArrow_10px { - background-image: url('../../resources/10px/ArrowDownSmall_black_10px.svg'); + background-image: url('../resources/10px/ArrowDownSmall_black_10px.svg'); } .ebIcon_leftArrow_10px { - background-image: url('../../resources/10px/ArrowLeftSmall_black_10px.svg'); + background-image: url('../resources/10px/ArrowLeftSmall_black_10px.svg'); } .ebIcon_rightArrow_10px { - background-image: url('../../resources/10px/ArrowRightSmall_black_10px.svg'); + background-image: url('../resources/10px/ArrowRightSmall_black_10px.svg'); } .ebIcon_prevArrow_10px { - background-image: url('../../resources/10px/ArrowDoubleLeftSmall_black_10px.svg'); + background-image: url('../resources/10px/ArrowDoubleLeftSmall_black_10px.svg'); } .ebIcon_nextArrow_10px { - background-image: url('../../resources/10px/ArrowDoubleRightSmall_black_10px.svg'); + background-image: url('../resources/10px/ArrowDoubleRightSmall_black_10px.svg'); } .ebIcon_errorSmall { - background-image: url('../../resources/other/errorSmall_red_10px.svg'); + background-image: url('../resources/other/errorSmall_red_10px.svg'); } .ebIcon_tickSmallBlack { - background-image: url('../../resources/other/tick_black_10x8px.svg'); + background-image: url('../resources/other/tick_black_10x8px.svg'); } .ebIcon_tickSmallGreen { - background-image: url('../../resources/other/tick_green_10x8px.svg'); + background-image: url('../resources/other/tick_green_10x8px.svg'); } .ebIcon_upArrowLarge { - background-image: url('../../resources/16px/ArrowUp_black_16px.svg'); + background-image: url('../resources/16px/ArrowUp_black_16px.svg'); } .ebIcon_upArrowLarge_white { - background-image: url('../../resources/16px/ArrowUp_white_16px.svg'); + background-image: url('../resources/16px/ArrowUp_white_16px.svg'); } .ebIcon_downArrowLarge { - background-image: url('../../resources/16px/ArrowDown_black_16px.svg'); + background-image: url('../resources/16px/ArrowDown_black_16px.svg'); } .ebIcon_downArrowLarge_white { - background-image: url('../../resources/16px/ArrowDown_white_16px.svg'); + background-image: url('../resources/16px/ArrowDown_white_16px.svg'); } .ebIcon_downArrowLarge_blue { - background-image: url('../../resources/16px/ArrowDown_blue_16px.svg'); + background-image: url('../resources/16px/ArrowDown_blue_16px.svg'); } .ebIcon_leftArrowLarge { - background-image: url('../../resources/16px/ArrowLeft_black_16px.svg'); + background-image: url('../resources/16px/ArrowLeft_black_16px.svg'); } .ebIcon_leftArrowLarge_white { - background-image: url('../../resources/16px/ArrowLeft_white_16px.svg'); + background-image: url('../resources/16px/ArrowLeft_white_16px.svg'); } .ebIcon_rightArrowLarge { - background-image: url('../../resources/16px/ArrowRight_black_16px.svg'); + background-image: url('../resources/16px/ArrowRight_black_16px.svg'); } .ebIcon_rightArrowLarge_white { - background-image: url('../../resources/16px/ArrowRight_white_16px.svg'); + background-image: url('../resources/16px/ArrowRight_white_16px.svg'); } .ebIcon_circleArrowDown { - background-image: url('../../resources/16px/circleArrowDown_black_16px.svg'); + background-image: url('../resources/16px/circleArrowDown_black_16px.svg'); } .ebIcon_circleArrowDown_white { - background-image: url('../../resources/16px/circleArrowDown_white_16px.svg'); + background-image: url('../resources/16px/circleArrowDown_white_16px.svg'); } .ebIcon_circleArrowLeft { - background-image: url('../../resources/16px/circleArrowLeft_black_16px.svg'); + background-image: url('../resources/16px/circleArrowLeft_black_16px.svg'); } .ebIcon_circleArrowLeft_white { - background-image: url('../../resources/16px/circleArrowLeft_white_16px.svg'); + background-image: url('../resources/16px/circleArrowLeft_white_16px.svg'); } .ebIcon_circleArrowRight { - background-image: url('../../resources/16px/circleArrowRight_black_16px.svg'); + background-image: url('../resources/16px/circleArrowRight_black_16px.svg'); } .ebIcon_circleArrowRight_white { - background-image: url('../../resources/16px/circleArrowRight_white_16px.svg'); + background-image: url('../resources/16px/circleArrowRight_white_16px.svg'); } .ebIcon_circleArrowUp { - background-image: url('../../resources/16px/circleArrowUp_black_16px.svg'); + background-image: url('../resources/16px/circleArrowUp_black_16px.svg'); } .ebIcon_circleArrowUp_white { - background-image: url('../../resources/16px/circleArrowUp_white_16px.svg'); + background-image: url('../resources/16px/circleArrowUp_white_16px.svg'); } .ebIcon_circleCaretDown { - background-image: url('../../resources/16px/circleCaretDown_black_16px.svg'); + background-image: url('../resources/16px/circleCaretDown_black_16px.svg'); } .ebIcon_circleCaretDown_white { - background-image: url('../../resources/16px/circleCaretDown_white_16px.svg'); + background-image: url('../resources/16px/circleCaretDown_white_16px.svg'); } .ebIcon_circleCaretLeft { - background-image: url('../../resources/16px/circleCaretLeft_black_16px.svg'); + background-image: url('../resources/16px/circleCaretLeft_black_16px.svg'); } .ebIcon_circleCaretLeft_white { - background-image: url('../../resources/16px/circleCaretLeft_white_16px.svg'); + background-image: url('../resources/16px/circleCaretLeft_white_16px.svg'); } .ebIcon_circleCaretRight { - background-image: url('../../resources/16px/circleCaretRight_black_16px.svg'); + background-image: url('../resources/16px/circleCaretRight_black_16px.svg'); } .ebIcon_circleCaretRight_white { - background-image: url('../../resources/16px/circleCaretRight_white_16px.svg'); + background-image: url('../resources/16px/circleCaretRight_white_16px.svg'); } .ebIcon_circleCaretUp { - background-image: url('../../resources/16px/circleCaretUp_black_16px.svg'); + background-image: url('../resources/16px/circleCaretUp_black_16px.svg'); } .ebIcon_circleCaretUp_white { - background-image: url('../../resources/16px/circleCaretUp_white_16px.svg'); + background-image: url('../resources/16px/circleCaretUp_white_16px.svg'); } .ebIcon_eLogo { background-image: url('../resources/systemBar/econ01.svg'); } .ebIcon_comment { - background-image: url('../../resources/16px/Comment_black_16px.svg'); + background-image: url('../resources/16px/Comment_black_16px.svg'); } .ebIcon_comment_white { - background-image: url('../../resources/16px/comment_white.svg'); + background-image: url('../resources/16px/comment_white.svg'); } .ebIcon_copy { - background-image: url('../../resources/16px/copy_black_16px.svg'); + background-image: url('../resources/16px/copy_black_16px.svg'); } .ebIcon_copy_white { - background-image: url('../../resources/16px/copy_white_16px.svg'); + background-image: url('../resources/16px/copy_white_16px.svg'); } .ebIcon_cut { - background-image: url('../../resources/16px/cut_black.svg'); + background-image: url('../resources/16px/cut_black.svg'); } .ebIcon_cut_white { - background-image: url('../../resources/16px/cut_white.svg'); + background-image: url('../resources/16px/cut_white.svg'); } .ebIcon_delete { - background-image: url('../../resources/16px/delete_black_16px.svg'); + background-image: url('../resources/16px/delete_black_16px.svg'); } .ebIcon_delete_white { - background-image: url('../../resources/16px/delete_white_16px.svg'); + background-image: url('../resources/16px/delete_white_16px.svg'); } .ebIcon_duplicate { - background-image: url('../../resources/16px/duplicate_black_16px.svg'); + background-image: url('../resources/16px/duplicate_black_16px.svg'); } .ebIcon_duplicate_white { - background-image: url('../../resources/16px/duplicate_white_16px.svg'); + background-image: url('../resources/16px/duplicate_white_16px.svg'); } .ebIcon_edit { - background-image: url('../../resources/16px/edit_black_16px.svg'); + background-image: url('../resources/16px/edit_black_16px.svg'); } .ebIcon_editWhite { - background-image: url('../../resources/16px/edit_white_16px.svg'); + background-image: url('../resources/16px/edit_white_16px.svg'); } .ebIcon_newFile { - background-image: url('../../resources/16px/newFile_black_16px.svg'); + background-image: url('../resources/16px/newFile_black_16px.svg'); } .ebIcon_newFile_white { - background-image: url('../../resources/16px/newFile_white_16px.svg'); + background-image: url('../resources/16px/newFile_white_16px.svg'); } .ebIcon_save { - background-image: url('../../resources/16px/save_black_16px.svg'); + background-image: url('../resources/16px/save_black_16px.svg'); } .ebIcon_save_white { background-size: contain; - background-image: url('../../resources/16px/save_white.svg'); + background-image: url('../resources/16px/save_white.svg'); } .ebIcon_filter { - background-image: url('../../resources/16px/filter_black_16px.svg'); + background-image: url('../resources/16px/filter_black_16px.svg'); } .ebIcon_filterOn { - background-image: url('../../resources/16px/filters_on.svg'); + background-image: url('../resources/16px/filters_on.svg'); } .ebIcon_filterOff { - background-image: url('../../resources/16px/filters_off.svg'); + background-image: url('../resources/16px/filters_off.svg'); } .ebIcon_filter_white { - background-image: url('../../resources/16px/filter_white_16px.svg'); + background-image: url('../resources/16px/filter_white_16px.svg'); } .ebIcon_folder { - background-image: url('../../resources/16px/folder_black_16px.svg'); + background-image: url('../resources/16px/folder_black_16px.svg'); } .ebIcon_folder_white { - background-image: url('../../resources/16px/folder_white_16px.svg'); + background-image: url('../resources/16px/folder_white_16px.svg'); } .ebIcon_folderClosed { - background-image: url('../../resources/16px/folderClosed_black.svg'); + background-image: url('../resources/16px/folderClosed_black.svg'); } .ebIcon_folderClosed_white { - background-image: url('../../resources/16px/folderClosed_white.svg'); + background-image: url('../resources/16px/folderClosed_white.svg'); } .ebIcon_detach { - background-image: url('../../resources/16px/detach_black_16px.svg'); + background-image: url('../resources/16px/detach_black_16px.svg'); } .ebIcon_detach_white { background-size: contain; - background-image: url('../../resources/16px/detach_white.svg'); + background-image: url('../resources/16px/detach_white.svg'); } .ebIcon_import { - background-image: url('../../resources/16px/import_black.svg'); + background-image: url('../resources/16px/import_black.svg'); } .ebIcon_import_white { - background-image: url('../../resources/16px/import_white.svg'); + background-image: url('../resources/16px/import_white.svg'); } .ebIcon_export { - background-image: url('../../resources/16px/export_black_16px.svg'); + background-image: url('../resources/16px/export_black_16px.svg'); } .ebIcon_export_white { - background-image: url('../../resources/16px/export_white.svg'); + background-image: url('../resources/16px/export_white.svg'); } .ebIcon_undo { - background-image: url('../../resources/16px/undo_black_16px.svg'); + background-image: url('../resources/16px/undo_black_16px.svg'); } .ebIcon_undo_white { - background-image: url('../../resources/16px/undo_white_16px.svg'); + background-image: url('../resources/16px/undo_white_16px.svg'); } .ebIcon_cancelled { - background-image: url('../../resources/16px/Cancelled_Black_16px.svg'); + background-image: url('../resources/16px/Cancelled_Black_16px.svg'); } .ebIcon_draft { background-size: contain; - background-image: url('../../resources/16px/draft.svg'); + background-image: url('../resources/16px/draft.svg'); } .ebIcon_importExport { - background-image: url('../../resources/16px/import_export.svg'); + background-image: url('../resources/16px/import_export.svg'); } .ebIcon_login { - background-image: url('../../resources/16px/login.svg'); + background-image: url('../resources/16px/login.svg'); } .ebIcon_move { - background-image: url('../../resources/16px/move.svg'); + background-image: url('../resources/16px/move.svg'); } .ebIcon_remove { - background-image: url('../../resources/16px/remove.svg'); + background-image: url('../resources/16px/remove.svg'); } .ebIcon_valid { - background-image: url('../../resources/16px/valid_icon.svg'); + background-image: url('../resources/16px/valid_icon.svg'); } .ebIcon_invalid { - background-image: url('../../resources/16px/invalid_icon.svg'); + background-image: url('../resources/16px/invalid_icon.svg'); } .ebIcon_error { - background-image: url('../../resources/16px/error_red_16px.svg'); + background-image: url('../resources/16px/error_red_16px.svg'); } .ebIcon_warning { - background-image: url('../../resources/16px/warning_yellow_16px.svg'); + background-image: url('../resources/16px/warning_yellow_16px.svg'); } .ebIcon_warningOrange { - background-image: url('../../resources/16px/warning_orange_16px.svg'); + background-image: url('../resources/16px/warning_orange_16px.svg'); } .ebIcon_warning_white { - background-image: url('../../resources/16px/warning_white.svg'); + background-image: url('../resources/16px/warning_white.svg'); } .ebIcon_warningShield { - background-image: url('../../resources/16px/warningShield_black_16px.svg'); + background-image: url('../resources/16px/warningShield_black_16px.svg'); } .ebIcon_warningShield_white { background-size: contain; - background-image: url('../../resources/16px/warningShield_white.svg'); + background-image: url('../resources/16px/warningShield_white.svg'); } .ebIcon_mail { - background-image: url('../../resources/16px/mail_black_16px.svg'); + background-image: url('../resources/16px/mail_black_16px.svg'); } .ebIcon_mail_white { - background-image: url('../../resources/16px/mail_white_16px.svg'); + background-image: url('../resources/16px/mail_white_16px.svg'); } .ebIcon_mailRead { - background-image: url('../../resources/16px/mailRead_black_16px.svg'); + background-image: url('../resources/16px/mailRead_black_16px.svg'); } .ebIcon_mailRead_white { - background-image: url('../../resources/16px/mailRead_white_16px.svg'); + background-image: url('../resources/16px/mailRead_white_16px.svg'); } .ebIcon_link { - background-image: url('../../resources/16px/Link_black_16px.svg');; + background-image: url('../resources/16px/Link_black_16px.svg');; } .ebIcon_lock { - background-image: url('../../resources/16px/lock_black_16px.svg'); + background-image: url('../resources/16px/lock_black_16px.svg'); } .ebIcon_lock_white { - background-image: url('../../resources/16px/lock_white_16px.svg'); + background-image: url('../resources/16px/lock_white_16px.svg'); } .ebIcon_unlock { - background-image: url('../../resources/16px/unlock_black_16px.svg'); + background-image: url('../resources/16px/unlock_black_16px.svg'); } .ebIcon_unlock_white { - background-image: url('../../resources/16px/unlock_white_16px.svg'); + background-image: url('../resources/16px/unlock_white_16px.svg'); } .ebIcon_logout { - background-image: url('../../resources/16px/logout_black_16px.svg'); + background-image: url('../resources/16px/logout_black_16px.svg'); } .ebIcon_menu { - background-image: url('../../resources/16px/menu_black_16px.svg'); + background-image: url('../resources/16px/menu_black_16px.svg'); } .ebIcon_menu_white { - background-image: url('../../resources/16px/menu_white_16px.svg'); + background-image: url('../resources/16px/menu_white_16px.svg'); } .ebIcon_search { - background-image: url('../../resources/16px/search_black_16px.svg'); + background-image: url('../resources/16px/search_black_16px.svg'); } .ebIcon_searchWhite { - background-image: url('../../resources/16px/search_white_16px.svg'); + background-image: url('../resources/16px/search_white_16px.svg'); } .ebIcon_advancedSearch { - background-image: url('../../resources/16px/advanced_search_black_16px.svg'); + background-image: url('../resources/16px/advanced_search_black_16px.svg'); } .ebIcon_advancedSearchWhite { - background-image: url('../../resources/16px/advanced_search_white_16px.svg'); + background-image: url('../resources/16px/advanced_search_white_16px.svg'); } .ebIcon_share { - background-image: url('../../resources/16px/share_black_16px.svg'); + background-image: url('../resources/16px/share_black_16px.svg'); } .ebIcon_share_white { - background-image: url('../../resources/16px/share_white.svg'); + background-image: url('../resources/16px/share_white.svg'); } .ebIcon_star { - background-image: url('../../resources/16px/star_black_16px.svg'); + background-image: url('../resources/16px/star_black_16px.svg'); } .ebIcon_star_white { - background-image: url('../../resources/16px/star_white_16px.svg'); + background-image: url('../resources/16px/star_white_16px.svg'); } .ebIcon_star_yellow { - background-image: url('../../resources/16px/star_yellow_16px.svg'); + background-image: url('../resources/16px/star_yellow_16px.svg'); } .ebIcon_starOutline { - background-image: url('../../resources/16px/star_outline_black_16px.svg'); + background-image: url('../resources/16px/star_outline_black_16px.svg'); } .ebIcon_starOutline_white { - background-image: url('../../resources/16px/star_outline_white_16px.svg'); + background-image: url('../resources/16px/star_outline_white_16px.svg'); } .ebIcon_starOutline_yellow { - background-image: url('../../resources/16px/star_outline_yellow_16px.svg'); + background-image: url('../resources/16px/star_outline_yellow_16px.svg'); } .ebIcon_tick { - background-image: url('../../resources/16px/tick_green_16px.svg'); + background-image: url('../resources/16px/tick_green_16px.svg'); } .ebIcon_tick_black { - background-image: url('../../resources/16px/tick_16px.svg'); + background-image: url('../resources/16px/tick_16px.svg'); } .ebIcon_simpleGreenTick { - background-image: url('../../resources/16px/simple_green_tick.svg'); + background-image: url('../resources/16px/simple_green_tick.svg'); } .ebIcon_simpleTick_black { - background-image: url('../../resources/16px/simple_tick.svg'); + background-image: url('../resources/16px/simple_tick.svg'); } .ebIcon_download { - background-image: url('../../resources/16px/download_black.svg'); + background-image: url('../resources/16px/download_black.svg'); } .ebIcon_download_white { - background-image: url('../../resources/16px/download_white.svg'); + background-image: url('../resources/16px/download_white.svg'); } .ebIcon_downloadWhite { - background-image: url('../../resources/16px/download_white_16px.svg'); + background-image: url('../resources/16px/download_white_16px.svg'); } .ebIcon_documentWhite { - background-image: url('../../resources/16px/document_white_16px.svg'); + background-image: url('../resources/16px/document_white_16px.svg'); } .ebIcon_expand { - background-image: url('../../resources/16px/expand_black_16px.svg'); + background-image: url('../resources/16px/expand_black_16px.svg'); } .ebIcon_rowCollapsed { - background-image: url('../../resources/16px/rowCollapsed_black_16px.svg'); + background-image: url('../resources/16px/rowCollapsed_black_16px.svg'); } .ebIcon_rowExpanded { - background-image: url('../../resources/16px/rowExpanded_black_16px.svg'); + background-image: url('../resources/16px/rowExpanded_black_16px.svg'); } .ebIcon_rowView { - background-image: url('../../resources/16px/rowView_black_16px.svg'); + background-image: url('../resources/16px/rowView_black_16px.svg'); } .ebIcon_rowView_white { - background-image: url('../../resources/16px/rowView_white.svg'); + background-image: url('../resources/16px/rowView_white.svg'); } .ebIcon_externalApp { - background-image: url('../../resources/16px/externalApp_black_16px.svg'); + background-image: url('../resources/16px/externalApp_black_16px.svg'); } .ebIcon_externalApp_white { - background-image: url('../../resources/16px/externalApp_white_16px.svg'); + background-image: url('../resources/16px/externalApp_white_16px.svg'); } .ebIcon_fullscreen { - background-image: url('../../resources/16px/fullscreen_black_16px.svg'); + background-image: url('../resources/16px/fullscreen_black_16px.svg'); } .ebIcon_fullscreenMinimize { - background-image: url('../../resources/16px/fullscreenMinimise_black_16px.svg'); + background-image: url('../resources/16px/fullscreenMinimise_black_16px.svg'); } .ebIcon_help { - background-image: url('../../resources/16px/help_black_16px.svg'); + background-image: url('../resources/16px/help_black_16px.svg'); } .ebIcon_help_white { - background-image: url('../../resources/16px/help_white.svg'); + background-image: url('../resources/16px/help_white.svg'); } .ebIcon_info { - background-image: url('../../resources/16px/info_black.svg'); + background-image: url('../resources/16px/info_black.svg'); } .ebIcon_info_white { - background-image: url('../../resources/16px/info_white.svg'); + background-image: url('../resources/16px/info_white.svg'); } .ebIcon_dialogInfo { - background-image: url('../../resources/16px/dialogInfo_blue.svg'); + background-image: url('../resources/16px/dialogInfo_blue.svg'); } .ebIcon_dialogInfo_white { - background-image: url('../../resources/16px/dialogInfo_white.svg'); + background-image: url('../resources/16px/dialogInfo_white.svg'); } .ebIcon_infoMsgIndicator { - background-image: url('../../resources/16px/infoMsgIndicator_16px.svg'); + background-image: url('../resources/16px/infoMsgIndicator_16px.svg'); } .ebIcon_exitFullscreen { - background-image: url('../../resources/16px/minimiseFullscreen_black_16px.svg'); + background-image: url('../resources/16px/minimiseFullscreen_black_16px.svg'); } .ebIcon_refresh { - background-image: url('../../resources/16px/refresh_black_16px.svg'); + background-image: url('../resources/16px/refresh_black_16px.svg'); } .ebIcon_refresh_white { - background-image: url('../../resources/16px/refresh_white_16px.svg'); + background-image: url('../resources/16px/refresh_white_16px.svg'); } .ebIcon_settings { - background-image: url('../../resources/16px/settings_black_16px.svg'); + background-image: url('../resources/16px/settings_black_16px.svg'); } .ebIcon_settings_white { - background-image: url('../../resources/16px/settings_white_16px.svg'); + background-image: url('../resources/16px/settings_white_16px.svg'); } .ebIcon_user { - background-image: url('../../resources/16px/user_black_16px.svg'); + background-image: url('../resources/16px/user_black_16px.svg'); } .ebIcon_user_white { - background-image: url('../../resources/16px/user_white_16px.svg'); + background-image: url('../resources/16px/user_white_16px.svg'); } .ebIcon_close { - background-image: url('../../resources/16px/X_black_16px.svg'); + background-image: url('../resources/16px/X_black_16px.svg'); } .ebIcon_close_white { - background-image: url('../../resources/16px/close_white_16px.svg'); + background-image: url('../resources/16px/close_white_16px.svg'); } .ebIcon_close_blue { - background-image: url('../../resources/16px/X_blue_16px.svg'); + background-image: url('../resources/16px/X_blue_16px.svg'); } .ebIcon_close_paleBlue { - background-image: url('../../resources/16px/X_paleBlue_16px.svg'); + background-image: url('../resources/16px/X_paleBlue_16px.svg'); } .ebIcon_close_green { - background-image: url('../../resources/16px/X_green_16px.svg'); + background-image: url('../resources/16px/X_green_16px.svg'); } .ebIcon_close_orange { - background-image: url('../../resources/16px/X_orange_16px.svg'); + background-image: url('../resources/16px/X_orange_16px.svg'); } .ebIcon_close_red { - background-image: url('../../resources/16px/X_red_16px.svg'); + background-image: url('../resources/16px/X_red_16px.svg'); } .ebIcon_close_yellow { - background-image: url('../../resources/16px/X_yellow_16px.svg'); + background-image: url('../resources/16px/X_yellow_16px.svg'); } .ebIcon_minus { - background-image: url('../../resources/16px/minus_black_16px.svg'); + background-image: url('../resources/16px/minus_black_16px.svg'); } .ebIcon_plus { - background-image: url('../../resources/16px/plus_black_16px.svg'); + background-image: url('../resources/16px/plus_black_16px.svg'); } .ebIcon_add { - background-image: url('../../resources/16px/add_black_16px.svg'); + background-image: url('../resources/16px/add_black_16px.svg'); } .ebIcon_add_white { - background-image: url('../../resources/16px/add_white_16px.svg'); + background-image: url('../resources/16px/add_white_16px.svg'); } .ebIcon_multiSelect { - background-image: url('../../resources/16px/multiSelect_black_16px.svg'); + background-image: url('../resources/16px/multiSelect_black_16px.svg'); } .ebIcon_multiSelect_white { background-size: contain; - background-image: url('../../resources/16px/multiSelect_white.svg'); + background-image: url('../resources/16px/multiSelect_white.svg'); } .ebIcon_multiSort { - background-image: url('../../resources/16px/multi-sort.svg'); + background-image: url('../resources/16px/multi-sort.svg'); } .ebIcon_multiSort_white { - background-image: url('../../resources/16px/multi-sort_white.svg'); + background-image: url('../resources/16px/multi-sort_white.svg'); } .ebIcon_sort { - background-image: url('../../resources/16px/sort.svg'); + background-image: url('../resources/16px/sort.svg'); } .ebIcon_sort_white { - background-image: url('../../resources/16px/sort_white.svg'); + background-image: url('../resources/16px/sort_white.svg'); } .ebIcon_stop { - background-image: url('../../resources/16px/stop_black_16px.svg'); + background-image: url('../resources/16px/stop_black_16px.svg'); } .ebIcon_pause { - background-image: url('../../resources/16px/pause_black_16px.svg'); + background-image: url('../resources/16px/pause_black_16px.svg'); } .ebIcon_suspend { - background-image: url('../../resources/16px/suspend_black_16px.svg'); + background-image: url('../resources/16px/suspend_black_16px.svg'); } .ebIcon_resume { - background-image: url('../../resources/16px/resume_black_16px.svg'); + background-image: url('../resources/16px/resume_black_16px.svg'); } .ebIcon_play { - background-image: url('../../resources/16px/play_black_16px.svg'); + background-image: url('../resources/16px/play_black_16px.svg'); } .ebIcon_fastForward { - background-image: url('../../resources/16px/fastForward_black_16px.svg'); + background-image: url('../resources/16px/fastForward_black_16px.svg'); } .ebIcon_fastRewind { - background-image: url('../../resources/16px/fastRewind_black_16px.svg'); + background-image: url('../resources/16px/fastRewind_black_16px.svg'); } .ebIcon_print { - background-image: url('../../resources/16px/print_black_16px.svg'); + background-image: url('../resources/16px/print_black_16px.svg'); } .ebIcon_print_white { - background-image: url('../../resources/16px/print_white_16px.svg'); + background-image: url('../resources/16px/print_white_16px.svg'); } .ebIcon_calendar { - background-image: url('../../resources/16px/calendar_black_16px.svg'); + background-image: url('../resources/16px/calendar_black_16px.svg'); } .ebIcon_calendar_white { - background-image: url('../../resources/16px/calendar_white_16px.svg'); + background-image: url('../resources/16px/calendar_white_16px.svg'); } .ebIcon_addToFolder { - background-image: url('../../resources/16px/addToFolder_black.svg'); + background-image: url('../resources/16px/addToFolder_black.svg'); } .ebIcon_addToFolder_white { - background-image: url('../../resources/16px/addToFolder_white.svg'); + background-image: url('../resources/16px/addToFolder_white.svg'); } .ebIcon_alarmCleared { - background-image: url('../../resources/16px/alarmCleared_16px.svg'); + background-image: url('../resources/16px/alarmCleared_16px.svg'); } .ebIcon_alarmCleared_white { - background-image: url('../../resources/16px/alarmCleared_white_16px.svg'); + background-image: url('../resources/16px/alarmCleared_white_16px.svg'); } .ebIcon_alarmCritical { - background-image: url('../../resources/16px/alarmCritical_16px.svg'); + background-image: url('../resources/16px/alarmCritical_16px.svg'); } .ebIcon_alarmCritical_white { - background-image: url('../../resources/16px/alarmCritical_white_16px.svg'); + background-image: url('../resources/16px/alarmCritical_white_16px.svg'); } .ebIcon_alarmHeartbeat { - background-image: url('../../resources/16px/alarmHeartbeat_16px.svg'); + background-image: url('../resources/16px/alarmHeartbeat_16px.svg'); } .ebIcon_alarmIndeterminate { - background-image: url('../../resources/16px/alarmIndeterminate_16px.svg'); + background-image: url('../resources/16px/alarmIndeterminate_16px.svg'); } .ebIcon_alarmIndeterminate_white { - background-image: url('../../resources/16px/alarmIndeterminate_white_16px.svg'); + background-image: url('../resources/16px/alarmIndeterminate_white_16px.svg'); } .ebIcon_alarmMajor { - background-image: url('../../resources/16px/alarmMajor_16px.svg'); + background-image: url('../resources/16px/alarmMajor_16px.svg'); } .ebIcon_alarmMajor_white { - background-image: url('../../resources/16px/alarmMajor_white_16px.svg'); + background-image: url('../resources/16px/alarmMajor_white_16px.svg'); } .ebIcon_alarmMinor { - background-image: url('../../resources/16px/alarmMinor_16px.svg'); + background-image: url('../resources/16px/alarmMinor_16px.svg'); } .ebIcon_alarmMinor_white { - background-image: url('../../resources/16px/alarmMinor_white_16px.svg'); + background-image: url('../resources/16px/alarmMinor_white_16px.svg'); } .ebIcon_alarmWarning { - background-image: url('../../resources/16px/alarmWarning_16px.svg'); + background-image: url('../resources/16px/alarmWarning_16px.svg'); } .ebIcon_alarmWarning_white { - background-image: url('../../resources/16px/alarmWarning_white_16px.svg'); + background-image: url('../resources/16px/alarmWarning_white_16px.svg'); } .ebIcon_alarmOtherGrouping { - background-image: url('../../resources/16px/alarmOtherGrouping_16px.svg'); + background-image: url('../resources/16px/alarmOtherGrouping_16px.svg'); } .ebIcon_alarmUnacknowledged { - background-image: url('../../resources/16px/alarmUnacknowledged.svg'); + background-image: url('../resources/16px/alarmUnacknowledged.svg'); } .ebIcon_alarmUnacknowledged_white { - background-image: url('../../resources/16px/alarmUnacknowledged_white.svg'); + background-image: url('../resources/16px/alarmUnacknowledged_white.svg'); } .ebIcon_alarmUnspecified { - background-image: url('../../resources/16px/alarmUnspecified_16px.svg'); + background-image: url('../resources/16px/alarmUnspecified_16px.svg'); } .ebIcon_acknowledgeAlarm { - background-image: url('../../resources/16px/acknowledgeAlarm.svg'); + background-image: url('../resources/16px/acknowledgeAlarm.svg'); } .ebIcon_acknowledgeAlarm_white { - background-image: url('../../resources/16px/acknowledgeAlarm_white.svg'); + background-image: url('../resources/16px/acknowledgeAlarm_white.svg'); } .ebIcon_clearAlarm { - background-image: url('../../resources/16px/clearAlarm.svg'); + background-image: url('../resources/16px/clearAlarm.svg'); } .ebIcon_clearAlarm_white { - background-image: url('../../resources/16px/clearAlarm_white.svg'); + background-image: url('../resources/16px/clearAlarm_white.svg'); } .ebIcon_bsc { - background-image: url('../../resources/16px/BSC_black_16px.svg'); + background-image: url('../resources/16px/BSC_black_16px.svg'); } .ebIcon_bscYellow { - background-image: url('../../resources/16px/BSC_Yellow_16px.svg'); + background-image: url('../resources/16px/BSC_Yellow_16px.svg'); } .ebIcon_bscFunction { - background-image: url('../../resources/16px/BSCFunction_black_16px.svg'); + background-image: url('../resources/16px/BSCFunction_black_16px.svg'); } .ebIcon_bscFunctionYellow { - background-image: url('../../resources/16px/BSCFunction_Yellow_16px.svg'); + background-image: url('../resources/16px/BSCFunction_Yellow_16px.svg'); } .ebIcon_cabinet { - background-image: url('../../resources/16px/cabinet_black_16px.svg'); + background-image: url('../resources/16px/cabinet_black_16px.svg'); } .ebIcon_cellGray { - background-image: url('../../resources/16px/cell_gray_16px.svg'); + background-image: url('../resources/16px/cell_gray_16px.svg'); } .ebIcon_cellGreen { - background-image: url('../../resources/16px/cell_green_16px.svg'); + background-image: url('../resources/16px/cell_green_16px.svg'); } .ebIcon_cellRed { - background-image: url('../../resources/16px/cell_red_16px.svg'); + background-image: url('../resources/16px/cell_red_16px.svg'); } .ebIcon_cellAdjacent { - background-image: url('../../resources/16px/cellAdjacent_16px.svg'); + background-image: url('../resources/16px/cellAdjacent_16px.svg'); } .ebIcon_cellExternal { - background-image: url('../../resources/16px/cellExternal_16px.svg'); + background-image: url('../resources/16px/cellExternal_16px.svg'); } .ebIcon_charging { - background-image: url('../../resources/16px/charging_black.svg'); + background-image: url('../resources/16px/charging_black.svg'); } .ebIcon_charging_white { background-size: contain; - background-image: url('../../resources/16px/charging_white.svg'); + background-image: url('../resources/16px/charging_white.svg'); } .ebIcon_connected { - background-image: url('../../resources/16px/connected_black_16px.svg'); + background-image: url('../resources/16px/connected_black_16px.svg'); } .ebIcon_disconnected { - background-image: url('../../resources/16px/disconnected_black_16px.svg'); + background-image: url('../resources/16px/disconnected_black_16px.svg'); } .ebIcon_connectionError { - background-image: url('../../resources/16px/connectionError_black_16px.svg'); + background-image: url('../resources/16px/connectionError_black_16px.svg'); } .ebIcon_core { - background-image: url('../../resources/16px/core_black_16px.svg'); + background-image: url('../resources/16px/core_black_16px.svg'); } .ebIcon_coreSubscriber { - background-image: url('../../resources/16px/coreSubscriber_black_16px.svg'); + background-image: url('../resources/16px/coreSubscriber_black_16px.svg'); } .ebIcon_database { - background-image: url('../../resources/16px/database_black_16px.svg'); + background-image: url('../resources/16px/database_black_16px.svg'); } .ebIcon_ftpServer { - background-image: url('../../resources/16px/ftpServer_black_16px.svg'); + background-image: url('../resources/16px/ftpServer_black_16px.svg'); } .ebIcon_ftpServerFunction { - background-image: url('../../resources/16px/ftpServerFunction_black_16px.svg'); + background-image: url('../resources/16px/ftpServerFunction_black_16px.svg'); } .ebIcon_gatewayFunction { - background-image: url('../../resources/16px/gatewayFunction_black_16px.svg'); + background-image: url('../resources/16px/gatewayFunction_black_16px.svg'); } .ebIcon_grabHandle { - background-image: url('../../resources/16px/grabHandle_black_16px.svg'); + background-image: url('../resources/16px/grabHandle_black_16px.svg'); } .ebIcon_grabHandle_white { background-size: contain; - background-image: url('../../resources/16px/grabHandle_white.svg'); + background-image: url('../resources/16px/grabHandle_white.svg'); } .ebIcon_managedFunction { - background-image: url('../../resources/16px/managedFunction_black_16px.svg'); + background-image: url('../resources/16px/managedFunction_black_16px.svg'); } .ebIcon_managedGroup { - background-image: url('../../resources/16px/managedGroup_black_16px.svg'); + background-image: url('../resources/16px/managedGroup_black_16px.svg'); } .ebIcon_managementNode { - background-image: url('../../resources/16px/managementNode_black_16px.svg'); + background-image: url('../resources/16px/managementNode_black_16px.svg'); } .ebIcon_network { - background-image: url('../../resources/16px/network_black_16px.svg'); + background-image: url('../resources/16px/network_black_16px.svg'); } .ebIcon_networkElement { - background-image: url('../../resources/16px/networkElement_black_16px.svg'); + background-image: url('../resources/16px/networkElement_black_16px.svg'); } .ebIcon_networkElement_white { - background-image: url('../../resources/16px/networkElement_white_16px.svg'); + background-image: url('../resources/16px/networkElement_white_16px.svg'); } .ebIcon_rbs { - background-image: url('../../resources/16px/RBS_black_16px.svg'); + background-image: url('../resources/16px/RBS_black_16px.svg'); } .ebIcon_rbs_white { - background-image: url('../../resources/16px/RBS_white_16px.svg'); + background-image: url('../resources/16px/RBS_white_16px.svg'); } .ebIcon_routeSwitch { - background-image: url('../../resources/16px/routeSwitch.svg'); + background-image: url('../resources/16px/routeSwitch.svg'); } .ebIcon_rxi { - background-image: url('../../resources/16px/rxi_black_16px.svg'); + background-image: url('../resources/16px/rxi_black_16px.svg'); } .ebIcon_switchFunction { - background-image: url('../../resources/16px/switchFunction_black_16px.svg'); + background-image: url('../resources/16px/switchFunction_black_16px.svg'); } .ebIcon_technicianPresent { - background-image: url('../../resources/16px/technicianPresent_16px.svg'); + background-image: url('../resources/16px/technicianPresent_16px.svg'); } .ebIcon_terminal { - background-image: url('../../resources/16px/terminal_black_16px.svg'); + background-image: url('../resources/16px/terminal_black_16px.svg'); } .ebIcon_topology { - background-image: url('../../resources/16px/topology_black_16px.svg'); + background-image: url('../resources/16px/topology_black_16px.svg'); } .ebIcon_access { - background-image: url('../../resources/16px/access_black_16px.svg'); + background-image: url('../resources/16px/access_black_16px.svg'); } .ebIcon_access_white { - background-image: url('../../resources/16px/access_white_16px.svg'); + background-image: url('../resources/16px/access_white_16px.svg'); } .ebIcon_accessSettings { - background-image: url('../../resources/16px/accessSettings_black_16px.svg'); + background-image: url('../resources/16px/accessSettings_black_16px.svg'); } .ebIcon_accessSettings_white { - background-image: url('../../resources/16px/accessSettings_white_16px.svg'); + background-image: url('../resources/16px/accessSettings_white_16px.svg'); } .ebIcon_alignCenter { - background-image: url('../../resources/16px/alignCenter_black_16px.svg'); + background-image: url('../resources/16px/alignCenter_black_16px.svg'); } .ebIcon_alignCenter_white { - background-image: url('../../resources/16px/alignCenter_white.svg'); + background-image: url('../resources/16px/alignCenter_white.svg'); } .ebIcon_alignLeft { - background-image: url('../../resources/16px/alignLeft_black_16px.svg'); + background-image: url('../resources/16px/alignLeft_black_16px.svg'); } .ebIcon_alignLeft_white { - background-image: url('../../resources/16px/alignLeft_white.svg'); + background-image: url('../resources/16px/alignLeft_white.svg'); } .ebIcon_alignRight { - background-image: url('../../resources/16px/alignRight_black_16px.svg'); + background-image: url('../resources/16px/alignRight_black_16px.svg'); } .ebIcon_alignRight_white { - background-image: url('../../resources/16px/alignRight_white.svg'); + background-image: url('../resources/16px/alignRight_white.svg'); } .ebIcon_cli { - background-image: url('../../resources/16px/CommandLineInterface_black_16px.svg'); + background-image: url('../resources/16px/CommandLineInterface_black_16px.svg'); } .ebIcon_cli_white { - background-image: url('../../resources/16px/CommandLineInterface_white_16px.svg'); + background-image: url('../resources/16px/CommandLineInterface_white_16px.svg'); } .ebIcon_controllingNode { - background-image: url('../../resources/16px/controllingNode.svg'); + background-image: url('../resources/16px/controllingNode.svg'); } .ebIcon_grid3x3 { - background-image: url('../../resources/16px/grid3X3_black_16px.svg'); + background-image: url('../resources/16px/grid3X3_black_16px.svg'); } .ebIcon_grid3x3_white { - background-image: url('../../resources/16px/grid3x3_white.svg'); + background-image: url('../resources/16px/grid3x3_white.svg'); } .ebIcon_grid4x4 { - background-image: url('../../resources/16px/grid4X4_black_16px.svg'); + background-image: url('../resources/16px/grid4X4_black_16px.svg'); } .ebIcon_grid4x4_white { - background-image: url('../../resources/16px/grid4x4_white.svg'); + background-image: url('../resources/16px/grid4x4_white.svg'); } .ebIcon_gridView { - background-image: url('../../resources/16px/gridView_black_16px.svg'); + background-image: url('../resources/16px/gridView_black_16px.svg'); } .ebIcon_gridView_white { - background-image: url('../../resources/16px/gridView_white.svg'); + background-image: url('../resources/16px/gridView_white.svg'); } .ebIcon_jumpTo { - background-image: url('../../resources/16px/jumpTo_black_16px.svg'); + background-image: url('../resources/16px/jumpTo_black_16px.svg'); } .ebIcon_microwave { - background-image: url('../../resources/16px/microwave.svg'); + background-image: url('../resources/16px/microwave.svg'); } .ebIcon_mo { - background-image: url('../../resources/16px/mo.svg'); + background-image: url('../resources/16px/mo.svg'); } .ebIcon_security { - background-image: url('../../resources/16px/security_black_16px.svg'); + background-image: url('../resources/16px/security_black_16px.svg'); } .ebIcon_security_white { - background-image: url('../../resources/16px/security_white_16px.svg'); + background-image: url('../resources/16px/security_white_16px.svg'); } .ebIcon_site { - background-image: url('../../resources/16px/site_black_16px.svg'); + background-image: url('../resources/16px/site_black_16px.svg'); } .ebIcon_siteManager { - background-image: url('../../resources/16px/siteManager_black_16px.svg'); + background-image: url('../resources/16px/siteManager_black_16px.svg'); } .ebIcon_subnetwork { - background-image: url('../../resources/16px/subnetwork.svg'); + background-image: url('../resources/16px/subnetwork.svg'); } .ebIcon_gateway, .ebIcon_switch { - background-image: url('../../resources/16px/switch.svg'); + background-image: url('../resources/16px/switch.svg'); } .ebIcon_tip { - background-image: url('../../resources/16px/tip_black_16px.svg'); + background-image: url('../resources/16px/tip_black_16px.svg'); } .ebIcon_tip_white { - background-image: url('../../resources/16px/tip_white_16px.svg'); + background-image: url('../resources/16px/tip_white_16px.svg'); } .ebIcon_attach { - background-image: url('../../resources/16px/attach_black_16px.svg'); + background-image: url('../resources/16px/attach_black_16px.svg'); } .ebIcon_attach_white { background-size: contain; - background-image: url('../../resources/16px/attach_white.svg'); + background-image: url('../resources/16px/attach_white.svg'); } .ebIcon_clock { - background-image: url('../../resources/16px/clock_black_16px.svg'); + background-image: url('../resources/16px/clock_black_16px.svg'); } .ebIcon_clock_white { - background-image: url('../../resources/16px/clock_white_16px.svg'); + background-image: url('../resources/16px/clock_white_16px.svg'); } .ebIcon_windowMaximize { - background-image: url('../../resources/16px/WindowMaximize_black_16px.svg'); + background-image: url('../resources/16px/WindowMaximize_black_16px.svg'); } .ebIcon_windowMinimize { - background-image: url('../../resources/16px/WindowMinimize_black_16px.svg'); + background-image: url('../resources/16px/WindowMinimize_black_16px.svg'); } .ebIcon_deprecated { - background-image: url('../../resources/16px/deprecated_16px.svg'); + background-image: url('../resources/16px/deprecated_16px.svg'); } .ebIcon_obsolete { - background-image: url('../../resources/16px/obsolete_16px.svg'); + background-image: url('../resources/16px/obsolete_16px.svg'); } .ebIcon_newStatus_blue { - background-image: url('../../resources/16px/newStatus_blue_16px.svg'); + background-image: url('../resources/16px/newStatus_blue_16px.svg'); } .ebIcon_newStatus_green { - background-image: url('../../resources/16px/newStatus_green_16px.svg'); + background-image: url('../resources/16px/newStatus_green_16px.svg'); } .ebIcon_upload { - background-image: url('../../resources/16px/upload_black_16px.svg'); + background-image: url('../resources/16px/upload_black_16px.svg'); } .ebIcon_activate { - background-image: url('../../resources/16px/activate_black_16px.svg'); + background-image: url('../resources/16px/activate_black_16px.svg'); } .ebIcon_activate_white { background-size: contain; - background-image: url('../../resources/16px/activate_white.svg'); + background-image: url('../resources/16px/activate_white.svg'); } .ebIcon_deactivate { - background-image: url('../../resources/16px/deactivate_black_16px.svg'); + background-image: url('../resources/16px/deactivate_black_16px.svg'); } .ebIcon_deactivate_white { background-size: contain; - background-image: url('../../resources/16px/deactivate_white.svg'); + background-image: url('../resources/16px/deactivate_white.svg'); } .ebIcon_switchBetween { - background-image: url('../../resources/16px/switchBetween_black_16px.svg'); + background-image: url('../resources/16px/switchBetween_black_16px.svg'); } .ebIcon_switchBetween_white { - background-image: url('../../resources/16px/switchBetween_white_16px.svg'); + background-image: url('../resources/16px/switchBetween_white_16px.svg'); } .ebIcon_eye { - background-image: url('../../resources/16px/eye_black_16px.svg'); + background-image: url('../resources/16px/eye_black_16px.svg'); } .ebIcon_eye_white { - background-image: url('../../resources/16px/eye_white_16px.svg'); + background-image: url('../resources/16px/eye_white_16px.svg'); } .ebIcon_eyeLine { - background-image: url('../../resources/16px/eyeLine_black_16px.svg'); + background-image: url('../resources/16px/eyeLine_black_16px.svg'); } .ebIcon_eyeLine_white { - background-image: url('../../resources/16px/eyeLine_white.svg'); + background-image: url('../resources/16px/eyeLine_white.svg'); } .ebIcon_activityTray { - background-image: url('../../resources/16px/activity_16px_black.svg'); + background-image: url('../resources/16px/activity_16px_black.svg'); } .ebIcon_note { - background-image: url('../../resources/16px/note_black_16px.svg'); + background-image: url('../resources/16px/note_black_16px.svg'); background-size: contain; } .ebIcon_note_white { - background-image: url('../../resources/16px/note_white_16px.svg'); + background-image: url('../resources/16px/note_white_16px.svg'); } .ebIcon_tableView { - background-image: url('../../resources/16px/tableView_black_16px.svg'); + background-image: url('../resources/16px/tableView_black_16px.svg'); } .ebIcon_tableView_white { - background-image: url('../../resources/16px/tableView_white_16px.svg'); + background-image: url('../resources/16px/tableView_white_16px.svg'); } .ebIcon_synced { - background-image: url('../../resources/16px/Syncd_16px.svg'); + background-image: url('../resources/16px/Syncd_16px.svg'); } .ebIcon_syncError { - background-image: url('../../resources/16px/SyncError_16px.svg'); + background-image: url('../resources/16px/SyncError_16px.svg'); } .ebIcon_syncing { - background-image: url('../../resources/16px/Syncing_Static_16px.svg'); + background-image: url('../resources/16px/Syncing_Static_16px.svg'); } .ebIcon_syncing_animated { - background-image: url('../../resources/16px/Syncing_Animated_16px.svg'); + background-image: url('../resources/16px/Syncing_Animated_16px.svg'); } diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/index.html b/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/index.html index 7f94959..a4a3039 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/index.html +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/dist/index.html @@ -1,7 +1,7 @@ <!-- ============LICENSE_START======================================================= Copyright (C) 2016-2018 Ericsson. All rights reserved. - Modifications Copyright (C) 2020 Nordix Foundation. + Modifications Copyright (C) 2020-2021 Nordix Foundation. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -44,7 +44,7 @@ <link rel="stylesheet" type="text/css" href="css/interfaceAssets.css"> <!-- JQuery style --> -<link rel="stylesheet" href="../js/jquery-ui-1.12.1/jquery-ui.css"> +<link rel="stylesheet" href="js/jquery-ui-1.12.1/jquery-ui.css"> </head> @@ -196,15 +196,15 @@ </div> <!-- jQuery --> - <script src="../js/jquery/jquery-3.4.1.min.js"></script> - <script src="../js/jquery-ui-1.12.1/jquery-ui.js"></script> + <script src="js/jquery/jquery-3.4.1.min.js"></script> + <script src="js/jquery-ui-1.12.1/jquery-ui.js"></script> <!-- fileMenu JS file --> - <script type="text/javascript" src="../js/fileMenu.js"></script> + <script type="text/javascript" src="js/fileMenu.js"></script> <!-- showhideElement JS file --> - <script type="text/javascript" src="../js/showhideElement.js"></script> + <script type="text/javascript" src="js/showhideElement.js"></script> <!-- edit area JS file --> - <script language="javascript" type="text/javascript" src="../js/edit_area/edit_area_full.js"></script> + <script language="javascript" type="text/javascript" src="js/edit_area/edit_area_full.js"></script> <!-- generated bundle.js --> <script type="text/javascript" src="bundle.js"></script> </body> diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexAjax.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexAjax.js index 1a63375..4a6dc7d 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexAjax.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexAjax.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,8 +46,8 @@ function ajax_getWithKeyInfo(requestURL, objectType, callback, keyNam) { ajax_get(keyInfoURL, function(dataKeyInfos) { ajax_get(requestURL, function(data) { var keyInfos = []; - for ( var i = 0; i < dataKeyInfos.messages.message.length; i++) { - var ki = JSON.parse(dataKeyInfos.messages.message[i]).apexKeyInfo; + for ( let value of dataKeyInfos.messages.message) { + var ki = JSON.parse(value).apexKeyInfo; keyInfos.push(ki); } var object = JSON.parse(data.messages.message[0])[objectType]; diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumEditForm.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumEditForm.js index 79c9da1..b6d0fe6 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumEditForm.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumEditForm.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,8 +31,8 @@ function editContextAlbumForm_createContextAlbum(formParent) { var requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; contextSchemas.push({ "name" : contextSchema.key.name, "version" : contextSchema.key.version, @@ -62,8 +63,8 @@ function editContextAlbumForm_viewContextAlbum(parent, name, version) { requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; contextSchemas.push({ "name" : contextSchema.key.name, "version" : contextSchema.key.version, @@ -83,8 +84,8 @@ function editContextAlbumForm_editContextAlbum(formParent, name, version) { requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; contextSchemas.push({ "name" : contextSchema.key.name, "version" : contextSchema.key.version, diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumTab.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumTab.js index f749b28..821e5f6 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumTab.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextAlbumTab.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,8 +38,8 @@ function contextAlbumTab_activate() { ajax_get(requestURL, function(data) { $("#contextAlbumTableBody").find("tr:gt(0)").remove(); - for (var i = 0; i < data.messages.message.length; i++) { - var contextAlbum = JSON.parse(data.messages.message[i]).apexContextAlbum; + for (let value of data.messages.message) { + var contextAlbum = JSON.parse(value).apexContextAlbum; var contextAlbumRow_tr = document.createElement("tr"); diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextSchemaTab.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextSchemaTab.js index 45676b8..fa5ed6f 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextSchemaTab.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextSchemaTab.js @@ -22,7 +22,7 @@ const {ajax_get} = require("./ApexAjax"); const {createTable} = require('./ApexTable'); const {rightClickMenu_scopePreserver} = require('./contextMenu'); -const {apexUtils_removeElement} = require('./ApexUtils'); +const {apexUtils_escapeHtml, apexUtils_removeElement} = require('./ApexUtils'); function contextSchemaTab_reset() { contextSchemaTab_deactivate(); @@ -36,8 +36,8 @@ function contextSchemaTab_activate() { ajax_get(requestURL, function(data) { $("#contextSchemaTableBody").find("tr:gt(0)").remove(); - for (var i = 0; i < data.messages.message.length; i++) { - var contextSchema = JSON.parse(data.messages.message[i]).apexContextSchema; + for (let value of data.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; var contextSchemaRow_tr = document.createElement("tr"); var contextSchemaid = contextSchema.key.name + ":" + contextSchema.key.version; diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventEditForm.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventEditForm.js index ea23895..fef9278 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventEditForm.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventEditForm.js @@ -51,8 +51,8 @@ function editEventForm_createEvent(formParent) { var requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; var dt = { "name" : contextSchema.key.name, "version" : contextSchema.key.version, @@ -72,8 +72,8 @@ function editEventForm_editEvent_inner(formParent, name, version, viewOrEdit) { requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; contextSchemas.push({ "name" : contextSchema.key.name, "version" : contextSchema.key.version, @@ -325,8 +325,7 @@ function editEventForm_activate(parent, operation, event, contextSchemas) { paramstable.appendChild(paramstable_body); // Add the parameters if (event && event.parameter && event.parameter.entry) { - for (var p = 0; p < event.parameter.entry.length; p++) { - var fieldEntry = event.parameter.entry[p]; + for (let fieldEntry of event.parameter.entry) { var contextSchema = fieldEntry.value.fieldSchemaKey; var optional = fieldEntry.value.optional; contextSchema["displaytext"] = contextSchema.name + ":" + contextSchema.version; @@ -470,7 +469,7 @@ function editEventForm_addEventParam(parentTBody, disabled, name, optional, cont if (name == null && contextSchema == null && !disabled) { paramOptionalInput.setAttribute("class", "field-eventparam-optional.new"); } - if (optional == true) { + if (optional) { paramOptionalInput.checked = true; } else { paramOptionalInput.checked = false; diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventTab.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventTab.js index 0192be6..44458c2 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventTab.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexEventTab.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,8 +40,8 @@ function eventTab_activate() { $("#eventTableBody").find("tr:gt(0)").remove(); - for (var i = 0; i < data.messages.message.length; i++) { - var event = JSON.parse(data.messages.message[i]).apexEvent; + for (let value of data.messages.message) { + var event = JSON.parse(value).apexEvent; var eventTableRow_tr = document.createElement("tr"); var eventid = event.key.name + ":" + event.key.version; @@ -61,8 +62,7 @@ function eventTab_activate() { eventTableRow += "<td><table class='ebTable'><thead><tr><th>Parameter</th><th>Parameter Type/Schema</th><th>Optional</th></tr></thead><tbody>"; - for (var p = 0; p < event.parameter.entry.length; p++) { - var fieldEntry = event.parameter.entry[p]; + for (let fieldEntry of event.parameter.entry) { eventTableRow += "<tr><td>" + diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFiles.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFiles.js index ef0aacf..a002788 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFiles.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFiles.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -61,8 +62,8 @@ function files_fileUpload() { ajax_getOKOrFail(requestURL, function(data) { var uploadResultString = ""; - for (var i = 0; i < data.messages.message.length; i++) { - uploadResultString += (data.messages.message[i] + "\n"); + for (let value of data.messages.message) { + uploadResultString += (value + "\n"); } resultForm_activate(document.getElementById("mainArea"), "Model Upload Result", uploadResultString); }); diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFormUtils.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFormUtils.js index 9476e58..f2a5983 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFormUtils.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexFormUtils.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,9 +43,8 @@ function formUtils_generateDescription(name, version, uuid) { uuid = "null"; } - var description = "Generated description for a concept called \"" + name + "\" with version \"" + version + return "Generated description for a concept called \"" + name + "\" with version \"" + version + "\" and UUID \"" + uuid + "\""; - return description; } export {formUtils_generateDescription, formUtils_generateUUID}; diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexKeyInformationTab.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexKeyInformationTab.js index 8ca2718..6cfc28d 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexKeyInformationTab.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexKeyInformationTab.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,8 +37,8 @@ function keyInformationTab_activate() { ajax_get(requestURL, function(data) { $("#keyInformationTableBody").find("tr:gt(0)").remove(); - for (var i = 0; i < data.messages.message.length; i++) { - var keyInfo = JSON.parse(data.messages.message[i]).apexKeyInfo; + for (let value of data.messages.message) { + var keyInfo = JSON.parse(value).apexKeyInfo; var keyInfoRow_tr = document.createElement("tr"); var keyInfoRow = diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js index e1a553e..f2acf87 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -209,8 +210,8 @@ function pageControl_successStatus(data) { } else { $('#statusString').css("color", "red"); $('#ebInlineMessage-iconHolder-icon').attr("class", "ebIcon ebIcon_big ebIcon_error"); - for (var i = 0; i < data.messages.message.length; i++) { - $("#statusMessageTable").append("<tr><td>" + data.messages.message[i] + "</td></tr>"); + for (let value of data.messages.message) { + $("#statusMessageTable").append("<tr><td>" + value + "</td></tr>"); } // A session with session ID "0" does not exist var sessionDoesNotExistStringStart = "A session with session ID "; @@ -257,8 +258,8 @@ function pageControl_recursiveDisable(el, disableValue, visibleValue) { } if (el.childNodes && el.childNodes.length > 0) { - for (var i = 0; i < el.childNodes.length; i++) { - recursiveDisable(el.childNodes[i], disableValue, visibleValue); + for (let value of el.childNodes) { + recursiveDisable(value, disableValue, visibleValue); } } } diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm.js index 97e1130..edaf7b7 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -64,8 +65,8 @@ function editPolicyForm_editPolicy_inner(formParent, policy, viewOrEdit) { var requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; contextSchemas.push({ "name" : contextSchema.key.name, "version" : contextSchema.key.version, @@ -77,8 +78,8 @@ function editPolicyForm_editPolicy_inner(formParent, policy, viewOrEdit) { requestURL = window.restRootURL + "/Task/Get?name=&version="; var tasks = new Array(); ajax_get(requestURL, function(data3) { - for (var j = 0; j < data3.messages.message.length; j++) { - var task = JSON.parse(data3.messages.message[j]).apexTask; + for (let value of data3.messages.message) { + var task = JSON.parse(value).apexTask; tasks.push({ "name" : task.key.name, "version" : task.key.version, @@ -90,8 +91,8 @@ function editPolicyForm_editPolicy_inner(formParent, policy, viewOrEdit) { requestURL = window.restRootURL + "/ContextAlbum/Get?name=&version="; var albums = new Array(); ajax_get(requestURL, function(data4) { - for (var k = 0; k < data4.messages.message.length; k++) { - var album = JSON.parse(data4.messages.message[k]).apexContextAlbum; + for (let value of data4.messages.message) { + var album = JSON.parse(value).apexContextAlbum; albums.push({ "name" : album.key.name, "version" : album.key.version, @@ -103,8 +104,8 @@ function editPolicyForm_editPolicy_inner(formParent, policy, viewOrEdit) { requestURL = window.restRootURL + "/Event/Get?name=&version="; var events = new Array(); ajax_get(requestURL, function(data5) { - for (var m = 0; m < data5.messages.message.length; m++) { - var event = JSON.parse(data5.messages.message[m]).apexEvent; + for (let value of data5.messages.message) { + var event = JSON.parse(value).apexEvent; events.push({ "name" : event.key.name, "version" : event.key.version, @@ -300,9 +301,9 @@ function editPolicyForm_activate(parent, operation, policy, tasks, events, conte var firststateoptions = new Array(); var firststateselected = null; if (policy != null && policy.state != null) { - for (var i = 0; i < policy.state.entry.length; i++) { - if (policy.state.entry[i] != null && policy.state.entry[i].key != null) { - var statename = policy.state.entry[i].key; + for (let value of policy.state.entry) { + if (value != null && value.key != null) { + var statename = value.key; firststateoptions.push({ "name" : statename, "displaytext" : statename @@ -333,10 +334,10 @@ function editPolicyForm_activate(parent, operation, policy, tasks, events, conte triggerLabel.innerHTML = "Policy Trigger Event: "; var triggerevent = null; if (policy != null && policy.firstState != null && policy.firstState != "" && policy.state != null) { - for (i = 0; i < policy.state.entry.length; i++) { - if (policy.state.entry[i] != null && policy.state.entry[i].key != null) { - statename = policy.state.entry[i].key; - var state = policy.state.entry[i].value; + for (let entry of policy.state.entry) { + if (entry != null && entry.key != null) { + statename = entry.key; + var state = entry.value; if (statename != null && statename == policy.firstState) { triggerevent = { "name" : state.trigger.name, @@ -559,8 +560,8 @@ function editPolicyForm_addNewState(statesUL, createEditOrView, policy, tasks, e document.getElementById("editEventFormNewStateInput").value = ""; } if (policy && policy.state) { - for (var i = 0; i < policy.state.entry.length; i++) { - if (statename.toUpperCase() == policy.state.entry[i].key.toUpperCase()) { + for (let value of policy.state.entry) { + if (statename.toUpperCase() == value.key.toUpperCase()) { alert("Policy " + policy.policyKey.name + ":" + policy.policyKey.version + " already contains a state called \"" + statename + "\"."); document.getElementById("editEventFormNewStateInput").focus(); @@ -580,11 +581,11 @@ function editPolicyForm_getStateOptions() { "#editEventFormStates > li[stateName]"); // get li direct child // elements with an // attribute "stateName" - for (var i = 0; i < stateslis.length; i++) { - if (stateslis != null && stateslis[i] != null && stateslis[i].getAttribute("stateName") != null) { + for (let value of stateslis) { + if (stateslis != null && value != null && value.getAttribute("stateName") != null) { stateoptions.push({ - "name" : stateslis[i].getAttribute("stateName"), - "displaytext" : stateslis[i].getAttribute("stateName") + "name" : value.getAttribute("stateName"), + "displaytext" : value.getAttribute("stateName") }); } } @@ -784,10 +785,10 @@ function editPolicyForm_getPolicyBean() { "#editEventFormStates > li[stateName]"); // get li direct child // elements with an // attribute "stateName" - for (var i = 0; i < stateslis.length; i++) { // ignore last li ... it has + for (let value of stateslis) { // ignore last li ... it has // the new state button etc. - if (stateslis != null && stateslis[i] != null && stateslis[i].getAttribute("stateName") != null) { - var statename = stateslis[i].getAttribute("stateName"); + if (stateslis != null && value != null && value.getAttribute("stateName") != null) { + var statename = value.getAttribute("stateName"); var state = editPolicyForm_State_getStateBean(statename); if (state == null) { return null; @@ -796,7 +797,7 @@ function editPolicyForm_getPolicyBean() { } } - var policybean = { + return { "name" : name, "version" : version, "uuid" : uuid, @@ -805,7 +806,6 @@ function editPolicyForm_getPolicyBean() { "firstState" : firststateselectedoption.name, "states" : states }; - return policybean; } export { diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm_State.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm_State.js index e9db245..aa0db4b 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm_State.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyEditForm_State.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -81,8 +82,7 @@ function editPolicyForm_State_generateStateDiv(createEditOrView, policy, statena contextstable.appendChild(contextstable_body); // Add the contexts if (state && state.contextAlbumReference && $.isArray(state.contextAlbumReference)) { - for (var p = 0; p < state.contextAlbumReference.length; p++) { - var contextEntry = state.contextAlbumReference[p]; + for (let contextEntry of state.contextAlbumReference) { var contextName = contextEntry.name + ":" + contextEntry.version; var ce = { "name" : contextEntry.name, @@ -165,8 +165,7 @@ function editPolicyForm_State_generateStateDiv(createEditOrView, policy, statena } // Add the tasks if (state && state.taskReferences && $.isArray(state.taskReferences.entry)) { - for (var j = 0; j < state.taskReferences.entry.length; j++) { - var taskEntry = state.taskReferences.entry[j]; + for (let taskEntry of state.taskReferences.entry) { var taskName = taskEntry.key.name + ":" + taskEntry.key.version; var taskselected = { "name" : taskEntry.key.name, @@ -294,8 +293,7 @@ function editPolicyForm_State_generateStateDiv(createEditOrView, policy, statena "state" : null }); if (policy && policy.state && policy.state.entry && $.isArray(policy.state.entry)) { - for (var s = 0; s < policy.state.entry.length; s++) { - var st = policy.state.entry[s]; + for (let st of policy.state.entry) { if (statename != st.key) { // state cannot have itself as nextstate stateNextStateOptions.push({ "name" : st.key, @@ -306,8 +304,7 @@ function editPolicyForm_State_generateStateDiv(createEditOrView, policy, statena } } if (state && state.stateOutputs && $.isArray(state.stateOutputs.entry)) { - for (var h = 0; h < state.stateOutputs.entry.length; h++) { - var outputEntry = state.stateOutputs.entry[h]; + for (let outputEntry of state.stateOutputs.entry) { var outputName = outputEntry.key; var nextState = null; var nxtst = outputEntry.value.nextState.localName; @@ -391,8 +388,7 @@ function editPolicyForm_State_generateStateDiv(createEditOrView, policy, statena var logic_outputstable_body = document.createElement("tbody"); logic_outputstable.appendChild(logic_outputstable_body); if (state && state.stateFinalizerLogicMap && $.isArray(state.stateFinalizerLogicMap.entry)) { - for (var f = 0; f < state.stateFinalizerLogicMap.entry.length; f++) { - outputEntry = state.stateFinalizerLogicMap.entry[f]; + for (let outputEntry of state.stateFinalizerLogicMap.entry) { outputName = outputEntry.key; logic = null; if (outputEntry.value != null && outputEntry.value.logic != null) { @@ -738,8 +734,8 @@ function editPolicyForm_State_addPolicyTask(parentTBody, disabled, isdefault, st } var dir_outputOptions = new Array(); if (state != null && state.stateOutputs != null && $.isArray(state.stateOutputs.entry)) { - for (var p = 0; p < state.stateOutputs.entry.length; p++) { - var outputEntry = state.stateOutputs.entry[p].key; + for (let value of state.stateOutputs.entry) { + var outputEntry = value.key; dir_outputOptions.push({ "name" : outputEntry, "displaytext" : outputEntry @@ -748,8 +744,8 @@ function editPolicyForm_State_addPolicyTask(parentTBody, disabled, isdefault, st } var logic_outputOptions = new Array(); if (state != null && state.stateFinalizerLogicMap != null && $.isArray(state.stateFinalizerLogicMap.entry)) { - for (var l = 0; l < state.stateFinalizerLogicMap.entry.length; l++) { - outputEntry = state.stateFinalizerLogicMap.entry[l].key; + for (let value of state.stateFinalizerLogicMap.entry) { + outputEntry = value.key; logic_outputOptions.push({ "name" : outputEntry, "displaytext" : outputEntry @@ -1083,7 +1079,7 @@ function editPolicyForm_State_getStateBean(statename) { }; var r2 = document.getElementById("editPolicyFormTaskIsDefault_" + statename + "_" + task_id); - if (taskstablerows.length <= 3 || (r2 != null && r2.checked == true)) { // default + if (taskstablerows.length <= 3 || (r2 != null && r2.checked)) { // default // is // checked // or diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyTab.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyTab.js index 045eb6d..2aa96e4 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyTab.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPolicyTab.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,8 +38,8 @@ function policyTab_activate() { ajax_get(requestURL, function(data) { $("#policyTableBody").find("tr:gt(0)").remove(); - for (var i = 0; i < data.messages.message.length; i++) { - var policy = JSON.parse(data.messages.message[i]).apexPolicy; + for (let value of data.messages.message) { + var policy = JSON.parse(value).apexPolicy; var policyRow_tr = document.createElement("tr"); var policyid = policy.policyKey.name + ":" + policy.policyKey.version; @@ -67,9 +68,9 @@ function policyTab_activate() { } } - for (var p = 0; p < policy.state.entry.length; p++) { - var stateName = policy.state.entry[p].key; - state = policy.state.entry[p].value; + for (let entry of policy.state.entry) { + var stateName = entry.key; + state = entry.value; policyTableRow += "<tr><td>" + @@ -80,9 +81,9 @@ function policyTab_activate() { "</td>"; policyTableRow += "<td><table class='ebTable'><thead><tr class='headerRow'><th>Task Reference</th><th>Output Type</th><th>Output</th></thead><tbody>"; - for (var t = 0; t < state.taskReferences.entry.length; t++) { - var taskKey = state.taskReferences.entry[t].key; - var taskRef = state.taskReferences.entry[t].value; + for (let taskEntry of state.taskReferences.entry) { + var taskKey = taskEntry.key; + var taskRef = taskEntry.value; policyTableRow += "<tr><td>" + @@ -106,8 +107,7 @@ function policyTab_activate() { "</td>"; policyTableRow += "<td><table class='ebTable'><thead><tr class='headerRow'><th>Name</th><th>Next State</th><th>Event</th></thead><tbody>"; - for (var o = 0; o < state.stateOutputs.entry.length; o++) { - var outputEntry = state.stateOutputs.entry[o]; + for (let outputEntry of state.stateOutputs.entry) { policyTableRow += "<tr><td>" + @@ -123,8 +123,7 @@ function policyTab_activate() { policyTableRow += "</tbody></table></td>"; policyTableRow += "<td><table class='ebTable'><thead><tr class='headerRow'><th>Name</th><th>Type</th></thead><tbody>"; - for (var sf = 0; sf < state.stateFinalizerLogicMap.entry.length; sf++) { - var sflEntry = state.stateFinalizerLogicMap.entry[sf]; + for (let sflEntry of state.stateFinalizerLogicMap.entry) { policyTableRow += "<tr><td>" + @@ -138,8 +137,7 @@ function policyTab_activate() { policyTableRow += "<td><table class='ebTable'><tbody>"; - for (var c = 0; c < state.contextAlbumReference.length; c++) { - var contextAlbumReference = state.contextAlbumReference[c]; + for (let contextAlbumReference of state.contextAlbumReference) { policyTableRow += "<tr><td>" + diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskEditForm.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskEditForm.js index 7ae7747..5503064 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskEditForm.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskEditForm.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,8 +32,8 @@ function editTaskForm_createTask(formParent) { var requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; var dt = { "name" : contextSchema.key.name, "version" : contextSchema.key.version, @@ -45,8 +46,8 @@ function editTaskForm_createTask(formParent) { requestURL = window.restRootURL + "/ContextAlbum/Get?name=&version="; var contextAlbums = new Array(); ajax_get(requestURL, function(data3) { - for (var y = 0; y < data3.messages.message.length; y++) { - var contextAlbum = JSON.parse(data3.messages.message[y]).apexContextAlbum; + for (let value of data3.messages.message) { + var contextAlbum = JSON.parse(value).apexContextAlbum; var ca = { "name" : contextAlbum.key.name, "version" : contextAlbum.key.version, @@ -87,8 +88,8 @@ function editTaskForm_editTask_inner(formParent, name, version, viewOrEdit) { requestURL = window.restRootURL + "/ContextSchema/Get?name=&version="; var contextSchemas = new Array(); ajax_get(requestURL, function(data2) { - for (var i = 0; i < data2.messages.message.length; i++) { - var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema; + for (let value of data2.messages.message) { + var contextSchema = JSON.parse(value).apexContextSchema; contextSchemas.push({ "name" : contextSchema.key.name, "version" : contextSchema.key.version, @@ -100,8 +101,8 @@ function editTaskForm_editTask_inner(formParent, name, version, viewOrEdit) { requestURL = window.restRootURL + "/ContextAlbum/Get?name=&version="; var contextAlbums = new Array(); ajax_get(requestURL, function(data3) { - for (var y = 0; y < data3.messages.message.length; y++) { - var contextAlbum = JSON.parse(data3.messages.message[y]).apexContextAlbum; + for (let value of data3.messages.message) { + var contextAlbum = JSON.parse(value).apexContextAlbum; var ca = { "name" : contextAlbum.key.name, "version" : contextAlbum.key.version, @@ -296,8 +297,7 @@ function editTaskForm_activate(parent, operation, task, contextSchemas, contextA inputfieldstable.appendChild(inputfieldstable_body); // Add the inputfields if (task && task.inputFields && task.inputFields.entry) { - for (var p = 0; p < task.inputFields.entry.length; p++) { - var inputfieldEntry = task.inputFields.entry[p]; + for (let inputfieldEntry of task.inputFields.entry) { var contextSchema = inputfieldEntry.value.fieldSchemaKey; contextSchema["displaytext"] = contextSchema.name + ":" + contextSchema.version; editTaskForm_addTaskInputField(inputfieldstable_body, (createEditOrView == "VIEW"), inputfieldEntry.key, @@ -355,8 +355,7 @@ function editTaskForm_activate(parent, operation, task, contextSchemas, contextA outputfieldstable.appendChild(outputfieldstable_body); // Add the outputfields if (task && task.outputFields && task.outputFields.entry) { - for (var y = 0; y < task.outputFields.entry.length; y++) { - var outputfieldEntry = task.outputFields.entry[y]; + for (let outputfieldEntry of task.outputFields.entry) { contextSchema = outputfieldEntry.value.fieldSchemaKey; contextSchema["displaytext"] = contextSchema.name + ":" + contextSchema.version; editTaskForm_addTaskOutputField(outputfieldstable_body, (createEditOrView == "VIEW"), outputfieldEntry.key, @@ -447,8 +446,7 @@ function editTaskForm_activate(parent, operation, task, contextSchemas, contextA paramstable.appendChild(paramstable_body); // Add the params if (task && task.taskParameters && task.taskParameters.entry) { - for (var k = 0; k < task.taskParameters.entry.length; k++) { - var paramEntry = task.taskParameters.entry[k]; + for (let paramEntry of task.taskParameters.entry) { var paramName = paramEntry.key; var paramValue = paramEntry.value.defaultValue; editTaskForm_addTaskParameter(paramstable_body, (createEditOrView == "VIEW"), paramName, paramValue); @@ -497,8 +495,7 @@ function editTaskForm_activate(parent, operation, task, contextSchemas, contextA contextstable.appendChild(contextstable_body); // Add the contexts if (task && task.contextAlbumReference && $.isArray(task.contextAlbumReference)) { - for (var l = 0; l < task.contextAlbumReference.length; l++) { - var contextEntry = task.contextAlbumReference[l]; + for (let contextEntry of task.contextAlbumReference) { var contextName = contextEntry.name + ":" + contextEntry.version; var ce = { "name" : contextEntry.name, @@ -643,7 +640,7 @@ function editTaskForm_addTaskInputField(parentTBody, disabled, name, optional, c if (name == null && contextSchema == null && !disabled) { inputOptional.setAttribute("class", "field-eventparam-optional.new"); } - if (optional == true) { + if (optional) { inputOptional.checked = true; } else { inputOptional.checked = false; @@ -712,7 +709,7 @@ function editTaskForm_addTaskOutputField(parentTBody, disabled, name, optional, if (name == null && contextSchema == null && !disabled) { outputOptional.setAttribute("class", "field-eventparam-optional.new"); } - if (optional == true) { + if (optional) { outputOptional.checked = true; } else { outputOptional.checked = false; @@ -960,9 +957,9 @@ function editTaskForm_submitPressed() { return false; } var contextalbumname = contextalbumvalue.displaytext; - for (var j = 0; j < taskbean_context.length; j++) { - if (taskbean_context[j] != null && taskbean_context[j].name == contextalbumvalue.name - && taskbean_context[j].version == contextalbumvalue.version) { + for (let value of taskbean_context) { + if (value != null && value.name == contextalbumvalue.name + && value.version == contextalbumvalue.version) { alert("Task \"" + name + "\" references Context Album \"" + contextalbumname + "\" more than once"); return false; diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskTab.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskTab.js index 28d9379..9c79ad4 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskTab.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexTaskTab.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,8 +38,8 @@ function taskTab_activate() { ajax_get(requestURL, function(data) { $("#taskTableBody").find("tr:gt(0)").remove(); - for (let i = 0; i < data.messages.message.length; i++) { - const task = JSON.parse(data.messages.message[i]).apexTask; + for (let value of data.messages.message) { + const task = JSON.parse(value).apexTask; const taskRow_tr = document.createElement("tr"); @@ -51,8 +52,7 @@ function taskTab_activate() { "</td>"; taskTableRow += "<td><table class='ebTable'><thead><tr class='headerRow'><th>Field Name</th><th>Field Type/Schema</th><th>Optional</th></tr></thead><tbody>"; - for (var f = 0; f < task.inputFields.entry.length; f++) { - var fieldEntry = task.inputFields.entry[f]; + for (let fieldEntry of task.inputFields.entry) { taskTableRow += "<tr><td>" + @@ -67,8 +67,7 @@ function taskTab_activate() { taskTableRow += "</tbody></table></td>"; taskTableRow += "<td><table class='ebTable'><thead><tr class='headerRow'><th>Field Name</th><th>Field Type/Schema</th><th>Optional</th></tr></thead><tbody>"; - for (var t = 0; t < task.outputFields.entry.length; t++) { - fieldEntry = task.outputFields.entry[t]; + for (let fieldEntry of task.outputFields.entry) { taskTableRow += "<tr><td>" + @@ -83,8 +82,7 @@ function taskTab_activate() { taskTableRow += "</tbody></table></td>"; taskTableRow += "<td><table class='ebTable'><thead><tr class='headerRow'><th>Parameter Name</th><th>Default Value</th></tr></thead><tbody>"; - for (var p = 0; p < task.taskParameters.entry.length; p++) { - var parameterEntry = task.taskParameters.entry[p]; + for (let parameterEntry of task.taskParameters.entry) { taskTableRow += "<tr><td>" + @@ -97,8 +95,7 @@ function taskTab_activate() { taskTableRow += "</tbody></table></td>"; taskTableRow += "<td><table class='ebTable'><tbody>"; - for (var c = 0; c < task.contextAlbumReference.length; c++) { - var contextAlbumReference = task.contextAlbumReference[c]; + for (let contextAlbumReference of task.contextAlbumReference) { taskTableRow += "<tr><td>" + diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/dropdownList.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/dropdownList.js index 3657fd4..d18b38e 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/dropdownList.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/dropdownList.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,11 +61,11 @@ function dropdownList_filter(optionDiv, optionUl) { ul = document.getElementById(optionDiv + "_options_list_ul"); var lis = ul.querySelectorAll("#" + ul.id + " > li"); // get li direct // child elements - for (var i = 0; i < lis.length; i++) { - if (lis[i].innerHTML.toUpperCase().indexOf(filter) > -1) { - lis[i].style.display = ""; + for (let value of lis) { + if (value.innerHTML.toUpperCase().indexOf(filter) > -1) { + value.style.display = ""; } else { - lis[i].style.display = "none"; + value.style.display = "none"; } } } @@ -123,8 +124,8 @@ function dropdownList_ChangeOptions(dropdownListDIV, options, selected, disabled // that // are // divs - for (var d = 0; d < subdivs.length; d++) { - retdiv.removeChild(subdivs[d]); + for (let value of subdivs) { + retdiv.removeChild(value); } var onselect = null; if (retdiv["_dropDownList_listener"]) { diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js index 0a3058e..8c98d3f 100644 --- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js +++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +24,7 @@ function showHideTextarea_display_hide(showHideDivprefix) { var ta = document.getElementById(showHideDivprefix + "_textarea"); var sh = document.getElementById(showHideDivprefix + "_showhide"); _showHideTextarea_display_hide(ta, sh) - if (sh["_clickable"] == true) { + if (sh["_clickable"]) { sh.onclick = function(event) { showHideTextarea_display_show(showHideDivprefix); }; @@ -33,7 +34,7 @@ function showHideTextarea_display_show(showHideDivprefix) { var ta = document.getElementById(showHideDivprefix + "_textarea"); var sh = document.getElementById(showHideDivprefix + "_showhide"); _showHideTextarea_display_show(ta, sh) - if (sh["_clickable"] == true) { + if (sh["_clickable"]) { sh.onclick = function(event) { showHideTextarea_display_hide(showHideDivprefix); }; diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorParametersTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorParametersTest.java index 9201983..88e2707 100644 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorParametersTest.java +++ b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorParametersTest.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,9 +34,9 @@ public class ApexEditorParametersTest { apexEditorParameters.setRestPort(-3); apexEditorParameters.setUploadUrl("what://ever"); final var actual = apexEditorParameters.validate(); - assertThat(actual).contains("upload-url parameter is an invalid"); - assertThat(actual).contains("upload-userid parameter must be specified"); - assertThat(actual).contains("port must be between"); - assertThat(actual).contains("time to live must be greater than -1"); + assertThat(actual).contains("upload-url parameter is an invalid") + .contains("upload-userid parameter must be specified") + .contains("port must be between") + .contains("time to live must be greater than -1"); } } diff --git a/gui-pdp-monitoring/pom.xml b/gui-pdp-monitoring/pom.xml index 4fe4491..4f9b72c 100644 --- a/gui-pdp-monitoring/pom.xml +++ b/gui-pdp-monitoring/pom.xml @@ -1,6 +1,6 @@ <!-- ============LICENSE_START======================================================= - Copyright (C) 2020 Nordix Foundation. + Copyright (C) 2020-2021 Nordix Foundation. Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); @@ -63,19 +63,6 @@ <artifactId>mockito-all</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.onap.policy.gui</groupId> - <artifactId>gui-common</artifactId> - <version>${project.version}</version> - <classifier>resources</classifier> - <type>zip</type> - <scope>provided</scope> - </dependency> </dependencies> <build> @@ -131,22 +118,19 @@ </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> + <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> - <id>Copy frontend build to target</id> - <phase>prepare-package</phase> + <id>generate-gui-pdp-monitoring-tar</id> + <phase>package</phase> <goals> - <goal>copy-resources</goal> + <goal>single</goal> </goals> <configuration> - <outputDirectory>${project.build.directory}/classes/webapp</outputDirectory> - <resources> - <resource> - <directory>${webapp.dir}/dist</directory> - <filtering>false</filtering> - </resource> - </resources> + <descriptors> + <descriptor>src/main/assembly/frontend.xml</descriptor> + </descriptors> + <finalName>${project.artifactId}-${project.version}</finalName> </configuration> </execution> </executions> diff --git a/gui-pdp-monitoring/src/main/assembly/resources.xml b/gui-pdp-monitoring/src/main/assembly/frontend.xml index b204cab..610121b 100644 --- a/gui-pdp-monitoring/src/main/assembly/resources.xml +++ b/gui-pdp-monitoring/src/main/assembly/frontend.xml @@ -1,6 +1,6 @@ <!-- ============LICENSE_START======================================================= - Copyright (C) 2020 Nordix Foundation. + Copyright (C) 2020-2021 Nordix Foundation. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,15 +18,15 @@ ============LICENSE_END========================================================= --> <assembly> - <id>resources</id> + <id>frontend</id> <formats> - <format>zip</format> + <format>tar.gz</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> - <directory>target/classes/webapp</directory> - <outputDirectory>monitoring</outputDirectory> + <directory>${webapp.dir}/dist</directory> + <outputDirectory>pdp-monitoring</outputDirectory> </fileSet> </fileSets> -</assembly>
\ No newline at end of file +</assembly> diff --git a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java index 398cbc4..2c0bb3a 100644 --- a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java +++ b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringMain.java @@ -152,7 +152,7 @@ public class PdpMonitoringMain { public void shutdown() { if (pdpMonitoringServer != null) { LOGGER.info(PDP_MONITORING_PREFIX + "{}) shutting down", this); - pdpMonitoringServer.shutdown(parameters.getPort(), parameters.getDefaultRestPort()); + pdpMonitoringServer.shutdown(parameters.getPort()); } shutdownLatch.countDown(); state = ServicesState.STOPPED; diff --git a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java index 78e048d..bfb273d 100644 --- a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java +++ b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServer.java @@ -22,7 +22,6 @@ package org.onap.policy.gui.pdp.monitoring; import lombok.NonNull; -import org.eclipse.jetty.servlets.CrossOriginFilter; import org.onap.policy.common.endpoints.http.server.HttpServletServer; import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; import org.slf4j.Logger; @@ -41,9 +40,6 @@ public class PdpMonitoringServer { // The HTTP server exposing JAX-RS resources defined in this application. private HttpServletServer jerseyServer; - // The HTTP server exposing static resources defined in this application. - private HttpServletServer staticResourceServer; - /** * Starts the HTTP server for the Pdp statistics monitoring on the default base URI and with the * default REST packages. @@ -58,34 +54,23 @@ public class PdpMonitoringServer { * @param parameters The Pdp parameters to use to start the server. */ public PdpMonitoringServer(@NonNull final PdpMonitoringServerParameters parameters) { - LOGGER.debug("Pdp Monitoring starting . . ."); jerseyServer = HttpServletServerFactoryInstance.getServerFactory().build("PDP Monitoring Rest Server", false, - parameters.getServerHost(), parameters.getDefaultRestPort(), parameters.getContextPath(), false, true); + parameters.getServerHost(), parameters.getPort(), parameters.getContextPath(), false, true); jerseyServer.addServletPackage(parameters.getDefaultRestPath(), parameters.getRestPackage()); - jerseyServer.addFilterClass(parameters.getDefaultRestPath(), CrossOriginFilter.class.getName()); jerseyServer.start(); - staticResourceServer = HttpServletServerFactoryInstance.getServerFactory().buildStaticResourceServer( - "PDP Monitoring Html Server", false, parameters.getServerHost(), parameters.getPort(), - parameters.getContextPath(), true); - staticResourceServer.addServletResource(null, - PdpMonitoringServer.class.getClassLoader().getResource("webapp").toExternalForm()); - staticResourceServer.start(); - LOGGER.debug("Pdp Monitoring started"); } /** * Shut down the web server. * - * @param htmlPort port number of static resource server * @param restPort port number of jersey server */ - public void shutdown(int htmlPort, int restPort) { + public void shutdown(int restPort) { LOGGER.debug("Pdp Monitoring . . ."); - HttpServletServerFactoryInstance.getServerFactory().destroy(htmlPort); HttpServletServerFactoryInstance.getServerFactory().destroy(restPort); LOGGER.debug("Pdp Monitoring shut down"); } diff --git a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java index a76fa02..78fb479 100644 --- a/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java +++ b/gui-pdp-monitoring/src/main/java/org/onap/policy/gui/pdp/monitoring/PdpMonitoringServerParameters.java @@ -38,7 +38,6 @@ import org.onap.policy.common.parameters.annotations.Min; @Getter @Setter public class PdpMonitoringServerParameters { - public static final int DEFAULT_PORT = 18999; public static final int INFINITY_TIME_TO_LIVE = -1; // Base URI the HTTP server will listen on @@ -55,7 +54,7 @@ public class PdpMonitoringServerParameters { @Min(1024) @Max(65534) - private int port = DEFAULT_PORT; + private int port = DEFAULT_REST_PORT; @Min(-1) private long timeToLive = INFINITY_TIME_TO_LIVE; @@ -88,8 +87,4 @@ public class PdpMonitoringServerParameters { public String getDefaultRestPath() { return "/" + DEFAULT_REST_PATH; } - - public int getDefaultRestPort() { - return DEFAULT_REST_PORT; - } } diff --git a/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js b/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js index f929282..6e5200e 100644 --- a/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js +++ b/gui-pdp-monitoring/src/webapp/js/MonitoringConfig.js @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. + * Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ // Configuration used for page layout and charts const config = { refresh: 5000, - restPort: 17999, engineService: { parent: "engineService", tableId: "engineServicesTable", @@ -124,4 +123,4 @@ const config = { } }; -export { config, };
\ No newline at end of file +export { config, }; diff --git a/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js b/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js index 9198d63..48aa96c 100644 --- a/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js +++ b/gui-pdp-monitoring/src/webapp/js/MonitoringMain.js @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. + * Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -68,8 +68,8 @@ function readyCallback() { window.restRootURL = location.protocol + "//" + window.location.hostname - + ':' + config.restPort - + (location.pathname.endsWith("/monitoring/") ? location.pathname.substring(0, location.pathname.indexOf("monitoring/")) : location.pathname) + + ':' + window.location.port + + window.location.pathname + "papservices/monitoring/"; // Initialize tooltip for the charts initTooltip(); @@ -108,4 +108,4 @@ function readyCallback() { $(document).ready(readyCallback); // Export for unit testing -export { readyCallback, servicesCallback };
\ No newline at end of file +export { readyCallback, servicesCallback }; diff --git a/gui-pdp-monitoring/src/webapp/js/MonitoringUtils.js b/gui-pdp-monitoring/src/webapp/js/MonitoringUtils.js index 9c6e076..2f2b044 100644 --- a/gui-pdp-monitoring/src/webapp/js/MonitoringUtils.js +++ b/gui-pdp-monitoring/src/webapp/js/MonitoringUtils.js @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2020 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -309,11 +310,11 @@ function clearEngineURL(clearPdps) { function getPdpList(data) { const pdpArray = []; - for (let i = 0; i < data.groups.length; i++) { + for (let value of data.groups) { var map = {}; - map.title = data.groups[i].name; + map.title = value.name; map.children = []; - (data.groups[i].pdpSubgroups).forEach((pdpSubgroup, index) => { + (value.pdpSubgroups).forEach((pdpSubgroup, index) => { map.children[index] = {}; map.children[index].title = pdpSubgroup.pdpType; const instanceId = []; diff --git a/gui-pdp-monitoring/src/webapp/js/PdpListView.js b/gui-pdp-monitoring/src/webapp/js/PdpListView.js index 9ae5c23..1e248ce 100644 --- a/gui-pdp-monitoring/src/webapp/js/PdpListView.js +++ b/gui-pdp-monitoring/src/webapp/js/PdpListView.js @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2020-2021 Nordix Foundation. + * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,20 +27,20 @@ function RenderPdpList(treeArr, className) { var isNode=false function insertChildren(parentNode, traverseArr, subGroup) { - for(let i = 0; i < traverseArr.length; i++) { + for(let value of traverseArr) { if(parentNode === root) { childLevel = 0 } var currentLi = document.createElement('li') currentLi.setAttribute('level', childLevel) - if(traverseArr[i].children && traverseArr[i].children.length > 0) { + if(value.children && value.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 + text.innerText = value.title title.appendChild(triangle) title.appendChild(text) currentLi.appendChild(title) @@ -48,12 +49,12 @@ function RenderPdpList(treeArr, className) { if(subGroup !== null){ index+= subGroup+"/" } - insertChildren(currentLi, traverseArr[i].children, traverseArr[i].title) + insertChildren(currentLi, value.children, value.title) }else { var a = document.createElement('a') - a.setAttribute('href',"#"+index+subGroup+"/"+traverseArr[i].title) + a.setAttribute('href',"#"+index+subGroup+"/"+value.title) a.classList.add('pdps__link') - a.textContent= traverseArr[i].title + a.textContent= value.title currentLi.appendChild(a) isNode=true } diff --git a/gui-pdp-monitoring/src/webapp/webpack.config.js b/gui-pdp-monitoring/src/webapp/webpack.config.js index f387ebe..4b1c179 100644 --- a/gui-pdp-monitoring/src/webapp/webpack.config.js +++ b/gui-pdp-monitoring/src/webapp/webpack.config.js @@ -10,6 +10,9 @@ module.exports = { devServer: { contentBase: path.join(__dirname, 'dist'), compress: true, - port: 9000 + port: 9000, + proxy: { + "/papservices/monitoring": "http://localhost:17999", + } } }; diff --git a/packages/policy-gui-docker/pom.xml b/packages/policy-gui-docker/pom.xml new file mode 100644 index 0000000..9574600 --- /dev/null +++ b/packages/policy-gui-docker/pom.xml @@ -0,0 +1,197 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2021 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========================================================= +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.onap.policy.gui</groupId> + <artifactId>gui-packages</artifactId> + <version>2.1.0-SNAPSHOT</version> + </parent> + + <packaging>pom</packaging> + <artifactId>policy-gui-docker</artifactId> + <name>${project.artifactId}</name> + <description>Policy gui docker image</description> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <dist.project.version>${project.version}</dist.project.version> + <docker.skip>false</docker.skip> + <docker.skip.build>false</docker.skip.build> + <docker.skip.push>false</docker.skip.push> + <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry> + <docker.push.registry>nexus3.onap.org:10003</docker.push.registry> + <maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format> + </properties> + + <build> + <finalName>${project.artifactId}-${project.version}</finalName> + <plugins> + <plugin> + <groupId>org.codehaus.gmaven</groupId> + <artifactId>groovy-maven-plugin</artifactId> + <version>2.1.1</version> + <executions> + <execution> + <phase>validate</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source>https://github.com/onap/policy-docker/raw/master/utils/groovy/docker-tag.groovy</source> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + + <configuration> + <verbose>true</verbose> + <apiVersion>1.23</apiVersion> + <pullRegistry>${docker.pull.registry}</pullRegistry> + <pushRegistry>${docker.push.registry}</pushRegistry> + + <images> + <image> + <name>onap/policy-gui</name> + <build> + <cleanup>try</cleanup> + <dockerFile>Dockerfile</dockerFile> + <tags> + <tag>${project.version}</tag> + <tag>${project.version}-${maven.build.timestamp}</tag> + <tag>${project.docker.latest.minmax.tag.version}</tag> + </tags> + <assembly> + <inline> + <dependencySets> + <dependencySet> + <includes> + <include>org.onap.policy.gui:gui-clamp:tar.gz:clamp-build:${project.version}</include> + </includes> + <outputFileNameMapping>gui-clamp-html.tar.gz</outputFileNameMapping> + </dependencySet> + <dependencySet> + <includes> + <include>org.onap.policy.gui:gui-pdp-monitoring:tar.gz:frontend:${project.version}</include> + </includes> + <outputFileNameMapping>gui-pdp-monitoring-html.tar.gz</outputFileNameMapping> + </dependencySet> + <dependencySet> + <includes> + <include>org.onap.policy.gui:gui-pdp-monitoring:uber.jar:${project.version}</include> + </includes> + <outputFileNameMapping>gui-pdp-monitoring-uber.jar</outputFileNameMapping> + </dependencySet> + <dependencySet> + <includes> + <include>org.onap.policy.gui.editors:gui-editor-apex:uber.jar:${project.version}</include> + </includes> + <outputFileNameMapping>gui-editor-apex-uber.jar</outputFileNameMapping> + </dependencySet> + </dependencySets> + </inline> + </assembly> + </build> + </image> + </images> + </configuration> + + <executions> + <execution> + <id>clean-images</id> + <phase>pre-clean</phase> + <goals> + <goal>remove</goal> + </goals> + <configuration> + <removeAll>true</removeAll> + </configuration> + </execution> + + <execution> + <id>generate-images</id> + <phase>generate-sources</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + + <execution> + <id>push-images</id> + <phase>deploy</phase> + <goals> + <goal>build</goal> + <goal>push</goal> + </goals> + <configuration> + <image>onap/policy-gui</image> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.onap.policy.gui</groupId> + <artifactId>gui-clamp</artifactId> + <version>${project.version}</version> + <classifier>clamp-build</classifier> + <type>tar.gz</type> + </dependency> + <dependency> + <groupId>org.onap.policy.gui</groupId> + <artifactId>gui-pdp-monitoring</artifactId> + <version>${project.version}</version> + <classifier>frontend</classifier> + <type>tar.gz</type> + </dependency> + <dependency> + <groupId>org.onap.policy.gui</groupId> + <artifactId>gui-pdp-monitoring</artifactId> + <version>${project.version}</version> + <type>uber.jar</type> + </dependency> + <dependency> + <groupId>org.onap.policy.gui.editors</groupId> + <artifactId>gui-editor-apex</artifactId> + <version>${project.version}</version> + <type>uber.jar</type> + </dependency> + </dependencies> +</project> diff --git a/packages/policy-gui-docker/src/main/docker/Dockerfile b/packages/policy-gui-docker/src/main/docker/Dockerfile new file mode 100644 index 0000000..8820139 --- /dev/null +++ b/packages/policy-gui-docker/src/main/docker/Dockerfile @@ -0,0 +1,55 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START======================================================= +# Copyright (C) 2021 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========================================================= +#------------------------------------------------------------------------------- + +FROM onap/policy-jre-alpine:2.3.0 + +LABEL maintainer="Policy Team" + +ARG POLICY_LOGS=/var/log/onap/policy/gui + +ENV POLICY_LOGS=$POLICY_LOGS +ENV POLICY_HOME=$POLICY_HOME/gui +ENV CLAMP_REST_URL=http://0.0.0.0 + +RUN mkdir -p $POLICY_HOME $POLICY_LOGS $POLICY_HOME/bin $POLICY_HOME/lib && \ + chown -R policy:policy $POLICY_HOME $POLICY_LOGS && \ + apk update && \ + apk add --no-cache gettext nginx + +WORKDIR $POLICY_HOME +COPY policy-gui.sh ./bin/ +COPY /maven/gui-editor-apex-uber.jar ./lib/ +COPY /maven/gui-pdp-monitoring-uber.jar ./lib/ +COPY nginx/nginx.conf /etc/nginx/nginx.conf +COPY nginx/default.conf.template /etc/nginx/templates/default.conf.template +COPY nginx/index.html /usr/share/nginx/html/ +ADD /maven/gui-clamp-html.tar.gz /usr/share/nginx/html/ +ADD /maven/gui-pdp-monitoring-html.tar.gz /usr/share/nginx/html/ +RUN rm /etc/nginx/conf.d/default.conf && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + touch /var/run/nginx.pid && \ + chown -R policy:policy . /etc/nginx /usr/share/nginx /var/lib/nginx /var/log/nginx /var/run/nginx.pid && \ + chmod 755 bin/*.sh + +USER policy +WORKDIR $POLICY_HOME/bin +ENTRYPOINT [ "./policy-gui.sh" ] +EXPOSE 8080 diff --git a/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template b/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template new file mode 100644 index 0000000..d407827 --- /dev/null +++ b/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template @@ -0,0 +1,28 @@ +server { + listen 8080; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ =404; + } + + location /clamp/restservices/clds/ { + proxy_pass ${CLAMP_REST_URL}/restservices/clds/; + } + + location /pdp-monitoring/papservices/monitoring/ { + proxy_pass http://localhost:17999/papservices/monitoring/; + } + + location /apex-editor/ { + proxy_pass http://localhost:18989/; + proxy_set_header Host $host; + proxy_set_header If-Modified-Since $http_if_modified_since; + } + + location = /50x.html { + root /var/lib/nginx/html; + } + error_page 500 502 503 504 /50x.html; +} diff --git a/packages/policy-gui-docker/src/main/docker/nginx/index.html b/packages/policy-gui-docker/src/main/docker/nginx/index.html new file mode 100644 index 0000000..98742ae --- /dev/null +++ b/packages/policy-gui-docker/src/main/docker/nginx/index.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>ONAP Policy GUI</title> +</head> +<body> + <ul> + <li><a href="/apex-editor">Apex Policy Editor</a></li> + <li><a href="/pdp-monitoring">PDP Monitoring</a></li> + <li><a href="/clamp">CLAMP Designer UI</a></li> + </ul> +</body> +</html> diff --git a/packages/policy-gui-docker/src/main/docker/nginx/nginx.conf b/packages/policy-gui-docker/src/main/docker/nginx/nginx.conf new file mode 100644 index 0000000..aac9bb6 --- /dev/null +++ b/packages/policy-gui-docker/src/main/docker/nginx/nginx.conf @@ -0,0 +1,18 @@ +worker_processes 1; +pid /var/run/nginx.pid; +error_log /dev/stdout info; +events { +} +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + #tcp_nopush on; + keepalive_timeout 65; + #gzip on; + include /etc/nginx/conf.d/*.conf; +} diff --git a/packages/policy-gui-docker/src/main/docker/policy-gui.sh b/packages/policy-gui-docker/src/main/docker/policy-gui.sh new file mode 100644 index 0000000..bb2d9c9 --- /dev/null +++ b/packages/policy-gui-docker/src/main/docker/policy-gui.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env sh +# +# ============LICENSE_START======================================================= +# Copyright (C) 2021 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========================================================= +# + +trap 'exit 0' SIGTERM + +JAVA_HOME=/usr/lib/jvm/java-11-openjdk/ + +echo "Starting gui-editor-apex" +$JAVA_HOME/bin/java -jar "$POLICY_HOME/lib/gui-editor-apex-uber.jar" -p 18989 & + +echo "Starting gui-pdp-monitoring" +$JAVA_HOME/bin/java -jar "$POLICY_HOME/lib/gui-pdp-monitoring-uber.jar" -p 17999 & + +echo "Starting nginx" +envsubst '${CLAMP_REST_URL}' < /etc/nginx/templates/default.conf.template > /etc/nginx/conf.d/default.conf +nginx -g "daemon on;" + +wait diff --git a/packages/pom.xml b/packages/pom.xml new file mode 100644 index 0000000..eb789ce --- /dev/null +++ b/packages/pom.xml @@ -0,0 +1,51 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2021 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========================================================= +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.policy.gui</groupId> + <artifactId>policy-gui</artifactId> + <version>2.1.0-SNAPSHOT</version> + </parent> + + <artifactId>gui-packages</artifactId> + <packaging>pom</packaging> + + <name>${project.artifactId}</name> + <description>[${project.parent.artifactId}] packaging</description> + + <properties> + <!-- There is no code in this sub-module, only holds interfaces. So skip sonar. --> + <sonar.skip>true</sonar.skip> + </properties> + + <profiles> + <profile> + <id>docker</id> + <modules> + <module>policy-gui-docker</module> + </modules> + <properties> + <docker.skip.push>false</docker.skip.push> + </properties> + </profile> + </profiles> +</project> + @@ -51,6 +51,7 @@ <module>gui-pdp-monitoring</module> <module>gui-editors</module> <module>gui-clamp</module> + <module>packages</module> </modules> <dependencies> |