merge from 8.0
[odoo/odoo.git] / addons / website_sale / static / src / js / website_sale.editor.js
1 (function() {
2     "use strict";
3
4     var website = openerp.website;
5     var _t = openerp._t;
6
7     website.EditorBarContent.include({
8         new_product: function() {
9             website.prompt({
10                 id: "editor_new_product",
11                 window_title: _t("New Product"),
12                 input: "Product Name",
13             }).then(function (name) {
14                 website.form('/shop/add_product', 'POST', {
15                     name: name
16                 });
17             });
18         },
19     });
20
21     function reload_enable_editor() {
22         var search = location.search.replace(/\?|$/, '?enable_editor=1&');
23         location.href = location.href.replace(/(\?|#|$).*/, search + location.hash);
24     }
25
26     $(document).on('click', '.js_options .js_go_to_top,.js_options .js_go_to_bottom,.js_options .js_go_up,.js_options .js_go_down', function (event) {
27         var $a = $(event.currentTarget);
28         var $data = $a.parents(".js_options:first");
29         var sequence = "top";
30         if ($a.hasClass('js_go_to_bottom'))
31             sequence = "bottom";
32         else if ($a.hasClass('js_go_up'))
33             sequence = "up";
34         else if ($a.hasClass('js_go_down'))
35             sequence = "down";
36         openerp.jsonRpc('/shop/change_sequence', 'call', {'id': $data.data('id'), 'sequence': sequence})
37             .then(reload_enable_editor);
38     });
39
40     $(document).on('click', '.js_options ul[name="style"] a', function (event) {
41         var $a = $(event.currentTarget);
42         var $li = $a.parent();
43         var $data = $a.parents(".js_options:first");
44         var $product = $a.parents(".oe_product:first");
45
46         $li.parent().removeClass("active");
47         openerp.jsonRpc('/shop/change_styles', 'call', {'id': $data.data('id'), 'style_id': $a.data("id")})
48             .then(function (result) {
49                 $product.toggleClass($a.data("class"));
50                 $li.toggleClass("active", result);
51             });
52     });
53
54     $(document).on('mouseenter', '#products_grid .js_options ul[name="size"] table', function (event) {
55         $(event.currentTarget).addClass("oe_hover");
56     });
57     $(document).on('mouseleave', '#products_grid .js_options ul[name="size"] table', function (event) {
58         $(event.currentTarget).removeClass("oe_hover");
59     });
60     $(document).on('mouseover', '#products_grid .js_options ul[name="size"] td', function (event) {
61         var $td = $(event.currentTarget);
62         var $table = $td.parents("table:first");
63         var x = $td.index()+1;
64         var y = $td.parent().index()+1;
65
66         var tr = [];
67         for (var yi=0; yi<y; yi++) tr.push("tr:eq("+yi+")");
68         var $select_tr = $table.find(tr.join(","));
69         var td = [];
70         for (var xi=0; xi<x; xi++) td.push("td:eq("+xi+")");
71         var $select_td = $select_tr.find(td.join(","));
72
73         $table.find("td").removeClass("select");
74         $select_td.addClass("select");
75     });
76     $(document).on('click', '#products_grid .js_options ul[name="size"] td', function (event) {
77         var $td = $(event.currentTarget);
78         var $data = $td.parents(".js_options:first");
79         var x = $td.index()+1;
80         var y = $td.parent().index()+1;
81         openerp.jsonRpc('/shop/change_size', 'call', {'id': $data.data('id'), 'x': x, 'y': y})
82             .then(reload_enable_editor);
83     });
84
85 })();