28
Окт
2021

Как предотвратить создание пустого элемента?

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:cc="http://java.sun.com/jsf/composite"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:f="http://xmlns.jcp.org/jsf/core">
    <cc:interface>
        <cc:attribute name="unitID" default="leasing360"/>
        <cc:attribute name="contentID"/>
        <cc:attribute name="entities" required="true"/>
        <cc:attribute name="entity" required="true"/>
        <cc:attribute name="filterList"/>
        <cc:attribute name="requiredList" type="java.util.List"/>
    </cc:interface>

    <cc:implementation>
        <ui:decorate template="/ui.#{cc.attrs.unitID}/document/ticket/decor-ticketEditForEntityTickets.xhtml"
                     id="ada-#{cc.attrs.ticketItem.uuid}">
            <ui:define name="ticket_panel">
                <p:panel header="#{cc.attrs.ticketItem.title}" id="ticket_panel#{cc.attrs.ticketItem.uuid}">
                    <ui:decorate template="/ui.#{cc.attrs.unitID}/document/ticket/decor-ticketAddForEntityTickets.xhtml"
                                 id="ada-#{cc.attrs.ticketItem.uuid}">
                        <ui:define name="category">
                            <h:outputText id="category-add" value="Разместить новый документ"/>
                        </ui:define>

                        <ui:define name="files">
                            <h:commandLink styleClass="btn-border-icon">
                                <f:actionListener
                                        binding="#{ticketFile.setIdDocument(component.parent.parent.parent.parent.clientId.concat(':tickets_datagrid'))}"/>
                                <h:outputText styleClass="icon fa fa-plus"/>
                                <f:ajax onevent="function(data) { if (data.status === 'success') {
                                dialogModalContentId = '#select-ticket-category-dialog';
                                $('#modal-on-top-dialog').empty();
                                $('#modal-on-top-dialog').append($('#select-ticket-category-dialog').children()[0]).modal('show'); } }"/>
                            </h:commandLink>
                        </ui:define>

                        <ui:define name="select-ticket-category-dialog">
                            <p:dataTable
                                    value="#{ticket.getTicketCategoriesByEntitiesAndFilter(cc.attrs.entities, cc.attrs.filterList, cc.attrs.requiredList)}"
                                    var="itemTicketCategory">
                                <p:column headerText="" width="40">
                                    <h:commandLink onclick="clickFile();">
                                        <h:outputText styleClass="icon fa fa-plus"/>
                                        <f:ajax listener="#{ticketFile.setCurrentTiket(ticket.createTicketByTicketCategoryAddedView(itemTicketCategory))}"
                                                onevent="function(data) { if (data.status === 'success') { $('#select-ticket-category-dialog').modal('hide');} }"/>
                                    </h:commandLink>
                                </p:column>
                                <p:column headerText="Выберите категорию документа">
                                    <h:outputText value="#{itemTicketCategory.title}"/>
                                </p:column>
                            </p:dataTable>
                            <script>
                                function clickFile() {
                                    let target = document.querySelector('##{cc.attrs.unitID}\\:app-content\\:document-loader\\:loader\\:fileEdit\\:file_upload_input');
                                    let event = document.createEvent('MouseEvents');
                                    event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 1, null);
                                    target.dispatchEvent(event);

                                }
                            </script>
                        </ui:define>

                    </ui:decorate>
                </p:panel>
            </ui:define>
        </ui:decorate>
    </cc:implementation>
</ui:composition>

Если нажать «загрузить файл» и не выбирать файл для загрузки, то создается пустой элемент.

Источник: https://ru.stackoverflow.com/questions/1343068/%D0%9A%D0%B0%D0%BA-%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%82%D0%B2%D1%80%D0%B0%D1%82%D0%B8%D1%82%D1%8C-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%83%D1%81%D1%82%D0%BE%D0%B3%D0%BE-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0

Тебе может это понравится...

Добавить комментарий