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.

39 lines
1.3 KiB

  1. odoo.define('kpi_dashboard.MeterWidget', function (require) {
  2. "use strict";
  3. var AbstractWidget = require('kpi_dashboard.AbstractWidget');
  4. var registry = require('kpi_dashboard.widget_registry');
  5. var MeterWidget = AbstractWidget.extend({
  6. template: 'kpi_dashboard.meter',
  7. jsLibs: [
  8. '/kpi_dashboard/static/lib/gauge/GaugeMeter.js',
  9. ],
  10. fillWidget: function (values) {
  11. var input = this.$el.find('[data-bind="value"]');
  12. var options = this._getMeterOptions(values);
  13. var margin = (this.widget_dimension_x - options.size)/2;
  14. input.gaugeMeter(options);
  15. input.parent().css('padding-left', margin);
  16. },
  17. _getMeterOptions: function (values) {
  18. var size = Math.min(
  19. this.widget_size_x,
  20. this.widget_size_y - 40) - 10;
  21. return {
  22. percent: values.value.value,
  23. style: 'Arch',
  24. width: 10,
  25. size: size,
  26. prepend: values.prefix !== undefined ? values.prefix : '',
  27. append: values.suffix !== undefined ? values.suffix : '',
  28. color: values.font_color,
  29. animate_text_colors: true,
  30. };
  31. },
  32. });
  33. registry.add('meter', MeterWidget);
  34. return MeterWidget;
  35. });