31 lines
1.3 KiB
Text
31 lines
1.3 KiB
Text
|
-# common javascript for updating articles_by views
|
||
|
-# include this in all pages that use articles_by views (directly or via ajax)
|
||
|
= content_for :javascript do
|
||
|
:javascript
|
||
|
$(document).on('GroupOrderArticle#update', function(e) {
|
||
|
|
||
|
var el_goa = $('#goa_'+e.group_order_article_id);
|
||
|
|
||
|
// update total price of group_order_article
|
||
|
// show localised value, store raw number in data attribute
|
||
|
var el_price = $('.price', el_goa);
|
||
|
var old_price = el_price.data('value');
|
||
|
if (el_price.length) {
|
||
|
el_price.text(I18n.l('currency', e.group_order_article_price));
|
||
|
el_price.data('value', e.group_order_article_price);
|
||
|
}
|
||
|
|
||
|
// group_order_article is greyed when result==0
|
||
|
el_goa.toggleClass('unavailable', $('input#r_'+e.group_order_article_id, el_goa).val()==0);
|
||
|
|
||
|
// update total price of group_order, order_article and/or ordergroup, when present
|
||
|
var el_sum = $('#group_order_'+e.group_order_id+', #single_ordergroup_total, #single_order_article_total');
|
||
|
var el_price_sum = $('.price_sum', el_sum);
|
||
|
if (el_price_sum.length) {
|
||
|
var old_price_sum = el_price_sum.data('value');
|
||
|
var new_price_sum = old_price_sum - old_price + e.group_order_article_price;
|
||
|
el_price_sum.text(I18n.l('currency', new_price_sum));
|
||
|
el_price_sum.data('value', new_price_sum);
|
||
|
}
|
||
|
});
|