712 lines
26 KiB
JavaScript
712 lines
26 KiB
JavaScript
(function() {
|
|
|
|
if($.isFunction(Validator)){
|
|
/**
|
|
* Function to show field errors by field object error cfg
|
|
*
|
|
* @this {Validator}
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @param {object} caller - field object for which to add error
|
|
* @param {object} errors - error cfg array
|
|
*/
|
|
Validator.prototype.showErrorsByObject = function(errors){
|
|
|
|
this.hideAllErrors();
|
|
|
|
// Set errors
|
|
if($.isDefined(errors) && errors){
|
|
if(errors.base){
|
|
for(var key in errors.base){
|
|
this.showError($(this.sel + " span." + key), errors.base[key]);
|
|
}
|
|
}
|
|
if(errors.table){
|
|
for(var i in errors.table){
|
|
for(var key in errors.table[i]){
|
|
this.showError($(this.sel + " #table ul.body:nth-child(" + (parseInt(i)+3) + ") span." + key), errors.table[i][key]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
};
|
|
Validator.prototype.hideAllErrors = function(){
|
|
$(this.sel + " .v-error," + this.sel + " .v-ok").removeClass("v-ok v-error");
|
|
};
|
|
/**
|
|
* Function to clear current field error
|
|
*
|
|
* @this {Validator}
|
|
* @author Mareks Keišs <keiss.mareks@gmail.com>
|
|
* @param {object} caller - field object for which to hide error
|
|
*/
|
|
Validator.prototype.hideError = function(caller){
|
|
if(caller){
|
|
if(jQuery().tipsy){
|
|
var eMsg = $(caller).closest(".v-error");
|
|
if(eMsg.length) eMsg.tipsy("hide");
|
|
}
|
|
|
|
$(caller).closest(".validate").addClass("v-ok").removeClass("v-error").attr("title", "").find(".errMsg").hide();
|
|
}
|
|
};
|
|
}
|
|
|
|
oFieldBinds = (function() {
|
|
|
|
function oFieldBinds(jqObj, data) {
|
|
var _this = this;
|
|
|
|
_this.jqModuleObj = $.isDefined(jqObj) ? jqObj : $(".form-data");
|
|
|
|
_this.oData = {};
|
|
_this.oData = (data ? data : {});
|
|
|
|
_this.bindEvents();
|
|
}
|
|
|
|
oFieldBinds.prototype.jqModuleObj = $("");
|
|
oFieldBinds.prototype.oData = {};
|
|
|
|
oFieldBinds.prototype.sActiveElementClass = "";
|
|
oFieldBinds.prototype.iPvn = 21;
|
|
|
|
oFieldBinds.prototype.iClonableObjects = 32; // + 2 because of clone object & header;
|
|
|
|
oFieldBinds.prototype.oProdCatalog = false;
|
|
oFieldBinds.prototype.oProdCatalogTable = false;
|
|
oFieldBinds.prototype.oProdData = {};
|
|
|
|
|
|
oFieldBinds.prototype.bindEvents = function(){
|
|
var _this = this;
|
|
|
|
// Fill data;
|
|
if(_this.oData)
|
|
_this.fillData();
|
|
|
|
|
|
// Bind field edit on click;
|
|
_this.jqModuleObj.find(".dataBox li:not(.dummy, .noEdit)").bind("click", function(){
|
|
var jqLi = $(this);
|
|
if(!jqLi.hasClass("active")){
|
|
jqLi.addClass("active");
|
|
|
|
var jqSpan = jqLi.find("div > span");
|
|
var val = jqSpan.html();
|
|
|
|
_this.sActiveElementClass = jqSpan.attr("class");
|
|
|
|
|
|
if(jqLi.hasClass("dec_2")){
|
|
val = parseFloat(val.replace(',', '.'));
|
|
val = (!isNaN(val) ? CBase.formatNumber(val,2,".","") : 0.000)
|
|
}
|
|
if(jqLi.hasClass("dec_3")){
|
|
val = parseFloat(val.replace(',', '.'));
|
|
val = (!isNaN(val) ? CBase.formatNumber(val,3,".","") : 0.000)
|
|
}
|
|
|
|
var jqDiv = jqLi.find(">div");
|
|
var jqInput = $("<input value='"+ (val ? val : '') +"' data-validator='"+ jqDiv.attr("name") +"'/>");
|
|
|
|
jqDiv.append(jqInput);
|
|
jqInput.select().focus().blur(function(){
|
|
_this.inputBinds(jqLi);
|
|
}).keypress(function (e) {
|
|
var iKeyCode = (e.keyCode ? e.keyCode : e.which);
|
|
if(iKeyCode == '13'){ // On enter call our row input binds function
|
|
_this.inputBinds(jqLi);
|
|
}else if(iKeyCode == '9'){
|
|
_this.inputBinds(jqLi);
|
|
var jqNext = (e.shiftKey ? jqLi.prev() : jqLi.next());
|
|
while(jqNext.length && jqNext.hasClass("noEdit"))
|
|
jqNext = (e.shiftKey ? jqNext.prev() : jqNext.next());
|
|
jqNext.click();
|
|
}
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
var jqTable = _this.jqModuleObj.find("div#table");
|
|
// Bind add row
|
|
jqTable.parent().find(".add_more").bind("click", function(){
|
|
if(jqTable.find("ul").length < _this.iClonableObjects)
|
|
_this.createRow(false, true);
|
|
});
|
|
|
|
// Bind product catalog button
|
|
jqTable.parent().find(".prod_catalog").bind("click", function(){
|
|
_this.createCatalog();
|
|
});
|
|
|
|
// Bind row delete button;
|
|
jqTable.find("ul span.delete").bind("click", function(){
|
|
_this.removeRow($(this).closest("ul"));
|
|
});
|
|
|
|
// Bind calendar to date picker
|
|
_this.jqModuleObj.find("span.calendar").bind("click", function(){
|
|
var jqInp = $(this).parent().find("input");
|
|
_this.sActiveElementClass = jqInp.attr("id");
|
|
jqInp.datepicker("show");
|
|
});
|
|
|
|
|
|
};
|
|
oFieldBinds.prototype.createCatalog = function(){
|
|
var _this = this;
|
|
|
|
// Construct New dialog if necessary
|
|
if(!_this.oProdCatalog){
|
|
_this.oProdCatalog = new ConfirmDialog("prodCatalog");
|
|
|
|
var jqClone = $(".content").find("#catalog-clone").clone();
|
|
jqClone.attr("id", "catalog");
|
|
|
|
// Show dialog with HTML
|
|
_this.oProdCatalog.show({
|
|
bSkipShow : true,
|
|
closeBtn: true,
|
|
title : defaultVal(CBase.gM.sProdCatalogTitle, "Select product"),
|
|
message : jqClone,
|
|
buttons : {
|
|
1 : {
|
|
lbl : defaultVal(CBase.gM.sProdSel, "Select product"),
|
|
id : "buttonYes",
|
|
click : function(){
|
|
_this.oProdCatalog.hide();
|
|
_this.addSelectedProducts();
|
|
}
|
|
},
|
|
2 : {
|
|
lbl : defaultVal(CBase.gM.sProdCancel, "Cancel"),
|
|
id : "buttonNo",
|
|
click : function(){
|
|
_this.oProdCatalog.hide();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
// Construct New table if necessary
|
|
var oForm = CBase.oForm;
|
|
var oTable = CBase.oTable;
|
|
_this.oProdCatalogTable = new CTable("catalog", CBase.dt.productUrl);
|
|
_this.oProdCatalogTable.bInitEdit = false;
|
|
_this.oProdCatalogTable.getTableData = function(){
|
|
return {
|
|
action : "loadProdCatalog"
|
|
}
|
|
};
|
|
|
|
_this.oProdCatalogTable.tableShowCallback = function(jqObj, d){
|
|
if(d.prodData){
|
|
$.each(d.prodData, function(k, data){
|
|
_this.oProdData[data['rid']] = $.extend({}, data);
|
|
});
|
|
|
|
jqObj.find("ul.dxr.single").click(function(){
|
|
$(this).find("div.chk").trigger("click");
|
|
});
|
|
}
|
|
|
|
};
|
|
|
|
_this.oProdCatalogTable.loadTableData();
|
|
CBase.oForm = oForm;
|
|
CBase.oTable = oTable;
|
|
}
|
|
|
|
_this.oProdCatalog.show();
|
|
|
|
|
|
};
|
|
oFieldBinds.prototype.addSelectedProducts = function(){
|
|
var _this = this;
|
|
_this.oProdCatalog.oDialog.find("#cms-table-drop-marker").find(".chked").each(function(){
|
|
// If its not table head check all box then add this product;
|
|
if(_this.oProdData && !$(this).closest("ul").hasClass("thead")){
|
|
var id = $(this).closest("ul").attr("id");
|
|
if(_this.oProdData[id]){
|
|
var jqRow = _this.createRow(false, true);
|
|
jqRow.find("span.p_name").closest("li").unbind();
|
|
|
|
jqRow.find("span.p_count").html(1);
|
|
_this.oData['table'][jqRow.attr("id").substr(1) - 1]["p_count"] = 1;
|
|
$.each(_this.oProdData[id], function(key, val){
|
|
if(key != "id" && key != "p_name"){
|
|
_this.oData['table'][jqRow.attr("id").substr(1) - 1][key] = val;
|
|
jqRow.find("span." + key).html(val);
|
|
|
|
if(key == "p_price_vat"){
|
|
_this.sActiveElementClass = "p_price_vat";
|
|
var oImp = $("<input data-validator='p_price_vat'>").val(val).hide();
|
|
jqRow.find("span." + key).after(oImp);
|
|
_this.inputBinds(oImp.closest("li"));
|
|
}
|
|
}
|
|
});
|
|
_this.oData['table'][jqRow.attr("id").substr(1) - 1]['p_name'] = _this.oProdData[id].full_title;
|
|
jqRow.find("span.p_name").html(_this.oProdData[id].full_title);
|
|
}
|
|
}
|
|
|
|
// Remove checked class;
|
|
$(this).removeClass("chked");
|
|
});
|
|
|
|
_this.recalculateSubTotal();
|
|
};
|
|
oFieldBinds.prototype.removeRow = function(jqRow){
|
|
var _this = this;
|
|
|
|
var jqParent = jqRow.parent();
|
|
jqRow.css({opacity : 0.5}).delay(50).slideUp("fast", function(){
|
|
var id = (jqRow.attr("id").substr(1)) - 1;
|
|
|
|
$(this).remove();
|
|
delete _this.oData['table'][id];
|
|
|
|
_this.recalculateRowNr(jqParent);
|
|
|
|
// Recalculate total sum
|
|
_this.recalculateSubTotal();
|
|
_this.reformatRowsAndCols();
|
|
});
|
|
|
|
|
|
};
|
|
oFieldBinds.prototype.fillData = function(bOnlyOne, jqObj, val){
|
|
var _this = this;
|
|
|
|
if(bOnlyOne){
|
|
jqObj.find("span." + _this.sActiveElementClass).html(val);
|
|
}else{
|
|
|
|
if(_this.oData['data']){
|
|
for(var id in _this.oData['data']){
|
|
if(_this.oData['data'].hasOwnProperty(id))
|
|
_this.jqModuleObj.find("span." + id).html(_this.oData['data'][id]);
|
|
}
|
|
}
|
|
|
|
|
|
// Fill table data
|
|
if(_this.oData['table']){
|
|
for(var i in _this.oData['table']){
|
|
if(_this.oData['table'].hasOwnProperty(i)){
|
|
var jqRow = _this.createRow(true);
|
|
for(var id in _this.oData['table'][i]){
|
|
if(_this.oData['table'][i].hasOwnProperty(id)){
|
|
jqRow.find("span." + id).html(_this.oData['table'][i][id]);
|
|
}
|
|
}
|
|
// Add no edit on title if this row has id
|
|
if(_this.oData['table'][i]['p_id'] > 0)
|
|
jqRow.find("span.p_name").closest("li").addClass("noEdit");
|
|
|
|
if(_this.oData.table[i].split)
|
|
jqRow.addClass("split");
|
|
|
|
|
|
_this.recalculateTable(jqRow, false);
|
|
}
|
|
}
|
|
|
|
_this.recalculateRowNr(_this.jqModuleObj.find("div#table"));
|
|
_this.recalculateSubTotal();
|
|
}else
|
|
_this.oData['table'] = {};
|
|
}
|
|
|
|
};
|
|
oFieldBinds.prototype.recalculateTable = function(jqRow,bSumCalc){
|
|
var _this = this;
|
|
bSumCalc = defaultVal(bSumCalc, true);
|
|
|
|
if(jqRow.length){
|
|
// Recalculate row sums etc.
|
|
var iCount = parseInt(jqRow.find("span.p_count").html());
|
|
var iPrice = parseFloat(jqRow.find("span.p_price").html().replace(',', '.'));
|
|
|
|
jqRow.find("span.p_count").html(iCount);
|
|
jqRow.find("span.p_price").html(CBase.formatNumber(iPrice,3,".",""));
|
|
|
|
var jqPriceSum = jqRow.find("span.p_price_sum");
|
|
var jqPriceVat = jqRow.find("span.p_price_vat");
|
|
var jqPvn = jqRow.find("span.p_pvn");
|
|
|
|
|
|
if(!isNaN(iCount) && !isNaN(iPrice)){
|
|
jqPvn.html(CBase.formatNumber(iPrice*_this.iPvn/100,2,".",""));
|
|
jqPriceVat.html(CBase.formatNumber(iPrice*(1+_this.iPvn/100),2,".",""));
|
|
jqPriceSum.html(CBase.formatNumber(iPrice*iCount*(1+_this.iPvn/100),2,".",""));
|
|
}
|
|
}
|
|
|
|
if(bSumCalc)
|
|
_this.recalculateSubTotal();
|
|
};
|
|
oFieldBinds.prototype.recalculateSubTotal = function(){
|
|
|
|
var _this = this;
|
|
var iSubTotal = 0;
|
|
var iPvnSum = 0;
|
|
var iTotal = 0;
|
|
|
|
_this.jqModuleObj.find("div#table").find("ul.lbody:not(.clone)").each(function(){
|
|
var iPriceSum = parseFloat($(this).find("span.p_price_sum").html());
|
|
if(!isNaN(iPriceSum)) iTotal += iPriceSum;
|
|
});
|
|
|
|
if(iTotal > 0){
|
|
iSubTotal = iTotal*100/(100+_this.iPvn);
|
|
iPvnSum = iSubTotal*_this.iPvn/100;
|
|
}
|
|
|
|
_this.jqModuleObj.find("span.sub_total").html(CBase.formatNumber(iSubTotal,2,"."," "));
|
|
_this.jqModuleObj.find("span.pvn_sum").html(CBase.formatNumber(iPvnSum,2,"."," "));
|
|
|
|
var iPrevTotal = parseFloat(_this.jqModuleObj.find("span.total").html());
|
|
_this.jqModuleObj.find("span.total").html(CBase.formatNumber(iTotal,2,"."," "));
|
|
|
|
if(iPrevTotal != iTotal){
|
|
CBase.oTable.sendAjaxActionAdvanced({
|
|
action: "sum2words",
|
|
sum: CBase.formatNumber(iTotal, 2, ".", "")
|
|
},
|
|
function(d){
|
|
if(d && d.jsonok && d.w){
|
|
_this.jqModuleObj.find(".a_p_amount_words").html(d.w);
|
|
_this.oData.data["a_p_amount_words"] = d.w;
|
|
}
|
|
});
|
|
}
|
|
|
|
};
|
|
oFieldBinds.prototype.reformatRowsAndCols = function(){
|
|
var jqTable = $("#table ul.body, .sub_total li");
|
|
|
|
// Style
|
|
jqTable.removeClass("odd");
|
|
$("#table ul.body:odd, .sub_total li:odd").addClass("odd");
|
|
|
|
jqTable.each(function(){
|
|
$(this).find("li:even").addClass("even");
|
|
});
|
|
|
|
};
|
|
oFieldBinds.prototype.createRow = function(bNewNode, bAnimate){
|
|
var _this = this;
|
|
|
|
// Clone cloneable obj.
|
|
var jqTable = _this.jqModuleObj.find("div#table");
|
|
var jqClone = jqTable.find("> ul.clone").clone(true, true);
|
|
jqClone.removeClass("clone");
|
|
|
|
// Add nr.
|
|
var i = 1;
|
|
while(jqTable.find("> ul#r" +i).length) i++;
|
|
jqClone.attr("id", "r" + i);
|
|
|
|
var nr = (parseInt(jqTable.find("> ul.lbody:last span.nr").html()) || 0) +1;
|
|
jqClone.find("span.nr").html((nr+"."));
|
|
|
|
if(!bNewNode){
|
|
var ii = i - 1;
|
|
_this.oData['table'][ii] = {
|
|
row_nr : nr,
|
|
p_price : 0.000,
|
|
p_count : 0,
|
|
p_name : ""
|
|
};
|
|
|
|
for(var sClass in _this.oData['table'][ii]){
|
|
if(_this.oData['table'][ii].hasOwnProperty(sClass)){
|
|
jqClone.find("span." + sClass).html(_this.oData['table'][ii][sClass]);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Append cloneable object with or without animation
|
|
if(bAnimate){
|
|
jqTable.append(jqClone.css({opacity : 0.5}).hide());
|
|
jqClone.slideDown("fast", function(){
|
|
$(this).css({opacity : 1});
|
|
});
|
|
}else{
|
|
jqTable.append(jqClone.show());
|
|
}
|
|
|
|
if(!bNewNode) _this.recalculateTable(jqClone);
|
|
|
|
|
|
_this.reformatRowsAndCols();
|
|
return jqClone;
|
|
};
|
|
oFieldBinds.prototype.inputBinds = function(jqLi){
|
|
var _this = this;
|
|
|
|
var jqActiveInput = jqLi.find("input");
|
|
var val = jqActiveInput.val();
|
|
if(jqLi.hasClass("dec_2")){
|
|
val = parseFloat(val.replace(',', '.'));
|
|
val = (!isNaN(val) ? CBase.formatNumber(val,2,".","") : 0);
|
|
}
|
|
if(jqLi.hasClass("dec_3")){
|
|
val = parseFloat(val.replace(',', '.'));
|
|
val = (!isNaN(val) ? CBase.formatNumber(val,3,".","") : 0);
|
|
}
|
|
|
|
var id = jqLi.closest(".dataBox").attr("id");
|
|
// _this.iActiveRowId = id ? id.substr(1) : 0;
|
|
|
|
if(id === "table"){
|
|
var i = (jqLi.parent().attr("id").substr(1)) - 1;
|
|
_this.oData['table'][i][_this.sActiveElementClass] = val;
|
|
_this.fillData(true, jqLi, val);
|
|
|
|
// Recalc sum if p_price_sum changed
|
|
if(_this.sActiveElementClass == "p_price_vat"){
|
|
_this.oData['table'][i]["p_price"] = CBase.formatNumber(val / (1 + _this.iPvn / 100),3,".","");
|
|
jqLi.closest("ul").find("span.p_price").html(_this.oData['table'][i]["p_price"]);
|
|
}
|
|
|
|
_this.recalculateTable(jqLi.closest("ul"));
|
|
}else{
|
|
_this.oData['data'][_this.sActiveElementClass] = val;
|
|
_this.fillData(true, jqLi, val);
|
|
}
|
|
|
|
// Send error check on action
|
|
CBase.oForm.validator.checkThis(jqActiveInput);
|
|
|
|
// If its date picker, update the second field else we remove input
|
|
if(jqActiveInput.hasClass("date"))
|
|
jqActiveInput.parent().find("span").html(val);
|
|
else
|
|
jqActiveInput.remove();
|
|
|
|
|
|
// Remove class active and show span
|
|
jqLi.removeClass("active");
|
|
|
|
};
|
|
|
|
oFieldBinds.prototype.recalculateRowNr = function(jqProdTable){
|
|
var _this = this;
|
|
|
|
// Recalculate the row nr.
|
|
var i = 1;
|
|
jqProdTable.find("ul:not(.clone, .lHeader)").each(function(){
|
|
var rowId = parseInt($(this).attr("id").substr(1))-1;
|
|
_this.oData.table[rowId].row_nr = i;
|
|
$(this).find("li span.nr").html((i + "."));
|
|
i++;
|
|
});
|
|
};
|
|
|
|
return oFieldBinds;
|
|
})();
|
|
|
|
|
|
CmsOrders = (function() {
|
|
|
|
function CmsOrders(){
|
|
var _this = this;
|
|
|
|
_this.oTable = new CTable("data");
|
|
_this.oTable.loadTableData();
|
|
}
|
|
CmsOrders.prototype.oModFieldBinds = {};
|
|
CmsOrders.prototype.bNewClone = false;
|
|
|
|
|
|
// Rewrite CTable object callback
|
|
CTable.prototype.tableObjectCallback = function(oTable){
|
|
var _this = this;
|
|
|
|
oTable.find("a#icloneBlank").click(function(){
|
|
CBase.jsModule.bNewClone = true;
|
|
CBase.message.hide(true, false);
|
|
_this.loadRecord(false, $(".dxr:not(.head) div.chked:first").closest("ul").find("#ledit").attr("href"));
|
|
});
|
|
};
|
|
|
|
// Ajax load cfg object
|
|
CBlank.prototype.getAjaxData = function(){
|
|
var d = {
|
|
action : "selfLoad"
|
|
};
|
|
|
|
if(CBase.jsModule.bNewClone){
|
|
d["action"] = "cloneBlank";
|
|
CBase.jsModule.bNewClone = false;
|
|
}
|
|
|
|
return d;
|
|
};
|
|
|
|
// Rewrite CBase form callback
|
|
CBlank.prototype.viewCallback = function(obj){
|
|
var _this = this;
|
|
|
|
obj.find(".settings").click(function(){
|
|
if($(this).hasClass("load"))
|
|
CBase.jsModule.loadSubcontent(_this, $(this));
|
|
else
|
|
CBase.jsModule.showHideSubcontent(this);
|
|
});
|
|
|
|
this.oBtnPan.find("#fcancel").click(function(){
|
|
CBase.message.hide();
|
|
if(_this.isModiffied){
|
|
CBase.oTable.filterTableData(false);
|
|
}else{
|
|
CBase.oTable.show();
|
|
}
|
|
});
|
|
|
|
this.oBtnPan.find("#fsave, #fsend").click(function(){
|
|
_this.saveBlankView(($(this).attr("id") === "fsend" ? {send : 1} : {}));
|
|
});
|
|
|
|
this.bindBlankActions(obj);
|
|
};
|
|
CBlank.prototype.viewCallbackAfterAppend = function(jqObj, d){
|
|
var _this = this;
|
|
|
|
_this.oBtnPan.find("#exportExcel, #exportPdf").click(function(e){
|
|
var el = $(this);
|
|
CBase.message.disableNextMsg = true;
|
|
if(!el.hasClass("sv")){
|
|
e.preventDefault(true, true);
|
|
_this.saveBlankView({genFile : el.attr("id")}, function(d){
|
|
if(d.jsonok || d.locked){
|
|
el.addClass("sv");
|
|
el.click();
|
|
}
|
|
});
|
|
}else{
|
|
el.removeClass("sv");
|
|
window.location = el.attr("href");
|
|
}
|
|
});
|
|
|
|
// If form is locked show overlay over the form;
|
|
if(d['form_locked'] === '1')
|
|
jqObj.find("div#send_overlay").show();
|
|
|
|
CBase.jsModule.oModFieldBinds = new oFieldBinds(jqObj, d['data']);
|
|
jqObj.find("input.date").datepicker({
|
|
dateFormat: 'dd.mm.yy',
|
|
// dateFormat: 'yy. d. MM',
|
|
changeMonth: true,
|
|
changeYear: true,
|
|
onClose: function () {
|
|
CBase.jsModule.oModFieldBinds.inputBinds($(this).closest("li"));
|
|
}
|
|
});
|
|
|
|
var jqProdTable = jqObj.find("#table");
|
|
jqProdTable.sortable({
|
|
//axis: "y",
|
|
handle: "li.w5 span",
|
|
items: "ul.body",
|
|
helper: "clone",
|
|
stop: function() {
|
|
CBase.jsModule.oModFieldBinds.reformatRowsAndCols();
|
|
CBase.jsModule.oModFieldBinds.recalculateRowNr(jqProdTable);
|
|
}
|
|
});
|
|
|
|
};
|
|
CBlank.prototype.addAdditionalSaveData = function(){
|
|
|
|
return CBase.jsModule.oModFieldBinds.oData;
|
|
|
|
};
|
|
|
|
CBlank.prototype.saveBlankViewCallback = function(d){
|
|
|
|
var jqProdTable = $("div#table");
|
|
jqProdTable.find("ul").removeClass("c-error");
|
|
|
|
if(d && d['jsonok']){
|
|
if(d['send']){
|
|
$("div#send_overlay").show();
|
|
$("#fsave, #fsend").fadeOut("fast");
|
|
}
|
|
// If we get new Nr then update or nr span;
|
|
if(d['newNr']){
|
|
$("span.o_nr").html(d['newNr']);
|
|
CBase.jsModule.oModFieldBinds.oData.data.o_nr = d['newNr'];
|
|
}
|
|
}else{
|
|
if(d && d.availableProdErr){
|
|
$.each(CBase.jsModule.oModFieldBinds.oData.table, function(tableRow, dd){
|
|
if(dd && dd.p_id != 0 && dd.rid != 0){
|
|
if(d.availableProdErr[dd.p_id] && d.availableProdErr[dd.p_id][dd.rid]){
|
|
var iRowId = parseInt(tableRow) + 1;
|
|
jqProdTable.find("ul#r" + iRowId).addClass("c-error");
|
|
jqProdTable.find("ul#r" + iRowId).find("span.p_count").attr("title", d.availableProdErr[dd.p_id][dd.rid]);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
CmsOrders.prototype.showHideSubcontent = function(_this, show){
|
|
var oCnt = $(_this).parent().next();
|
|
var noskip = oCnt.hasClass("noskip") ? true : false;
|
|
|
|
var hide = oCnt.is(":visible");
|
|
if($.isDefined(show))
|
|
hide = !show;
|
|
|
|
if(hide){
|
|
$(_this).addClass("show").removeClass("hide");
|
|
oCnt.stop(true, true).fadeOut("fast", function(){
|
|
CBase.resizeLeftMenu(true);
|
|
if(!noskip)
|
|
oCnt.find("input, textarea").addClass("skip");
|
|
});
|
|
}else{
|
|
$(_this).addClass("hide").removeClass("show");
|
|
oCnt.stop(true, true).fadeIn("fast", function(){
|
|
CBase.resizeLeftMenu(true);
|
|
if(!noskip)
|
|
oCnt.find("input, textarea").removeClass("skip");
|
|
});
|
|
}
|
|
};
|
|
// Function to load subcontent
|
|
CmsOrders.prototype.loadSubcontent = function(_this, obj){
|
|
var _this = this;
|
|
if(obj.hasClass("load")){
|
|
CBase.ajax({ action : obj.attr("id")}, _this.url, function(d){
|
|
obj.removeClass("load");
|
|
if(d && $.isDefined(d.html)){
|
|
|
|
var html = $(d.html);
|
|
obj.parent().next().find("div.clear").before(html);
|
|
CBase.checkboxes.bindBaseCheckboxes(html);
|
|
//cmsItems.bindSelectorControls(html.parent());
|
|
}
|
|
_this.showHideSubcontent(obj);
|
|
});
|
|
}else{
|
|
_this.showHideSubcontent(obj);
|
|
}
|
|
};
|
|
|
|
return CmsOrders;
|
|
})();
|
|
|
|
}).call(this);
|