%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/js/sale/ |
| Current File : /home/bitrix/www/bitrix/js/sale/additional_delivery.js |
BX.namespace("BX.Sale.Handler.Delivery.Additional");
BX.Sale.Handler.Delivery.Additional =
{
ajaxUrl: "/bitrix/tools/sale/delivery_additional.php",
interruptFlag: false,
requestFlag: false,
onRusPostShippingPointsSelect: function(buttonNode, roNameId)
{
if(buttonNode && buttonNode.form
&& buttonNode.form.elements.ID
&& buttonNode.form.elements['CONFIG[MAIN][SHIPPING_POINT][VALUE]']
)
{
BX.Sale.Handler.Delivery.Additional.showRusPostShippingPointsDialog(
buttonNode.form.elements.ID.value,
buttonNode.form.elements['CONFIG[MAIN][SHIPPING_POINT][VALUE]'].value,
buttonNode.form,
roNameId
);
}
},
showRusPostShippingPointsDialog: function(deliveryId, spSelected, form, roNameId)
{ var self = this;
var popup = new BX.CDialog({
content_url: this.ajaxUrl,
content_post: 'action=get_ruspost_shipping_points_list&deliveryId='+deliveryId+'&spSelected='+spSelected+'&sessid='+BX.bitrix_sessid(),
width: 500,
height: 51,
draggable: true,
resizable: false,
title: BX.message('SALE_DLVRS_ADD_SP_CHOOSE_TITLE'),
buttons: [
{
title: BX.message('SALE_DLVRS_ADD_SP_SAVE'),
id: 'save-butt',
action: function ()
{
var selector = BX('sale-delivery-ruspost-shipment-points');
if(selector && selector.options && selector.options.length)
{
for(var i = selector.options.length - 1; i >= 0; i--)
{
if(selector.options[i].selected === true)
{
self.setShippingPoint(
selector.options[i].value,
selector.options[i].text,
form,
roNameId
);
break;
}
}
}
this.parentWindow.Close();
}
},
BX.CDialog.btnCancel
]});
popup.Show();
},
setShippingPoint: function(zip, address, form, roNameId)
{
if(form.elements['CONFIG[MAIN][SHIPPING_POINT][NAME]'])
{
form.elements['CONFIG[MAIN][SHIPPING_POINT][NAME]'].value = address;
}
if(form.elements['CONFIG[MAIN][SHIPPING_POINT][VALUE]'])
{
form.elements['CONFIG[MAIN][SHIPPING_POINT][VALUE]'].value = zip;
}
var roNameNode = BX(roNameId);
if(roNameNode)
{
roNameNode.innerHTML = address;
}
},
sendRequest: function(request)
{
if(!request)
return;
var postData = request,
callback = request.callback ? request.callback : null,
_this = this;
if(postData.callback)
delete postData.callback;
postData.sessid = BX.bitrix_sessid();
this.requestFlag = true;
BX.ajax({
timeout: 120,
method: 'POST',
dataType: 'json',
url: this.ajaxUrl,
data: postData,
onsuccess: function(result)
{
_this.requestFlag = false;
if(_this.interruptFlag)
{
_this.closeProgressDialog();
return;
}
if(result)
{
if(callback && typeof callback == "function")
callback.call(null, result);
}
else
{
_this.pb.showError(BX.message('SALE_DLVRS_ADD_LOC_COMP_AJAX_ERROR'));
}
if(result && result.ERROR)
{
_this.pb.showError(result.ERROR);
}
},
onfailure: function(status)
{
_this.requestFlag = false;
_this.pb.showError("ajax onfailure");
_this.pb.showError("status: "+ status);
if(_this.interruptFlag)
_this.closeProgressDialog();
}
});
},
startLocationsCompare: function()
{
this.showProgressDialog();
this.sendRequest({
action: 'locations_compare',
callback: BX.Sale.Handler.Delivery.Additional.processLocationsCompareAnswer
});
},
processLocationsCompareAnswer: function(answer)
{
if(!answer || !answer.stage || !answer.action)
{
BX.Sale.Handler.Delivery.Additional.pb.showError(BX.message('SALE_DLVRS_ADD_LOC_COMP_AJAX_ERROR'));
return;
}
if(answer.message)
BX.Sale.Handler.Delivery.Additional.pb.showMessage(answer.message);
if(answer.progress)
BX.Sale.Handler.Delivery.Additional.pb.Update(answer.progress);
if(answer.error)
{
BX.Sale.Handler.Delivery.Additional.pb.showError(answer.error);
return;
}
if(answer.stage && answer.stage == 'finish')
{
BX('progress_cancel').value = BX.message('SALE_DLVRS_ADD_LOC_COMP_CLOSE');
return;
}
BX.Sale.Handler.Delivery.Additional.sendRequest({
action: answer.action,
stage: answer.stage,
step: answer.step ? answer.step : '',
progress: answer.progress ? answer.progress : 0,
callback: BX.Sale.Handler.Delivery.Additional.processLocationsCompareAnswer
});
},
closeProgressDialog: function()
{
if(!this.interruptFlag)
this.interruptFlag = true;
if(this.requestFlag)
return;
BX.WindowManager.Get().Close();
if(this.interruptFlag)
this.interruptFlag = false;
},
showProgressDialog: function()
{
var popup = new BX.CDialog({
content: BX.Sale.Handler.Delivery.Additional.pb.getNode(),
width: 530,
height: 200,
draggable: true,
resizable: true,
title: BX.message('SALE_DLVRS_ADD_LOC_COMP_TITLE'),
buttons: [
{
title: BX.message('JS_CORE_WINDOW_CANCEL'),
id: 'progress_cancel',
name: 'progress_cancel',
action: function () {
window.location.reload();
BX.Sale.Handler.Delivery.Additional.closeProgressDialog();
}
}
]
});
BX.Sale.Handler.Delivery.Additional.pb.Init();
popup.adjustSizeEx();
popup.Show();
BX.Sale.Handler.Delivery.Additional.pb.showError('');
BX.Sale.Handler.Delivery.Additional.pb.showMessage(BX.message('SALE_DLVRS_ADD_LOC_COMP_PREPARE'));
},
pb: {
width:0,
obContainer: false,
obIndicator: false,
obIndicator2: false,
Init: function()
{
this.obContainer = BX('instal-load-block');
this.obIndicator = BX('instal-progress-bar-inner-text');
this.obIndicator2 = BX('instal-progress-bar-span');
this.obIndicator3 = BX('instal-progress-bar-inner');
this.obContainer.style.display = '';
this.width = this.obContainer.clientWidth || this.obContainer.offsetWidth;
},
Update: function(percent)
{
this.obIndicator.innerHTML = this.obIndicator3.style.width = percent+'%';
this.obIndicator2.innerHTML = percent+'%';
},
showError: function(errorMsg)
{
var errDiv = BX("instal-load-error");
errDiv.innerHTML = errorMsg;
errDiv.style.display = !!errorMsg ? '' : 'none';
BX.WindowManager.Get().adjustSizeEx();
},
showMessage: function(message, savePrevMsg)
{
var msgDiv = BX("instal-load-label"),
oldMessages = msgDiv.innerHTML;
msgDiv.innerHTML = (savePrevMsg ? oldMessages +"<br>" : '')+message;
msgDiv.style.display = !!message ? '' : 'none';
BX.WindowManager.Get().adjustSizeEx();
},
getNode: function()
{
var node = BX('instal-load-block');
if(!node)
{
node = BX.create('div', {
props: {
className: 'instal-load-block',
id: 'instal-load-block'
},
children:[
BX.create('div',{
props: {
className: 'instal-load-label',
id: 'instal-load-label'
}
}),
BX.create('div',{
props: {
className: 'instal-load-error',
id: 'instal-load-error'
}
}),
BX.create('div',{
props: {
className: 'instal-progress-bar-outer',
id: 'instal-progress-bar-outer'
},
style: {width: '500px'},
children: [
BX.create('div',{
props: {
className: 'instal-progress-bar-alignment'
},
children: [
BX.create('div',{
props: {
className: 'instal-progress-bar-inner',
id: 'instal-progress-bar-inner'
},
style: {width: '0%'},
children:[
BX.create('div',{
props: {
className: 'instal-progress-bar-inner-text',
id: 'instal-progress-bar-inner-text'
},
style: {width: '500px'},
html: '0%'
})
]
}),
BX.create('div',{
props: {
className: 'instal-progress-bar-span',
id: 'instal-progress-bar-span'
},
html: '0%'
})
]
})
]
})
]
});
}
return node;
}
}
};