summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-01-12 19:03:00 +0100
committerChristophe Simonis <chs@odoo.com>2018-01-12 19:03:00 +0100
commit56974322f8c67ec5680654ed4bcb08ca57117c46 (patch)
treee64c00274a47c46cf78e99b6ba62df4bc4dbbba4 /addons/web/static/src/js/fields
parentf6ef0c776096774fc4c6821449ab42cfc2f53e62 (diff)
parent3b80a059ff4305fe10c9b40a3118508b1b849ead (diff)
[MERGE] forward port branch 11.0 up to 3b80a059ff4
Diffstat (limited to 'addons/web/static/src/js/fields')
-rw-r--r--addons/web/static/src/js/fields/abstract_field.js5
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js21
-rw-r--r--addons/web/static/src/js/fields/field_registry.js1
-rw-r--r--addons/web/static/src/js/fields/field_utils.js10
4 files changed, 11 insertions, 26 deletions
diff --git a/addons/web/static/src/js/fields/abstract_field.js b/addons/web/static/src/js/fields/abstract_field.js
index 2534f8ae90a..8bb9afca065 100644
--- a/addons/web/static/src/js/fields/abstract_field.js
+++ b/addons/web/static/src/js/fields/abstract_field.js
@@ -45,6 +45,11 @@ var AbstractField = Widget.extend({
},
/**
+ * fields can extend the context, e.g. binary fields add {bin_size: true}
+ */
+ context: null,
+
+ /**
* An object representing fields to be fetched by the model eventhough not present in the view
* This object contains "field name" as key and an object as value.
* That value object must contain the key "type"
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index d0662fe7cef..f3e66cee421 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -1094,6 +1094,7 @@ var AbstractFieldBinary = AbstractField.extend({
},
'click .o_clear_file_button': 'on_clear',
}),
+ context: { bin_size: true },
init: function (parent, name, record) {
this._super.apply(this, arguments);
this.fields = record.fields;
@@ -1312,25 +1313,6 @@ var FieldBinaryFile = AbstractFieldBinary.extend({
},
});
-var FieldBinaryDownloadLink = AbstractFieldBinary.extend({
- template: 'FieldBinaryDownloadLink',
- events: _.extend({}, AbstractFieldBinary.prototype.events, {
- 'click': function (ev) {
- ev.stopPropagation();
- },
- }),
- supportedFieldTypes: ['binary'],
- init: function () {
- this._super.apply(this, arguments);
- this.filename = _t("Binary File");
- if (this.nodeOptions.filename && this.recordData[this.nodeOptions.filename]) {
- this.filename = this.recordData[this.nodeOptions.filename];
- }
- this.url = "data:application/octet-stream;base64," + this.value;
- this.text = _t("Download");
- },
-});
-
var PriorityWidget = AbstractField.extend({
// the current implementation of this widget makes it
// only usable for fields of type selection
@@ -2561,7 +2543,6 @@ return {
TranslatableFieldMixin: TranslatableFieldMixin,
DebouncedField: DebouncedField,
FieldEmail: FieldEmail,
- FieldBinaryDownloadLink: FieldBinaryDownloadLink,
FieldBinaryFile: FieldBinaryFile,
FieldBinaryImage: FieldBinaryImage,
FieldBoolean: FieldBoolean,
diff --git a/addons/web/static/src/js/fields/field_registry.js b/addons/web/static/src/js/fields/field_registry.js
index 85b4fc1187f..6692663d5f9 100644
--- a/addons/web/static/src/js/fields/field_registry.js
+++ b/addons/web/static/src/js/fields/field_registry.js
@@ -33,7 +33,6 @@ registry
.add('email', basic_fields.FieldEmail)
.add('phone', basic_fields.FieldPhone)
.add('url', basic_fields.UrlWidget)
- .add('download_link', basic_fields.FieldBinaryDownloadLink)
.add('image', basic_fields.FieldBinaryImage)
.add('binary', basic_fields.FieldBinaryFile)
.add('monetary', basic_fields.FieldMonetary)
diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js
index 812a7f380f7..5ac180b1de1 100644
--- a/addons/web/static/src/js/fields/field_utils.js
+++ b/addons/web/static/src/js/fields/field_utils.js
@@ -28,17 +28,17 @@ var _t = core._t;
//------------------------------------------------------------------------------
/**
+ * Convert binary to bin_size
*
- * @param {string} value base64 representation of the binary
+ * @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)
+ *
+ * @returns {string} bin_size (which is human-readable)
*/
function formatBinary(value, field, options) {
- if (!value) {
- return '';
- }
- return utils.human_size(value.length / 1.37); // base64 estimated size: http://en.wikipedia.org/wiki/Base64#MIME
+ return utils.binaryToBinsize(value);
}
/**