From 7cca20a27234207d6d114a39a3263ae9c88fd171 Mon Sep 17 00:00:00 2001 From: Kartik Visweswaran Date: Wed, 7 Sep 2016 01:37:42 +0530 Subject: [PATCH] Updates to release v3.1.3 fixes #565 --- CHANGE.md | 1 + EditableColumnAction.php | 2 +- assets/js/kv-grid-export.js | 14 +++++++++----- assets/js/kv-grid-export.min.js | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGE.md b/CHANGE.md index 9a5467ac..d76f9535 100755 --- a/CHANGE.md +++ b/CHANGE.md @@ -12,6 +12,7 @@ Change Log: `yii2-grid` 5. (enh #562): Enhance `EditableColumnAction` to support model scenario as a parameter. 6. (enh #564): Enhance page summary to render within table body and add new property`GridView::pageSummaryContainer`. 7. Enhance PHP Documentation for all classes and methods in the extension. +8. (enh #565): Better exported content parsing for header, footer, and page summary. ## Version 3.1.2 diff --git a/EditableColumnAction.php b/EditableColumnAction.php index d1a4096e..7866e1e3 100755 --- a/EditableColumnAction.php +++ b/EditableColumnAction.php @@ -131,7 +131,7 @@ class EditableColumnAction extends Action /** * @var string allows overriding the form name which is used to access posted data */ - public $formName = ''; + public $formName; /** * @inheritdoc diff --git a/assets/js/kv-grid-export.js b/assets/js/kv-grid-export.js index 56f6e5fb..4a3e5995 100755 --- a/assets/js/kv-grid-export.js +++ b/assets/js/kv-grid-export.js @@ -88,6 +88,7 @@ var self = this, gridOpts = options.gridOpts, genOpts = options.genOpts; self.$element = $(element); //noinspection JSUnresolvedVariable + self.gridId = gridOpts.gridId; self.$grid = $("#" + gridOpts.gridId); self.dialogLib = options.dialogLib; self.messages = gridOpts.messages; @@ -223,7 +224,10 @@ }, clean: function (expType) { var self = this, $table = self.$table.clone(), - $tHead = self.$table.closest('.kv-grid-container').find('.kv-thead-float thead'); + $tHead = self.$table.closest('.kv-grid-container').find('.kv-thead-float thead'), + safeRemove = function(selector) { + $table.find(selector + '.' + self.gridId).remove(); + }; if ($tHead.length) { $tHead = $tHead.clone(); $table.find('thead').before($tHead).remove(); @@ -237,16 +241,16 @@ }); $table.find('input').remove(); // remove any form inputs if (!self.showHeader) { - $table.find('thead').remove(); + $table.children('thead').remove(); } if (!self.showPageSummary) { - $table.find('tfoot.kv-page-summary').remove(); + safeRemove('.kv-page-summary-container'); } if (!self.showFooter) { - $table.find('tfoot.kv-table-footer').remove(); + safeRemove('.kv-footer-container'); } if (!self.showCaption) { - $table.find('kv-table-caption').remove(); + safeRemove('.kv-caption-container'); } $table.find('.skip-export').remove(); $table.find('.skip-export-' + expType).remove(); diff --git a/assets/js/kv-grid-export.min.js b/assets/js/kv-grid-export.min.js index acf035ad..f51377bc 100755 --- a/assets/js/kv-grid-export.min.js +++ b/assets/js/kv-grid-export.min.js @@ -11,4 +11,4 @@ * Copyright: 2015, Kartik Visweswaran, Krajee.com * For more JQuery plugins visit http://plugins.krajee.com * For more Yii related demos visit http://demos.krajee.com - */!function(e){"use strict";var t,o,n,r,i,a,l="urn:schemas-microsoft-com:office:";t=function(e,t,o){return e.split(t).join(o)},o=function(t,o){return null===t||void 0===t||0===t.length||o&&""===e.trim(t)},n=function(e,t,o,n){var r=screen.width/2-o/2,i=60,a=window.open("",t,"",!0);return a.close(),window.open(e,t,"toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width="+o+", height="+n+", top="+i+", left="+r)},r=function(e){return e.toLowerCase().replace(/[^\w ]+/g,"").replace(/ +/g,"-")},i={html:'{css}{data}',pdf:"{before}\n{data}\n{after}",excel:'{css}{data}',popup:'Grid Export - © Krajee{msg}'},a=function(t,o){var n=this,r=o.gridOpts,i=o.genOpts;n.$element=e(t),n.$grid=e("#"+r.gridId),n.dialogLib=o.dialogLib,n.messages=r.messages,n.target=r.target,n.exportConversions=r.exportConversions,n.showConfirmAlert=r.showConfirmAlert,n.filename=i.filename,n.showHeader=i.showHeader,n.showFooter=i.showFooter,n.showPageSummary=i.showPageSummary,n.$table=n.$grid.find(".kv-grid-table:first"),n.$form=n.$grid.find("form.kv-export-form"),n.encoding=n.$form.find('[name="export_encoding"]').val(),n.columns=n.showHeader?"td,th":"td",n.alertMsg=o.alertMsg,n.config=o.config,n.popup="",n.listen()},a.prototype={constructor:a,getArray:function(t){var n=this,i=n.clean(t),a=[],l={};return void 0!==n.config.colHeads&&n.config.colHeads.length>0?a=n.config.colHeads:i.find("thead tr th").each(function(t){var i=e(this).text().trim(),l=r(i);a[t]=!n.config.slugColHeads||o(l)?"col_"+t:l}),i.find('tbody tr:has("td")').each(function(t){l[t]={},e(this).children("td").each(function(o){var n=a[o];l[t][n]=e(this).text().trim()})}),l},setPopupAlert:function(e){var t=this;if(void 0!==t.popup.document)if(arguments.length&&arguments[1]){var o=t.popup.document.getElementsByTagName("body");setTimeout(function(){o[0].innerHTML=e},4e3)}else{var n=i.popup.replace("{msg}",e);t.popup.document.write(n)}},processExport:function(e,t){var n=this;setTimeout(function(){o(t)?n[e]():n[e](t)},100)},listenClick:function(e){var t=this,n=arguments.length>1?arguments[1]:"",r=window[t.dialogLib];t.$element.off("click.gridexport").on("click.gridexport",function(i){if(i.stopPropagation(),i.preventDefault(),!t.showConfirmAlert)return void t.processExport(e,n);var a=t.messages,l=o(t.alertMsg)?"":t.alertMsg,s=o(a.allowPopups)?"":a.allowPopups,c=o(a.confirmDownload)?"":a.confirmDownload,d="";return d=l.length&&s.length?l+"\n\n"+s:!l.length&&s.length?s:l.length&&!s.length?l:"",c.length&&(d=d+"\n\n"+c),o(d)?void 0:(r.confirm(d,function(o){o&&t.processExport(e,n),i.preventDefault()}),!1)})},listen:function(){var e=this;"_popup"===e.target&&e.$form.on("submit.gridexport",function(){setTimeout(function(){e.setPopupAlert(e.messages.downloadComplete,!0)},1e3)}),e.$element.hasClass("export-csv")&&e.listenClick("exportTEXT","csv"),e.$element.hasClass("export-txt")&&e.listenClick("exportTEXT","txt"),e.$element.hasClass("export-html")&&e.listenClick("exportHTML"),e.$element.hasClass("export-xls")&&e.listenClick("exportEXCEL"),e.$element.hasClass("export-json")&&e.listenClick("exportJSON"),e.$element.hasClass("export-pdf")&&e.listenClick("exportPDF")},clean:function(t){var o=this,n=o.$table.clone(),r=o.$table.closest(".kv-grid-container").find(".kv-thead-float thead");r.length&&(r=r.clone(),n.find("thead").before(r).remove()),n.find("tr.filters").remove(),n.find("th").removeAttr("rowspan"),n.find("th").find("a").each(function(){e(this).contents().unwrap()}),n.find("input").remove(),o.showHeader||n.find("thead").remove(),o.showPageSummary||n.find("tfoot.kv-page-summary").remove(),o.showFooter||n.find("tfoot.kv-table-footer").remove(),o.showCaption||n.find("kv-table-caption").remove(),n.find(".skip-export").remove(),n.find(".skip-export-"+t).remove();var i=n.html();return i=o.preProcess(i),n.html(i),console.log(n),n},preProcess:function(e){var o,n=this,r=n.exportConversions,i=r.length,a=e;if(i>0)for(var l=0;i>l;l++)o=r[l],a=t(a,o.from,o.to);return a},download:function(e,t){var r=this,i=r.$element.data("format"),a=o(r.config)?{}:r.config;r.$form.find('[name="export_filetype"]').val(e),r.$form.find('[name="export_filename"]').val(r.filename),r.$form.find('[name="export_content"]').val(t),r.$form.find('[name="export_mime"]').val(i),"pdf"===e?r.$form.find('[name="export_config"]').val(JSON.stringify(a)):r.$form.find('[name="export_config"]').val(""),"_popup"===r.target&&(r.popup=n("","kvDownloadDialog",350,120),r.popup.focus(),r.setPopupAlert(r.messages.downloadProgress)),r.$form.submit()},exportHTML:function(){var t=this,o=t.clean("html"),n=t.config,r=t.config.cssFile&&n.cssFile.length?'':"",a=i.html.replace("{encoding}",t.encoding).replace("{css}",r).replace("{data}",e("
").html(o).html());t.download("html",a)},exportPDF:function(){var t=this,n=t.clean("pdf"),r=o(t.config.contentBefore)?"":t.config.contentBefore,a=o(t.config.contentAfter)?"":t.config.contentAfter,l=t.config.css,s=i.pdf.replace("{css}",l).replace("{before}",r).replace("{after}",a).replace("{data}",e("
").html(n).html());t.download("pdf",s)},exportTEXT:function(t){var o=this,n=o.clean(t),r=n.find("tr:has("+o.columns+")"),i=String.fromCharCode(11),a=String.fromCharCode(0),l='"'+o.config.colDelimiter+'"',s='"'+o.config.rowDelimiter+'"',c='"'+r.map(function(t,n){var r=e(n),a=r.find(o.columns);return a.map(function(t,o){var n=e(o),r=n.text().trim();return r.replace(/"/g,'""')}).get().join(i)}).get().join(a).split(a).join(s).split(i).join(l)+'"';o.download(t,c)},exportJSON:function(){var e=this,t=e.getArray("json");t=JSON.stringify(t,e.config.jsonReplacer,e.config.indentSpace),e.download("json",t)},exportEXCEL:function(){var t,o,n=this,r=n.clean("xls"),a=n.config,l=a.cssFile&&n.config.cssFile.length?'':"";r.find("td[data-raw-value]").each(function(){o=e(this),(o.css("mso-number-format")||0===o.css("mso-number-format")||"0"===o.css("mso-number-format"))&&o.html(o.attr("data-raw-value")).removeAttr("data-raw-value")}),t=i.excel.replace("{encoding}",n.encoding).replace("{css}",l).replace("{worksheet}",n.config.worksheet).replace("{data}",e("
").html(r).html()).replace(/"/g,"'"),n.download("xls",t)}},e.fn.gridexport=function(t){var o=Array.apply(null,arguments);return o.shift(),this.each(function(){var n=e(this),r=n.data("gridexport"),i="object"==typeof t&&t;r||n.data("gridexport",r=new a(this,e.extend({},e.fn.gridexport.defaults,i,e(this).data()))),"string"==typeof t&&r[t].apply(r,o)})},e.fn.gridexport.defaults={dialogLib:"krajeeDialog"},e.fn.gridexport.Constructor=a}(window.jQuery); \ No newline at end of file + */!function(a){"use strict";var b,c,d,e,f,g,h="urn:schemas-microsoft-com:office:";b=function(a,b,c){return a.split(b).join(c)},c=function(b,c){return null===b||void 0===b||0===b.length||c&&""===a.trim(b)},d=function(a,b,c,d){var e=screen.width/2-c/2,f=60,g=window.open("",b,"",!0);return g.close(),window.open(a,b,"toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width="+c+", height="+d+", top="+f+", left="+e)},e=function(a){return a.toLowerCase().replace(/[^\w ]+/g,"").replace(/ +/g,"-")},f={html:'{css}{data}',pdf:"{before}\n{data}\n{after}",excel:'{css}{data}',popup:'Grid Export - © Krajee{msg}'},g=function(b,c){var d=this,e=c.gridOpts,f=c.genOpts;d.$element=a(b),d.gridId=e.gridId,d.$grid=a("#"+e.gridId),d.dialogLib=c.dialogLib,d.messages=e.messages,d.target=e.target,d.exportConversions=e.exportConversions,d.showConfirmAlert=e.showConfirmAlert,d.filename=f.filename,d.showHeader=f.showHeader,d.showFooter=f.showFooter,d.showPageSummary=f.showPageSummary,d.$table=d.$grid.find(".kv-grid-table:first"),d.$form=d.$grid.find("form.kv-export-form"),d.encoding=d.$form.find('[name="export_encoding"]').val(),d.columns=d.showHeader?"td,th":"td",d.alertMsg=c.alertMsg,d.config=c.config,d.popup="",d.listen()},g.prototype={constructor:g,getArray:function(b){var d=this,f=d.clean(b),g=[],h={};return void 0!==d.config.colHeads&&d.config.colHeads.length>0?g=d.config.colHeads:f.find("thead tr th").each(function(b){var f=a(this).text().trim(),h=e(f);g[b]=!d.config.slugColHeads||c(h)?"col_"+b:h}),f.find('tbody tr:has("td")').each(function(b){h[b]={},a(this).children("td").each(function(c){var d=g[c];h[b][d]=a(this).text().trim()})}),h},setPopupAlert:function(a){var b=this;if(void 0!==b.popup.document)if(arguments.length&&arguments[1]){var c=b.popup.document.getElementsByTagName("body");setTimeout(function(){c[0].innerHTML=a},4e3)}else{var d=f.popup.replace("{msg}",a);b.popup.document.write(d)}},processExport:function(a,b){var d=this;setTimeout(function(){c(b)?d[a]():d[a](b)},100)},listenClick:function(a){var b=this,d=arguments.length>1?arguments[1]:"",e=window[b.dialogLib];b.$element.off("click.gridexport").on("click.gridexport",function(f){if(f.stopPropagation(),f.preventDefault(),!b.showConfirmAlert)return void b.processExport(a,d);var g=b.messages,h=c(b.alertMsg)?"":b.alertMsg,i=c(g.allowPopups)?"":g.allowPopups,j=c(g.confirmDownload)?"":g.confirmDownload,k="";return k=h.length&&i.length?h+"\n\n"+i:!h.length&&i.length?i:h.length&&!i.length?h:"",j.length&&(k=k+"\n\n"+j),c(k)?void 0:(e.confirm(k,function(c){c&&b.processExport(a,d),f.preventDefault()}),!1)})},listen:function(){var a=this;"_popup"===a.target&&a.$form.on("submit.gridexport",function(){setTimeout(function(){a.setPopupAlert(a.messages.downloadComplete,!0)},1e3)}),a.$element.hasClass("export-csv")&&a.listenClick("exportTEXT","csv"),a.$element.hasClass("export-txt")&&a.listenClick("exportTEXT","txt"),a.$element.hasClass("export-html")&&a.listenClick("exportHTML"),a.$element.hasClass("export-xls")&&a.listenClick("exportEXCEL"),a.$element.hasClass("export-json")&&a.listenClick("exportJSON"),a.$element.hasClass("export-pdf")&&a.listenClick("exportPDF")},clean:function(b){var c=this,d=c.$table.clone(),e=c.$table.closest(".kv-grid-container").find(".kv-thead-float thead"),f=function(a){d.find(a+"."+c.gridId).remove()};e.length&&(e=e.clone(),d.find("thead").before(e).remove()),d.find("tr.filters").remove(),d.find("th").removeAttr("rowspan"),d.find("th").find("a").each(function(){a(this).contents().unwrap()}),d.find("input").remove(),c.showHeader||d.children("thead").remove(),c.showPageSummary||f(".kv-page-summary-container"),c.showFooter||f(".kv-footer-container"),c.showCaption||f(".kv-caption-container"),d.find(".skip-export").remove(),d.find(".skip-export-"+b).remove();var g=d.html();return g=c.preProcess(g),d.html(g),d},preProcess:function(a){var g,c=this,d=c.exportConversions,e=d.length,f=a;if(e>0)for(var h=0;h':"",g=f.html.replace("{encoding}",b.encoding).replace("{css}",e).replace("{data}",a("
").html(c).html());b.download("html",g)},exportPDF:function(){var b=this,d=b.clean("pdf"),e=c(b.config.contentBefore)?"":b.config.contentBefore,g=c(b.config.contentAfter)?"":b.config.contentAfter,h=b.config.css,i=f.pdf.replace("{css}",h).replace("{before}",e).replace("{after}",g).replace("{data}",a("
").html(d).html());b.download("pdf",i)},exportTEXT:function(b){var c=this,d=c.clean(b),e=d.find("tr:has("+c.columns+")"),f=String.fromCharCode(11),g=String.fromCharCode(0),h='"'+c.config.colDelimiter+'"',i='"'+c.config.rowDelimiter+'"',j='"'+e.map(function(b,d){var e=a(d),g=e.find(c.columns);return g.map(function(b,c){var d=a(c),e=d.text().trim();return e.replace(/"/g,'""')}).get().join(f)}).get().join(g).split(g).join(i).split(f).join(h)+'"';c.download(b,j)},exportJSON:function(){var a=this,b=a.getArray("json");b=JSON.stringify(b,a.config.jsonReplacer,a.config.indentSpace),a.download("json",b)},exportEXCEL:function(){var e,g,b=this,c=b.clean("xls"),d=b.config,h=d.cssFile&&b.config.cssFile.length?'':"";c.find("td[data-raw-value]").each(function(){g=a(this),(g.css("mso-number-format")||0===g.css("mso-number-format")||"0"===g.css("mso-number-format"))&&g.html(g.attr("data-raw-value")).removeAttr("data-raw-value")}),e=f.excel.replace("{encoding}",b.encoding).replace("{css}",h).replace("{worksheet}",b.config.worksheet).replace("{data}",a("
").html(c).html()).replace(/"/g,"'"),b.download("xls",e)}},a.fn.gridexport=function(b){var c=Array.apply(null,arguments);return c.shift(),this.each(function(){var d=a(this),e=d.data("gridexport"),f="object"==typeof b&&b;e||d.data("gridexport",e=new g(this,a.extend({},a.fn.gridexport.defaults,f,a(this).data()))),"string"==typeof b&&e[b].apply(e,c)})},a.fn.gridexport.defaults={dialogLib:"krajeeDialog"},a.fn.gridexport.Constructor=g}(window.jQuery); \ No newline at end of file