Files
wordpress-preseed/wp-content/plugins/advanced-custom-fields/assets/build/js/_acf-field-time-picker.js
2019-09-11 19:08:46 +02:00

77 lines
1.6 KiB
JavaScript

(function($, undefined){
var Field = acf.models.DatePickerField.extend({
type: 'time_picker',
$control: function(){
return this.$('.acf-time-picker');
},
initialize: function(){
// vars
var $input = this.$input();
var $inputText = this.$inputText();
// args
var args = {
timeFormat: this.get('time_format'),
altField: $input,
altFieldTimeOnly: false,
altTimeFormat: 'HH:mm:ss',
showButtonPanel: true,
controlType: 'select',
oneLine: true,
closeText: acf.get('dateTimePickerL10n').selectText,
timeOnly: true,
};
// add custom 'Close = Select' functionality
args.onClose = function( value, dp_instance, t_instance ){
// vars
var $close = dp_instance.dpDiv.find('.ui-datepicker-close');
// if clicking close button
if( !value && $close.is(':hover') ) {
t_instance._updateDateTime();
}
};
// filter
args = acf.applyFilters('time_picker_args', args, this);
// add date time picker
acf.newTimePicker( $inputText, args );
// action
acf.doAction('time_picker_init', $inputText, args, this);
}
});
acf.registerFieldType( Field );
// add
acf.newTimePicker = function( $input, args ){
// bail ealry if no datepicker library
if( typeof $.timepicker === 'undefined' ) {
return false;
}
// defaults
args = args || {};
// initialize
$input.timepicker( args );
// wrap the datepicker (only if it hasn't already been wrapped)
if( $('body > #ui-datepicker-div').exists() ) {
$('body > #ui-datepicker-div').wrap('<div class="acf-ui-datepicker" />');
}
};
})(jQuery);