<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Copyright © Magefan (support@magefan.com). All rights reserved.
 * See LICENSE.txt for license details (http://opensource.org/licenses/osl-3.0.php).
 *
 * Glory to Ukraine! Glory to the heroes!
 */
-->
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">

    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="provider" xsi:type="string">hotel_post_form.post_form_data_source</item>
            <item name="deps" xsi:type="string">hotel_post_form.post_form_data_source</item>
        </item>
        <item name="label" xsi:type="string" translate="true">Hotel Information</item>
        <item name="config" xsi:type="array">
            <item name="dataScope" xsi:type="string">data</item>
            <item name="namespace" xsi:type="string">hotel_post_form</item>
        </item>
        <item name="template" xsi:type="string">templates/form/collapsible</item>
        <item name="buttons" xsi:type="array">
            <item name="back" xsi:type="string">Seizera\ItineraryObjects\Block\Adminhtml\Hotel\BackButton</item>
            <item name="delete" xsi:type="string">Seizera\ItineraryObjects\Block\Adminhtml\Hotel\DeleteButton</item>
            <item name="reset" xsi:type="string">Seizera\ItineraryObjects\Block\Adminhtml\Hotel\ResetButton</item>
            <item name="duplicate" xsi:type="string">Seizera\ItineraryObjects\Block\Adminhtml\Hotel\DuplicateButton</item>
            <!-- <item name="preview" xsi:type="string">Magefan\Community\Block\Adminhtml\Edit\PreviewButton</item> -->
            <item name="save" xsi:type="string">Seizera\ItineraryObjects\Block\Adminhtml\Hotel\SaveButton</item>
            <item name="save_and_continue" xsi:type="string">Seizera\ItineraryObjects\Block\Adminhtml\Hotel\SaveAndContinueButton</item>
        </item>
    </argument>

    <dataSource name="post_form_data_source">
        <argument name="dataProvider" xsi:type="configurableObject">
            <argument name="class" xsi:type="string">Seizera\ItineraryObjects\Ui\DataProvider\Hotel\Form\HotelDataProvider</argument>
            <argument name="name" xsi:type="string">post_form_data_source</argument>
            <argument name="primaryFieldName" xsi:type="string">entity_id</argument>
            <argument name="requestFieldName" xsi:type="string">id</argument>
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="submit_url" xsi:type="url" path="itobj/hotel/save"/>
                </item>
            </argument>
        </argument>
        <argument name="data" xsi:type="array">
            <item name="js_config" xsi:type="array">
                <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
            </item>
        </argument>
    </dataSource>
    <fieldset name="general">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string"/>
            </item>
        </argument>

        <field name="entity_id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="visible" xsi:type="boolean">false</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="dataScope" xsi:type="string">entity_id</item>
                </item>
            </argument>
        </field>
        <field name="is_active">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">boolean</item>
                    <item name="label" xsi:type="string" translate="true">Enable Hotel</item>
                    <item name="formElement" xsi:type="string">checkbox</item>
                    <item name="prefer" xsi:type="string">toggle</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="sortOrder" xsi:type="number">10</item>
                    <item name="dataScope" xsi:type="string">is_active</item>
                    <item name="valueMap" xsi:type="array">
                        <item name="true" xsi:type="number">1</item>
                        <item name="false" xsi:type="number">0</item>
                    </item>
                    <item name="default" xsi:type="number">1</item>
                </item>
            </argument>
        </field>
        <!-- <field name="title">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">Post Title</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="sortOrder" xsi:type="number">20</item>
                    <item name="dataScope" xsi:type="string">title</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field> -->

        <field name="name">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string">Hotel Name</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>

        <field name="description">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string">Hotel Description</item>
                    <item name="formElement" xsi:type="string">wysiwyg</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="wysiwyg" xsi:type="boolean">true</item>
                    <item name="dataScope" xsi:type="string">description</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="sortOrder" xsi:type="number">50</item>
                </item>
            </argument>
        </field>     
        <!-- <container name="container_categories">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataScope" xsi:type="string"></item>
                    <item name="breakLine" xsi:type="boolean">false</item>
                    <item name="formElement" xsi:type="string">container</item>
                    <item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item>
                    <item name="sortOrder" xsi:type="number">30</item>
                </item>
            </argument>
            <field name="categories">
                <argument name="data" xsi:type="array">
                    <item name="options" xsi:type="object">Magefan\Blog\Model\Config\Source\CategoryTree</item>
                    <item name="config" xsi:type="array">
                        <item name="label" xsi:type="string" translate="true">Categories</item>
                        <item name="formElement" xsi:type="string">select</item>
                        <item name="component" xsi:type="string">Magefan_Blog/js/components/new-category</item>
                        <item name="elementTmpl" xsi:type="string">ui/grid/filters/elements/ui-select</item>
                        <item name="dataScope" xsi:type="string">categories</item>
                        <item name="filterOptions" xsi:type="boolean">true</item>
                        <item name="chipsEnabled" xsi:type="boolean">true</item>
                        <item name="showCheckbox" xsi:type="boolean">true</item>
                        <item name="disableLabel" xsi:type="boolean">true</item>
                        <item name="multiple" xsi:type="boolean">true</item>
                        <item name="levelsVisibility" xsi:type="number">1</item>
                        <item name="sortOrder" xsi:type="number">20</item>
                        <item name="required" xsi:type="boolean">false</item>
                        <item name="listens" xsi:type="array">
                            <item name="index=create_category:responseData" xsi:type="string">setParsed</item>
                            <item name="newOption" xsi:type="string">toggleOptionSelected</item>
                        </item>
                    </item>
                </argument>
            </field>
            <container name="create_category_button">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="title" xsi:type="string" translate="true">New Category</item>
                        <item name="formElement" xsi:type="string">container</item>
                        <item name="additionalClasses" xsi:type="string">admin__field-small</item>
                        <item name="component" xsi:type="string">Magento_Ui/js/form/components/button</item>
                        <item name="template" xsi:type="string">ui/form/components/button/container</item>

                        <item name="actions" xsi:type="array">
                            <item name="0" xsi:type="array">
                                <item name="targetName" xsi:type="string">hotel_post_form.hotel_post_form.create_category_modal</item>
                                <item name="actionName" xsi:type="string">toggleModal</item>
                            </item>
                            <item name="1" xsi:type="array">
                                <item name="targetName" xsi:type="string">hotel_post_form.hotel_post_form.create_category_modal.create_category</item>
                                <item name="actionName" xsi:type="string">render</item>
                            </item>
                            <item name="2" xsi:type="array">
                                <item name="targetName" xsi:type="string">hotel_post_form.hotel_post_form.create_category_modal.create_category</item>
                                <item name="actionName" xsi:type="string">resetForm</item>
                            </item>
                        </item>
                        <item name="additionalForGroup" xsi:type="boolean">true</item>
                        <item name="provider" xsi:type="boolean">false</item>
                        <item name="source" xsi:type="string">itinerary_hotels</item>
                        <item name="displayArea" xsi:type="string">insideGroup</item>
                    </item>
                </argument>
            </container>
        </container> -->
        <!-- <field name="content">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string"/>
                    <item name="formElement" xsi:type="string">wysiwyg</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="wysiwyg" xsi:type="boolean">true</item>
                    <item name="dataScope" xsi:type="string">content</item>
                    <item name="additionalClasses" xsi:type="string">admin__field-wide</item>
                    <item name="sortOrder" xsi:type="number">50</item>
                </item>
            </argument>
        </field> -->

        <field name="address">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string">Hotel address</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>

        <field name="stars">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string">Stars</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>

        <field name="room_number">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string">Number of rooms</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
    </fieldset>
<!--     <fieldset name="short_content">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="label" xsi:type="string" translate="true">Short Content</item>
                <item name="sortOrder" xsi:type="number">15</item>
            </item>
        </argument>
        <container name="short_content_notice">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="boolean">false</item>
                    <item name="content" xsi:type="string" translate="true"><![CDATA[
                        <strong>AAA:</strong> <em>aaaaaaaaaaaaaaa</em>
                    ]]></item>
                    <item name="template" xsi:type="string">ui/form/components/complex</item>
                </item>
            </argument>
        </container>
        <field name="short_content">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Short Content</item>
                    <item name="formElement" xsi:type="string">wysiwyg</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="wysiwyg" xsi:type="boolean">true</item>
                    <item name="dataScope" xsi:type="string">short_content</item>
                    <item name="sortOrder" xsi:type="number">60</item>
                </item>
            </argument>
        </field>
    </fieldset>
    <fieldset name="additional_options">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="label" xsi:type="string" translate="true">Display Settings</item>
                <item name="sortOrder" xsi:type="number">20</item>
            </item>
        </argument>
        <field name="featured_img">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">string</item>
                    <item name="source" xsi:type="string">itinerary_hotels</item>
                    <item name="label" xsi:type="string" translate="true">Featured Image</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="formElement" xsi:type="string">fileUploader</item>
                    <item name="elementTmpl" xsi:type="string">ui/form/element/uploader/uploader</item>
                    <item name="previewTmpl" xsi:type="string">Magento_Catalog/image-preview</item>
                    <item name="required" xsi:type="boolean">false</item>
                    <item name="uploaderConfig" xsi:type="array">
                        <item name="url" xsi:type="url" path="blog/post_upload/featuredImg"/>
                    </item>
                    <item name="sortOrder" xsi:type="number">10</item>
                </item>
            </argument>
        </field>
    </fieldset> -->
    <htmlContent name="gallery" sortOrder="22">
        <argument name="data" xsi:type="array">
            <item name="wrapper" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">Media Gallery</item>
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="opened" xsi:type="boolean">false</item>
            </item>
        </argument>
        <settings>
            <wrapper>
                <canShow>true</canShow>
                <componentType>fieldset</componentType>
            </wrapper>
        </settings>
        <block name="gallery" class="Seizera\ItineraryObjects\Block\Adminhtml\Hotel\Helper\Form\Gallery">
            <block class="Seizera\ItineraryObjects\Block\Adminhtml\Hotel\Helper\Form\Gallery\Content" as="content">
                <arguments>
                    <argument name="config" xsi:type="array">
                        <item name="parentComponent" xsi:type="string">hotel_post_form.hotel_post_form.block_gallery.block_gallery</item>
                    </argument>
                </arguments>
            </block>
        </block>
    </htmlContent>
</form>
