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.

54 lines
2.0 KiB

  1. /* Copyright 2015 Sylvain Calador <sylvain.calador@akretion.com>
  2. Copyright 2015 Javi Melendez <javi.melendez@algios.com>
  3. Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com>
  4. Copyright 2017 Thomas Binsfeld <thomas.binsfeld@acsone.eu>
  5. * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
  6. odoo.define('web_environment_ribbon.ribbon', function(require) {
  7. "use strict";
  8. var $ = require('$');
  9. var Model = require('web.Model');
  10. var core = require('web.core');
  11. var backend_model = new Model('web.environment.ribbon.backend');
  12. // Code from: http://jsfiddle.net/WK_of_Angmar/xgA5C/
  13. function validStrColour(strToTest) {
  14. if (strToTest === "") { return false; }
  15. if (strToTest === "inherit") { return true; }
  16. if (strToTest === "transparent") { return true; }
  17. var image = document.createElement("img");
  18. image.style.color = "rgb(0, 0, 0)";
  19. image.style.color = strToTest;
  20. if (image.style.color !== "rgb(0, 0, 0)") { return true; }
  21. image.style.color = "rgb(255, 255, 255)";
  22. image.style.color = strToTest;
  23. return image.style.color !== "rgb(255, 255, 255)";
  24. }
  25. core.bus.on('web_client_ready', null, function () {
  26. var ribbon = $('<div class="test-ribbon"/>');
  27. $('body').append(ribbon);
  28. ribbon.hide();
  29. // Get ribbon data from backend
  30. backend_model.call('get_environment_ribbon').then(
  31. function (ribbon_data) {
  32. // Ribbon name
  33. if (ribbon_data.name && ribbon_data.name != 'False') {
  34. ribbon.html(ribbon_data.name);
  35. ribbon.show();
  36. }
  37. // Ribbon color
  38. if (ribbon_data.color && validStrColour(ribbon_data.color)) {
  39. ribbon.css('color', ribbon_data.color);
  40. }
  41. // Ribbon background color
  42. if (ribbon_data.background_color && validStrColour(ribbon_data.background_color)) {
  43. ribbon.css('background-color', ribbon_data.background_color);
  44. }
  45. }
  46. );
  47. });
  48. }); // odoo.define