Revision: 51026
Updated Code
at September 14, 2011 22:00 by pixelatorz
Updated Code
$(document).ready(function() {
initFilters();
initPagingWithFilter(".paged", ".short", "ul.paging");
});
/***************************************************************************************/
function initFilters() {
showAllItems();
hideEmptyDiv();
window.filters = new Array();
window.courseFilter = new Array();
window.ingredientFilter = new Array();
window.filteredIngredients = new Array();
window.filteredCourses = new Array();
window.filteredRecipes = new Array();
$("#receptenfilter input[type=checkbox]").click(function() {
updateFilters($(this));
updateRecipeUI();
});
}
function updateFilters(clicked) {
filters = [];
courseFilter = [];
ingredientFilter = [];
$("#receptenfilter .gang input[type=checkbox]:checked ").each(function() {
if($(this).val() != "on")
courseFilter.push($(this).val());
});
$("#receptenfilter .bestanddeel input[type=checkbox]:checked").each(function() {
ingredientFilter.push($(this).val());
});
//bij allegangen de andere gangen afchecken
if($(clicked).attr("id") == "allegangen") {
$("#receptenfilter .gang input[type=checkbox]").each(function() {
if($(this).attr("id") != "allegangen")
$(this).removeAttr("checked");
});
}else{
var allegang = $("#receptenfilter #allegangen");
//allegang.checked = false;
if(courseFilter.length > 0)
allegang.removeAttr("checked");
}
filteredCourses = new Array();
if(courseFilter.length > 0) {
$("#recipes article").each(function() {
var recipe = this;
courseFilter.forEach(function(el) {
if($(recipe).find("a[data-course=" + el + "]").length > 0)
filteredCourses.push(recipe);
});
});
} else if($("#receptenfilter #allegangen").attr("checked")) {
$("#recipes article").each(function() {
filteredCourses.push(this);
});
}
filteredRecipes = new Array();
if(ingredientFilter.length == 0)
filteredRecipes = filteredCourses;
else {
filteredCourses.forEach(function(recipe) {
ingredientFilter.forEach(function(ing) {
if($(recipe).find("a[data-ingredient=" + ing + "]").length > 0)
filteredRecipes.push(recipe);
});
});
}
/*
console.log("courses filter: " + courseFilter.length);
console.log("ing filter: " + ingredientFilter.length);
console.log("filtered courses: " + filteredCourses.length);
console.log("recipes: " + filteredRecipes.length);
*/
}
function updateRecipeUI() {
$("#recipes article").hide();
$("#recipes article").removeClass("visible");
hideEmptyDiv();
if(filteredRecipes.length == 0) {
if( $("#receptenfilter #allegangen").attr("checked"))
showAllItems();
else
showEmptyDiv();
} else {
filteredRecipes.forEach(function(recipe) {
showItem(recipe);
});
}
initPagingWithFilter(".paged", ".short", "ul.paging");
}
function showEmptyDiv(){
$("#pagingempty").show();
$(".paging").hide();
}
function hideEmptyDiv(){
$("#pagingempty").hide();
$(".paging").show();
}
function showItem(theItem){
$(theItem).show();
$(theItem).addClass("visible");
}
function showAllItems(){
$("#recipes article").show();
$("#recipes article").addClass("visible");
}
function initPagingWithFilter(container, item, nav){
var itemsPerPage = 5;
var currentPage, totalPages;
var container = $(container);
var nav = $(nav);
var items = $(container).children(".visible");
//console.log("items: " + $('.visible').length);
totalPages = Math.ceil( $('.visible').length/itemsPerPage);
nav.empty();
// back button
var backButton = nav.append('<li><a class="backLink" href="#">«</a></li>');
for(var i = 0; i < totalPages; i++){
// populate nav with page links
var pageItem = nav.append('<li><a class="pageLink" href="#" data-page="' + i + '">' + (i+1).toString() + "</a></li>");
}
// next button
var nextButton = nav.append('<li><a class="nextLink" href="#">»</a></li>');
$('li a', nav).click(function(evt){
evt.preventDefault();
if($(this).hasClass('pageLink')){
pageTo(parseInt($(this).attr('data-page')));
}else if($(this).hasClass('backLink')){
pageTo(currentPage - 1);
}else if($(this).hasClass('nextLink')){
pageTo(currentPage + 1);
}
});
pageTo(0);
function pageTo(newPage){
currentPage = newPage;
// active page state
$('li a', nav).removeClass('active');
$('li a[data-page=' + currentPage + ']').addClass('active');
// manage next & back button visibility
if(currentPage == totalPages - 1){
$('li .nextLink', nav).hide();
}else{
$('li .nextLink', nav).show();
}
if(currentPage == 0){
$('li .backLink', nav).hide();
}else{
$('li .backLink', nav).show();
}
// show hide
items.each(function(i){
if(i >= currentPage*itemsPerPage && i < currentPage*itemsPerPage+itemsPerPage){
$(this).fadeIn("slow");
}else{
$(this).hide();
}
});
}
}
}
Revision: 51025
Updated Code
at September 13, 2011 01:04 by pixelatorz
Updated Code
$(document).ready(function() {
initFilters();
initPagingWithFilter(".paged", ".short", "ul.paging");
});
/***************************************************************************************/
function initFilters() {
showAllItems();
window.filters = new Array();
window.parameter1Filter = new Array();
window.parameter2Filter = new Array();
window.parameter1Filtered = new Array();
window.parameter2Filtered = new Array();
$("#filter input[type=checkbox]").click(function() {
updateFilters();
updateList();
});
}
/***************************************************************************************/
function updateFilters() {
filters = [];
parameter1Filter = [];
parameter2Filter = [];
$("#filter .parameter1 input[type=checkbox]:checked ").each(function() {
parameter1Filter.push($(this).val());
});
$("#filter .parameter2 input[type=checkbox]:checked").each(function() {
parameter2Filter.push($(this).val());
});
if(parameter1Filtered.length == 0) {
parameter1Filtered = $("#container article");
}
parameter1Filtered = new Array();
if(parameter2Filtered.length == 0) {
parameter2Filtered = $("#container article");
}
parameter2Filtered = new Array();
$("#container article").each(function() {
var recipe = this;
parameter2Filter.forEach(function(el) {
// $(recipe).find("a[data-parameter2=" + el + "]").css('border','3px dotted green');
if($(recipe).find("a[data-parameter2=" + el + "]").length > 0)
parameter2Filtered.push(recipe);
});
parameter1Filter.forEach(function(el) {
//alert(el);
// $(recipe).find("a[data-parameter1=" + el + "]").css('border','3px dotted red');
if($(recipe).find("a[data-parameter1=" + el + "]").length > 0)
parameter1Filtered.push(recipe);
});
});
}
/***************************************************************************************/
function updateList() {
$("#container article").hide();
$("#container article").removeClass("visible");
if(parameter2Filtered.length ==0 && parameter1Filtered.length > 0){
//parameter 2 - filtering
parameter1Filtered.forEach(function(recipe) {
showItem(recipe);
});
}else if(parameter2Filtered.length >0 && parameter1Filtered.length == 0){
//parameter 1 - filtering
parameter2Filtered.forEach(function(recipe) {
showItem(recipe);
});
}else if(parameter2Filtered.length ==0 && parameter1Filtered.length == 0){
//"no filters - show all"
showAllItems();
}else if(parameter2Filtered.length >0 && parameter1Filtered.length > 0){
//alert("parameter 1 a parameter 2-filtering");
parameter2Filtered.forEach(function(recipe) {
for( i=0 ; i < parameter1Filtered.length; i++)
{
if(recipe == parameter1Filtered[i])
showItem(recipe);
}
});
}
initPagingWithFilter(".paged", ".short", "ul.paging");
}
function showItem(theItem){
$(theItem).show();
$(theItem).addClass("visible");
}
function showAllItems(){
$("#container article").show();
$("#container article").addClass("visible");
}
/***************************************************************************************/
function initPagingWithFilter(container, item, nav){
var itemsPerPage = 5;
var currentPage, totalPages;
var container = $(container);
var nav = $(nav);
var items = $(container).children(".visible");
totalPages = Math.ceil( $('.visible').length/itemsPerPage);
nav.empty();
// back button
var backButton = nav.append('<li><a class="backLink" href="#">«</a></li>');
for(var i = 0; i < totalPages; i++){
// populate nav with page links
var pageItem = nav.append('<li><a class="pageLink" href="#" data-page="' + i + '">' + (i+1).toString() + "</a></li>");
}
// next button
var nextButton = nav.append('<li><a class="nextLink" href="#">»</a></li>');
$('li a', nav).click(function(evt){
evt.preventDefault();
if($(this).hasClass('pageLink')){
pageTo(parseInt($(this).attr('data-page')));
}else if($(this).hasClass('backLink')){
pageTo(currentPage - 1);
}else if($(this).hasClass('nextLink')){
pageTo(currentPage + 1);
}
});
pageTo(0);
function pageTo(newPage){
currentPage = newPage;
// active page state
$('li a', nav).removeClass('active');
$('li a[data-page=' + currentPage + ']').addClass('active');
// manage next & back button visibility
if(currentPage == totalPages - 1){
$('li .nextLink', nav).hide();
}else{
$('li .nextLink', nav).show();
}
if(currentPage == 0){
$('li .backLink', nav).hide();
}else{
$('li .backLink', nav).show();
}
// show hide
items.each(function(i){
if(i >= currentPage*itemsPerPage && i < currentPage*itemsPerPage+itemsPerPage){
$(this).fadeIn("slow");
}else{
$(this).hide();
}
});
}
}
Revision: 51024
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 13, 2011 01:02 by pixelatorz
Initial Code
$(document).ready(function() {
initFilters();
initPagingWithFilter(".paged", ".short", "ul.paging");
});
/******************************************************************************************/
function initFilters() {
showAllItems();
window.filters = new Array();
window.parameter1Filter = new Array();
window.parameter2Filter = new Array();
window.parameter1Filtered = new Array();
window.parameter2Filtered = new Array();
$("#filter input[type=checkbox]").click(function() {
updateFilters();
updateRecipeUI();
});
}
/******************************************************************************************/
function updateFilters() {
filters = [];
parameter1Filter = [];
parameter2Filter = [];
$("#filter .parameter1 input[type=checkbox]:checked ").each(function() {
parameter1Filter.push($(this).val());
});
$("#filter .parameter2 input[type=checkbox]:checked").each(function() {
parameter2Filter.push($(this).val());
});
if(parameter1Filtered.length == 0) {
parameter1Filtered = $("#container article");
}
parameter1Filtered = new Array();
if(parameter2Filtered.length == 0) {
parameter2Filtered = $("#container article");
}
parameter2Filtered = new Array();
$("#container article").each(function() {
var recipe = this;
parameter2Filter.forEach(function(el) {
// $(recipe).find("a[data-parameter2=" + el + "]").css('border','3px dotted green');
if($(recipe).find("a[data-parameter2=" + el + "]").length > 0)
parameter2Filtered.push(recipe);
});
parameter1Filter.forEach(function(el) {
//alert(el);
// $(recipe).find("a[data-parameter1=" + el + "]").css('border','3px dotted red');
if($(recipe).find("a[data-parameter1=" + el + "]").length > 0)
parameter1Filtered.push(recipe);
});
});
}
/******************************************************************************************/
function updateRecipeUI() {
$("#container article").hide();
$("#container article").removeClass("visible");
if(parameter2Filtered.length ==0 && parameter1Filtered.length > 0){
//parameter 2 - filtering
parameter1Filtered.forEach(function(recipe) {
showItem(recipe);
});
}else if(parameter2Filtered.length >0 && parameter1Filtered.length == 0){
//parameter 1 - filtering
parameter2Filtered.forEach(function(recipe) {
showItem(recipe);
});
}else if(parameter2Filtered.length ==0 && parameter1Filtered.length == 0){
//"no filters - show all"
showAllItems();
}else if(parameter2Filtered.length >0 && parameter1Filtered.length > 0){
//alert("parameter 1 a parameter 2-filtering");
parameter2Filtered.forEach(function(recipe) {
for( i=0 ; i < parameter1Filtered.length; i++)
{
if(recipe == parameter1Filtered[i])
showItem(recipe);
}
});
}
initPagingWithFilter(".paged", ".short", "ul.paging");
}
function showItem(theItem){
$(theItem).show();
$(theItem).addClass("visible");
}
function showAllItems(){
$("#container article").show();
$("#container article").addClass("visible");
}
/******************************************************************************************/
function initPagingWithFilter(container, item, nav){
var itemsPerPage = 5;
var currentPage, totalPages;
var container = $(container);
var nav = $(nav);
var items = $(container).children(".visible");
console.log("items: " + $('.visible').length);
totalPages = Math.ceil( $('.visible').length/itemsPerPage);
nav.empty();
// back button
var backButton = nav.append('<li><a class="backLink" href="#">«</a></li>');
for(var i = 0; i < totalPages; i++){
// populate nav with page links
var pageItem = nav.append('<li><a class="pageLink" href="#" data-page="' + i + '">' + (i+1).toString() + "</a></li>");
}
// next button
var nextButton = nav.append('<li><a class="nextLink" href="#">»</a></li>');
$('li a', nav).click(function(evt){
evt.preventDefault();
if($(this).hasClass('pageLink')){
pageTo(parseInt($(this).attr('data-page')));
}else if($(this).hasClass('backLink')){
pageTo(currentPage - 1);
}else if($(this).hasClass('nextLink')){
pageTo(currentPage + 1);
}
});
pageTo(0);
function pageTo(newPage){
currentPage = newPage;
// active page state
$('li a', nav).removeClass('active');
$('li a[data-page=' + currentPage + ']').addClass('active');
// manage next & back button visibility
if(currentPage == totalPages - 1){
$('li .nextLink', nav).hide();
}else{
$('li .nextLink', nav).show();
}
if(currentPage == 0){
$('li .backLink', nav).hide();
}else{
$('li .backLink', nav).show();
}
// show hide
items.each(function(i){
if(i >= currentPage*itemsPerPage && i < currentPage*itemsPerPage+itemsPerPage){
$(this).fadeIn("slow");
}else{
$(this).hide();
}
});
}
}
Initial URL
Initial Description
Initial Title
filter with double parameters
Initial Tags
javascript, filter
Initial Language
JavaScript