hedera-web/web/forms/ecomerce/basket/basket.js

96 lines
1.8 KiB
JavaScript
Executable File

Vn.Basket = new Class
({
Extends: Vn.Module
,open: function ()
{
if (this.basketChecked)
this.parent ();
}
,activate: function ()
{
Vn.BasketChecker.check (this.conn,
this.onBasketCheck.bind (this));
}
,onBasketCheck: function (isOk)
{
if (!isOk)
return;
this.basketChecked = true;
this.open ();
}
,onConfigureClick: function ()
{
Htk.Toast.showWarning (_('RememberReconfiguringImpact'));
this.hash.set ({'form': 'ecomerce/checkout'});
}
,onCatalogClick: function ()
{
this.hash.set ({'form': 'ecomerce/catalog'});
}
,onCheckoutClick: function ()
{
this.hash.set ({'form': 'ecomerce/confirm'});
}
,amountRender: function (renderer, form)
{
var amount = form.get ('amount');
var grouping = form.get ('grouping');
if (amount && grouping)
renderer.value = amount / grouping;
else
renderer.value = null;
}
,onAmountChange: function (renderer, row, newValue)
{
var model = this.$('items');
model.set (row, 'amount', newValue * model.get (row, 'grouping'));
}
,featuresRender: function (renderer, form)
{
renderer.value = form.get ('Medida') +' '+ form.get ('Categoria') +' '+ form.get ('Color');
}
,stemsRender: function (renderer, form)
{
renderer.value = Vn.Value.format (form.get ('price'), '%.2d€') +' x '+ form.get ('amount');
if (form.get ('amount') > form.get ('available'))
renderer.td.className = 'available-exceeded';
else
renderer.td.className = '';
}
,subtotalRender: function (renderer, form)
{
renderer.value = this.subtotal (form);
}
,subtotal: function (form)
{
return form.get ('amount') * form.get ('price');
}
,availableRender: function (renderer, form)
{
if (form.get ('amount') > form.get ('avail'))
renderer.value = 'unavailable';
else
renderer.value = 'invisible';
}
});