从 odoo 的 pdf_viewer 小部件中删除下载按钮

问题描述 投票:0回答:2
javascript python widget odoo pdf-viewer
2个回答
2
投票

您可以覆盖 _disableButtons 函数并隐藏下载按钮。

示例

var basic_fields = require('web.basic_fields');

basic_fields.FieldPdfViewer.include({
    _disableButtons: function (iframe) {
        $(iframe).contents().find('button#download').hide();
        // $(iframe).contents().find('button#secondaryDownload').hide();
        this._super(iframe);
    },
});

如果您需要使用上下文属性控制下载按钮的可见性,请尝试以下代码:

var basic_fields = require('web.basic_fields');
var Context = require('web.Context');

basic_fields.FieldPdfViewer.include({
    _disableButtons: function (iframe) {
        var self = this;
        if (self.attrs.context) {
            var context = new Context(self.attrs.context).eval();
            if(!context.download) {
                $(iframe).contents().find('button#download').hide();
                // $(iframe).contents().find('button#secondaryDownload').hide();
            }
        }
        this._super(iframe);
    },
});

编辑:

创建一个包含以下内容的 XML 文件,并将其添加到清单文件中的

data
条目中:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <template id="assets_backend" inherit_id="web.assets_backend" name="assets_backend">
            <xpath expr="." position="inside">
                <script type="text/javascript"
                        src="/module_name/static/src/js/pdf_viewser.js"></script>
            </xpath>
        </template>
    </data>
</odoo>

pdf_viewser.js
下创建
static/src/js
并添加上面的代码:

odoo.define('module_name.PDFViewer', function (require) {
    "use strict";
    
    var basic_fields = require('web.basic_fields');

    basic_fields.FieldPdfViewer.include({
        _disableButtons: function (iframe) {
            $(iframe).contents().find('button#download').hide();
            // $(iframe).contents().find('button#secondaryDownload').hide();
            this._super(iframe);
        },
    });

});

这些步骤列于在资源包中添加文件部分。有关更多详细信息,请查看资产管理文档。


-1
投票

您好,这适用于 Odoo 15 吗?

© www.soinside.com 2019 - 2024. All rights reserved.