63 lines
1.9 KiB
JavaScript
63 lines
1.9 KiB
JavaScript
/**
|
|
* Attaches the calendar behavior to all required fields
|
|
*/
|
|
(function ($) {
|
|
Drupal.behaviors.date_popup = {
|
|
attach: function (context) {
|
|
for (var id in Drupal.settings.datePopup) {
|
|
$('#'+ id).bind('focus', Drupal.settings.datePopup[id], function(e) {
|
|
if (!$(this).hasClass('date-popup-init')) {
|
|
var datePopup = e.data;
|
|
// Explicitely filter the methods we accept.
|
|
switch (datePopup.func) {
|
|
case 'datepicker':
|
|
$(this)
|
|
.datepicker(datePopup.settings)
|
|
.addClass('date-popup-init')
|
|
$(this).click(function(){
|
|
$(this).focus();
|
|
});
|
|
break;
|
|
|
|
case 'timeEntry':
|
|
$(this)
|
|
.timeEntry(datePopup.settings)
|
|
.addClass('date-popup-init')
|
|
$(this).click(function(){
|
|
$(this).focus();
|
|
});
|
|
break;
|
|
case 'timepicker':
|
|
// Translate the PHP date format into the style the timepicker uses.
|
|
datePopup.settings.timeFormat = datePopup.settings.timeFormat
|
|
// 12-hour, leading zero,
|
|
.replace('h', 'hh')
|
|
// 12-hour, no leading zero.
|
|
.replace('g', 'h')
|
|
// 24-hour, leading zero.
|
|
.replace('H', 'HH')
|
|
// 24-hour, no leading zero.
|
|
.replace('G', 'H')
|
|
// AM/PM.
|
|
.replace('A', 'p')
|
|
// Minutes with leading zero.
|
|
.replace('i', 'mm')
|
|
// Seconds with leading zero.
|
|
.replace('s', 'ss');
|
|
|
|
datePopup.settings.startTime = new Date(datePopup.settings.startTime);
|
|
$(this)
|
|
.timepicker(datePopup.settings)
|
|
.addClass('date-popup-init');
|
|
$(this).click(function(){
|
|
$(this).focus();
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
})(jQuery);
|