修改Many2One字段的鏈接打開方式

OE 6中, Many2One字段的只讀顯示方式如下:


點擊時, 是在本窗口打開這個對象的. 有時候非常的惱人. 很多用戶不知道瀏覽器的前進後退, 所以還要從頭找回去.

想想, 不如改爲浮動窗口的好點.

打開瀏覽器的開發工具:


鏈接都是"oe_form_uri" class. 在web模塊的xml模版裏, 發現這個class是 FieldURI.readonly 在使用.
轉而在web模塊所帶的一大堆js文件裏搜索 "FieldURI". 發現一大堆的界面對象在使用這個模版.
忽然想到, 應該有一個派生類, 名字類似於 many2one, 結果找到 view_page.js, line 171裏.
應該是打開一個新的浮動窗口, target不能是current.
修改之
line 171:


            var real_set_value = function(rval) {
                self.value = rval;
                self.$element.find('a')
                     .unbind('click')
                     .text(rval ? rval[1] : '')
                     .click(function () {
                        self.do_action({
                            type: 'ir.actions.act_window',
                            res_model: self.field.relation,
                            res_id: self.value[0],
                            context: self.build_context(),
                            views: [[false, 'page'], [false, 'form']],
                            target: 'new'
                        });
                        return false;
                     });

打完收工.
還沒有驗證是否影響到其他功能.

微博 @楊振宇_  歡迎交流.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章