From 73cce597f1b8e517207bb9206713d1e7f70b310d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 20 Mar 2021 12:38:16 +0100 Subject: [PATCH] Add icon of type URL issue10140 review355171002 --- CHANGELOG | 1 + src/view/form.js | 29 ++++++++++++++++++++++------- src/view/tree.js | 40 +++++++++++++++++++++++++++------------- 3 files changed, 50 insertions(+), 20 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d0e6b5af06..5d25e8c367 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Support icon of type URL * Allow sending email with existing attachments * Add paths and model context to action data * Add indentation in CSV export of tree diff --git a/src/view/form.js b/src/view/form.js index 638f86747e..02b9d738f5 100644 --- a/src/view/form.js +++ b/src/view/form.js @@ -1078,14 +1078,29 @@ function eval_pyson(value){ var field = record.model.fields[name]; name = field.get(record); } - Sao.common.ICONFACTORY.get_icon_url(name) - .done(function(url) { - if (url) { - this.img.attr('src', url); - } else { - this.img.removeAttr('src'); + if (this.attributes.type == 'url') { + if (name) { + if (this.attributes.url_size) { + var url = new URL(name, window.location); + url.searchParams.set( + this.attributes.url_size, + attributes.size || 48); + name = url.href; } - }.bind(this)); + this.img.attr('src', name); + } else { + this.img.removeAttr('src'); + } + } else { + Sao.common.ICONFACTORY.get_icon_url(name) + .done(function(url) { + if (url) { + this.img.attr('src', url); + } else { + this.img.removeAttr('src'); + } + }.bind(this)); + } } }); diff --git a/src/view/tree.js b/src/view/tree.js index 45a88c1ef1..5ee4f3eff9 100644 --- a/src/view/tree.js +++ b/src/view/tree.js @@ -2032,20 +2032,34 @@ else { value = this.icon; } - Sao.common.ICONFACTORY.get_icon_url(value) - .done(function(url) { - var img_tag; - if (cell.children('img').length) { - img_tag = cell.children('img'); - } else { - img_tag = cell; + var img_tag; + if (cell.children('img').length) { + img_tag = cell.children('img'); + } else { + img_tag = cell; + } + if (this.attributes.icon_type == 'url') { + if (value) { + if (this.attributes.url_size) { + var url = new URL(value, window.location); + url.searchParams.set( + this.attributes.url_size, 20); + value = url.href; } - if (url) { - img_tag.attr('src', url); - } else { - img_tag.removeAttr('src'); - } - }.bind(this)); + img_tag.attr('src', value); + } else { + img_tag.removeAttr('src'); + } + } else { + Sao.common.ICONFACTORY.get_icon_url(value) + .done(function(url) { + if (url) { + img_tag.attr('src', url); + } else { + img_tag.removeAttr('src'); + } + }.bind(this)); + } } else { value = this.attributes.string || ''; if (!value) {