myothet
7/24/2017 - 10:09 AM

Hide Relationship Tabs

Hide Relationship Tabs

/*
  This sample code hides "BOM" and "BOM Structure" tabs for OOTB Part item.
  In order to make this code work for FireFox, it explicitly selects the tab
  that should be loaded first -- "Alternates"
*/

var tabbar;
var desiredTabId;

//Function to hide tabs
hideTabs = function() {
  
    //Check if relationship grid is loaded
    if (!isTabbarReady()) {
        setTimeout(hideTabs, 50);
        return;
    }
  
    tabbar = parent.relationships.relTabbar;
    desiredTabId = tabbar.GetTabId("Alternates");
    tabbar.selectTab(desiredTabId);
  
    //Check if desired tab is selected
    if (!isTabSelected(desiredTabId)) {
        setTimeout(hideTabs, 50);
        return;
    }
  
    //Hide tabs
    var bomTab = tabbar.GetTabId("BOM");
    var mbomTab = tabbar.GetTabId("BOM Structure");
    tabbar.SetTabVisible(bomTab, false);
    tabbar.SetTabVisible(mbomTab, false);
    
    parent.relationshipsControl.onloaded();
};

//Function to check if relationship grid is loaded
var isTabbarReady = function() {
  
    if (parent.relationships === undefined)
        return false;
    
    var isReady = Boolean(!parent.relationships ||
        !parent.relationships.relTabbarReady ||
        parent.relationships.relTabbar.GetTabOrder("|") !== "");
    return isReady;
};

//Function to check if desired tab is selected
var isTabSelected = function(palceholderTabId) {
    return (tabbar.GetSelectedTab() === palceholderTabId);
};

//Call hideTabs function
setTimeout(hideTabs, 50);