微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为新对话框继承 Odoo JS

如何解决为新对话框继承 Odoo JS

我需要在 odoo 14 中添加一个自定义对话框。我的一个朋友修改odoo web 模块的 JS 文件,他的代码开始按我的预期工作。现在我需要重置 Web 模块文件并希望将修改迁移到自定义模块。 我对 JS 的了解不够,在谷歌搜索后,我将自定义代码从 form_controller.js 迁移到自定义文件。但是我找不到将代码从 dialog.js 迁移到自定义文件方法。我朋友对这个文件修改如下: 我删除了很多行,只保留了一些行。我想将 (is_validate) 保留在下面的代码中,但保留在单独的文件中。我需要知道如何继承 dialog.js 文件来放置这段代码。原始文件可以在此链接中查看。 https://github.com/odoo/odoo/blob/14.0/addons/web/static/src/js/core/dialog.js

    init: function (parent,options) {
        var self = this;
        this._super(parent);
        this._opened = new Promise(function (resolve) {
            self._openedResolver = resolve;
        });
        if (this.on_attach_callback) {
            this._opened = this.opened(this.on_attach_callback);
        }
        options = _.defaults(options || {},{
            title: _t('odoo'),subtitle: '',many lines of code. I just need below line (is_validate)
            **is_validate: false,**
        });

        this.$content = options.$content;
        this.title = options.title;
        many lines of code here. I removed. I need just below line
        **this.is_validate = options.is_validate;**

        core.bus.on('close_dialogs',this,this.destroy.bind(this));
    },

在另一个函数中:

   willStart: function () {
        var self = this;
        return this._super.apply(this,arguments).then(function () {
            // Render modal once xml dependencies are loaded
            self.$modal = $(QWeb.render('Dialog',{
                fullscreen: self.fullscreen,title: self.title,many lines of code. I just need below line (is_validate)
                **is_validate: self.is_validate,**
            }));

一个函数

// static method to open simple confirm dialog
Dialog.validate = function (owner,message,options) {
    var buttons = [
        {
            text: _t("Ok"),classes: 'btn-primary',close: true,click: options && options.confirm_callback,},{
            text: _t("Cancel"),click: options && options.cancel_callback
        }
    ];
    return new Dialog(owner,_.extend({
        is_validate: true,size: 'medium',buttons: buttons,$content: $('<main/>',{
            role: 'alert',text: message,}),title: _t("Validate"),onForceClose: options && (options.onForceClose || options.cancel_callback),options)).open({shouldFocusButtons:true});
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。