From 93b4846c346acb81f60032a00f8cbc99c98f6bf4 Mon Sep 17 00:00:00 2001 From: Vitalii Savchuk Date: Sun, 13 Apr 2014 00:34:23 +0300 Subject: [PATCH] add filter to dynamic table example --- examples/demo20.html | 20 ++++++++++++++++++++ ng-table.js | 9 +++++---- ng-table.map | 2 +- ng-table.min.js | 2 +- src/scripts/03-params.js | 1 + src/scripts/04-controller.js | 6 +++--- src/scripts/06-pagination.js | 2 +- 7 files changed, 32 insertions(+), 10 deletions(-) diff --git a/examples/demo20.html b/examples/demo20.html index 5b881413..7ff859d9 100644 --- a/examples/demo20.html +++ b/examples/demo20.html @@ -22,6 +22,8 @@

Dynamic columns

+

Filter: {{tableParams.filter()|json}} + Columns:

Dynamic columns

{{column.title}}
+ + +
+
+
+
+
+
+
+
+ + @@ -87,6 +101,12 @@

Dynamic columns

$filter('orderBy')(data, params.orderBy()) : data; + orderedData = params.filter() ? + $filter('filter')(orderedData, params.filter()) : + orderedData; + + console.info(orderedData.length); + params.total(orderedData.length); $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count())); } }); diff --git a/ng-table.js b/ng-table.js index 5f02998d..44b14cd5 100644 --- a/ng-table.js +++ b/ng-table.js @@ -411,6 +411,7 @@ app.factory('ngTableParams', ['$q', '$log', function ($q, $log) { self.data = settings.$scope.$data = data; } settings.$scope.pages = self.generatePagesArray(self.page(), self.total(), self.count()); + settings.$scope.$emit('ngTableAfterReloadData'); }); }; @@ -461,7 +462,7 @@ app.factory('ngTableParams', ['$q', '$log', function ($q, $log) { * @description * Each {@link ngTable.directive:ngTable ngTable} directive creates an instance of `ngTableController` */ -var ngTableController = ['$scope', 'ngTableParams', '$q', function ($scope, ngTableParams, $q) { +var ngTableController = ['$scope', 'ngTableParams', '$timeout', function ($scope, ngTableParams, $timeout) { $scope.$loading = false; if (!$scope.params) { @@ -472,8 +473,8 @@ var ngTableController = ['$scope', 'ngTableParams', '$q', function ($scope, ngTa var delayFilter = (function () { var timer = 0; return function (callback, ms) { - clearTimeout(timer); - timer = setTimeout(callback, ms); + $timeout.cancel(timer); + timer = $timeout(callback, ms); }; })(); @@ -690,7 +691,7 @@ app.directive('ngTablePagination', ['$compile', replace: false, link: function (scope, element, attrs) { - scope.$watch('params.$params', function (newParams, oldParams) { + scope.params.settings().$scope.$on('ngTableAfterReloadData', function () { scope.pages = scope.params.generatePagesArray(scope.params.page(), scope.params.total(), scope.params.count()); }, true); diff --git a/ng-table.map b/ng-table.map index 40fe5bff..ba3e10bf 100644 --- a/ng-table.map +++ b/ng-table.map @@ -1 +1 @@ -{"version":3,"file":"ng-table.min.js","sources":["ng-table.js"],"names":["angular","factory","define","amd","app","module","$q","$log","isNumber","n","isNaN","parseFloat","isFinite","ngTableParams","baseParameters","baseSettings","self","this","log","settings","debugMode","debug","apply","arguments","data","parameters","newParameters","parseParamsFromUrl","isDefined","key","value","indexOf","keys","split","reverse","lastKey","i","len","length","name","v","params","extend","newSettings","isArray","total","page","count","filter","sorting","sortArray","isSortBy","field","direction","orderBy","column","push","getData","$defer","isObject","resolve","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","defaultSort","filterDelay","counts","ngTableController","delayFilter","timer","callback","ms","clearTimeout","setTimeout","$watch","newParams","oldParams","equals","sortBy","event","parsedSortable","parse","sortable","inverseSort","sortingParams","ctrlKey","metaKey","directive","$compile","$parse","restrict","priority","scope","controller","compile","element","columns","row","thead","find","tr","hasClass","el","attr","parsedAttribute","defaultValue","$columns","parsedTitle","headerTemplateURL","filterTemplateURL","filterName","$$name","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","paginationRow","append","ng-include","colspan","paginationTemplate","remove","addClass","prepend","templateUrl","replace","link","template","run","$templateCache","put"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ng-table.min.js","sources":["ng-table.js"],"names":["angular","factory","define","amd","app","module","$q","$log","isNumber","n","isNaN","parseFloat","isFinite","ngTableParams","baseParameters","baseSettings","self","this","log","settings","debugMode","debug","apply","arguments","data","parameters","newParameters","parseParamsFromUrl","isDefined","key","value","indexOf","keys","split","reverse","lastKey","i","len","length","name","v","params","extend","newSettings","isArray","total","page","count","filter","sorting","sortArray","isSortBy","field","direction","orderBy","column","push","getData","$defer","isObject","resolve","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","$emit","reloadPages","$params","group","defaultSort","filterDelay","counts","ngTableController","$timeout","delayFilter","timer","callback","ms","cancel","$watch","newParams","oldParams","equals","sortBy","event","parsedSortable","parse","sortable","inverseSort","sortingParams","ctrlKey","metaKey","directive","$compile","$parse","restrict","priority","scope","controller","compile","element","columns","row","thead","find","tr","hasClass","el","attr","parsedAttribute","defaultValue","$columns","parsedTitle","headerTemplateURL","filterTemplateURL","filterName","$$name","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","paginationRow","append","ng-table-pagination","template-url","colspan","paginationTemplate","remove","addClass","prepend","templateUrl","replace","link","$on","template","ng-include","run","$templateCache","put"],"mappings":"CAAC,SAASA,EAASC,GACf,YAEA,OAAsB,kBAAXC,SAAyBA,OAAOC,KACvCD,QAAQ,WAAY,SAASF,GACzB,MAAOC,GAAQD,KADnBE,QAIOD,EAAQD,IAErBA,SAAW,KAAM,SAASA,GACxB,YAqCJ,IAAII,GAAMJ,EAAQK,OAAO,aAczBD,GAAIH,QAAQ,iBAAkB,KAAM,OAAQ,SAAUK,EAAIC,GACtD,GAAIC,GAAW,SAAUC,GACrB,OAAQC,MAAMC,WAAWF,KAAOG,SAASH,IAEzCI,EAAgB,SAAUC,EAAgBC,GAC1C,GAAIC,GAAOC,KACPC,EAAM,WACEC,EAASC,WAAab,EAAKc,OAC3Bd,EAAKc,MAAMC,MAAML,KAAMM,WAInCN,MAAKO,QAYLP,KAAKQ,WAAa,SAAUC,EAAeC,GAEvC,GADAA,EAAqBA,IAAsB,EACvC3B,EAAQ4B,UAAUF,GAAgB,CAClC,IAAK,GAAIG,KAAOH,GAAe,CAC3B,GAAII,GAAQJ,EAAcG,EAC1B,IAAIF,GAAsBE,EAAIE,QAAQ,MAAQ,EAAG,CAG7C,IAAK,GAFDC,GAAOH,EAAII,MAAM,YAAYC,UAC7BC,EAAU,GACLC,EAAI,EAAGC,EAAML,EAAKM,OAAYD,EAAJD,EAASA,IAAK,CAC7C,GAAIG,GAAOP,EAAKI,EAChB,IAAa,KAATG,EAAa,CACb,GAAIC,GAAIV,CACRA,MACAA,EAAMK,EAAUI,GAAS/B,EAASgC,GAAK7B,WAAW6B,GAAKA,GAG/C,YAAZL,IACAM,EAAON,OAEXM,EAAON,GAAWnC,EAAQ0C,OAAOD,EAAON,OAAgBL,EAAMK,QAE9DM,GAAOZ,GAAQrB,EAASkB,EAAcG,IAAQlB,WAAWe,EAAcG,IAAQH,EAAcG,GAIrG,MADAX,GAAI,0BAA2BuB,GACxBxB,KAEX,MAAOwB,IAYXxB,KAAKE,SAAW,SAAUwB,GACtB,MAAI3C,GAAQ4B,UAAUe,IACd3C,EAAQ4C,QAAQD,EAAYnB,QAE5BmB,EAAYE,MAAQF,EAAYnB,KAAKc,QAEzCnB,EAAWnB,EAAQ0C,OAAOvB,EAAUwB,GACpCzB,EAAI,wBAAyBC,GACtBF,MAEJE,GAYXF,KAAK6B,KAAO,SAAUA,GAClB,MAAO9C,GAAQ4B,UAAUkB,GAAQ7B,KAAKQ,YAAYqB,KAAQA,IAASL,EAAOK,MAY9E7B,KAAK4B,MAAQ,SAAUA,GACnB,MAAO7C,GAAQ4B,UAAUiB,GAAS5B,KAAKE,UAAU0B,MAASA,IAAU1B,EAAS0B,OAYjF5B,KAAK8B,MAAQ,SAAUA,GAEnB,MAAO/C,GAAQ4B,UAAUmB,GAAS9B,KAAKQ,YAAYsB,MAASA,EAAOD,KAAQ,IAAML,EAAOM,OAY5F9B,KAAK+B,OAAS,SAAUA,GACpB,MAAOhD,GAAQ4B,UAAUoB,GAAU/B,KAAKQ,YAAYuB,OAAUA,IAAWP,EAAOO,QAYpF/B,KAAKgC,QAAU,SAAUA,GACrB,GAAwB,GAApB1B,UAAUe,OAAa,CACvB,GAAIY,KAGJ,OAFAA,GAAUD,GAAW1B,UAAU,GAC/BN,KAAKQ,YAAYwB,QAAWC,IACrBjC,KAEX,MAAOjB,GAAQ4B,UAAUqB,GAAWhC,KAAKQ,YAAYwB,QAAWA,IAAYR,EAAOQ,SAavFhC,KAAKkC,SAAW,SAAUC,EAAOC,GAC7B,MAAOrD,GAAQ4B,UAAUa,EAAOQ,QAAQG,KAAWX,EAAOQ,QAAQG,IAAUC,GAWhFpC,KAAKqC,QAAU,WACX,GAAIL,KACJ,KAAK,GAAIM,KAAUd,GAAOQ,QACtBA,EAAQO,MAAiC,QAA3Bf,EAAOQ,QAAQM,GAAoB,IAAM,KAAOA,EAElE,OAAON,IAYXhC,KAAKwC,QAAU,SAAUC,EAAQjB,GACzBzC,EAAQ4C,QAAQ3B,KAAKO,OAASxB,EAAQ2D,SAASlB,GAC/CiB,EAAOE,QAAQ3C,KAAKO,KAAKqC,OAAOpB,EAAOK,OAAS,GAAKL,EAAOM,QAASN,EAAOK,OAASL,EAAOM,UAE5FW,EAAOE,aAUf3C,KAAK6C,UAAY,SAAUJ,EAAQH,GAC/B,GAAIQ,GAAQzD,EAAGyD,OAEfA,GAAMC,QAAQC,KAAK,SAAUzC,GACzB,GAAI0C,KACJlE,GAAQmE,QAAQ3C,EAAM,SAAU4C,GAC5B,GAAIC,GAAYrE,EAAQsE,WAAWf,GAAUA,EAAOa,GAAQA,EAAKb,EAEjEW,GAAOG,GAAaH,EAAOG,KACvB7C,SAEJ0C,EAAOG,GAAkB,MAAIA,EAC7BH,EAAOG,GAAW7C,KAAKgC,KAAKY,IAEhC,IAAIG,KACJ,KAAK,GAAInC,KAAK8B,GACVK,EAAOf,KAAKU,EAAO9B,GAEvBlB,GAAI,0BAA2BqD,GAC/Bb,EAAOE,QAAQW,KAEnBtD,KAAKwC,QAAQM,EAAO/C,IAcxBC,KAAKuD,mBAAqB,SAAUC,EAAaC,EAAYC,GACzD,GAAIC,GAAWC,EAASC,EAAeC,EAASC,EAAUC,CAI1D,IAHAL,EAAY,GACZK,KACAD,EAAWE,KAAKC,KAAKT,EAAaC,GAC9BK,EAAW,EAAG,CACdC,EAAMzB,MACF4B,KAAM,OACNC,OAAQH,KAAKI,IAAI,EAAGb,EAAc,GAClCc,OAAQd,EAAc,IAE1BQ,EAAMzB,MACF4B,KAAM,QACNC,OAAQ,EACRE,OAAQd,EAAc,IAE1BK,EAAgBI,KAAKM,OAAOZ,EAAY,GAAK,GAC7CG,EAAUG,KAAKI,IAAI,EAAGb,EAAcK,GACpCD,EAAUK,KAAKO,IAAIT,EAAW,EAAGP,EAA8B,EAAhBK,GAAqBL,EAAcM,IAClFA,EAAUG,KAAKI,IAAI,EAAGP,GAA2B,EAAhBD,GAAqBD,EAAUE,IAEhE,KADA,GAAI3C,GAAI2C,EACIF,GAALzC,GACEA,IAAM2C,GAAiB,IAAN3C,GAAaA,IAAMyC,GAAWzC,IAAM4C,EAAW,EACjEC,EAAMzB,MACF4B,KAAM,OACNG,QAAQ,IAGZN,EAAMzB,MACF4B,KAAM,OACNC,OAAQjD,EACRmD,OAAQd,IAAgBrC,IAGhCA,GAEJ6C,GAAMzB,MACF4B,KAAM,OACNC,OAAQL,EACRO,OAAQd,IAAgBO,IAE5BC,EAAMzB,MACF4B,KAAM,OACNC,OAAQH,KAAKO,IAAIT,EAAUP,EAAc,GACzCc,OAAsBP,EAAdP,IAGhB,MAAOQ,IAYXhE,KAAKyE,IAAM,SAAUC,GACjBA,EAAWA,IAAY,CACvB,IAAIC,GAASD,OACb,KAAK,GAAI9D,KAAOY,GACZ,GAAIA,EAAOoD,eAAehE,GAAM,CAC5B,GAAIuC,GAAO3B,EAAOZ,GACdU,EAAOuD,mBAAmBjE,EAC9B,IAAoB,gBAATuC,IACP,IAAK,GAAI2B,KAAU3B,GACf,IAAKpE,EAAQgG,YAAY5B,EAAK2B,KAA6B,KAAjB3B,EAAK2B,GAAgB,CAC3D,GAAIE,GAAQ1D,EAAO,IAAMuD,mBAAmBC,GAAU,GAClDJ,GACAC,EAAMpC,KAAKyC,EAAQ,IAAM7B,EAAK2B,IAE9BH,EAAMK,GAAS7B,EAAK2B,QAIxB/F,GAAQsE,WAAWF,IAAUpE,EAAQgG,YAAY5B,IAAkB,KAATA,IAC9DuB,EACAC,EAAMpC,KAAKjB,EAAO,IAAMuD,mBAAmB1B,IAE3CwB,EAAMrD,GAAQuD,mBAAmB1B,IAKjD,MAAOwB,IASX3E,KAAKiF,OAAS,WACV,GAAIxC,GAASpD,EAAGyD,QACZ/C,EAAOC,IAEXE,GAASgF,UAAW,EAChBhF,EAASiF,QACTjF,EAAS2C,UAAUJ,EAAQvC,EAASiF,QAASnF,MAE7CE,EAASsC,QAAQC,EAAQzC,MAE7BC,EAAI,wBACJwC,EAAOM,QAAQC,KAAK,SAAUzC,GAC1BL,EAASgF,UAAW,EACpBjF,EAAI,yBAA0BC,EAASkF,QAEnCrF,EAAKQ,KADLL,EAASiF,QACGjF,EAASkF,OAAOC,QAAU9E,EAE1BL,EAASkF,OAAOE,MAAQ/E,EAExCL,EAASkF,OAAOpB,MAAQjE,EAAKwD,mBAAmBxD,EAAK8B,OAAQ9B,EAAK6B,QAAS7B,EAAK+B,SAChF5B,EAASkF,OAAOG,MAAM,6BAI9BvF,KAAKwF,YAAc,WACf,GAAIzF,GAAOC,IACXE,GAASkF,OAAOpB,MAAQjE,EAAKwD,mBAAmBxD,EAAK8B,OAAQ9B,EAAK6B,QAAS7B,EAAK+B,SAGpF,IAAIN,GAASxB,KAAKyF,SACd5D,KAAM,EACNC,MAAO,EACPC,UACAC,WACA0D,SACAP,QAAS,MAETjF,GACAkF,OAAQ,KACRF,UAAU,EACV3E,KAAM,KACNqB,MAAO,EACP+D,YAAa,OACbC,YAAa,IACbC,QAAS,GAAI,GAAI,GAAI,KACrBhD,UAAW7C,KAAK6C,UAChBL,QAASxC,KAAKwC,QAKlB,OAFAxC,MAAKE,SAASJ,GACdE,KAAKQ,WAAWX,GAAgB,GACzBG,KAEX,OAAOJ,KAkBX,IAAIkG,IAAqB,SAAU,gBAAiB,WAAY,SAAUV,EAAQxF,EAAemG,GAC7FX,EAAOF,UAAW,EAEbE,EAAO5D,SACR4D,EAAO5D,OAAS,GAAI5B,IAExBwF,EAAO5D,OAAOtB,WAAWkF,OAASA,CAElC,IAAIY,GAAc,WACd,GAAIC,GAAQ,CACZ,OAAO,UAAUC,EAAUC,GACvBJ,EAASK,OAAOH,GAChBA,EAAQF,EAASG,EAAUC,MAInCf,GAAOiB,OAAO,iBAAkB,SAAUC,EAAWC,GACjDnB,EAAO5D,OAAOtB,WAAWkF,OAASA,EAE7BrG,EAAQyH,OAAOF,EAAUvE,OAAQwE,EAAUxE,QAM5CqD,EAAO5D,OAAOyD,SALde,EAAY,WACRZ,EAAO5D,OAAOiE,QAAQ5D,KAAO,EAC7BuD,EAAO5D,OAAOyD,UACfG,EAAO5D,OAAOtB,WAAW0F,eAIjC,GAEHR,EAAOqB,OAAS,SAAUnE,EAAQoE,GAC9B,GAAIC,GAAiBvB,EAAOwB,MAAMtE,EAAOuE,SACzC,IAAKF,EAAL,CAGA,GAAIhB,GAAcP,EAAO5D,OAAOtB,WAAWyF,YACvCmB,EAA+B,QAAhBnB,EAAwB,OAAS,MAChD3D,EAAUoD,EAAO5D,OAAOQ,WAAaoD,EAAO5D,OAAOQ,UAAU2E,IAAoBvB,EAAO5D,OAAOQ,UAAU2E,KAAoBhB,EAC7HoB,EAAiBL,EAAMM,SAAWN,EAAMO,QAAW7B,EAAO5D,OAAOQ,YACrE+E,GAAcJ,GAAmB3E,EAAU8E,EAAcnB,EACzDP,EAAO5D,OAAOhB,YACVwB,QAAS+E,OAwNjB,OApMJ5H,GAAI+H,UAAU,WAAY,WAAY,KAAM,SACxC,SAAUC,EAAU9H,EAAI+H,GAGpB,OACIC,SAAU,IACVC,SAAU,KACVC,OAAO,EACPC,WAAY1B,EACZ2B,QAAS,SAAUC,GACf,GAAIC,MAAcxG,EAAI,EAAGyG,EAAM,KAG3BC,EAAQH,EAAQI,KAAK,QASzB,OANA/I,GAAQmE,QAAQnE,EAAQ2I,QAAQA,EAAQI,KAAK,OAAQ,SAAUC,GAC3DA,EAAKhJ,EAAQ2I,QAAQK,GAChBA,EAAGC,SAAS,mBAAsBJ,IACnCA,EAAMG,KAGTH,GAGL7I,EAAQmE,QAAQ0E,EAAIE,KAAK,MAAO,SAAU3E,GACtC,GAAI8E,GAAKlJ,EAAQ2I,QAAQvE,EACzB,KAAI8E,EAAGC,KAAK,gBAAkB,SAAWD,EAAGC,KAAK,eAAjD,CAGA,GAAIC,GAAkB,SAAUD,EAAME,GAClC,MAAO,UAAUb,GACb,MAAOH,GAAOa,EAAGC,KAAK,UAAYA,IAASD,EAAGC,KAAK,QAAUA,IAASD,EAAGC,KAAKA,IAAOX,GACjFc,SAAUV,KACRS,IAIVE,EAAcH,EAAgB,QAAS,KACvCI,EAAoBJ,EAAgB,UAAU,GAC9CpG,EAASoG,EAAgB,UAAU,KACnCK,GAAoB,EACpBC,GAAa,CAEb1G,IAAUA,EAAO2G,SACjBD,EAAa1G,EAAO2G,aACb3G,GAAO2G,QAEd3G,GAAUA,EAAO4G,cACjBH,EAAoBzG,EAAO4G,kBACpB5G,GAAO4G,aAGlBV,EAAGC,KAAK,kBAAmBI,KAC3BX,EAAQpF,MACJqG,GAAIzH,IACJ0H,MAAOP,EACPzB,SAAUsB,EAAgB,YAAY,GACtCW,QAASb,EAAGC,KAAK,wBAA0BD,EAAGC,KAAK,sBAAwBD,EAAGC,KAAK,gBACnFnG,OAAQA,EACRyG,kBAAmBA,EACnBC,WAAYA,EACZF,kBAAmBA,EACnBQ,WAAad,EAAGC,KAAK,eAAiBD,EAAGC,KAAK,eAAiB,KAC/Dc,KAAOf,EAAGC,KAAK,WAAa,SAAUX,GAClC,MAAOH,GAAOa,EAAGC,KAAK,YAAYX,IAClC,WACA,OAAO,QAIZ,SAAUA,EAAOG,EAASuB,GA0C7B,GAzCA1B,EAAMrC,UAAW,EACjBqC,EAAMc,SAAWV,EAEjBJ,EAAMlB,OAAO4C,EAAMC,QAAS,SAAW1H,GAC/BzC,EAAQgG,YAAYvD,KAGxB+F,EAAM4B,YAAc/B,EAAO6B,EAAMC,SACjC3B,EAAM/F,OAASA,KACf,GACJ+F,EAAMX,MAAQ,SAAUwC,GACpB,MAAOrK,GAAQ4B,UAAUyI,GAAQA,EAAK7B,GAAS,IAE/C0B,EAAMI,YACN9B,EAAM+B,QAAQjD,OAAO4C,EAAMI,WAAY,SAAUxI,GAC7C0G,EAAMgC,YAAc1I,IAG5B9B,EAAQmE,QAAQyE,EAAS,SAAUrF,GAC/B,GAAIkH,EACJ,IAAKlH,EAAOyG,WAAZ,CAMA,GAHAS,EAAMpC,EAAO9E,EAAOyG,YAAYxB,GAC5BkC,QAASnH,KAEPvD,EAAQ2D,SAAS8G,KAAQzK,EAAQ2D,SAAS8G,EAAIzG,SAChD,KAAM,IAAI2G,OAAM,YAAcpH,EAAOyG,WAAa,kCAGtD,cADOzG,GAAOyG,WACPS,EAAIzG,QAAQC,KAAK,SAAUzC,GACzBxB,EAAQ4C,QAAQpB,KACjBA,MAEJA,EAAKoJ,SACDd,MAAO,IACPD,GAAI,KAERtG,EAAO/B,KAAOA,QAGjBmH,EAAQM,SAAS,YAAa,CAC/BT,EAAMqC,WACFC,OAASZ,EAAMa,eAAiBb,EAAMa,eAAiB,uBACvDC,WAAad,EAAMe,mBAAqBf,EAAMe,mBAAqB,sBAEvE,IAAIC,GAAiBpC,EAAMxG,OAAS,EAAIwG,EAAQ9I,EAAQ2I,QAAQwC,SAASC,cAAc,UAAUjC,KAAK,aAAc,oBAChHkC,EAAgBrL,EAAQ2I,QAAQwC,SAASC,cAAc,OAClDE,OAAOtL,EAAQ2I,QAAQwC,SAASC,cAAc,OAC1CjC,MACGoC,sBAAuB,SACvBC,eAAgB,uBAChBC,QAAW7C,EAAQtG,UAE/BoJ,EAAqB1L,EAAQ2I,QAAQwC,SAASC,cAAc,UAAUE,OAAOD,EAEjF1C,GAAQI,KAAK,SAAS4C,SAEtBhD,EAAQiD,SAAS,YACZC,QAAQX,GACRI,OAAOI,GAEZtD,EAAS8C,GAAgB1C,GACzBJ,EAASsD,GAAoBlD,MAjHrC,YAsIhBpI,EAAI+H,UAAU,qBAAsB,WAChC,SAAUC,GAGN,OACIE,SAAU,IACVE,OACI/F,OAAU,qBACVqJ,YAAe,KAEnBC,SAAS,EACTC,KAAM,SAAUxD,EAAOG,GAEnBH,EAAM/F,OAAOtB,WAAWkF,OAAO4F,IAAI,yBAA0B,WACzDzD,EAAMvD,MAAQuD,EAAM/F,OAAO+B,mBAAmBgE,EAAM/F,OAAOK,OAAQ0F,EAAM/F,OAAOI,QAAS2F,EAAM/F,OAAOM,WACvG,GAEHyF,EAAMlB,OAAO,cAAe,SAASwE,GACjC,IAAI9L,EAAQgG,YAAY8F,GAAxB,CAGA,GAAII,GAAWlM,EAAQ2I,QAAQwC,SAASC,cAAc,OACtDc,GAAS/C,MACLgD,aAAc,gBAElBxD,EAAQ2C,OAAOY,GACf9D,EAAS8D,GAAU1D,WAOvCxI,EAAQK,OAAO,WAAW+L,KAAK,iBAAkB,SAAUC,GAC1DA,EAAeC,IAAI,wCAAyC,oQAC5DD,EAAeC,IAAI,+BAAgC,sNACnDD,EAAeC,IAAI,6BAA8B,iJACjDD,EAAeC,IAAI,uBAAwB,mgCAC3CD,EAAeC,IAAI,sBAAuB,wjCAEhClM"} \ No newline at end of file diff --git a/ng-table.min.js b/ng-table.min.js index 7cc12709..93f63932 100644 --- a/ng-table.min.js +++ b/ng-table.min.js @@ -1,3 +1,3 @@ /*! ngTable v0.3.2 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */ -!function(a,b){"use strict";return"function"==typeof define&&define.amd?(define(["angular"],function(a){return b(a)}),void 0):b(a)}(angular||null,function(a){"use strict";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,h=function(){j.debugMode&&c.debug&&c.debug.apply(this,arguments)};this.data=[],this.parameters=function(b,c){if(c=c||!1,a.isDefined(b)){for(var e in b){var f=b[e];if(c&&e.indexOf("[")>=0){for(var g=e.split(/\[(.*)\]/).reverse(),j="",k=0,l=g.length;l>k;k++){var m=g[k];if(""!==m){var n=f;f={},f[j=m]=d(n)?parseFloat(n):n}}"sorting"===j&&(i[j]={}),i[j]=a.extend(i[j]||{},f[j])}else i[e]=d(b[e])?parseFloat(b[e]):b[e]}return h("ngTable: set parameters",i),this}return i},this.settings=function(b){return a.isDefined(b)?(a.isArray(b.data)&&(b.total=b.data.length),j=a.extend(j,b),h("ngTable: set settings",j),this):j},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):i.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):j.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):i.count},this.filter=function(b){return a.isDefined(b)?this.parameters({filter:b}):i.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}):i.sorting},this.isSortBy=function(b,c){return a.isDefined(i.sorting[b])&&i.sorting[b]==c},this.orderBy=function(){var a=[];for(var b in i.sorting)a.push(("asc"===i.sorting[b]?"+":"-")+b);return a},this.getData=function(b,c){a.isArray(this.data)&&a.isObject(c)?b.resolve(this.data.slice((c.page()-1)*c.count(),c.page()*c.count())):b.resolve([])},this.getGroups=function(c,d){var e=b.defer();e.promise.then(function(b){var e={};a.forEach(b,function(b){var c=a.isFunction(d)?d(b):b[d];e[c]=e[c]||{data:[]},e[c].value=c,e[c].data.push(b)});var f=[];for(var g in e)f.push(e[g]);h("ngTable: refresh groups",f),c.resolve(f)}),this.getData(e,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;)j===g&&2!==j||j===e&&j!==h-1?i.push({type:"more",active:!1}):i.push({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(var d in i)if(i.hasOwnProperty(d)){var e=i[d],f=encodeURIComponent(d);if("object"==typeof e){for(var g in e)if(!a.isUndefined(e[g])&&""!==e[g]){var h=f+"["+encodeURIComponent(g)+"]";b?c.push(h+"="+e[g]):c[h]=e[g]}}else a.isFunction(e)||a.isUndefined(e)||""===e||(b?c.push(f+"="+encodeURIComponent(e)):c[f]=encodeURIComponent(e))}return c},this.reload=function(){var a=b.defer(),c=this;j.$loading=!0,j.groupBy?j.getGroups(a,j.groupBy,this):j.getData(a,this),h("ngTable: reload data"),a.promise.then(function(a){j.$loading=!1,h("ngTable: current scope",j.$scope),c.data=j.groupBy?j.$scope.$groups=a:j.$scope.$data=a,j.$scope.pages=c.generatePagesArray(c.page(),c.total(),c.count())})},this.reloadPages=function(){var a=this;j.$scope.pages=a.generatePagesArray(a.page(),a.total(),a.count())};var i=this.$params={page:1,count:1,filter:{},sorting:{},group:{},groupBy:null},j={$scope:null,$loading:!1,data:null,total:0,defaultSort:"desc",filterDelay:750,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(b,c){b.$loading=!1,b.params||(b.params=new c),b.params.settings().$scope=b;var d=function(){var a=0;return function(b,c){clearTimeout(a),a=setTimeout(b,c)}}();b.$watch("params.$params",function(c,e){b.params.settings().$scope=b,a.equals(c.filter,e.filter)?b.params.reload():d(function(){b.params.$params.page=1,b.params.reload()},b.params.settings().filterDelay)},!0),b.sortBy=function(a,c){var d=b.parse(a.sortable);if(d){var e=b.params.settings().defaultSort,f="asc"===e?"desc":"asc",g=b.params.sorting()&&b.params.sorting()[d]&&b.params.sorting()[d]===e,h=c.ctrlKey||c.metaKey?b.params.sorting():{};h[d]=g?f:e,b.params.parameters({sorting:h})}}}];return b.directive("ngTable",["$compile","$q","$parse",function(b,d,e){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("tr")).append(a.element(document.createElement("td")).attr({"ng-include":"templates.pagination",colspan:d.length})),k=a.element(document.createElement("tfoot")).append(j);f.find("thead").remove(),f.addClass("ng-table").prepend(i).append(k),b(i)(c),b(k)(c)}}):void 0}}}]),b.directive("ngTablePagination",["$compile",function(b){return{restrict:"A",scope:{params:"=ngTablePagination",templateUrl:"="},replace:!1,link:function(c,d){c.$watch("params.$params",function(){c.pages=c.params.generatePagesArray(c.params.page(),c.params.total(),c.params.count())},!0),c.$watch("templateUrl",function(e){if(!a.isUndefined(e)){var f=a.element(document.createElement("div"));f.attr({"ng-include":"templateUrl"}),d.append(f),b(f)(c)}})}}}]),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}); +!function(a,b){"use strict";return"function"==typeof define&&define.amd?(define(["angular"],function(a){return b(a)}),void 0):b(a)}(angular||null,function(a){"use strict";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,h=function(){j.debugMode&&c.debug&&c.debug.apply(this,arguments)};this.data=[],this.parameters=function(b,c){if(c=c||!1,a.isDefined(b)){for(var e in b){var f=b[e];if(c&&e.indexOf("[")>=0){for(var g=e.split(/\[(.*)\]/).reverse(),j="",k=0,l=g.length;l>k;k++){var m=g[k];if(""!==m){var n=f;f={},f[j=m]=d(n)?parseFloat(n):n}}"sorting"===j&&(i[j]={}),i[j]=a.extend(i[j]||{},f[j])}else i[e]=d(b[e])?parseFloat(b[e]):b[e]}return h("ngTable: set parameters",i),this}return i},this.settings=function(b){return a.isDefined(b)?(a.isArray(b.data)&&(b.total=b.data.length),j=a.extend(j,b),h("ngTable: set settings",j),this):j},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):i.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):j.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):i.count},this.filter=function(b){return a.isDefined(b)?this.parameters({filter:b}):i.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}):i.sorting},this.isSortBy=function(b,c){return a.isDefined(i.sorting[b])&&i.sorting[b]==c},this.orderBy=function(){var a=[];for(var b in i.sorting)a.push(("asc"===i.sorting[b]?"+":"-")+b);return a},this.getData=function(b,c){a.isArray(this.data)&&a.isObject(c)?b.resolve(this.data.slice((c.page()-1)*c.count(),c.page()*c.count())):b.resolve([])},this.getGroups=function(c,d){var e=b.defer();e.promise.then(function(b){var e={};a.forEach(b,function(b){var c=a.isFunction(d)?d(b):b[d];e[c]=e[c]||{data:[]},e[c].value=c,e[c].data.push(b)});var f=[];for(var g in e)f.push(e[g]);h("ngTable: refresh groups",f),c.resolve(f)}),this.getData(e,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;)j===g&&2!==j||j===e&&j!==h-1?i.push({type:"more",active:!1}):i.push({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(var d in i)if(i.hasOwnProperty(d)){var e=i[d],f=encodeURIComponent(d);if("object"==typeof e){for(var g in e)if(!a.isUndefined(e[g])&&""!==e[g]){var h=f+"["+encodeURIComponent(g)+"]";b?c.push(h+"="+e[g]):c[h]=e[g]}}else a.isFunction(e)||a.isUndefined(e)||""===e||(b?c.push(f+"="+encodeURIComponent(e)):c[f]=encodeURIComponent(e))}return c},this.reload=function(){var a=b.defer(),c=this;j.$loading=!0,j.groupBy?j.getGroups(a,j.groupBy,this):j.getData(a,this),h("ngTable: reload data"),a.promise.then(function(a){j.$loading=!1,h("ngTable: current scope",j.$scope),c.data=j.groupBy?j.$scope.$groups=a:j.$scope.$data=a,j.$scope.pages=c.generatePagesArray(c.page(),c.total(),c.count()),j.$scope.$emit("ngTableAfterReloadData")})},this.reloadPages=function(){var a=this;j.$scope.pages=a.generatePagesArray(a.page(),a.total(),a.count())};var i=this.$params={page:1,count:1,filter:{},sorting:{},group:{},groupBy:null},j={$scope:null,$loading:!1,data:null,total:0,defaultSort:"desc",filterDelay:750,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","$timeout",function(b,c,d){b.$loading=!1,b.params||(b.params=new c),b.params.settings().$scope=b;var e=function(){var a=0;return function(b,c){d.cancel(a),a=d(b,c)}}();b.$watch("params.$params",function(c,d){b.params.settings().$scope=b,a.equals(c.filter,d.filter)?b.params.reload():e(function(){b.params.$params.page=1,b.params.reload()},b.params.settings().filterDelay)},!0),b.sortBy=function(a,c){var d=b.parse(a.sortable);if(d){var e=b.params.settings().defaultSort,f="asc"===e?"desc":"asc",g=b.params.sorting()&&b.params.sorting()[d]&&b.params.sorting()[d]===e,h=c.ctrlKey||c.metaKey?b.params.sorting():{};h[d]=g?f:e,b.params.parameters({sorting:h})}}}];return b.directive("ngTable",["$compile","$q","$parse",function(b,d,e){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("tr")).append(a.element(document.createElement("td")).attr({"ng-table-pagination":"params","template-url":"templates.pagination",colspan:d.length})),k=a.element(document.createElement("tfoot")).append(j);f.find("thead").remove(),f.addClass("ng-table").prepend(i).append(k),b(i)(c),b(k)(c)}}):void 0}}}]),b.directive("ngTablePagination",["$compile",function(b){return{restrict:"A",scope:{params:"=ngTablePagination",templateUrl:"="},replace:!1,link:function(c,d){c.params.settings().$scope.$on("ngTableAfterReloadData",function(){c.pages=c.params.generatePagesArray(c.params.page(),c.params.total(),c.params.count())},!0),c.$watch("templateUrl",function(e){if(!a.isUndefined(e)){var f=a.element(document.createElement("div"));f.attr({"ng-include":"templateUrl"}),d.append(f),b(f)(c)}})}}}]),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 diff --git a/src/scripts/03-params.js b/src/scripts/03-params.js index 5f86bd75..f4527ddf 100644 --- a/src/scripts/03-params.js +++ b/src/scripts/03-params.js @@ -362,6 +362,7 @@ app.factory('ngTableParams', ['$q', '$log', function ($q, $log) { self.data = settings.$scope.$data = data; } settings.$scope.pages = self.generatePagesArray(self.page(), self.total(), self.count()); + settings.$scope.$emit('ngTableAfterReloadData'); }); }; diff --git a/src/scripts/04-controller.js b/src/scripts/04-controller.js index 1887e7fe..13b5fb75 100644 --- a/src/scripts/04-controller.js +++ b/src/scripts/04-controller.js @@ -13,7 +13,7 @@ * @description * Each {@link ngTable.directive:ngTable ngTable} directive creates an instance of `ngTableController` */ -var ngTableController = ['$scope', 'ngTableParams', '$q', function ($scope, ngTableParams, $q) { +var ngTableController = ['$scope', 'ngTableParams', '$timeout', function ($scope, ngTableParams, $timeout) { $scope.$loading = false; if (!$scope.params) { @@ -24,8 +24,8 @@ var ngTableController = ['$scope', 'ngTableParams', '$q', function ($scope, ngTa var delayFilter = (function () { var timer = 0; return function (callback, ms) { - clearTimeout(timer); - timer = setTimeout(callback, ms); + $timeout.cancel(timer); + timer = $timeout(callback, ms); }; })(); diff --git a/src/scripts/06-pagination.js b/src/scripts/06-pagination.js index af254648..6118dd6b 100644 --- a/src/scripts/06-pagination.js +++ b/src/scripts/06-pagination.js @@ -24,7 +24,7 @@ app.directive('ngTablePagination', ['$compile', replace: false, link: function (scope, element, attrs) { - scope.$watch('params.$params', function (newParams, oldParams) { + scope.params.settings().$scope.$on('ngTableAfterReloadData', function () { scope.pages = scope.params.generatePagesArray(scope.params.page(), scope.params.total(), scope.params.count()); }, true);