From d4607efcc0692d8075ddf1e7f566033257770c88 Mon Sep 17 00:00:00 2001 From: Bernd Gewehr Date: Sat, 1 Aug 2020 17:00:22 +0200 Subject: [PATCH] Update customize-navbar.js added some more features like change logo, exchanging menus, add simple Link --- .../service_menu/customize-navbar.js | 184 ++++++++++++------ 1 file changed, 128 insertions(+), 56 deletions(-) diff --git a/customizations/service_menu/customize-navbar.js b/customizations/service_menu/customize-navbar.js index 9da823f..d0a879c 100644 --- a/customizations/service_menu/customize-navbar.js +++ b/customizations/service_menu/customize-navbar.js @@ -5,9 +5,9 @@ // @version 0.1 // @description Prototype code, sample on how to customize the navbar menu (Create, Modify, and Delete), only tested with English strings, MT environment only // @author Saymai Adkins -// @include *://connmt-orga.cnx.cwp.pnp-hcl.com/* +// @include *:///* // @exclude -// @run-at document-end +// @run-at document-end // ==/UserScript== (function () { @@ -34,12 +34,38 @@ } }, interval); }; + // Create simple Link (top level navbar link) + // nodeParent - navbar container element + // nodeId - unique id for this top navbar menu item + // menuTitle - navbar menu item text + // menuLink - navbar menu link, to launch if the user clicks on this menu item + var createMenuLink = function (nodeParent, nodeId, menuTitle, menuLink, position, beforeAfter, target) { + if (nodeParent && !dojo.query("#" + nodeId)[0]) { + var host = ''; + var templateTD = '${menuTitle}'; + var html = string.substitute(templateTD, { + menuTitle, + menuLink, + target + }, string.escape); + domConstruct.create( + "li", { + id: nodeId, + innerHTML: html + }, + nodeParent + ); + return domConstruct.place(nodeId, position, beforeAfter); + } else { + throw new Error("Error couldn't find the node parent to insert menu link"); + } + }; // Create menu wrapper (top level navbar menu with dropdown menu) // nodeParent - navbar container element // nodeId - unique id for this top navbar menu item // menuTitle - navbar menu item text // menuLink - navbar menu link, to launch if the user clicks on this menu item - var createMenuWrapper = function (nodeParent, nodeId, menuTitle) { + var createMenuWrapper = function (nodeParent, nodeId, menuTitle, position, beforeAfter) { if (nodeParent && !dojo.query("#" + nodeId)[0]) { var host = ''; var template = '${menuTitle}'; @@ -47,13 +73,14 @@ menuTitle, host }, string.escape); - return domConstruct.create( + domConstruct.create( "li", { id: nodeId, innerHTML: html }, nodeParent ); + return domConstruct.place(nodeId, position, beforeAfter); } else { throw new Error("Error couldn't find the node parent to insert menu wrapper"); } @@ -145,7 +172,7 @@ } else { throw new Error("Cannot find top nav menu to modify: " + queryTopNavMenu); } - } + }; // 3) Delete Menu // topNavMenuText // subMenuText - optional, if provided will delete just the submenu, other if null, will delete the top nav menu item @@ -175,63 +202,108 @@ } else { throw new Error("Cannot find top nav menu to delete: " + queryTopNavMenu); } - } + }; // here we use waitFor page to load // before we proceed to customize the navbar for the menu Apps waitFor(function () { - console.log('loaded'); - // - // 1) get the top navbar