<?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" 
        xmlns="http://ofbiz.apache.org/Widget-Form" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Form http://ofbiz.apache.org/dtds/widget-form.xsd">

    <grid name="ViewPartiesCreatedByVCard" list-name="partiesCreated" header-row-style="header-row" default-table-style="basic-table">
        <row-actions>
            <entity-one entity-name="Party" value-field="party" use-cache="true"/>
            <set field="partyName" value="${groovy:org.apache.ofbiz.party.party.PartyHelper.getPartyName(party, true)}"/>
            <entity-and entity-name="PartyAndContactMech" list="emailAddresses">
                <field-map field-name="partyId"/>
                <field-map field-name="contactMechTypeId" value="EMAIL_ADDRESS"/>
            </entity-and>
            <entity-and entity-name="PartyAndContactMech" list="telecomNumbers">
                <field-map field-name="partyId"/>
                <field-map field-name="contactMechTypeId" value="TELECOM_NUMBER"/>
            </entity-and>
            <set field="telecomNumber" from-field="telecomNumbers[0]" type="Object"/>
            <entity-and entity-name="PartyAndContactMech" list="postalAddresses">
                <field-map field-name="partyId"/>
                <field-map field-name="contactMechTypeId" value="POSTAL_ADDRESS"/>
            </entity-and>
            <set field="postalAddress" from-field="postalAddresses[0]" type="Object"/>
        </row-actions>
        <field name="partyId" title="${uiLabelMap.PartyPartyId}">
            <hyperlink description="${partyName} [${partyId}]" target="viewprofile" target-window="_blank">
                <parameter param-name="partyId"/>
                <parameter param-name="roleTypeId"/>
            </hyperlink>
        </field>
        <field name="emailAddress"><display description="${emailAddresses[0].infoString}"/></field>
        <field name="telecomNumber" title="${uiLabelMap.PartyPhoneNumber}">
            <display description="${telecomNumber.tnCountryCode} ${telecomNumber.tnAreaCode} ${telecomNumber.tnContactNumber} ${telecomNumber.tnAskForName}"/>
        </field>
        <field name="city"><display description="${postalAddress.paCity}"/></field>
    </grid>
    <grid name="ViewPartiesExistInVCard" list-name="partiesExist" extends="ViewPartiesCreatedByVCard"/>

</forms>
