Skip to content

Instantly share code, notes, and snippets.

@fazen
Last active February 3, 2016 18:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fazen/31464bada08819d8d02c to your computer and use it in GitHub Desktop.
Save fazen/31464bada08819d8d02c to your computer and use it in GitHub Desktop.
odoo.define('web.web_tree_image',function (require) {
"use strict";
var core = require('web.core');
var list_widget_registry = core.list_widget_registry;
var session = require('web.session');
//var ListView = require('web.ListView');
//var Column = require('web.ListView.Column');
var ColumnImage = list_widget_registry.get('field').extend({
format: function (row_data, options) {
/* Return a valid img tag. For image fields, test if the
field's value contains just the binary size and retrieve
the image from the dedicated controller in that case.
Otherwise, assume a character field containing either a
stock Odoo icon name without path or extension or a fully
fledged location or data url */
if (!row_data[this.id] || !row_data[this.id].value) {
return '';
}
var value = row_data[this.id].value, src;
if (this.type === 'binary') {
if (value && value.substr(0, 10).indexOf(' ') === -1) {
// The media subtype (png) seems to be arbitrary
src = "data:image/png;base64," + value;
} else {
var imageArgs = {
model: options.model,
field: this.id,
id: options.id
}
if (this.resize) {
imageArgs.resize = this.resize;
}
src = session.url('/web/binary/image', imageArgs);
}
} else {
if (!/\//.test(row_data[this.id].value)) {
src = '/web/static/src/img/icons/' + row_data[this.id].value + '.png';
} else {
src = row_data[this.id].value;
}
}
return _.template("<img height=\"<%-h%>\" src=\"<%-src%>\" />")({
h: this.height || 16,
src: src
});
}
});
list_widget_registry.add('field.image', ColumnImage);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment