From 08ad042e155960899f44ab7a3474d0bab04a903b Mon Sep 17 00:00:00 2001 From: Akita Noek Date: Fri, 24 Jan 2014 19:19:13 -0500 Subject: [PATCH] Added support for pagination on the top, bottom, or both Usage: ...
--- ng-table.map | 1 - ng-table.min.css | 2 +- ng-table.min.js | 4 ++-- ng-table.src.js | 14 +++++++++++--- src/scripts/05-directive.js | 14 +++++++++++--- 5 files changed, 25 insertions(+), 10 deletions(-) delete mode 100644 ng-table.map diff --git a/ng-table.map b/ng-table.map deleted file mode 100644 index 445b71ce..00000000 --- a/ng-table.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ng-table.min.js","sources":["ng-table.src.js"],"names":["angular","factory","define","amd","app","module","$q","$log","isNumber","n","isNaN","parseFloat","isFinite","ngTableParams","baseParameters","baseSettings","self","this","data","parameters","newParameters","parseParamsFromUrl","isDefined","key","value","indexOf","keys","split","reverse","lastKey","i","len","length","name","v","params","extend","debug","settings","newSettings","isArray","total","page","count","filter","sorting","arguments","sortArray","isSortBy","field","direction","orderBy","column","push","getData","$defer","resolve","isObject","slice","getGroups","defer","promise","then","groups","forEach","item","groupName","isFunction","result","generatePagesArray","currentPage","totalItems","pageSize","maxBlocks","maxPage","maxPivotPages","minPage","numPages","pages","Math","ceil","type","number","max","active","round","min","url","asString","pairs","hasOwnProperty","encodeURIComponent","subkey","isUndefined","pname","reload","$loading","groupBy","$scope","$groups","$data","reloadPages","$params","group","counts","ngTableController","$watch","sortBy","event","parsedSortable","parse","sortable","sortingParams","ctrlKey","directive","$compile","$parse","restrict","priority","scope","controller","compile","element","columns","row","thead","find","tr","hasClass","el","attr","parsedAttribute","defaultValue","$columns","parsedTitle","headerTemplateURL","filterTemplateURL","filterName","templateURL","id","title","class","filterData","show","attrs","ngTable","paramsModel","text","showFilter","$parent","show_filter","def","$column","Error","unshift","templates","header","templateHeader","pagination","templatePagination","headerTemplate","document","createElement","paginationTemplate","remove","prepend","addClass","after","run","$templateCache","put"],"mappings":"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"} \ No newline at end of file diff --git a/ng-table.min.css b/ng-table.min.css index 8975838c..176d751c 100644 --- a/ng-table.min.css +++ b/ng-table.min.css @@ -1,3 +1,3 @@ /*! ngTable v0.3.2 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */ -.ng-table th{text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-table th.sortable{cursor:pointer}.ng-table th.sortable div{padding-right:18px;position:relative}.ng-table th.sortable div:after,.ng-table th.sortable div:before{content:"";border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:visible;right:8px;top:50%;position:absolute;opacity:.3;margin-top:-4px}.ng-table th.sortable div:before{margin-top:2px;border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000}.ng-table th.sortable div:hover:after,.ng-table th.sortable div:hover:before{opacity:1;visibility:visible}.ng-table th.sortable.sort-desc,.ng-table th.sortable.sort-asc{background-color:rgba(141,192,219,.25);text-shadow:0 1px 1px rgba(255,255,255,.75)}.ng-table th.sortable.sort-desc div:after,.ng-table th.sortable.sort-asc div:after{margin-top:-2px}.ng-table th.sortable.sort-desc div:before,.ng-table th.sortable.sort-asc div:before{visibility:hidden}.ng-table th.sortable.sort-asc div:after,.ng-table th.sortable.sort-asc div:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.sortable.sort-desc div:after{border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.filter .input-filter{margin:0;display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-table+.pagination{margin-top:0}@media only screen and (max-width:800px){.ng-table-responsive{border-bottom:1px solid #999}.ng-table-responsive tr{border-top:1px solid #999;border-left:1px solid #999;border-right:1px solid #999}.ng-table-responsive td:before{position:absolute;padding:8px;left:0;top:0;width:50%;white-space:nowrap;text-align:left;font-weight:700}.ng-table-responsive thead tr th{text-align:left}.ng-table-responsive thead tr.ng-table-filters th{padding:0}.ng-table-responsive thead tr.ng-table-filters th form>div{padding:8px}.ng-table-responsive td{border:0;border-bottom:1px solid #eee;position:relative;padding-left:50%;white-space:normal;text-align:left}.ng-table-responsive td:before{content:attr(data-title-text)}.ng-table-responsive,.ng-table-responsive thead,.ng-table-responsive tbody,.ng-table-responsive th,.ng-table-responsive td,.ng-table-responsive tr{display:block}} \ No newline at end of file +.ng-table th{text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-table th.sortable{cursor:pointer}.ng-table th.sortable div{padding-right:18px;position:relative}.ng-table th.sortable div:after,.ng-table th.sortable div:before{content:"";border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:visible;right:8px;top:50%;position:absolute;opacity:.3;margin-top:-4px}.ng-table th.sortable div:before{margin-top:2px;border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000}.ng-table th.sortable div:hover:after,.ng-table th.sortable div:hover:before{opacity:1;visibility:visible}.ng-table th.sortable.sort-asc,.ng-table th.sortable.sort-desc{background-color:rgba(141,192,219,.25);text-shadow:0 1px 1px rgba(255,255,255,.75)}.ng-table th.sortable.sort-asc div:after,.ng-table th.sortable.sort-desc div:after{margin-top:-2px}.ng-table th.sortable.sort-asc div:before,.ng-table th.sortable.sort-desc div:before{visibility:hidden}.ng-table th.sortable.sort-asc div:after,.ng-table th.sortable.sort-asc div:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.sortable.sort-desc div:after{border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.filter .input-filter{margin:0;display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-table+.pagination{margin-top:0}@media only screen and (max-width:800px){.ng-table-responsive{border-bottom:1px solid #999}.ng-table-responsive tr{border-top:1px solid #999;border-left:1px solid #999;border-right:1px solid #999}.ng-table-responsive td:before{position:absolute;padding:8px;left:0;top:0;width:50%;white-space:nowrap;text-align:left;font-weight:700}.ng-table-responsive thead tr th{text-align:left}.ng-table-responsive thead tr.ng-table-filters th{padding:0}.ng-table-responsive thead tr.ng-table-filters th form>div{padding:8px}.ng-table-responsive td{border:0;border-bottom:1px solid #eee;position:relative;padding-left:50%;white-space:normal;text-align:left}.ng-table-responsive td:before{content:attr(data-title-text)}.ng-table-responsive,.ng-table-responsive tbody,.ng-table-responsive td,.ng-table-responsive th,.ng-table-responsive thead,.ng-table-responsive tr{display:block}} \ No newline at end of file diff --git a/ng-table.min.js b/ng-table.min.js index 28b818a4..611c48ce 100644 --- a/ng-table.min.js +++ b/ng-table.min.js @@ -1,4 +1,4 @@ /*! ngTable v0.3.2 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */ -!function(a,b){return"function"==typeof define&&define.amd?void define(["angular"],function(a){return b(a)}):b(a)}(angular||null,function(a){var b=a.module("ngTable",[]);b.factory("ngTableParams",["$q","$log",function(b,c){var d=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},e=function(e,f){var g=this;this.data=[],this.parameters=function(b,e){if(e=e||!1,a.isDefined(b)){for(var f in b){var g=b[f];if(e&&f.indexOf("[")>=0){for(var i=f.split(/\[(.*)\]/).reverse(),j="",k=0,l=i.length;l>k;k++){var m=i[k];if(""!==m){var n=g;g={},g[j=m]=d(n)?parseFloat(n):n}}"sorting"===j&&(h[j]={}),h[j]=a.extend(h[j]||{},g[j])}else h[f]=d(b[f])?parseFloat(b[f]):b[f]}return c.debug&&c.debug("ngTable: set parameters",h),this}return h},this.settings=function(b){return a.isDefined(b)?(a.isArray(b.data)&&(b.total=b.data.length),i=a.extend(i,b),c.debug&&c.debug("ngTable: set settings",i),this):i},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):h.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):i.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):h.count},this.filter=function(b){return a.isDefined(b)?this.parameters({filter:b}):h.filter},this.sorting=function(b){if(2==arguments.length){var c={};return c[b]=arguments[1],this.parameters({sorting:c}),this}return a.isDefined(b)?this.parameters({sorting:b}):h.sorting},this.isSortBy=function(b,c){return a.isDefined(h.sorting[b])&&h.sorting[b]==c},this.orderBy=function(){var a=[];for(var b in h.sorting)a.push(("asc"===h.sorting[b]?"+":"-")+b);return a},this.getData=function(b,c){b.resolve(a.isArray(this.data)&&a.isObject(c)?this.data.slice((c.page()-1)*c.count(),c.page()*c.count()):[])},this.getGroups=function(d,e){var f=b.defer();f.promise.then(function(b){var f={};a.forEach(b,function(b){var c=a.isFunction(e)?e(b):b[e];f[c]=f[c]||{data:[]},f[c].value=c,f[c].data.push(b)});var g=[];for(var h in f)g.push(f[h]);c.debug&&c.debug("ngTable: refresh groups",g),d.resolve(g)}),this.getData(f,g)},this.generatePagesArray=function(a,b,c){var d,e,f,g,h,i;if(d=11,i=[],h=Math.ceil(b/c),h>1){i.push({type:"prev",number:Math.max(1,a-1),active:a>1}),i.push({type:"first",number:1,active:a>1}),f=Math.round((d-5)/2),g=Math.max(2,a-f),e=Math.min(h-1,a+2*f-(a-g)),g=Math.max(2,g-(2*f-(e-g)));for(var j=g;e>=j;)i.push(j===g&&2!==j||j===e&&j!==h-1?{type:"more",active:!1}:{type:"page",number:j,active:a!==j}),j++;i.push({type:"last",number:h,active:a!==h}),i.push({type:"next",number:Math.min(h,a+1),active:h>a})}return i},this.url=function(b){b=b||!1;var c=b?[]:{};for(key in h)if(h.hasOwnProperty(key)){var d=h[key],e=encodeURIComponent(key);if("object"==typeof d){for(var f in d)if(!a.isUndefined(d[f])&&""!==d[f]){var g=e+"["+encodeURIComponent(f)+"]";b?c.push(g+"="+d[f]):c[g]=d[f]}}else a.isFunction(d)||a.isUndefined(d)||""===d||(b?c.push(e+"="+encodeURIComponent(d)):c[e]=encodeURIComponent(d))}return c},this.reload=function(){var a=b.defer(),d=this;i.$loading=!0,i.groupBy?i.getGroups(a,i.groupBy,this):i.getData(a,this),c.debug&&c.debug("ngTable: reload data"),a.promise.then(function(a){i.$loading=!1,c.debug&&c.debug("ngTable: current scope",i.$scope),d.data=i.groupBy?i.$scope.$groups=a:i.$scope.$data=a,i.$scope.pages=d.generatePagesArray(d.page(),d.total(),d.count())})},this.reloadPages=function(){var a=this;i.$scope.pages=a.generatePagesArray(a.page(),a.total(),a.count())};var h=this.$params={page:1,count:1,filter:{},sorting:{},group:{},groupBy:null},i={$scope:null,$loading:!1,data:null,total:0,counts:[10,25,50,100],getGroups:this.getGroups,getData:this.getData};return this.settings(f),this.parameters(e,!0),this};return e}]);var c=["$scope","ngTableParams","$q",function(a,b){a.$loading=!1,a.params||(a.params=new b),a.params.settings().$scope=a,a.$watch("params.$params",function(){a.params.settings().$scope=a,a.params.reload()},!0),a.sortBy=function(b,c){var d=a.parse(b.sortable);if(d){var e=a.params.sorting()&&a.params.sorting()[d]&&"desc"===a.params.sorting()[d],f=c.ctrlKey?a.params.sorting():{};f[d]=e?"asc":"desc",a.params.parameters({sorting:f})}}}];return b.directive("ngTable",["$compile","$q","$parse",function(b,d,e){"use strict";return{restrict:"A",priority:1001,scope:!0,controller:c,compile:function(c){var d=[],f=0,g=null,h=c.find("thead");return a.forEach(a.element(c.find("tr")),function(b){b=a.element(b),b.hasClass("ng-table-group")||g||(g=b)}),g?(a.forEach(g.find("td"),function(b){var c=a.element(b);if(!c.attr("ignore-cell")||"true"!==c.attr("ignore-cell")){var g=function(a,b){return function(f){return e(c.attr("x-data-"+a)||c.attr("data-"+a)||c.attr(a))(f,{$columns:d})||b}},h=g("title"," "),i=g("header",!1),j=g("filter",!1)(),k=!1,l=!1;j&&j.name&&(l=j.name,delete j.name),j&&j.templateURL&&(k=j.templateURL,delete j.templateURL),c.attr("data-title-text",h()),d.push({id:f++,title:h,sortable:g("sortable",!1),"class":c.attr("x-data-header-class")||c.attr("data-header-class")||c.attr("header-class"),filter:j,filterTemplateURL:k,filterName:l,headerTemplateURL:i,filterData:c.attr("filter-data")?c.attr("filter-data"):null,show:c.attr("ng-show")?function(a){return e(c.attr("ng-show"))(a)}:function(){return!0}})}}),function(c,f,g){if(c.$loading=!1,c.$columns=d,c.$watch(g.ngTable,function(b){a.isUndefined(b)||(c.paramsModel=e(g.ngTable),c.params=b)},!0),c.parse=function(b){return a.isDefined(b)?b(c):""},g.showFilter&&c.$parent.$watch(g.showFilter,function(a){c.show_filter=a}),a.forEach(d,function(b){var d;if(b.filterData){if(d=e(b.filterData)(c,{$column:b}),!a.isObject(d)||!a.isObject(d.promise))throw new Error("Function "+b.filterData+" must be instance of $q.defer()");return delete b.filterData,d.promise.then(function(c){a.isArray(c)||(c=[]),c.unshift({title:"-",id:""}),b.data=c})}}),!f.hasClass("ng-table")){c.templates={header:g.templateHeader?g.templateHeader:"ng-table/header.html",pagination:g.templatePagination?g.templatePagination:"ng-table/pager.html"};var i=h.length>0?h:a.element(document.createElement("thead")).attr("ng-include","templates.header"),j=a.element(document.createElement("div")).attr("ng-include","templates.pagination");f.find("thead").remove();{f.find("tbody")}return f.prepend(i),b(i)(c),b(j)(c),f.addClass("ng-table"),f.after(j)}}):void 0}}}]),a.module("ngTable").run(["$templateCache",function(a){a.put("ng-table/filters/select-multiple.html",''),a.put("ng-table/filters/select.html",''),a.put("ng-table/filters/text.html",''),a.put("ng-table/header.html",'
'),a.put("ng-table/pager.html",'
')}]),b}); -//# sourceMappingURL=ng-table.map \ No newline at end of file +!function(a,b){return"function"==typeof define&&define.amd?void define(["angular"],function(a){return b(a)}):b(a)}(angular||null,function(a){var b=a.module("ngTable",[]);b.factory("ngTableParams",["$q","$log",function(b,c){var d=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},e=function(e,f){var g=this;this.data=[],this.parameters=function(b,e){if(e=e||!1,a.isDefined(b)){for(var f in b){var g=b[f];if(e&&f.indexOf("[")>=0){for(var i=f.split(/\[(.*)\]/).reverse(),j="",k=0,l=i.length;l>k;k++){var m=i[k];if(""!==m){var n=g;g={},g[j=m]=d(n)?parseFloat(n):n}}"sorting"===j&&(h[j]={}),h[j]=a.extend(h[j]||{},g[j])}else h[f]=d(b[f])?parseFloat(b[f]):b[f]}return c.debug&&c.debug("ngTable: set parameters",h),this}return h},this.settings=function(b){return a.isDefined(b)?(a.isArray(b.data)&&(b.total=b.data.length),i=a.extend(i,b),c.debug&&c.debug("ngTable: set settings",i),this):i},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):h.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):i.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):h.count},this.filter=function(b){return a.isDefined(b)?this.parameters({filter:b}):h.filter},this.sorting=function(b){if(2==arguments.length){var c={};return c[b]=arguments[1],this.parameters({sorting:c}),this}return a.isDefined(b)?this.parameters({sorting:b}):h.sorting},this.isSortBy=function(b,c){return a.isDefined(h.sorting[b])&&h.sorting[b]==c},this.orderBy=function(){var a=[];for(var b in h.sorting)a.push(("asc"===h.sorting[b]?"+":"-")+b);return a},this.getData=function(b,c){b.resolve(a.isArray(this.data)&&a.isObject(c)?this.data.slice((c.page()-1)*c.count(),c.page()*c.count()):[])},this.getGroups=function(d,e){var f=b.defer();f.promise.then(function(b){var f={};a.forEach(b,function(b){var c=a.isFunction(e)?e(b):b[e];f[c]=f[c]||{data:[]},f[c].value=c,f[c].data.push(b)});var g=[];for(var h in f)g.push(f[h]);c.debug&&c.debug("ngTable: refresh groups",g),d.resolve(g)}),this.getData(f,g)},this.generatePagesArray=function(a,b,c){var d,e,f,g,h,i;if(d=11,i=[],h=Math.ceil(b/c),h>1){i.push({type:"prev",number:Math.max(1,a-1),active:a>1}),i.push({type:"first",number:1,active:a>1}),f=Math.round((d-5)/2),g=Math.max(2,a-f),e=Math.min(h-1,a+2*f-(a-g)),g=Math.max(2,g-(2*f-(e-g)));for(var j=g;e>=j;)i.push(j===g&&2!==j||j===e&&j!==h-1?{type:"more",active:!1}:{type:"page",number:j,active:a!==j}),j++;i.push({type:"last",number:h,active:a!==h}),i.push({type:"next",number:Math.min(h,a+1),active:h>a})}return i},this.url=function(b){b=b||!1;var c=b?[]:{};for(key in h)if(h.hasOwnProperty(key)){var d=h[key],e=encodeURIComponent(key);if("object"==typeof d){for(var f in d)if(!a.isUndefined(d[f])&&""!==d[f]){var g=e+"["+encodeURIComponent(f)+"]";b?c.push(g+"="+d[f]):c[g]=d[f]}}else a.isFunction(d)||a.isUndefined(d)||""===d||(b?c.push(e+"="+encodeURIComponent(d)):c[e]=encodeURIComponent(d))}return c},this.reload=function(){var a=b.defer(),d=this;i.$loading=!0,i.groupBy?i.getGroups(a,i.groupBy,this):i.getData(a,this),c.debug&&c.debug("ngTable: reload data"),a.promise.then(function(a){i.$loading=!1,c.debug&&c.debug("ngTable: current scope",i.$scope),d.data=i.groupBy?i.$scope.$groups=a:i.$scope.$data=a,i.$scope.pages=d.generatePagesArray(d.page(),d.total(),d.count())})},this.reloadPages=function(){var a=this;i.$scope.pages=a.generatePagesArray(a.page(),a.total(),a.count())};var h=this.$params={page:1,count:1,filter:{},sorting:{},group:{},groupBy:null},i={$scope:null,$loading:!1,data:null,total:0,counts:[10,25,50,100],getGroups:this.getGroups,getData:this.getData};return this.settings(f),this.parameters(e,!0),this};return e}]);var c=["$scope","ngTableParams","$q",function(a,b){a.$loading=!1,a.params||(a.params=new b),a.params.settings().$scope=a,a.$watch("params.$params",function(){a.params.settings().$scope=a,a.params.reload()},!0),a.sortBy=function(b,c){var d=a.parse(b.sortable);if(d){var e=a.params.sorting()&&a.params.sorting()[d]&&"desc"===a.params.sorting()[d],f=c.ctrlKey?a.params.sorting():{};f[d]=e?"asc":"desc",a.params.parameters({sorting:f})}}}];return b.directive("ngTable",["$compile","$q","$parse",function(b,d,e){"use strict";return{restrict:"A",priority:1001,scope:!0,controller:c,compile:function(c){var d=[],f=0,g=null,h=c.find("thead");return a.forEach(a.element(c.find("tr")),function(b){b=a.element(b),b.hasClass("ng-table-group")||g||(g=b)}),g?(a.forEach(g.find("td"),function(b){var c=a.element(b);if(!c.attr("ignore-cell")||"true"!==c.attr("ignore-cell")){var g=function(a,b){return function(f){return e(c.attr("x-data-"+a)||c.attr("data-"+a)||c.attr(a))(f,{$columns:d})||b}},h=g("title"," "),i=g("header",!1),j=g("filter",!1)(),k=!1,l=!1;j&&j.name&&(l=j.name,delete j.name),j&&j.templateURL&&(k=j.templateURL,delete j.templateURL),c.attr("data-title-text",h()),d.push({id:f++,title:h,sortable:g("sortable",!1),"class":c.attr("x-data-header-class")||c.attr("data-header-class")||c.attr("header-class"),filter:j,filterTemplateURL:k,filterName:l,headerTemplateURL:i,filterData:c.attr("filter-data")?c.attr("filter-data"):null,show:c.attr("ng-show")?function(a){return e(c.attr("ng-show"))(a)}:function(){return!0}})}}),function(c,f,g){if(c.$loading=!1,c.$columns=d,c.$watch(g.ngTable,function(b){a.isUndefined(b)||(c.paramsModel=e(g.ngTable),c.params=b)},!0),c.parse=function(b){return a.isDefined(b)?b(c):""},g.showFilter&&c.$parent.$watch(g.showFilter,function(a){c.show_filter=a}),a.forEach(d,function(b){var d;if(b.filterData){if(d=e(b.filterData)(c,{$column:b}),!a.isObject(d)||!a.isObject(d.promise))throw new Error("Function "+b.filterData+" must be instance of $q.defer()");return delete b.filterData,d.promise.then(function(c){a.isArray(c)||(c=[]),c.unshift({title:"-",id:""}),b.data=c})}}),!f.hasClass("ng-table")){c.templates={header:g.templateHeader?g.templateHeader:"ng-table/header.html",pagination:g.templatePagination?g.templatePagination:"ng-table/pager.html"};var i=h.length>0?h:a.element(document.createElement("thead")).attr("ng-include","templates.header");f.find("thead").remove();{f.find("tbody")}if(f.prepend(i),b(i)(c),f.addClass("ng-table"),"paginationBottom"in g||!("paginationTop"in g)){var j=a.element(document.createElement("div")).attr("ng-include","templates.pagination");b(j)(c),f.after(j)}if("paginationTop"in g){var j=a.element(document.createElement("div")).attr("ng-include","templates.pagination");b(j)(c),f.before(j)}return f}}):void 0}}}]),a.module("ngTable").run(["$templateCache",function(a){a.put("ng-table/filters/select-multiple.html",''),a.put("ng-table/filters/select.html",''),a.put("ng-table/filters/text.html",''),a.put("ng-table/header.html",'
'),a.put("ng-table/pager.html",'
')}]),b}); +//# sourceMappingURL=ng-table.min.map \ No newline at end of file diff --git a/ng-table.src.js b/ng-table.src.js index db17343f..f88800c9 100644 --- a/ng-table.src.js +++ b/ng-table.src.js @@ -612,14 +612,22 @@ app.directive('ngTable', ['$compile', '$q', '$parse', pagination: (attrs.templatePagination ? attrs.templatePagination : 'ng-table/pager.html') }; var headerTemplate = thead.length > 0 ? thead : angular.element(document.createElement('thead')).attr('ng-include', 'templates.header'); - var paginationTemplate = angular.element(document.createElement('div')).attr('ng-include', 'templates.pagination'); element.find('thead').remove(); var tbody = element.find('tbody'); element.prepend(headerTemplate); $compile(headerTemplate)(scope); - $compile(paginationTemplate)(scope); element.addClass('ng-table'); - return element.after(paginationTemplate); + if ("paginationBottom" in attrs || !("paginationTop" in attrs)) { + var paginationTemplate = angular.element(document.createElement('div')).attr('ng-include', 'templates.pagination'); + $compile(paginationTemplate)(scope); + element.after(paginationTemplate); + } + if ("paginationTop" in attrs) { + var paginationTemplate = angular.element(document.createElement('div')).attr('ng-include', 'templates.pagination'); + $compile(paginationTemplate)(scope); + element.before(paginationTemplate); + } + return element; } }; } diff --git a/src/scripts/05-directive.js b/src/scripts/05-directive.js index 41b6ef43..425243ba 100644 --- a/src/scripts/05-directive.js +++ b/src/scripts/05-directive.js @@ -133,14 +133,22 @@ app.directive('ngTable', ['$compile', '$q', '$parse', pagination: (attrs.templatePagination ? attrs.templatePagination : 'ng-table/pager.html') }; var headerTemplate = thead.length > 0 ? thead : angular.element(document.createElement('thead')).attr('ng-include', 'templates.header'); - var paginationTemplate = angular.element(document.createElement('div')).attr('ng-include', 'templates.pagination'); element.find('thead').remove(); var tbody = element.find('tbody'); element.prepend(headerTemplate); $compile(headerTemplate)(scope); - $compile(paginationTemplate)(scope); element.addClass('ng-table'); - return element.after(paginationTemplate); + if ("paginationBottom" in attrs || !("paginationTop" in attrs)) { + var paginationTemplate = angular.element(document.createElement('div')).attr('ng-include', 'templates.pagination'); + $compile(paginationTemplate)(scope); + element.after(paginationTemplate); + } + if ("paginationTop" in attrs) { + var paginationTemplate = angular.element(document.createElement('div')).attr('ng-include', 'templates.pagination'); + $compile(paginationTemplate)(scope); + element.before(paginationTemplate); + } + return element; } }; }