diff --git a/muk_web_utils/__manifest__.py b/muk_web_utils/__manifest__.py
index 20f1dfe..b632d82 100644
--- a/muk_web_utils/__manifest__.py
+++ b/muk_web_utils/__manifest__.py
@@ -20,7 +20,7 @@
{
"name": "MuK Web Utils",
"summary": """Utility Features""",
- "version": "12.0.2.8.3",
+ "version": "12.0.2.8.4",
"category": "Extra Tools",
"license": "AGPL-3",
"author": "MuK IT",
diff --git a/muk_web_utils/static/src/js/fields/binary.js b/muk_web_utils/static/src/js/fields/binary.js
index 18d531a..c2e8f5c 100644
--- a/muk_web_utils/static/src/js/fields/binary.js
+++ b/muk_web_utils/static/src/js/fields/binary.js
@@ -54,21 +54,17 @@ fields.FieldBinaryImage.include({
var FieldBinarySize = fields.FieldFloat.extend({
init: function(parent, name, record) {
this._super.apply(this, arguments);
- this.units = this.nodeOptions.si ?
- ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] :
- ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
- this.thresh = this.nodeOptions.si ? 1000 : 1024;
+ this.nodeOptions = _.defaults(this.nodeOptions, {
+ si: true,
+ });
},
_formatValue: function (value) {
- if(Math.abs(value) < this.thresh) {
- return this._super.call(this, value) + ' B';
- }
- var unit = -1;
- do {
- value /= this.thresh;
- ++unit;
- } while(Math.abs(value) >= this.thresh && unit < this.units.length - 1);
- return this._super.call(this, value) + ' ' + this.units[unit];
+ var options = _.extend({},
+ this.nodeOptions,
+ { data: this.recordData },
+ this.formatOptions,
+ );
+ return utils.format['binary_size'](value, this.field, options)
},
});
diff --git a/muk_web_utils/static/src/js/fields/utils.js b/muk_web_utils/static/src/js/fields/utils.js
new file mode 100644
index 0000000..20a2570
--- /dev/null
+++ b/muk_web_utils/static/src/js/fields/utils.js
@@ -0,0 +1,52 @@
+/**********************************************************************************
+*
+* Copyright (C) 2017 MuK IT GmbH
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Affero General Public License as
+* published by the Free Software Foundation, either version 3 of the
+* License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Affero General Public License for more details.
+*
+* You should have received a copy of the GNU Affero General Public License
+* along with this program. If not, see .
+*
+**********************************************************************************/
+
+odoo.define('muk_web_utils.field_utils', function(require) {
+"use strict";
+
+var core = require('web.core');
+var session = require('web.session');
+var utils = require('web.field_utils');
+
+var _t = core._t;
+var QWeb = core.qweb;
+
+function formatBinarySize(value, field, options) {
+ options = _.defaults(options || {}, {
+ si: true,
+ });
+ console.log(options)
+ var thresh = options.si ? 1000 : 1024;
+ if(Math.abs(value) < thresh) {
+ return utils.format['float'](value, field, options) + ' B';
+ }
+ var units = options.si
+ ? ['KB','MB','GB','TB','PB','EB','ZB','YB']
+ : ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];
+ var unit = -1;
+ do {
+ value /= thresh;
+ ++unit;
+ } while(Math.abs(value) >= thresh && unit < units.length - 1);
+ return utils.format['float'](value, field, options) + ' ' + units[unit];
+}
+
+utils.format.binary_size = formatBinarySize;
+
+});
diff --git a/muk_web_utils/template/assets.xml b/muk_web_utils/template/assets.xml
index 95316ce..1a159a2 100644
--- a/muk_web_utils/template/assets.xml
+++ b/muk_web_utils/template/assets.xml
@@ -39,6 +39,7 @@
+