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.

63 lines
2.3 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. Copyright 2017 Xavier Jiménez <xavier.jimenez@qubiq.es>
  6. License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
  7. odoo.define('web_environment_ribbon.ribbon', function(require) {
  8. "use strict";
  9. var $ = require('jquery');
  10. var rpc = require('web.rpc');
  11. var core = require('web.core');
  12. // Code from: http://jsfiddle.net/WK_of_Angmar/xgA5C/
  13. function validStrColour(strToTest) {
  14. if (strToTest === "") {
  15. return false;
  16. }
  17. if (strToTest === "inherit") {
  18. return true;
  19. }
  20. if (strToTest === "transparent") {
  21. return true;
  22. }
  23. var image = document.createElement("img");
  24. image.style.color = "rgb(0, 0, 0)";
  25. image.style.color = strToTest;
  26. if (image.style.color !== "rgb(0, 0, 0)") {
  27. return true;
  28. }
  29. image.style.color = "rgb(255, 255, 255)";
  30. image.style.color = strToTest;
  31. return image.style.color !== "rgb(255, 255, 255)";
  32. }
  33. core.bus.on('web_client_ready', null, function () {
  34. var ribbon = $('<div class="test-ribbon hidden"/>');
  35. $('body').append(ribbon);
  36. ribbon.hide();
  37. // Get ribbon data from backend
  38. rpc.query({
  39. model: 'web.environment.ribbon.backend',
  40. method: 'get_environment_ribbon',
  41. }).then(
  42. function (ribbon_data) {
  43. // Ribbon name
  44. if (ribbon_data.name && ribbon_data.name !== 'False') {
  45. ribbon.html(ribbon_data.name);
  46. ribbon.show();
  47. }
  48. // Ribbon color
  49. if (ribbon_data.color && validStrColour(ribbon_data.color)) {
  50. ribbon.css('color', ribbon_data.color);
  51. }
  52. // Ribbon background color
  53. if (ribbon_data.background_color && validStrColour(ribbon_data.background_color)) {
  54. ribbon.css('background-color', ribbon_data.background_color);
  55. }
  56. }
  57. );
  58. });
  59. });