OCA reporting engine fork for dev and update.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.4 KiB

  1. odoo.define('kpi_dashboard.KpiFieldWidget', function(require) {
  2. "use strict";
  3. var basic_fields = require('web.basic_fields');
  4. var field_registry = require('web.field_registry');
  5. var core = require('web.core');
  6. var qweb = core.qweb;
  7. var registry = require('kpi_dashboard.widget_registry');
  8. var KpiFieldWidget = basic_fields.FieldChar.extend({
  9. jsLibs: [
  10. '/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.js',
  11. ],
  12. cssLibs: [
  13. '/kpi_dashboard/static/lib/gridster/jquery.dsmorse-gridster.min.css',
  14. ],
  15. className: 'o_dashboard_view',
  16. _renderReadonly: function () {
  17. this.$el.html($(qweb.render('dashboard_kpi.dashboard')));
  18. var marginx = 0;
  19. var marginy = 0;
  20. var widgetx = 400;
  21. var widgety = 400;
  22. this.$el.find('.gridster').css('width', widgety);
  23. this.$grid = this.$el.find('.gridster ul');
  24. var widgetVals = {
  25. value: this.value,
  26. col: 1,
  27. row: 1,
  28. sizex: 1,
  29. sizey: 1,
  30. name: this.recordData[this.nodeOptions.name],
  31. value_last_update: this.recordData[this.nodeOptions.date]
  32. }
  33. var Widget = registry.getAny([
  34. this.recordData[this.nodeOptions.widget], 'abstract',
  35. ]);
  36. this.state = {
  37. specialData: {
  38. margin_x: marginx,
  39. margin_y: marginy,
  40. widget_dimension_x: widgetx,
  41. widget_dimension_y: widgety,
  42. }
  43. }
  44. var widget = new Widget(this, widgetVals);
  45. var element = $(qweb.render(
  46. 'kpi_dashboard.kpi', {widget: widgetVals}));
  47. element.css('background-color', 'white');
  48. element.css('color', 'black');
  49. this.$grid.append(element);
  50. widget.appendTo(element)
  51. this.$grid.gridster({
  52. widget_margins: [
  53. marginx,
  54. marginy,
  55. ],
  56. widget_base_dimensions: [
  57. widgetx,
  58. widgety,
  59. ],
  60. cols: 1,
  61. }).data('gridster').disable();
  62. },
  63. });
  64. field_registry.add('kpi', KpiFieldWidget);
  65. return KpiFieldWidget;
  66. });