From: Sudarshan Kumar Date: Fri, 7 Feb 2020 17:30:54 +0000 (+0530) Subject: Changes made to fix left menu routing X-Git-Tag: 3.2.0~32 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=portal.git;a=commitdiff_plain;h=6e50276a42ab82cfe34ced9cf97e545283f37f2a Changes made to fix left menu routing Changes made to fix left menu routing issue with ONAP-PORTAL Issue-ID: PORTAL-795 Change-Id: I0278049c9d9e95b9a64674fa3f99aff0e9d24a06 Signed-off-by: Sudarshan Kumar --- diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java index 96db8e32..fc926eb8 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPLeftMenuServiceImpl.java @@ -55,6 +55,7 @@ import org.onap.portalapp.portal.domain.CentralizedApp; import org.onap.portalapp.portal.domain.DisplayText; import org.onap.portalapp.portal.domain.EPUser; import org.onap.portalapp.portal.logging.aop.EPMetricsLog; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; import org.onap.portalsdk.core.domain.MenuData; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.portalsdk.core.service.DataAccessService; @@ -73,17 +74,15 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService { private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLeftMenuServiceImpl.class); - @Autowired private ExternalAccessRolesService externalAccessRolesService; @Autowired private DataAccessService dataAccessService; - + /* * (non-Javadoc) * - * @see - * org.onap.portalapp.portal.service.EPLeftMenuService#getLeftMenuItems + * @see org.onap.portalapp.portal.service.EPLeftMenuService#getLeftMenuItems * (java.util.Set) */ @Override @@ -91,8 +90,8 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService { final Map defaultNavMap = new LinkedHashMap(); resetNavMap(defaultNavMap); loadDefaultNavMap(defaultNavMap); - loadNavMapByUserAdminRole(defaultNavMap,user); - loadNavMapByRole(defaultNavMap, fullMenuSet , user); + loadNavMapByUserAdminRole(defaultNavMap, user); + loadNavMapByRole(defaultNavMap, fullMenuSet, user); return convertToSideBarModel(defaultNavMap); } @@ -110,7 +109,7 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService { * @param defaultNavMap * @param fullMenuSet */ - private void loadNavMapByRole(Map defaultNavMap, Set fullMenuSet , EPUser user) { + private void loadNavMapByRole(Map defaultNavMap, Set fullMenuSet, EPUser user) { class SortOrderComparator implements Comparator { @Override @@ -119,10 +118,10 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService { } } - //mulitilanguage impl + // mulitilanguage impl String loginId = user.getLoginId(); HashMap loginParams = new HashMap(); - loginParams.put("login_id",loginId); + loginParams.put("login_id", loginId); List epUsers = dataAccessService.executeNamedQuery("getEPUserByLoginId", loginParams, new HashMap()); Integer languageId = 1; for (EPUser epUser : epUsers) { @@ -130,13 +129,13 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService { } Iterator iterator = fullMenuSet.iterator(); HashMap params = new HashMap(); - params.put("language_id",languageId); - List displayTexts = dataAccessService.executeNamedQuery("displayText",params,new HashMap()); + params.put("language_id", languageId); + List displayTexts = dataAccessService.executeNamedQuery("displayText", params, new HashMap()); while (iterator.hasNext()) { MenuData menuData = iterator.next(); - for (int index = 0;index applicationsList = null; @@ -188,40 +187,60 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService { * @param defaultNavMap */ private void loadDefaultNavMap(Map defaultNavMap) { - + String leftMenuRootValue = getLeftMenuPrefixValue(); JSONObject navItemsDetails1 = new JSONObject(); navItemsDetails1.put("name", "Home"); - navItemsDetails1.put("state", "root.applicationsHome"); - navItemsDetails1.put("imageSrc", "icon-building-home"); - defaultNavMap.put("root.applicationsHome", navItemsDetails1); + navItemsDetails1.put("state", + (isLeftMenuHasRoot(leftMenuRootValue)) + ? leftMenuRootValue+".applicationsHome" + : "applicationsHome"); + navItemsDetails1.put("imageSrc", isLeftMenuHasRoot(leftMenuRootValue) ? "icon-building-home" : "home"); + defaultNavMap.put("applicationsHome", navItemsDetails1); JSONObject navItemsDetails2 = new JSONObject(); navItemsDetails2.put("name", "Application Catalog"); - navItemsDetails2.put("state", "root.appCatalog"); - navItemsDetails2.put("imageSrc", "icon-apps-marketplace"); - defaultNavMap.put("root.appCatalog", navItemsDetails2); + navItemsDetails2.put("state", + (isLeftMenuHasRoot(leftMenuRootValue)) + ? leftMenuRootValue+".appCatalog" + : "appCatalog"); + navItemsDetails2.put("imageSrc", isLeftMenuHasRoot(leftMenuRootValue) ? "icon-apps-marketplace" : "apps"); + defaultNavMap.put("appCatalog", navItemsDetails2); JSONObject navItemsDetails3 = new JSONObject(); navItemsDetails3.put("name", "Widget Catalog"); - navItemsDetails3.put("state", "root.widgetCatalog"); - navItemsDetails3.put("imageSrc", "icon-apps-marketplace"); - defaultNavMap.put("root.widgetCatalog", navItemsDetails3); + navItemsDetails3.put("state", + isLeftMenuHasRoot(leftMenuRootValue) + ? leftMenuRootValue+".widgetCatalog" + : "widgetCatalog"); + navItemsDetails3.put("imageSrc", isLeftMenuHasRoot(leftMenuRootValue) ? "icon-apps-marketplace" : "apps"); + defaultNavMap.put("widgetCatalog", navItemsDetails3); + + } + private boolean isLeftMenuHasRoot(String leftMenuRootValue) { + return (leftMenuRootValue != "" || leftMenuRootValue.isEmpty()) && leftMenuRootValue.equals("root"); } - + @SuppressWarnings("unchecked") private void loadNavMapByUserAdminRole(Map defaultNavMap, EPUser user) { - List applicationsList = new ArrayList<>(); - final Map appParams = new HashMap<>(); - appParams.put("userId", user.getId()); - applicationsList = dataAccessService.executeNamedQuery("getAprroverRoleFunctionsOfUser", appParams, null); - if (applicationsList.size() > 0) { - JSONObject navItemsDetails = new JSONObject(); - navItemsDetails.put("name", "Users"); - navItemsDetails.put("state", "root.users"); - navItemsDetails.put("imageSrc", "icon-user"); - defaultNavMap.put("root.users", navItemsDetails); + String leftMenuRootValue = getLeftMenuPrefixValue(); + List applicationsList = new ArrayList<>(); + final Map appParams = new HashMap<>(); + appParams.put("userId", user.getId()); + applicationsList = dataAccessService.executeNamedQuery("getAprroverRoleFunctionsOfUser", appParams, null); + if (applicationsList.size() > 0) { + JSONObject navItemsDetails = new JSONObject(); + navItemsDetails.put("name", "Users"); + navItemsDetails.put("state", + ((leftMenuRootValue != "" || !leftMenuRootValue.isEmpty()) && leftMenuRootValue.equals("root")) ? leftMenuRootValue+".users" + : "users"); + navItemsDetails.put("imageSrc", isLeftMenuHasRoot(leftMenuRootValue) ? "person" : "icon-user"); + defaultNavMap.put("users", navItemsDetails); + } } + + private String getLeftMenuPrefixValue() { + return EPCommonSystemProperties.getProperty(EPCommonSystemProperties.PORTAL_LEFT_MENU); } } diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java index 80501e39..e253bfcf 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/utils/EPCommonSystemProperties.java @@ -100,5 +100,6 @@ public class EPCommonSystemProperties extends SystemProperties { public static final String AUTHORIZATION = "Authorization"; public static final String USERNAME = "username"; public static final String PASSWORD = "password"; + public static final String PORTAL_LEFT_MENU = "portal_left_menu"; } diff --git a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties index cb187c8c..c6ee0e9b 100644 --- a/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties +++ b/ecomp-portal-BE-os/src/main/webapp/WEB-INF/conf/system.properties @@ -153,3 +153,5 @@ ext_central_access_user_domain = @csp.onap.org # External Central Auth system access remote_centralized_system_access = false +#left menu with root value or non-root +portal_left_menu = non-root \ No newline at end of file diff --git a/ecomp-portal-DB-common/PortalDMLMySql_3_1_Common.sql b/ecomp-portal-DB-common/PortalDMLMySql_3_1_Common.sql new file mode 100644 index 00000000..cf238506 --- /dev/null +++ b/ecomp-portal-DB-common/PortalDMLMySql_3_1_Common.sql @@ -0,0 +1,138 @@ +-- -------------------------------------------------------------------------------------------- +-- This is the common default data for 3.1.0 Version of Portal database called portal + +use portal; + +set foreign_key_checks=1; + +UPDATE + fn_menu +SET + ACTION = 'applicationsHome', + image_src = 'home' +WHERE + active_yn = 'Y' AND label = 'Home'; + + +UPDATE + fn_menu +SET + ACTION = 'appCatalog', + image_src= 'apps' +WHERE + active_yn = 'Y' AND label = 'Application Catalog'; + + + UPDATE + fn_menu +SET + ACTION = 'widgetCatalog', + image_src= 'apps' +WHERE + active_yn = 'Y' AND label = 'Widget Catalog'; + + UPDATE + fn_menu +SET + ACTION = 'admins' , + image_src= 'star' +WHERE + active_yn = 'Y' AND label = 'Admins'; + + UPDATE + fn_menu +SET + ACTION = 'roles' , + image_src= 'person' +WHERE + active_yn = 'Y' AND label = 'Roles'; + + + UPDATE + fn_menu +SET + ACTION = 'users', + image_src= 'person' +WHERE + active_yn = 'Y' AND label = 'Users'; + + + UPDATE + fn_menu +SET + ACTION = 'portalAdmins', + image_src= 'settings' +WHERE + active_yn = 'Y' AND label = 'Portal Admins'; + + + UPDATE + fn_menu +SET + ACTION = 'applications', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'Application Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'widgetOnboarding', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'Widget Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'functionalMenu', + image_src= 'menu' +WHERE + active_yn = 'Y' AND label = 'Edit Functional Menu'; + + + UPDATE + fn_menu +SET + ACTION = 'userNotifications', + image_src= 'settings' +WHERE + active_yn = 'Y' AND label = 'User Notifications'; + + + UPDATE + fn_menu +SET + ACTION = 'microserviceOnboarding', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'Microservice Onboarding'; + + + + UPDATE + fn_menu +SET + ACTION = 'webAnalytics', + image_src= 'pie' +WHERE + active_yn = 'Y' AND label = 'Web Analytics'; + + + UPDATE + fn_menu +SET + ACTION = 'webAnlayticsSource', + image_src= 'pie' +WHERE + active_yn = 'Y' AND label = 'Web Analytics Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'accountOnboarding', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'App Account Management'; + +commit; \ No newline at end of file diff --git a/ecomp-portal-DB-os/PortalMySql_3_1_Add_1.sql b/ecomp-portal-DB-os/PortalMySql_3_1_Add_1.sql new file mode 100644 index 00000000..a2483f23 --- /dev/null +++ b/ecomp-portal-DB-os/PortalMySql_3_1_Add_1.sql @@ -0,0 +1,145 @@ +-- --------------------------------------------------------------------------------------------------------------- +-- This is add script #1 for the 3_1 Version of Ecomp Portal database called portal. +-- It upgrades the database from the 1911 version. +-- note to database admin: must set the mysql system variable called lower_case_table_names. +-- it can be set 3 different ways: +-- command-line options (cmd-line), +-- options valid in configuration files (option file), or +-- server system variables (system var). +-- it needs to be set to 1, then table names are stored in lowercase on disk and comparisons are not case sensitive. +-- ----------------------------------------------------------------------------------------------------------------- +use portal; + +set foreign_key_checks=1; + +UPDATE + fn_menu +SET + ACTION = 'applicationsHome', + image_src = 'home' +WHERE + active_yn = 'Y' AND label = 'Home'; + + +UPDATE + fn_menu +SET + ACTION = 'appCatalog', + image_src= 'apps' +WHERE + active_yn = 'Y' AND label = 'Application Catalog'; + + + UPDATE + fn_menu +SET + ACTION = 'widgetCatalog', + image_src= 'apps' +WHERE + active_yn = 'Y' AND label = 'Widget Catalog'; + + UPDATE + fn_menu +SET + ACTION = 'admins' , + image_src= 'star' +WHERE + active_yn = 'Y' AND label = 'Admins'; + + UPDATE + fn_menu +SET + ACTION = 'roles' , + image_src= 'person' +WHERE + active_yn = 'Y' AND label = 'Roles'; + + + UPDATE + fn_menu +SET + ACTION = 'users', + image_src= 'person' +WHERE + active_yn = 'Y' AND label = 'Users'; + + + UPDATE + fn_menu +SET + ACTION = 'portalAdmins', + image_src= 'settings' +WHERE + active_yn = 'Y' AND label = 'Portal Admins'; + + + UPDATE + fn_menu +SET + ACTION = 'applications', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'Application Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'widgetOnboarding', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'Widget Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'functionalMenu', + image_src= 'menu' +WHERE + active_yn = 'Y' AND label = 'Edit Functional Menu'; + + + UPDATE + fn_menu +SET + ACTION = 'userNotifications', + image_src= 'settings' +WHERE + active_yn = 'Y' AND label = 'User Notifications'; + + + UPDATE + fn_menu +SET + ACTION = 'microserviceOnboarding', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'Microservice Onboarding'; + + + + UPDATE + fn_menu +SET + ACTION = 'webAnalytics', + image_src= 'pie' +WHERE + active_yn = 'Y' AND label = 'Web Analytics'; + + + UPDATE + fn_menu +SET + ACTION = 'webAnlayticsSource', + image_src= 'pie' +WHERE + active_yn = 'Y' AND label = 'Web Analytics Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'accountOnboarding', + image_src= 'filing' +WHERE + active_yn = 'Y' AND label = 'App Account Management'; + +commit; \ No newline at end of file diff --git a/ecomp-portal-DB-os/PortalMySql_3_1_Rollback_1.sql b/ecomp-portal-DB-os/PortalMySql_3_1_Rollback_1.sql new file mode 100644 index 00000000..98a06994 --- /dev/null +++ b/ecomp-portal-DB-os/PortalMySql_3_1_Rollback_1.sql @@ -0,0 +1,144 @@ +-- This is rollback script #1 for the 3_1 Version of Ecomp Portal database called portal. +-- It upgrades the database from the 1911 version. +-- note to database admin: must set the mysql system variable called lower_case_table_names. +-- it can be set 3 different ways: +-- command-line options (cmd-line), +-- options valid in configuration files (option file), or +-- server system variables (system var). +-- it needs to be set to 1, then table names are stored in lowercase on disk and comparisons are not case sensitive. +-- ----------------------------------------------------------------------------------------------------------------- +use portal; + +set foreign_key_checks=1; + +UPDATE + fn_menu +SET + ACTION = 'root.applicationsHome', + image_src = 'icon-building-home' +WHERE + active_yn = 'Y' AND label = 'Home'; + + +UPDATE + fn_menu +SET + ACTION = 'root.appCatalog', + image_src= 'icon-apps-marketplace' +WHERE + active_yn = 'Y' AND label = 'Application Catalog'; + + + UPDATE + fn_menu +SET + ACTION = 'root.widgetCatalog', + image_src= 'icon-apps-marketplace' +WHERE + active_yn = 'Y' AND label = 'Widget Catalog'; + + UPDATE + fn_menu +SET + ACTION = 'root.admins' , + image_src= 'icon-star' +WHERE + active_yn = 'Y' AND label = 'Admins'; + + UPDATE + fn_menu +SET + ACTION = 'root.roles' , + image_src= 'icon-user' +WHERE + active_yn = 'Y' AND label = 'Roles'; + + + UPDATE + fn_menu +SET + ACTION = 'root.users', + image_src= 'icon-user' +WHERE + active_yn = 'Y' AND label = 'Users'; + + + UPDATE + fn_menu +SET + ACTION = 'root.portalAdmins', + image_src= 'icon-settings' +WHERE + active_yn = 'Y' AND label = 'Portal Admins'; + + + UPDATE + fn_menu +SET + ACTION = 'root.applications', + image_src= 'icon-add-widget' +WHERE + active_yn = 'Y' AND label = 'Application Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'root.widgetOnboarding', + image_src= 'icon-add-widget' +WHERE + active_yn = 'Y' AND label = 'Widget Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'root.functionalMenu', + image_src= 'icon-edit' +WHERE + active_yn = 'Y' AND label = 'Edit Functional Menu'; + + + UPDATE + fn_menu +SET + ACTION = 'root.userNotifications', + image_src= 'icon-settings' +WHERE + active_yn = 'Y' AND label = 'User Notifications'; + + + UPDATE + fn_menu +SET + ACTION = 'root.microserviceOnboarding', + image_src= 'icon-add-widget' +WHERE + active_yn = 'Y' AND label = 'Microservice Onboarding'; + + + + UPDATE + fn_menu +SET + ACTION = 'root.webAnalytics', + image_src= 'icon-misc-piechart' +WHERE + active_yn = 'Y' AND label = 'Web Analytics'; + + + UPDATE + fn_menu +SET + ACTION = 'root.webAnlayticsSource', + image_src= 'icon-misc-piechart' +WHERE + active_yn = 'Y' AND label = 'Web Analytics Onboarding'; + + UPDATE + fn_menu +SET + ACTION = 'root.accountOnboarding', + image_src= 'icon-add-widget' +WHERE + active_yn = 'Y' AND label = 'App Account Management'; + + commit; \ No newline at end of file diff --git a/portal-FE-common/src/app/layout/components/header-menu/header-menu.component.html b/portal-FE-common/src/app/layout/components/header-menu/header-menu.component.html index 45b4e9f9..a3344ea1 100644 --- a/portal-FE-common/src/app/layout/components/header-menu/header-menu.component.html +++ b/portal-FE-common/src/app/layout/components/header-menu/header-menu.component.html @@ -35,96 +35,89 @@ --> +
+ + - +
\ No newline at end of file