diff options
| author | Nicolas Lempereur <nle@odoo.com> | 2018-01-18 14:23:09 +0100 |
|---|---|---|
| committer | Nicolas Lempereur <nle@odoo.com> | 2018-01-18 15:53:37 +0100 |
| commit | b8c8eaa02fbb7312d026e1fc519f80384d1cebe9 (patch) | |
| tree | df3f7aad88eb6ba01cb41a54c9d5a3122ea91f71 /addons/web/static | |
| parent | 6ef460b6a7f0ec46e009da0b339dc676bc850b89 (diff) | |
[FIX] web: error image when no kanban image
Introduce back part of `formatBinary` that was reverted with 7813a8e7.
When an image is unset, the value was `false` which would end up with a
bin_size of `NaN Bytes` which would end up displaying an error image
with source `data:image/png;base64,NaN Bytes`.
This commit get back a previous behavior so the bin_size when the
attachment does not exist is an empty string (so: '').
opw-805542
closes #22348
Diffstat (limited to 'addons/web/static')
| -rw-r--r-- | addons/web/static/src/js/fields/field_utils.js | 5 | ||||
| -rw-r--r-- | addons/web/static/tests/views/kanban_tests.js | 29 |
2 files changed, 32 insertions, 2 deletions
diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js index 5ac180b1de1..5a11f1b0ba8 100644 --- a/addons/web/static/src/js/fields/field_utils.js +++ b/addons/web/static/src/js/fields/field_utils.js @@ -30,7 +30,7 @@ var _t = core._t; /** * Convert binary to bin_size * - * @param {string} value base64 representation of the binary (might be already a bin_size!) + * @param {string} [value] base64 representation of the binary (might be already a bin_size!) * @param {Object} [field] * a description of the field (note: this parameter is ignored) * @param {Object} [options] additional options (note: this parameter is ignored) @@ -38,6 +38,9 @@ var _t = core._t; * @returns {string} bin_size (which is human-readable) */ function formatBinary(value, field, options) { + if (!value) { + return ''; + } return utils.binaryToBinsize(value); } diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index 9e6d6e9e30f..8d39a5ec21e 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -33,9 +33,10 @@ QUnit.module('Views', { state: { string: "State", type: "selection", selection: [["abc", "ABC"], ["def", "DEF"], ["ghi", "GHI"]]}, date: {string: "Date Field", type: 'date'}, datetime: {string: "Datetime Field", type: 'datetime'}, + image: {string: "Image", type: "binary"}, }, records: [ - {id: 1, bar: true, foo: "yop", int_field: 10, qux: 0.4, product_id: 3, state: "abc", category_ids: []}, + {id: 1, bar: true, foo: "yop", int_field: 10, qux: 0.4, product_id: 3, state: "abc", category_ids: [], 'image': 'R0lGODlhAQABAAD/ACwAAAAAAQABAAACAA=='}, {id: 2, bar: true, foo: "blip", int_field: 9, qux: 13, product_id: 5, state: "def", category_ids: [6]}, {id: 3, bar: true, foo: "gnap", int_field: 17, qux: -3, product_id: 3, state: "ghi", category_ids: [7]}, {id: 4, bar: false, foo: "blip", int_field: -4, qux: 9, product_id: 5, state: "ghi", category_ids: []}, @@ -2339,6 +2340,32 @@ QUnit.module('Views', { "quick create should have been added in the first column"); } }); + + QUnit.test('test displaying image', function (assert) { + assert.expect(2); + + var kanban = createView({ + View: KanbanView, + model: 'partner', + data: this.data, + arch: '<kanban class="o_kanban_test">' + + '<field name="id"/>' + + '<field name="image"/>' + + '<templates><t t-name="kanban-box"><div>' + + '<img t-att-src="kanban_image(\'partner\', \'image\', record.id.raw_value)"/>' + + '</div></t></templates>' + + '</kanban>', + }); + + var imageOnRecord = kanban.$('img[src*="/web/image"][src*="&id=1"]'); + assert.strictEqual(imageOnRecord.length, 1, "partner with image display image"); + + var placeholders = kanban.$('img[src$="/web/static/src/img/placeholder.png"]'); + assert.strictEqual(placeholders.length, this.data.partner.records.length - 1, + "partner with image should displaiy"); + + kanban.destroy(); + }); }); }); |
