<vn-watcher
    vn-id="watcher"
    url="SupplierAddresses"
    id-field="id"
    data="$ctrl.address"
    params="$ctrl.address"
    insert-mode="true"
    form="form">
</vn-watcher>
<vn-crud-model
    auto-load="true"
    url="Provinces/location"
    data="provincesLocation"
    order="id">
</vn-crud-model>
<form name="form" ng-submit="$ctrl.onSubmit()" class="vn-w-md">
    <vn-card class="vn-pa-lg">
        <vn-horizontal>
            <vn-textfield
                vn-one
                label="Name"
                ng-model="$ctrl.address.nickname"
                rule
                vn-focus>
            </vn-textfield>
            <vn-textfield
                vn-one
                label="Street address"
                ng-model="$ctrl.address.street"
                rule>
            </vn-textfield>
        </vn-horizontal>
        <vn-horizontal>
            <vn-datalist vn-one
                label="Postcode"
                ng-model="$ctrl.address.postalCode"
                selection="$ctrl.postcode"
                url="Postcodes/location"
                fields="['code','townFk']"
                order="code, townFk"
                value-field="code"
                show-field="code"
                rule>
                <tpl-item>
                    {{code}} - {{town.name}} ({{town.province.name}}, 
                    {{town.province.country.country}})
                </tpl-item>
                <append>
                    <vn-icon-button
                        icon="add_circle"
                        vn-tooltip="New postcode"
                        ng-click="postcode.open()"
                        vn-acl="deliveryBoss"
                        vn-acl-action="remove">
                    </vn-icon-button>
                </append>
            </vn-datalist>
            <vn-datalist vn-id="town" vn-one 
                label="City"
                ng-model="$ctrl.address.city"
                selection="$ctrl.town"
                url="Towns/location"
                fields="['id', 'name', 'provinceFk']"
                show-field="name"
                value-field="name">
                <tpl-item>
                    {{name}}, {{province.name}}
                    ({{province.country.country}})
                </tpl-item>
            </vn-datalist>
            <vn-autocomplete vn-id="province" vn-one
                label="Province"
                ng-model="$ctrl.address.provinceFk"
                data="provincesLocation"
                fields="['id', 'name', 'countryFk']"
                show-field="name"
                value-field="id"
                rule>
                <tpl-item>{{name}} ({{country.country}})</tpl-item>
            </vn-autocomplete>
        </vn-horizontal>
        <vn-horizontal>
            <vn-textfield
                vn-one
                label="Phone"
                ng-model="$ctrl.address.phone"
                rule>
            </vn-textfield>
            <vn-textfield
                vn-one
                label="Mobile"
                ng-model="$ctrl.address.mobile"
                rule>
            </vn-textfield>
        </vn-horizontal>
    </vn-card>
    <vn-button-bar>
        <vn-submit label="Save"></vn-submit>
        <vn-button
            label="Cancel"
            ui-sref="supplier.card.address.index">
        </vn-button>
    </vn-button-bar>
</form>

<!-- New postcode dialog -->
<vn-geo-postcode vn-id="postcode"
    on-response="$ctrl.onResponse($response)">
</vn-geo-postcode>