[FIX] Bundlification remains (Fixes #2463)
[odoo/odoo.git] / addons / website_quote / static / src / js / website_quotation.js
1 (function () {
2 'use strict';
3 var website = openerp.website;
4
5 website.if_dom_contains('div.o_website_quote', function () {
6
7     $('a.js_update_line_json').on('click', function (ev) {
8         ev.preventDefault();
9         var $link = $(ev.currentTarget);
10         var href = $link.attr("href");
11         var order_id = href.match(/order_id=([0-9]+)/);
12         var line_id = href.match(/update_line\/([0-9]+)/);
13         var token = href.match(/token=(.*)/);
14         openerp.jsonRpc("/quote/update_line", 'call', {
15                 'line_id': line_id[1],
16                 'order_id': parseInt(order_id[1]),
17                 'token': token[1],
18                 'remove': $link.is('[href*="remove"]'),
19                 'unlink': $link.is('[href*="unlink"]')
20                 })
21                 .then(function (data) {
22                     if(!data){
23                         location.reload();
24                     }
25                     $link.parents('.input-group:first').find('.js_quantity').val(data[0]);
26                     $('[data-id="total_amount"]>span').html(data[1]);
27                 });
28         return false;
29     });
30
31     var empty_sign = false;
32     $('#modelaccept').on('shown.bs.modal', function (e) {
33         $("#signature").empty().jSignature({'decor-color' : '#D1D0CE'});
34         empty_sign = $("#signature").jSignature("getData",'image');
35     });
36
37     $('#sign_clean').on('click', function (e) {
38         $("#signature").jSignature('reset');
39     });
40
41
42     $('form.js_accept_json').submit(function(ev){
43         ev.preventDefault();
44         var $link = $(ev.currentTarget);
45         var href = $link.attr("action");
46         var order_id = href.match(/accept\/([0-9]+)/);
47         var token = href.match(/token=(.*)/);
48         if (token)
49             token = token[1];
50
51         var signer_name = $("#name").val();
52         var sign = $("#signature").jSignature("getData",'image');
53         var is_empty = sign?empty_sign[1]==sign[1]:false;
54         $('#signer').toggleClass('has-error', ! signer_name);
55         $('#drawsign').toggleClass('panel-danger', is_empty).toggleClass('panel-default', ! is_empty);
56
57         if (is_empty || ! signer_name)
58             return false;
59
60         openerp.jsonRpc("/quote/accept", 'call', {
61             'order_id': parseInt(order_id[1]),
62             'token': token,
63             'signer': signer_name,
64             'sign': sign?JSON.stringify(sign[1]):false,
65         }).then(function (data) {
66             $('#modelaccept').modal('hide');
67             window.location.href = '/quote/'+order_id[1]+'/'+token+'?message=3';
68         });
69         return false;
70     });
71
72     // automatically generate a menu from h1 and h2 tag in content
73     var $container = $('body[data-target=".navspy"]');
74     var ul = $('[data-id="quote_sidebar"]', $container);
75     var sub_li = null;
76     var sub_ul = null;
77     $("[id^=quote_header_], [id^=quote_]", $container).attr("id", "");
78     $("h1, h2", $container).each(function() {
79         var id;
80         switch (this.tagName.toLowerCase()) {
81             case "h1":
82                 id = _.uniqueId('quote_header_');
83                 $(this.parentNode).attr('id',id);
84                 sub_li = $("<li>").html('<a href="#'+id+'">'+$(this).text()+'</a>').appendTo(ul);
85                 sub_ul = null;
86                 break;
87             case "h2":
88                 id = _.uniqueId('quote_');
89                 if (sub_li) {
90                     if (!sub_ul) {
91                         sub_ul = $("<ul class='nav'>").appendTo(sub_li);
92                     }
93                     $(this.parentNode).attr('id',id);
94                     $("<li>").html('<a href="#'+id+'">'+$(this).text()+'</a>').appendTo(sub_ul);
95                 }
96                 break;
97             }
98     });
99 });
100
101 }());