diff --git a/assets/css/um-members.css b/assets/css/um-members.css index 0bc6e62d..86c2aa44 100644 --- a/assets/css/um-members.css +++ b/assets/css/um-members.css @@ -107,7 +107,7 @@ body #content .um-directory a { width: 100%; top: 0; bottom: 0; - background: rgba(255, 255, 255, 0.8); + background: none; z-index: 2; } .um-directory .um-members-overlay .um-ajax-loading { -webkit-transition: 0.1s opacity; @@ -144,6 +144,8 @@ body #content .um-directory a { align-items: stretch; flex-wrap: nowrap; width: 100%; } + .um-directory .um-member-directory-header .um-member-directory-header-row.um-member-directory-filters-bar { + padding: 0 0 10px 0; } .um-directory .um-member-directory-header .um-member-directory-header-row:not(.um-member-directory-filters-bar) { display: flex; flex-direction: row; @@ -172,9 +174,13 @@ body #content .um-directory a { margin: 0 5px 0 0; } .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line label .um-search-line { -webkit-appearance: textfield; - width: 100%; } + width: 100%; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; } .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line .um-do-search { - min-width: 15%; } + min-width: 15%; + width: auto; } .um-directory .um-member-directory-header .um-member-directory-header-row .um-member-directory-nav-line { display: flex; flex-direction: row; @@ -279,6 +285,8 @@ body #content .um-directory a { width: 100% !important; } .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter .um-s1 { width: 100%; } + .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-text-filter-type input { + width: 100%; } .um-directory .um-member-directory-header .um-member-directory-header-row .um-search .um-search-filter.um-slider-filter-type { flex-direction: column; align-items: stretch; } @@ -595,7 +603,7 @@ body #content .um-directory a { width: 100%; padding: 15px; margin: 0; - background: none; + background: #fff; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } @@ -651,6 +659,8 @@ body #content .um-directory a { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } + .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card.no-photo { + width: 100%; } .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-content { display: flex; flex-direction: column; @@ -803,6 +813,12 @@ body #content .um-directory a { font-size: 28px; height: 28px; line-height: 28px; } + .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-photo.no-reveal .um-member-card-footer-buttons { + width: 100%; } + .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-photo:not(.no-reveal) .um-member-card-footer-buttons { + width: calc( 100% - 30px); } + .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons { + width: calc( 100% - 125px); } .um-directory .um-members-wrapper .um-members .um-members-none { text-align: center; font-size: 18px; } @@ -918,6 +934,8 @@ body #content .um-directory a { margin: 0 0 5px 0; } .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper a.um-button { width: 100% !important; } + .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons { + width: calc( 100% - 70px); } .um-directory.uimob340 .um-members-pagination-box .um-members-pagi { display: none; } .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line { @@ -954,6 +972,8 @@ body #content .um-directory a { margin: 0 10px 0 0; } .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper { margin: 0 10px 5px 0; } + .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons { + width: calc( 100% - 90px); } .um-directory.uimob500 .um-members-pagination-box .um-members-pagi { display: none; } .um-directory.uimob800 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line { @@ -983,6 +1003,8 @@ body #content .um-directory a { margin: 0 10px 0 0; } .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper { margin: 0 10px 5px 0; } + .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer.no-reveal:not(.no-photo) .um-member-card-footer-buttons { + width: calc( 100% - 100px); } .um-directory.uimob960 .um-member-directory-header .um-search { grid-template-columns: repeat(2, 1fr); } .um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer { diff --git a/assets/css/um-old-default.css b/assets/css/um-old-default.css index d81b316e..43ed53b8 100644 --- a/assets/css/um-old-default.css +++ b/assets/css/um-old-default.css @@ -126,6 +126,7 @@ div.uimob800 .um-account-side li a.current:hover } .um .um-form input[type=text], +.um .um-form input[type=search], .um .um-form input[type=tel], .um .um-form input[type=number], .um .um-form input[type=password], @@ -145,6 +146,7 @@ div.uimob800 .um-account-side li a.current:hover } .um .um-form input[type=text]:focus, +.um .um-form input[type=search]:focus, .um .um-form input[type=tel]:focus, .um .um-form input[type=number]:focus, .um .um-form input[type=password]:focus, @@ -155,6 +157,7 @@ div.uimob800 .um-account-side li a.current:hover } .um .um-form input[type=text], +.um .um-form input[type=search], .um .um-form input[type=tel], .um .um-form input[type=number], .um .um-form input[type=password], @@ -166,6 +169,7 @@ div.uimob800 .um-account-side li a.current:hover } .um .um-form input[type=text]:focus, +.um .um-form input[type=search]:focus, .um .um-form input[type=tel]:focus, .um .um-form input[type=number]:focus, .um .um-form input[type=password]:focus, @@ -174,6 +178,7 @@ div.uimob800 .um-account-side li a.current:hover } .um .um-form input[type=text], +.um .um-form input[type=search], .um .um-form input[type=tel], .um .um-form input[type=password], .um .um-form textarea diff --git a/assets/css/um-styles.css b/assets/css/um-styles.css index eac76277..35f4e38f 100644 --- a/assets/css/um-styles.css +++ b/assets/css/um-styles.css @@ -391,6 +391,7 @@ p.um-notice.warning a { } .um-form input[type=text], +.um-form input[type=search], .um-form input[type=tel], .um-form input[type=number], .um-form input[type=password] { @@ -418,6 +419,7 @@ p.um-notice.warning a { } .um-form input[type=text]:focus, +.um-form input[type=search]:focus, .um-form input[type=tel]:focus, .um-form input[type=number]:focus, .um-form input[type=password]:focus, diff --git a/assets/js/um-members.js b/assets/js/um-members.js index e0026ad3..53f54f42 100644 --- a/assets/js/um-members.js +++ b/assets/js/um-members.js @@ -216,12 +216,18 @@ function um_ajax_get_members( directory, args ) { if ( typeof value_from != 'undefined' || typeof value_to != 'undefined' ) { request[ filter_name ] = [ value_from, value_to ]; } - } else { + } else if ( filter.find( 'select' ).length ) { var filter_name = filter.find('select').attr('name'); var value = um_get_data_for_directory( directory, 'filter_' + filter_name ); if ( typeof value != 'undefined' ) { request[ filter_name ] = value.split( '||' ); } + } else { + var filter_name = filter.find('input[type="text"]').attr('name'); + var value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + if ( typeof value != 'undefined' ) { + request[ filter_name ] = value; + } } }); } @@ -274,7 +280,9 @@ function um_build_template( directory, data ) { var header_template = wp.template( 'um-members-header' ); directory.find('.um-members-intro').remove(); - directory.find('.um-members-wrapper').prepend( header_template( data ) ); + if ( typeof data.is_search != 'undefined' && data.is_search ) { + directory.find('.um-members-wrapper').prepend( header_template( data ) ); + } directory.addClass('um-loaded'); @@ -402,6 +410,21 @@ function um_get_filters_data( directory ) { filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value_title, 'value':filter_value[ i ], 'type':filter_type} ); }); + } else if( filter.find('input[type="text"]').length ) { + + filter_type = 'text'; + filter_name = filter.find('input[type="text"]').attr('name'); + filter_title = filter.find('input[type="text"]').attr('placeholder'); + + var filter_value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + if ( typeof filter_value == 'undefined' ) { + filter_value = ''; + } + + if ( filter_value != '' ) { + filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value, 'value':filter_value, 'type':filter_type} ); + } + } else if( filter.find('div.ui-slider').length ) { filter_type = 'slider'; @@ -433,7 +456,7 @@ function um_change_tag( directory ) { directory.find('.um-members-filter-tag').remove(); var filtered_line = directory.find('.um-filtered-line'); - if ( filtered_line.length ){ + if ( filtered_line.length ) { var filters_template = wp.template( 'um-members-filtered-line' ); filtered_line.prepend( filters_template( {'filters': filters_data} ) ); @@ -865,20 +888,101 @@ jQuery(document.body).ready( function() { }); - jQuery( document.body ).on( 'click', '.um-directory .um-members-filter-remove', function() { + jQuery( document.body ).on( 'blur', '.um-directory .um-search-filter input[type="text"]', function() { var directory = jQuery(this).parents('.um-directory'); - if ( um_is_directory_busy( directory ) || ! directory ) { + if ( um_is_directory_busy( directory ) ) { + return; + } + + var current_value = jQuery(this).val(); + var filter_name = jQuery(this).prop('name'); + var url_value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + + if ( typeof url_value == 'undefined' ) { + url_value = ''; + } + + if ( current_value === url_value ) { return; } um_members_show_preloader( directory ); + um_set_url_from_data( directory, 'filter_' + filter_name, current_value ); + + //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' ); + }); + + + //make search on Enter click + jQuery( document.body ).on( 'keypress', '.um-directory .um-search-filter input[type="text"]', function(e) { + if ( e.which === 13 ) { + var directory = jQuery(this).parents('.um-directory'); + + if ( um_is_directory_busy( directory ) ) { + return; + } + + var current_value = jQuery(this).val(); + var filter_name = jQuery(this).prop('name'); + var url_value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + + if ( typeof url_value == 'undefined' ) { + url_value = ''; + } + + if ( current_value === url_value ) { + return; + } + + um_members_show_preloader( directory ); + um_set_url_from_data( directory, 'filter_' + filter_name, current_value ); + + //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' ); + } + }); + + + + jQuery( document.body ).on( 'click', '.um-directory .um-members-filter-remove', function() { + var directory = jQuery(this).parents('.um-directory'); + + if ( um_is_directory_busy(directory) || ! directory ) { + return; + } + + um_members_show_preloader(directory); var removeItem = jQuery(this).data('value'); var filter_name = jQuery(this).data('name'); var type = jQuery(this).data('type'); - if ( type === 'select' ) { + if ( type === 'text' ) { + um_set_url_from_data( directory, 'filter_' + filter_name,'' ); + + jQuery( '.um-search-filter input[name="' + filter_name + '"]' ).val(''); + + } else if ( type === 'select' ) { var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name ); if ( typeof current_value == 'undefined' ) { @@ -967,7 +1071,12 @@ jQuery(document.body).ready( function() { var filter_name = jQuery(this).data('name'); var type = jQuery(this).data('type'); - if ( type === 'select' ) { + if ( type === 'text' ) { + um_set_url_from_data( directory, 'filter_' + filter_name,'' ); + + jQuery( '.um-search-filter input[name="' + filter_name + '"]' ).val(''); + + } else if ( type === 'select' ) { var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name ); if ( typeof current_value == 'undefined' ) { diff --git a/assets/js/um-members.min.js b/assets/js/um-members.min.js index b7ba4e5d..5987f217 100644 --- a/assets/js/um-members.min.js +++ b/assets/js/um-members.min.js @@ -1 +1 @@ -var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURI(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var u="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===u&&(u=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+u)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t=e.siblings(".um-slider-range").data("placeholder");t=r?t.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):t.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_ajax_get_members(m,t){var a=um_members_get_hash(m),e=um_get_current_page(m),r=um_get_search(m),i=um_get_sort(m),d=-(new Date).getTimezoneOffset()/60,u={directory_id:a,page:e,search:r,sorting:i,gmt_offset:d,post_refferer:m.data("base-post"),nonce:um_scripts.nonce};m.find(".um-search-filter").length&&m.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else{r=e.find("select").attr("name");var i=um_get_data_for_directory(m,"filter_"+r);void 0!==i&&(u[r]=i.split("||"))}}),u=wp.hooks.applyFilters("um_member_directory_filter_request",u),wp.ajax.send("um_get_members",{data:u,success:function(e){um_member_directory_last_data[a]=e,um_build_template(m,e);var r=wp.template("um-members-pagination");m.find(".um-members-pagination-box").html(r(e)),m.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled")):(m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled")),jQuery(document).trigger("um_members_rendered",t),um_init_new_dropdown(),um_members_hide_preloader(m)},error:function(e){console.log(e),um_members_hide_preloader(m)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t);e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove(),e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(s){var _=[];return s.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder");var m=um_get_data_for_directory(s,"filter_"+t);m=void 0===m?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e=um_get_data_for_directory(s,"filter_"+t+"_from"),r=um_get_data_for_directory(s,"filter_"+t+"_to");if(void 0===e&&void 0===r)return;a=i.find("div.um-slider-range").data("label");var u=i.find("div.um-slider-range").data("placeholder").replace("{min_range}",e).replace("{max_range}",r).replace("{field_label}",i.find("div.um-slider-range").data("label"));_.push({name:t,label:a,value_label:u,value:[e,r],type:d})}}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search");if((t=e.find(".um-search-line").val())===r||""===t&&void 0===r)um_members_hide_preloader(e);else{if(e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page",""),1===e.data("must-search")){var t=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!t)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i)}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}if(d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()}),1===d.data("must-search")){var m=um_get_search(d);if(!um_get_filters_data(d).length&&!m)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}um_ajax_get_members(d),um_change_tag(d)})})}); \ No newline at end of file +var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURI(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]}),jQuery.each(um_member_directories,function(e){var r=um_member_directories[e];if(r!==a){var t=um_get_data_for_directory(jQuery('.um-directory[data-hash="'+r+'"]'));jQuery.each(t,function(e){m[e+"_"+r]=t[e]})}});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var u="?"+(d=wp.hooks.applyFilters("um_member_directory_url_attrs",d)).join("&");"?"===u&&(u=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+u)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t=e.siblings(".um-slider-range").data("placeholder");t=r?t.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):t.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_ajax_get_members(m,t){var a=um_members_get_hash(m),e=um_get_current_page(m),r=um_get_search(m),i=um_get_sort(m),d=-(new Date).getTimezoneOffset()/60,u={directory_id:a,page:e,search:r,sorting:i,gmt_offset:d,post_refferer:m.data("base-post"),nonce:um_scripts.nonce};m.find(".um-search-filter").length&&m.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(u[r]=[t,a])}else if(e.find("select").length){r=e.find("select").attr("name");void 0!==(i=um_get_data_for_directory(m,"filter_"+r))&&(u[r]=i.split("||"))}else{var i;r=e.find('input[type="text"]').attr("name");void 0!==(i=um_get_data_for_directory(m,"filter_"+r))&&(u[r]=i)}}),u=wp.hooks.applyFilters("um_member_directory_filter_request",u),wp.ajax.send("um_get_members",{data:u,success:function(e){um_member_directory_last_data[a]=e,um_build_template(m,e);var r=wp.template("um-members-pagination");m.find(".um-members-pagination-box").html(r(e)),m.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled")):(m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled")),jQuery(document).trigger("um_members_rendered",t),um_init_new_dropdown(),um_members_hide_preloader(m)},error:function(e){console.log(e),um_members_hide_preloader(m)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t);e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove(),void 0!==r.is_search&&r.is_search&&e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(s){var _=[];return s.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(s,"filter_"+e+"_from"),t=um_get_data_for_directory(s,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=s.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder"),m=void 0===(m=um_get_data_for_directory(s,"filter_"+t))?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.find('input[type="text"]').length){var m;d="text",t=i.find('input[type="text"]').attr("name"),a=i.find('input[type="text"]').attr("placeholder"),void 0===(m=um_get_data_for_directory(s,"filter_"+t))&&(m=""),""!=m&&_.push({name:t,label:a,value_label:m,value:m,type:d})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e=um_get_data_for_directory(s,"filter_"+t+"_from"),r=um_get_data_for_directory(s,"filter_"+t+"_to");if(void 0===e&&void 0===r)return;a=i.find("div.um-slider-range").data("label");var u=i.find("div.um-slider-range").data("placeholder").replace("{min_range}",e).replace("{max_range}",r).replace("{field_label}",i.find("div.um-slider-range").data("label"));_.push({name:t,label:a,value_label:u,value:[e,r],type:d})}}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search");if((t=e.find(".um-search-line").val())===r||""===t&&void 0===r)um_members_hide_preloader(e);else{if(e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page",""),1===e.data("must-search")){var t=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!t)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document.body).ready(function(){jQuery(".um-directory .um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-directory .um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-directory .um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(jQuery(this).find(".um-member-directory-view-type-a").hide().tipsy("hide"),jQuery(this).find('.um-member-directory-view-type-a[data-type="'+jQuery(this).parents(".um-directory").data("view_type")+'"]').show())}),jQuery(document.body).on("click",".um-directory .um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i)}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-directory .um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-directory .um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-directory .um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),jQuery(this).parents(".um-new-dropdown").find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),jQuery(this).data("selected",1).prop("data-selected",1).attr("data-selected",1),jQuery(this).parents(".um-member-directory-sorting-a").find("> a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-directory .um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({duration:250,start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}})}),jQuery(document.body).on("change",".um-directory .um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("blur",'.um-directory .um-search-filter input[type="text"]',function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){var r=jQuery(this).val(),t=jQuery(this).prop("name"),a=um_get_data_for_directory(e,"filter_"+t);void 0===a&&(a=""),r!==a&&(um_members_show_preloader(e),um_set_url_from_data(e,"filter_"+t,r),e.data("page",1),um_set_url_from_data(e,"page",""),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"))}}),jQuery(document.body).on("keypress",'.um-directory .um-search-filter input[type="text"]',function(e){if(13===e.which){var r=jQuery(this).parents(".um-directory");if(um_is_directory_busy(r))return;var t=jQuery(this).val(),a=jQuery(this).prop("name"),i=um_get_data_for_directory(r,"filter_"+a);if(void 0===i&&(i=""),t===i)return;um_members_show_preloader(r),um_set_url_from_data(r,"filter_"+a,t),r.data("page",1),um_set_url_from_data(r,"page",""),um_ajax_get_members(r),um_change_tag(r),r.data("searched",1),r.find(".um-member-directory-sorting-options").prop("disabled",!1),r.find(".um-member-directory-view-type").removeClass("um-disabled")}}),jQuery(document.body).on("click",".um-directory .um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&e){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("text"===a)um_set_url_from_data(e,"filter_"+t,""),jQuery('.um-search-filter input[name="'+t+'"]').val("");else if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1d.data("total_pages")&&(r=d.data("total_pages")),d.data("page",r).attr("data-page",r),d.find(".um-member-directory-sorting").length){var t=um_get_data_for_directory(d,"sort");void 0===t&&(t=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]').find('a[data-default="1"]').data("value")),d.data("sorting",t);var a=d.find('.um-new-dropdown[data-element=".um-member-directory-sorting-a"]');a.find("a").data("selected",0).prop("data-selected",0).attr("data-selected",0),a.find('a[data-value="'+t+'"]').data("selected",1).prop("data-selected",1).attr("data-selected",1),d.find(".um-member-directory-sorting-a").find("> a").html(a.find('a[data-value="'+t+'"]').html())}if(d.find(".um-member-directory-view-type").length){var i=um_get_data_for_directory(d,"view_type");void 0===i&&(i=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",i),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+i+'"]').show()}if(d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()}),1===d.data("must-search")){var m=um_get_search(d);if(!um_get_filters_data(d).length&&!m)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}um_ajax_get_members(d),um_change_tag(d)})})}); \ No newline at end of file diff --git a/assets/sass/um-members.sass b/assets/sass/um-members.sass index 7cc4cd7a..51e36a67 100644 --- a/assets/sass/um-members.sass +++ b/assets/sass/um-members.sass @@ -89,7 +89,7 @@ body width: 100% top: 0 bottom: 0 - background: rgba(255, 255, 255, 0.8) + background: none z-index: 2 .um-ajax-loading +transition(.1s,opacity) @@ -120,6 +120,8 @@ body +flex( column, flex-start, stretch, nowrap ) width: 100% .um-member-directory-header-row + &.um-member-directory-filters-bar + padding: 0 0 10px 0 &:not(.um-member-directory-filters-bar) +flex( row, flex-start, baseline, nowrap ) margin: 0 0 10px 0 @@ -141,8 +143,10 @@ body .um-search-line -webkit-appearance: textfield width: 100% + +border-box .um-do-search min-width: 15% + width: auto .um-member-directory-nav-line +flex( row, space-between, center, nowrap ) width: 100% @@ -236,6 +240,9 @@ body .um-s1 width: 100% + &.um-text-filter-type + input + width: 100% &.um-slider-filter-type flex-direction: column align-items: stretch @@ -560,7 +567,7 @@ body width: 100% padding: 15px margin: 0 - background: none + background: #fff +border-box .um-member-status display: none @@ -605,6 +612,8 @@ body padding: 0 margin: 0 +border-box + &.no-photo + width: 100% .um-member-card-content +flex( column, flex-start, stretch, nowrap ) @@ -733,6 +742,16 @@ body font-size: 28px height: 28px line-height: 28px + &.no-photo.no-reveal + .um-member-card-footer-buttons + width: 100% + &.no-photo:not(.no-reveal) + .um-member-card-footer-buttons + width: calc( 100% - 30px ) + &.no-reveal:not(.no-photo) + .um-member-card-footer-buttons + width: calc( 100% - 125px ) + .um-members-none @@ -873,6 +892,9 @@ body margin: 0 0 5px 0 a.um-button width: 100% !important + &.no-reveal:not(.no-photo) + .um-member-card-footer-buttons + width: calc( 100% - 70px ) .um-members-pagination-box .um-members-pagi display: none @@ -921,6 +943,9 @@ body margin: 0 10px 0 0 .um-members-list-footer-button-wrapper margin: 0 10px 5px 0 + &.no-reveal:not(.no-photo) + .um-member-card-footer-buttons + width: calc( 100% - 90px ) .um-members-pagination-box .um-members-pagi display: none @@ -961,6 +986,9 @@ body margin: 0 10px 0 0 .um-members-list-footer-button-wrapper margin: 0 10px 5px 0 + &.no-reveal:not(.no-photo) + .um-member-card-footer-buttons + width: calc( 100% - 100px ) &.uimob960 .um-member-directory-header .um-search diff --git a/includes/admin/core/packages/2.1.0-beta1/member-directory.php b/includes/admin/core/packages/2.1.0-beta1/member-directory.php index 06bd87f5..6f3cd9b5 100644 --- a/includes/admin/core/packages/2.1.0-beta1/member-directory.php +++ b/includes/admin/core/packages/2.1.0-beta1/member-directory.php @@ -87,6 +87,9 @@ if ( ! empty( $member_directories ) && ! is_wp_error( $member_directories ) ) { update_post_meta( $id, '_um_roles_can_filter', $can_search_roles ); update_post_meta( $id, '_um_search_fields', $filter_fields ); update_post_meta( $id, '_um_search_fields_old', $search_fields_old ); + + update_post_meta( $id, '_um_filters_expanded', 1 ); + update_post_meta( $id, '_um_filters_is_collapsible', 0 ); } else { update_post_meta( $id, '_um_search', 0 ); update_post_meta( $id, '_um_filters', 0 ); diff --git a/includes/admin/templates/directory/search.php b/includes/admin/templates/directory/search.php index de750cfd..c406e001 100644 --- a/includes/admin/templates/directory/search.php +++ b/includes/admin/templates/directory/search.php @@ -97,10 +97,18 @@ global $post_id; ?> 'id' => '_um_filters_expanded', 'type' => 'checkbox', 'label' => __( 'Expand the filter bar by default', 'ultimate-member' ), - 'tooltip' => __( 'If turned on, filters bar will be visible after a page loading and can be collapsed', 'ultimate-member' ), + 'tooltip' => __( 'If turned on, filters bar will be visible after a page loading', 'ultimate-member' ), 'value' => UM()->query()->get_meta_value( '_um_filters_expanded' ), 'conditional' => array( '_um_filters', '=', 1 ) ), + array( + 'id' => '_um_filters_is_collapsible', + 'type' => 'checkbox', + 'label' => __( 'Can filter bar be collapsed', 'ultimate-member' ), + 'tooltip' => __( 'If turned on, filters bar can be collapsed after a page loading', 'ultimate-member' ), + 'value' => UM()->query()->get_meta_value( '_um_filters_is_collapsible' ), + 'conditional' => array( '_um_filters_expanded', '=', 1 ) + ), array( 'id' => '_um_search_filters', 'type' => 'md_default_filters', diff --git a/includes/class-config.php b/includes/class-config.php index 2cf8f4f6..f3f831fc 100644 --- a/includes/class-config.php +++ b/includes/class-config.php @@ -169,6 +169,7 @@ if ( ! class_exists( 'um\Config' ) ) { '_um_roles_can_filter' => array(), '_um_search_fields' => array(), '_um_filters_expanded' => 0, + '_um_filters_is_collapsible' => 1, '_um_search_filters' => array(), '_um_must_search' => 0, diff --git a/includes/core/class-member-directory.php b/includes/core/class-member-directory.php index 17d26e4c..091430d5 100644 --- a/includes/core/class-member-directory.php +++ b/includes/core/class-member-directory.php @@ -51,12 +51,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { var $filter_supported_fields = array(); - var $filter_types = array( -// 'select', -// 'slider', -// 'datepicker', -// 'timepicker', - ); + var $filter_types = array(); var $core_search_fields = array( @@ -86,6 +81,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { var $avatar_size; + /** + * @var bool Searching marker + */ + var $is_search = false; + + /** * Member_Directory constructor. */ @@ -257,19 +258,31 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { // Filters $this->filter_fields = array( - 'country' => __( 'Country', 'ultimate-member' ), - 'gender' => __( 'Gender', 'ultimate-member' ), - 'languages' => __( 'Languages', 'ultimate-member' ), - 'role' => __( 'Roles', 'ultimate-member' ), - 'birth_date' => __( 'Age', 'ultimate-member' ), - 'last_login' => __( 'Last Login', 'ultimate-member' ), - 'user_registered' => __( 'User Registered', 'ultimate-member' ), + 'country' => __( 'Country', 'ultimate-member' ), + 'gender' => __( 'Gender', 'ultimate-member' ), + 'languages' => __( 'Languages', 'ultimate-member' ), + 'role' => __( 'Roles', 'ultimate-member' ), + 'birth_date' => __( 'Age', 'ultimate-member' ), + 'last_login' => __( 'Last Login', 'ultimate-member' ), + 'user_registered' => __( 'User Registered', 'ultimate-member' ), + 'first_name' => __( 'First Name', 'ultimate-member' ), + 'last_name' => __( 'Last Name', 'ultimate-member' ), + 'nickname' => __( 'Nickname', 'ultimate-member' ), + 'secondary_user_email' => __( 'Secondary E-mail Address', 'ultimate-member' ), + 'description' => __( 'Biography', 'ultimate-member' ), + 'phone_number' => __( 'Phone Number', 'ultimate-member' ), + 'mobile_number' => __( 'Mobile Number', 'ultimate-member' ), ); - $this->filter_supported_fields = apply_filters( 'um_members_directory_custom_field_types_supported_filter', array( 'date', 'time', 'select', 'multiselect', 'radio', 'checkbox', 'rating' ) ); + $this->filter_supported_fields = apply_filters( 'um_members_directory_custom_field_types_supported_filter', array( 'date', 'time', 'select', 'multiselect', 'radio', 'checkbox', 'rating', 'text', 'textarea' ) ); if ( ! empty( UM()->builtin()->saved_fields ) ) { foreach ( UM()->builtin()->saved_fields as $key => $data ) { + + if ( $key == '_um_last_login' ) { + continue; + } + if ( isset( $data['type'] ) && in_array( $data['type'], $this->filter_supported_fields ) ) { if ( isset( $data['title'] ) && array_search( $data['title'], $this->filter_fields ) !== false ) { $data['title'] = $data['title'] . ' (' . $key . ')'; @@ -296,13 +309,20 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { */ function init_filter_types() { $this->filter_types = apply_filters( 'um_members_directory_filter_types', array( - 'country' => 'select', - 'gender' => 'select', - 'languages' => 'select', - 'role' => 'select', - 'birth_date' => 'slider', - 'last_login' => 'datepicker', - 'user_registered' => 'datepicker', + 'country' => 'select', + 'gender' => 'select', + 'languages' => 'select', + 'role' => 'select', + 'birth_date' => 'slider', + 'last_login' => 'datepicker', + 'user_registered' => 'datepicker', + 'first_name' => 'text', + 'last_name' => 'text', + 'nickname' => 'text', + 'secondary_user_email' => 'text', + 'description' => 'text', + 'phone_number' => 'text', + 'mobile_number' => 'text', ) ); $fields = UM()->builtin()->all_user_fields; @@ -316,6 +336,10 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { default: $value = apply_filters( 'um_custom_field_filter_type', 'select', $fields[ $key ] ); break; + case 'text': + case 'textarea': + $value = 'text'; + break; case 'date': $value = 'datepicker'; break; @@ -426,11 +450,56 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { break; } + case 'text': { + $filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? $_GET[ 'filter_' . $filter . '_' . $unique_hash ] : ''; ?> + + + + get_col( + $wpdb->prepare( + "SELECT DISTINCT meta_value + FROM $wpdb->usermeta + WHERE meta_key = %s AND + meta_value != ''", + $attrs['metakey'] + ) + ); + } else { + $users_roles = count_users(); + $values_array = ( ! empty( $users_roles['avail_roles'] ) && is_array( $users_roles['avail_roles'] ) ) ? array_keys( array_filter( $users_roles['avail_roles'] ) ) : array(); + } + + if ( ! empty( $values_array ) && in_array( $attrs['type'], array( 'select','multiselect', 'checkbox', 'radio' ) ) ) { + $values_array = array_map( 'maybe_unserialize', $values_array ); + $temp_values = array(); + foreach ( $values_array as $values ) { + if ( is_array( $values ) ) { + $temp_values = array_merge( $temp_values, $values ); + } else { + $temp_values[] = $values; + } + } + $values_array = array_unique( $temp_values ); + } + + if ( empty( $values_array ) ) { + return ''; + } + + // old if ( isset( $attrs['metakey'] ) && strstr( $attrs['metakey'], 'role_' ) ) { $shortcode_roles = get_post_meta( $directory_data['form_id'], '_um_roles', true ); $um_roles = UM()->roles()->get_roles( false ); @@ -446,58 +515,64 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { } } + $custom_dropdown = ''; if ( ! empty( $attrs['custom_dropdown_options_source'] ) ) { $attrs['custom'] = true; $attrs['options'] = UM()->fields()->get_options_from_callback( $attrs, $attrs['type'] ); + $custom_dropdown = ' data-um-ajax-source="' . esc_attr( $attrs['custom_dropdown_options_source'] ) . '"'; + } + + if ( $attrs['metakey'] != 'role_select' ) { + $attrs['options'] = array_intersect( $attrs['options'], $values_array ); + } else { + $attrs['options'] = array_intersect_key( $attrs['options'], array_flip( $values_array ) ); + } + + $attrs['options'] = apply_filters( 'um_member_directory_filter_select_options', $attrs['options'], $values_array, $attrs ); + + if ( empty( $attrs['options'] ) || ! is_array( $attrs['options'] ) ) { + return ''; } if ( isset( $attrs['label'] ) ) { $attrs['label'] = strip_tags( $attrs['label'] ); } - if ( isset( $attrs['options'] ) && is_array( $attrs['options'] ) ) { - asort( $attrs['options'] ); - } + asort( $attrs['options'] ); ?> - $custom_dropdown = ! empty( $attrs['custom_dropdown_options_source'] ) ? ' data-um-ajax-source="' . $attrs['custom_dropdown_options_source'] . '"' : ''; + > + $v ) { - + $v = stripslashes( $v ); - $v ) { + $opt = $v; - $v = stripslashes( $v ); + if ( strstr( $filter, 'role_' ) ) { + $opt = $k; + } - $opt = $v; + if ( isset( $attrs['custom'] ) ) { + $opt = $k; + } ?> - if ( strstr( $filter, 'role_' ) ) { - $opt = $k; - } + - if ( isset( $attrs['custom'] ) ) { - $opt = $k; - } ?> + - + - - - - - slider_filters_range( $filter, $directory_data ); @@ -1164,6 +1239,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $meta_query = apply_filters( 'um_member_directory_general_search_meta_query', $meta_query, $_POST['search'] ); $this->query_args['meta_query'][] = $meta_query; + + $this->is_search = true; } } @@ -1244,6 +1321,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { return; } + $this->is_search = true; foreach ( $filter_query as $field => $value ) { switch ( $field ) { @@ -1282,11 +1360,30 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $field_query = apply_filters( "um_query_args_{$field}_{$filter_type}__filter", false, $field, $value, $filter_type ); break; + case 'text': + + $value = stripslashes( $value ); + + $field_query = array( + 'relation' => 'OR', + array( + 'key' => $field, + 'value' => trim( $value ), + 'compare' => 'LIKE', + ), + ); + + $this->custom_filters_in_query[ $field ] = $value; + + break; + case 'select': if ( is_array( $value ) ) { $field_query = array( 'relation' => 'OR' ); foreach ( $value as $single_val ) { + $single_val = stripslashes( $single_val ); + $arr_meta_query = array( array( 'key' => $field, @@ -1733,7 +1830,17 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1; $total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $result->total_users ) ? $directory_data['max_users'] : $result->total_users; - $total_pages = ceil( $total_users / $directory_data['profiles_per_page'] ); + + // number of profiles for mobile + $profiles_per_page = $directory_data['profiles_per_page']; + if ( UM()->mobile()->isMobile() && isset( $directory_data['profiles_per_page_mobile'] ) ) { + $profiles_per_page = $directory_data['profiles_per_page_mobile']; + } + + $total_pages = 1; + if ( ! empty( $profiles_per_page ) ) { + $total_pages = ceil( $total_users / $profiles_per_page ); + } if ( ! empty( $total_pages ) ) { $index1 = 0 - ( $current_page - 2 ) + 1; @@ -2135,7 +2242,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { um_reset_user(); // end of user card - wp_send_json_success( array( 'pagination' => $pagination_data, 'users' => $users ) ); + wp_send_json_success( array( 'pagination' => $pagination_data, 'users' => $users, 'is_search' => $this->is_search ) ); } diff --git a/templates/members-list.php b/templates/members-list.php index 596f818e..d4804b05 100644 --- a/templates/members-list.php +++ b/templates/members-list.php @@ -116,24 +116,22 @@ -