///////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / // / // All rights reserved. This program and the accompanying materials / // are made available under the terms of the Apache License, Version 2.0 / // which accompanies this distribution, and is available at / // http://www.apache.org/licenses/LICENSE-2.0 / ///////////////////////////////////////////////////////////////////////////////////////// /* * Template Component: accordionWikiMenu */ import { Template } from 'meteor/templating'; //import { ReactiveDict } from 'meteor/reactive-dict'; //import { store } from '/imports/ui/store/store'; //import { setCurrentNode } from '/imports/ui/actions/navigation'; import './accordion-wiki-menu.html'; Template.accordionWikiMenu.rendered = function () { // init wow lib new WOW().init(); // smooth scrolling function $(function() { $('a[href*="#"]:not([href="#"])').click(function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html, body').animate({ scrollTop: target.offset().top - 90 }, 1000); return false; } } }); }); /* accordion menu plugin*/ (function($, window, _document, _undefined) { var pluginName = 'accordion'; var defaults = { speed: 200, showDelay: 0, hideDelay: 0, singleOpen: true, clickEffect: true, indicator: 'submenu-indicator-minus', subMenu: 'submenu', event: 'click touchstart' // click, touchstart }; function Plugin(element, options) { this.element = element; this.settings = $.extend({}, defaults, options); this._defaults = defaults; this._name = pluginName; this.init(); } $.extend(Plugin.prototype, { init: function() { this.openSubmenu(); this.submenuIndicators(); if (defaults.clickEffect) { this.addClickEffect(); } }, openSubmenu: function() { $(this.element).children('ul').find('li').bind(defaults.event, function(e) { e.stopPropagation(); e.preventDefault(); var $subMenus = $(this).children('.' + defaults.subMenu); var $allSubMenus = $(this).find('.' + defaults.subMenu); if ($subMenus.length > 0) { if ($subMenus.css('display') == 'none') { $subMenus.slideDown(defaults.speed).siblings('a').addClass(defaults.indicator); if (defaults.singleOpen) { $(this).siblings().find('.' + defaults.subMenu).slideUp(defaults.speed) .end().find('a').removeClass(defaults.indicator); } return false; } else { $(this).find('.' + defaults.subMenu).delay(defaults.hideDelay).slideUp(defaults.speed); } if ($allSubMenus.siblings('a').hasClass(defaults.indicator)) { $allSubMenus.siblings('a').removeClass(defaults.indicator); } } window.location.href = $(this).children('a').attr('href'); }); }, submenuIndicators: function() { if ($(this.element).find('.' + defaults.subMenu).length > 0) { $(this.element).find('.' + defaults.subMenu).siblings('a').append('+'); } }, addClickEffect: function() { var ink, d, x, y; $(this.element).find('a').bind('click touchstart', function(e) { $('.ink').remove(); if ($(this).children('.ink').length === 0) { $(this).prepend(''); } ink = $(this).find('.ink'); ink.removeClass('animate-ink'); if (!ink.height() && !ink.width()) { d = Math.max($(this).outerWidth(), $(this).outerHeight()); ink.css({ height: d, width: d }); } x = e.pageX - $(this).offset().left - ink.width() / 2; y = e.pageY - $(this).offset().top - ink.height() / 2; ink.css({ top: y + 'px', left: x + 'px' }).addClass('animate-ink'); }); } }); $.fn[pluginName] = function(options) { this.each(function() { if (!$.data(this, 'plugin_' + pluginName)) { $.data(this, 'plugin_' + pluginName, new Plugin(this, options)); } }); return this; }; })(jQuery, window, document); jQuery(document).ready(function($) { $('#left-nav-menu').accordion(); $('.colors a').click(function() { if ($(this).attr('class') != 'default') { $('#left-nav-menu').removeClass(); $('#left-nav-menu').addClass('menu').addClass($(this).attr('class')); } else { $('#left-nav-menu').removeClass(); $('#left-nav-menu').addClass('menu'); } }); }); };