- fix date/time picker nad select2 js

This commit is contained in:
ashubawork
2023-11-21 18:28:11 +02:00
parent 5d750f35dc
commit 621f695872
5 changed files with 198 additions and 190 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ jQuery(window).on( 'load', function($) {
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
jQuery(mutation.addedNodes).find('.um.um-directory').each(function() {
jQuery('.um-directory input, .um-directory select, .um-directory button').attr('disabled', 'disabled');
// jQuery('.um-directory input, .um-directory select, .um-directory button').attr('disabled', 'disabled');
jQuery('.um-directory a').attr('href', '');
if ( typeof( jQuery.fn.select2 ) === 'function' ) {
+193 -187
View File
@@ -694,6 +694,197 @@ function um_slider_filter_init( directory ) {
});
}
function um_datepicker_filter_init( directory ) {
directory.find('.um-datepicker-filter').each( function() {
var elem = jQuery(this);
var min = new Date( elem.data('date_min')*1000 );
var max = new Date( elem.data('date_max')*1000 );
var $input = elem.pickadate({
selectYears: true,
min: min,
max: max,
formatSubmit: 'yyyy/mm/dd',
hiddenName: true,
onOpen: function() {
elem.blur();
},
onClose: function() {
elem.blur();
},
onSet: function( context ) {
if ( ! context.select ) {
return;
}
var directory = elem.parents('.um-directory');
if ( um_is_directory_busy( directory ) ) {
return;
}
um_members_show_preloader( directory );
var filter_name = elem.data( 'filter_name' );
var range = elem.data( 'range' );
var current_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
var current_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
if ( typeof current_value_from === "undefined" ) {
current_value_from = min / 1000;
}
if ( typeof current_value_to === "undefined" ) {
current_value_to = max / 1000;
}
var select_val = context.select / 1000;
var change_val = elem.val();
if ( range === 'from' ) {
current_value_from = select_val;
} else if ( range === 'to' ) {
current_value_to = select_val;
}
um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
}
});
var $picker = $input.pickadate('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
$picker.set( 'select', query_value*1000 );
}
});
}
function um_timepicker_filter_init( directory ) {
directory.find('.um-timepicker-filter').each( function() {
var elem = jQuery(this);
var elemID = elem.attr('id');
var elem_filter_name = elem.data('filter_name');
//using arrays formatted as [HOUR,MINUTE]
var min = elem.attr('data-min');
var max = elem.attr('data-max');
var picker_min = min.split(':');
var picker_max = max.split(':');
var $input = elem.pickatime({
format: elem.data('format'),
interval: parseInt( elem.data('intervals') ),
min: [picker_min[0],picker_min[1]],
max: [picker_max[0],picker_max[1]],
formatSubmit: 'HH:i',
hiddenName: true,
onOpen: function() { elem.blur(); },
onClose: function() { elem.blur(); },
onSet: function( context ) {
if ( ! context.select ) {
return;
}
var directory = elem.parents('.um-directory');
if ( um_is_directory_busy( directory ) ) {
return;
}
um_members_show_preloader( directory );
var filter_name = elem.data( 'filter_name' );
var range = elem.data( 'range' );
var current_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
var current_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
if ( typeof current_value_from === "undefined" ) {
current_value_from = min;
}
if ( typeof current_value_to === "undefined" ) {
current_value_to = max;
}
if ( typeof context.select !== 'undefined' ) {
var select_val = um_time_convert( context.select, range );
//var select_val = context.select / 60;
if ( range === 'from' ) {
current_value_from = select_val;
} else if ( range === 'to' ) {
current_value_to = select_val;
}
} else {
if ( range === 'from' ) {
current_value_from = min;
} else if ( range === 'to' ) {
current_value_to = max;
}
}
var time = jQuery( '#' + elemID ).val();
if ( elem.data('range') === 'from' ) {
jQuery( '#' + elem_filter_name + '_to' ).pickatime('picker').set('min', time);
} else {
jQuery( '#' + elem_filter_name + '_from').pickatime('picker').set('max', time);
}
um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
}
});
// first loading timepicker select
var $picker = $input.pickatime('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
var arr = query_value.split(':');
$picker.set( 'select', arr[0]*60 + arr[1]*1 );
}
});
}
jQuery(document.body).ready( function() {
@@ -1438,196 +1629,11 @@ jQuery(document.body).ready( function() {
//slider filter
um_slider_filter_init( directory );
//datepicker filter
directory.find('.um-datepicker-filter').each( function() {
var elem = jQuery(this);
var min = new Date( elem.data('date_min')*1000 );
var max = new Date( elem.data('date_max')*1000 );
var $input = elem.pickadate({
selectYears: true,
min: min,
max: max,
formatSubmit: 'yyyy/mm/dd',
hiddenName: true,
onOpen: function() {
elem.blur();
},
onClose: function() {
elem.blur();
},
onSet: function( context ) {
if ( ! context.select ) {
return;
}
var directory = elem.parents('.um-directory');
if ( um_is_directory_busy( directory ) ) {
return;
}
um_members_show_preloader( directory );
var filter_name = elem.data( 'filter_name' );
var range = elem.data( 'range' );
var current_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
var current_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
if ( typeof current_value_from === "undefined" ) {
current_value_from = min / 1000;
}
if ( typeof current_value_to === "undefined" ) {
current_value_to = max / 1000;
}
var select_val = context.select / 1000;
var change_val = elem.val();
if ( range === 'from' ) {
current_value_from = select_val;
} else if ( range === 'to' ) {
current_value_to = select_val;
}
um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
}
});
var $picker = $input.pickadate('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
$picker.set( 'select', query_value*1000 );
}
});
um_datepicker_filter_init( directory );
//timepicker filter
directory.find('.um-timepicker-filter').each( function() {
var elem = jQuery(this);
var elemID = elem.attr('id');
var elem_filter_name = elem.data('filter_name');
//using arrays formatted as [HOUR,MINUTE]
var min = elem.attr('data-min');
var max = elem.attr('data-max');
var picker_min = min.split(':');
var picker_max = max.split(':');
var $input = elem.pickatime({
format: elem.data('format'),
interval: parseInt( elem.data('intervals') ),
min: [picker_min[0],picker_min[1]],
max: [picker_max[0],picker_max[1]],
formatSubmit: 'HH:i',
hiddenName: true,
onOpen: function() { elem.blur(); },
onClose: function() { elem.blur(); },
onSet: function( context ) {
if ( ! context.select ) {
return;
}
var directory = elem.parents('.um-directory');
if ( um_is_directory_busy( directory ) ) {
return;
}
um_members_show_preloader( directory );
var filter_name = elem.data( 'filter_name' );
var range = elem.data( 'range' );
var current_value_from = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' );
var current_value_to = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' );
if ( typeof current_value_from === "undefined" ) {
current_value_from = min;
}
if ( typeof current_value_to === "undefined" ) {
current_value_to = max;
}
if ( typeof context.select !== 'undefined' ) {
var select_val = um_time_convert( context.select, range );
//var select_val = context.select / 60;
if ( range === 'from' ) {
current_value_from = select_val;
} else if ( range === 'to' ) {
current_value_to = select_val;
}
} else {
if ( range === 'from' ) {
current_value_from = min;
} else if ( range === 'to' ) {
current_value_to = max;
}
}
var time = jQuery( '#' + elemID ).val();
if ( elem.data('range') === 'from' ) {
jQuery( '#' + elem_filter_name + '_to' ).pickatime('picker').set('min', time);
} else {
jQuery( '#' + elem_filter_name + '_from').pickatime('picker').set('max', time);
}
um_set_url_from_data( directory, 'filter_' + filter_name + '_from', current_value_from );
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', current_value_to );
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
}
});
// first loading timepicker select
var $picker = $input.pickatime('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
var arr = query_value.split(':');
$picker.set( 'select', arr[0]*60 + arr[1]*1 );
}
});
um_timepicker_filter_init( directory );
wp.hooks.doAction( 'um_member_directory_on_init', directory, hash );
@@ -1 +1 @@
<?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-server-side-render'), 'version' => 'fdd5ad1f74de4e2e94db');
<?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-server-side-render'), 'version' => 'a7aefdd7c81b99d7d5e3');
@@ -1 +1 @@
!function(){"use strict";var e={n:function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,r=window.wp.data,n=window.wp.components,i=window.wp.blockEditor,o=window.wp.serverSideRender,l=e.n(o);(0,window.wp.blocks.registerBlockType)("um-block/um-member-directories",{edit:function(e){let{member_id:o,setAttributes:u}=e.attributes;const c=(0,i.useBlockProps)(),a=(0,r.useSelect)((e=>e("core").getEntityRecords("postType","um_directory",{per_page:-1,_fields:["id","title"]})));if(!a)return(0,t.createElement)("p",null,(0,t.createElement)(n.Spinner,null),wp.i18n.__("Loading...","ultimate-member"));if(0===a.length)return"No posts found.";let d=[{id:"",title:""}].concat(a).map((e=>({label:e.title.rendered,value:e.id})));return(0,t.createElement)("div",{...c},(0,t.createElement)(l(),{block:"um-block/um-member-directories",attributes:e.attributes}),(0,t.createElement)(i.InspectorControls,null,(0,t.createElement)(n.PanelBody,{title:wp.i18n.__("Select Directories","ultimate-member")},(0,t.createElement)(n.SelectControl,{label:wp.i18n.__("Select Directories","ultimate-member"),className:"um_select_directory",value:o,options:d,style:{height:"35px",lineHeight:"20px",padding:"0 7px"},onChange:t=>{e.setAttributes({member_id:t})}}))))},save:function(e){return null}}),jQuery(window).on("load",(function(e){new MutationObserver((function(e){e.forEach((function(e){jQuery(e.addedNodes).find(".um.um-directory").each((function(){var e=jQuery(this);um_ajax_get_members(e),um_slider_filter_init(e)}))}))})).observe(document,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}))}();
!function(){"use strict";var e={n:function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,r=window.wp.data,n=window.wp.components,i=window.wp.blockEditor,o=window.wp.serverSideRender,l=e.n(o);(0,window.wp.blocks.registerBlockType)("um-block/um-member-directories",{edit:function(e){let{member_id:o,setAttributes:u}=e.attributes;const c=(0,i.useBlockProps)(),a=(0,r.useSelect)((e=>e("core").getEntityRecords("postType","um_directory",{per_page:-1,_fields:["id","title"]})));if(!a)return(0,t.createElement)("p",null,(0,t.createElement)(n.Spinner,null),wp.i18n.__("Loading...","ultimate-member"));if(0===a.length)return"No posts found.";let d=[{id:"",title:""}].concat(a).map((e=>({label:e.title.rendered,value:e.id})));return(0,t.createElement)("div",{...c},(0,t.createElement)(l(),{block:"um-block/um-member-directories",attributes:e.attributes}),(0,t.createElement)(i.InspectorControls,null,(0,t.createElement)(n.PanelBody,{title:wp.i18n.__("Select Directories","ultimate-member")},(0,t.createElement)(n.SelectControl,{label:wp.i18n.__("Select Directories","ultimate-member"),className:"um_select_directory",value:o,options:d,style:{height:"35px",lineHeight:"20px",padding:"0 7px"},onChange:t=>{e.setAttributes({member_id:t})}}))))},save:function(e){return null}}),jQuery(window).on("load",(function(e){new MutationObserver((function(e){e.forEach((function(e){jQuery(e.addedNodes).find(".um.um-directory").each((function(){var e=jQuery(this);um_ajax_get_members(e),um_slider_filter_init(e),um_datepicker_filter_init(e),um_timepicker_filter_init(e)}))}))})).observe(document,{attributes:!1,childList:!0,characterData:!1,subtree:!0})}))}();
@@ -98,6 +98,8 @@ jQuery(window).on( 'load', function($) {
var directory = jQuery(this);
um_ajax_get_members( directory );
um_slider_filter_init( directory );
um_datepicker_filter_init( directory );
um_timepicker_filter_init( directory );
});
});
});