As you know its very easy to customize the OBIEE Top Menu bar which is called as Header Navigation Bar (where Home / Favorites / Catalog and all such custom link exists) . This can be done by changing CSS for classes like .HeaderTitleBarCell, .HeaderNavBarCell and .HeaderMenuBarText span element which is part of common.css file. This is already explained in lot of blogs and easy to do a one custom change to reflect everywhere.
Also we know, using customlinks.xml ([MiddlewareHome]/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/customlinks.xml ) we can add multiple links in navbar and this is easy too.
Now , what if requirement ask you to change Header Nav bar link appearance differently based on different OBIEE Page or Dashboard you visit ? And what if you want to vanish certain links for specific set of users when they visit specific dashboard pages ?
So here is my existing links:
And I want to Change the name from Catalog to something else only in specific dashboard page visit .
And it should be looks like below :
So I have changed font style , color and weight here . To do this add a Text section in corresponding OBIEE page and check HTML Markup and add below code . Also dont forget to add ‘display:none;’ is section properties css section otherwise you might get the expand/collapsible tiny icon.
var spanElement = document.querySelectorAll(“.HeaderMenuNavBarText span”);
spanElement .innerHTML = ‘<!–font color=”#000000″ face =”Lato” size=”2″ ><!–b> CatalogMenuCustom</b–></font–>’ ;
Remove the !- – and – – from all tags above. Also you can use any HTML code here and people might prefer to use the style tag as font tag is deprecated.
Now what I am doing here is searching the corresponding class for Nav Bar menu and looking for span entry 4 (item name :Catalog) which is as per sequence how it appears and overriding the text from ‘Catalog’ to ‘CatalogMenuCustom’
Similarly if you want to remove a certain menu item just find the sequence and use below code instead :
spanElement.innerText = ”;
This will make it a null item there which will make the menu item vanish but bear in mind that it might leave a small tiny space which is still clickable if somebody found it 🙂
This is 11g example but the principle should be same while doing customization in 12c.