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

Commit 5fb1f0c

Browse files
committed
Merge pull request #47 from mkorfmann/master
Binding format and minViewMode attributes
2 parents ab5955d + 4e70472 commit 5fb1f0c

File tree

2 files changed

+54
-2
lines changed

2 files changed

+54
-2
lines changed

addon/components/datepicker-support.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import Ember from 'ember';
33
export default Ember.Mixin.create({
44
mustUpdateInput: true,
55
value: null,
6+
minViewMode: undefined,
7+
format: undefined,
68

79
setupBootstrapDatepicker: Ember.on('didInsertElement', function() {
810
var self = this;
@@ -70,7 +72,7 @@ export default Ember.Mixin.create({
7072
}
7173
}
7274

73-
this.set('mustUpdateInput', false);
75+
this.set('mustUpdateInput', false);
7476
this.set('value', value);
7577
this.sendAction('changeDate', value);
7678
},
@@ -94,7 +96,19 @@ export default Ember.Mixin.create({
9496
this.$().datepicker('setDatesDisabled', this.get('datesDisabled'));
9597
this._updateDatepicker();
9698
}),
97-
99+
100+
_updateMinViewMode: Ember.observer('minViewMode', function() {
101+
this.$().datepicker('minViewMode', this.get('minViewMode'));
102+
this.$().data('datepicker')._process_options({minViewMode: this.get('minViewMode')});
103+
this._updateDatepicker();
104+
}),
105+
106+
_updateFomat: Ember.observer('format', function() {
107+
this.$().datepicker('format', this.get('format'));
108+
this.$().data('datepicker')._process_options({format: this.get('format')});
109+
this._updateDatepicker();
110+
}),
111+
98112

99113
_updateDatepicker: function() {
100114
var self = this,

tests/unit/components/bootstrap-datepicker-test.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,41 @@ test('should update startDate', function(assert) {
9696
component.set("startDate", newStartDate);
9797
assert.equal(this.$().datepicker("setDate").o.startDate.getMonth(), newStartDate.getMonth(), 'should update startDate');
9898
});
99+
100+
test('should update format', function(assert) {
101+
assert.expect(2);
102+
103+
var format = 'mm/yyyy';
104+
var newFormat = 'yyyy';
105+
106+
var component = this.subject({
107+
value: new Date(2015, 4),
108+
format: format
109+
});
110+
111+
assert.equal(this.$().data('datepicker').o.format, format, 'should set initial format');
112+
113+
component.set('format', newFormat);
114+
115+
assert.equal(this.$().data('datepicker').o.format, newFormat, 'should update format');
116+
});
117+
118+
test('should update minViewMode', function(assert) {
119+
assert.expect(2);
120+
121+
var minViewMode = 'years';
122+
var yearsViewModeNumber = 2;
123+
var newMinViewMode = 'months';
124+
var monthsViewModeNumber = 1;
125+
126+
var component = this.subject({
127+
value: new Date(2015, 4),
128+
minViewMode: minViewMode
129+
});
130+
131+
assert.equal(this.$().data('datepicker').o.minViewMode, yearsViewModeNumber, 'should set initial format');
132+
133+
component.set('minViewMode', newMinViewMode);
134+
135+
assert.equal(this.$().data('datepicker').o.minViewMode, monthsViewModeNumber, 'should update format');
136+
});

0 commit comments

Comments
 (0)