Skip to content
This repository was archived by the owner on May 29, 2019. It is now read-only.

Commit 92c1715

Browse files
bekospkozlowski-opensource
authored andcommitted
fix(datepicker): evaluate show-weeks from datepicker-options
Closes #1532 Closes #1563
1 parent bc8d21c commit 92c1715

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

src/datepicker/datepicker.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -337,9 +337,11 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon
337337
'ng-model': 'date',
338338
'ng-change': 'dateSelection()'
339339
});
340-
var datepickerEl = angular.element(popupEl.children()[0]);
340+
var datepickerEl = angular.element(popupEl.children()[0]),
341+
datepickerOptions = {};
341342
if (attrs.datepickerOptions) {
342-
datepickerEl.attr(angular.extend({}, originalScope.$eval(attrs.datepickerOptions)));
343+
datepickerOptions = originalScope.$eval(attrs.datepickerOptions);
344+
datepickerEl.attr(angular.extend({}, datepickerOptions));
343345
}
344346

345347
// TODO: reverse from dateFilter string to Date object
@@ -405,7 +407,7 @@ function ($compile, $parse, $document, $position, dateFilter, datepickerPopupCon
405407
if (attrs.showWeeks) {
406408
addWatchableAttribute(attrs.showWeeks, 'showWeeks', 'show-weeks');
407409
} else {
408-
scope.showWeeks = datepickerConfig.showWeeks;
410+
scope.showWeeks = 'show-weeks' in datepickerOptions ? datepickerOptions['show-weeks'] : datepickerConfig.showWeeks;
409411
datepickerEl.attr('show-weeks', 'showWeeks');
410412
}
411413
if (attrs.dateDisabled) {

src/datepicker/test/datepicker.spec.js

+21
Original file line numberDiff line numberDiff line change
@@ -1061,6 +1061,27 @@ describe('datepicker directive', function () {
10611061

10621062
});
10631063

1064+
describe('attribute `datepickerOptions`', function () {
1065+
var weekHeader, weekElement;
1066+
beforeEach(function() {
1067+
$rootScope.opts = {
1068+
'show-weeks': false
1069+
};
1070+
var wrapElement = $compile('<div><input ng-model="date" datepicker-popup datepicker-options="opts" is-open="true"></div>')($rootScope);
1071+
$rootScope.$digest();
1072+
assignElements(wrapElement);
1073+
1074+
weekHeader = getLabelsRow().find('th').eq(0);
1075+
weekElement = element.find('tbody').find('tr').eq(1).find('td').eq(0);
1076+
});
1077+
1078+
it('hides week numbers based on variable', function() {
1079+
expect(weekHeader.text()).toEqual('#');
1080+
expect(weekHeader).toBeHidden();
1081+
expect(weekElement).toBeHidden();
1082+
});
1083+
});
1084+
10641085
describe('toggles programatically by `open` attribute', function () {
10651086
beforeEach(inject(function() {
10661087
$rootScope.open = true;

0 commit comments

Comments
 (0)