%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/sale.mobile.orders.list/templates/.default/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/sale.mobile.orders.list/templates/.default/script.js |
/* Orders list object begin*/
__MASaleOrdersList = function(params) {
//lastOrder, filter, ajaxUrl, dialogUrl, orderDetailPath
for(var key in params)
this[key] = params[key];
this.bottomReached = false; //if recieved all of data
this.bottomOrdersRequesting = false; //if ajax requesting now
var d = new Date();
this.lastUpdateTS = d.getTime(); //todo: timezones?
};
__MASaleOrdersList.prototype.setUpdateTime = function (postData, callback)
{
var d = new Date();
this.lastUpdateTS = d.getTime();
return true;
};
__MASaleOrdersList.prototype.getUpdateTime = function (postData, callback)
{
return this.lastUpdateTS;
};
__MASaleOrdersList.prototype.ajaxRequest = function (postData, callback)
{
var _this = this;
postData.sessid = BX.bitrix_sessid();
postData.order_detail_path = this.orderDetailPath;
if(this.filter)
postData.filter = this.filter;
//app.showPopupLoader({"text":"loading"}); //develop
BX.ajax({
timeout: 30,
method: 'POST',
dataType: 'json',
url: this.ajaxUrl,
data: postData,
onsuccess: function(result) {
//app.hidePopupLoader();
if(result)
{
if(result.error)
{
//alert("__MASaleOrdersList.prototype.ajaxRequest: result.error"); //develop
}
else
{
if(callback && typeof callback == 'function')
{
callback.call(_this, result);
}
}
}
else
{
//alert("__MASaleOrdersList.prototype.ajaxRequest: !result"); //develop
}
},
onfailure: function(){
//alert("__MASaleOrdersList.prototype.ajaxRequest: callback error"); //develop
}
});
};
/*get orders updated after this.lastUpdateTS */
__MASaleOrdersList.prototype.getUpdatedOrders = function ()
{
var _this = this;
postData = {
action: 'get_updated_orders',
timestamp: this.getUpdateTime()
};
this.ajaxRequest(postData, function(result){
if(!result.orders)
return false;
_this.setUpdateTime();
for(var i in result.orders)
{
var orderDomObj = BX("order-"+i);
if(orderDomObj)
_this.updateOrderHtml(i, result.orders[i]);
else
_this.addOrderHtml(i, result.orders[i], _this.getFirstOrderId());
}
});
return true;
};
__MASaleOrdersList.prototype.deleteOrder = function(orderId)
{
var orderObj = BX("order-"+orderId);
if(!orderObj)
return false;
orderObj.parentNode.removeChild(orderObj);
return true;
};
__MASaleOrdersList.prototype.updateOrderHtml = function(orderId, htmlOrder)
{
if(!htmlOrder || !orderId)
return false;
var oldOrderDomObj = BX("order-"+orderId),
newOrderDomObj = this.createOrderObj(htmlOrder);
if(!oldOrderDomObj || !newOrderDomObj)
return false;
oldOrderDomObj.parentNode.replaceChild(newOrderDomObj, oldOrderDomObj);
return true;
};
__MASaleOrdersList.prototype.onOrderAdd = function(orderId)
{
if(!orderId)
return false;
var _this = this;
postData = {
action: 'get_order',
id: orderId
};
this.ajaxRequest(postData, function(result){
if(!result || !result.orders[orderId])
return false;
_this.addOrderHtml(orderId, result.orders[orderId], _this.getFirstOrderId());
});
};
__MASaleOrdersList.prototype.getFirstOrderId = function()
{
var ordersListObj = BX("orders-list");
if(!ordersListObj)
return false;
var firstOrderId = ordersListObj.childNodes[0];
if(firstOrderId && firstOrderId.id)
return firstOrderId.id.substr(6);
else
return false;
};
__MASaleOrdersList.prototype.createOrderObj = function(orderHtml)
{
if(!orderHtml)
return false;
var orderDomObjCont = BX("new_orders_container");
if(!orderDomObjCont)
{
orderDomObjCont= document.createElement("DIV");
orderDomObjCont.id = "new_orders_container";
orderDomObjCont.style.display = "none";
}
orderDomObjCont.innerHTML = orderHtml;
return orderDomObjCont.childNodes[0];
};
__MASaleOrdersList.prototype.addOrderHtml = function(orderId, orderHtml, beforeOrderId)
{
if(!orderHtml || !orderId)
return false;
if(BX("order-"+orderId))
return false;
var orderDomObj = this.createOrderObj(orderHtml),
ordersListObj = BX("orders-list");
if(beforeOrderId)
{
var beforeOrderObj = BX("order-"+beforeOrderId);
if(beforeOrderObj)
ordersListObj.insertBefore(orderDomObj, beforeOrderObj); //todo: if(!beforeOrderObj)
else
return false;
}
else
{
ordersListObj.appendChild(orderDomObj);
this.lastOrder = orderId;
}
return true;
};
__MASaleOrdersList.prototype.onOrderUpdate = function(orderId)
{
if(!orderId)
return false;
var _this = this;
postData = {
action: 'get_order',
id: orderId
};
this.ajaxRequest(postData, function(result){
if(!result || !result.orders[orderId])
return false;
_this.updateOrderHtml(orderId, result.orders[orderId]);
});
};
__MASaleOrdersList.prototype.getBottomOrders = function()
{
if(this.bottomReached)
return false;
if(this.bottomOrdersRequesting)
return false;
this.bottomOrdersRequesting = true;
var _this = this;
postData = {
action: 'get_orders',
last: this.lastOrder
};
this.ajaxRequest(postData, function(result){
_this.bottomOrdersRequesting = false;
if(result.bottomReached)
_this.bottomReached = true;
if(!result.orders)
{
//alert("getBottomOrders !result"); //develop
}
else
{
for(var i in result.orders)
_this.addOrderHtml(i, result.orders[i]);
}
});
};
__MASaleOrdersList.prototype.dialogShow = function(dialog)
{
app.showModalDialog({
url: this.dialogUrl+"?action=get_dialog&dialog_name="+dialog
});
};
/* Orders list object end*/