Moved all the vendor css & js code into webroot. Although it technically was working fine, cake apparently steps on the fact that the file doesn't change between requests, leading the browser to re-download the code with every hit. Under the webroot directory, cake returns code 304 if the browser already has a copy cached.
git-svn-id: file:///svn-source/pmgr/branches/ledger_transactions_20090605/site@110 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
194
webroot/js/jqGrid/js/grid.inlinedit.js
Normal file
194
webroot/js/jqGrid/js/grid.inlinedit.js
Normal file
@@ -0,0 +1,194 @@
|
||||
;(function($){
|
||||
/**
|
||||
* jqGrid extension for manipulating Grid Data
|
||||
* Tony Tomov tony@trirand.com
|
||||
* http://trirand.com/blog/
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
**/
|
||||
$.fn.extend({
|
||||
//Editing
|
||||
editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftersavefunc,errorfunc) {
|
||||
return this.each(function(){
|
||||
var $t = this, nm, tmp, editable, cnt=0, focus=null, svr=[], ind;
|
||||
if (!$t.grid ) { return; }
|
||||
var sz, ml,hc;
|
||||
if( !$t.p.multiselect ) {
|
||||
ind = $($t).getInd($t.rows,rowid);
|
||||
if( ind === false ) {return;}
|
||||
editable = $($t.rows[ind]).attr("editable") || "0";
|
||||
if (editable == "0") {
|
||||
$('td',$t.rows[ind]).each( function(i) {
|
||||
nm = $t.p.colModel[i].name;
|
||||
hc = $t.p.colModel[i].hidden===true ? true : false;
|
||||
try {
|
||||
tmp = $.unformat(this,{colModel:$t.p.colModel[i]},i);
|
||||
} catch (_) {
|
||||
tmp = $(this).html();
|
||||
}
|
||||
svr[nm]=tmp;
|
||||
if ( nm !== 'cb' && nm !== 'subgrid' && $t.p.colModel[i].editable===true && !hc) {
|
||||
if(focus===null) { focus = i; }
|
||||
$(this).html("");
|
||||
var opt = $.extend($t.p.colModel[i].editoptions || {} ,{id:rowid+"_"+nm,name:nm});
|
||||
if(!$t.p.colModel[i].edittype) { $t.p.colModel[i].edittype = "text"; }
|
||||
var elc = createEl($t.p.colModel[i].edittype,opt,tmp,$(this));
|
||||
$(elc).addClass("editable");
|
||||
$(this).append(elc);
|
||||
//Agin IE
|
||||
if($t.p.colModel[i].edittype == "select" && $t.p.colModel[i].editoptions.multiple===true && $.browser.msie) {
|
||||
$(elc).width($(elc).width());
|
||||
}
|
||||
cnt++;
|
||||
}
|
||||
});
|
||||
if(cnt > 0) {
|
||||
svr['id'] = rowid; $t.p.savedRow.push(svr);
|
||||
$($t.rows[ind]).attr("editable","1");
|
||||
$("td:eq("+focus+") input",$t.rows[ind]).focus();
|
||||
if(keys===true) {
|
||||
$($t.rows[ind]).bind("keydown",function(e) {
|
||||
if (e.keyCode === 27) { $($t).restoreRow(rowid);}
|
||||
if (e.keyCode === 13) {
|
||||
$($t).saveRow(rowid,succesfunc, url, extraparam, aftersavefunc,errorfunc);
|
||||
return false;
|
||||
}
|
||||
e.stopPropagation();
|
||||
});
|
||||
}
|
||||
if( $.isFunction(oneditfunc)) { oneditfunc(rowid); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
saveRow : function(rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc) {
|
||||
return this.each(function(){
|
||||
var $t = this, nm, tmp={}, tmp2={}, editable, fr, cv, ms, ind;
|
||||
if (!$t.grid ) { return; }
|
||||
ind = $($t).getInd($t.rows,rowid);
|
||||
if(ind === false) {return;}
|
||||
editable = $($t.rows[ind]).attr("editable");
|
||||
url = url ? url : $t.p.editurl;
|
||||
if (editable==="1" && url) {
|
||||
$("td",$t.rows[ind]).each(function(i) {
|
||||
nm = $t.p.colModel[i].name;
|
||||
if ( nm !== 'cb' && nm !== 'subgrid' && $t.p.colModel[i].editable===true) {
|
||||
if( $t.p.colModel[i].hidden===true) { tmp[nm] = $(this).html(); }
|
||||
else {
|
||||
switch ($t.p.colModel[i].edittype) {
|
||||
case "checkbox":
|
||||
var cbv = ["Yes","No"];
|
||||
if($t.p.colModel[i].editoptions ) {
|
||||
cbv = $t.p.colModel[i].editoptions.value.split(":");
|
||||
}
|
||||
tmp[nm]= $("input",this).attr("checked") ? cbv[0] : cbv[1];
|
||||
break;
|
||||
case 'text':
|
||||
case 'password':
|
||||
case 'textarea':
|
||||
tmp[nm]= !$t.p.autoencode ? $("input, textarea",this).val() : htmlEncode($("input, textarea",this).val());
|
||||
break;
|
||||
case 'select':
|
||||
if(!$t.p.colModel[i].editoptions.multiple) {
|
||||
tmp[nm] = $("select>option:selected",this).val();
|
||||
tmp2[nm] = $("select>option:selected", this).text();
|
||||
} else {
|
||||
var sel = $("select",this);
|
||||
tmp[nm] = $(sel).val();
|
||||
var selectedText = [];
|
||||
$("select > option:selected",this).each(
|
||||
function(i,selected){
|
||||
selectedText[i] = $(selected).text();
|
||||
}
|
||||
);
|
||||
tmp2[nm] = selectedText.join(",");
|
||||
}
|
||||
break;
|
||||
}
|
||||
cv = checkValues(tmp[nm],i,$t);
|
||||
if(cv[0] === false) {
|
||||
cv[1] = tmp[nm] + " " + cv[1];
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (cv[0] === false){
|
||||
try {
|
||||
info_dialog($.jgrid.errors.errcap,cv[1],$.jgrid.edit.bClose, $t.p.imgpath);
|
||||
} catch (e) {
|
||||
alert(cv[1]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(tmp) { tmp["id"] = rowid; if(extraparam) { tmp = $.extend({},tmp,extraparam);} }
|
||||
if(!$t.grid.hDiv.loading) {
|
||||
$t.grid.hDiv.loading = true;
|
||||
$("div.loading",$t.grid.hDiv).fadeIn("fast");
|
||||
if (url == 'clientArray') {
|
||||
tmp = $.extend({},tmp, tmp2);
|
||||
$($t).setRowData(rowid,tmp);
|
||||
$($t.rows[ind]).attr("editable","0");
|
||||
for( var k=0;k<$t.p.savedRow.length;k++) {
|
||||
if( $t.p.savedRow[k].id===rowid) {fr = k; break;}
|
||||
}
|
||||
if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
|
||||
if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,res.responseText); }
|
||||
} else {
|
||||
$.ajax({url:url,
|
||||
data: tmp,
|
||||
type: "POST",
|
||||
complete: function(res,stat){
|
||||
if (stat === "success"){
|
||||
var ret;
|
||||
if( $.isFunction(succesfunc)) { ret = succesfunc(res);}
|
||||
else ret = true;
|
||||
if (ret===true) {
|
||||
tmp = $.extend({},tmp, tmp2);
|
||||
$($t).setRowData(rowid,tmp);
|
||||
$($t.rows[ind]).attr("editable","0");
|
||||
for( var k=0;k<$t.p.savedRow.length;k++) {
|
||||
if( $t.p.savedRow[k].id===rowid) {fr = k; break;}
|
||||
};
|
||||
if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
|
||||
if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,res.responseText); }
|
||||
} else { $($t).restoreRow(rowid); }
|
||||
}
|
||||
},
|
||||
error:function(res,stat){
|
||||
if($.isFunction(errorfunc) ) {
|
||||
errorfunc(res,stat);
|
||||
} else {
|
||||
alert("Error Row: "+rowid+" Result: " +res.status+":"+res.statusText+" Status: "+stat);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
$t.grid.hDiv.loading = false;
|
||||
$("div.loading",$t.grid.hDiv).fadeOut("fast");
|
||||
$($t.rows[ind]).unbind("keydown");
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
restoreRow : function(rowid) {
|
||||
return this.each(function(){
|
||||
var $t= this, nm, fr,ind;
|
||||
if (!$t.grid ) { return; }
|
||||
ind = $($t).getInd($t.rows,rowid);
|
||||
if(ind === false) {return;}
|
||||
for( var k=0;k<$t.p.savedRow.length;k++) {
|
||||
if( $t.p.savedRow[k].id===rowid) {fr = k; break;}
|
||||
}
|
||||
if(fr >= 0) {
|
||||
$($t).setRowData(rowid,$t.p.savedRow[fr]);
|
||||
$($t.rows[ind]).attr("editable","0");
|
||||
$t.p.savedRow.splice(fr,1);
|
||||
}
|
||||
});
|
||||
}
|
||||
//end inline edit
|
||||
});
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user