fix for internationalization change for left menu
[portal.git] / ecomp-portal-BE-common / src / main / java / org / onap / portalapp / portal / service / EPLeftMenuServiceImpl.java
index 243b726..930c4a9 100644 (file)
  *
  * ============LICENSE_END============================================
  *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * 
  */
 package org.onap.portalapp.portal.service;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -49,10 +52,13 @@ import java.util.TreeSet;
 import org.json.JSONArray;
 import org.json.JSONObject;
 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;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Service;
@@ -68,14 +74,21 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService {
 
        private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPLeftMenuServiceImpl.class);
 
-       
        @Autowired
        private ExternalAccessRolesService externalAccessRolesService;
+       @Autowired
+       private DataAccessService dataAccessService;
+       
+       public final String appHome = "applicationsHome";
+       public final String appCatalog = "appCatalog";
+       public final String widCatalog = "widgetCatalog";
+       public final String users = "users";
+       
+
        /*
         * (non-Javadoc)
         * 
-        * @see
-        * org.onap.portalapp.portal.service.EPLeftMenuService#getLeftMenuItems
+        * @see org.onap.portalapp.portal.service.EPLeftMenuService#getLeftMenuItems
         * (java.util.Set)
         */
        @Override
@@ -83,7 +96,8 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService {
                final Map<String, JSONObject> defaultNavMap = new LinkedHashMap<String, JSONObject>();
                resetNavMap(defaultNavMap);
                loadDefaultNavMap(defaultNavMap);
-               loadNavMapByRole(defaultNavMap, fullMenuSet , user);
+               loadNavMapByUserAdminRole(defaultNavMap, user);
+               loadNavMapByRole(defaultNavMap, fullMenuSet, user);
                return convertToSideBarModel(defaultNavMap);
        }
 
@@ -101,7 +115,7 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService {
         * @param defaultNavMap
         * @param fullMenuSet
         */
-       private void loadNavMapByRole(Map<String, JSONObject> defaultNavMap, Set<MenuData> fullMenuSet , EPUser user) {
+       private void loadNavMapByRole(Map<String, JSONObject> defaultNavMap, Set<MenuData> fullMenuSet, EPUser user) {
 
                class SortOrderComparator implements Comparator<MenuData> {
                        @Override
@@ -110,11 +124,35 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService {
                        }
                }
 
+               // mulitilanguage impl
+               String loginId = user.getLoginId();
+               HashMap loginParams = new HashMap();
+               loginParams.put("login_id", loginId);
+               List<EPUser> epUsers = dataAccessService.executeNamedQuery("getEPUserByLoginId", loginParams, new HashMap());
+               Integer languageId = 1;
+               for (EPUser epUser : epUsers) {
+                       languageId = epUser.getLanguageId();
+               }
+               Iterator<MenuData> iterator = fullMenuSet.iterator();
+               HashMap params = new HashMap();
+               params.put("language_id", languageId);
+               List<DisplayText> displayTexts = dataAccessService.executeNamedQuery("displayText", params, new HashMap());
+               while (iterator.hasNext()) {
+                       MenuData menuData = iterator.next();
+                       for (int index = 0; index < displayTexts.size(); index++) {
+                               DisplayText displayText = displayTexts.get(index);
+                               if (menuData.getId().equals(displayText.getTextId())) {
+                                       menuData.setLabel(displayText.getLabel());
+                                       break;
+                               }
+                       }
+               }
+
                SortedSet<MenuData> sortMenuSet = new TreeSet<MenuData>(new SortOrderComparator());
                for (MenuData mn : fullMenuSet) {
                        sortMenuSet.add(mn);
                }
-               
+
                // Remove Roles from left menu if user doesnt have admin access on
                // centralized application
                List<CentralizedApp> applicationsList = null;
@@ -144,7 +182,7 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService {
                for (JSONObject navItemsDetail : jsonObjs)
                        navItems.put(navItemsDetail);
 
-               sidebarModel.put("label", "ECOMP portal");
+               sidebarModel.put("label", "Portal");
                sidebarModel.put("navItems", navItems);
                return sidebarModel.toString();
        }
@@ -155,25 +193,59 @@ public class EPLeftMenuServiceImpl implements EPLeftMenuService {
         * @param defaultNavMap
         */
        private void loadDefaultNavMap(Map<String, JSONObject> 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",leftMenuRootValue+appHome);
+               navItemsDetails1.put("imageSrc", "home");
+               defaultNavMap.put(appHome, 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",leftMenuRootValue+appCatalog);
+               navItemsDetails2.put("imageSrc", "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",leftMenuRootValue+widCatalog);
+               navItemsDetails3.put("imageSrc", "apps");
+               defaultNavMap.put(widCatalog, navItemsDetails3);
+
+       }
+
+
+       @SuppressWarnings("unchecked")
+       private void loadNavMapByUserAdminRole(Map<String, JSONObject> defaultNavMap, EPUser user) {
+               String leftMenuRootValue = getLeftMenuPrefixValue();
+               List<String> applicationsList = new ArrayList<>();
+               final Map<String, Long> 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+users);
+                       navItemsDetails.put("imageSrc", "person");
+                       defaultNavMap.put(users, navItemsDetails);
+               }
+       }
+
+       protected String getLeftMenuPrefixValue() {
+               String leftMenuRootValue = getLeftMenuValue();
+               if (leftMenuRootValue != null) {
+                       leftMenuRootValue += ".";
+               } else {
+                       leftMenuRootValue = "";
+               }
+               
+               return leftMenuRootValue;
+       
+       }
 
+       String getLeftMenuValue() {
+               return EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.PORTAL_LEFT_MENU) ? EPCommonSystemProperties.getProperty(EPCommonSystemProperties.PORTAL_LEFT_MENU):null;
        }
 
 }