Как добавить диалог подтверждения для кнопки в представлении Канбан? - PullRequest
1 голос
/ 08 апреля 2019

Я добавил атрибут подтверждения для кнопки в представлении Канбан, но он не запускает диалоговое окно подтверждения.Вот фрагмент моего кода, где появляется кнопка:

<templates>
    <t t-name="kanban-box">
        <div t-attf-class="oe_kanban_global_click">
            <!-- some code -->
            <div class="oe_kanban_bottom_left">
                <button name="action_restart"
                    type="object"
                    t-attf-class="btn btn-sm btn-primary"
                    style="margin-top:35px;"
                    confirm="Restart mtto?">Restart</button>
            </div>
        <div>
    <t>
<templates>

Может ли Kanban сделать это?Спасибо заранее

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Определенно Kanban не обрабатывает атрибут подтверждения, по крайней мере до версии 11.0.

Чтобы добавить эту функцию, я изменил функцию _onKanbanActionClicked по адресу: .. \ addons \ web \ static \ src \ js \ views \ kanban\ kanban_record.js

var Dialog = require("web.Dialog"); // at the top of the class


_onKanbanActionClicked: function (event) {
        event.preventDefault();

        **var _this = this;**
        var $action = $(event.currentTarget);
        var type = $action.data('type') || 'button';

        switch (type) {
            case 'edit':
                this.trigger_up('open_record', {id: this.db_id, mode: 'edit'});
                break;
            case 'open':
                this.trigger_up('open_record', {id: this.db_id});
                break;
            case 'delete':
                this.trigger_up('kanban_record_delete', {id: this.db_id, record: this});
                break;
            case 'action':
            case 'object':
                **var confirm = $(event.currentTarget).attr("confirm");
                if (confirm) {
                    Dialog.confirm(this, confirm, {
                        confirm_callback: object_trigger_up
                    });
                }
                else {
                    object_trigger_up();
                }**
                break;
            default:
                this.do_warn("Kanban: no action for type : " + type);
        }
        **function object_trigger_up () {
            _this.trigger_up('button_clicked', {
                attrs: $action.data(),
                record: _this.state,
            });
        }**
    },

Я надеюсь, что это решение поможет кому-то еще.Спасибо за ваше время

0 голосов
/ 08 апреля 2019

Попробуйте этот рудник работает с этим кодом

<button class="btn btn-primary" name="action_restart" type="object" confirm="Restart mtto?">
...