From 73d03b9e5b534a737e0fb96bd2f09e4c51591321 Mon Sep 17 00:00:00 2001 From: zombieJ Date: Sat, 18 Feb 2017 15:17:21 +0800 Subject: [PATCH] [EAGLE-910] support merge portal UI merge side bar item if same name Author: zombieJ Closes #816 from zombieJ/EAGLE-910. --- .../app/dev/public/js/services/pageSrv.js | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js b/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js index f4ea2f44f4..6f7e3c68a4 100644 --- a/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js +++ b/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js @@ -132,6 +132,22 @@ return portal; } + /** + * Merge navigation item if same name + */ + function mergePortalList(list) { + var mergedList = []; + $.each(list, function (i, portal) { + var mergedPortal = common.array.find(portal.name, mergedList, ['name']); + if (mergedPortal && portal.list && mergedPortal.list) { + mergedPortal.list = mergedPortal.list.concat(portal.list); + } else { + mergedList.push($.extend({}, portal)); + } + }); + return mergedList; + } + Portal.refresh = function () { // TODO: check admin @@ -144,17 +160,20 @@ }; }); connectedMainPortalList.push({name: "Sites", icon: "server", showFunc: checkApplication, list: siteList}); + connectedMainPortalList = mergePortalList(connectedMainPortalList); // Site level sitePortals = {}; $.each(Site.list, function (i, site) { var siteHome = {name: site.siteName || site.siteId + " Home", icon: "home", path: "#/site/" + site.siteId}; - sitePortals[site.siteId] = [backHome, siteHome].concat($.map(sitePortalList, function (portal) { + var sitePortalList = [backHome, siteHome].concat($.map(sitePortalList, function (portal) { var hasApp = !!common.array.find(portal.application, site.applicationList, "descriptor.type"); if(hasApp) { return convertSitePortal(site, portal); } })); + + sitePortals[site.siteId] = mergePortalList(sitePortalList); }); };