diff --git a/src/main/webapp/resources/3rd-party/sneat/libs/bootstrap-datepicker/bootstrap-datepicker.js b/src/main/webapp/resources/3rd-party/sneat/libs/bootstrap-datepicker/bootstrap-datepicker.js index a4b408c..c39c9ec 100644 --- a/src/main/webapp/resources/3rd-party/sneat/libs/bootstrap-datepicker/bootstrap-datepicker.js +++ b/src/main/webapp/resources/3rd-party/sneat/libs/bootstrap-datepicker/bootstrap-datepicker.js @@ -687,10 +687,15 @@ return this; var calendarWidth = this.picker.outerWidth(), calendarHeight = this.picker.outerHeight(), + inputHeight = this.inputField.innerHeight(), visualPadding = 10, container = $(this.o.container), windowWidth = container.width(), + windowHeight = container.height(), scrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(), + scrollHeight = container[0].scrollHeight, + clientHeight = this.o.container === 'body' ? window.innerHeight : container[0].clientHeight, + scrollMoveMax = scrollHeight - clientHeight, appendOffset = container.offset(); var parentsZindex = [0]; @@ -744,10 +749,22 @@ // auto y orientation is best-situation: top or bottom, no fudging, // decision based on which shows more of the calendar var yorient = this.o.orientation.y, - top_overflow; + bottom_overflow, top_overflow; + if (yorient === 'auto'){ + + bottom_overflow = (windowHeight-top) - inputHeight - calendarHeight + (scrollMoveMax-scrollTop); top_overflow = -scrollTop + top - calendarHeight; - yorient = top_overflow < 0 ? 'bottom' : 'top'; + + yorient = 'bottom'; + + if(bottom_overflow < 0){ + yorient = 'top'; + + if(top_overflow < 0){ + yorient = 'bottom'; + } + } } this.picker.addClass('datepicker-orient-' + yorient);