ng-bs-daterangepicker icon indicating copy to clipboard operation
ng-bs-daterangepicker copied to clipboard

Support for ngTable

Open jeserkin opened this issue 10 years ago • 4 comments

Tried to use this module/plugin with ngTable, but was unsuccessful.

    function getTableParams(data, sortBy)
    {
      return new ngTableParams({
          page: 1,
          count: 5,
          sorting: sortBy
        }, {
          total: data.length,
          getData: function($defer, params) {
            var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
            $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
          },
          counts: []
        });
    }

And custom filter like that

    <td data-title="'Date'" filter="{'dob': 'daterange'}">{{row.dob}}</td>
    ...
    <script type="text/ng-template" id="ng-table/filters/daterange.html">
      <div class="input-group date-range-input">
        <input class="form-control" id="input-7a-orig" type="daterange" ng-model="params.filter()[name]" format="DD.MM.YYYY" locale="{applyLabel:'Принять', cancelLabel:'Сбросить', fromLabel:'С', toLabel:'По', customRangeLabel:'Custom', firstDay:1}" value="" />
        <span class="input-group-btn">
          <label class="btn btn-default date" for="input-7a-orig"><i class="glyphicon glyphicon-calendar"></i></label>
        </span>
      </div>
    </script>
   ...

And in getData I tried to look, what comes in as filter, but immediately I got an error like

Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"]]
http://errors.angularjs.org/1.2.18/$rootScope/infdig?p0=10&p1=%5B%5B%22para…B%7D%2C%5C%22group%5C%22%3A%7B%7D%2C%5C%22groupBy%5C%22%3Anull%7D%22%5D%5D
    at http://eugene-nortal:9001/bower_components/angular/angular.js:78:12
    at Scope.$digest (http://eugene-nortal:9001/bower_components/angular/angular.js:12434:19)
    at Scope.$apply (http://eugene-nortal:9001/bower_components/angular/angular.js:12660:24)
    at http://eugene-nortal:9001/bower_components/angular/angular.js:14167:36
    at completeOutstandingRequest (http://eugene-nortal:9001/bower_components/angular/angular.js:4337:10)
    at http://eugene-nortal:9001/bower_components/angular/angular.js:4638:7 angular.js:9937
Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\...<omitted>...5D angular.js:78

or simply https://docs.angularjs.org/error/$rootScope/infdig?p0=10&p1=%5B%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D%5D

jeserkin avatar Aug 22 '14 06:08 jeserkin

hey did you manage to get around this?

justnick21 avatar Oct 01 '14 11:10 justnick21

Yes and no. It is not a OKAY solution. I'd say a it is a work around

function getTableParams(data, sortBy) {
        return new ngTableParams({
          page: 1,
          count: 25,
          sorting: sortBy
        }, {
          total: data.length,
          getData: function($defer, params) {
            var filteredData = $filter('filter')(data, _.omit(params.filter(), 'dob')); // exclude date range from filter - we'll filter dates manually, see next lines
            if (params.filter().dob) {
              filteredData = $filter('dateInRange')(filteredData, params.filter().dob, 'dob', 'DD.MM.YYYYY HH:mm');
            }
            var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : filteredData;
            $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
          },
          counts: []
        });
      }

jeserkin avatar Oct 01 '14 23:10 jeserkin

right, i see, cheers for the snippet

justnick21 avatar Oct 10 '14 13:10 justnick21

hey you guys fixed this?

nolines avatar Nov 02 '15 12:11 nolines