PluginProbe
Booking Calendar / 11.9
Booking Calendar v11.9
11.9 11.8.4 11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 All 205 releases
← All changes | js/datepick/jquery.datepick.wpbc.9.0.js +14 -4 10.10.1 → 11.9 View file →
@@ -1,4 +1,4 @@
1 1 /* http://keith-wood.name/datepick.html
2 2 Datepicker for jQuery 3.7.1.
3 3 Written by Marc Grabanski ([email protected]) and
4 4 Keith Wood (kbwood{at}iinet.com.au).
@@ -155,9 +155,10 @@
155 155 beforeShowDay: null, // Function that takes a date and returns an array with
156 156 // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
157 157 // [2] = cell title (optional), e.g. $.datepick.noWeekends
158 158 onChangeMonthYear: null, // Define a callback function when the month or year is changed
159 - onHover: null, // Define a callback function when hovering over a day
159 + onHover: null, // Define a callback function when hovering over a day
160 + beforeSelectDay: null, // Optional (Date, instance) callback; false vetoes selection before any state change.
160 161 onSelect: null, // Define a callback function when a date is selected
161 162 onClose: null, // Define a callback function when the datepicker is closed
162 163 altField: '', // Selector for an alternate field to store selected dates into
163 164 altFormat: '', // The date format to use for the alternate field
@@ -239,8 +240,9 @@
239 240 var inst = this._newInst($(target), (nodeName == 'div' || nodeName == 'span'));
240 241 // Check for settings on the control itself
241 242 var inlineSettings = ($.fn.metadata ? $(target).metadata() : {});
242 243 inst.settings = $.extend({}, settings || {}, inlineSettings || {});
244 + this._adjustInstDate(inst); // FixIn: Adjust cursor date (currently rendering Month, if we define the minDate in the future !!! // FixIn: 10.13.1.4.
243 245 if (inst.inline) {
244 246 inst.dpDiv.addClass(this._inlineClass[
245 247 this._get(inst, 'useThemeRoller') ? 1 : 0]);
246 248 this._inlineDatepick(target, inst);
@@ -891,8 +893,11 @@
891 893
892 894 /* Generate the date picker content.
893 895 @param inst (object) the instance settings for this datepicker */
894 896 _updateDatepick: function(inst) {
897 + if ( null === inst ) {
898 + return;
899 + }
895 900 var borders = this._getBorders(inst.dpDiv);
896 901 var useTR = this._get(inst, 'useThemeRoller') ? 1 : 0;
897 902 inst.dpDiv.empty().append(this._generateHTML(inst)).
898 903 find('iframe.' + this._coverClass[useTR]). // IE6- only
@@ -1140,11 +1145,16 @@
1140 1145 var inst = this._getInst($(id)[0]);
1141 1146 var useTR = this._get(inst, 'useThemeRoller') ? 1 : 0;
1142 1147 if ($(td).hasClass(this._unselectableClass[useTR]))
1143 1148 return false;
1144 - var rangeSelect = this._get(inst, 'rangeSelect');
1145 - var multiSelect = this._get(inst, 'multiSelect');
1146 - if (rangeSelect)
1149 + var rangeSelect = this._get(inst, 'rangeSelect');
1150 + var multiSelect = this._get(inst, 'multiSelect');
1151 + // Allow a domain validator to veto activation before native selection state changes.
1152 + var beforeSelectDay = this._get(inst, 'beforeSelectDay');
1153 + if (beforeSelectDay && beforeSelectDay.apply((inst.input ? inst.input[0] : null),
1154 + [this._daylightSavingAdjust(new Date(timestamp)), inst]) === false)
1155 + return false;
1156 + if (rangeSelect)
1147 1157 inst.stayOpen = !inst.stayOpen;
1148 1158 else if (multiSelect)
1149 1159 inst.stayOpen = true;
1150 1160 if (inst.stayOpen) {