diff --git a/addons/website_quote/static/src/css/website_quotation.css b/addons/website_quote/static/src/css/website_quotation.css index 6fa917b7621..c4bbd4d9c64 100644 --- a/addons/website_quote/static/src/css/website_quotation.css +++ b/addons/website_quote/static/src/css/website_quotation.css @@ -42,7 +42,6 @@ padding-left: 30px; font-size: 90%; } - @media (min-width: 992px) { .o_website_quote .bs-sidebar .nav > .active > ul { display: block; diff --git a/addons/website_quote/static/src/js/website_quotation.js b/addons/website_quote/static/src/js/website_quotation.js index 37f5e2a9a62..feb1901677a 100644 --- a/addons/website_quote/static/src/js/website_quotation.js +++ b/addons/website_quote/static/src/js/website_quotation.js @@ -1,101 +1,157 @@ (function () { -'use strict'; -var website = openerp.website; + 'use strict'; -website.if_dom_contains('div.o_website_quote', function () { + var website = openerp.website; + website.quotation = {}; - $('a.js_update_line_json').on('click', function (ev) { - ev.preventDefault(); - var $link = $(ev.currentTarget); - var href = $link.attr("href"); - var order_id = href.match(/order_id=([0-9]+)/); - var line_id = href.match(/update_line\/([0-9]+)/); - var token = href.match(/token=(.*)/); - openerp.jsonRpc("/quote/update_line", 'call', { - 'line_id': line_id[1], - 'order_id': parseInt(order_id[1]), - 'token': token[1], - 'remove': $link.is('[href*="remove"]'), - 'unlink': $link.is('[href*="unlink"]') - }) - .then(function (data) { + website.if_dom_contains('div.o_website_quote', function () { + + // Add to SO button + website.quotation.UpdateLineButton = openerp.Widget.extend({ + events: { + 'click' : 'onClick', + }, + onClick: function(ev){ + ev.preventDefault(); + var self = this; + var href = this.$el.attr("href"); + var order_id = href.match(/order_id=([0-9]+)/); + var line_id = href.match(/update_line\/([0-9]+)/); + var token = href.match(/token=(.*)/); + openerp.jsonRpc("/quote/update_line", 'call', { + 'line_id': line_id[1], + 'order_id': parseInt(order_id[1]), + 'token': token[1], + 'remove': self.$el.is('[href*="remove"]'), + 'unlink': self.$el.is('[href*="unlink"]') + }).then(function (data) { if(!data){ location.reload(); } - $link.parents('.input-group:first').find('.js_quantity').val(data[0]); + self.$el.parents('.input-group:first').find('.js_quantity').val(data[0]); $('[data-id="total_amount"]>span').html(data[1]); }); - return false; - }); - - var empty_sign = false; - $('#modelaccept').on('shown.bs.modal', function (e) { - $("#signature").empty().jSignature({'decor-color' : '#D1D0CE'}); - empty_sign = $("#signature").jSignature("getData",'image'); - }); - - $('#sign_clean').on('click', function (e) { - $("#signature").jSignature('reset'); - }); - - - $('form.js_accept_json').submit(function(ev){ - ev.preventDefault(); - var $link = $(ev.currentTarget); - var href = $link.attr("action"); - var order_id = href.match(/accept\/([0-9]+)/); - var token = href.match(/token=(.*)/); - if (token) - token = token[1]; - - var signer_name = $("#name").val(); - var sign = $("#signature").jSignature("getData",'image'); - var is_empty = sign?empty_sign[1]==sign[1]:false; - $('#signer').toggleClass('has-error', ! signer_name); - $('#drawsign').toggleClass('panel-danger', is_empty).toggleClass('panel-default', ! is_empty); - - if (is_empty || ! signer_name) - return false; - - openerp.jsonRpc("/quote/accept", 'call', { - 'order_id': parseInt(order_id[1]), - 'token': token, - 'signer': signer_name, - 'sign': sign?JSON.stringify(sign[1]):false, - }).then(function (data) { - $('#modelaccept').modal('hide'); - window.location.href = '/quote/'+order_id[1]+'/'+token+'?message=3'; + return false; + }, }); - return false; - }); - // automatically generate a menu from h1 and h2 tag in content - var $container = $('body[data-target=".navspy"]'); - var ul = $('[data-id="quote_sidebar"]', $container); - var sub_li = null; - var sub_ul = null; - $("[id^=quote_header_], [id^=quote_]", $container).attr("id", ""); - $("h1, h2", $container).each(function() { - var id; - switch (this.tagName.toLowerCase()) { - case "h1": - id = _.uniqueId('quote_header_'); - $(this.parentNode).attr('id',id); - sub_li = $("
  • ").html(''+$(this).text()+'').appendTo(ul); - sub_ul = null; - break; - case "h2": - id = _.uniqueId('quote_'); - if (sub_li) { - if (!sub_ul) { - sub_ul = $("