Hide menu Last updated: Oct 12 2015

Customizing the left menu

Any application may extend the navigation in the left menu, and you also can add, delete, or change an existing tab by creating the LeftMenu.xml file.

Linking to an existing tab

The following example shows how to add a link (Countries) to an existing tab in left menu.

<?xml version="1.0" encoding="utf-8" ?>
<View xmlns="http://schemas.mediachase.com/ecf/view">
<Navigation>
<Tabs id="mainTag">
<Tab id="navTabAdmin" create="true">
<Link id="Core_System">
<Link id="Core_Dictionaries">
<add>
<Link id="Core_CountriesDictionary" text="\{SharedStrings:Countries\}" order="20" iconUrl="" iconCss="" command="cmdOrderCountriesDictionary"
permissions="order:admin:meta:fld:mng:view"/>
</add>
</Link>
</Link>
</Tab>
</Tabs>
</Navigation>
</View>

Adding a tab to the left menu

The following example shows how to add an empty tab within Order Management.

<?xml version="1.0" encoding="utf-8" ?>
<View xmlns="http://schemas.mediachase.com/ecf/view">
<Navigation>
<Tabs id="mainTag">
<add>
<Tab id="navTabOrderManagement" text="{OrderStrings:Order_Management}" order="80" contentType="default" imageUrl="~/Apps/Order/images/module.png" configUrl="" enableHandler="Mediachase.Commerce.Manager.Apps.Order.CommandHandlers.OrderTabEnableHandler, Mediachase.ConsoleManager" permissions="order:mng:view">
</Tab>
</add>
</Tabs>
</Navigation>
</View>

Removing tabs

The following example shows how to remove a tab within Order Management.

<?xml version="1.0" encoding="utf-8" ?>
<View xmlns="http://schemas.mediachase.com/ecf/view">
<Navigation>
<Tabs id="mainTag">
<remove nodeId="navTabOrderManagement">
</Tabs>
</Navigation>
</View>

Modifying a link in a tab

The following example shows how to remove the Core_CountriesDictionary link from the Order Management tab.

<?xml version="1.0" encoding="utf-8" ?>
<View xmlns="http://schemas.mediachase.com/ecf/view">
<Navigation>
<Tabs id="mainTag">
<Tab id="navTabAdmin" create="true">
<Link id="Core_System">
<remove nodeId="Core_CountriesDictionary" />
<add>
<Link id="Core_CountriesDictionary" text="Modified Link" order="20" iconUrl="" iconCss="" command="cmdOrderCountriesDictionary"
permissions="order:admin:meta:fld:mng:view"/>
</add>
</Link>
</Link>
</Tab>
</Tabs>
</Navigation>
</View>

XML description

The Tab element can contain the following attributes:

  • id (text). Unique identifier within xml file.
  • text (text). Text displayed by the tab, can contain resource string with the following format: {ResourceName:ResourceKey}.
  • order (int). Weight, which determines the location of the tab.
  • imageUrl (text). Relative image path for the tab.
  • enableHandler (text). Fully qualified class name for the tab EnableHandler (if EnableHandler returns false, then the tab will not be displayed in the left menu), the class has to implement ICommandEnableHandler interface.
  • permissions (text). Parameter that is passed as a CommandParameter value to the EnableHandler.

The following example shows how to retrieve permissions in the EnableHandler class:

public bool IsEnable(object sender, object element)
{
var commandParams = element as CommandParameters;
if (commandParams != null)
{
string permissions = commandParams.CommandArguments["permissions"];
}
}
The Link element can contain the following attributes:
  • id (text). Unique identifier within XML file.
  • text (text). Text displayed by the element, can contain resource string with the following format: {ResourceName:ResourceKey}.
  • order (int). Weight, which determines the location of the element.
  • imageUrl (text). Relative image path for the element.
  • enableHandler (text). Fully qualified class name for the element EnableHandler (if EnableHandler returns false, then the element is not displayed in the left menu), the class has to implement ICommandEnableHandler interface.
  • iconCss (text). Css class for the menu image.

Comments