primo commit
This commit is contained in:
		
							
								
								
									
										154
									
								
								components/com_tabulizer/assets/js/slickgrid/controls/slick.pager.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								components/com_tabulizer/assets/js/slickgrid/controls/slick.pager.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,154 @@ | ||||
| (function ($) { | ||||
|   function SlickGridPager(dataView, grid, $container) { | ||||
|     var $status; | ||||
|  | ||||
|     function init() { | ||||
|       dataView.onPagingInfoChanged.subscribe(function (e, pagingInfo) { | ||||
|         updatePager(pagingInfo); | ||||
|       }); | ||||
|  | ||||
|       constructPagerUI(); | ||||
|       updatePager(dataView.getPagingInfo()); | ||||
|     } | ||||
|  | ||||
|     function getNavState() { | ||||
|       var cannotLeaveEditMode = !Slick.GlobalEditorLock.commitCurrentEdit(); | ||||
|       var pagingInfo = dataView.getPagingInfo(); | ||||
|       var lastPage = pagingInfo.totalPages - 1; | ||||
|  | ||||
|       return { | ||||
|         canGotoFirst: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum > 0, | ||||
|         canGotoLast: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum != lastPage, | ||||
|         canGotoPrev: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum > 0, | ||||
|         canGotoNext: !cannotLeaveEditMode && pagingInfo.pageSize != 0 && pagingInfo.pageNum < lastPage, | ||||
|         pagingInfo: pagingInfo | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     function setPageSize(n) { | ||||
|       dataView.setRefreshHints({ | ||||
|         isFilterUnchanged: true | ||||
|       }); | ||||
|       dataView.setPagingOptions({pageSize: n}); | ||||
|     } | ||||
|  | ||||
|     function gotoFirst() { | ||||
|       if (getNavState().canGotoFirst) { | ||||
|         dataView.setPagingOptions({pageNum: 0}); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     function gotoLast() { | ||||
|       var state = getNavState(); | ||||
|       if (state.canGotoLast) { | ||||
|         dataView.setPagingOptions({pageNum: state.pagingInfo.totalPages - 1}); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     function gotoPrev() { | ||||
|       var state = getNavState(); | ||||
|       if (state.canGotoPrev) { | ||||
|         dataView.setPagingOptions({pageNum: state.pagingInfo.pageNum - 1}); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     function gotoNext() { | ||||
|       var state = getNavState(); | ||||
|       if (state.canGotoNext) { | ||||
|         dataView.setPagingOptions({pageNum: state.pagingInfo.pageNum + 1}); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     function constructPagerUI() { | ||||
|       $container.empty(); | ||||
|  | ||||
|       var $nav = $("<span class='slick-pager-nav' />").appendTo($container); | ||||
|       var $settings = $("<span class='slick-pager-settings' />").appendTo($container); | ||||
|       $status = $("<span class='slick-pager-status' />").appendTo($container); | ||||
|  | ||||
|       $settings | ||||
|           .append("<span class='slick-pager-settings-expanded' style='display:none'>Show: <a data=0>All</a><a data='-1'>Auto</a><a data=25>25</a><a data=50>50</a><a data=100>100</a></span>"); | ||||
|  | ||||
|       $settings.find("a[data]").click(function (e) { | ||||
|         var pagesize = $(e.target).attr("data"); | ||||
|         if (pagesize != undefined) { | ||||
|           if (pagesize == -1) { | ||||
|             var vp = grid.getViewport(); | ||||
|             setPageSize(vp.bottom - vp.top); | ||||
|           } else { | ||||
|             setPageSize(parseInt(pagesize)); | ||||
|           } | ||||
|         } | ||||
|       }); | ||||
|  | ||||
|       var icon_prefix = "<span class='ui-state-default ui-corner-all ui-icon-container'><span class='ui-icon "; | ||||
|       var icon_suffix = "' /></span>"; | ||||
|  | ||||
|       $(icon_prefix + "ui-icon-lightbulb" + icon_suffix) | ||||
|           .click(function () { | ||||
|             $(".slick-pager-settings-expanded").toggle() | ||||
|           }) | ||||
|           .appendTo($settings); | ||||
|  | ||||
|       $(icon_prefix + "ui-icon-seek-first" + icon_suffix) | ||||
|           .click(gotoFirst) | ||||
|           .appendTo($nav); | ||||
|  | ||||
|       $(icon_prefix + "ui-icon-seek-prev" + icon_suffix) | ||||
|           .click(gotoPrev) | ||||
|           .appendTo($nav); | ||||
|  | ||||
|       $(icon_prefix + "ui-icon-seek-next" + icon_suffix) | ||||
|           .click(gotoNext) | ||||
|           .appendTo($nav); | ||||
|  | ||||
|       $(icon_prefix + "ui-icon-seek-end" + icon_suffix) | ||||
|           .click(gotoLast) | ||||
|           .appendTo($nav); | ||||
|  | ||||
|       $container.find(".ui-icon-container") | ||||
|           .hover(function () { | ||||
|             $(this).toggleClass("ui-state-hover"); | ||||
|           }); | ||||
|  | ||||
|       $container.children().wrapAll("<div class='slick-pager' />"); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     function updatePager(pagingInfo) { | ||||
|       var state = getNavState(); | ||||
|  | ||||
|       $container.find(".slick-pager-nav span").removeClass("ui-state-disabled"); | ||||
|       if (!state.canGotoFirst) { | ||||
|         $container.find(".ui-icon-seek-first").addClass("ui-state-disabled"); | ||||
|       } | ||||
|       if (!state.canGotoLast) { | ||||
|         $container.find(".ui-icon-seek-end").addClass("ui-state-disabled"); | ||||
|       } | ||||
|       if (!state.canGotoNext) { | ||||
|         $container.find(".ui-icon-seek-next").addClass("ui-state-disabled"); | ||||
|       } | ||||
|       if (!state.canGotoPrev) { | ||||
|         $container.find(".ui-icon-seek-prev").addClass("ui-state-disabled"); | ||||
|       } | ||||
|  | ||||
|       if (pagingInfo.pageSize == 0) { | ||||
|         var totalRowsCount = dataView.getItems().length; | ||||
|         var visibleRowsCount = pagingInfo.totalRows; | ||||
|         if (visibleRowsCount < totalRowsCount) { | ||||
|           $status.text("Showing " + visibleRowsCount + " of " + totalRowsCount + " rows"); | ||||
|         } else { | ||||
|           $status.text("Showing all " + totalRowsCount + " rows"); | ||||
|         } | ||||
|         $status.text("Showing all " + pagingInfo.totalRows + " rows"); | ||||
|       } else { | ||||
|         $status.text("Showing page " + (pagingInfo.pageNum + 1) + " of " + pagingInfo.totalPages); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     init(); | ||||
|   } | ||||
|  | ||||
|   // Slick.Controls.Pager | ||||
|   $.extend(true, window, { Slick:{ Controls:{ Pager:SlickGridPager }}}); | ||||
| })(jQuery); | ||||
		Reference in New Issue
	
	Block a user