Symfony Easyadmin - Как открыть модал на пользовательских действий - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь создать пользовательское действие с типом «маршрут». Но я хочу отобразить модальное подтверждение перед выполнением запроса. Например, в представлении списка я хочу иметь действия: редактировать, просматривать и публиковать sh. Но когда пользователь нажимает publi sh, я хочу модальное подтверждение.

Такое поведение уже происходит с действием удаления, но я не могу понять, как скопировать его в пользовательское действие.

Есть идеи?

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 февраля 2020

Спасибо за ваш ответ, но я уже попробовал это и все еще возникают проблемы. Я пытаюсь добавить пользовательское действие в EasyAdmin, но прежде чем перейти к контроллеру, мне нужно модальное запросить подтверждение. Он идет в модал, но после щелчка ничего не делает. Он работает с "window.confirm", но я не могу воспроизвести это поведение с модальным bootstrap. Вот мой yaml, который устанавливает действие:

- {
     name: 'import',
     label: 'import',
     type: 'route',
     css_class: 'btn btn-secondary',
   }

Вот код для модального и jquery:

{% extends '@!EasyAdmin/default/list.html.twig' %}

{% block main %}

   {{parent()}}

   {% block import_action %}

    <div id="modal-import" class="modal fade">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-body">
                    <h4>{{ 'import_modal.title'|trans(_trans_parameters, 'messages') }}</h4>
                    <p>{{ 'import_modal.content'|trans(_trans_parameters, 'messages') }}</p>
                </div>
                <div class="modal-footer">
                    <button type="button" data-dismiss="modal" class="btn btn-secondary">
                        <span class="btn-label">{{ 'action.cancel'|trans(_trans_parameters, 'messages') }}</span>
                    </button>

                    <button type="button" data-dismiss="modal" id="modal-delete-button" class="btn btn-secondary">
                        <span class="btn-label">{{ 'action.continue'|trans(_trans_parameters, 'messages') }}</span>
                    </button>

                </div>
            </div>
        </div>
    </div>

{% endblock import_action %}

{% endblock %}

{% block body_javascript %}

{{ parent() }}

<script type="text/javascript">

    $('.action-import').on('click', function(e) {
            e.preventDefault();

            $('#modal-import').modal({ backdrop: true, keyboard: true })
                .on('click', '#modal-import-button', function () {
                    let importForm = $('.action-import');
                    importForm.attr('action');
                    $('.action-import').triggerHandler('click');

                });

        });

</script>

{% endblock body_javascript %}

preventDefault() останавливает событие, а затем даже если я выполнить принудительное перенаправление на маршрут, он работает, но у запроса нет необходимых параметров.

0 голосов
/ 31 января 2020

Сделайте модальное в вашей ветке и отметьте javascript каков ответ, прежде чем идти по новому маршруту.

...