Skip to content
This repository has been archived by the owner. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixes to people page
Salman’s fixes for the people page
  • Loading branch information
briandunnigan authored and briandunnigan committed Feb 3, 2016
1 parent 3c66308 commit a032be8
Show file tree
Hide file tree
Showing 3 changed files with 199 additions and 138 deletions.
4 changes: 3 additions & 1 deletion functions.php
Expand Up @@ -136,7 +136,9 @@ function neag_get_experts_callback(){
'post_type' => array( 'person' ),
'fields' => 'ids',
'meta_key' => 'expertise',
'meta_compare' => 'EXISTS',
'meta_compare' => '!=',
'meta_value' => ' ',
'posts_per_page' => -1,
);

$query = new WP_Query( $args );
Expand Down
330 changes: 194 additions & 136 deletions js/custom.js
@@ -1,157 +1,215 @@
jQuery(document).ready(function($) {
var screenWidthFlag = false; // True if screen width is greater than 767
if( screen.width > 767 ){
screenWidthFlag = true;
if( $( "#directory-dropdown" ).length > 0 ){
var hash = window.location.hash;

$(".directory-face-wrap").each(function(i,el){
var divHeight = $(el).height();

var nameTitle = $(el).find( ".directory-name-title-wrap" );
var nameTitleHeight = nameTitle.height();

if( divHeight > nameTitleHeight ){
nameTitle.css( "padding-top", (divHeight - nameTitleHeight)/2 );
}
});
}

function modifyDirectoryList( response, directoryList, expertsFlag ){
directoryList.empty();
var currentdropdownValue = $("#directory-dropdownMenu")[0].value;

$.each(response, function(i,v){
var directoryRow = $('<div/>', {
id: v.divid,
class: 'directory-person'
}).appendTo( directoryList );

var topLevelRow = $('<div/>', {
class: 'row'
}).appendTo( directoryRow );

var faceWrap = $('<div />', {
class: 'col-sm-5 directory-face-wrap'
}).appendTo( topLevelRow );

var directoryPhoto = $('<div/>', {
class: 'directory-photo'
}).appendTo( faceWrap ); // add photo to html

$('<a />', {
href: v.permalink,
html: v.photo
}).appendTo( directoryPhoto );

var colNameTitle = $('<div />', {
class: 'directory-name-title-wrap'
}).appendTo( faceWrap );
var directoryName = $('<div />', {
class: 'directory-name'
}).appendTo( colNameTitle );
$('<a />', {
href: v.permalink,
text: v.name
}).appendTo( directoryName );
if( hash.length > 1 ){
hash = hash.replace( /-/g, ' ' ).substr(1);

var category = $("#directory-dropdownMenu").children( "option:contains('" + hash + "')" );

$('<div />', {
class: 'directory-title',
text: v.title
}).appendTo( colNameTitle );

if( expertsFlag ){
var expertiseDiv = $('<div />', {
class: 'directory-expertise',
text: v.expertise
}).appendTo( colNameTitle );
$('<span />', {
class: 'expertise',
text: "Expertise: "
}).prependTo( expertiseDiv );
if( category.length != 0 ){
var categoryID = category[0].value;
currentdropdownValue = categoryID;

if( categoryID != 0 ){ // categoryID == 0 is All Faculty & Staff, which loads by default
var data = {
'action': 'neag_get_people',
'categoryID': categoryID
};

if( categoryID == "faculty-expert" ){
displayExperts();
} else {
var directoryList = $("#directory-list");
$.post(neag_object.ajaxurl, data, function(response) {
response = JSON.parse(response);

if( Object.keys(response).length != 0 ){
modifyDirectoryList( response, directoryList );
}
});
}
}
}
}

var screenWidthFlag = false; // True if screen width is greater than 767
if( screen.width > 767 ){
screenWidthFlag = true;

var colPhoneEmail = $('<div />', {
class: 'col-sm-3 directory-contact-wrap'
}).appendTo( topLevelRow );
$('<div />', {
class: 'directory-phone',
text: v.phone
}).appendTo( colPhoneEmail );
var emailDiv = $('<div />', {
class: 'directory-email'
}).appendTo( colPhoneEmail );

var emailLink = $('<a />', {
href: "mailto:"+v.email,
text: v.email
}).appendTo( emailDiv );

var colOffice = $('<div />', {
class: 'col-sm-4 directory-office-wrap'
}).appendTo( topLevelRow );
$('<div />', {
class: 'directory-officeLabel',
text: "Office"
}).appendTo( colOffice );

$('<div />', {
class: 'directory-office',
text: v.office_location
}).appendTo( colOffice );

if( screenWidthFlag ){
var faceWrapHeight = faceWrap.height();
var nameTitleHeight = colNameTitle.height();
if( faceWrapHeight > nameTitleHeight ){
colNameTitle.css( 'padding-top', (faceWrapHeight - nameTitleHeight)/2 );
}
}
});
}

function displayExperts(){
// Retrieve experts via AJAX
// Display experts in #directory-list
var data = {
'action': 'neag_get_experts',
};
$(".directory-face-wrap").each(function(i,el){
var divHeight = $(el).height();

var nameTitle = $(el).find( ".directory-name-title-wrap" );
var nameTitleHeight = nameTitle.height();

if( divHeight > nameTitleHeight ){
nameTitle.css( "padding-top", (divHeight - nameTitleHeight)/2 );
}
});
}

var directoryList = $("#directory-list");
$.post(neag_object.ajaxurl, data, function(response) {
response = JSON.parse(response);
//console.log(response);
if( Object.keys(response).length != 0 ){
modifyDirectoryList( response, directoryList, true );
}
});
}

$("#directory-dropdownMenu").change(function(event){
event.preventDefault();

var data = {
'action': 'neag_get_people',
'categoryID': this.value
};
function modifyDirectoryList( response, directoryList, expertsFlag ){
directoryList.empty();

$.each(response, function(i,v){
var directoryRow = $('<div/>', {
id: v.divid,
class: 'directory-person'
}).appendTo( directoryList );

var topLevelRow = $('<div/>', {
class: 'row'
}).appendTo( directoryRow );

var faceWrap = $('<div />', {
class: 'col-sm-5 directory-face-wrap'
}).appendTo( topLevelRow );

var directoryPhoto = $('<div/>', {
class: 'directory-photo'
}).appendTo( faceWrap ); // add photo to html

$('<a />', {
href: v.permalink,
html: v.photo
}).appendTo( directoryPhoto );

var colNameTitle = $('<div />', {
class: 'directory-name-title-wrap'
}).appendTo( faceWrap );
var directoryName = $('<div />', {
class: 'directory-name'
}).appendTo( colNameTitle );
$('<a />', {
href: v.permalink,
text: v.name
}).appendTo( directoryName );

$('<div />', {
class: 'directory-title',
text: v.title
}).appendTo( colNameTitle );

if( expertsFlag ){
var expertiseDiv = $('<div />', {
class: 'directory-expertise',
text: v.expertise
}).appendTo( colNameTitle );
$('<span />', {
class: 'expertise',
text: "Expertise: "
}).prependTo( expertiseDiv );
}

var colPhoneEmail = $('<div />', {
class: 'col-sm-3 directory-contact-wrap'
}).appendTo( topLevelRow );
$('<div />', {
class: 'directory-phone',
text: v.phone
}).appendTo( colPhoneEmail );
var emailDiv = $('<div />', {
class: 'directory-email'
}).appendTo( colPhoneEmail );

var emailLink = $('<a />', {
href: "mailto:"+v.email,
text: v.email
}).appendTo( emailDiv );

var colOffice = $('<div />', {
class: 'col-sm-4 directory-office-wrap'
}).appendTo( topLevelRow );
$('<div />', {
class: 'directory-officeLabel',
text: "Office"
}).appendTo( colOffice );

$('<div />', {
class: 'directory-office',
text: v.office_location
}).appendTo( colOffice );

if( screenWidthFlag ){
var faceWrapHeight = faceWrap.height();
var nameTitleHeight = colNameTitle.height();
if( faceWrapHeight > nameTitleHeight ){
colNameTitle.css( 'padding-top', (faceWrapHeight - nameTitleHeight)/2 );
}
}
});
}

if( this.value == "faculty-expert" ){
displayExperts();
return;
function displayExperts(){
// Retrieve experts via AJAX
// Display experts in #directory-list
var data = {
'action': 'neag_get_experts',
};

var directoryList = $("#directory-list");
$.post(neag_object.ajaxurl, data, function(response) {
response = JSON.parse(response);

if( Object.keys(response).length != 0 ){
modifyDirectoryList( response, directoryList, true );
}
});
}

var directoryList = $("#directory-list");
$.post(neag_object.ajaxurl, data, function(response) {
response = JSON.parse(response);
var flag = false;
$("#directory-dropdownMenu").on('click', function(event){
event.preventDefault();

if( Object.keys(response).length != 0 ){
modifyDirectoryList( response, directoryList );
if( flag == true ){
var data = {
'action': 'neag_get_people',
'categoryID': this.value
};

if( currentdropdownValue != this.value ){ // Don't run if the newly-selected option is already selected. currentdropdownValue defined line 4
currentdropdownValue = this.value;

if( this.value != 0 ){
var categoryName = $(this)[0].selectedOptions[0].innerHTML.replace( /\s/g, '-' );

window.location.hash = "#" + categoryName;
} else {
window.location.hash = "";
}

if( this.value == "faculty-expert" ){
displayExperts();
} else {
var directoryList = $("#directory-list");
$.post(neag_object.ajaxurl, data, function(response) {
response = JSON.parse(response);

if( Object.keys(response).length != 0 ){
modifyDirectoryList( response, directoryList );
}
});
}
}

flag = false;
} else {
flag = true;
}
});
});
}).on('blur', function(){
flag = false;
});
}

var d = new Date(),
n = d.getMonth()+1,
y = d.getFullYear();

$( ".widget_archives" ).append( "<p><a href='/"+y+"/"+n+"'>Archives &rsaquo;</a></p>" );

$( "#page-news .panel-grid:nth-child(5) .panel-grid-cell:nth-child(1) .widget_siteorigin-panels-postloop" ).append( "<p><a href='/news-archive'>News Archives &rsaquo;</a></p>" );

$("h4.panel-title a").addClass("accordion-closed");
Expand Down
3 changes: 2 additions & 1 deletion page_people.php
Expand Up @@ -16,7 +16,8 @@ get_header(); ?>
<?php
$args = array(
'post_type' => array( 'person' ),
'fields' => 'ids'
'fields' => 'ids',
'posts_per_page' => -1,
);
$query = new WP_Query( $args );
$people = $query->posts;
Expand Down

0 comments on commit a032be8

Please sign in to comment.