Library

We have libraries on each campus, with a huge range of physical and digital scholarly resources to support your studies.

At our libraries you'll find:

  • scholarly resources to help you complete your assessments
  • videos
  • workshops
  • guides to help you find and evaluate information.

Showing of workshops and events

', typeof event['event']['presenter'], event['event']['presenter'], "Returns: ", hasMatchingPresenter); const hasMatchingCategory = _.intersection(event['search-filter']['event-category'], categoryFilters).length > 0 || categoryFilters.includes('Anything'); //console.log('Category Match:', hasMatchingCategory, 'categoryFilters:', categoryFilters ,'type:',typeof categoryFilters , '--->', typeof event['search-filter']['event-category'], event['search-filter']['event-category']); const isOnDemand = !!event['resources']['embed-code']; //console.log('isOnDemand: ', typeof isOnDemand ,isOnDemand,'deliveryFilters: ', deliveryFilters, 'type:', typeof deliveryFilters); let hasFutureDate = hasFutureDates(event); //console.log('hasFutureDate: ', hasFutureDate); //const hasStudent = studentTypeFilters.toString() === event['search-filter']['student-category'].toString(); let hasStudent; if(studentTypeFilters.includes("All students")) { hasStudent = true; } else { hasStudent = studentTypeFilters.includes(event['search-filter']['student-category']); } //console.log('hasStudent:', hasStudent, studentTypeFilters ,typeof studentTypeFilters, '--->', event['search-filter']['student-category'],typeof event['search-filter']['student-category']); let hasCampus; if (campusFilters.includes("All locations")) { hasCampus = true; } else { hasCampus = campusFilters.includes(event['event']['campus']); } //console.log('Campus Match:', hasCampus, typeof campusFilters, '-->', typeof event['event']['campus']); let includeEvent = false; let sortDate = sortDates(event); console.log('sortDate:', sortDate); if (dateFilters.includes("All dates")) { // Returns all live sessions in the future includeEvent = hasFutureDate || isOnDemand; } else if (dateFilters.includes("Today")) { // Returns all live sessions starting today includeEvent = includeEvent = hasFutureDate && isToday(sortDate['dates'][0]['event_start_date']); } else if (dateFilters.includes("Upcoming")) { // Returns all live sessions starting in the future includeEvent = hasFutureDate; } else if (dateFilters.includes("Selected dates")) { // Returns all live sessions between selected dates if (dateFrom && dateTo) { if (sortDate['dates'].length > 0 && sortDate['dates'][0]['event_start_date']) { const modalEventStartDate = sortDate['dates'][0]['event_start_date']; const dateRangeStart = moment(dateFrom, 'YYYY-MM-DD'); const dateRangeEnd = moment(dateTo, 'YYYY-MM-DD'); includeEvent = moment(modalEventStartDate, 'Do MMM YYYY').isBetween(dateRangeStart, dateRangeEnd, null, '[]'); } else { // If no event_start_date property. includeEvent = false; } } } else { // No date filter selected, include all events includeEvent = true; } //console.log('include check: ', includeEvent, 'Event Date: ', event.dates, 'Date Filter: ', dateFilters); //console.groupEnd(); return includeEvent && hasMatchingCategory && ((deliveryFilters == "Live sessions" && hasFutureDate) || (deliveryFilters == "On demand" && (isOnDemand && !hasFutureDate)) || (deliveryFilters == "All" && (hasFutureDate || isOnDemand))) && hasStudent && hasCampus && hasMatchingPresenter; }); //console.log('Modal Filtered: ',filteredEvents); updateDropdownSelection(); clearEventList(); let endIndex = page * cardIncrease > filteredEvents.length ? filteredEvents.length : page * cardIncrease; getInitialData(filteredEvents); setPagination(endIndex, filteredEvents.length); document.getElementById("modal-close-btn").click(); }); modalClear = document.getElementById('modal-clearall'); modalClear.addEventListener('click', modalClearAll); function modalClearAll() { // Select all checkboxes and radio buttons within the relevant filter sections var checkboxes = document.querySelectorAll("#workshopsModal input[type='checkbox'], #workshopsModal input[type='radio']"); checkboxes.forEach(function(checkbox) { checkbox.checked = false; }); // Get all elements with class 'sq-form-section' const sections = document.querySelectorAll('.sq-form-section'); // Loop through the sections and select the first checkbox of each section sections.forEach((section) => { const firstCheckbox = section.querySelector(':scope > form > .sq-form-question-answer > ul > li:first-child input[type="checkbox"]'); const firstRadio = section.querySelector(':scope > form > .sq-form-question-answer > ul > li:first-child input[type="radio"]'); if (firstRadio) { if (firstRadio.checked) { // If the first checkbox is already checked, uncheck it firstRadio.checked = false; } else if (firstRadio.disabled) { // If the first checkbox is disabled, skip it return; } else { // Otherwise, check the first checkbox firstRadio.checked = true; document.getElementById("filterDatesWrap").style.display = "none"; } } if (firstCheckbox) { if (firstCheckbox.checked) { // If the first checkbox is already checked, uncheck it firstCheckbox.checked = false; } else if (firstCheckbox.disabled) { // If the first checkbox is disabled, skip it return; } else { // Otherwise, check the first checkbox firstCheckbox.checked = true; } } }); // Uncheck all other checkboxes checkboxes.forEach(function(checkbox) { if(!checkbox.checked){ checkbox.checked = false; } }); } /******************************* * Modal Filtering * -------- ENDS HERE ----------- ********************************/ /******************************* * URL Based Filering * Display Content on Webpage ********************************/ const urlParams = new URLSearchParams(window.location.search); const category = urlParams.get('category')?.toLowerCase(); const presenter = urlParams.get('presenter')?.toLowerCase(); const student = urlParams.get('studenttype')?.toLowerCase(); const delivery = urlParams.get('delivery')?.toLowerCase(); const location = urlParams.get('location')?.toLowerCase(); let filteredEventsByURL = initialData; function setTopic() { const categoryCheckboxes = document.querySelectorAll("#workshopsModal input[type='checkbox'], #workshopsModal input[type='radio']"); //document.getElementsByName("modal-topics-filter"); const categoryValues = category ? category.split(',') : []; categoryCheckboxes.forEach(checkbox => { if (categoryValues.includes(checkbox.value.toLowerCase())) { checkbox.checked = true; } }); let topicsFilter = document.getElementById("simple-topics-filter"); function capitalizeFirstLetter(word) { return word.charAt(0).toUpperCase() + word.slice(1); } const selectedCategories = categoryValues.length > 0 ? categoryValues[0] : "anything"; topicsFilter.value = capitalizeFirstLetter(selectedCategories); } if (presenter || category || student || delivery || location) { if(presenter) { const presenterValues = presenter.split(','); filteredEventsByURL = _.filter(filteredEventsByURL, data => { const eventPresenter = Array.isArray(data['event']['presenter']) ? data['event']['presenter'].map(pres => pres.toLowerCase()) : [data['event']['presenter'].toLowerCase()]; const hasMatchingPresenter = _.intersection(eventPresenter, presenterValues).length > 0; //eventPresenter.includes(presenter); return hasMatchingPresenter; }); } if (category) { const categoryValues = category.split(','); filteredEventsByURL = _.filter(filteredEventsByURL, data => { const eventCategories = data['search-filter']['event-category'].map(cat => cat.toLowerCase()); return _.intersection(eventCategories, categoryValues).length > 0; }); setTopic(); // Set filter dropdown to selected categories. } if(student){ const studentTypeValues = student.split(','); filteredEventsByURL = _.filter(filteredEventsByURL, data => { const eventStudent = Array.isArray(data['search-filter']['student-category']) ? data['search-filter']['student-category'].map(pres => pres.toLowerCase()) : [data['search-filter']['student-category'].toLowerCase()]; const hasMatchingStudentType = _.intersection(eventStudent, studentTypeValues).length > 0; //eventPresenter.includes(presenter); return hasMatchingStudentType; }); } if (location) { const locationValues = location.split(','); filteredEventsByURL = _.filter(filteredEventsByURL, data => { const eventLocation = Array.isArray(data['event']['campus']) ? data['event']['campus'].map(pres => pres.toLowerCase()) : [data['event']['campus'].toLowerCase()]; const hasMatchinglocation = _.intersection(eventLocation, locationValues).length > 0; //eventPresenter.includes(presenter); return hasMatchinglocation; }); } let endIndex = page * cardIncrease > cardLimit ? cardLimit : filteredEventsByURL.length; clearEventList(); getInitialData(filteredEventsByURL); setPagination(filteredEventsByURL.length, endIndex); } // Default Page Load else { let topic = document.getElementById("simple-topics-filter").value; let deliveryMode = document.getElementById("simple-delivery-filter").value; if(topic == "Anything" && deliveryMode == "All"){ modalClearAll(); } let endIndex = page * cardIncrease > initialData.length ? initialData.length : page * cardIncrease; page++ // Page Increment. setPagination(endIndex, initialData.length); setLoadMoreData(initialData); window.onload = getInitialData(initialData); } /******************************* * URL Based Filtering * Display Content on Webpage * ------- ENDS HERE ----------- ********************************/ } // End of Full List functionality. // Begin Virtual Open Day functionality else if(workshopType == "vod") { console.log(initialData); let endIndex = page * cardIncrease > initialData.length ? initialData.length : page * cardIncrease; page++ // Page Increment. setPagination(endIndex, initialData.length); setLoadMoreData(initialData); window.onload = getInitialData(initialData); let filterSelects = $(".vod-filters select"); const filterBtn = document.querySelector('#filterCategory'); filterBtn.addEventListener('click', function() { removeDisabled(); let filteredResults = []; filterSelects.each((index, select) => { let filterTerm = select.options[select.selectedIndex].text; if (filterTerm == "Please select") { return; } let category = select.dataset.filter; filteredResults = [...filteredResults, ...filterByCategory(initialData, category, filterTerm)] }) filteredResults = _.uniq(filteredResults); clearEventList(); let endIndex = page * cardIncrease > filteredResults.length ? filteredResults.length : page * cardIncrease; getInitialData(filteredResults); setPagination(endIndex, filteredResults.length); }); const resetBtn = document.querySelector('#show-all-events'); resetBtn.addEventListener("click", function() { clearEventList(); filterSelects.each((index, select) => { select.selectedIndex = 0; }); getInitialData(initialData); setPagination(endIndex, initialData.length); }); } // End Virtual Open Day functionality // Start of Carousel functionality. else if(workshopType == 'carousel') { const noEvent = document.getElementById('no-show'); let initialData = sortByEarlyDate(workshopData); //Assign variable to carousel filter. const carouselFilterType = "presented-by" //Check what kind of filter is selected. if(carouselFilterType == "categories") { const filterCategory = "" const carouselCategories = filterCategory.split(";").map(cat => (cat.trim())); var carouselFilterData = _.filter(initialData, event => { const eventCategories = event['search-filter']['event-category']; const matchingCategories = _.intersection(eventCategories, carouselCategories); return matchingCategories.length > 0; }); if(carouselFilterData.length == 0 ){ // If no results display none clearEventList(); fullList.style.display = "none"; carouselList.style.display = "none"; $(".nav-group-item:contains('Workshops and events')").hide(); } else { appendDataCarousel(carouselFilterData); } } else if (carouselFilterType == "presented-by") { const filterPresentedBy = "Library" const carouselPresenters = filterPresentedBy.split(";").map(cat => (cat.trim())); var carouselFilterData = _.filter(initialData, event => { const eventPresenter = event.event.presenter; const matchingPresenter = carouselPresenters.includes(eventPresenter); console.log("eventPresenter:", eventPresenter, "carouselPresentersFilter: ", carouselPresenters, "RESULT: ", matchingPresenter); return matchingPresenter; }); if(carouselFilterData.length == 0 ){ clearEventList(); fullList.style.display = "none"; carouselList.style.display = "none"; $(".nav-group-item:contains('Workshops and events')").hide(); } else { appendDataCarousel(carouselFilterData); } } else if (carouselFilterType == "student-type"){ const filterStudentType = "" const carouselStudent = filterStudentType.split(";").map(cat => (cat.trim())); var carouselFilterData = _.filter(initialData, event => { const eventStudentType = event['search-filter']['student-category']; const matchingStudent = carouselStudent.includes(eventStudentType); console.log("eventStudentType:", eventStudentType, "carouselPresentersFilter: ", carouselStudent, "RESULT: ", matchingStudent); return matchingStudent; }); if(carouselFilterData.length == 0 ){ clearEventList(); fullList.style.display = "none"; carouselList.style.display = "none"; $(".nav-group-item:contains('Workshops and events')").hide(); } else { appendDataCarousel(carouselFilterData); } } else { // If no filters selected. appendDataCarousel(initialData); } } /******************************* * ORIENTATION * RENDERING ********************************/ else if(workshopType == 'orientation') { const noShow = document.getElementById('no-show'); var isOrientationEvents = _.filter(workshopData, function(item) { return item['search-filter']['orientation'] === "Yes"; }); var categories = _.flatten(_.map(isOrientationEvents, function(item) { return item['search-filter']['event-category']; })); categories = _.uniq(categories); var checkboxHorizontalFilters = document.getElementById('orientation1') checkboxHorizontalFilters.innerHTML = ` `; categories.forEach(function(category) { if (category.trim() !== '') { /*checkboxContainer.innerHTML += `
OSZAR »