blob: 1336d71f70b88635748a8019238be922bdda36ae [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"
xmlns="http://ofbiz.apache.org/Widget-Screen" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Screen http://ofbiz.apache.org/dtds/widget-screen.xsd">
<screen name="main-decorator">
<section>
<actions>
<!-- base/top/specific map first, then more common map added for shared labels -->
<property-map resource="ExampleUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<set field="layoutSettings.companyName" from-field="uiLabelMap.ExampleCompanyName" global="true"/>
<set field="layoutSettings.companySubtitle" from-field="uiLabelMap.ExampleCompanySubtitle" global="true"/>
<!-- layoutSettings.headerImageUrl can be used to specify an application specific logo; if not set,
then the global layoutSettings.commonHeaderImageUrl (specified in GlobalDecorator) will be used. -->
<!--<set field="layoutSettings.headerImageUrl" value="/images/ofbiz_logo.gif" global="true"/>-->
<!-- <set field="layoutSettings.headerMiddleBackgroundUrl" value="" global="true"/> -->
<!-- <set field="layoutSettings.headerRightBackgroundUrl" value="" global="true"/> -->
<!-- TODO: Use transform to specify component URI -->
<set field="layoutSettings.companyName" from-field="uiLabelMap.ExampleCompanyName" global="true"/>
<set field="layoutSettings.companySubtitle" from-field="uiLabelMap.ExampleCompanySubtitle" global="true"/>
<set field="activeApp" value="example" global="true"/>
<set field="applicationMenuName" value="ExampleAppBar" global="true"/>
<set field="applicationMenuLocation" value="component://example/widget/example/ExampleMenus.xml" global="true"/>
<set field="applicationTitle" value="${uiLabelMap.ExampleApplication}" global="true"/>
</actions>
<widgets>
<section>
<condition>
<if-has-permission permission="EXAMPLE" action="_VIEW"/>
</condition>
<actions>
<set field="layoutSettings.javaScripts[]" value="/example/js/ExamplePushNotifications.js" global="true"/>
</actions>
</section>
<include-screen name="GlobalDecorator" location="component://common/widget/CommonScreens.xml"/>
</widgets>
</section>
</screen>
<screen name="CommonExampleDecorator">
<!-- The CommonExampleDecorator screen decorates a small group of screens that all have
something in common. It is decorated by the main-decorator screen. To see how the
various decorators are combined to build a screen, view the page source of any
Example component screen. HTML comments indicate the start and end points of each
screen and decorator. -->
<section>
<actions>
<set field="headerItem" value="ExampleMenuItem"/>
<set field="exampleId" from-field="parameters.exampleId"/>
<entity-one entity-name="Example" value-field="example"/>
</actions>
<widgets>
<decorator-screen name="main-decorator">
<decorator-section name="pre-body">
<section>
<condition>
<and>
<if-has-permission permission="EXAMPLE" action="_VIEW"/>
<not><if-empty field="example"/></not><!-- This is a check useful when only seed data are loaded -->
</and>
</condition>
<widgets>
<include-menu name="EditExample" location="component://example/widget/example/ExampleMenus.xml"/>
</widgets>
</section>
</decorator-section>
<decorator-section name="body">
<section>
<!-- do check for EXAMPLE, _VIEW permission -->
<condition>
<if-has-permission permission="EXAMPLE" action="_VIEW"/>
</condition>
<widgets>
<section>
<condition>
<not><if-empty field="example"/></not><!-- This is a check useful when only seed data are loaded -->
</condition>
<widgets>
<container style="h1"><label>${uiLabelMap[titleProperty]} ${uiLabelMap.CommonFor} ${example.exampleName} [${exampleId}]</label></container>
<container style="button-bar">
<link target="EditExample" text="${uiLabelMap.ExampleNewExample}" style="buttontext create">
<image url-mode="raw" src="${iconsLocation}/add.png"/>
</link>
<link target="ExampleReportHtml" text="${uiLabelMap.CommonPrinterFriendly}" style="buttontext">
<parameter param-name="exampleId"/>
<image url-mode="raw" src="${iconsLocation}/printer.png"/>
</link>
<link target="ExampleReportXls" text="${uiLabelMap.CommonViewAsXls}" style="buttontext">
<parameter param-name="exampleId"/>
</link>
<link target="ExampleReportPdf" text="${uiLabelMap.CommonPdf}" style="buttontext" target-window="_blank">
<parameter param-name="exampleId"/>
<image url-mode="raw" src="${iconsLocation}/page_white_acrobat.png"/>
</link>
<link target="ExampleReportPdfOptions" text="${uiLabelMap.ExamplePdfPassword}" style="buttontext">
<parameter param-name="exampleId"/>
<image url-mode="raw" src="${iconsLocation}/page_white_acrobat.png"/>
</link>
<link target="ExampleReportPdfBarcode" text="${uiLabelMap.ExamplePdfBarcode}" style="buttontext" target-window="_blank">
<parameter param-name="exampleId"/>
<image url-mode="raw" src="${iconsLocation}/ofbiz_barcode.png"/>
</link>
<link target="help" text="${uiLabelMap.CommonHelp}" style="buttontext" target-window="_blank">
<parameter param-name="topic" value="ExampleEditHelp"/>
<image url-mode="raw" src="${iconsLocation}/help.png"/>
</link>
</container>
</widgets>
<fail-widgets>
<container style="h1"><label>${uiLabelMap.ExampleNewExample}</label></container>
</fail-widgets>
</section>
<decorator-section-include name="body"/>
</widgets>
<fail-widgets>
<label style="h3">${uiLabelMap.ExampleViewPermissionError}</label>
</fail-widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="CommonExampleFeatureDecorator">
<section>
<actions>
<set field="headerItem" value="ExampleFeature"/>
<set field="exampleFeatureId" from-field="parameters.exampleFeatureId"/>
<entity-one entity-name="ExampleFeature" value-field="exampleFeature"/>
</actions>
<widgets>
<decorator-screen name="main-decorator" location="${mainDecoratorLocation}">
<decorator-section name="pre-body">
<section>
<condition>
<and>
<if-has-permission permission="EXAMPLE" action="_VIEW"/>
<not><if-empty field="exampleFeature"/></not><!-- This is a check useful when only seed data are loaded -->
</and>
</condition>
<widgets>
<include-menu name="EditExampleFeature" location="component://example/widget/example/ExampleMenus.xml"/>
</widgets>
</section>
</decorator-section>
<decorator-section name="body">
<section>
<!-- do check for EXAMPLE, _VIEW permission -->
<condition>
<if-has-permission permission="EXAMPLE" action="_VIEW"/>
</condition>
<widgets>
<section>
<condition>
<not><if-empty field="exampleFeature"/></not><!-- This is a check useful when only seed data are loaded -->
</condition>
<widgets>
<container style="h1">
<label>${uiLabelMap[titleProperty]} ${uiLabelMap.CommonFor} ${exampleFeature.description} [${exampleFeatureId}]</label>
</container>
<container style="button-bar">
<link target="EditExampleFeature" text="${uiLabelMap.ExampleNewExampleFeature}" style="buttontext">
<image url-mode="raw" src="${iconsLocation}/add.png"/>
</link>
</container>
</widgets>
<fail-widgets>
<container style="h1"><label>${uiLabelMap.ExampleNewExampleFeature}</label></container>
</fail-widgets>
</section>
<decorator-section-include name="body"/>
</widgets>
<fail-widgets>
<label style="h3">${uiLabelMap.ExampleViewPermissionError}</label>
</fail-widgets>
</section>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="CommonExampleGeoLocationDecorator">
<section>
<actions>
<set field="headerItem" value="ExampleGeoLocation"/>
<set field="geoChart.dataSourceId" value="GEOPT_GOOGLE"/>
<set field="geoChart.width" value="600px"/>
<set field="geoChart.height" value="500px"/>
<set field="geoChart.points" from-field="geoPoints"/>
<set field="geoChart.center" from-field="geoCenter"/>
</actions>
<widgets>
<decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="pre-body">
<include-menu name="ExampleGeoLocation" location="component://example/widget/example/ExampleMenus.xml"/>
</decorator-section>
<decorator-section name="body">
<container style="clear" />
<include-screen name="geoChart" location="component://common/widget/CommonScreens.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="CommonExampleOsmGeoLocationDecorator">
<section>
<actions>
<set field="headerItem" value="ExampleGeoLocation"/>
<set field="geoChart.dataSourceId" value="GEOPT_OSM"/>
<set field="geoChart.width" value="600px"/>
<set field="geoChart.height" value="500px"/>
<set field="geoChart.points" from-field="geoPoints"/>
<set field="geoChart.center" from-field="geoCenter"/>
</actions>
<widgets>
<decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="pre-body">
<include-menu name="ExampleGeoLocation" location="component://example/widget/example/ExampleMenus.xml"/>
</decorator-section>
<decorator-section name="body">
<container style="clear" />
<include-screen name="geoChart" location="component://common/widget/CommonScreens.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="CommonExampleChartsDecorator">
<section>
<actions>
<set field="headerItem" value="ExampleCharts"/>
<entity-condition entity-name="ExampleCountByType" list="chartData">
<order-by field-name="exampleTypeId"/>
</entity-condition>
<set field="labelFieldName" value="exampleTypeId"/>
<set field="dataFieldName" value="total"/>
</actions>
<widgets>
<decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="pre-body">
<include-menu name="ExampleCharts" location="component://example/widget/example/ExampleMenus.xml"/>
</decorator-section>
<decorator-section name="body">
<container style="clear" />
<include-screen name="FlotChart" location="component://common/widget/flotScreens.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<screen name="SimpleDecorator">
<section>
<actions>
<property-map resource="ExampleUiLabels" map-name="uiLabelMap" global="true"/>
</actions>
<widgets>
<include-screen name="SimpleDecorator" location="component://common/widget/CommonScreens.xml"/>
</widgets>
</section>
</screen>
<screen name="main">
<!-- This is the screen for the Main page in the Example component. A common pattern
in OFBiz is to have each component include a Main page as a starting point for
the user. -->
<section>
<actions>
<set field="tabButtonItem" value="main"/>
</actions>
<widgets>
<include-screen name="FindExample" location="component://example/widget/example/ExampleScreens.xml"/>
</widgets>
</section>
</screen>
</screens>