创建一个绑定到keypressed的隐形窗口小部件

时间:2014-01-27 15:18:53

标签: openerp

我想在登录后创建一个隐藏的小部件,该小部件绑定到webclient上任意位置的按键。

我试图扩展Widget

但由于我不需要渲染任何东西,我不知道如何将它放在屏幕上的html中。

我应该尝试扩展OpenErp中的其他类以使其正常工作吗?

console.log('start')  // Custome message to dispaly on console
openerp.web_hello = function(instance) {


   console.log('Object',instance);

   var invisibleWidget = instance.web.Widget.extend({
        template: 'invisibleWidget',
        init: function(parent){
           this._super(parent);
        },
   });

};

1 个答案:

答案 0 :(得分:1)

以下javascript模块是解决方案的良好开端。只为有兴趣的人分享

/*---------------------------------------------------------
 * OpenERP module
 *---------------------------------------------------------*/
openerp.web_keypressed = function(instance) {

    instance.web.InvisibleWidget = instance.web.Widget.extend({
        template: 'InvisibleWidget',
        init: function() {
           this._super.apply(this, arguments);           
           instance.web.InvisibleWidget = this;
        },
        start: function() {
           this._super.apply(this, arguments);           
        },
        sessKeyPressed: function(ed, e) {
           console.log('sessKeyPressed');
        },
   });

   instance.web.WebClient = instance.web.WebClient.extend({       
        show_application: function() {
           this._super.apply(this, arguments);
           var self = this;
           console.log('webclient extend');
           self.invisible = new instance.web.InvisibleWidget(this);           
           self.invisible.appendTo(self.$el);           
           console.log(instance.web.InvisibleWidget);
           $(document).bind('keypress.session', function (ed, e) {
               instance.web.InvisibleWidget.sessKeyPressed(ed, e);
           });
        },
   });

};