uawdijnntqw1x1x1
IP : 216.73.216.110
Hostname : 6.87.74.97.host.secureserver.net
Kernel : Linux 6.87.74.97.host.secureserver.net 4.18.0-553.83.1.el8_10.x86_64 #1 SMP Mon Nov 10 04:22:44 EST 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
emeraadmin
/
www
/
node_modules
/
abbrev
/
..
/
array-slice
/
..
/
jqGrid
/
js
/
grid.export.js
/
/
/*jshint eqeqeq:false, eqnull:true, devel:true */ /*global jQuery, JSZip, pdfMake, XMLSerializer, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery", "./grid.base", "./jquery.fmatter", "./grid.utils" ], factory ); } else { // Browser globals factory( jQuery ); } }(function( $ ) { "use strict"; //module begin $.jgrid = $.jgrid || {}; $.extend($.jgrid,{ formatCell : function ( cellval , colpos, rwdat, cm, $t, etype){ var v; if(cm.formatter !== undefined) { var opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '', isExported : true, exporttype : etype }; if($.jgrid.isFunction( cm.formatter ) ) { v = cm.formatter.call($t,cellval,opts,rwdat); } else if($.fmatter){ v = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat); } else { v = cellval; } } else { v = cellval; } return v; }, formatCellCsv : function (v, p) { v = v == null ? '' : String(v); try { v = $.jgrid.stripHtml( v.replace(p._regexsep ,p.separatorReplace).replace(/\r\n/g, p.replaceNewLine).replace(/\n/g, p.replaceNewLine)); } catch (_e) { v=""; } if(p.escquote) { v = v.replace(p._regexquot, p.escquote + p.quote); } if( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) { v = p.quote + v + p.quote; } return v; }, excelCellPos : function ( n ){ var ordA = 'A'.charCodeAt(0), ordZ = 'Z'.charCodeAt(0), len = ordZ - ordA + 1, s = ""; while( n >= 0 ) { s = String.fromCharCode(n % len + ordA) + s; n = Math.floor(n / len) - 1; } return s; }, makeNode : function ( root, elemName, options ) { var currNode = root.createElement( elemName ); if ( options ) { if ( options.attr ) { $(currNode).attr( options.attr ); } if( options.children ) { $.each( options.children, function ( key, value ) { currNode.appendChild( value ); }); } if( options.hasOwnProperty('text') ) { currNode.appendChild( root.createTextNode( options.text ) ); } } return currNode; }, xmlToZip : function ( zip, obj ) { var $t = this, xmlserialiser = new XMLSerializer(), // IE >= 9 ieExcel = xmlserialiser.serializeToString( $.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) ) .indexOf( 'xmlns:r' ) === -1, newDir, worksheet, i, ien, attr, attrs = [], str; $.each( obj, function ( name, val ) { if ( $.isPlainObject( val ) ) { newDir = zip.folder( name ); $t.xmlToZip( newDir, val ); } else { if ( ieExcel ) { worksheet = val.childNodes[0]; for ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) { var attrName = worksheet.attributes[i].nodeName; var attrValue = worksheet.attributes[i].nodeValue; if ( attrName.indexOf( ':' ) !== -1 ) { attrs.push( { name: attrName, value: attrValue } ); worksheet.removeAttribute( attrName ); } } for ( i=0, ien=attrs.length ; i<ien ; i++ ) { attr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) ); attr.value = attrs[i].value; worksheet.setAttributeNode( attr ); } } // suuport of all browsers str = xmlserialiser.serializeToString(val); // Fix IE's XML if ( ieExcel ) { if ( str.indexOf( '<?xml' ) === -1 ) { str = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+str; } str = str.replace( /_dt_b_namespace_token_/g, ':' ); } str = str .replace( /<row xmlns="" /g, '<row ' ) .replace( /<cols xmlns="">/g, '<cols>' ) .replace( /<mergeCells xmlns="" /g, '<mergeCells ' ) .replace( /<numFmt xmlns="" /g, '<numFmt ' ) .replace( /<xf xmlns="" /g, '<xf ' ); zip.file( name, str ); } } ); }, excelStrings : { "_rels/.rels": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>'+ '</Relationships>', "xl/_rels/workbook.xml.rels": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+ '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>'+ '<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'+ '</Relationships>', "[Content_Types].xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'+ '<Default Extension="xml" ContentType="application/xml" />'+ '<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />'+ '<Default Extension="jpeg" ContentType="image/jpeg" />'+ '<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" />'+ '<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" />'+ '<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" />'+ '</Types>', "xl/workbook.xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+ '<fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/>'+ '<workbookPr showInkAnnotation="0" autoCompressPictures="0"/>'+ '<bookViews>'+ '<workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/>'+ '</bookViews>'+ '<sheets>'+ '<sheet name="Sheet1" sheetId="1" r:id="rId1"/>'+ '</sheets>'+ '</workbook>', "xl/worksheets/sheet1.xml": '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ '<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+ '<sheetData/>'+ '</worksheet>', "xl/styles.xml": '<?xml version="1.0" encoding="UTF-8"?>'+ '<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+ '<numFmts count="7">'+ '<numFmt numFmtId="164" formatCode="#,##0.00_-\ [$$-45C]"/>'+ '<numFmt numFmtId="165" formatCode=""£"#,##0.00"/>'+ '<numFmt numFmtId="166" formatCode="[$€-2]\ #,##0.00"/>'+ '<numFmt numFmtId="167" formatCode="0.0%"/>'+ '<numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/>'+ '<numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/>'+ '<numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/>'+ '</numFmts>'+ '<fonts count="5" x14ac:knownFonts="1">'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<color rgb="FFFFFFFF" />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<b />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<i />'+ '</font>'+ '<font>'+ '<sz val="11" />'+ '<name val="Calibri" />'+ '<u />'+ '</font>'+ '</fonts>'+ '<fills count="6">'+ '<fill>'+ '<patternFill patternType="none" />'+ '</fill>'+ '<fill/>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="FFD9D9D9" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="FFD99795" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="ffc6efce" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '<fill>'+ '<patternFill patternType="solid">'+ '<fgColor rgb="ffc6cfef" />'+ '<bgColor indexed="64" />'+ '</patternFill>'+ '</fill>'+ '</fills>'+ '<borders count="2">'+ '<border>'+ '<left />'+ '<right />'+ '<top />'+ '<bottom />'+ '<diagonal />'+ '</border>'+ '<border diagonalUp="false" diagonalDown="false">'+ '<left style="thin">'+ '<color auto="1" />'+ '</left>'+ '<right style="thin">'+ '<color auto="1" />'+ '</right>'+ '<top style="thin">'+ '<color auto="1" />'+ '</top>'+ '<bottom style="thin">'+ '<color auto="1" />'+ '</bottom>'+ '<diagonal />'+ '</border>'+ '</borders>'+ '<cellStyleXfs count="1">'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" />'+ '</cellStyleXfs>'+ '<cellXfs count="69">'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="left"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="center"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="right"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment horizontal="fill"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment textRotation="90"/>'+ '</xf>'+ '<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+ '<alignment wrapText="1"/>'+ '</xf>'+ '<xf numFmtId="9" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+ '<xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>'+ '</cellXfs>'+ '<cellStyles count="1">'+ '<cellStyle name="Normal" xfId="0" builtinId="0" />'+ '</cellStyles>'+ '<dxfs count="0" />'+ '<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" />'+ '</styleSheet>' }, excelParsers : [ { match: /^\-?\d+\.\d%$/, style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p. { match: /^\-?\d+\.?\d*%$/, style: 56, fmt: function (d) { return d/100; } }, // Percent { match: /^\-?\$[\d,]+.?\d*$/, style: 57 }, // Dollars { match: /^\-?£[\d,]+.?\d*$/, style: 58 }, // Pounds { match: /^\-?€[\d,]+.?\d*$/, style: 59 }, // Euros { match: /^\-?\d+$/, style: 65 }, // Numbers without thousand separators { match: /^\-?\d+\.\d{2}$/, style: 66 }, // Numbers 2 d.p. without thousands separators { match: /^\([\d,]+\)$/, style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets { match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets - 2d.p. { match: /^\-?[\d,]+$/, style: 63 }, // Numbers with thousand separators { match: /^\-?[\d,]+\.\d{2}$/, style: 64 }, // Numbers with 2 d.p. and thousands separators { match: /^\d{4}\-\d{2}\-\d{2}$/, style: 67 }, // Dates { match: /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi, style : 4} // hyperlink ], addExcelStyle : function ( obj, options, alignment, styleSh) { options = $.extend({ numFmtId : "0", fontId: "0", fillId: "0", borderId: "0", applyFont:"1", applyFill:"1", applyBorder:"1", xfId:"0", applyNumberFormat:"0", applyAlignment : "0" }, options || {}); alignment = $.extend({ horizontal: "left", // left, center, right, fill, justified indent: "0", // indent from left shrinkToFit : "1", //"0" textRotation : "0", // in degree vertical : "center", // top, bottom wrapText : "0" }, alignment || {}); if( $.isEmptyObject( obj )) { obj.excel_parsers = true; } //var styleSh = $.parseXML( $.jgrid.excelStrings['xl/styles.xml']), //xlsx.xl["styles.xml"]; var formats = styleSh.getElementsByTagName("numFmts")[0], celsX = styleSh.getElementsByTagName("cellXfs")[0]; var format=null, style=null; for(var k in obj) { if(obj.hasOwnProperty(k)) { if(k.indexOf('format') !== -1) { format = k; } if(k.indexOf('style') !== -1) { style = k; } } } if(style && !obj[style]) { // add the sformatter var count = 0, maxfmtid =0, fmnt, mycell; if(format && obj[format]) { fmnt= $(formats.getElementsByTagName("numFmt")); $.each( fmnt, function(i,n) { count++; maxfmtid = Math.max(maxfmtid, parseInt( $(n).attr("numFmtId"), 10) ); }); mycell = $.jgrid.makeNode( styleSh , "numFmt", {attr: {numFmtId : maxfmtid + 1, formatCode : obj[format] } }); formats.appendChild( mycell ); $(formats).attr("count", count + 1); } var numid = maxfmtid !== 0 ? maxfmtid + 1 +"" : "0"; count = 0; options.numFmtId = numid; mycell = options.applyAlignment === "1" ? $.jgrid.makeNode( styleSh , "xf", { attr: options , children: [ $.jgrid.makeNode( styleSh, 'alignment', { attr : alignment } ) ] }) : $.jgrid.makeNode( styleSh , "xf", { attr: options }); celsX.appendChild( mycell ); count = $('cellXfs xf', styleSh).length; $(celsX).attr("count", count); obj[style] = count - 1; } return obj; }, newExcelStyle : function ( xlsx, options ) { options = $.extend(true, { font : { size : 11, name : 'Calibri', options :""}, // options <b/> <i/> <u/> color : { patternType : "solid", fgColor : "FFFFFFF", bgColor : 64 } // bgColor if number 0-64 }, options || {}); //PatterType can be one of the following /* none, solid,darkDown,darkGray,darkGrid,darkHorizontal,darkTrellis, darkUp,darkVertical,gray0625,gray125,lightDown,lightGray,lightGrid lightHorizontal,lightTrellis,lightUp,lightVertical,mediumGray */ //styleSheet.childNodes[0].childNodes[0] ==> number formats <numFmts count="6"> </numFmts> //styleSheet.childNodes[0].childNodes[1] ==> fonts <fonts count="5" x14ac:knownFonts="1"> </fonts> //styleSheet.childNodes[0].childNodes[2] ==> fills <fills count="6"> </fills> //styleSheet.childNodes[0].childNodes[3] ==> borders <borders count="2"> </borders> //styleSheet.childNodes[0].childNodes[4] ==> cell style xfs <cellStyleXfs count="1"> </cellStyleXfs> //styleSheet.childNodes[0].childNodes[5] ==> cell xfs <cellXfs count="69"> </cellXfs> //on the last line we have the 69 currently built in styles (0 - 68) var sSh = xlsx.xl['styles.xml']; var lastXfIndex = $('cellXfs xf', sSh).length - 1; var lastFontIndex = $('fonts font', sSh).length - 1; var lastFillIndex = $('fills fill', sSh).length - 1; var font1 = '<font>'+ '<sz val="'+options.font.size+'" />'+ '<name val="'+options.font.name+'" />'+ options.font.options + '</font>'; sSh.childNodes[0].childNodes[1].innerHTML += font1; //new font var bgcolor = 'indexed='; if(parseInt(options.color.bgColor,10) >= 0 ) { bgcolor = 'rgb='; } bgcolor += '"'+options.color.bgColor+'"'; var color1 = '<fill>'+ '<patternFill patternType="'+options.color.patternType+'">'+ '<fgColor rgb="'+options.color.fgColor+'" />'+ '<bgColor ' + bgcolor+' />'+ '</patternFill>'+ '</fill>'; sSh.childNodes[0].childNodes[2].innerHTML += color1; //new color var s1 = '<xf numFmtId="0" fontId="'+(lastFontIndex+1)+'" fillId="'+(lastFillIndex+1)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>'; sSh.childNodes[0].childNodes[5].innerHTML += s1; return (lastXfIndex + 1); } }); /******************************************************************** * * due to speed, every export method will have separate module * to collect grouped data * *********************************************************************/ $.jgrid.extend({ exportToCsv : function ( p ) { p = $.extend(true, { separator: ",", separatorReplace : " ", quote : '"', escquote : '"', newLine : "\r\n", // navigator.userAgent.match(/Windows/) ? '\r\n' : '\n'; replaceNewLine : " ", includeCaption : true, includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, fileName : "jqGridExport.csv", mimetype : "text/csv;charset=utf-8", returnAsString : false, onBeforeExport : null, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, p || {}); var ret =""; this.each(function(){ p._regexsep = new RegExp(p.separator, "g"); p._regexquot = new RegExp(p.quote, "g"); var $t = this, // get the filtered data data1 = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, p.treeindent, p.visibleTreeNodes) : $t.addLocalData( true ), //this.addLocalData( true ), dlen = data1.length, cm = $t.p.colModel, cmlen = cm.length, clbl = $t.p.colNames, i, j=0, row, str = '' , tmp, k, cap = "", hdr = "", ftr="", lbl="", albl=[], htr=""; function groupToCsv (grdata, p) { var str="", grp = $t.p.groupingView, cp=[], len =grp.groupField.length, cm = $t.p.colModel, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0; for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; vv = $t.formatter('', vv, k, this); } catch (ef) { vv = this.v; } retarr[j] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ), p ) ; return false; } }); j++; } return retarr; } var sumreverse = $.makeArray(grp.groupSummary), gv, k; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < dlen; ll++) { groupingPrepare.call($($t), data1[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = new Array(p.collen); } arr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p); str += arr.join( p.separator ) + p.newLine; var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } to = grdata[kk - offset]; k = 0; for(ik = 0; ik < cm.length; ik++) { if(cm[ik]._expcol) { arr[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(to, cm[ik].name), ik, to, cm[ik], $t, 'csv' ) , p); k++; } } str += arr.join( p.separator ) + p.newLine; } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); str += arr.join( p.separator ) + p.newLine; } toEnd = jj; } } }); return str; } if( $.jgrid.isFunction( p.loadIndicator )) { p.loadIndicator.call($t,'show'); } else if(p.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } // end group function var def = [], key; $.each(cm,function(i,n) { n._expcol = true; if(n.exportcol === undefined) { if(n.hidden) { n._expcol = false; } } else { n._expcol = n.exportcol; } if(n.name === 'cb' || n.name === 'rn' || n.name === 'subgrid' || n.name === 'sc') { n._expcol = false; } if(n._expcol) { albl.push( $.jgrid.formatCellCsv( clbl[i], p) ); def.push( n.name ); // clbl[i]; } }); if(p.includeLabels) { lbl = albl.join( p.separator ) + p.newLine; } p.collen = albl.length; if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; str += groupToCsv(data1, p); $t.p.groupingView._locgr = savlcgr; } else { while(j < dlen) { row = data1[j]; tmp = []; k =0; for(i = 0; i < cmlen; i++) { if(cm[i]._expcol) { tmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(row, cm[i].name) , i, row, cm[i], $t, 'csv' ), p ); k++; } } str += tmp.join( p.separator ) + p.newLine; j++; } } data1 = null; // free // get the column length. tmp = new Array(p.collen); if(p.includeCaption && $t.p.caption) { j=p.collen; while(--j) {tmp[j]="";} tmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p ); cap += tmp.join( p.separator ) + p.newLine; } if(p.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn')) { var gh = $t.p.groupHeader; for (i=0;i < gh.length; i++) { var ghdata = gh[i].groupHeaders; j = 0; tmp = []; for(key=0; key<def.length; key++ ) { //if(!def.hasOwnProperty( key )) { // continue; //} tmp[j] = ''; for(k=0;k<ghdata.length;k++) { if(ghdata[k].startColumnName === def[key]) { tmp[j]= $.jgrid.formatCellCsv( ghdata[k].titleText, p); } } j++; } hdr += tmp.join( p.separator ) + p.newLine; } } var hlen, il; if(p.includeFooter && $t.p.footerrow) { // already formated hlen = $($t).jqGrid("footerData", "getlength"); var frows, fc; for(il=0;il<hlen;il++) { frows = $($t).jqGrid("footerData", "get", null, false, il, false); i=0; tmp=[]; while(i < p.collen){ fc = def[i]; if(frows.hasOwnProperty(fc) ) { tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( frows[fc] ), p ) ); } i++; } ftr += tmp.join( p.separator ) + p.newLine; } } if(p.includeHeader && $t.p.headerrow) { var hrows, hc; hlen = $($t).jqGrid("headerData", "getlength"); for(il=0;il<hlen;il++) { hrows = $($t).jqGrid("headerData", "get", null, false, il, false); i=0; tmp=[]; while(i < p.collen){ hc = def[i]; if(hrows.hasOwnProperty(hc) ) { tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( hrows[hc] ), p ) ); } i++; } htr += tmp.join( p.separator ) + p.newLine; } } ret = cap + hdr + lbl + htr + str + ftr; if( $.jgrid.isFunction( p.loadIndicator )) { p.loadIndicator.call($t,'hide'); } else if(p.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } if($.jgrid.isFunction( p.onBeforeExport) ) { ret = p.onBeforeExport.call($t,ret); if(!ret) { throw "Before export does not return data!"; } } if (p.returnAsString) { //return ret; } else { // add BOM fix Excel if(p.mimetype.toUpperCase().indexOf("UTF-8") !== -1) { ret = '\ufeff' + ret; } $.jgrid.saveAs( ret, p.fileName, { type : p.mimetype }); } }); return ret; }, /* * * @param object o - settings for the export * @returns excel 2007 document * The method requiere jsZip lib in order to create excel document */ exportToExcel : function ( o ) { o = $.extend(true, { includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, fileName : "jqGridExport.xlsx", mimetype : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", maxlength : 40, // maxlength for visible string data onBeforeExport : null, customizeData : null, replaceStr : null, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, o || {} ); this.each(function() { var $t = this, es = $.jgrid.excelStrings, rowPos = 0, rels = $.parseXML( es['xl/worksheets/sheet1.xml']), relsGet = rels.getElementsByTagName( "sheetData" )[0], styleSh = $.parseXML( es['xl/styles.xml']), //xlsx.xl["styles.xml"]; //= styleSh.getElementsByTagName("numFmts")[0], //celsX = styleSh.getElementsByTagName("cellXfs")[0], xlsx = { _rels: { ".rels": $.parseXML( es['_rels/.rels']) }, xl: { _rels: { "workbook.xml.rels": $.parseXML( es['xl/_rels/workbook.xml.rels']) }, "workbook.xml": $.parseXML( es['xl/workbook.xml']), "styles.xml": styleSh, //$.parseXML( es['xl/styles.xml']), "worksheets": { "sheet1.xml": rels } }, "[Content_Types].xml": $.parseXML( es['[Content_Types].xml']) }, cm = $t.p.colModel, i=0, j, ien, data = { body : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), header : [], footer : [], width : [], map : [], parser :[], labels : [], hidden : [], mergecell:[] }; var defaultHeaderStyle = $.jgrid.addExcelStyle( {excel_header_style:""}, {fontId :"2", applyAlignment : "1"} , {horizontal: "center", vertical :"center"}, styleSh).excel_header_style; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if(cm[j]._colspancell === undefined) { cm[j]._colspancell = false; } if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) { data.hidden.push(cm[j].name); continue; } data.header[i] = cm[j].name; data.width[ i ] = 5; data.map[i] = j; //data.parser[j] = $.jgrid.addExcelStyle( cm[j].hasOwnProperty('exportoptions') ? $.extend( {}, cm[j].exportoptions ) : {} ); data.labels[i] = $t.p.colNames[j]; if(cm[j].hasOwnProperty('exportoptions')) { var ef={}, ehf={}; if(cm[j].exportoptions.excel_format) { ef = $.jgrid.addExcelStyle( { excel_format : cm[j].exportoptions.excel_format, excel_style : cm[j].exportoptions.excel_style || ""}, {}, {}, styleSh ); } if(cm[j].exportoptions.excel_header_format) { ehf = $.jgrid.addExcelStyle( { excel_header_format : cm[j].exportoptions.excel_header_format, excel_header_style : cm[j].exportoptions.excel_header_style || ""}, {fontId:"2",applyAlignment:"1" },{horizontal:"center"}, styleSh ); } data.parser[j] = $.extend (ef,ehf); if(cm[j].exportoptions.replace_format) { data.parser[j].replace_format = cm[j].exportoptions.replace_format; } if(cm[j].exportoptions.replace_header_format) { data.parser[j].replace_header_format = cm[j].exportoptions.replace_header_format; } } else { data.parser[j] = { excel_parsers : true }; } i++; } if ( o.includeFooter || $t.p.footerrow) { var dfl = $($t).jqGrid("footerData", "getlength"), dil, dfooter; for(dil=0; dil<dfl; dil++) { dfooter = $($t).jqGrid("footerData", "get", null, false, dil, false); for( i in dfooter) { if(dfooter.hasOwnProperty(i)) { dfooter[i] = $.jgrid.stripHtml(dfooter[i]); } } data.footer.push( dfooter); } } if( $.jgrid.isFunction(o.customizeData) ) { o.customizeData.call($t, data); } function _replStrFunc (v) { return v.replace(/</g, '<') .replace(/>/g, '>') .replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g, ''); } function _makeCellSpecial ( p, v ) { return $.jgrid.makeNode( rels, 'c', { attr: p, children: [ $.jgrid.makeNode( rels, 'v', { text: v } ) ] }); } function _makeCellFunction ( p, v ) { return $.jgrid.makeNode( rels, 'c', { attr: p, children: [ $.jgrid.makeNode( rels, 'f', { text: v } ) ] }); } function _makeCellString ( cellId, text, estyle ) { if( estyle === undefined) { estyle = 68; } return $.jgrid.makeNode( rels, 'c', { attr: { t: 'inlineStr', r: cellId, s: estyle }, children:{ row: $.jgrid.makeNode( rels, 'is', { children: { row: $.jgrid.makeNode( rels, 't', { text: text} ) } }) } } ); } function linkParse(strLinkHTML) { var oDiv, oNode; (oDiv = document.createElement('div')).innerHTML = strLinkHTML; oNode = oDiv.firstChild; if(oNode.nodeName === 'A' ) { return [oNode.href,oNode.text]; } else if (oNode.nodeName === '#text') { return [oNode.textContent,oNode.textContent]; } return false; } var _replStr = $.jgrid.isFunction(o.replaceStr) ? o.replaceStr : _replStrFunc, currentRow, rowNode, addRow = function ( row, header, labels, skipfirstcol ) { if(labels===undefined) { labels = false; } if(skipfirstcol===undefined) { skipfirstcol = false; } currentRow = rowPos+1; rowNode = $.jgrid.makeNode( rels, "row", { attr: {r:currentRow} } ); var maxieenum = 15, text, omit; for ( var i =0; i < data.header.length; i++) { // key = cm[i].name; // Concat both the Cell Columns as a letter and the Row of the cell. var cellId = $.jgrid.excelCellPos(i) + '' + currentRow, cell, match, v= (Array.isArray(row) && header) ? data.labels[i] : $.jgrid.getAccessor( row, data.header[i] ); if ( v == null ) { v = ''; } if(!header) { omit = (i===0 && skipfirstcol); v = omit || (skipfirstcol && v==='') ? v : $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t, 'excel'); // convert whitespace from formatter to empty string if(v && (v===' ' || v===' ' || (v.length===1 && v.charCodeAt(0)===160))) { v = ''; } } data.width[i] = Math.max(data.width[i], Math.min(parseInt(v.toString().length,10), o.maxlength) ); cell = null; var expo = data.parser[data.map[i]]; if( header && labels) { if(expo.replace_header_format) { v = expo.replace_header_format(v); } if(expo.excel_header_style !== undefined) { if(expo.excel_header_style === 'text') { cell = _makeCellString( cellId, v); } else if (expo.excel_header_style <= 55) { cell = _makeCellString( cellId, v, expo.excel_header_style); //cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } else { cell = _makeCellSpecial( {r: cellId,s: expo.excel_header_style}, v ); } } else { cell = _makeCellString( cellId, v, defaultHeaderStyle); } rowNode.appendChild( cell ); } else if( expo.excel_parsers === true && !cell) { for ( var j=0, jen=$.jgrid.excelParsers.length ; j<jen ; j++ ) { var special = $.jgrid.excelParsers[j]; if ( v.match && ! v.match(/^0\d+/) && v.match( special.match ) ) { var a = v; v = v.replace(/[^\d\.\-]/g, ''); if ( special.fmt ) { v = special.fmt( v ); } if(special.style === 67) { //Dates cell = _makeCellSpecial( { t: 'd', r: cellId, s: special.style }, v); } else if(special.style === 4) { // hyperlink v = linkParse (a); if(v) { cell = _makeCellFunction( { t: 'str', r: cellId, s: special.style }, 'HYPERLINK(\"'+v[0]+'\",\"'+v[1]+'\")'); } else { cell = _makeCellString( cellId, a); } } else { if( $.inArray( special.style, ["63", "64", "65", "66"]) ) { // Numbers if( v.toString().length > maxieenum ) { text = ! a.replace ? a : _replStr(a); cell = _makeCellString( cellId, text); rowNode.appendChild( cell ); break; } } cell = _makeCellSpecial( {r: cellId,s: special.style}, v ); } rowNode.appendChild( cell ); break; } } } else if( expo.excel_style !== undefined && !header && !cell) { if(expo.replace_format) { v = expo.replace_format(v); } if(expo.excel_style === 'text') { cell = _makeCellString( cellId, v); } else if (expo.excel_style <= 55) { cell = _makeCellString( cellId, v, expo.excel_style); //cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } else { cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v ); } rowNode.appendChild( cell ); } if( ! cell ) { // Detect numbers - don't match numbers with leading zeros or a negative if(v.match) { match = v.match(/^-?([1-9]\d+)(\.(\d+))?$/); } if ( (typeof v === 'number' && v.toString().length <= maxieenum) || ( match && (match[1].length + (match[2] ? match[3].length : 0) <= maxieenum)) ) { cell = _makeCellSpecial( {t: 'n', r: cellId }, v ); } else { // Replace non standard characters for text output text = ! v.replace ? v : _replStr(v); cell = _makeCellString( cellId, text); } rowNode.appendChild( cell ); } } relsGet.appendChild(rowNode); rowPos++; }; //========================================================================= function groupToExcel ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(data.header); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', this.v, k, this); //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key=0;key<d.length; key++ ) { clone[ d[key] ] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.body.length; ll++) { groupingPrepare.call($($t), data.body[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(data.header); } var fkey = Object.keys(arr); arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr ); addRow( arr, false, false, true ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; addRow( to, false ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); addRow( arr, false, false, true ); } toEnd = jj; } } }); } //============================================================================ if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } $( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName ); var mrow =0, gh , mergecell=[],key, l, clone ={}, ind, ghdata, start, end; if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) { gh = $t.p.groupHeader; for (l = 0; l < gh.length; l++) { ghdata = gh[l].groupHeaders; var colspan = gh[l].useColSpanStyle && gh.length === 1, colToSkip=[], ghputin = [], colInHeader = [], k, nok, cpos, fk; mrow++; // column to skip if(colspan) { for(k = 0; k < ghdata.length; k++) { key = ghdata[k].startColumnName; nok = ghdata[k].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) { colInHeader[cm[fk].name] = key; ind = data.header.indexOf(cm[fk].name); if( ind !== -1) { colToSkip.push(ind); } } } } for(j = 0; j < data.header.length; j++ ) { key = data.header[j]; clone[key] = colspan ? data.labels[j] : ""; start = -1; end = -1; for(k = 0; k < ghdata.length; k++) { if(ghdata[k].startColumnName === key) { ghputin.push(key); clone[key] = ghdata[k].titleText; nok = ghdata[k].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j+ nok - 1) + mrow; mergecell.push({ ref: start+":"+end }); } } if(start === -1 && end === -1 && colspan && colToSkip.indexOf(j) === -1) { start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j) + (mrow + 1); mergecell.push({ ref: start+":"+end }); } } // we are lost - need to find way if(ghputin.length < ghdata.length) { for(k=0;k < data.hidden.length;k++) { var icol = $.jgrid.inColumnHeader(data.hidden[k], ghdata); // if hidden startColumnName if(icol >= 0 ) { key = data.hidden[k]; for(var key2 in colInHeader) { if(colInHeader[key2] === key) { if(clone[key2]) { // first visible in group clone[key2] = ghdata[icol].titleText; ind = data.header.indexOf(key2); nok = ghdata[icol].numberOfColumns; cpos = $.jgrid.getElemByAttrVal (cm, 'name', key, true) ; for(fk = cpos; fk < cpos + ghdata[icol].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } start = $.jgrid.excelCellPos(ind) + mrow; end = $.jgrid.excelCellPos(ind+ nok - 1) + mrow; mergecell.push({ ref: start+":"+end }); break; } } } } } } addRow( clone, true, true ); } //$('row c', rels).attr( 's', defaultHeaderStyle ); // bold } if ( o.includeLabels ) { if($t.p.colSpanHeader.length) { mrow++; gh = $t.p.colSpanHeader; clone ={}; for(j = 0; j < data.header.length; j++ ) { key = data.header[j]; clone[key] = data.labels[j]; for (l = 0; l < gh.length; l++) { ghdata = gh[l]; if(ghdata.startColumnName === key) { clone[key] = ghdata.titleText; start = $.jgrid.excelCellPos(j) + mrow; end = $.jgrid.excelCellPos(j+ghdata.numberOfColumns -1) + mrow; mergecell.push({ ref: start+":"+end }); } } } addRow( clone, true, true ); } else { addRow( data.header, true, true ); } //$('row', rels).last().find('c').attr( 's', '2' ); // bold } if (data.mergecell.length) { mergecell = mergecell.concat(data.mergecell); } if(mergecell.length) { var merge = $.jgrid.makeNode( rels, 'mergeCells', { attr : { count : mergecell.length } }); $('worksheet', rels).append( merge ); for(i=0;i<mergecell.length;i++) { merge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{ attr: mergecell[i] })); } } if ( o.includeHeader || $t.p.headerrow) { var hlen = $($t).jqGrid("headerData", "getlength"), il, hdata; for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); for( i in hdata) { if(hdata.hasOwnProperty(i)) { hdata[i] = $.jgrid.stripHtml(hdata[i]); } } if(!$.isEmptyObject(hdata)) { addRow( hdata, true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } } if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; groupToExcel(data.body); $t.p.groupingView._locgr = savlcgr; } else { for ( var n=0, ie=data.body.length ; n<ie ; n++ ) { addRow( data.body[n], false ); } } if ( o.includeFooter || $t.p.footerrow) { if(!$.isEmptyObject(data.footer)) { if(Array.isArray(data.footer)) { for(var n=0;n<data.footer.length;n++) { addRow( data.footer[n], true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } else { addRow( data.footer, true ); $('row', rels).last().find('c').attr( 's', '2' ); // bold } } } // Set column widths var cols = $.jgrid.makeNode( rels, 'cols' ); $('worksheet', rels).prepend( cols ); for ( i=0, ien=data.width.length ; i<ien ; i++ ) { cols.appendChild( $.jgrid.makeNode( rels, 'col', { attr: { min: i+1, max: i+1, width: data.width[i], customWidth: 1 } } ) ); } if($.jgrid.isFunction( o.onBeforeExport) ) { o.onBeforeExport.call($t, xlsx, rowPos ); } data = null; // free memory try { var zip = new JSZip(); var zipConfig = { type: 'blob', mimeType: o.mimetype }; $.jgrid.xmlToZip( zip, xlsx ); if ( zip.generateAsync ) { // JSZip 3+ zip.generateAsync( zipConfig ) .then( function ( blob ) { $.jgrid.saveAs( blob, o.fileName, { type : o.mimetype } ); }); } else { // JSZip 2.5 $.jgrid.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } ); } } catch(e) { throw e; } finally { if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } } }); }, exportToPdf : function (o) { o = $.extend(true,{ title: null, orientation: 'portrait', pageSize: 'A4', description: null, onBeforeExport: null, download: 'download', includeLabels : true, includeGroupHeader : true, includeFooter : true, includeHeader : true, fileName : "jqGridExport.pdf", mimetype : "application/pdf", treeindent : "-", visibleTreeNodes : false, centerTableOnPage : false, loadIndicator : true // can be a function }, o || {} ); return this.each(function() { var $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key, data = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), def = [], i=0, map=[], test=[], widths = [], align={}; // Group function function groupToPdf ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, cm = $t.p.colModel, colspans = cm.length, toEnd = 0; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function constructRow( row, fmt, skipfirstcol ) { var k =0, test=[], ommit, val; if(skipfirstcol === undefined ) { skipfirstcol = false; } //row = data[i]; for( var key=0; key < def.length; key++ ) { ommit = !(key === 0 && skipfirstcol);// ? false : true; val = row[def[key]]; obj = { text: val == null || val === '' ? '' : (fmt && ommit ? $.jgrid.formatCell( val + '', map[k], data[i], cm[map[k]], $t, 'pdf') : val), alignment : align[key], style : 'tableBody' }; test.push(obj); k++; } return test; } function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(def); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key = 0; key< d.length; key++ ) { clone[d[key]] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.length; ll++) { groupingPrepare.call($($t), data[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(def); } var fkey = Object.keys(arr); arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr ); rows.push( constructRow (arr, true, true) ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; rows.push( constructRow (to, true) ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); rows.push( constructRow (arr, true, true) ); } toEnd = jj; } } }); } //============================================================================ if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } var k; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined ) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) { continue; } obj = { text: $t.p.colNames[j], style: 'tableHeader' }; test.push( obj ); def[i] = cm[j].name; map[i] = j; widths.push(cm[j].width); align[cm[j].name] = cm[j].align || 'left'; i++; } var gh, clone; if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) { gh = $t.p.groupHeader; for (i=0;i < gh.length; i++) { clone = []; var ghdata = gh[i].groupHeaders, colSpan = gh[i].useColSpanStyle; for(key=0; key < cm.length; key++ ) { /* if(colSpan) { obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"}; } else { obj = {text:'', style: 'tableHeader'}; } */ var put_me = true; if( $.jgrid.isServiceCol( cm[key].name ) || !cm[key]._expcol ) { put_me = false; } else { if(colSpan) { obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"}; } else { obj = {text:'', style: 'tableHeader'}; } } for(k=0;k<ghdata.length;k++) { if(ghdata[k].startColumnName === cm[key].name) { var nok = ghdata[k].numberOfColumns; for(var fk = key; fk<key+ghdata[k].numberOfColumns;fk++) { if(cm[fk].hidden === true) { nok--; } } obj = { text : ghdata[k].titleText, colSpan: nok, /*ghdata[k].numberOfColumns,*/ style: 'tableHeader' }; if(put_me===false && nok >0) { put_me = true; key=key+(ghdata[k].numberOfColumns-nok); } } } if(put_me) { clone.push(obj); } //j++; } rows.push(clone); } } if(o.includeLabels) { if($t.p.colSpanHeader.length) { gh = $t.p.colSpanHeader; clone = []; for(key=0; key < def.length; key++ ) { obj = {text: $t.p.colNames[key], style: 'tableHeader', verticalAlign : "center"}; for(k=0;k<gh.length;k++) { if(gh[k].startColumnName === def[key]) { obj = { text : gh[k].titleText, colSpan: gh[k].numberOfColumns, style: 'tableHeader' }; } } clone.push(obj); j++; } rows.push( clone ); } else { rows.push( test ); } } var hlen, il; if ( o.includeHeader && $t.p.headerrow) { var hdata; hlen = $($t).jqGrid("headerData", "getlength"); for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); test=[]; for( key =0; key< def.length; key++) { obj = { text : $.jgrid.stripHtml( $.jgrid.getAccessor(hdata, def[key]) ), style : 'tableFooter', alignment : align[def[key]] }; test.push( obj ); } rows.push( test ); } } if($t.p.grouping) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; groupToPdf(data); $t.p.groupingView._locgr = savlcgr; } else { var row; for ( i=0, ien=data.length ; i<ien ; i++ ) { k =0; test=[]; row = data[i]; for( key = 0;key < def.length; key++ ) { obj = { text: row[def[key]] == null ? '' : $.jgrid.stripHtml($.jgrid.formatCell( $.jgrid.getAccessor(row, def[key]) + '', map[k], data[i], cm[map[k]], $t, 'pdf')), alignment : align[def[key]], style : 'tableBody' }; test.push(obj); k++; } rows.push(test); } } if ( o.includeFooter && $t.p.footerrow) { hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { var fdata = $($t).jqGrid("footerData", "get", null, false, il, false); test=[]; for( key =0; key< def.length; key++) { obj = { text : $.jgrid.stripHtml( $.jgrid.getAccessor(fdata, def[key]) ), style : 'tableFooter', alignment : align[def[key]] }; test.push( obj ); } rows.push( test ); } } var tblcnt = { style : 'tableExample', widths : widths, table: { headerRows: (gh!=null) ? 0 : 1, body: rows } }; if(o.centerTableOnPage) { tblcnt = { columns : [ { width: '*', text: '' }, { style : 'tableExample', width: 'auto', widths : widths, table: { headerRows: (gh!=null) ? 0 : 1, body: rows }, alignment: "center" }, { width: '*', text: '' } ] }; } var doc = { pageSize: o.pageSize, pageOrientation: o.orientation, content: [ tblcnt ], styles: { tableHeader: { bold: true, fontSize: 11, color: '#2e6e9e', fillColor: '#dfeffc', alignment: 'center' }, tableBody: { fontSize: 10 }, tableFooter: { bold: true, fontSize: 11, color: '#2e6e9e', fillColor: '#dfeffc' }, title: { alignment: 'center', fontSize: 15 }, description: {} }, defaultStyle: { fontSize: 10 } }; if ( o.description ) { doc.content.unshift( { text: o.description, style: 'description', margin: [ 0, 0, 0, 12 ] } ); } if ( o.title ) { doc.content.unshift( { text: o.title, style: 'title', margin: [ 0, 0, 0, 12 ] } ); } if( $.jgrid.isFunction( o.onBeforeExport ) ) { o.onBeforeExport.call($t, doc); } try { var pdf = pdfMake.createPdf( doc ); pdf.getDataUrl(function(url) { if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } }); if ( o.download === 'open' ) { pdf.open(); } else { pdf.getBuffer( function (buffer) { $.jgrid.saveAs( buffer, o.fileName, {type: o.mimetype } ); } ); } } catch(e) { throw e; } }); }, exportToHtml : function ( o ) { o = $.extend(true,{ title: '', onBeforeExport: null, includeLabels : true, includeGroupHeader : true, includeFooter: true, includeHeader: true, tableClass : 'jqgridprint', autoPrint : false, topText : '', bottomText : '', returnAsString : false, treeindent : ' ', visibleTreeNodes : false, loadIndicator : true // can be a function }, o || {} ); var ret; this.each(function() { var $t = this, cm = $t.p.colModel, i=0, j, ien, //obj={}, data = { body : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ), header : [], footer : [], width : [], map : [], align:[] }; for ( j=0, ien=cm.length ; j<ien ; j++ ) { cm[j]._expcol = true; if(cm[j].exportcol === undefined) { if(cm[j].hidden) { cm[j]._expcol = false; } } else { cm[j]._expcol = cm[j].exportcol; } if( cm[j].name === 'cb' || cm[j].name === 'rn' || cm[j].name === 'subgrid' || cm[j].name === 'sc' || !cm[j]._expcol) { continue; } data.header[i] = cm[j].name; data.width[ i ] = cm[j].width; data.map[i] = j; data.align[i] = cm[j].align || 'left'; i++; } var _link = document.createElement( 'a' ); var _styleToAbs = function( el ) { var clone = $(el).clone()[0]; if ( clone.nodeName.toLowerCase() === 'link' ) { clone.href = _relToAbs( clone.href ); } return clone.outerHTML; }; var _relToAbs = function( href ) { // Assign to a link on the original page so the browser will do all the // hard work of figuring out where the file actually is _link.href = href; var linkHost = _link.host; // IE doesn't have a trailing slash on the host // Chrome has it on the pathname if ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) { linkHost += '/'; } return _link.protocol+"//"+linkHost+_link.pathname+_link.search; }; var addRow = function ( d, tag , style ) { var str = '<tr>', stl; for ( var i=0, ien=d.length ; i<ien ; i++ ) { stl = (style === true ? " style=width:"+data.width[i]+"px;":""); str += '<'+tag+stl+'>'+$t.p.colNames[data.map[i]]+'</'+tag+'>'; } return str + '</tr>'; }; var addBodyRow = function ( d, tag, frm, style, colsp) { var str = '<tr>', f, stl; //style = true; for ( var i=0, ien = data.header.length; i< ien; i++ ) { if(colsp) { stl = ' colspan= "'+ (data.header.length) +'"' + " style=text-align:left"; } else { stl = (style === true ? " style=width:"+data.width[i]+"px;text-align:"+data.align[i]+";" : " style=text-align:"+data.align[i]+";"); } f= data.header[i]; if (d.hasOwnProperty(f) ) { str += '<'+tag+stl+'>'+ (frm ? $.jgrid.formatCell( $.jgrid.getAccessor( d, f ), data.map[i], d, cm[data.map[i]], $t, 'html') : d[f])+'</'+tag+'>'; } if(colsp) { break; } } return str + '</tr>'; }; //========================================================================= function groupToHtml ( grdata ) { var grp = $t.p.groupingView, cp=[], len =grp.groupField.length, colspans = cm.length, toEnd = 0, retstr=""; $.each(cm, function (i,n){ var ii; for(ii=0;ii<len;ii++) { if(grp.groupField[ii] === n.name ) { cp[ii] = i; break; } } }); function findGroupIdx( ind , offset, grp) { var ret = false, i; if(offset===0) { ret = grp[ind]; } else { var id = grp[ind].idx; if(id===0) { ret = grp[ind]; } else { for(i=ind;i >= 0; i--) { if(grp[i].idx === id-offset) { ret = grp[i]; break; } } } } return ret; } function buildSummaryTd(i, ik, grp, foffset) { var fdata = findGroupIdx(i, ik, grp), //cm = $t.p.colModel, vv, grlen = fdata.cnt, k, retarr = emptyData(data.header); for(k=foffset; k<colspans;k++) { if(!cm[k]._expcol) { continue; } var tplfld = "{0}"; $.each(fdata.summary,function(){ if(this.nm === cm[k].name) { if(cm[k].summaryTpl) { tplfld = cm[k].summaryTpl; } vv = this.v; if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') { if(this.sd && this.vd) { vv = (this.v/this.vd); } else if(this.v && grlen > 0) { vv = (this.v/grlen); } } try { this.groupCount = fdata.cnt; this.groupIndex = fdata.dataIndex; this.groupValue = fdata.value; //vv = $t.formatter('', this.v, k, this); //vv = this.v; } catch (ef) { vv = this.v; } retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) ); return false; } }); } return retarr; } function emptyData ( d ) { var clone = {}; for(var key=0;key<d.length; key++ ) { clone[ d[key] ] = ""; } return clone; } var sumreverse = $.makeArray(grp.groupSummary), gv; sumreverse.reverse(); if($t.p.datatype === 'local' && !$t.p.loadonce) { $($t).jqGrid('groupingSetup'); var groupingPrepare = $.jgrid.getMethod("groupingPrepare"); for(var ll=0; ll < data.body.length; ll++) { groupingPrepare.call($($t), data.body[ll], ll); } } $.each(grp.groups,function(i,n){ toEnd++; try { if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) { gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp); } else { gv = $t.formatter('', n.displayValue, cp[n.idx], n.value ); } } catch (egv) { gv = n.displayValue; } var grpTextStr = ''; if($.jgrid.isFunction(grp.groupText[n.idx])) { grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary); } else { grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary); } if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) { grpTextStr = gv; } var arr, colSpan = false; if(grp.groupSummaryPos[n.idx] === 'header') { arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ ); } else { arr = emptyData(data.header); colSpan = true; } var fkey = Object.keys(arr); arr[fkey[0]] = new Array(n.idx*5).join(' ') + grpTextStr ; retstr += addBodyRow( arr, 'td', true, toEnd === 1, colSpan ); var leaf = len-1 === n.idx; if( leaf ) { var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, end = gg !== undefined ? gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt; for(kk=sgr;kk<end;kk++) { if(!grdata[kk - offset]) { break; } var to = grdata[kk - offset]; retstr += addBodyRow( to, 'td', true ); //addRow( to, false ); } if(grp.groupSummaryPos[n.idx] !== 'header') { var jj; if (gg !== undefined) { for (jj = 0; jj < grp.groupField.length; jj++) { if (gg.dataIndex === grp.groupField[jj]) { break; } } toEnd = grp.groupField.length - jj; } for (ik = 0; ik < toEnd; ik++) { if(!sumreverse[ik]) { continue; } arr = buildSummaryTd(i, ik, grp.groups, 0); retstr += addBodyRow( arr, 'td', true ); //addRow( arr, true ); } toEnd = jj; } } }); return retstr; } if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'show'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') }); } var html = '<table class="'+o.tableClass+'">'; if ( o.includeLabels ) { html += '<thead>'+ addRow( data.header, 'th', true ) +'</thead>'; } html += '<tbody>'; var hlen, il; if ( o.includeHeader && $t.p.headerrow ) { var hdata; hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { for(il=0; il < hlen; il++) { hdata = $($t).jqGrid("headerData", "get", null, false, il, false); html += addBodyRow( hdata, 'td' , false); } } } if( $t.p.grouping ) { var savlcgr = $t.p.groupingView._locgr ? true : false; $t.p.groupingView._locgr = false; html += groupToHtml(data.body); $t.p.groupingView._locgr = savlcgr; } else { for ( i=0, ien=data.body.length ; i<ien ; i++ ) { html += addBodyRow( data.body[i], 'td', true, (i===0?true:false) ); } } if ( o.includeFooter && $t.p.footerrow ) { hlen = $($t).jqGrid("footerData", "getlength"); for(il=0; il < hlen; il++) { data.footer[il] = $($t).jqGrid("footerData", "get", null, false, il, false); html += addBodyRow( data.footer[il], 'td' , false); } } html += '</tbody>'; html += '</table>'; if (o.returnAsString ) { ret = html; } else { // Open a new window for the printable table var win = window.open( '', '' ); win.document.close(); var head = o.title ? '<title>'+o.title+'</title>' : ''; $('style, link').each( function () { head += _styleToAbs( this ); } ); try { win.document.head.innerHTML = head; // Work around for Edge } catch (e) { $(win.document.head).html( head ); // Old IE } win.document.body.innerHTML = (o.title ? '<h1>'+o.title+'</h1>' : '') + '<div>'+(o.topText || '')+'</div>'+ html+ '<div>'+(o.bottomText || '')+'</div>'; $(win.document.body).addClass('html-view'); $('img', win.document.body).each( function ( i, img ) { img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) ); } ); if( $.jgrid.isFunction( o.onBeforeExport ) ) { o.onBeforeExport.call($t, win); } if(Boolean(win.chrome)) { if ( o.autoPrint ) { win.print(); win.close(); } } else { setTimeout( function () { if ( o.autoPrint ) { win.print(); win.close(); } }, 1000 ); } } if( $.jgrid.isFunction( o.loadIndicator )) { o.loadIndicator.call($t, 'hide'); } else if(o.loadIndicator) { $($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui }); } }); return ret; } }); //module end }));
/home/emeraadmin/www/node_modules/abbrev/../array-slice/../jqGrid/js/grid.export.js