summaryrefslogtreecommitdiff
path: root/addons/web
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2018-01-18 14:23:09 +0100
committerNicolas Lempereur <nle@odoo.com>2018-01-18 15:53:37 +0100
commitb8c8eaa02fbb7312d026e1fc519f80384d1cebe9 (patch)
treedf3f7aad88eb6ba01cb41a54c9d5a3122ea91f71 /addons/web
parent6ef460b6a7f0ec46e009da0b339dc676bc850b89 (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')
-rw-r--r--addons/web/static/src/js/fields/field_utils.js5
-rw-r--r--addons/web/static/tests/views/kanban_tests.js29
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();
+ });
});
});