486 lines
18 KiB
JavaScript
486 lines
18 KiB
JavaScript
/*
|
|
**
|
|
* formatter for values but most of the values if for jqGrid
|
|
* Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion
|
|
* we are trying to keep it as light as possible
|
|
* Joshua Burnett josh@9ci.com
|
|
* http://www.greenbill.com
|
|
*
|
|
* Changes from Tony Tomov tony@trirand.com
|
|
* Dual licensed under the MIT and GPL licenses:
|
|
* http://www.opensource.org/licenses/mit-license.php
|
|
* http://www.gnu.org/licenses/gpl-2.0.html
|
|
*
|
|
**/
|
|
/*jshint eqeqeq:false */
|
|
/*global jQuery, define */
|
|
|
|
(function( factory ) {
|
|
"use strict";
|
|
if ( typeof define === "function" && define.amd ) {
|
|
// AMD. Register as an anonymous module.
|
|
define([
|
|
"jquery",
|
|
"./grid.base"
|
|
], factory );
|
|
} else {
|
|
// Browser globals
|
|
factory( jQuery );
|
|
}
|
|
}(function( $ ) {
|
|
"use strict";
|
|
//module begin
|
|
$.fmatter = {};
|
|
//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
|
|
//example {id:1234,}
|
|
$.extend($.fmatter,{
|
|
isBoolean : function(o) {
|
|
return typeof o === 'boolean';
|
|
},
|
|
isObject : function(o) {
|
|
return (o && (typeof o === 'object' || $.isFunction(o))) || false;
|
|
},
|
|
isString : function(o) {
|
|
return typeof o === 'string';
|
|
},
|
|
isNumber : function(o) {
|
|
return typeof o === 'number' && isFinite(o);
|
|
},
|
|
isValue : function (o) {
|
|
return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));
|
|
},
|
|
isEmpty : function(o) {
|
|
if(!this.isString(o) && this.isValue(o)) {
|
|
return false;
|
|
}
|
|
if (!this.isValue(o)){
|
|
return true;
|
|
}
|
|
o = $.trim(o).replace(/\ \;/ig,'').replace(/\ \;/ig,'');
|
|
return o==="";
|
|
}
|
|
});
|
|
$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
|
|
// build main options before element iteration
|
|
var v=cellval;
|
|
opts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts);
|
|
|
|
try {
|
|
v = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);
|
|
} catch(fe){}
|
|
return v;
|
|
};
|
|
$.fmatter.util = {
|
|
// Taken from YAHOO utils
|
|
NumberFormat : function(nData,opts) {
|
|
if(!$.fmatter.isNumber(nData)) {
|
|
nData *= 1;
|
|
}
|
|
if($.fmatter.isNumber(nData)) {
|
|
var bNegative = (nData < 0);
|
|
var sOutput = String(nData);
|
|
var sDecimalSeparator = opts.decimalSeparator || ".";
|
|
var nDotIndex;
|
|
if($.fmatter.isNumber(opts.decimalPlaces)) {
|
|
// Round to the correct decimal place
|
|
var nDecimalPlaces = opts.decimalPlaces;
|
|
var nDecimal = Math.pow(10, nDecimalPlaces);
|
|
sOutput = String(Math.round(nData*nDecimal)/nDecimal);
|
|
nDotIndex = sOutput.lastIndexOf(".");
|
|
if(nDecimalPlaces > 0) {
|
|
// Add the decimal separator
|
|
if(nDotIndex < 0) {
|
|
sOutput += sDecimalSeparator;
|
|
nDotIndex = sOutput.length-1;
|
|
}
|
|
// Replace the "."
|
|
else if(sDecimalSeparator !== "."){
|
|
sOutput = sOutput.replace(".",sDecimalSeparator);
|
|
}
|
|
// Add missing zeros
|
|
while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
|
|
sOutput += "0";
|
|
}
|
|
}
|
|
}
|
|
if(opts.thousandsSeparator) {
|
|
var sThousandsSeparator = opts.thousandsSeparator;
|
|
nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
|
|
nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
|
|
var sNewOutput = sOutput.substring(nDotIndex);
|
|
var nCount = -1, i;
|
|
for (i=nDotIndex; i>0; i--) {
|
|
nCount++;
|
|
if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
|
|
sNewOutput = sThousandsSeparator + sNewOutput;
|
|
}
|
|
sNewOutput = sOutput.charAt(i-1) + sNewOutput;
|
|
}
|
|
sOutput = sNewOutput;
|
|
}
|
|
// Prepend prefix
|
|
sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
|
|
// Append suffix
|
|
sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
|
|
return sOutput;
|
|
|
|
}
|
|
return nData;
|
|
}
|
|
};
|
|
$.fn.fmatter.defaultFormat = function(cellval, opts) {
|
|
return ($.fmatter.isValue(cellval) && cellval!=="" ) ? cellval : opts.defaultValue || " ";
|
|
};
|
|
$.fn.fmatter.email = function(cellval, opts) {
|
|
if(!$.fmatter.isEmpty(cellval)) {
|
|
return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>";
|
|
}
|
|
return $.fn.fmatter.defaultFormat(cellval,opts );
|
|
};
|
|
$.fn.fmatter.checkbox =function(cval, opts) {
|
|
var op = $.extend({},opts.checkbox), ds;
|
|
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.colModel.formatoptions);
|
|
}
|
|
if(op.disabled===true) {ds = "disabled=\"disabled\"";} else {ds="";}
|
|
if($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}
|
|
cval=String(cval);
|
|
cval=(cval+"").toLowerCase();
|
|
var bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? " checked='checked' " : "";
|
|
return "<input type=\"checkbox\" " + bchk + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>";
|
|
};
|
|
$.fn.fmatter.link = function(cellval, opts) {
|
|
var op = {target:opts.target};
|
|
var target = "";
|
|
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.colModel.formatoptions);
|
|
}
|
|
if(op.target) {target = 'target=' + op.target;}
|
|
if(!$.fmatter.isEmpty(cellval)) {
|
|
return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>";
|
|
}
|
|
return $.fn.fmatter.defaultFormat(cellval,opts);
|
|
};
|
|
$.fn.fmatter.showlink = function(cellval, opts) {
|
|
var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName},
|
|
target = "", idUrl;
|
|
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.colModel.formatoptions);
|
|
}
|
|
if(op.target) {target = 'target=' + op.target;}
|
|
idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
|
|
if($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) { //add this one even if its blank string
|
|
return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>";
|
|
}
|
|
return $.fn.fmatter.defaultFormat(cellval,opts);
|
|
};
|
|
$.fn.fmatter.integer = function(cellval, opts) {
|
|
var op = $.extend({},opts.integer);
|
|
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.colModel.formatoptions);
|
|
}
|
|
if($.fmatter.isEmpty(cellval)) {
|
|
return op.defaultValue;
|
|
}
|
|
return $.fmatter.util.NumberFormat(cellval,op);
|
|
};
|
|
$.fn.fmatter.number = function (cellval, opts) {
|
|
var op = $.extend({},opts.number);
|
|
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.colModel.formatoptions);
|
|
}
|
|
if($.fmatter.isEmpty(cellval)) {
|
|
return op.defaultValue;
|
|
}
|
|
return $.fmatter.util.NumberFormat(cellval,op);
|
|
};
|
|
$.fn.fmatter.currency = function (cellval, opts) {
|
|
var op = $.extend({},opts.currency);
|
|
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.colModel.formatoptions);
|
|
}
|
|
if($.fmatter.isEmpty(cellval)) {
|
|
return op.defaultValue;
|
|
}
|
|
return $.fmatter.util.NumberFormat(cellval,op);
|
|
};
|
|
$.fn.fmatter.date = function (cellval, opts, rwd, act) {
|
|
var op = $.extend({},opts.date);
|
|
if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.colModel.formatoptions);
|
|
}
|
|
if(!op.reformatAfterEdit && act === 'edit'){
|
|
return $.fn.fmatter.defaultFormat(cellval, opts);
|
|
}
|
|
if(!$.fmatter.isEmpty(cellval)) {
|
|
return $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op);
|
|
}
|
|
return $.fn.fmatter.defaultFormat(cellval, opts);
|
|
};
|
|
$.fn.fmatter.select = function (cellval,opts) {
|
|
// jqGrid specific
|
|
cellval = String(cellval);
|
|
var oSelect = false, ret=[], sep, delim;
|
|
if(opts.colModel.formatoptions !== undefined){
|
|
oSelect= opts.colModel.formatoptions.value;
|
|
sep = opts.colModel.formatoptions.separator === undefined ? ":" : opts.colModel.formatoptions.separator;
|
|
delim = opts.colModel.formatoptions.delimiter === undefined ? ";" : opts.colModel.formatoptions.delimiter;
|
|
} else if(opts.colModel.editoptions !== undefined){
|
|
oSelect= opts.colModel.editoptions.value;
|
|
sep = opts.colModel.editoptions.separator === undefined ? ":" : opts.colModel.editoptions.separator;
|
|
delim = opts.colModel.editoptions.delimiter === undefined ? ";" : opts.colModel.editoptions.delimiter;
|
|
}
|
|
if (oSelect) {
|
|
var msl = (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false,
|
|
scell = [], sv;
|
|
if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.trim(n);});}
|
|
if ($.fmatter.isString(oSelect)) {
|
|
// mybe here we can use some caching with care ????
|
|
var so = oSelect.split(delim), j=0, i;
|
|
for(i=0; i<so.length;i++){
|
|
sv = so[i].split(sep);
|
|
if(sv.length > 2 ) {
|
|
sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);
|
|
}
|
|
if(msl) {
|
|
if($.inArray(sv[0],scell)>-1) {
|
|
ret[j] = sv[1];
|
|
j++;
|
|
}
|
|
} else if($.trim(sv[0]) === $.trim(cellval)) {
|
|
ret[0] = sv[1];
|
|
break;
|
|
}
|
|
}
|
|
} else if($.fmatter.isObject(oSelect)) {
|
|
// this is quicker
|
|
if(msl) {
|
|
ret = $.map(scell, function(n){
|
|
return oSelect[n];
|
|
});
|
|
} else {
|
|
ret[0] = oSelect[cellval] || "";
|
|
}
|
|
}
|
|
}
|
|
cellval = ret.join(", ");
|
|
return cellval === "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
|
|
};
|
|
$.fn.fmatter.rowactions = function(act) {
|
|
var $tr = $(this).closest("tr.jqgrow"),
|
|
rid = $tr.attr("id"),
|
|
$id = $(this).closest("table.ui-jqgrid-btable").attr('id').replace(/_frozen([^_]*)$/,'$1'),
|
|
$grid = $("#"+$id),
|
|
$t = $grid[0],
|
|
p = $t.p,
|
|
cm = p.colModel[$.jgrid.getCellIndex(this)],
|
|
$actionsDiv = cm.frozen ? $("tr#"+rid+" td:eq("+$.jgrid.getCellIndex(this)+") > div",$grid) :$(this).parent(),
|
|
op = {
|
|
extraparam: {}
|
|
},
|
|
saverow = function(rowid, res) {
|
|
if($.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }
|
|
$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
|
|
$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
|
|
},
|
|
restorerow = function(rowid) {
|
|
if($.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }
|
|
$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
|
|
$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
|
|
};
|
|
|
|
if (cm.formatoptions !== undefined) {
|
|
op = $.extend(op,cm.formatoptions);
|
|
}
|
|
if (p.editOptions !== undefined) {
|
|
op.editOptions = p.editOptions;
|
|
}
|
|
if (p.delOptions !== undefined) {
|
|
op.delOptions = p.delOptions;
|
|
}
|
|
if ($tr.hasClass("jqgrid-new-row")){
|
|
op.extraparam[p.prmNames.oper] = p.prmNames.addoper;
|
|
}
|
|
var actop = {
|
|
keys: op.keys,
|
|
oneditfunc: op.onEdit,
|
|
successfunc: op.onSuccess,
|
|
url: op.url,
|
|
extraparam: op.extraparam,
|
|
aftersavefunc: saverow,
|
|
errorfunc: op.onError,
|
|
afterrestorefunc: restorerow,
|
|
restoreAfterError: op.restoreAfterError,
|
|
mtype: op.mtype
|
|
};
|
|
switch(act)
|
|
{
|
|
case 'edit':
|
|
$grid.jqGrid('editRow', rid, actop);
|
|
$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").hide();
|
|
$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").show();
|
|
$grid.triggerHandler("jqGridAfterGridComplete");
|
|
break;
|
|
case 'save':
|
|
if ($grid.jqGrid('saveRow', rid, actop)) {
|
|
$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
|
|
$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
|
|
$grid.triggerHandler("jqGridAfterGridComplete");
|
|
}
|
|
break;
|
|
case 'cancel' :
|
|
$grid.jqGrid('restoreRow', rid, restorerow);
|
|
$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
|
|
$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
|
|
$grid.triggerHandler("jqGridAfterGridComplete");
|
|
break;
|
|
case 'del':
|
|
$grid.jqGrid('delGridRow', rid, op.delOptions);
|
|
break;
|
|
case 'formedit':
|
|
$grid.jqGrid('setSelection', rid);
|
|
$grid.jqGrid('editGridRow', rid, op.editOptions);
|
|
break;
|
|
}
|
|
};
|
|
$.fn.fmatter.actions = function(cellval,opts) {
|
|
var op={keys:false, editbutton:true, delbutton:true, editformbutton: false},
|
|
rowid=opts.rowId, str="",ocl,
|
|
nav = $.jgrid.getRegional(this, 'nav'),
|
|
classes = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter,
|
|
common = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common;
|
|
if(opts.colModel.formatoptions !== undefined) {
|
|
op = $.extend(op,opts.colModel.formatoptions);
|
|
}
|
|
if(rowid === undefined || $.fmatter.isEmpty(rowid)) {return "";}
|
|
var hover = "onmouseover=jQuery(this).addClass('" + common.hover +"'); onmouseout=jQuery(this).removeClass('" + common.hover +"'); ";
|
|
if(op.editformbutton){
|
|
ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); " + hover;
|
|
str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>";
|
|
} else if(op.editbutton){
|
|
ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); " + hover;
|
|
str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>";
|
|
}
|
|
if(op.delbutton) {
|
|
ocl = "id='jDeleteButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); " + hover;
|
|
str += "<div title='"+nav.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_del +"'></span></div>";
|
|
}
|
|
ocl = "id='jSaveButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); " + hover;
|
|
str += "<div title='"+nav.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_save +"'></span></div>";
|
|
ocl = "id='jCancelButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); " + hover;
|
|
str += "<div title='"+nav.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_cancel +"'></span></div>";
|
|
return "<div style='margin-left:8px;'>" + str + "</div>";
|
|
};
|
|
$.unformat = function (cellval,options,pos,cnt) {
|
|
// specific for jqGrid only
|
|
var ret, formatType = options.colModel.formatter,
|
|
op =options.colModel.formatoptions || {}, sep,
|
|
re = /([\.\*\_\'\(\)\{\}\+\?\\])/g,
|
|
unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);
|
|
if(unformatFunc !== undefined && $.isFunction(unformatFunc) ) {
|
|
ret = unformatFunc.call(this, $(cellval).text(), options, cellval);
|
|
} else if(formatType !== undefined && $.fmatter.isString(formatType) ) {
|
|
var opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag;
|
|
switch(formatType) {
|
|
case 'integer' :
|
|
op = $.extend({},opts.integer,op);
|
|
sep = op.thousandsSeparator.replace(re,"\\$1");
|
|
stripTag = new RegExp(sep, "g");
|
|
ret = $(cellval).text().replace(stripTag,'');
|
|
break;
|
|
case 'number' :
|
|
op = $.extend({},opts.number,op);
|
|
sep = op.thousandsSeparator.replace(re,"\\$1");
|
|
stripTag = new RegExp(sep, "g");
|
|
ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.');
|
|
break;
|
|
case 'currency':
|
|
op = $.extend({},opts.currency,op);
|
|
sep = op.thousandsSeparator.replace(re,"\\$1");
|
|
stripTag = new RegExp(sep, "g");
|
|
ret = $(cellval).text();
|
|
if (op.prefix && op.prefix.length) {
|
|
ret = ret.substr(op.prefix.length);
|
|
}
|
|
if (op.suffix && op.suffix.length) {
|
|
ret = ret.substr(0, ret.length - op.suffix.length);
|
|
}
|
|
ret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.');
|
|
break;
|
|
case 'checkbox':
|
|
var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
|
|
ret = $('input',cellval).is(":checked") ? cbv[0] : cbv[1];
|
|
break;
|
|
case 'select' :
|
|
ret = $.unformat.select(cellval,options,pos,cnt);
|
|
break;
|
|
case 'actions':
|
|
return "";
|
|
default:
|
|
ret= $(cellval).text();
|
|
}
|
|
}
|
|
return ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());
|
|
};
|
|
$.unformat.select = function (cellval,options,pos,cnt) {
|
|
// Spacial case when we have local data and perform a sort
|
|
// cnt is set to true only in sortDataArray
|
|
var ret = [];
|
|
var cell = $(cellval).text();
|
|
if(cnt===true) {return cell;}
|
|
var op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions),
|
|
sep = op.separator === undefined ? ":" : op.separator,
|
|
delim = op.delimiter === undefined ? ";" : op.delimiter;
|
|
|
|
if(op.value){
|
|
var oSelect = op.value,
|
|
msl = op.multiple === true ? true : false,
|
|
scell = [], sv;
|
|
if(msl) {scell = cell.split(",");scell = $.map(scell,function(n){return $.trim(n);});}
|
|
if ($.fmatter.isString(oSelect)) {
|
|
var so = oSelect.split(delim), j=0, i;
|
|
for(i=0; i<so.length;i++){
|
|
sv = so[i].split(sep);
|
|
if(sv.length > 2 ) {
|
|
sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);
|
|
}
|
|
if(msl) {
|
|
if($.inArray($.trim(sv[1]),scell)>-1) {
|
|
ret[j] = sv[0];
|
|
j++;
|
|
}
|
|
} else if($.trim(sv[1]) === $.trim(cell)) {
|
|
ret[0] = sv[0];
|
|
break;
|
|
}
|
|
}
|
|
} else if($.fmatter.isObject(oSelect) || $.isArray(oSelect) ){
|
|
if(!msl) {scell[0] = cell;}
|
|
ret = $.map(scell, function(n){
|
|
var rv;
|
|
$.each(oSelect, function(i,val){
|
|
if (val === n) {
|
|
rv = i;
|
|
return false;
|
|
}
|
|
});
|
|
if( rv !== undefined ) {return rv;}
|
|
});
|
|
}
|
|
return ret.join(", ");
|
|
}
|
|
return cell || "";
|
|
};
|
|
$.unformat.date = function (cellval, opts) {
|
|
var op = $.jgrid.getRegional(this, 'formatter.date') || {};
|
|
if(opts.formatoptions !== undefined) {
|
|
op = $.extend({},op,opts.formatoptions);
|
|
}
|
|
if(!$.fmatter.isEmpty(cellval)) {
|
|
return $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op);
|
|
}
|
|
return $.fn.fmatter.defaultFormat(cellval, opts);
|
|
};
|
|
//module end
|
|
}));
|