UNPKG

free-jqgrid

Version:

grid as jQuery plugin - fork of jqGrid before licensing change

10 lines 4.21 kB
/** * @license Copyright (c) 2014-2018, Oleg Kiriljuk, oleg.kiriljuk@ok-soft-gmbh.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 * Date: 2014-11-13, 2015-04-06 * see https://github.com/tonytomov/jqGrid/issues/650 for more details */ !function(i,n){"use strict";"function"==typeof define&&define.amd?define(["jquery","./jquery.contextmenu-ui","free-jqgrid/grid.base"],function(e){return n(e,i,i.document)}):"object"==typeof module&&module.exports?module.exports=function(e,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(e||window)),require("./jquery.contextmenu-ui"),require("free-jqgrid/grid.base"),n(i,e,e.document),i}:n(jQuery,i,i.document)}("undefined"!=typeof window?window:this,function(b,x,j){"use strict";b.jgrid=b.jgrid||{},b.extend(b.jgrid,{showHideColumnMenu:{adjustGridWidth:!0,viewHideDlgColumnsAsDisabled:!1,allowHideInernalColumns:!1,shrink:!1,menuStyle:{float:"left"},modifyMenuItem:function(e,i,n){0<=b.inArray(i.name,["rn","subgrid","cb"])?n.allowHideInernalColumns||e.hide():i.hidedlg&&(n.viewHideDlgColumnsAsDisabled?e.addClass("ui-state-disabled"):e.hide())}}}),b.jgrid.extend({showHideColumnMenu:function(e){var C=b.extend(!0,{},b.jgrid.showHideColumnMenu,e),i=null!=b.ui&&"string"==typeof b.ui.version?/^([0-9]+)\.([0-9]+)\.([0-9]+)$/.exec(b.ui.version):[],k=null!=i&&4===i.length&&"1"===i[1]&&i[2]<11;return this.each(function(){var g=b(this),e=function(){b(this.grid.hDiv).find(".ui-jqgrid-labels").contextmenu(function(e){var i,n,t,o,c,r,l,d=g.jqGrid("getGridParam"),u=d.colModel,s=d.colNames,a=u.length,h=d.groupHeader,f={},m={},p=b("<ul class='ui-jqgrid-showHideColumnMenu'></ul>");for(i=0;i<a;i++)f[u[i].name]=i;if(null!=h&&null!=h.groupHeaders)for(o=0,r=h.groupHeaders.length;o<r;o++)for(l=h.groupHeaders[o],c=0;c<l.numberOfColumns;c++)i=f[l.startColumnName]+c,n=u[i],m[i]=b.isFunction(C.buildItemText)?C.buildItemText.call(g[0],{iCol:i,cm:n,cmName:n.name,colName:s[i],groupTitleText:l.titleText}):b.jgrid.stripHtml(l.titleText)+": "+b.jgrid.stripHtml(""===s[i]?n.name:s[i]);for(i=0;i<a;i++)void 0===m[i]&&(n=u[i],m[i]=b.isFunction(C.buildItemText)?C.buildItemText.call(g[0],{iCol:i,cm:n,cmName:n.name,colName:s[i],groupTitleText:null}):b.jgrid.stripHtml(s[i]));for(i=0;i<a;i++)n=u[i],t=b("<li></li>").data("iCol",i).html(m[i]),C.modifyMenuItem.call(g[0],t,n,C),t.prepend(n.hidden?C.checkboxUnChecked:C.checkboxChecked),k&&t.wrapInner("<a></a>"),t.appendTo(p);return p.css(C.menuStyle),b("ul.ui-jqgrid-showHideColumnMenu").menu("destroy").remove(),p.appendTo("body").menu({select:function(e,i){var n=parseInt(i.item.data("iCol"),10),t=i.item.find(C.checkboxSelector),o=u[n],c=C.isChecked.call(g[0],t,e,o);!isNaN(n)&&0<=n&&null!=o&&0<t.length&&(c?(C.toUnCheck.call(g[0],t,e,o),g.jqGrid("hideCol",o.name)):(C.toCheck.call(g[0],t,e,o),g.jqGrid("showCol",o.name)),b(this).parent().css("zoom",1),p.menu("focus",e,i.item))},create:function(){var e=p.height(),i=x.innerHeight||j.documentElement.clientHeight;i<e&&p.height(i).css("overflow-y","scroll")}}).mouseleave(function(){b(this).menu("destroy").remove()}).position({of:b(e.target),my:"left top",at:"right center",collision:"flipfit flipfit"}),!1})};C=b.extend(!0,"fontAwesome"===this.p.iconSet||"fontAwesome"===C.iconSet?{checkboxChecked:'<i class="fa fa-check-square-o fa-fw fa-lg"></i>&nbsp;',checkboxUnChecked:'<i class="fa fa-square-o fa-fw fa-lg"></i>&nbsp;',checkboxSelector:"i.fa",isChecked:function(e){return e.hasClass("fa-check-square-o")},toCheck:function(e){e.removeClass("fa-square-o").addClass("fa-check-square-o")},toUnCheck:function(e){e.removeClass("fa-check-square-o").addClass("fa-square-o")}}:{checkboxChecked:'<input disabled="disabled" checked="checked" type="checkbox"/>',checkboxUnChecked:'<input disabled="disabled" type="checkbox"/>',checkboxSelector:"input[type=checkbox]",isChecked:function(e){return e.is(":checked")},toCheck:function(e){e.prop("checked",!0)},toUnCheck:function(e){e.prop("checked",!1)}},C),e.call(this),g.bind("jqGridAfterSetGroupHeaders",function(){e.call(this)})})}})}); //# sourceMappingURL=jquery.jqgrid.showhidecolumnmenu.js.map