odoo.define('web_char_field_copy.char_field_copy', function (require) {
'use strict';
var FieldChar = require('web.basic_fields').FieldChar;
var fieldRegistry = require('web.field_registry');
var field = require('web.relational_fields');
const ListRenderer = require("web.ListRenderer");
var CopyFieldChar = FieldChar.extend({
_renderReadonly: function () {
if (this.attrs.widget === 'char_field_copy' && this.$el.hasClass('o_field_widget')) {
var res = this._super.apply(this, arguments);
// 为这个节点增加一个复制按钮
var $value = $('<button type="button" class="o_char_field_copy_button fa fa-copy" style="border:none"/>');
this.$(this.el.currentTarget).append($value)
// 给按钮增加事件
this.$(":button").on('click', this._Copy_data.bind(this))
return res;
}
},
_Copy_data: function (ev) {
var self = this;
// 给按钮增加一个class, 因为点击复制按钮的时候自动跳转form视图(此处先加上class,然后在跳转form的函数判断是否有这个class)
this.$(':button').addClass('no_open_raw')
// 复制text
var clipboard = new window.ClipboardJS('.o_field_widget', {
target: function (ev) {
// 复制完毕之后将添加的class删除,否则此条记录点击没有反应,不会进入form视图
self.$(':button').removeClass('no_open_raw')
return self.$(ev.currentTarget)[0];
},
container: this.el
});
// alert成功信息
// alert('复制成功!')
self.do_notify('成功','复制成功, 请直接粘贴!', false)
}
});
ListRenderer.include({
/*
* */
_onRowClicked: function (ev) {
var has_class = this.$(':button').hasClass('no_open_raw')
if (!has_class) {
return this._super.apply(this, arguments)
}
}
})
fieldRegistry.add('char_field_copy', CopyFieldChar);
})