forked from deblan/side_menu
97 lines
3 KiB
PHP
97 lines
3 KiB
PHP
(function() {
|
|
var sideMenuContainer = $('<div id="side-menu-container">')
|
|
var sideMenuOpener = $('<button class="side-menu-opener"></button>')
|
|
var sideMenu = $('<div id="side-menu">')
|
|
var body = $('body')
|
|
var isTouchDevice = window.matchMedia("(pointer: coarse)").matches
|
|
|
|
<?php if ($_['force-light-icon']): ?>
|
|
sideMenuContainer.attr('data-forcelighticon', '1')
|
|
<?php endif; ?>
|
|
|
|
<?php if ($_['external-sites-in-top-menu']): ?>
|
|
sideMenuContainer.attr('data-externalsitesintopmenu', '1')
|
|
|
|
var externalSitesInTopMenu = function() {
|
|
var items = $('#appmenu').find('li')
|
|
|
|
items.each(function(i, item) {
|
|
var dataId = item.getAttribute('data-id')
|
|
|
|
if (dataId === null || dataId.indexOf('external_index') === -1) {
|
|
item.style.display = 'none'
|
|
item.classList.remove('hidden')
|
|
} else {
|
|
item.style.display = 'flex'
|
|
item.classList.add('hidden')
|
|
}
|
|
})
|
|
}
|
|
|
|
$(window).resize(externalSitesInTopMenu);
|
|
|
|
setInterval(externalSitesInTopMenu, 500);
|
|
<?php endif; ?>
|
|
|
|
body.on('side-menu.apps', function(e, apps) {
|
|
<?php if ($_['hide-when-no-apps']): ?>
|
|
sideMenu = $('#side-menu')
|
|
|
|
if (apps.length === 0) {
|
|
sideMenu.removeClass('open')
|
|
sideMenuOpener.addClass('hide')
|
|
} else {
|
|
sideMenuOpener.removeClass('hide')
|
|
}
|
|
<?php endif; ?>
|
|
})
|
|
|
|
body.on('side-menu.ready', function() {
|
|
sideMenu = $('#side-menu')
|
|
|
|
var headerMenuOpener = $('#header .side-menu-opener')
|
|
var sideMenuOpener = $('#side-menu .side-menu-opener')
|
|
|
|
<?php if ($_['opener-hover']): ?>
|
|
var sideMenuMouseLeave = function() {
|
|
sideMenu
|
|
.removeClass('open')
|
|
.off('mouseleave', sideMenuMouseLeave)
|
|
}
|
|
|
|
var sideMenuMouseEnter = function() {
|
|
sideMenu.on('mouseleave', sideMenuMouseLeave)
|
|
}
|
|
|
|
var sideMenuOpenerMouseEnter = function() {
|
|
sideMenu
|
|
.addClass('open')
|
|
.on('mouseenter', sideMenuMouseEnter)
|
|
}
|
|
|
|
if (!isTouchDevice) {
|
|
headerMenuOpener.on('mouseenter', sideMenuOpenerMouseEnter)
|
|
|
|
sideMenu.addClass('hide-opener')
|
|
}
|
|
<?php endif; ?>
|
|
|
|
headerMenuOpener.on('click', function() {
|
|
sideMenu.addClass('open');
|
|
})
|
|
|
|
sideMenuOpener.on('click', function() {
|
|
sideMenu.removeClass('open');
|
|
})
|
|
})
|
|
|
|
body.append(sideMenuContainer)
|
|
sideMenuContainer.append(sideMenu)
|
|
|
|
<?php if ($_['opener-position'] === 'before'): ?>
|
|
sideMenuOpener.insertBefore('#nextcloud')
|
|
<?php else: ?>
|
|
sideMenuOpener.insertAfter('#nextcloud')
|
|
<?php endif; ?>
|
|
})();
|