SPS Flyers
School
Community
Start Date
End Date
Page:
var filter_school = []; var filter_community = []; var filter_month = ''; var filter_search = ''; var current_page = 1; var records_per_page = 15; var btn_next = document.getElementById("btn_next"); var btn_prev = document.getElementById("btn_prev"); var listing_table = document.getElementById("bulletin-list"); var page_span = document.getElementById("table_page_count");
jQuery(document).ready(function( $ ) {
$('#btn_prev').on('click', function() { prevPage(); }) $('#btn_next').on('click', function() { nextPage(); })
$('#reset-button').on('click', function() { $(".filter-input input[type='checkbox']").prop("checked", false); $(".filter-input input[type='text']").val(""); $(".filter-input select option:selected").removeAttr("selected");
filter_school = []; filter_community = []; filter_month = ''; filter_search = ''; current_page = 1; filterBulletins(); changePage(current_page); $('#reset-button').hide(); });
$('.view_activity_details').on('click', function() { openActivityModal($(this).data('id')) })
$('#filter-search').on('input', function() { filter_search = ''; if($('#filter-search').val().length > 3){ filter_search = $('#filter-search').val().toLowerCase(); dataLayer.push({'event': 'search_input'}); } current_page = 1; filterBulletins(); changePage(current_page); })
$('#filter-schools').on('change','input', function() { filter_school = []; $('input[name="schools"]:checked').each(function() { filter_school.push($(this).val()); }); current_page = 1; filterBulletins(); changePage(current_page); }) let schools = ["Spokane Public School","Mead School District"]; $.each(schools, function(index, value) { if(value){ $('#filter-schools').append($('
')); } });
$('#filter-communities').on('change','input', function() { filter_community = []; $('input[name="communities"]:checked').each(function() { filter_community.push($(this).val()); }); current_page = 1; filterBulletins(); changePage(current_page); }) let communities = ["Spokane","Spokane County"]; $.each(communities, function(index, value) { if(value){ $('#filter-communities').append($('
')); } });
let latest_month = '202505';
jQuery( "#filter-month option" ).each(function(index, option ) { if($(option).attr('value') > latest_month){ option.remove(); } });
$('#filter-month').on('change', function() { filter_month = $('#filter-month').val(); current_page = 1; filterBulletins(); changePage(current_page); })
});
function hasCommonElement(array1, array2) { for (let element of array1) { if (array2.includes(element)) { return true; } } return false; }
function filterBulletins(){ if( filter_search.length || filter_month || filter_school.length || filter_community.length ){ jQuery('#reset-button').show(); } jQuery( "#bulletin-list li" ).each(function( index ) { jQuery(this).removeClass("filter_off"); if(filter_search.length){ if(!jQuery(this).data('title').includes(filter_search)){ jQuery(this).addClass("filter_off"); } } if(filter_school.length){ if(!filter_school.includes(jQuery(this).data('school'))){ jQuery(this).addClass("filter_off"); } } if(filter_community.length){ if(!filter_community.includes(jQuery(this).data('community'))){ jQuery(this).addClass("filter_off"); } } if(filter_month){ if(jQuery(this).data('start') > filter_month || jQuery(this).data('end') < filter_month){ jQuery(this).addClass("filter_off"); } } }); } function prevPage(){ if (current_page > 1) { current_page--; changePage(current_page); } }
function nextPage(){ if (current_page < numPages()) { current_page++; changePage(current_page); } } function changePage(page) { // Validate page if (page < 1) page = 1; if (page > numPages()) page = numPages();
jQuery( "#bulletin-list li").hide();
var i = (page-1) * records_per_page + 1; var c = 0; jQuery( "#bulletin-list li:not(.filter_off)" ).each(function( index ) { c++; if(c >= i && c <= i + records_per_page){ jQuery(this).show(); } }); page_span.innerHTML = page + "/" + numPages(); if (page == 1) { btn_prev.style.visibility = "hidden"; } else { btn_prev.style.visibility = "visible"; } if (page == numPages()) { btn_next.style.visibility = "hidden"; } else { btn_next.style.visibility = "visible"; } } function numPages() { let length = jQuery('#bulletin-list li:not(.filter_off)').length; return Math.ceil((length - 1) / records_per_page); } window.onload = function() { changePage(current_page); };