<?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.
-->

<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">

    <form name="lookupListLayout" default-entity-name="ContentAssocDataResourceViewFrom" list-name="entityList" target="" title="" type="list"
        paginate-target="LookupListLayout" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
        <actions>
            <entity-condition entity-name="ContentAssocDataResourceViewFrom" list="entityList" >
                <condition-expr field-name="caContentIdTo" value="TEMPLATE_MASTER"/>
            </entity-condition>
        </actions>
        <field name="contentId" title="${uiLabelMap.CommonEdit}" widget-style="buttontext">
            <hyperlink also-hidden="false" description="${contentId}" target-type="plain" target="javascript:execRemoteCall('cloneLayout', '${drDataResourceId}', '${contentId}', 'TEMPLATE_MASTER', '')"/>
        </field>
        <field name="contentName"><display/></field>
        <field name="description"><display/></field>
        <field name="drObjectInfo"><display/></field>
    </form>

    <form name="lookupDataResourceContent" default-entity-name="DataResourceContentView" target="LookupSubContent" title="" type="single"
        header-row-style="header-row" default-table-style="basic-table">
        <field name="dataResourceId">
            <text-find/>
        </field>
        <field name="coContentId">
            <text-find/>
        </field>
        <field name="coContentName">
            <text-find/>
        </field>
        <field name="coDescription">
            <text-find/>
        </field>
        <field name="createdByUserLogin">
             <lookup  target-form-name="LookupPerson"/>
        </field>
        <field name="createdDate">
            <date-find/>
        </field>
        <field name="lastModifiedByUserLogin">
             <lookup  target-form-name="LookupParty"/>
        </field>
        <field name="lastModifiedDate">
            <date-find/>
        </field>
        <field name="submitButton" title="${uiLabelMap.CommonFind}" widget-style="smallSubmit">
            <submit button-type="button"/>
        </field>
        <field name="contentIdTo">
            <hidden value="${contentIdTo}"/>
        </field>
        <field name="mapKey">
            <hidden value="${mapKey}"/>
        </field>
    </form>

    <form name="listLookupDataResourceContent" default-entity-name="DataResourceContentView" list-name="listIt" target="" title="" type="list"
        paginate-target="LookupSubContent" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
        <actions>
            <service service-name="performFind" result-map="result" result-map-list="listIt">
                <field-map field-name="inputFields" from-field="parameters"/>
                <field-map field-name="entityName" value="DataResourceContentView"/>
                <field-map field-name="viewIndex" from-field="viewIndex"/>
                <field-map field-name="viewSize" from-field="viewSize"/>
            </service>
        </actions>
        <field name="replace" widget-style="buttontext" >
            <hyperlink also-hidden="false" target-type="plain" description="${uiLabelMap.FormFieldTitle_replace} [${dataResourceId}/${coContentId}]"
               target="javascript:execRemoteCall('replaceSubContent','${dataResourceId}','${coContentId}', '${contentIdTo}', '${mapKey}')"
            />
        </field>
        <field name="pasteContent" widget-style="buttontext" >
            <hyperlink also-hidden="false" target-type="plain" description="${uiLabelMap.ContentPaste} [${dataResourceId}/${coContentId}]"
               target="javascript:execRemoteCall('pasteContent','${dataResourceId}','${coContentId}')"/>
        </field>
        <field name="dataResourceName" widget-style="buttontext">
            <display/>
        </field>
        <field name="dataCategoryId" widget-style="buttontext">
            <display/>
        </field>
    </form>
</forms>
