【问题标题】:Symfony Easyadmin - How to open modal on custom actionSymfony Easyadmin - 如何在自定义操作上打开模式
【发布时间】:2020-01-30 15:32:22
【问题描述】:

我正在尝试使用“路线”类型创建自定义操作。但我想在发出请求之前显示一个确认模式。 例如,在列表视图中,我想要执行以下操作:编辑、查看和发布。但是当用户按下发布时,我想要一个确认模式。

删除操作已发生此行为,但我似乎无法理解如何将其复制到自定义操作。

我该怎么做?


更新

我已经尝试了answer 中的建议,但仍然遇到问题。

我正在尝试在 EasyAdmin 中添加自定义操作,但在进入控制器之前,我需要一个模式来要求确认。 它进入模态,但单击后,它什么也不做。 它适用于“window.confirm”,但我似乎无法使用引导模式复制此行为。 这是我设置操作的 yaml:

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

这是 modal 和 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() 停止事件,然后即使我强制重定向到路由,它也可以工作,但请求没有必要的参数。

【问题讨论】:

    标签: symfony4 easyadmin


    【解决方案1】:

    在你的树枝上做一个模态,并在 javascript 中检查答案是什么,然后再去或不去新路线。

    【讨论】:

    • 感谢您的回答。试过了,但还是有问题。详情请查看上方
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多