首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Odoo 10 -集成第三方JS库

Odoo 10 -集成第三方JS库
EN

Stack Overflow用户
提问于 2017-01-16 18:36:09
回答 1查看 1.3K关注 0票数 0

我试图在Odoo系统中添加一个第三方库,我使用的是Odoo 10。

我想集成的库是:https://github.com/ipluser/jquery-shifter,但是,我无法做到这一点。

我只是对视图上的列表进行了编码,并将库函数称为“shifter”。但不起作用。

这是我的密码。

代码语言:javascript
复制
odoo.define('crm_broadband.shifter', function(require){
'use strict'

$(function() {
    $('.shifter').shifter({
        maxShift: 1,
        switcher: true,
        responsive: true,
        speed: 1000,
    });
})

})

代码语言:javascript
复制
<div class="shifter-wrap">

                 <ul class="shifter">
                        <li>
                            <button class="oe_stat_button oe_broadband_btn" name="open_create_popup"
                                    icon="fa-plus" type="object"
                                    attrs="{'invisible': [('partner_id', '!=', False)]}"
                                    sequence="0">
                                <field string="Broadband" name="name" widget="statinfo"/>
                            </button>
                        </li>
                    </ul>
                    <a class="shifter-forward" href="javascript:void(0)">forward</a>
                    <a class="shifter-backward" href="javascript:void(0)">backward</a>
                </div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 09:33:33

编辑

实际上,问题是$('.shifter')找不到元素。在'web.FormView‘的'start’函数中使用‘this.$el.find(’.shifter‘)解决。

现在出现了另一个问题..。

一旦'ul.shifter‘结束包装空间,它就让它的元素转到一个新的行,取消脚本的功能。另外,如果我不设置'ul‘元素的宽度,脚本就不能单独设置它,使其为0px宽度。

有人能帮我吗?

谢谢。

代码语言:javascript
复制
instance.web.FormView.include({

    start: function() {
        this._super.apply(this, arguments)

        // WRAP CHILDREN IN 'li > ul > div'
        this.$el.find('.oe_button_box')
            .children()
            .wrapAll("<div class='shifter_wrap'></div>")
            .wrapAll("<ul class='shifter'></ul>")
            .wrap("<li class='shifter_element'></li>")

        this.$el.find('.shifter').shifter()
    },
})


.shifter-wrap {
  overflow: hidden !important;
  height: 40px !important;
}
.shifter {
  height: 40px;
  margin-left: 0 !important;
  max-width: @sheet-max-width !important;
  min-width: 132px !important;
  overflow: hidden !important;
}
.shifter_element {
  width: 132px !important;
  display: inline-block !important;
  float: left !important;
}

编辑端

好了解决了。我在我正在扩展的视图中声明的中调用了脚本,而不是文件开始时的“资产”模板。

代码语言:javascript
复制
<record id="crm_case_form_view_oppor_inherit" model="ir.ui.view">
        <field name="name">crm.lead.form.opportunity.inherit</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/>
        <field name="arch" type="xml">

            <xpath expr="//div[@name='button_box']/button[1]" position="before">

                <head>
                    <meta charset="UTF-8"/>
                    <meta name="renderer" content="webkit"/>
                    <meta name="viewport" content="width=device-width, initial-scale=1"/>
                    <script type="text/javascript" src="/crm_broadband/static/src/js/shifter.js"/>
                </head>


                <div class="shifter-wrap">
                    <ul class="shifter">
                        <li>
                            <button class="oe_stat_button oe_broadband_btn" name="open_create_popup"
                                    icon="fa-plus" type="object"
                                    attrs="{'invisible': [('partner_id', '!=', False)]}"
                                    sequence="0">
                                <field string="Broadband" name="name" widget="statinfo"/>
                            </button>
                        </li>
                    </ul>
                </div>
            </xpath>
       </field>
</record>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41682949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档