You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

46 lines
1.5 KiB

/* Global jscolor */
odoo.define('web.web_widget_color', function(require) {
"use strict";
var basic_fields = require('web.basic_fields');
var field_registry = require('web.field_registry');
var ListRenderer = require('web.ListRenderer');
var FieldColor = basic_fields.FieldChar.extend({
template: 'FieldColor',
widget_class: 'oe_form_field_color',
_renderReadonly: function () {
// Do Nothing
},
_renderEdit: function() {
this.$input = this.$el.find('input');
this.jscolor = new jscolor(this.$input[0], {hash:true, zIndex: 2000});
},
});
field_registry.add('color', FieldColor);
// Deny unselect row if jscolor actived
ListRenderer.include({
unselectRow: function () {
var canUnselect = true;
if (this.currentRow !== null) {
var record = this.state.data[this.currentRow];
var recordWidgets = this.allFieldWidgets[record.id];
canUnselect = !_.some(recordWidgets, function (widget) {
var $el = widget.getFocusableElement();
return ($el instanceof jQuery && $el.hasClass('jscolor-active'));
});
}
if (canUnselect) {
return this._super.apply(this, arguments);
} else {
return $.Deferred().resolve();
}
},
});
return FieldColor;
});