changeset a84cf40d5ed9 in sao:default
details: https://hg.tryton.org/sao?cmd=changeset&node=a84cf40d5ed9
description:
Add icon of type URL
issue10140
review355171002
diffstat:
CHANGELOG | 1 +
src/view/form.js | 29 ++++++++++++++++++++++-------
src/view/tree.js | 40 +++++++++++++++++++++++++++-------------
3 files changed, 50 insertions(+), 20 deletions(-)
diffs (99 lines):
diff -r 03aa192c5c2b -r a84cf40d5ed9 CHANGELOG
--- a/CHANGELOG Sat Mar 20 12:33:09 2021 +0100
+++ b/CHANGELOG Sat Mar 20 12:38:16 2021 +0100
@@ -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 -r 03aa192c5c2b -r a84cf40d5ed9 src/view/form.js
--- a/src/view/form.js Sat Mar 20 12:33:09 2021 +0100
+++ b/src/view/form.js Sat Mar 20 12:38:16 2021 +0100
@@ -1078,14 +1078,29 @@
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 -r 03aa192c5c2b -r a84cf40d5ed9 src/view/tree.js
--- a/src/view/tree.js Sat Mar 20 12:33:09 2021 +0100
+++ b/src/view/tree.js Sat Mar 20 12:38:16 2021 +0100
@@ -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) {