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.

49 lines
1.7 KiB

  1. /* Copyright 2016-2019 Jairo Llopis <jairo.llopis@tecnativa.com>
  2. * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
  3. odoo.define("web_editor_background_color.colorpicker", function (require) {
  4. "use strict";
  5. var ColorpickerDialog = require('web.colorpicker');
  6. var options = require("web_editor.snippets.options");
  7. var colorpicker = options.registry.colorpicker;
  8. colorpicker.include({
  9. custom_events: _.extend({}, colorpicker.prototype.custom_events, {
  10. "colorpicker:saved": "_onCustomColorSave",
  11. }),
  12. events: _.extend({}, colorpicker.prototype.events, {
  13. "click .o_colorpicker_section[data-name=custom]>.text-muted":
  14. "_onCustomColorAsk",
  15. }),
  16. /**
  17. * Called when the user clicks on "Custom color" section header
  18. */
  19. _onCustomColorAsk: function () {
  20. var dialog = new ColorpickerDialog(this, {
  21. defaultColor: this.$target.css("background-color"),
  22. });
  23. dialog.open();
  24. },
  25. /**
  26. * Called when the user saves a custom color
  27. *
  28. * @param {Event} event
  29. */
  30. _onCustomColorSave: function (event) {
  31. // Add a button to remind recent choices
  32. var $button = $("<button/>", {
  33. class: "o_custom_color",
  34. css: {
  35. "background-color": event.data.cssColor,
  36. },
  37. });
  38. var $custom = this.$el.find(
  39. ".o_colorpicker_section[data-name=custom]");
  40. $custom.append($button);
  41. // Emulate a hover & click on that new button
  42. $button.mouseenter().click();
  43. },
  44. });
  45. });