Skip to content

Commit ad2d26b

Browse files
committed
Protect modification of internal date in render event callback.
Fix for `update` event on `flat: true` instances.
1 parent e068562 commit ad2d26b

File tree

6 files changed

+54
-92
lines changed

6 files changed

+54
-92
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name" : "pickmeup",
3-
"version" : "2.6.2",
3+
"version" : "2.6.3",
44
"homepage" : "https://github.com/nazar-pc/PickMeUp",
55
"authors" : [
66
"Nazar Mokrynskyi <[email protected]>"

changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2.6.3 (21 January, 2015)
2+
* Protect modification of internal date in `render` event callback.
3+
* Fix for `update` event on `flat: true` instances.
4+
15
2.6.2 (15 January, 2015)
26
* Fix for bug when `min` and `max` were not specified and forced datepicker to stuck at 1970, fixes [#49](https://github.com/nazar-pc/PickMeUp/issues/49)
37

js/jquery.pickmeup.js

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@
339339
} else if (local_date.getDay() == 6) {
340340
day.class_name.push('pmu-saturday');
341341
}
342-
var from_user = options.render(local_date) || {},
342+
var from_user = options.render(new Date(local_date)) || {},
343343
val = local_date.valueOf(),
344344
disabled = (options.min && options.min > local_date) || (options.max && options.max < local_date);
345345
if (from_user.disabled || disabled) {
@@ -589,6 +589,7 @@
589589
}
590590
options.change.apply(this, prepared_date);
591591
if (
592+
!options.flat &&
592593
options.hide_on_select &&
593594
(
594595
options.mode != 'range' ||
@@ -722,52 +723,54 @@
722723
});
723724
}
724725
options.before_show();
725-
switch (options.position){
726-
case 'top':
727-
top -= pickmeup.outerHeight();
728-
break;
729-
case 'left':
730-
left -= pickmeup.outerWidth();
731-
break;
732-
case 'right':
733-
left += this.offsetWidth;
734-
break;
735-
case 'bottom':
736-
top += this.offsetHeight;
737-
break;
738-
}
739-
if (top + pickmeup.offsetHeight > viewport.t + viewport.h) {
740-
top = pos.top - pickmeup.offsetHeight;
741-
}
742-
if (top < viewport.t) {
743-
top = pos.top + this.offsetHeight + pickmeup.offsetHeight;
744-
}
745-
if (left + pickmeup.offsetWidth > viewport.l + viewport.w) {
746-
left = pos.left - pickmeup.offsetWidth;
747-
}
748-
if (left < viewport.l) {
749-
left = pos.left + this.offsetWidth
750-
}
751726
if (options.show() == false) {
752727
return;
753728
}
754-
pickmeup.css({
755-
display : 'inline-block',
756-
top : top + 'px',
757-
left : left + 'px'
758-
});
759-
$(document)
760-
.on(
761-
'mousedown' + options.events_namespace,
762-
options.binded.hide
763-
)
764-
.on(
765-
'resize' + options.events_namespace,
766-
[
767-
true
768-
],
769-
options.binded.forced_show
770-
);
729+
if (!options.flat) {
730+
switch (options.position){
731+
case 'top':
732+
top -= pickmeup.outerHeight();
733+
break;
734+
case 'left':
735+
left -= pickmeup.outerWidth();
736+
break;
737+
case 'right':
738+
left += this.offsetWidth;
739+
break;
740+
case 'bottom':
741+
top += this.offsetHeight;
742+
break;
743+
}
744+
if (top + pickmeup.offsetHeight > viewport.t + viewport.h) {
745+
top = pos.top - pickmeup.offsetHeight;
746+
}
747+
if (top < viewport.t) {
748+
top = pos.top + this.offsetHeight + pickmeup.offsetHeight;
749+
}
750+
if (left + pickmeup.offsetWidth > viewport.l + viewport.w) {
751+
left = pos.left - pickmeup.offsetWidth;
752+
}
753+
if (left < viewport.l) {
754+
left = pos.left + this.offsetWidth
755+
}
756+
pickmeup.css({
757+
display : 'inline-block',
758+
top : top + 'px',
759+
left : left + 'px'
760+
});
761+
$(document)
762+
.on(
763+
'mousedown' + options.events_namespace,
764+
options.binded.hide
765+
)
766+
.on(
767+
'resize' + options.events_namespace,
768+
[
769+
true
770+
],
771+
options.binded.forced_show
772+
);
773+
}
771774
}
772775
}
773776
function forced_show () {

js/jquery.pickmeup.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"date",
88
"calendar"
99
],
10-
"version" : "2.6.2",
10+
"version" : "2.6.3",
1111
"homepage" : "https://github.com/nazar-pc/PickMeUp",
1212
"author" : {
1313
"name" : "Nazar Mokrynskyi",

pickmeup.jquery.json

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)