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
Update to the Archive
-Fixing left bar pagination
-Adding 10 stories to right pane
-Adding pagination to right pane
-Styling new multi-story view
  • Loading branch information
briandunnigan authored and briandunnigan committed May 20, 2015
1 parent aa07567 commit b9219a1
Show file tree
Hide file tree
Showing 3 changed files with 276 additions and 196 deletions.
79 changes: 54 additions & 25 deletions js/custom.js
Expand Up @@ -100,7 +100,31 @@ jQuery(document).ready(function($) {
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
};


String.prototype.slugToClean = function(){
var str = this.toString();
str = str.toLowerCase().replace(/(-)/g, ' ').replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
return str;
};

String.prototype.decodeEntities = function(){
var element = document.createElement('div'); //this prevents any overhead from creating the object each time

var str = this.toString();
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}

return str;
};

function retrievePreviousIDs(startingElement){
var postsArray = [];
var currentPost = startingElement;
Expand Down Expand Up @@ -159,7 +183,7 @@ jQuery(document).ready(function($) {
for(var post in response){
var current = response[post];
var id = current.id;
var title = current.title;
var title = (current.title).decodeEntities();
var slug = current.slug;
var link = current.link;
var excerpt = current.excerpt;
Expand All @@ -169,6 +193,7 @@ jQuery(document).ready(function($) {
if( current.date != false ){
var article = $('<article />',{
'data-id': id,
'class': 'article-block clearfix'
});

var header = $('<header />',{
Expand Down Expand Up @@ -202,7 +227,7 @@ jQuery(document).ready(function($) {
}).appendTo(article);

if( excerpt.length > 7 ){ // by default excerpt comes with <p></p>, whose lenght is 7
var readMore = '<p><a href="'+link+'" class="read-more">Read More</a></p>';
var readMore = '<p><a href="'+link+'" class="read-more">Read More &raquo;</a></p>';
excerpt += readMore;
divContent.html(excerpt);
}
Expand All @@ -211,17 +236,17 @@ jQuery(document).ready(function($) {
}
}
var span = $('<div />',{
'class': 'story-navigation',
'class': 'story-navigation clearfix',
}).appendTo( $(".span8.follow-hero") );
$('<a />',{
'id': 'newerStories',
'data-id': firstID,
'text': 'Newer Stories'
'text': 'Newer Stories »'
}).appendTo(span);
$('<a />',{
'id': 'olderStories',
'data-id': lastID,
'text': 'Older Stories'
'text': '« Older Stories'
}).appendTo(span);
storyNavCheck();
},
Expand Down Expand Up @@ -274,9 +299,7 @@ jQuery(document).ready(function($) {
var urlQuery = state.url.substring(state.url.indexOf('?division'));
var divisionSlug = urlQuery.substring(10); //length of "?divison/" is 10

var divisionTitle = divisionSlug.toLowerCase().replace(/(-)/g, ' ').replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
var divisionTitle = divisionSlug.slugToClean();

$.ajax({
type: "POST",
Expand All @@ -292,13 +315,9 @@ jQuery(document).ready(function($) {
});
} else if( (index = state.url.indexOf('?category/')) !== -1 || (index = state.url.indexOf('?tag/')) !== -1 ) {
var urlQuery = state.url.substring(index+1);
var taxonomyType = urlQuery.substring(0,urlQuery.indexOf('/'));
var taxonomyName = urlQuery.substring(urlQuery.indexOf('/')+1);
var taxonomyType = urlQuery.substring( 0,urlQuery.indexOf('/') );
var taxonomyName = urlQuery.substring( urlQuery.indexOf('/')+1 );

var taxonomyTypeCapitalized = taxonomyType.toLowerCase().replace(/(-)/g, ' ').replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
var taxonomyNameCapitalized = taxonomyName.capitalize();
$.ajax({
type: "POST",
url: clas_object.ajaxurl,
Expand All @@ -308,6 +327,7 @@ jQuery(document).ready(function($) {
taxonomyName: taxonomyName
},
success: function(response){

var taxonomyID = response;
$.ajax({
type: "POST",
Expand All @@ -318,13 +338,22 @@ jQuery(document).ready(function($) {
value: taxonomyID
},
success: function(response){
renderStoriesList(response, taxonomyTypeCapitalized, taxonomyNameCapitalized);
var arr = taxonomyName.split('-');
var taxonomyNameCapitalized = "";
for (var i in arr){
var current = arr[i].capitalize();
if( !(i == 0) ){
taxonomyNameCapitalized += " ";
}
taxonomyNameCapitalized += current;
}
renderStoriesList(response, taxonomyType.capitalize(), taxonomyNameCapitalized);
},
dataType: "json"
});
},
dataType: "json"
});
});
}
});

Expand All @@ -341,11 +370,11 @@ jQuery(document).ready(function($) {

var postIDs = retrievePostIDs( $(this) );
renderPosts(postIDs);

var postTitle = $(this).data('slug');
var postLink = this.children[0].href;

History.pushState(postIDs, postTitle, "?post/"+postTitle);
var postSlug = $(this).data('slug');
var postTitle = postSlug.slugToClean();
var postLink = this.children[0].href;
History.pushState(postIDs, postTitle, "?post/"+postSlug);
});

$('div.news-tags a').click(function(event){
Expand All @@ -354,7 +383,7 @@ jQuery(document).ready(function($) {
window.location.href = clas_object.siteurl+'/news-archive';
return false;
}
var tagTitle = this.text;
var tagTitle = this.text.slugToClean();
var tag = this.className;
$.ajax({
type: "POST",
Expand Down Expand Up @@ -382,9 +411,7 @@ jQuery(document).ready(function($) {
$('select.category').find("option:eq(0)").prop("selected", true);
}
taxonomyName = this.options[this.selectedIndex].text;
var taxonomyTitle = taxonomyName.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
var taxonomyTitle = taxonomyName.slugToClean();

var taxonomySlug = taxonomyName.toLowerCase().replace(/(\s)/g, '-');
taxonomyCapitalized = taxonomy.capitalize();
Expand Down Expand Up @@ -474,10 +501,12 @@ jQuery(document).ready(function($) {
startingElement = element.next();
postsArray = retrievePostIDs(startingElement);
$('#news-next').trigger('click');
$('html, body').animate({ scrollTop: 0 }, 'fast');
} else if( this.id == 'newerStories' ){
startingElement = element.prev();
postsArray = retrievePreviousIDs(startingElement);
$('#news-back').trigger('click');
$('html, body').animate({ scrollTop: 0 }, 'fast');
}
if( postsArray != null ){
renderPosts( postsArray );
Expand Down

0 comments on commit b9219a1

Please sign in to comment.