summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/editor
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2017-12-20 14:14:56 +0100
committerqsm-odoo <qsm@odoo.com>2017-12-20 17:15:08 +0100
commit8ca92330b367d54fddf1c02089ee9d0bc3edbfdc (patch)
treeb8cfc47ca58dcf49de8260a1effd1cd08ccefe6e /addons/web_editor/static/src/js/editor
parent374fa10272a731b499184e0d06330494990938cc (diff)
[IMP] web_editor: allow to define multiple `select-class` groups
Before this commit, when defining two sets of classes to be chosen independently on a same element you had to define two options: ``` <div data-selector=".myElement"> <li class="dropdown-submenu"> <a tabindex="-1" href="#">Classes set 1</a> <ul class="dropdown-menu"> <li data-select-class="a"><a href="#">A</a></li> <li data-select-class="b"><a href="#">B</a></li> <li data-select-class="c"><a href="#">C</a></li> </ul> </li> </div> <div data-selector=".myElement"> <li class="dropdown-submenu"> <a tabindex="-1" href="#">Classes set 2</a> <ul class="dropdown-menu"> <li data-select-class="x"><a href="#">X</a></li> <li data-select-class="y"><a href="#">Y</a></li> <li data-select-class="z"><a href="#">Z</a></li> </ul> </li> </div> ``` Now, an unique option can be used for this, allowing to not duplicate the `data-selector` and not creating two JS options: ``` <div data-selector=".myElement"> <li class="dropdown-submenu"> <a tabindex="-1" href="#">Classes set 1</a> <ul class="dropdown-menu"> <li data-select-class="a"><a href="#">A</a></li> <li data-select-class="b"><a href="#">B</a></li> <li data-select-class="c"><a href="#">C</a></li> </ul> </li> <li class="dropdown-submenu"> <a tabindex="-1" href="#">Classes set 2</a> <ul class="dropdown-menu"> <li data-select-class="x"><a href="#">X</a></li> <li data-select-class="y"><a href="#">Y</a></li> <li data-select-class="z"><a href="#">Z</a></li> </ul> </li> </div> ```
Diffstat (limited to 'addons/web_editor/static/src/js/editor')
-rw-r--r--addons/web_editor/static/src/js/editor/snippets.options.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/addons/web_editor/static/src/js/editor/snippets.options.js b/addons/web_editor/static/src/js/editor/snippets.options.js
index 4987e9a2d23..485bea35605 100644
--- a/addons/web_editor/static/src/js/editor/snippets.options.js
+++ b/addons/web_editor/static/src/js/editor/snippets.options.js
@@ -126,7 +126,11 @@ var SnippetOption = Widget.extend({
* @param {jQuery} $li - the related DOMElement option
*/
selectClass: function (previewMode, value, $li) {
- var $lis = this.$el.find('[data-select-class]').addBack('[data-select-class]');
+ var $group = $li.closest('.dropdown-submenu');
+ if (!$group.length) {
+ $group = this.$el;
+ }
+ var $lis = $group.find('[data-select-class]').addBack('[data-select-class]');
var classes = $lis.map(function () {return $(this).data('selectClass');}).get().join(' ');
this.$target.removeClass(classes);