Instantly share code, notes, and snippets.
Created
March 29, 2018 16:28
-
Star
(0)
0
You must be signed in to star a gist -
Fork
(0)
0
You must be signed in to fork a gist
-
Save spacerobotTR/dfc569846a12f66527ed84ce25ece099 to your computer and use it in GitHub Desktop.
Files for sidebar
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div id="main-wrapper"> | |
{{#if session.isAuthenticated}} | |
<header class="topbar"> | |
<nav class="navbar top-navbar navbar-expand-md navbar-light"> | |
<!-- ============================================================== --> | |
<!-- Logo --> | |
<!-- ============================================================== --> | |
<div class="navbar-header"> | |
{{#link-to "application" class='navbar-brand' }} | |
<b><span class="light-logo"> {{fa-icon "ticket"}} Service Admin</span></b> | |
{{/link-to}} | |
</div> | |
<!-- ============================================================== --> | |
<!-- End Logo --> | |
<!-- ============================================================== --> | |
<div class="navbar-collapse"> | |
<!-- ============================================================== --> | |
<!-- toggle and nav items --> | |
<!-- ============================================================== --> | |
<ul class="navbar-nav mr-auto mt-md-0"> | |
<!-- This is --> | |
<li class="nav-item"> <a class="nav-link nav-toggler hidden-md-up text-muted waves-effect waves-dark" href="javascript:void(0)">{{material-icon "home"}}</a> </li> | |
<li class="nav-item"> <a class="nav-link sidebartoggler hidden-sm-down text-muted waves-effect waves-dark" href="javascript:void(0)"><i class="ti-menu"></i></a> </li> | |
<!-- ============================================================== --> | |
<!-- Search --> | |
<!-- ============================================================== --> | |
<li class="nav-item hidden-sm-down search-box"> <a class="nav-link hidden-sm-down text-muted waves-effect waves-dark" href="javascript:void(0)"><i class="ti-search"></i></a> | |
<form class="app-search"> | |
<input type="text" class="form-control" placeholder="Search & enter"> <a class="srh-btn"><i class="ti-close"></i></a> </form> | |
</li> | |
</ul> | |
<!-- ============================================================== --> | |
<!-- User profile and search --> | |
<!-- ============================================================== --> | |
<ul class="navbar-nav my-lg-0"> | |
<!-- ============================================================== --> | |
<!-- Profile --> | |
<!-- ============================================================== --> | |
<li class="nav-item dropdown"> | |
<a class="nav-link dropdown-toggle text-muted waves-effect waves-dark" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <b><span class="light-logo"> [{{currentUser.username}}]</span></b></a> | |
<div class="dropdown-menu dropdown-menu-right scale-up"> | |
<ul class="dropdown-user"> | |
<li> | |
<div class="dw-user-box"> | |
<div class="u-text"> | |
<h4>{{currentUser.username}}</h4> | |
<p class="text-muted">{{currentUser.username}}@email.com</p></div> | |
</div> | |
</li> | |
<li role="separator" class="divider"></li> | |
<li><a href="#" {{action 'logout'}}><i class="fa fa-power-off"></i> Logout</a></li> | |
</ul> | |
</div> | |
</li> | |
</ul> | |
</div> | |
</nav> | |
</header> | |
<!-- ============================================================== --> | |
<!-- Left Sidebar - style you can find in sidebar.scss --> | |
<!-- ============================================================== --> | |
<aside class="left-sidebar"> | |
<!-- Sidebar scroll--> | |
<div class="scroll-sidebar"> | |
<!-- Sidebar navigation--> | |
<nav class="sidebar-nav"> | |
<ul id="sidebarnav"> | |
<li class="nav-small-cap">Service Requests</li> | |
<li> <a class="has-arrow waves-effect waves-dark" href="#" aria-expanded="false"><i class="mdi mdi-gauge"></i><span class="hide-menu">Requests </span></a> | |
<ul aria-expanded="false" class="collapse"> | |
<li><a href="">Opened</a></li> | |
<li><a href="">Closed</a></li> | |
<li><a href="">Cancelled</a></li> | |
</ul> | |
</li> | |
</ul> | |
</nav> | |
<!-- End Sidebar navigation --> | |
</div> | |
<!-- End Sidebar scroll--> | |
<!-- Bottom points--> | |
</aside> | |
<!-- ============================================================== --> | |
<!-- End Left Sidebar - style you can find in sidebar.scss --> | |
<!-- ============================================================== --> | |
{{/if}} | |
{{outlet}} | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function (global, factory) { | |
if (typeof define === "function" && define.amd) { | |
define(['jquery'], factory); | |
} else if (typeof exports !== "undefined") { | |
factory(require('jquery')); | |
} else { | |
var mod = { | |
exports: {} | |
}; | |
factory(global.jquery); | |
global.metisMenu = mod.exports; | |
} | |
})(this, function (_jquery) { | |
'use strict'; | |
var _jquery2 = _interopRequireDefault(_jquery); | |
function _interopRequireDefault(obj) { | |
return obj && obj.__esModule ? obj : { | |
default: obj | |
}; | |
} | |
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { | |
return typeof obj; | |
} : function (obj) { | |
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | |
}; | |
function _classCallCheck(instance, Constructor) { | |
if (!(instance instanceof Constructor)) { | |
throw new TypeError("Cannot call a class as a function"); | |
} | |
} | |
var Util = function ($) { | |
var transition = false; | |
var TransitionEndEvent = { | |
WebkitTransition: 'webkitTransitionEnd', | |
MozTransition: 'transitionend', | |
OTransition: 'oTransitionEnd otransitionend', | |
transition: 'transitionend' | |
}; | |
function getSpecialTransitionEndEvent() { | |
return { | |
bindType: transition.end, | |
delegateType: transition.end, | |
handle: function handle(event) { | |
if ($(event.target).is(this)) { | |
return event.handleObj.handler.apply(this, arguments); | |
} | |
return undefined; | |
} | |
}; | |
} | |
function transitionEndTest() { | |
if (window.QUnit) { | |
return false; | |
} | |
var el = document.createElement('mm'); | |
for (var name in TransitionEndEvent) { | |
if (el.style[name] !== undefined) { | |
return { | |
end: TransitionEndEvent[name] | |
}; | |
} | |
} | |
return false; | |
} | |
function transitionEndEmulator(duration) { | |
var _this2 = this; | |
var called = false; | |
$(this).one(Util.TRANSITION_END, function () { | |
called = true; | |
}); | |
setTimeout(function () { | |
if (!called) { | |
Util.triggerTransitionEnd(_this2); | |
} | |
}, duration); | |
return this; | |
} | |
function setTransitionEndSupport() { | |
transition = transitionEndTest(); | |
$.fn.emulateTransitionEnd = transitionEndEmulator; | |
if (Util.supportsTransitionEnd()) { | |
$.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); | |
} | |
} | |
var Util = { | |
TRANSITION_END: 'mmTransitionEnd', | |
triggerTransitionEnd: function triggerTransitionEnd(element) { | |
$(element).trigger(transition.end); | |
}, | |
supportsTransitionEnd: function supportsTransitionEnd() { | |
return Boolean(transition); | |
} | |
}; | |
setTransitionEndSupport(); | |
return Util; | |
}(jQuery); | |
var MetisMenu = function ($) { | |
var NAME = 'metisMenu'; | |
var DATA_KEY = 'metisMenu'; | |
var EVENT_KEY = '.' + DATA_KEY; | |
var DATA_API_KEY = '.data-api'; | |
var JQUERY_NO_CONFLICT = $.fn[NAME]; | |
var TRANSITION_DURATION = 350; | |
var Default = { | |
toggle: true, | |
preventDefault: true, | |
activeClass: 'active', | |
collapseClass: 'collapse', | |
collapseInClass: 'in', | |
collapsingClass: 'collapsing', | |
triggerElement: 'a', | |
parentTrigger: 'li', | |
subMenu: 'ul' | |
}; | |
var Event = { | |
SHOW: 'show' + EVENT_KEY, | |
SHOWN: 'shown' + EVENT_KEY, | |
HIDE: 'hide' + EVENT_KEY, | |
HIDDEN: 'hidden' + EVENT_KEY, | |
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY | |
}; | |
var MetisMenu = function () { | |
function MetisMenu(element, config) { | |
_classCallCheck(this, MetisMenu); | |
this._element = element; | |
this._config = this._getConfig(config); | |
this._transitioning = null; | |
this.init(); | |
} | |
MetisMenu.prototype.init = function init() { | |
var self = this; | |
$(this._element).find(this._config.parentTrigger + '.' + this._config.activeClass).has(this._config.subMenu).children(this._config.subMenu).attr('aria-expanded', true).addClass(this._config.collapseClass + ' ' + this._config.collapseInClass); | |
$(this._element).find(this._config.parentTrigger).not('.' + this._config.activeClass).has(this._config.subMenu).children(this._config.subMenu).attr('aria-expanded', false).addClass(this._config.collapseClass); | |
$(this._element).find(this._config.parentTrigger).has(this._config.subMenu).children(this._config.triggerElement).on(Event.CLICK_DATA_API, function (e) { | |
var _this = $(this); | |
var _parent = _this.parent(self._config.parentTrigger); | |
var _siblings = _parent.siblings(self._config.parentTrigger).children(self._config.triggerElement); | |
var _list = _parent.children(self._config.subMenu); | |
if (self._config.preventDefault) { | |
e.preventDefault(); | |
} | |
if (_this.attr('aria-disabled') === 'true') { | |
return; | |
} | |
if (_parent.hasClass(self._config.activeClass)) { | |
_this.attr('aria-expanded', false); | |
self._hide(_list); | |
} else { | |
self._show(_list); | |
_this.attr('aria-expanded', true); | |
if (self._config.toggle) { | |
_siblings.attr('aria-expanded', false); | |
} | |
} | |
if (self._config.onTransitionStart) { | |
self._config.onTransitionStart(e); | |
} | |
}); | |
}; | |
MetisMenu.prototype._show = function _show(element) { | |
if (this._transitioning || $(element).hasClass(this._config.collapsingClass)) { | |
return; | |
} | |
var _this = this; | |
var _el = $(element); | |
var startEvent = $.Event(Event.SHOW); | |
_el.trigger(startEvent); | |
if (startEvent.isDefaultPrevented()) { | |
return; | |
} | |
_el.parent(this._config.parentTrigger).addClass(this._config.activeClass); | |
if (this._config.toggle) { | |
this._hide(_el.parent(this._config.parentTrigger).siblings().children(this._config.subMenu + '.' + this._config.collapseInClass).attr('aria-expanded', false)); | |
} | |
_el.removeClass(this._config.collapseClass).addClass(this._config.collapsingClass).height(0); | |
this.setTransitioning(true); | |
var complete = function complete() { | |
_el.removeClass(_this._config.collapsingClass).addClass(_this._config.collapseClass + ' ' + _this._config.collapseInClass).height('').attr('aria-expanded', true); | |
_this.setTransitioning(false); | |
_el.trigger(Event.SHOWN); | |
}; | |
if (!Util.supportsTransitionEnd()) { | |
complete(); | |
return; | |
} | |
_el.height(_el[0].scrollHeight).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); | |
}; | |
MetisMenu.prototype._hide = function _hide(element) { | |
if (this._transitioning || !$(element).hasClass(this._config.collapseInClass)) { | |
return; | |
} | |
var _this = this; | |
var _el = $(element); | |
var startEvent = $.Event(Event.HIDE); | |
_el.trigger(startEvent); | |
if (startEvent.isDefaultPrevented()) { | |
return; | |
} | |
_el.parent(this._config.parentTrigger).removeClass(this._config.activeClass); | |
_el.height(_el.height())[0].offsetHeight; | |
_el.addClass(this._config.collapsingClass).removeClass(this._config.collapseClass).removeClass(this._config.collapseInClass); | |
this.setTransitioning(true); | |
var complete = function complete() { | |
if (_this._transitioning && _this._config.onTransitionEnd) { | |
_this._config.onTransitionEnd(); | |
} | |
_this.setTransitioning(false); | |
_el.trigger(Event.HIDDEN); | |
_el.removeClass(_this._config.collapsingClass).addClass(_this._config.collapseClass).attr('aria-expanded', false); | |
}; | |
if (!Util.supportsTransitionEnd()) { | |
complete(); | |
return; | |
} | |
_el.height() == 0 || _el.css('display') == 'none' ? complete() : _el.height(0).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); | |
}; | |
MetisMenu.prototype.setTransitioning = function setTransitioning(isTransitioning) { | |
this._transitioning = isTransitioning; | |
}; | |
MetisMenu.prototype.dispose = function dispose() { | |
$.removeData(this._element, DATA_KEY); | |
$(this._element).find(this._config.parentTrigger).has(this._config.subMenu).children(this._config.triggerElement).off('click'); | |
this._transitioning = null; | |
this._config = null; | |
this._element = null; | |
}; | |
MetisMenu.prototype._getConfig = function _getConfig(config) { | |
config = $.extend({}, Default, config); | |
return config; | |
}; | |
MetisMenu._jQueryInterface = function _jQueryInterface(config) { | |
return this.each(function () { | |
var $this = $(this); | |
var data = $this.data(DATA_KEY); | |
var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config); | |
if (!data && /dispose/.test(config)) { | |
this.dispose(); | |
} | |
if (!data) { | |
data = new MetisMenu(this, _config); | |
$this.data(DATA_KEY, data); | |
} | |
if (typeof config === 'string') { | |
if (data[config] === undefined) { | |
throw new Error('No method named "' + config + '"'); | |
} | |
data[config](); | |
} | |
}); | |
}; | |
return MetisMenu; | |
}(); | |
/** | |
* ------------------------------------------------------------------------ | |
* jQuery | |
* ------------------------------------------------------------------------ | |
*/ | |
$.fn[NAME] = MetisMenu._jQueryInterface; | |
$.fn[NAME].Constructor = MetisMenu; | |
$.fn[NAME].noConflict = function () { | |
$.fn[NAME] = JQUERY_NO_CONFLICT; | |
return MetisMenu._jQueryInterface; | |
}; | |
return MetisMenu; | |
}(jQuery); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment