1// trigger datetimepicker on document ready and ajax complete ( when fields are loaded in lightboxes ) 2jQuery(document) 3 .ready(function () { 4 dtp_init(); 5 }) 6 .ajaxComplete(function () { 7 dtp_init(); 8 }); 9 10function dtp_init() { 11 var dtselector = null; 12 if(datepickeropts.selector.charAt(0) != '#' && datepickeropts.selector.charAt(0) != '.'){ 13 var diviID = datepickeropts.selector.split(',')[0] 14 dtselector = jQuery('input[data-original_id='+ diviID +']') 15 console.log(dtselector) 16 }else{ 17 dtselector = jQuery(datepickeropts.selector); 18 } 19 if (dtselector.length === 0) { 20 return; 21 } 22 23 jQuery.datetimepicker.setDateFormatter("moment"); 24 25 if (datepickeropts.preventkeyboard == "on") { 26 jQuery(dtselector).focus(function () { 27 jQuery(this).blur(); 28 }); 29 jQuery(dtselector).attr("readonly", "readonly"); 30 } 31 32 // convert to integer 33 datepickeropts.offset = parseInt(datepickeropts.offset); 34 35 // custom times logic 36 var logic = function (currentDateTime, $input) { 37 var mtime = ""; 38 var value = $input.val(); 39 40 if (value === '') { 41 if (datepickeropts.use_max_date_as_default !== 'undefined' && datepickeropts.use_max_date_as_default === "1") { 42 value = datepickeropts.max_date; 43 datepickeropts.now = value; 44 }else{ 45 value = datepickeropts.min_date; 46 datepickeropts.now = value; 47 } 48 } 49 50 $input.datetimepicker({ value: value }); 51 52 if (datepickeropts.minDate === "on") { 53 var now = moment(datepickeropts.now, datepickeropts.format).toDate(); 54 55 if (currentDateTime.toDateString() === now.toDateString()) { 56 var futureh = new Date(now.getTime() + datepickeropts.offset * 60000); 57 var mint = datepickeropts.minTime.split(":"); 58 59 if (parseInt(futureh.getHours()) > parseInt(mint[0])) { 60 mtime = futureh.getHours() + ":" + futureh.getMinutes(); 61 this.setOptions({ 62 minTime: mtime 63 }); 64 } else { 65 mtime = datepickeropts.minTime; 66 this.setOptions({ 67 minTime: mtime 68 }); 69 } 70 } else { 71 mtime = datepickeropts.minTime; 72 this.setOptions({ 73 minTime: mtime 74 }); 75 } 76 } 77 }; 78 79 // if there's a predefined set of allowed times 80 if ( 81 datepickeropts.timepicker === "on" && 82 datepickeropts.allowed_times !== "" 83 ) { 84 logic = function (currentDateTime, $input) { 85 var value = $input.val(); 86 87 if (value === '') { 88 value = datepickeropts.min_date; 89 datepickeropts.now = value; 90 } 91 92 $input.datetimepicker({ value: value }); 93 94 if (datepickeropts.minDate === "on") { 95 var now = moment(datepickeropts.now, datepickeropts.format).toDate(); 96 97 if (currentDateTime.toDateString() === now.toDateString()) { 98 var futureh = new Date(now.getTime() + datepickeropts.offset * 60000); 99 mtime = futureh.getHours() + ":" + futureh.getMinutes(); 100 this.setOptions({ 101 minTime: mtime 102 }); 103 } else { 104 mtime = datepickeropts.minTime; 105 this.setOptions({ 106 minTime: mtime 107 }); 108 } 109 } 110 111 var atimes = ""; 112 if (currentDateTime.getDay() == 0 && datepickeropts.sunday_times !== "") { 113 atimes = datepickeropts.sunday_times; 114 this.setOptions({ 115 allowTimes: atimes 116 }); 117 } else if ( 118 currentDateTime.getDay() == 1 && 119 datepickeropts.monday_times !== "" 120 ) { 121 atimes = datepickeropts.monday_times; 122 this.setOptions({ 123 allowTimes: atimes 124 }); 125 } else if ( 126 currentDateTime.getDay() == 2 && 127 datepickeropts.tuesday_times !== "" 128 ) { 129 atimes = datepickeropts.tuesday_times; 130 this.setOptions({ 131 allowTimes: atimes 132 }); 133 } else if ( 134 currentDateTime.getDay() == 3 && 135 datepickeropts.wednesday_times !== "" 136 ) { 137 atimes = datepickeropts.wednesday_times; 138 this.setOptions({ 139 allowTimes: atimes 140 }); 141 } else if ( 142 currentDateTime.getDay() == 4 && 143 datepickeropts.thursday_times !== "" 144 ) { 145 atimes = datepickeropts.thursday_times; 146 this.setOptions({ 147 allowTimes: atimes 148 }); 149 } else if ( 150 currentDateTime.getDay() == 5 && 151 datepickeropts.friday_times !== "" 152 ) { 153 atimes = datepickeropts.friday_times; 154 this.setOptions({ 155 allowTimes: atimes 156 }); 157 } else if ( 158 currentDateTime.getDay() == 6 && 159 datepickeropts.saturday_times !== "" 160 ) { 161 atimes = datepickeropts.saturday_times; 162 this.setOptions({ 163 allowTimes: atimes 164 }); 165 } else { 166 atimes = datepickeropts.allowed_times; 167 this.setOptions({ 168 allowTimes: atimes 169 }); 170 } 171 172 var minDateTime = new Date(currentDateTime.getTime()); 173 var maxDateTime = new Date(currentDateTime.getTime()); 174 175 // minimum time 176 var timeex = atimes[0].split(":"); 177 minDateTime.setHours(parseInt(timeex[0]), parseInt(timeex[1])); 178 179 if (currentDateTime < minDateTime) { 180 formattedDate = moment(minDateTime).format(datepickeropts.format); 181 $input.datetimepicker({ value: formattedDate }); 182 } 183 184 // maximum time 185 timeex = atimes[atimes.length - 1].split(":"); 186 maxDateTime.setHours(parseInt(timeex[0]), parseInt(timeex[1])); 187 188 if (currentDateTime > maxDateTime) {
189 formattedDate = moment(maxDateTime).format(datepickeropts.format); 190 $input.datetimepicker({ value: formattedDate }); 191 } 192 }; 193 } 194 195 var jumpToNext = function () { 196 //logic to jump to next input here 197 }; 198 199 var opts = { 200 scrollMonth: false, 201 i18n: datepickeropts.i18n, 202 value: datepickeropts.value, 203 format: datepickeropts.format, 204 formatDate: datepickeropts.dateformat, 205 formatTime: datepickeropts.hourformat, 206 inline: datepickeropts.inline == "on", 207 theme: datepickeropts.theme, 208 timepicker: datepickeropts.timepicker == "on", 209 datepicker: datepickeropts.datepicker == "on", 210 step: parseInt(datepickeropts.step), 211 timepickerScrollbar: true, 212 dayOfWeekStart: parseInt(datepickeropts.dayOfWeekStart), 213 onChangeDateTime: logic, 214 onShow: logic, 215 onSelectDate: jumpToNext, 216 onSelectTime: jumpToNext, 217 validateOnBlur: false //added on 1.7.4 to prevent AM/PM format from jumping to 1h before. 218 }; 219 220 if (datepickeropts.minTime !== "") { 221 opts.minTime = datepickeropts.minTime; 222 } 223 224 if (datepickeropts.maxTime !== "") { 225 opts.maxTime = datepickeropts.maxTime; 226 } 227 228 if (datepickeropts.minDate === "on") { 229 if (datepickeropts.value !== "") { 230 opts.minDate = datepickeropts.value; 231 } else { 232 opts.minDate = 0; 233 } 234 } 235 236 if (datepickeropts.max_date !== "") { 237 opts.maxDate = datepickeropts.max_date; 238 239 // set max year 240 opts.yearEnd = parseInt(datepickeropts.max_year); 241 } 242 243 if (datepickeropts.min_date !== "") { 244 opts.minDate = datepickeropts.min_date; 245 246 // set min year 247 opts.yearStart = parseInt(datepickeropts.min_year); 248 } 249 250 if (datepickeropts.disabled_days !== "") { 251 opts.disabledWeekDays = datepickeropts.disabled_days; 252 } 253 254 if (datepickeropts.disabled_calendar_days !== "") { 255 opts.disabledDates = datepickeropts.disabled_calendar_days; 256 } 257 258 if (datepickeropts.allowed_times !== "") { 259 opts.allowTimes = datepickeropts.allowed_times; 260 } 261 262 jQuery(dtselector) 263 .datetimepicker(opts) 264 .attr("type", "text"); 265 jQuery.datetimepicker.setLocale(datepickeropts.locale); 266}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.