[REM] web: remove two unused field widgets
closes odoo/odoo#101351 X-original-commit: 577e9898029b84a70c85f2eefa68d02e265dd4fd Signed-off-by: Géry Debongnie <ged@odoo.com> Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This commit is contained in:
@@ -739,46 +739,6 @@ var FieldChar = InputField.extend(TranslatableFieldMixin, DynamicPlaceholderFiel
|
||||
},
|
||||
});
|
||||
|
||||
var LinkButton = AbstractField.extend({
|
||||
events: _.extend({}, AbstractField.prototype.events, {
|
||||
'click': '_onClick'
|
||||
}),
|
||||
//--------------------------------------------------------------------------
|
||||
// Private
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Display button
|
||||
* @override
|
||||
* @private
|
||||
*/
|
||||
_render: function () {
|
||||
if (this.value) {
|
||||
var className = this.attrs.icon || 'fa-globe';
|
||||
|
||||
this.$el.html("<span role='img'/>");
|
||||
this.$el.addClass("fa "+ className);
|
||||
this.$el.attr('title', this.value);
|
||||
this.$el.attr('aria-label', this.value);
|
||||
}
|
||||
},
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Handlers
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Open link button
|
||||
*
|
||||
* @private
|
||||
* @param {MouseEvent} event
|
||||
*/
|
||||
_onClick: function (event) {
|
||||
event.stopPropagation();
|
||||
window.open(this.value, '_blank');
|
||||
},
|
||||
});
|
||||
|
||||
var FieldDateRange = InputField.extend({
|
||||
className: 'o_field_date_range',
|
||||
tagName: 'span',
|
||||
@@ -4348,7 +4308,6 @@ return {
|
||||
FieldBoolean: FieldBoolean,
|
||||
BooleanToggle: BooleanToggle,
|
||||
FieldChar: FieldChar,
|
||||
LinkButton: LinkButton,
|
||||
FieldDate: FieldDate,
|
||||
FieldDateTime: FieldDateTime,
|
||||
FieldDateRange: FieldDateRange,
|
||||
|
||||
@@ -36,7 +36,6 @@ registry
|
||||
.add('html', basic_fields.FieldText)
|
||||
.add('float', basic_fields.FieldFloat)
|
||||
.add('char', basic_fields.FieldChar)
|
||||
.add('link_button', basic_fields.LinkButton)
|
||||
.add('handle', basic_fields.HandleWidget)
|
||||
.add('email', basic_fields.FieldEmail)
|
||||
.add('phone', basic_fields.FieldPhone)
|
||||
@@ -102,6 +101,5 @@ registry
|
||||
// Special fields
|
||||
registry
|
||||
.add('timezone_mismatch', special_fields.FieldTimezoneMismatch)
|
||||
.add('report_layout', special_fields.FieldReportLayout)
|
||||
.add('iframe_wrapper', special_fields.IframeWrapper)
|
||||
});
|
||||
|
||||
@@ -132,73 +132,6 @@ var FieldTimezoneMismatch = FieldSelection.extend({
|
||||
},
|
||||
});
|
||||
|
||||
var FieldReportLayout = relational_fields.FieldMany2One.extend({
|
||||
// this widget is not generic, so we disable its studio use
|
||||
// supportedFieldTypes: ['many2one', 'selection'],
|
||||
events: _.extend({}, relational_fields.FieldMany2One.prototype.events, {
|
||||
'click img': '_onImgClicked',
|
||||
}),
|
||||
|
||||
willStart: function () {
|
||||
var self = this;
|
||||
this.previews = {};
|
||||
return this._super()
|
||||
.then(function () {
|
||||
return self._rpc({
|
||||
model: 'report.layout',
|
||||
method: "search_read"
|
||||
}).then(function (values) {
|
||||
self.previews = values;
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Private
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @override
|
||||
* @private
|
||||
*/
|
||||
_render: function () {
|
||||
var self = this;
|
||||
this.$el.empty();
|
||||
var value = _.isObject(this.value) ? this.value.data.id : this.value;
|
||||
_.each(this.previews, function (val) {
|
||||
var $container = $('<div>').addClass('col-3 text-center');
|
||||
var $img = $('<img>')
|
||||
.addClass('img img-fluid img-thumbnail ml16')
|
||||
.toggleClass('btn-info', val.view_id[0] === value)
|
||||
.attr('src', val.image)
|
||||
.data('key', val.view_id[0]);
|
||||
$container.append($img);
|
||||
if (val.pdf) {
|
||||
var $previewLink = $('<a>')
|
||||
.text('Example')
|
||||
.attr('href', val.pdf)
|
||||
.attr('target', '_blank');
|
||||
$container.append($previewLink);
|
||||
}
|
||||
self.$el.append($container);
|
||||
});
|
||||
},
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Handlers
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @override
|
||||
* @private
|
||||
* @param {MouseEvent} event
|
||||
*/
|
||||
_onImgClicked: function (event) {
|
||||
this._setValue($(event.currentTarget).data('key'));
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const IframeWrapper = AbstractField.extend({
|
||||
description: _lt("Wrap raw html within an iframe"),
|
||||
|
||||
@@ -260,7 +193,6 @@ const IframeWrapper = AbstractField.extend({
|
||||
|
||||
return {
|
||||
FieldTimezoneMismatch: FieldTimezoneMismatch,
|
||||
FieldReportLayout: FieldReportLayout,
|
||||
IframeWrapper,
|
||||
};
|
||||
|
||||
|
||||
@@ -258,57 +258,6 @@ QUnit.module('special_fields', {
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.module('FieldReportLayout');
|
||||
|
||||
QUnit.test('report_layout widget in form view', async function (assert) {
|
||||
assert.expect(3);
|
||||
|
||||
this.data['report.layout'] = {
|
||||
fields: {
|
||||
view_id: {string: "Document Template", type: "many2one", relation: "product"},
|
||||
image: {string: "Preview image src", type: "char"},
|
||||
pdf: {string: "Preview pdf src", type: "char"}
|
||||
},
|
||||
records: [{
|
||||
id: 1,
|
||||
view_id: 37,
|
||||
image: "/web/static/toto.png",
|
||||
pdf: "/web/static/toto.pdf",
|
||||
}, {
|
||||
id: 2,
|
||||
view_id: 41,
|
||||
image: "/web/static/tata.png",
|
||||
pdf: "/web/static/tata.pdf",
|
||||
}],
|
||||
};
|
||||
this.data.partner.records[1].product_id = false;
|
||||
|
||||
var form = await createView({
|
||||
View: FormView,
|
||||
model: 'partner',
|
||||
data: this.data,
|
||||
arch: '<form>' +
|
||||
'<field name="product_id" widget="report_layout"/> '+
|
||||
'</form>',
|
||||
res_id: 2,
|
||||
viewOptions: {
|
||||
mode: 'edit',
|
||||
},
|
||||
});
|
||||
|
||||
assert.strictEqual(form.$('.img.img-fluid').length, 2,
|
||||
"Two images should be rendered");
|
||||
assert.strictEqual(form.$('.img.btn-info').length, 0,
|
||||
"No image should be selected");
|
||||
|
||||
// select first image
|
||||
await testUtils.dom.click(form.$(".img.img-fluid:first"));
|
||||
assert.ok(form.$(".img.img-fluid:first").hasClass('btn-info'),
|
||||
"First image should be selected");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.module('IframeWrapper');
|
||||
|
||||
QUnit.test('iframe_wrapper widget in form view', async function (assert) {
|
||||
|
||||
Reference in New Issue
Block a user