ElixirVault/www/system-brs-core/cms/cmsCountToClass/js/cmsCountToClass.js

97 lines
3.0 KiB
JavaScript

var CmsCountToClass = (function() {
function CmsCountToClass(){
var _this = this;
_this.oTable = new CTable("data");
_this.oTable.loadTableData();
}
CmsCountToClass.prototype.oValidator = {};
CTable.prototype.tableShowCallback = function(jqObj){
if(!CBase.jsModule.oValidator.length)
CBase.jsModule.oValidator = new Validator(CBase.dt.vcfg);
var jqCloneFrom = $("<div class='validate' style='display: none;'><input type='text' data-validator='count'/></div>");
jqObj.find("li.editable").click(function(){
if(!$(this).hasClass("active")){
$(this).addClass("active");
var jqDiv = $(this).find("> div"),
sField = jqDiv.attr("class"),
sVal = jqDiv.html().trim();
jqDiv.html('');
if(sField.length){
var jqClone = jqCloneFrom.clone(),
jqCloneInput = jqClone.find("> input");
jqCloneInput.attr({id : sField, name : sField});
jqDiv.append(jqClone.show());
jqCloneInput.focus();
jqCloneInput.val(sVal);
jqCloneInput.blur(function(){
CBase.jsModule.bindFieldActions($(this), sVal);
}).keyup(function (e) {
var iKeyCode = (e.keyCode ? e.keyCode : e.which);
if(iKeyCode == CBase.iKeys.ENTER || iKeyCode == CBase.iKeys.ESC)
CBase.jsModule.bindFieldActions($(this), sVal);
});
}
}
});
};
CmsCountToClass.prototype.bindFieldActions = function(jqObj, sOldVal){
var _this = this;
var jqLi = jqObj.closest("li"),
jqDiv = jqLi.find("> div"),
id = jqObj.closest("ul").attr("id"),
sVal = jqObj.val(),
oData = {};
oData[jqObj.attr("id")] = sVal;
if(sVal.length && sVal != sOldVal){
if(_this.oValidator.checkThis(jqObj)){
CBase.oTable.sendAjaxActionAdvanced({ action: "selfSave", id : id, field : oData }, function(d){
var sClass = (d && d.jsonok ? "saved" : "error");
var jqUl = jqLi.parent();
jqUl.addClass(sClass);
setTimeout( function() {
jqUl.addClass("row-effect-transition").removeClass(sClass);
setTimeout( function() {
jqUl.removeClass("row-effect-transition");
}, 400);
}, 300);
});
}else{
jqLi.find("div.validate").addClass("v-error");
return false;
}
}else
sVal = sOldVal;
jqLi.removeClass("active");
jqLi.find("div.validate").remove();
jqDiv.html(sVal);
};
return CmsCountToClass;
})();