mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-18 11:10:56 +01:00
Implemented toggler logic for expanding / contracting sidebar
Any element with `data-sidebar-toggle` will trigger the expansion / contraction of the sidebar.
This commit is contained in:
@@ -18,11 +18,13 @@ export default class MobileSidebar {
|
||||
enable() {
|
||||
this.matchMedia.addListener(this._getBound('checkMatch'));
|
||||
this.checkMatch(this.matchMedia);
|
||||
$('body').on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
|
||||
}
|
||||
|
||||
disable() {
|
||||
this.close();
|
||||
this.matchMedia.removeListener(this._getBound('checkMatch'));
|
||||
$('body').off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
|
||||
}
|
||||
|
||||
attach() {
|
||||
@@ -35,21 +37,25 @@ export default class MobileSidebar {
|
||||
|
||||
open(event) {
|
||||
event && event.preventDefault();
|
||||
let overlay = $('#overlay');
|
||||
let sidebar = $('#admin-sidebar');
|
||||
|
||||
$('#overlay').css('display', 'block');
|
||||
$('#admin-sidebar').css('display', 'block').animate({
|
||||
overlay.css('display', 'block');
|
||||
sidebar.css('display', 'block').animate({
|
||||
opacity: 1
|
||||
}, 200, () => { this.isOpen = true; });
|
||||
}
|
||||
|
||||
close(event) {
|
||||
event && event.preventDefault();
|
||||
let overlay = $('#overlay');
|
||||
let sidebar = $('#admin-sidebar');
|
||||
|
||||
$('#overlay').css('display', 'none');
|
||||
$('#admin-sidebar').animate({
|
||||
overlay.css('display', 'none');
|
||||
sidebar.animate({
|
||||
opacity: 0
|
||||
}, 200, () => {
|
||||
$('#admin-sidebar').css('display', 'none');
|
||||
sidebar.css('display', 'none');
|
||||
this.isOpen = false;
|
||||
});
|
||||
}
|
||||
@@ -59,6 +65,11 @@ export default class MobileSidebar {
|
||||
return this[this.isOpen ? 'close' : 'open'](event);
|
||||
}
|
||||
|
||||
toggleSidebarState() {
|
||||
event && event.preventDefault();
|
||||
$('body').toggleClass('sidebar-open');
|
||||
}
|
||||
|
||||
checkMatch(data) {
|
||||
let sidebar = $('#admin-sidebar');
|
||||
let overlay = $('#overlay');
|
||||
|
||||
3
themes/grav/css-compiled/nucleus.css
vendored
3
themes/grav/css-compiled/nucleus.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
16
themes/grav/js/admin.min.js
vendored
16
themes/grav/js/admin.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
<nav id="admin-sidebar">
|
||||
<div id="open-handle"><i class="fa fa-angle-double-right"></i></div>
|
||||
<div id="open-handle" data-sidebar-toggle><i class="fa fa-angle-double-right"></i></div>
|
||||
<div id="admin-logo">
|
||||
{% include 'partials/logo.html.twig' %}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user