From 4d8463bcd32e5b2d2c259bc488ec9258b8b9e9aa Mon Sep 17 00:00:00 2001 From: briandunnigan Date: Thu, 24 Mar 2016 08:46:36 -0400 Subject: [PATCH] Bug fix for special characters on faculty page --- functions.php | 26 --------------- js/custom.js | 75 +++++++++++++++++--------------------------- js/min/custom.min.js | 2 +- page_people.php | 1 - 4 files changed, 30 insertions(+), 74 deletions(-) diff --git a/functions.php b/functions.php index ccbf753..9f4d4ea 100644 --- a/functions.php +++ b/functions.php @@ -128,32 +128,6 @@ function neag_get_people_callback(){ wp_die(); } -add_action( 'wp_ajax_neag_get_experts', 'neag_get_experts_callback' ); -add_action( 'wp_ajax_nopriv_neag_get_experts', 'neag_get_experts_callback' ); -function neag_get_experts_callback(){ - $args = array( - 'post_type' => array( 'person' ), - 'fields' => 'ids', - 'posts_per_page' => -1, - 'meta_key' => 'expertise', - 'meta_compare' => '!=', - 'meta_value' => ' ', - ); - - $query = new WP_Query( $args ); - $queryPosts = $query->posts; - - $people = array(); - - if( $query->have_posts() ){ - $people = processPosts( $queryPosts, true ); - } - - echo wp_json_encode( $people ); - - wp_die(); -} - if(function_exists("register_field_group")) { register_field_group(array ( diff --git a/js/custom.js b/js/custom.js index b54aa94..8e60d8f 100644 --- a/js/custom.js +++ b/js/custom.js @@ -49,32 +49,17 @@ jQuery(document).ready(function($) { response = JSON.parse(response); if( Object.keys(response).length != 0 ){ - if( categoryName.indexOf( "Faculty Expert" ) != -1 ){ // User selected specific type of faculty expert - modifyDirectoryList( response, directoryList, true ); - } else { - modifyDirectoryList( response, directoryList ); + if( categoryName.indexOf( "Faculty Expert" ) == -1 ){ + modifyDirectoryList( response, directoryList ); + } else { + modifyDirectoryList( response, directoryList, true ); // User selected specific type of faculty expert } } }; $.ajax( ajaxReqSettings ); }; - - mod.setFacultyExperts = function () { - ajaxReqSettings.data = { - 'action': 'neag_get_experts', - }; - - ajaxReqSettings.success = function(response){ - response = JSON.parse(response); - if( Object.keys(response).length != 0 ){ - modifyDirectoryList( response, directoryList, true ); - } - }; - - $.ajax( ajaxReqSettings ); - }; - + function modifyDirectoryList ( response, directoryList, displayExpertiseFlag ){ directoryList.empty(); @@ -117,10 +102,10 @@ jQuery(document).ready(function($) { text: v.title }).appendTo( colNameTitle ); - if( displayExpertiseFlag ){ + if( displayExpertiseFlag && v.expertise ){ var expertiseDiv = $('
', { class: 'directory-expertise', - text: ((v.expertise) ? v.expertise: '') + text: v.expertise }).appendTo( colNameTitle ); $('', { class: 'expertise', @@ -169,45 +154,43 @@ jQuery(document).ready(function($) { return mod; }()); - + var hash = window.location.hash; if( hash.length > 1 ){ - hash = hash.replace( /_/g, ' ' ).substr(1); - - var category = $("#directory-dropdownMenu").children( "option:contains('" + hash + "')" ); - - if( category.length != 0 ){ - $("#directory-dropdownMenu")[0].selectedIndex = category[0].index; - - var categoryID = category[0].value; - - if( categoryID != 0 ){ // categoryID == 0 is All Faculty & Staff, which loads by default - if( categoryID === "faculty-expert" ){ - directory.setFacultyExperts(); - } else { - directory.setFaculty( categoryID, hash ); - } + hash = hash.substr(1); + + var categories = $("#directory-dropdownMenu").children().toArray(); + var categoryID = 0; + + $.each(categories, function(i, v){ + if( v.innerHTML.replace( /[^\w]/gi, '' ) === hash ){ + categoryID = v.value; + $("#directory-dropdownMenu")[0].selectedIndex = i; + + directory.setFaculty( categoryID, hash ); + + return false; } - } + }); } + + $(".fsd-dropdown").on('click', "li", function(event){ + window.location.reload(true); + }); $("#directory-dropdownMenu").on('change', function(event){ event.preventDefault(); var categoryName = this.options[this.options.selectedIndex].text; - if( this.value != 0 ){ - window.location.hash = "#" + categoryName.replace( /\s/g, '_' ); + if( this.value != 0 ){ + window.location.hash = "#" + categoryName.replace( /[^\w]/gi, '' ); } else { window.location.hash = ""; } - if( this.value === "faculty-expert" ){ - directory.setFacultyExperts(); - } else { - directory.setFaculty( this.value, categoryName ); - } + directory.setFaculty( this.value, categoryName ); }); } diff --git a/js/min/custom.min.js b/js/min/custom.min.js index a856d30..722392a 100644 --- a/js/min/custom.min.js +++ b/js/min/custom.min.js @@ -1 +1 @@ -jQuery(document).ready(function(e){if(e("#directory-dropdown").length>0){var t=!1;screen.width>767&&(t=!0,e(".directory-face-wrap").each(function(t,a){var i=e(a).height(),o=e(a).find(".directory-name-title-wrap"),r=o.height();i>r&&o.css("padding-top",(i-r)/2)}));var a=function(){function a(a,i,o){i.empty(),e.each(a,function(a,r){var n=e("
",{id:r.divid,"class":"directory-person"}).appendTo(i),c=e("
",{"class":"row"}).appendTo(n),s=e("
",{"class":"col-sm-5 directory-face-wrap"}).appendTo(c),d=e("
",{"class":"directory-photo"}).appendTo(s);e("",{href:r.permalink,html:r.photo}).appendTo(d);var p=e("
",{"class":"directory-name-title-wrap"}).appendTo(s),l=e("
",{"class":"directory-name"}).appendTo(p);if(e("",{href:r.permalink,text:r.name}).appendTo(l),e("
",{"class":"directory-title",text:r.title}).appendTo(p),o){var h=e("
",{"class":"directory-expertise",text:r.expertise?r.expertise:""}).appendTo(p);e("",{"class":"expertise",text:"Expertise: "}).prependTo(h)}var u=e("
",{"class":"col-sm-3 directory-contact-wrap"}).appendTo(c);e("
",{"class":"directory-phone",text:r.phone}).appendTo(u);var f=e("
",{"class":"directory-email"}).appendTo(u),v=(e("",{href:"mailto:"+r.email,text:r.email}).appendTo(f),e("
",{"class":"col-sm-4 directory-office-wrap"}).appendTo(c));if(e("
",{"class":"directory-officeLabel",text:"Office"}).appendTo(v),e("
",{"class":"directory-office",text:r.office_location}).appendTo(v),t){var y=s.height(),x=p.height();y>x&&p.css("padding-top",(y-x)/2)}})}var i={},o=e("#directory-list"),r=e("#directory-list-loading-text"),n={type:"POST",url:neag_object.ajaxurl,timeout:1e4,beforeSend:function(){r.show()},complete:function(e,t){"success"===t?r.hide():"timeout"===t?r.text("Request has timed out, please refresh this page"):r.text("Error: "+t)}};return i.setFaculty=function(t,i){n.data={action:"neag_get_people",categoryID:t},n.success=function(e){e=JSON.parse(e),0!=Object.keys(e).length&&(-1!=i.indexOf("Faculty Expert")?a(e,o,!0):a(e,o))},e.ajax(n)},i.setFacultyExperts=function(){n.data={action:"neag_get_experts"},n.success=function(e){e=JSON.parse(e),0!=Object.keys(e).length&&a(e,o,!0)},e.ajax(n)},i}(),i=window.location.hash;if(i.length>1){i=i.replace(/_/g," ").substr(1);var o=e("#directory-dropdownMenu").children("option:contains('"+i+"')");if(0!=o.length){e("#directory-dropdownMenu")[0].selectedIndex=o[0].index;var r=o[0].value;0!=r&&("faculty-expert"===r?a.setFacultyExperts():a.setFaculty(r,i))}}e("#directory-dropdownMenu").on("change",function(e){e.preventDefault();var t=this.options[this.options.selectedIndex].text;window.location.hash=0!=this.value?"#"+t.replace(/\s/g,"_"):"","faculty-expert"===this.value?a.setFacultyExperts():a.setFaculty(this.value,t)})}var n=new Date,c=n.getMonth()+1,s=n.getFullYear();e(".widget_archives").append("

Archives ›

"),e("#page-news .panel-grid:nth-child(5) .panel-grid-cell:nth-child(1) .widget_siteorigin-panels-postloop").append("

News Archives ›

"),e("h4.panel-title a").addClass("accordion-closed"),e("h4.panel-title a").click(function(){e(this).addClass("accordion-open")})}); \ No newline at end of file +jQuery(document).ready(function(e){if(e("#directory-dropdown").length>0){var t=!1;screen.width>767&&(t=!0,e(".directory-face-wrap").each(function(t,a){var i=e(a).height(),o=e(a).find(".directory-name-title-wrap"),r=o.height();i>r&&o.css("padding-top",(i-r)/2)}));var a=function(){function a(a,i,o){i.empty(),e.each(a,function(a,r){var n=e("
",{id:r.divid,"class":"directory-person"}).appendTo(i),c=e("
",{"class":"row"}).appendTo(n),d=e("
",{"class":"col-sm-5 directory-face-wrap"}).appendTo(c),p=e("
",{"class":"directory-photo"}).appendTo(d);e("",{href:r.permalink,html:r.photo}).appendTo(p);var s=e("
",{"class":"directory-name-title-wrap"}).appendTo(d),l=e("
",{"class":"directory-name"}).appendTo(s);if(e("",{href:r.permalink,text:r.name}).appendTo(l),e("
",{"class":"directory-title",text:r.title}).appendTo(s),o&&r.expertise){var h=e("
",{"class":"directory-expertise",text:r.expertise}).appendTo(s);e("",{"class":"expertise",text:"Expertise: "}).prependTo(h)}var f=e("
",{"class":"col-sm-3 directory-contact-wrap"}).appendTo(c);e("
",{"class":"directory-phone",text:r.phone}).appendTo(f);var u=e("
",{"class":"directory-email"}).appendTo(f),v=(e("",{href:"mailto:"+r.email,text:r.email}).appendTo(u),e("
",{"class":"col-sm-4 directory-office-wrap"}).appendTo(c));if(e("
",{"class":"directory-officeLabel",text:"Office"}).appendTo(v),e("
",{"class":"directory-office",text:r.office_location}).appendTo(v),t){var y=d.height(),w=s.height();y>w&&s.css("padding-top",(y-w)/2)}})}var i={},o=e("#directory-list"),r=e("#directory-list-loading-text"),n={type:"POST",url:neag_object.ajaxurl,timeout:1e4,beforeSend:function(){r.show()},complete:function(e,t){"success"===t?r.hide():"timeout"===t?r.text("Request has timed out, please refresh this page"):r.text("Error: "+t)}};return i.setFaculty=function(t,i){n.data={action:"neag_get_people",categoryID:t},n.success=function(e){e=JSON.parse(e),0!=Object.keys(e).length&&(-1==i.indexOf("Faculty Expert")?a(e,o):a(e,o,!0))},e.ajax(n)},i}(),i=window.location.hash;if(i.length>1){i=i.substr(1);var o=e("#directory-dropdownMenu").children().toArray(),r=0;e.each(o,function(t,o){return o.innerHTML.replace(/[^\w]/gi,"")===i?(r=o.value,e("#directory-dropdownMenu")[0].selectedIndex=t,a.setFaculty(r,i),!1):void 0})}e(".fsd-dropdown").on("click","li",function(){window.location.reload(!0)}),e("#directory-dropdownMenu").on("change",function(e){e.preventDefault();var t=this.options[this.options.selectedIndex].text;window.location.hash=0!=this.value?"#"+t.replace(/[^\w]/gi,""):"",a.setFaculty(this.value,t)})}var n=new Date,c=n.getMonth()+1,d=n.getFullYear();e(".widget_archives").append("

Archives ›

"),e("#page-news .panel-grid:nth-child(5) .panel-grid-cell:nth-child(1) .widget_siteorigin-panels-postloop").append("

News Archives ›

"),e("h4.panel-title a").addClass("accordion-closed"),e("h4.panel-title a").click(function(){e(this).addClass("accordion-open")})}); \ No newline at end of file diff --git a/page_people.php b/page_people.php index 7e14705..c7739b0 100644 --- a/page_people.php +++ b/page_people.php @@ -30,7 +30,6 @@ get_header(); ?>