blob: 7e6b63f4227a47942617990e1e55d1dbb71042ad [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
<!-- Custom apps can use their own Product Decorator by specifying its
location in parameters.productDecoratorLocation -->
<screen name="CommonProductDecorator">
<section>
<actions>
<set field="headerItem" value="products"/>
<property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/>
<set field="productId" from-field="parameters.productId" global="true"/>
<entity-one entity-name="Product" value-field="product"/>
<set field="product" from-field="product" global="true"/>
</actions>
<widgets>
<decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="left-column">
<include-screen name="leftbar" location="component://product/widget/catalog/CommonScreens.xml"/>
</decorator-section>
<decorator-section name="body">
<section>
<condition>
<or>
<if-has-permission permission="CATALOG" action="_ADMIN"/>
<if-has-permission permission="CATALOG" action="_CREATE"/>
<if-has-permission permission="CATALOG" action="_UPDATE"/>
<if-has-permission permission="CATALOG" action="_VIEW"/>
</or>
</condition>
<actions>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
</actions>
<widgets>
<section>
<condition>
<or>
<not><if-empty field="product"/></not>
<not><if-empty field="parameters.bypassIfNoProduct"/></not>
</or>
</condition>
<widgets>
<include-menu name="ProductTabBar" location="component://product/widget/catalog/CatalogMenus.xml"/>
<include-menu name="ProductSubTabBar" location="component://product/widget/catalog/CatalogMenus.xml"/>
<image src="${product.smallImageUrl}" url-mode="content" alt="${product.internalName}" style="cssImgSmall"/>
<label style="h1">${uiLabelMap[labelTitleProperty]} ${uiLabelMap.CommonFor}: ${product.internalName} [${uiLabelMap.CommonId}:${productId}] ${${extraFunctionName}}</label>
</widgets>
<fail-widgets>
<section>
<condition>
<if-compare operator="not-equals" value="EditProduct" field="tabButtonItem"/>
</condition>
<widgets>
<include-menu name="ProductSubTabBar" location="component://product/widget/catalog/CatalogMenus.xml"/>
</widgets>
</section>
</fail-widgets>
</section>
<decorator-section-include name="body"/>
</widgets>
<fail-widgets>
<label style="h3">${uiLabelMap.ProductCatalogViewPermissionError}</label>
</fail-widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="FindProduct">
<section>
<actions>
<set field="titleProperty" value="PageTitleFindProduct"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<section>
<condition>
<if-service-permission service-name="acctgAgreementPermissionCheck" main-action="VIEW"/>
</condition>
<widgets>
<decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
<decorator-section name="search-options">
<include-form name="FindProduct" location="component://product/widget/catalog/ProductForms.xml"/>
</decorator-section>
<decorator-section name="search-results">
<include-form name="ListProducts" location="component://product/widget/catalog/ProductForms.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
<fail-widgets>
<label style="h3">${uiLabelMap.AccountingViewPermissionError}</label>
</fail-widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProduct">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProduct"/>
<set field="tabButtonItem" value="EditProduct"/>
<set field="labelTitleProperty" value="ProductProduct"/>
<set field="parameters.bypassIfNoProduct" value="true"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProduct}">
<include-form name="EditProduct" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<section>
<condition>
<not><if-empty field="product"/></not>
</condition>
<widgets>
<screenlet title="${uiLabelMap.ProductDuplicateProduct}">
<include-form name="EditProductDup" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</widgets>
</section>
<section>
<condition>
<not><if-empty field="product"/></not>
</condition>
<widgets>
<section>
<condition>
<if-compare field="product.isVirtual" operator="equals" type="String" value="Y"/>
</condition>
<widgets>
<screenlet title="${uiLabelMap.ProductUpdateProductVariants}">
<include-form name="UpdateProductVariants" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</widgets>
</section>
</widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductPrices">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductPrices"/>
<set field="tabButtonItem" value="EditProductPrices"/>
<set field="labelTitleProperty" value="ProductPrices"/>
<entity-and entity-name="ProductPrice" list="productPrices">
<field-map field-name="productId" from-field="parameters.productId"/>
<order-by field-name="productStoreGroupId"/>
<order-by field-name="productPricePurposeId"/>
<order-by field-name="productPriceTypeId"/>
<order-by field-name="currencyUomId"/>
<order-by field-name="fromDate"/>
</entity-and>
<property-to-field field="defaultCurrencyUomId" resource="general" property="currency.uom.id.default" default="USD"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductPrices}">
<include-form name="UpdateProductPrice" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductPrices}">
<label style="h3" text="${uiLabelMap.ProductPricesWarning}"/>
<include-form name="AddProductPrice" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="ViewProductAgreements">
<section>
<actions>
<property-map resource="AccountingUiLabels" map-name="uiLabelMap"/>
<set field="titleProperty" value="PageTitleViewProductAgreements"/>
<set field="tabButtonItem" value="ViewProductAgreements"/>
<set field="labelTitleProperty" value="ProductAgreements"/>
<set field="productId" from-field="parameters.productId"/>
<entity-condition entity-name="SupplierProduct" list="supplierProductAgreements">
<condition-list>
<condition-expr field-name="productId" from-field="productId"/>
<condition-expr field-name="agreementId" operator="not-equals" from-field="nullField"/>
</condition-list>
<order-by field-name="availableFromDate"/>
</entity-condition>
<entity-and entity-name="AgreementItemAndProductAppl" list="salesAgreements">
<field-map field-name="productId"/>
<field-map field-name="agreementTypeId" value="SALES_AGREEMENT"/>
<order-by field-name="fromDate"/>
</entity-and>
<entity-and entity-name="AgreementItemAndProductAppl" list="productAgreements">
<field-map field-name="productId"/>
<field-map field-name="agreementTypeId" value="PRODUCT_AGREEMENT"/>
<order-by field-name="fromDate"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<container>
<link target="/accounting/control/EditAgreement" url-mode="inter-app" text="${uiLabelMap.PageTitleEditAgreement}" style="buttontext">
<parameter param-name="productId"/>
</link>
</container>
<screenlet title="${uiLabelMap.ProductPurchases}">
<include-form name="ListSupplierProductAgreements" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductSales}">
<include-form name="ListSalesAgreements" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductCommissions}">
<include-form name="ListProductAgreements" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductCategories">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductCategories"/>
<set field="tabButtonItem" value="EditProductCategories"/>
<set field="labelTitleProperty" value="ProductCategoryMembers"/>
<entity-condition entity-name="ProductCategoryMember" list="productCategoryMembers">
<condition-expr field-name="productId" from-field="parameters.productId"/>
<order-by field-name="sequenceNum"/>
<order-by field-name="productCategoryId"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductCategories}">
<include-form name="UpdateProductCategoryMember" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductCategories}">
<include-form name="AddProductCategoryMember" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductConfigs">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductConfigs"/>
<set field="tabButtonItem" value="EditProductConfigs"/>
<set field="labelTitleProperty" value="ProductConfigs"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<entity-and entity-name="ProductConfig" list="productConfigs">
<field-map field-name="productId"/>
<order-by field-name="sequenceNum"/>
<order-by field-name="fromDate"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductConfigs}">
<include-form name="UpdateProductConfig" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductConfigs}">
<include-form name="AddProductConfig" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductAssetUsage"><!-- screen for rental parameters -->
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductAssetUsage"/>
<set field="tabButtonItem" value="EditProductAssetUsage"/>
<set field="labelTitleProperty" value="ProductAssetUsage"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<entity-condition entity-name="FixedAssetProduct" list="fixedAssetProducts">
<condition-expr field-name="productId" from-field="productId"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductAssetUsage}">
<include-form name="EditProductAssetUsage" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleEditProductAssetUsage}">
<container>
<link target="newFixedAssetProduct" text="${uiLabelMap.PageTitleCreateProductAssetUsage}" style="buttontext">
<parameter param-name="productId"/>
</link>
</container>
<include-form name="ListProductFixedAssets" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="showFixedAssetProduct"><!-- add a fixed asset -->
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductAssetUsage"/>
<set field="tabButtonItem" value="EditProductAssetUsage"/>
<set field="labelTitleProperty" value="ProductAssetUsage"/>
<set field="extraFunctionName" value="uiLabelMap.AccountingFixedAssetProductUpd"/>
<entity-one entity-name="FixedAssetProduct" value-field="fixedAssetProduct"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductAssetUsage}">
<container>
<link target="newFixedAssetProduct" text="${uiLabelMap.AccountingFixedAssetNew}" style="buttontext">
<parameter param-name="productId"/>
</link>
</container>
<include-form name="showFixedAssetProduct" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="newFixedAssetProduct"><!-- add a fixed asset -->
<section>
<actions>
<set field="titleProperty" value="PageTitleAddProductAssetUsage"/>
<set field="tabButtonItem" value="EditProductAssetUsage"/>
<set field="labelTitleProperty" value="ProductAssetUsage"/>
<set field="extraFunctionName" value="uiLabelMap.AccountingFixedAssetProductAdd"/>
<set field="productId" from-field="parameters.productId"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleAddProductAssetUsage}">
<include-form name="addFixedAssetProduct" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="ViewProductManufacturing">
<section>
<actions>
<set field="titleProperty" value="PageTitleViewProductManufacturing"/>
<set field="tabButtonItem" value="ViewProductManufacturing"/>
<set field="labelTitleProperty" value="ProductManufacturing"/>
<set field="productId" from-field="parameters.productId"/>
<set field="productAssocTypeId" value="MANUF_COMPONENT"/>
<set field="workEffortGoodStdTypeId" value="ROU_PROD_TEMPLATE"/>
<entity-and entity-name="ProductAssoc" list="components">
<field-map field-name="productId"/>
<field-map field-name="productAssocTypeId"/>
<order-by field-name="sequenceNum"/>
</entity-and>
<entity-and entity-name="ProductAssoc" list="parents">
<field-map from-field="productId" field-name="productIdTo"/>
<field-map field-name="productAssocTypeId"/>
</entity-and>
<entity-and entity-name="WorkEffortGoodStandard" list="routings">
<field-map field-name="productId"/>
<field-map field-name="workEffortGoodStdTypeId"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<!--<include-form name="UpdateProductPrice" location="component://product/widget/catalog/ProductForms.xml"/>-->
<screenlet title="${uiLabelMap.ProductRoutings}">
<include-form name="ListProductRoutings" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<container><label style="h2">${uiLabelMap.ProductLowLevelCode}: ${product.billOfMaterialLevel}</label></container>
<screenlet title="${uiLabelMap.ProductComponents}">
<include-form name="ListProductComponents" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductParent}">
<include-form name="ListProductParents" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductCosts">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductCosts"/>
<set field="tabButtonItem" value="EditProductCosts"/>
<set field="labelTitleProperty" value="ProductCosts"/>
<set field="productId" from-field="parameters.productId"/>
<set field="productCostComponentId" from-field="parameters.productCostComponentId"/>
<!-- default currency in framework/common/config/general.properties -->
<property-to-field field="defaultCurrencyUomId" resource="general" property="currency.uom.id.default" default="USD"/>
<entity-one entity-name="CostComponent" value-field="costComponent" auto-field-map="false">
<field-map field-name="costComponentId" from-field="productCostComponentId"/>
</entity-one>
<!--<entity-and entity-name="CostComponent" list-name="costs" filter-by-date="true">-->
<entity-and entity-name="CostComponent" list="costs">
<field-map field-name="productId"/>
<order-by field-name="-fromDate"/>
</entity-and>
<entity-and entity-name="ProductCostComponentCalc" list="productCostComponentCalcs">
<field-map field-name="productId"/>
<order-by field-name="sequenceNum"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.FilterProductCosts}">
<include-form name="FilterCostComponents" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<section>
<condition>
<and>
<not><if-empty field="parameters.costUomId"/></not>
<not><if-empty field="parameters.costComponentTypePrefix"/></not>
</and>
</condition>
<actions>
<service service-name="getProductCost" result-map="totalCostMap">
<field-map field-name="productId"/>
<field-map field-name="currencyUomId" from-field="parameters.costUomId"/>
<field-map field-name="costComponentTypePrefix" from-field="parameters.costComponentTypePrefix"/>
</service>
</actions>
<widgets>
<label style="h2">${uiLabelMap.CommonTotal}: ${totalCostMap.productCost}</label>
</widgets>
</section>
<screenlet title="${uiLabelMap.ProductCosts}">
<include-form name="ListCostComponents" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddCostComponent}">
<include-form name="EditCostComponent" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductCostComponentCalcs}">
<include-form name="ListProductCostComponentCalcs" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.AddProductCostComponentCalc}">
<include-form name="AddProductCostComponentCalc" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAutoCreateCosts}">
<include-form name="CalculateProductCosts" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="QuickAddVariants">
<section>
<actions>
<set field="titleProperty" value="PageTitleQuickAddProductVariants"/>
<set field="tabButtonItem" value="QuickAddVariants"/>
<set field="labelTitleProperty" value="ProductQuickAddVariants"/>
<set field="productId" from-field="parameters.productId"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/QuickAddVariants.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductQuickAdmin}">
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/QuickAddVariants.ftl"/></html>
</platform-specific>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductQuickAdmin">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductQuickAdmin"/>
<set field="tabButtonItem" value="EditProductQuickAdmin"/>
<set field="labelTitleProperty" value="ProductQuickAdmin"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/EditProductQuickAdmin.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<section>
<widgets>
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/EditProductQuickAdmin.ftl"/></html>
</platform-specific>
</widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductFacilities">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductFacilities"/>
<set field="tabButtonItem" value="EditProductFacilities"/>
<set field="labelTitleProperty" value="ProductFacilities"/>
<entity-condition entity-name="ProductFacility" list="productFacilities">
<condition-expr field-name="productId" from-field="parameters.productId"/>
<order-by field-name="facilityId"/>
</entity-condition>
<entity-condition entity-name="Facility" list="facilities">
<order-by field-name="facilityName"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductFacilities}">
<include-form name="UpdateProductFacilities" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddFacility}">
<include-form name="AddProductFacility" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductFacilityLocations">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductFacilityLocations"/>
<set field="tabButtonItem" value="EditProductFacilityLocations"/>
<set field="labelTitleProperty" value="ProductFacilityLocations"/>
<entity-condition entity-name="ProductFacilityLocation" list="productFacilityLocations">
<condition-expr field-name="productId" from-field="parameters.productId"/>
<order-by field-name="facilityId"/>
<order-by field-name="locationSeqId"/>
</entity-condition>
<entity-condition entity-name="Facility" list="facilities">
<order-by field-name="facilityName"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductFacilityLocations}">
<include-form name="UpdateProductFacilityLocations" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.CommonAdd} ${uiLabelMap.ProductFacilityLocation}">
<include-form name="AddProductFacilityLocation" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductKeyword">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductKeywords"/>
<set field="tabButtonItem" value="EditProductKeyword"/>
<set field="labelTitleProperty" value="ProductKeywords"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<entity-and entity-name="Enumeration" list="keywordTypeList">
<field-map field-name="enumTypeId" value="KEYWORD_TYPE"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<container>
<link target="forceIndexProductKeywords" text="${uiLabelMap.ProductReInduceKeywords}" style="buttontext">
<parameter param-name="productId"/>
</link>
<link target="deleteProductKeywords" text="${uiLabelMap.ProductDeleteAllKeywords}" style="buttontext">
<parameter param-name="productId"/>
</link>
</container>
<screenlet title="${uiLabelMap.ProductAddProductKeyword}">
<include-form name="AddProductKeyword" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<iterate-section entry="keywordType" list="keywordTypeList">
<section>
<actions>
<set field="keywordTypeId" from-field="keywordType.enumId"/>
</actions>
<widgets>
<screenlet title="${uiLabelMap.PageTitleEditProductKeywords} : ${keywordType.description}">
<include-form name="UpdateProductKeyword" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</widgets>
</section>
</iterate-section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductInventoryItems">
<section>
<actions>
<property-map resource="OrderUiLabels" map-name="uiLabelMap"/>
<set field="titleProperty" value="PageTitleEditProductInventoryItems"/>
<set field="tabButtonItem" value="EditProductInventoryItems"/>
<set field="labelTitleProperty" value="ProductInventorySummary"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/EditProductInventoryItems.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<section>
<condition>
<if-compare field="product.isVirtual" operator="equals" type="String" value="Y"/>
</condition>
<widgets>
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/EditVirtualProductInventory.ftl"/></html>
</platform-specific>
</widgets>
<fail-widgets>
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/ProductInventorySummary.ftl"/></html>
</platform-specific>
<screenlet title="${uiLabelMap.ProductOutstandingPurchaseOrders}">
<include-form name="OutstandingPurchaseOrders" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/EditProductInventoryItems.ftl"/></html>
</platform-specific>
</fail-widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductGoodIdentifications">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductGoodIdentifications"/>
<set field="tabButtonItem" value="EditProductGoodIdentifications"/>
<set field="labelTitleProperty" value="ProductGoodIdentification"/>
<entity-condition entity-name="GoodIdentification" list="goodIdentifications">
<condition-expr field-name="productId" from-field="parameters.productId"/>
<order-by field-name="goodIdentificationTypeId"/>
<order-by field-name="idValue"/>
</entity-condition>
<entity-condition entity-name="GoodIdentificationType" list="goodIdentificationTypes" use-cache="true">
<order-by field-name="description"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductGoodIdentifications}">
<include-form name="UpdateProductGoodIdentifications" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleCreateProductGoodIdentifications}">
<include-form name="AddProductGoodIdentification" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductGlAccounts">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductGlAccounts"/>
<set field="tabButtonItem" value="EditProductGlAccounts"/>
<set field="labelTitleProperty" value="ProductGlAccounts"/>
<entity-condition entity-name="ProductGlAccount" list="productGlAccounts">
<condition-expr field-name="productId" from-field="parameters.productId"/>
<order-by field-name="glAccountTypeId"/>
</entity-condition>
<entity-condition entity-name="GlAccountType" list="productGlAccountTypes" use-cache="true">
<order-by field-name="description"/>
</entity-condition>
<entity-condition entity-name="GlAccount" list="glAccounts" use-cache="true">
<order-by field-name="accountCode"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductGlAccounts}">
<section>
<condition>
<not><if-empty field="product"/></not>
</condition>
<widgets>
<include-form name="ListProductGlAccounts" location="component://product/widget/catalog/ProductForms.xml"/>
</widgets>
</section>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddGlAccount}">
<section>
<condition>
<not><if-empty field="product"/></not>
</condition>
<widgets>
<include-form name="AddProductGlAccount" location="component://product/widget/catalog/ProductForms.xml"/>
</widgets>
</section>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductPaymentMethodTypes">
<section>
<actions>
<property-map resource="AccountingUiLabels" map-name="uiLabelMap"/>
<set field="titleProperty" value="PageTitleEditProductPaymentMethodType"/>
<set field="tabButtonItem" value="EditProductPaymentMethodTypes"/>
<set field="labelTitleProperty" value="ProductPaymentTypes"/>
<entity-condition entity-name="ProductPaymentMethodType" list="productPaymentMethodTypes">
<condition-expr field-name="productId" from-field="parameters.productId"/>
<order-by field-name="productPricePurposeId"/>
<order-by field-name="paymentMethodTypeId"/>
<order-by field-name="fromDate"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductPaymentMethodType}">
<include-form name="UpdateProductPaymentMethodType" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductPaymentMethodType}">
<include-form name="AddProductPaymentMethodType" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductFeatures">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductFeatures"/>
<set field="headerItem" value="product"/>
<set field="tabButtonItem" value="EditProductFeatures"/>
<set field="labelTitleProperty" value="ProductFeatures"/>
<set field="productId" from-field="parameters.productId"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/EditProductFeatures.groovy"/>
<entity-and entity-name="ProductFeatureIactn" list="featureInteractions">
<field-map field-name="productId" from-field="parameters.productId"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<container>
<section>
<widgets>
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/EditProductFeatures.ftl"/></html>
</platform-specific>
</widgets>
</section>
</container>
<screenlet title="${uiLabelMap.ProductListFeatureInteractions}">
<include-form name="ListFeatureInteractions" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddFeatureInteraction}">
<include-form name="AddFeatureInteraction" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductFeatureAttributes}">
<include-form name="AddProductFeatureApplAttr" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleListProductFeatureApplAttrs}">
<include-form name="ListProductFeatureApplAttrs" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditSupplierProduct">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditSupplierProduct"/>
<set field="tabButtonItem" value="EditSupplierProduct"/>
<set field="labelTitleProperty" value="ProductSuppliers"/>
<!-- default currency in framework/common/config/general.properties -->
<property-to-field field="defaultCurrencyUomId" resource="general" property="currency.uom.id.default" default="USD"/>
<set field="orderBy" from-field="parameters.sortField" default-value="partyId"/>
<entity-and entity-name="SupplierProduct" list="productSuppliers">
<field-map field-name="productId" from-field="parameters.productId"/>
<order-by field-name="${orderBy}"/>
</entity-and>
<entity-one entity-name="SupplierProduct" value-field="supplierProduct" auto-field-map="true"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditSupplierProduct}">
<include-form name="ListSupplierProducts" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<section>
<condition><not><if-empty field="supplierProduct"/></not></condition>
<widgets>
<link target="EditProductSuppliers" style="buttontext" text="${uiLabelMap.ProductNewProductSupplier}">
<parameter param-name="productId"/>
</link>
</widgets>
</section>
<screenlet title="${uiLabelMap.PageTitleAddProductSupplier}">
<include-form name="AddSupplierProduct" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductContent">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductContent"/>
<set field="tabButtonItem" value="EditProductContent"/>
<set field="labelTitleProperty" value="ProductContent"/>
<set field="layoutSettings.javaScripts[]" value="/ecommerce/images/productAdditionalView.js" global="true"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/EditProductContent.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductContent}">
<include-form name="ListProductContentInfos" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductCreateNewProductContent}">
<include-form name="PrepareAddProductContentAssoc" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddContentProduct}">
<include-form name="AddProductContentAssoc" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductOverrideSimpleFields}">
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/EditProductContent.ftl"/></html>
</platform-specific>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddAdditionalImages}">
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/AddAdditionalImages.ftl"/></html>
</platform-specific>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductContentContent">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductContent"/>
<set field="tabButtonItem" value="EditProductContent"/>
<set field="labelTitleProperty" value="ProductContent"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<entity-one entity-name="ProductContent" value-field="productContent"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/EditProductContentContent.groovy"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/EditProductSEO.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductContent}">
<include-form name="${contentFormName}" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleListAssociatedContentInfos}">
<include-form name="ListAssociatedContentInfos" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleCreateSimpleTextContentForAlternateLocale}">
<include-form name="CreateSimpleTextContentForAlternateLocale" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductAttributes">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductAttributes"/>
<set field="tabButtonItem" value="EditProductAttributes"/>
<set field="labelTitleProperty" value="ProductAttributes"/>
<entity-and entity-name="ProductAttribute" list="productAttributes">
<field-map field-name="productId" from-field="parameters.productId"/>
<order-by field-name="attrType"/>
<order-by field-name="attrName"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductAttributes}">
<include-form name="UpdateProductAttribute" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddProductAttributeNameValueType}">
<include-form name="AddProductAttribute" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductAssoc">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductAssociations"/>
<set field="tabButtonItem" value="EditProductAssoc"/>
<set field="labelTitleProperty" value="ProductAssociations"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/EditProductAssoc.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<container>
<section>
<widgets>
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/EditProductAssoc.ftl"/></html>
</platform-specific>
</widgets>
</section>
</container>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<!--
<screen name="EditProductAssoc">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductAssociations"/>
<set field="tabButtonItem" value="EditProductAssoc"/>
<set field="labelTitleProperty" value="EditProductAssoc"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<entity-and entity-name="ProductAssoc" list-name="productAssocs">
<field-map field-name="productId"/>
<order-by field-name="productAssocTypeId"/>
</entity-and>
<entity-and entity-name="ProductAssoc" list-name="productAssocsTo">
<field-map from-field="productId" field-name="productIdTo"/>
<order-by field-name="productAssocTypeId"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<include-form name="ListProductAssocs" location="component://product/widget/catalog/ProductForms.xml"/>
<include-form name="ListProductAssocsTo" location="component://product/widget/catalog/ProductForms.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
-->
<screen name="ApplyFeaturesFromCategory">
<section>
<actions>
<set field="titleProperty" value="PageTitleApplyFeaturesFromCategory"/>
<set field="labelTitleProperty" value="ProductAddProductFeatureFromCategory"/>
<set field="tabButtonItem" value="EditProductFeatures"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/>
<property-to-field resource="widget" property="widget.form.defaultViewSize" field="viewSizeDefaultValue"/>
<set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="${viewSizeDefaultValue}"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/ApplyFeaturesFromCategory.groovy"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/ApplyFeaturesFromGroup.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/ApplyFeaturesFromCategory.ftl"/></html>
</platform-specific>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="CreateVirtualWithVariantsForm">
<section>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<include-screen name="CreateVirtualWithVariantsFormInclude"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="CreateVirtualWithVariantsFormInclude">
<section>
<actions>
<entity-condition entity-name="ProductFeature" list="hazmatFeatures">
<condition-expr field-name="productFeatureTypeId" value="HAZMAT"/>
</entity-condition>
</actions>
<widgets>
<screenlet title="${uiLabelMap.PageTitleCreateVirtualWithVariants}">
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/CreateVirtualWithVariantsForm.ftl"/></html>
</platform-specific>
</screenlet>
</widgets>
</section>
</screen>
<screen name="EditProductMaints">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductMaintenance"/>
<set field="labelTitleProperty" value="ProductMaintenance"/>
<set field="tabButtonItem" value="EditProductMaints"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductMaintenance}">
<include-form name="ListProductMaints" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductMaintenance}">
<include-form name="AddProductMaint" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductMeters">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductMeters"/>
<set field="labelTitleProperty" value="ProductMeters"/>
<set field="tabButtonItem" value="EditProductMeters"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductMeters}">
<include-form name="ListProductMeters" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductMeters}">
<include-form name="AddProductMeter" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductGeos">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductGeos"/>
<set field="tabButtonItem" value="EditProductGeos"/>
<set field="labelTitleProperty" value="ProductGeos"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductGeos}">
<include-form name="ListProductGeos" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductGeos}">
<include-form name="AddProductGeo" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductSubscriptionResources">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductSubscriptionResources"/>
<set field="tabButtonItem" value="EditProductSubscriptionResources"/>
<set field="labelTitleProperty" value="ProductSubscriptionResources"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductSubscriptionResources}">
<include-form name="ListProductSubscriptionResources" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductSubscriptionResources}">
<include-form name="AddProductSubscriptionResource" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductWorkEfforts">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductWorkEffort"/>
<set field="tabButtonItem" value="EditProductWorkEfforts"/>
<set field="labelTitleProperty" value="ProductWorkEffort"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductWorkEffort}">
<include-form name="ListProductWorkEfforts" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddProductWorkEffort}">
<include-form name="AddProductWorkEffort" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="ProductBarCode.fo">
<section>
<actions>
<!-- base/top/specific map first, then more common map added for shared labels -->
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product" auto-field-map="true"/>
<set field="productName" from-field="product.productName" default-value="${product.internalName}"/>
</actions>
<widgets>
<platform-specific>
<xsl-fo><html-template location="component://product/webapp/catalog/product/ProductBarCode.fo.ftl"/></xsl-fo>
</platform-specific>
</widgets>
</section>
</screen>
<screen name="EditProductParties">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductParties"/>
<set field="headerItem" value="product"/>
<set field="tabButtonItem" value="EditProductParties"/>
<set field="labelTitleProperty" value="PartyParties"/>
<entity-condition entity-name="ProductRole" list="productRoles">
<condition-expr field-name="productId" from-field="parameters.productId"/>
<order-by field-name="roleTypeId"/>
<order-by field-name="partyId"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductParties}">
<include-form name="UpdateProductRole" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAssociatePartyToProduct}">
<include-form name="AddProductRole" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditVendorProduct">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditVendorProduct"/>
<set field="tabButtonItem" value="EditVendorProduct"/>
<set field="labelTitleProperty" value="PartyVendor"/>
<entity-condition entity-name="VendorProduct" list="vendorProductList">
<condition-expr field-name="productId" from-field="parameters.productId"/>
</entity-condition>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditVendorProduct}">
<include-form name="ListVendorProducts" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.PageTitleAddVendorProduct}">
<include-form name="EditVendorProduct" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="BestSellingProducts">
<section>
<actions>
<property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/>
<set field="filterDate" type="Timestamp" from-field="nowTimestamp"/>
<script location="component://product/webapp/catalog/WEB-INF/actions/product/BestProducts.groovy"/>
</actions>
<widgets>
<screenlet title="${uiLabelMap.ProductBestSellingProductsOf} ${now}">
<section>
<condition>
<not>
<if-empty field="bestSellingProducts"/>
</not>
</condition>
<widgets>
<include-form name="ListBestProduct" location="component://product/widget/catalog/ProductForms.xml"/>
</widgets>
<fail-widgets>
<label style="h3" text="${uiLabelMap.ProductNoProductFound}"></label>
</fail-widgets>
</section>
</screenlet>
</widgets>
</section>
</screen>
<screen name="ViewProductOrder">
<section>
<actions>
<set field="titleProperty" value="PageTitleViewProductOrders"/>
<set field="tabButtonItem" value="viewProductOrder"/>
<set field="labelTitleProperty" value="OrderOrders"/>
<script location="component://order/webapp/ordermgr/WEB-INF/actions/order/FindOrders.groovy"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<platform-specific>
<html><html-template location="component://product/webapp/catalog/product/ViewProductOrders.ftl"/></html>
</platform-specific>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductCommunicationEvents">
<section>
<actions>
<set field="titleProperty" value="PageTitleCommEvents"/>
<set field="tabButtonItem" value="EditProductCommunicationEvents"/>
<set field="labelTitleProperty" value="PageTitleCommEvents"/>
<entity-and entity-name="CommunicationEventAndProduct" list="communicationEvents">
<field-map field-name="productId" from-field="parameters.productId"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<link style="buttontext" target="AddCommEventForProduct" text="${uiLabelMap.CommonNew}">
<parameter param-name="productId"/>
</link>
<screenlet title="${uiLabelMap.PageTitleCommEvents}">
<include-form name="ListCommEvents" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditCommunicationEvent">
<section>
<actions>
<set field="titleProperty" value="PageTitleCommEvents"/>
<set field="tabButtonItem" value="EditProductCommunicationEvents"/>
<set field="labelTitleProperty" value="ProductAddCommunicationEvent"/>
<set field="productId" from-field="parameters.productId"/>
<set field="communicationEventId" from-field="parameters.communicationEventId"/>
<entity-one entity-name="Product" value-field="product"/>
<entity-one entity-name="CommunicationEvent" value-field="communicationEvent"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.ProductAddCommunicationEvent}">
<include-form name="EditCommEvent" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="ProductPriceHistory">
<section>
<actions>
<set field="titleProperty" value="PageTitleProductPricesHistory"/>
<set field="tabButtonItem" value="EditProductPrices"/>
<set field="labelTitleProperty" value="PageTitleProductPricesHistory"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="Product" value-field="product"/>
<entity-and entity-name="ProductPriceChange" list="productPricesChanges">
<field-map field-name="productId" from-field="productId"/>
<field-map field-name="productPriceTypeId" from-field="parameters.productPriceTypeId"/>
<field-map field-name="fromDate" from-field="parameters.fromDate"/>
<order-by field-name="fromDate"/>
</entity-and>
<property-to-field field="defaultCurrencyUomId" resource="general" property="currency.uom.id.default" default="USD"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<link target="EditProductPrices" text="${uiLabelMap.CommonBack}" style="buttontext">
<parameter param-name="productId"/>
</link>
<screenlet title="${uiLabelMap.PageTitleProductPricesHistory}">
<include-form name="ListProductPriceHistory" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="ViewProductGroupOrder">
<section>
<actions>
<set field="titleProperty" value="PageTitleViewProductGroupOrder"/>
<set field="tabButtonItem" value="ViewProductGroupOrder"/>
<set field="labelTitleProperty" value="ProductGroupOrder"/>
<set field="productId" from-field="parameters.productId"/>
<entity-and entity-name="ProductGroupOrder" list="productGroupOrders">
<field-map field-name="productId" from-field="productId"/>
</entity-and>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.ProductGroupOrder}">
<include-form name="ListProductGroupOrder" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
<screenlet title="${uiLabelMap.ProductAddGroupOrder}">
<include-form name="CreateProductGroupOrder" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductGroupOrder">
<section>
<actions>
<set field="titleProperty" value="PageTitleEditProductGroupOrder"/>
<set field="tabButtonItem" value="EditProductGroupOrder"/>
<set field="labelTitleProperty" value="ProductGroupOrder"/>
<set field="productId" from-field="parameters.productId"/>
<entity-one entity-name="ProductGroupOrder" value-field="productGroupOrder"/>
</actions>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.ProductEditGroupOrder}">
<include-form name="EditProductGroupOrder" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="EditProductTag">
<section>
<widgets>
<decorator-screen name="CommonProductDecorator" location="${parameters.productDecoratorLocation}">
<decorator-section name="body">
<screenlet title="${uiLabelMap.PageTitleEditProductTags}">
<include-form name="ListProductTag" location="component://product/widget/catalog/ProductForms.xml"/>
</screenlet>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
</screens>