import $ from 'jquery'; import moment from 'moment'; import {lory} from 'lory.js'; import tingle from 'tingle.js'; import mlStackNav from 'ml-stack-nav'; const defaults = { sortOrder: 'desc' }; const hoverHandler = function(e) { $(e.currentTarget).find('.dropdown-menu').toggleClass('dropdown-show'); }; const bootstrapDropdowns = function() { let $toggles = $('.dropdown'); $toggles.each((idx, el) => { $(el).hover(hoverHandler, hoverHandler); }); } const bootstrapModals = function() { // instanciate new modal $(document).on('click', '.modal-open', (e) => { let modalContentId = $(e.currentTarget).data('launch-id'); let modalContent = $(`#${modalContentId}`); debugger; var modal = new tingle.modal({ footer: modalContent.find('#include-footer').data('include-footer'), stickyFooter: modalContent.find('#include-footer').data('sticky-footer'), closeMethods: ['overlay', 'button', 'escape'], closeLabel: modalContent.find('#include-footer').data('close-label'), cssClass: modalContent.find('#css-classes').data('css-classes').split(','), onOpen: () => { console.log('modal open'); }, onClose: () => { console.log('modal closed'); }, beforeClose: () => { // here's goes some logic // e.g. save content before closing the modal return true; // close the modal // return false; // nothing happens } }); // set content modal.setContent(modalContent.find('div#content').html()); // add a button modal.addFooterBtn(modalContent.find('#footer-button-label').data('footer-label'), 'tingle-btn tingle-btn--primary', function() { // here goes some logic modal.close(); }); modal.open(); }) } const bootstrapSlider = function() { //http://meandmax.github.io/lory/ // EVENTS // before.lory.init // fires before initialisation (first in setup function) // after.lory.init // fires after initialisation (end of setup function) // before.lory.slide // arguments: currentSlide, nextSlide // fires before slide change // after.lory.slide // arguments: currentSlide // fires after slide change // before.lory.destroy // fires before the slider instance gets destroyed // after.lory.destroy // fires after the slider instance gets destroyed // on.lory.resize // fires on every resize event // on.lory.touchstart // fires on every slider touchstart event // on.lory.touchmove // fires on every slider touchmove event // on.lory.touchend // fires on every slider touchend event // var slider = document.querySelector('.js_slider'); $('.js_slider').each((idx, slider) => { if (slider) { lory(slider, { // options going here // infinite: 4, // slidesToScroll: 1, // enableMouseEvents: false, // rewind: false, // slideSpeed: 300, // rewindSpeed: 600, // snapBackSpeed: 200, // initialIndex: 0, // ease: 'ease', // classNameFrame: 'js_frame', // classNameSlideContainer: 'js_slides', // classNamePrevCtrl: 'js_prev', // classNameNextCtrl: 'js_next', }); } }); } const getEvents = function() { return $.get('/events/feed/index.json', (resp)=> { buildEventsList(resp.events); }); } const buildEventsList = function(events) { let htmlOut = ''; events.sort((a,b) => { return moment(a.eventDate).isBefore(b.eventDate); }); events.forEach((el) => { if (moment(el.eventDate).isAfter()) { htmlOut += `