longy
longy

Reputation: 97

angularstrap 2.1.6 datepicker disable dates

I'm trying to disable italian festivities in angularstrap datapicker using data-disabled-dates attribute.

<input type='text' bs-datepicker="true" ... data-disabled-dates="{{fest}}" />

Here is how i generate dates:

$scope.fest = [{start: new Date(2015, 0, 1), end: new Date(2015, 0, 2)}, ...]

Here is the console.log of festivities:

[{"start":"2014-12-31T23:00:00.000Z","end":"2015-01-01T23:00:00.000Z"},{"start":"2015-01-05T23:00:00.000Z","end":"2015-01-06T23:00:00.000Z"},{"start":"2015-04-24T22:00:00.000Z","end":"2015-04-25T22:00:00.000Z"},{"start":"2015-04-30T22:00:00.000Z","end":"2015-05-01T22:00:00.000Z"},{"start":"2015-06-01T22:00:00.000Z","end":"2015-06-02T22:00:00.000Z"},{"start":"2015-08-14T22:00:00.000Z","end":"2015-08-15T22:00:00.000Z"},{"start":"2015-10-31T23:00:00.000Z","end":"2015-11-01T23:00:00.000Z"},{"start":"2015-12-07T23:00:00.000Z","end":"2015-12-08T23:00:00.000Z"},{"start":"2015-12-24T23:00:00.000Z","end":"2015-12-25T23:00:00.000Z"},{"start":"2015-12-25T23:00:00.000Z","end":"2015-12-26T23:00:00.000Z"},{"start":"2015-04-04T22:00:00.000Z","end":"2015-04-05T22:00:00.000Z"},{"start":"2015-04-05T22:00:00.000Z","end":"2015-04-06T22:00:00.000Z"},{"start":"2015-12-31T23:00:00.000Z","end":"2016-01-01T23:00:00.000Z"},{"start":"2016-01-05T23:00:00.000Z","end":"2016-01-06T23:00:00.000Z"},{"start":"2016-04-24T22:00:00.000Z","end":"2016-04-25T22:00:00.000Z"},{"start":"2016-04-30T22:00:00.000Z","end":"2016-05-01T22:00:00.000Z"},{"start":"2016-06-01T22:00:00.000Z","end":"2016-06-02T22:00:00.000Z"},{"start":"2016-08-14T22:00:00.000Z","end":"2016-08-15T22:00:00.000Z"},{"start":"2016-10-31T23:00:00.000Z","end":"2016-11-01T23:00:00.000Z"},{"start":"2016-12-07T23:00:00.000Z","end":"2016-12-08T23:00:00.000Z"},{"start":"2016-12-24T23:00:00.000Z","end":"2016-12-25T23:00:00.000Z"},{"start":"2016-12-25T23:00:00.000Z","end":"2016-12-26T23:00:00.000Z"},{"start":"2016-03-26T23:00:00.000Z","end":"2016-03-27T22:00:00.000Z"},{"start":"2016-03-27T22:00:00.000Z","end":"2016-03-28T22:00:00.000Z"}]; 

Datepicker works good with data-min-date, data-start-date, data-max-date, data-date-format, but data-disabled-dates is ignored. Why?

Here is an issue opened on github with my code in detail: https://github.com/mgcrea/angular-strap/issues/1432

I cannot make it work in any way.

Upvotes: 1

Views: 579

Answers (2)

longy
longy

Reputation: 97

I'm not sure if it's the best (or the worst) way, but by changing angular-strap.js "views.isDisabled" seems to work:

      // Disabled because of disabled date range.
      if (options.disabledDateRanges) {

        for (var i = 0; i < options.disabledDateRanges.length; i++) {
          var startRange = new Date(options.disabledDateRanges[i].start).getTime();
          var endRange = new Date(options.disabledDateRanges[i].end).getTime();
          if (time >= startRange && time <= endRange) {
            return true;
          }
        }
      }

Upvotes: 1

Martin Boh&#225;č
Martin Boh&#225;č

Reputation: 1

you can try:

$scope.fest = [{"start": new Date("2014-12-31T23:00:00.000Z"),"end": new Date("2015-01-01T23:00:00.000Z")};
Convert ISO String to Date.

Upvotes: 0

Related Questions