odoo.define('kpi_dashboard.KpiFieldWidget', function(require) { "use strict"; var basic_fields = require('web.basic_fields'); var field_registry = require('web.field_registry'); var core = require('web.core'); var qweb = core.qweb; var registry = require('kpi_dashboard.widget_registry'); var KpiFieldWidget = basic_fields.FieldChar.extend({ jsLibs: [ '/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.js', ], cssLibs: [ '/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.css', ], className: 'o_dashboard_view', _renderReadonly: function () { this.$el.html($(qweb.render('dashboard_kpi.dashboard'))); var marginx = 0; var marginy = 0; var widgetx = 400; var widgety = 400; this.$el.find('.gridster').css('width', widgety); this.$grid = this.$el.find('.gridster ul'); var widgetVals = { value: this.value, col: 1, row: 1, sizex: 1, sizey: 1, name: this.recordData[this.nodeOptions.name], value_last_update: this.recordData[this.nodeOptions.date] } var Widget = registry.getAny([ this.recordData[this.nodeOptions.widget], 'abstract', ]); this.state = { specialData: { margin_x: marginx, margin_y: marginy, widget_dimension_x: widgetx, widget_dimension_y: widgety, } } var widget = new Widget(this, widgetVals); var element = $(qweb.render( 'kpi_dashboard.kpi', {widget: widgetVals})); element.css('background-color', 'white'); element.css('color', 'black'); this.$grid.append(element); widget.appendTo(element) this.$grid.gridster({ widget_margins: [ marginx, marginy, ], widget_base_dimensions: [ widgetx, widgety, ], cols: 1, }).data('gridster').disable(); }, }); field_registry.add('kpi', KpiFieldWidget); return KpiFieldWidget; });