mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
62 lines
2.3 KiB
JavaScript
62 lines
2.3 KiB
JavaScript
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;
|
|
});
|