js tools(2)

 

/**

 * 

 * @param divId

 *            one container

 * @param info

 *            operation result message to show in the up DIV, such as: "Add

 *            Successfully!"

 * @param isSuccess

 *            one sign whether operate successfully.Just two values:true or

 *            false.true means success.

 * @returns undefined

 */

function showOperationResultInfo(divId,info,isSuccess){

$("#"+divId).removeAttr("style");

if(isSuccess){

$("#"+divId).attr("style","color:green");

}else{

$("#"+divId).attr("style","color:red");

}

$("#"+divId).empty();

$("#"+divId).html(info);

}

 

/**

 * @param url

 *            format must be xxx.action?eventName=

 * @param params

 *            format must consist of "key=value",such as deleteId=10

 * @param doDeleteCallback

 *            do works after servers response

 * @param validateFun

 *            do validation before submitting deletion request

 * @param deleteNoteMess

 *            popup warning information. if not passing,to use default value

 * @returns {Boolean} whether this function operates successfully or not

 

 * 

 * How to use: commonDeleteEntireObjectFun(URL.deleteInstance,"id=3",deleteCallback,deleteValidationFun);

 * function deleteCallback(data){

var flag = isSuccessRetun(data);

if(flag){

location.href=URL.loadInstanceListPage;

}else{

toShowResponseResMessWithoutParsingData("operationTipMess","operationTipMess_error",data);

}

}

 * 

 * function deleteValidationFun(params)

{

return commonValidateFun(URL.validateInstanceUsed,params);

}

 * 

 *

 */

function commonDeleteEntireObjectFun(url,params,doDeleteCallback,validateFun,deleteNoteMess){

var flag = false;

if(validateFun&&$.isFunction(validateFun)){

flag = validateFun(params);

if(flag=="true"){

alert("The record is still referenced and cannot be deleted.");

return false;

}

}

if(!validateFun||flag){

var confirmObj="";

if(deleteNoteMess){

confirmObj = confirm(deleteNoteMess);

}else{

confirmObj = confirm(Messages.deleteConfirmMess);

}

if(confirmObj){ 

$.post(url+"&"+params,function(data){

doDeleteCallback(data);

});

return false;

}else {

return false;

}

}

return false;

}

 

// to show servers' response messages in the current page

function toShowResponseResMessWithoutParsingData(divId,className,data){

$("#"+divId).empty();

$("#"+divId).html(data);

$("#"+divId).attr("class",className);

}

 

// whether servers respone successfully or not

function isSuccessRetun(data){

if(!data.startWith("error")){

return true;

} else{

return false;

}

}

 

/**

 * Description: simple function to set data given to hidden area

 * 

 * @param hiddenId

 *            html id of hidden area

 * @param data

 *            value to be set,format:json,such as,{"objectId":"100"}

 * @param jsonKey

 *            json key

 */

function setSingleHiddenAreaValue(hiddenId,data,jsonKey){

if(data!=undefined&&data!=null&&""!=$.trim(data)){

var value = $.parseJSON(data);

$("#"+hiddenId).empty();

$("#"+hiddenId).val(value[jsonKey]);

}

}

 

/**

 * * Description: simple function to send ajax reqeuest

 * 

 * @param url

 *            reqeust address,format:xxxx.action,such as ContactGroupForm.action

 * @param params

 *            request params,format:json.such as,{name:"Keifer",dept:"dev"}

 * @param callback

 *            do work after response successfully

 * @returns json data if callback exists,data handled by it. Or return orignal

 *          data responed

 */

function commonPreAction(url,params,callback){

var returnValue="";

$.ajaxSetup({

cache:false,

async:false

});

$.post(url,params,function(data){

if(callback&&$.isFunction(callback)){

if(callback&&$.isFunction(callback)){

callback(data);

}

}

returnValue=data;

});

return returnValue;

}

 

 

/**

 * Description: simple common function to send ajax reqeuest

 * 

 * @param url

 *            reqeust address,format:xxxx.action?eventName=,such as

 *            ContactGroupForm.action?validateRecordUsed=

 * @param params

 *            request params,format:string.such as,'name="Keifer"&dept="dev"'

 * @param callback

 *            do work after response successfully

 * @returns json data if callback exists,data handled by it. Or return orignal

 *          data responed

 */

function simpleCommonSubmitAction(url,params,callback){

var returnValue="";

$.ajaxSetup({

cache:false,

async:false

});

$.post(url+"&"+params,function(data){

if(callback&&$.isFunction(callback)){

if(callback&&$.isFunction(callback)){

callback(data);

}

}

returnValue=data;

});

return returnValue;

}

 

/**

 * Description: simple common function to send ajax reqeuest for validation

 * 

 * @param url

 *            reqeust address,format:xxxx.action?eventName=,such as

 *            ContactGroupForm.action?validateRecordUsed=

 * @param params

 *            request params,format:string.such as,'name="Keifer"&dept:"dev"'

 * @returns json data return orignal data responed

 */

function commonValidateFun(url,params){

var returnValue="";

$.ajaxSetup({

cache:false,

async:false

});

$.post(url+"&"+params,function(data){

returnValue=data;

});

return returnValue;

}

 

/**

 * Description: simple function to show single hidden element

 * 

 * @param elementId

 *            id of element to show

 * @param specifiedStyle

 *            specified style to show

 * @returns undefined

 */

function showHtmlElement(elementId,specifiedStyle){

$("#"+elementId).removeAttr("style");

$("#"+elementId).attr("style",specifiedStyle);

}

 

/**

 * Description: simple function to hide single element

 * 

 * @param elementId

 *            id of element to show

 * @returns undefined

 */

function hideHtmlElement(elementId){

$("#"+elementId).attr("style","display:none");

}

 

 

/**

 * Description: simple function to set value from select element to hidden area

 * 

 * @param inputId

 *            id of hidden input

 * @param selectId

 *            id of select id

 * @param sperator

 *            sperator between one value and another,such as 11-12

 * @returns undefined

 */

function simpleSetHiddenValueFromSelectElement(inputId,selectId,sperator)

{

var hiddenValueStr = "";

$.each($("#"+selectId+" option"),function(){

var value = $(this).val();

if(value){

hiddenValueStr += value+sperator;

}

});

$("#"+inputId).val(hiddenValueStr);

}

 

/**

 * Description: simple function to move one option of select element to another

 * select element

 * 

 * @param selectOneId

 *            id of select one

 * @param selectTwoId

 *            id of select two

 * @param actionNames

 *            action name,such as move,delete,append

 * @param selectOneButtonIds

 *            one array to store up element ids as the same direction

 * @param selectTwoButtonIds

 *            one array to store up element ids as the same direction

 * @returns {Boolean} if occurring error,to return false

 *

 * How to use:simpleCommonMouseClickFun("selectionLeftId", "selectionRightId", ['move'],['selection_RightMoveleft', 'selection_AllRightMoveleft' ], ['selection_LeftMoveRight', 'selection_AllLeftMoveRight' ],true,"----","skillLevelOnPIC");

 * or simpleCommonMouseClickFun('selectionLeftId', 'selectionRightId', ['move'],['selection_RightMoveleft', 'selection_AllRightMoveleft' ], ['selection_LeftMoveRight', 'selection_AllLeftMoveRight' ]);

 *

 */

function simpleCommonMouseClickFun(selectOneId, selectTwoId, actionNames,

selectOneButtonIds, selectTwoButtonIds,isWithSkillLevel,separator,inputId) {

if(actionNames.length==1){

actionName = actionNames[0];

}else{

moveActionName = actionNames[0];

deleteActionName = actionNames[1];

}

$("#" + selectOneId).dblclick(function() {

if(isWithSkillLevel){

var isNumber_=OptionWithSkillLevel.removeSkilLevel(selectOneId, false, separator);

if(!isNumber_) return false;

}

$.listTolist(selectOneId, selectTwoId, actionName, false);

commonSortSelect(selectTwoId,true,"ASC");

return true;

});

$("#" + selectTwoId).dblclick(function() {

if(isWithSkillLevel){

var isNumber_=OptionWithSkillLevel.addSkilLevel(selectTwoId, false, separator, inputId);

if(!isNumber_) return false;

}

$.listTolist(selectTwoId, selectOneId, actionName, false);

commonSortSelect(selectOneId,true,"ASC");

return true;

});

if (selectOneButtonIds instanceof Array || selectOneButtonIds

&& typeof selectOneButtonIds == 'object'

&& 'length' in selectOneButtonIds) {

$.each(selectOneButtonIds, function(index, item) {

$("#" + item).bind("click",function() {

if (index < 1) {

if(isWithSkillLevel){

var isNumber_=OptionWithSkillLevel.addSkilLevel(selectTwoId, false, separator, inputId);

if(!isNumber_) return false;

}

$.listTolist(selectTwoId, selectOneId,actionName, false);

commonSortSelect(selectOneId,true,"ASC");

return true;

} else {

if(isWithSkillLevel){

var isNumber_= OptionWithSkillLevel.addSkilLevel(selectTwoId, true, separator, inputId);

if(!isNumber_) return false;

}

$.listTolist(selectTwoId, selectOneId,actionName, true);

commonSortSelect(selectOneId,true,"ASC");

return true;

}

});

});

$.each(selectTwoButtonIds, function(index, item) {

$("#" + item).bind("click",function() {

if (index < 1) {

if(isWithSkillLevel){

var isNumber_= OptionWithSkillLevel.removeSkilLevel(selectOneId, false, separator);

if(!isNumber_) return false;

}

$.listTolist(selectOneId, selectTwoId,actionName, false);

commonSortSelect(selectTwoId,true,"ASC");

return true;

} else {

if(isWithSkillLevel){

var isNumber_=OptionWithSkillLevel.removeSkilLevel(selectOneId, true,separator);

if(!isNumber_) return false;

}

$.listTolist(selectOneId, selectTwoId,actionName, true);

commonSortSelect(selectTwoId,true,"ASC");

return true;

}

});

});

} else {

alert('Parameter error!');

return false;

}

}

 

 

var OptionWithSkillLevel={

validateSkillLevelNumber:function(inputId){

var skillLevel = $("#"+inputId).val();

if(skillLevel){

var inputValue =  checkIsPositiveInteger(skillLevel);

if(!inputValue){

alert(Messages.numberrequired);

return false;

}

}

return true;

},

validateSkillLevelNull:function(inputId){

var skillLevel = $("#"+inputId).val();

if($.trim(skillLevel)==""){

return false;

}

return true;

},

addSkilLevel:function(selectId,isAll,separator,inputId){

var options ;

if(isAll){

options = $("#"+selectId+" option");

}else{

options = $("#"+selectId+" option:selected");

}

var skillLevelNull = OptionWithSkillLevel.validateSkillLevelNull(inputId);

if(!skillLevelNull){

alert("Skill Level"+Messages.unnull);

return false;

}else if(OptionWithSkillLevel.validateSkillLevelNumber(inputId)){

var skillLevel = $("#"+inputId).val();

$.each(options,function(){

var textField = $(this).text();

$(this).text(textField+separator+skillLevel);

});

return true;

}else{

return false;

}

},

removeSkilLevel:function(selectId,isAll,separator){

var options ;

if(isAll){

options = $("#"+selectId+" option");

}else{

options = $("#"+selectId+" option:selected");

}

var flag = true;

$.each(options,function(){

var textField = $(this).text();

var skillLevel = textField.split(separator)[1];

var subsystem =  textField.split(separator)[0];

if(skillLevel){

var inputValue =  checkIsPositiveInteger(skillLevel);

if(!inputValue){

alert(Messages.numberrequired);

flag=false;

return;

}else{

if(subsystem){

$(this).text(subsystem);

}

}

}

});

return flag;

}

};

 

function simpleCommonCreateSelect(data,textfieldKey,valuefiledKey,selectId){

$("#"+selectId).empty();

// var result = eval(data);

var result = data;

$.each(result,function(index,item){

$("#"+selectId).AddOption(item[textfieldKey],item[valuefiledKey],false,index); 

});

}

 

/**

 * DESC:Append option element to the selection 

 * @param text   text on show in the selection 

 * @param value   value on show in the attribute "value" of option

 * @param selected  whether selected current option,two values:true,false

 * @param index  add option to special index

 * Such as <option value='value'>text</option>

 */

jQuery.fn.AddOption = function(text, value, selected, index) {

option = new Option(text, value);

this[0].options.add(option, index);

this[0].options[index].selected = selected;

};

 

/**

 * @param url

 * @param selectOneId

 * @param selectTwoId

 *            {selectId:"selGroupId",inputId:"groupId"}

 * @param params

 *            {datatype:"json",textfield:"group",valuefiled:"id",parameter:"contactParams.detailId"}

 * @param callback

 *            one function without params that is usesd to do final something

 */

  function simpleCommonCascade(url,selectOneId,selectTwoId,params,callback){

 $("#"+selectOneId).bind("change",function(){

 try{

 var text  =$("#"+selectOneId+" option:selected")[0].value;

 if(text==""||"Create"==text){

 $("#"+selectTwoId.selectId).empty();

 $("#"+selectTwoId.inputId).val("");

 return false;

 }

 }catch(e){}

var data = simpleCommonSubmitAction(url,params.parameter+"="+$("#"+selectOneId+" option:selected").val());

$("#"+selectTwoId.selectId).empty();

var result = eval(data);

if(result.length>1){

var groupId = $("#"+selectOneId+" option:selected")[0].alt;

$.each(result,function(index,item){

$("#"+selectTwoId.selectId).AddOption(item[params.textfield],item[params.valuefiled],false,index); 

if(item[params.valuefiled]==groupId){

$("#"+selectTwoId.selectId)[0].selectedIndex=index;

}

});

}else if(result.length==1){

$("#"+selectTwoId.selectId).AddOption(result[0][params.textfield],result[0][params.valuefiled],true,0);

}

$("#"+selectTwoId.inputId).val($("#"+selectTwoId.selectId+" option:selected").text());

callback();

 });

}

 

  /**

* @param selectId

*            select element id that needs to sort.

* @param sOrder

*            if to sort. true means by sort

* @param sortType

*            format:String. Just two values:"ASC","DESC"

 *

 * How to use : commonSortSelect("selectionId",true,"ASC");

*/

   function commonSortSelect(selectId,sOrder,sortType){

 function addOption(object, object2) { 

           each(object2, function(o, index) { 

               object.options[index] = o; 

           }); 

       } 

       function sortlist(sortName,isDesc,sortType) { 

           var what = document.getElementById(sortName); 

           this._options = map(what.options, function(o) { 

               return o; 

           }); 

           this._options.sort(

            function(a, b) { 

            if(sortType=="DESC"){

                   if (a.text > b.text) { 

                       return isDesc == true ? 1 : -1; 

                   } else { 

                       return isDesc == true ? -1 : 1; 

                   } 

            }else if(sortType=="ASC"){

                   if (a.text > b.text) { 

                       return isDesc == true ? -1 : 1; 

                   } else { 

                       return isDesc == true ? 1 : -1; 

                   } 

               }

           }

           ); 

           what.options.length = 0;// clear current options

           addOption(what, this._options); 

       } 

       function map(object, callback, thisp) { 

           var ret = []; 

           each.call(thisp, object, function() { 

               ret.push(callback.apply(thisp, arguments)); 

           }); 

           return ret; 

       } 

       function each(object, callback) { 

           if (undefined === object.length) { 

               for ( var name in object) { 

                   if (false === callback(object[name], name, object)) 

                       break; 

               } 

           } else { 

               for ( var i = 0, len = object.length; i < len; i++) { 

                   if (i in object) { 

                       if (false === callback(object[i], i, object)) 

                           break; 

                   } 

               } 

           } 

       } 

       function sort(){    

           if(sOrder){ 

               sOrder = false; 

           }else{ 

               sOrder = true; 

           } 

           sortlist(selectId,sOrder,sortType); 

       } 

       sort();

  }

 

   function simpleManuallyAssembleSelect(data,selectId,valueKey,textKey,isAlt,altKey){

   var optionHtml ="";

   if(isAlt){

    if(!altKey){

    alert("Parameter error!");

    return false;

    }

    if(data&&data.length>1){

    optionHtml = "<option value='' alt=''></option>";

    }

    if(data){

    $.each(data,function(index,item){

    optionHtml +="<option value="+item[valueKey]+" alt="+item[altKey]+">"+item[textKey]+"</option>";

    });

    }

   }else{

    if(data&&data.length>1){

    optionHtml = "<option value=''></option>";

    }

    if(data){

    $.each(data,function(index,item){

    optionHtml +="<option value="+item[valueKey]+">"+item[textKey]+"</option>";

    });

    }

   }

$("#"+selectId).empty();

$(optionHtml).appendTo($("#"+selectId));

   }

 

   function simpleManuallyAssembleSelect3(data,selectId,valueKey,textKey){

   var optionHtml ="";

   if(data){

   $.each(data,function(index,item){

    optionHtml +="<option value="+item[valueKey]+">"+item[textKey]+"</option>";

   });

   }

$("#"+selectId).empty();

$(optionHtml).appendTo($("#"+selectId));

  }

 

   function simpleManuallyAssembleSelect2(data,selectId,valueKey,textKey,objectKey,isAlt,altKey){

   var optionHtml ="";

   if(isAlt){

    if(!altKey){

    alert("Parameter error!");

    return false;

    }

    if(data&&data.length>1){

    optionHtml = "<option value='' alt=''></option>";

    }

    if(data){

    $.each(data,function(index,item){

    optionHtml +="<option value="+item[objectKey][valueKey]+" alt="+item[altKey]+">"+item[objectKey][textKey]+"</option>";

    });

    }

   }else{

    if(data&&data.length>1){

    optionHtml = "<option value=''></option>";

    }

    if(data){

    $.each(data,function(index,item){

    optionHtml +="<option value="+item[objectKey][valueKey]+">"+item[objectKey][textKey]+"</option>";

    });

    }

   }

$("#"+selectId).empty();

$(optionHtml).appendTo($("#"+selectId));

  }

 

   /**

    *  DESC:add tip for selection

    *  how to use : selectionShowTipFun.addSelectionTip("demoId");

    */

   var selectionShowTipFun = {

  showSelectionTip:function(e,selectId){

  var Tip = document.getElementById("Tip");

if (Tip == null || Tip == 'undefined')

Tip = document.createElement("div");

 

var target = e.srcElement ? e.srcElement : e.target;

var scrollT = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;

Tip.innerHTML = $("#"+selectId+" option:selected").text();

Tip.setAttribute("id", "Tip");

Tip.style.display = "block";

Tip.style.backgroundColor = "#FFFFCC";

Tip.style.width = 250;

Tip.style.height = 15;

Tip.style.left = (parseInt(e.clientX)  + 10 ) +  "px";

Tip.style.top = (parseInt(e.clientY) + parseInt(scrollT) + 3) + "px";

Tip.style.position = "absolute";

document.body.appendChild(Tip);

  },

  closeSelectionTip:function(){

  var Tip = document.getElementById("Tip");

  Tip.style.display = "none";

  },

  addSelectionTip:function(selectId){

  var selectItem = $("#"+selectId);

  var showText = $.trim($("#"+selectId+" option:selected").val());

  // add event handlers in order that selection light up

if(showText){

selectItem.hover(function() {

selectionShowTipFun.showSelectionTip(event,selectId);

},function() {

selectionShowTipFun.closeSelectionTip();

});

}

  }

   };

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值