diff --git a/addons/web/static/src/legacy/js/fields/basic_fields.js b/addons/web/static/src/legacy/js/fields/basic_fields.js index bfdd428d3ec..291badac091 100644 --- a/addons/web/static/src/legacy/js/fields/basic_fields.js +++ b/addons/web/static/src/legacy/js/fields/basic_fields.js @@ -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(""); - 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, diff --git a/addons/web/static/src/legacy/js/fields/field_registry.js b/addons/web/static/src/legacy/js/fields/field_registry.js index 28020d1f630..b759c2bd55c 100644 --- a/addons/web/static/src/legacy/js/fields/field_registry.js +++ b/addons/web/static/src/legacy/js/fields/field_registry.js @@ -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) }); diff --git a/addons/web/static/src/legacy/js/fields/special_fields.js b/addons/web/static/src/legacy/js/fields/special_fields.js index 1e4948c232b..709a56de0dc 100644 --- a/addons/web/static/src/legacy/js/fields/special_fields.js +++ b/addons/web/static/src/legacy/js/fields/special_fields.js @@ -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 = $('
').addClass('col-3 text-center'); - var $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 = $('') - .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, }; diff --git a/addons/web/static/tests/legacy/fields/special_fields_tests.js b/addons/web/static/tests/legacy/fields/special_fields_tests.js index 6f0ea650d43..8388a219376 100644 --- a/addons/web/static/tests/legacy/fields/special_fields_tests.js +++ b/addons/web/static/tests/legacy/fields/special_fields_tests.js @@ -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: '
' + - ' '+ - '', - 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) {