framework/webtools/widget/MiscMenus.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is subject to the terms and conditions defined in the
files 'LICENSE' and 'NOTICE', which are part of this source
code package.
-->
<menus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-menu.xsd">
<!-- Mostly-demo and mostly-testing menus (LayoutDemo) -->
<menu name="LayoutDemoButton" extends="CommonButtonBarMenu" extends-resource="component://common/widget/CommonMenus.xml">
<menu-item name="Selected" title="${uiLabelMap.CommonSelected}">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="Enabled" title="${uiLabelMap.CommonEnabled}">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</menu>
<!-- SCIPIO: nested menu test -->
<menu name="LayoutDemoNestedButton" extends="CommonButtonBarMenu" extends-resource="component://common/widget/CommonMenus.xml">
<actions>
<script lang="groovy"><![CDATA[
org.ofbiz.base.util.Debug.logInfo('Test: Hello from LayoutDemoNestedButton menu actions', "LayoutDemoNestedButton.groovy");
]]></script>
</actions>
<menu-item name="top1" title="Toplevel1">
<actions>
<script lang="groovy"><![CDATA[
org.ofbiz.base.util.Debug.logInfo('Test: Hello from Toplevel1 menu-item actions', "LayoutDemoNestedButton.groovy");
]]></script>
</actions>
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
<menu-item name="nested1" title="Nested1">
<actions>
<script lang="groovy"><![CDATA[
org.ofbiz.base.util.Debug.logInfo('Test: Hello from Nested1 menu-item actions', "LayoutDemoNestedButton.groovy");
]]></script>
</actions>
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="nested2" title="Nested2" sub-menu-style="+my-sub-menu" sub-menu-title="My Sub Menu Title">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
<menu-item name="nestednested1" title="Nestednested1">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="nestednested2" title="Nestednested2">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<!-- SCIPIO: This is a sub-dropdown button menu, implemented manually. It's better to use sub-menu-model now (see other menu), but this would be roughly equivalent (in this case). -->
<menu-item name="nestednested3" sub-menu-style="menu-type-button-dropdown" sub-menu-title="Nestednested3">
<menu-item name="nestednestednested1" title="Nestednestednested1" link-style="=${styles.menu_button_dropdown_item}" selected-style="=${styles.menu_button_dropdown_itemactive}">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="nestednestednested2" title="Nestednestednested2" link-style="=${styles.menu_button_dropdown_item}" selected-style="=${styles.menu_button_dropdown_itemactive}">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</menu-item>
</menu-item>
<menu-item name="nested3" title="Nested3"></menu-item>
<menu-item name="nested4" title="Nested4"></menu-item>
</menu-item>
<menu-item name="top2" title="Toplevel2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="top3" title="Toplevel3">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
<image src="/images/products/GZ-1000/small.png" />
</link>
</menu-item>
</menu>
<!-- SCIPIO: Just here to demonstrate sub-menu-model local lookup -->
<menu name="LayoutDemoButtonDropdownMenuModel" extends="CommonButtonDropdownMenu" extends-resource="component://common/widget/CommonMenus.xml"
default-link-style="+my-dropdown-item-link">
</menu>
<!-- SCIPIO: button menu with nested button-dropdown test -->
<menu name="LayoutDemoButton2" menu-container-style="+my-special-button-menu" extends="CommonButtonBarMenu" extends-resource="component://common/widget/CommonMenus.xml"
default-widget-style="+my-list-item">
<menu-item name="top1" title="Toplevel1" widget-style="my-list-item-override-style">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="top2" title="Toplevel2" widget-style="+my-list-item-extra-style">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<!-- SCIPIO: It's now possible to use an inlined sub-menu of different type (with button-dropdown, omit the menu-item title and link and
use sub-menu-title instead). sub-menu-model means the default styles will be fetched from the specified menu
instead of this top-level menu. -->
<menu-item name="top3">
<sub-menu model="component://common/widget/CommonMenus.xml#CommonButtonDropdownMenu" title="Sub-menu, as button-dropdown">
<menu-item name="nestednestednested1" title="Nestednestednested1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="nestednestednested2" title="Nestednestednested2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</sub-menu>
</menu-item>
<!-- SCIPIO: DEPRECATED, OLD SYNTAX, DO NOT USE. ALWAYS USE SUB-MENU ELEMENT FROM NOW ON. -->
<menu-item name="top3b" sub-menu-model="component://common/widget/CommonMenus.xml#CommonButtonDropdownMenu" sub-menu-title="Sub-menu, as button-dropdown (deprecated)">
<menu-item name="nestednestednested1" title="Nestednestednested1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="nestednestednested2" title="Nestednestednested2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</menu-item>
<menu-item name="top4" title="Toplevel4" disable-if-empty="nonExistentVar">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="top5">
<sub-menu id="demo-top5-sub-menu" model="component://webtools/widget/MiscMenus.xml#LayoutDemoButtonDropdownMenuModel" title="Sub-menu, as button-dropdown">
<menu-item name="nestednestednested1" title="Nestednestednested1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="nestednestednested2" title="Nestednestednested2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</sub-menu>
</menu-item>
<!-- A full menu include. The "full" scope is required to preserve the included menu's style. -->
<menu-item name="top6">
<sub-menu include="LayoutDemoButtonDropdown" model-scope="full" title="Separate sub-menu, as button-dropdown" />
</menu-item>
<!-- Modifies the previous to exclude one of the items and add an extra before -->
<menu-item name="top7">
<sub-menu name="LayoutDemoButtonDropdownTest2" include="LayoutDemoButtonDropdown" model-scope="full" title="Separate sub-menu, as button-dropdown, sorted"
items-sort-mode="displaytext-ignorecase">
<!-- extra items -->
<include-elements menu-name="LayoutDemoTest2" recursive="full"/>
<!-- This menu-ref overrides the sub-menu include (the "include" attribute
in the "sub-menu" element above) default behavior. Here we exclude an item. -->
<include-elements menu-ref="sub-menu-model"><!-- recursive="full" is the default here -->
<exclude-item name="Enabled"/>
</include-elements>
<!-- demoTestVar1 comes from the actions of LayoutDemoTest2/1 -->
<menu-item name="TestTest" title="Extra item ${demoTestVar1}">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</sub-menu>
</menu-item>
<!-- RARE CASE: Two submenus. technically supported, but usually best avoided. -->
<menu-item name="top6">
<sub-menu style="+two-sub-menu-first" name="LayoutDemoButtonDropdownTest3" include="LayoutDemoButtonDropdown" model-scope="full" title="Two submenus (1)" />
<sub-menu style="+two-sub-menu-second" name="LayoutDemoButtonDropdownTest4" include="LayoutDemoButtonDropdown" model-scope="full" title="Two submenus (2)" />
</menu-item>
</menu>
<menu name="LayoutDemoButtonDropdown" title="Dropdown button menu" extends="CommonButtonDropdownMenu" extends-resource="component://common/widget/CommonMenus.xml">
<menu-item name="Selected" title="${uiLabelMap.CommonSelected}">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="Enabled" title="${uiLabelMap.CommonEnabled}">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</menu>
<menu name="LayoutDemoTest1">
<actions>
<set field="demoTestVar1" value="demoTestValue1" />
</actions>
<menu-item name="DemoTest1" title="Demo Test 1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="DemoTest2" title="Demo Test 2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</menu>
<menu name="LayoutDemoTest2">
<include-elements menu-name="LayoutDemoTest1" />
<menu-item name="DemoTest3" title="Demo Test 3">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
<menu-item name="DemoTest4" title="Demo Test 4">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
</menu>
<menu name="LayoutDemoButton2NoSubMenus" extends="CommonButtonBarMenu" extends-resource="component://common/widget/CommonMenus.xml"><!-- Excludes sub-menus -->
<include-elements menu-name="LayoutDemoButton2" sub-menus="none"/>
<menu-item name="top7">
<!-- since we specified this sub-menu manually, it should be left alone by the above filter -->
<sub-menu name="LayoutDemoButtonDropdownTest2" include="LayoutDemoButtonDropdown" model-scope="full" title="Separate sub-menu, as button-dropdown, sorted"
items-sort-mode="displaytext-ignorecase">
<!-- extra items -->
<include-elements menu-name="LayoutDemoTest2" recursive="full"/>
<!-- This menu-ref overrides the sub-menu include (the "include" attribute
in the "sub-menu" element above) default behavior. Here we exclude an item. -->
<include-elements menu-ref="sub-menu-model"><!-- recursive="full" is the default here -->
<exclude-item name="Enabled"/>
</include-elements>
<!-- demoTestVar1 comes from the actions of LayoutDemoTest2/1 -->
<menu-item name="TestTest" title="Extra item ${demoTestVar1}">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</sub-menu>
</menu-item>
</menu>
<menu name="LayoutDemoTest3">
<menu-item name="DemoTest1" title="Demo Test 1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
<menu-item name="DemoTest2" title="Demo Test 2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
</link>
<sub-menu>
<menu-item name="DemoTestNested1" title="Demo Test Nested 1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
<sub-menu>
<menu-item name="DemoTestNestedNested1" title="Demo Test Nested Nested 1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
<menu-item name="DemoTestNestedNested2" title="Demo Test Nested Nested 2">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
</sub-menu>
</menu-item>
<menu-item name="DemoTestNested2" title="Demo Test Nested 2">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
</sub-menu>
</menu-item>
<menu-item name="myMenuPassedVar1" title="${groovy: context.myMenuPassedVar1 ?: 'missing'}">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
<menu-item name="myMenuPassedGlobalVar1" title="${groovy: context.myMenuPassedGlobalVar1 ?: 'missing'}">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
<menu-item name="myMenuPassedReqAttrib1" title="${groovy: request.getAttribute('myMenuPassedReqAttrib1') ?: 'missing'}">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
</link>
</menu-item>
</menu>
<menu name="WebtoolsPlainSiteMapDemo" selected-menu-context-field-name="activeMainMenu" selected-menuitem-context-field-name="activeMainMenuItem">
<!-- To achieve this, we can force the scope of all sub-menus to exclude styling using "func" or "none" -->
<include-menu-items menu-name="WebtoolsAppSideBar" resource="component://webtools/widget/Menus.xml" force-sub-menu-model-scope="none"/>
</menu>
<menu name="WebtoolsPlainSiteMapDemo2">
<include-menu-items menu-name="WebtoolsAppSideBar" resource="component://webtools/widget/Menus.xml"/>
</menu>
<!-- alternate way using weird extends -->
<menu name="WebtoolsPlainSiteMapDemo3" extends="WebtoolsPlainSiteMapDemo2" force-all-sub-menu-model-scope="func">
<menu-item name="extraInsertedItem" title="Extra inserted item">
<!-- here, the model style will be ignored because of force-all-sub-menu-model-scope (model effectively useless).
to honor its style, use only force-extends-sub-menu-model-scope="none" (or "func") instead-->
<sub-menu id="demo-top5-sub-menu" model="component://webtools/widget/MiscMenus.xml#LayoutDemoButtonDropdownMenuModel" title="Sub-menu, as button-dropdown">
<menu-item name="nestednestednested1" title="Nestednestednested1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="nestednestednested2" title="Nestednestednested2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</sub-menu>
</menu-item>
</menu>
<menu name="WebtoolsInlineSectionMenuDemo">
<menu-item name="item1" title="Inline-Section Menu Item 1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="item2" title="Inline-Section Menu Item 2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</menu>
<menu name="WebtoolsMenuActionsDemo1">
<actions>
<set field="commonActionField6" value="This value 6 was set in WebtoolsMenuActionsDemo1. [SUCCESS]"/>
<set field="commonActionField7" value="This value 7 was set in WebtoolsMenuActionsDemo1 but should be overridden... [ERROR]"/>
<set field="commonActionField8" value="This value 8 was set in WebtoolsMenuActionsDemo1 but should be overridden... [ERROR]"/>
<set field="commonActionField9" value="This value 9 was set in WebtoolsMenuActionsDemo1 but should be overridden... [ERROR]"/>
</actions>
</menu>
<menu name="WebtoolsMenuActionsDemo2">
<actions>
<set field="commonActionField7" value="This value 7 was set in WebtoolsMenuActionsDemo2. [SUCCESS]"/>
<set field="commonActionField8" value="This value 8 was set in WebtoolsMenuActionsDemo2 but should be overridden... [ERROR]"/>
<set field="commonActionField9" value="This value 9 was set in WebtoolsMenuActionsDemo2 but should be overridden... [ERROR]"/>
</actions>
</menu>
<menu name="WebtoolsMenuActionsDemo3">
<actions>
<set field="commonActionField8" value="This value 8 was set in WebtoolsMenuActionsDemo3. [SUCCESS]"/>
<set field="commonActionField9" value="This value 9 was set in WebtoolsMenuActionsDemo3 but should be overridden... [ERROR]"/>
</actions>
</menu>
<menu name="WebtoolsMenuActionsDemo4" extends="WebtoolsMenuActionsDemo1">
<!-- THREE possible ways to include actions here! -->
<include-actions menu-name="WebtoolsMenuActionsDemo2"/><!-- STATIC, textual include (this is rarely used) -->
<actions>
<include-menu-actions name="WebtoolsMenuActionsDemo3"/><!-- DYNAMIC, non-textual include -->
<set field="commonActionField9" value="This value 9 was set in WebtoolsMenuActionsDemo4. [SUCCESS]"/>
</actions>
</menu>
<menu name="TargetedRenderingTestMenu1" id="TargetedRenderingTestMenu1">
<menu-item name="item1" title="Inline-Section Menu Item 1">
<link target="${demoTargetUrl}">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
<menu-item name="item2" title="Inline-Section Menu Item 2">
<link target="${demoTargetUrl}" link-type="hidden-form">
<parameter param-name="demoParam1"/>
<parameter param-name="demoParam2"/>
<parameter param-name="demoParam3"/>
</link>
</menu-item>
</menu>
</menus>