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 @@