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() {
|
enable() {
|
||||||
this.matchMedia.addListener(this._getBound('checkMatch'));
|
this.matchMedia.addListener(this._getBound('checkMatch'));
|
||||||
this.checkMatch(this.matchMedia);
|
this.checkMatch(this.matchMedia);
|
||||||
|
$('body').on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
|
||||||
}
|
}
|
||||||
|
|
||||||
disable() {
|
disable() {
|
||||||
this.close();
|
this.close();
|
||||||
this.matchMedia.removeListener(this._getBound('checkMatch'));
|
this.matchMedia.removeListener(this._getBound('checkMatch'));
|
||||||
|
$('body').off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
|
||||||
}
|
}
|
||||||
|
|
||||||
attach() {
|
attach() {
|
||||||
@@ -35,21 +37,25 @@ export default class MobileSidebar {
|
|||||||
|
|
||||||
open(event) {
|
open(event) {
|
||||||
event && event.preventDefault();
|
event && event.preventDefault();
|
||||||
|
let overlay = $('#overlay');
|
||||||
|
let sidebar = $('#admin-sidebar');
|
||||||
|
|
||||||
$('#overlay').css('display', 'block');
|
overlay.css('display', 'block');
|
||||||
$('#admin-sidebar').css('display', 'block').animate({
|
sidebar.css('display', 'block').animate({
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}, 200, () => { this.isOpen = true; });
|
}, 200, () => { this.isOpen = true; });
|
||||||
}
|
}
|
||||||
|
|
||||||
close(event) {
|
close(event) {
|
||||||
event && event.preventDefault();
|
event && event.preventDefault();
|
||||||
|
let overlay = $('#overlay');
|
||||||
|
let sidebar = $('#admin-sidebar');
|
||||||
|
|
||||||
$('#overlay').css('display', 'none');
|
overlay.css('display', 'none');
|
||||||
$('#admin-sidebar').animate({
|
sidebar.animate({
|
||||||
opacity: 0
|
opacity: 0
|
||||||
}, 200, () => {
|
}, 200, () => {
|
||||||
$('#admin-sidebar').css('display', 'none');
|
sidebar.css('display', 'none');
|
||||||
this.isOpen = false;
|
this.isOpen = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -59,6 +65,11 @@ export default class MobileSidebar {
|
|||||||
return this[this.isOpen ? 'close' : 'open'](event);
|
return this[this.isOpen ? 'close' : 'open'](event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toggleSidebarState() {
|
||||||
|
event && event.preventDefault();
|
||||||
|
$('body').toggleClass('sidebar-open');
|
||||||
|
}
|
||||||
|
|
||||||
checkMatch(data) {
|
checkMatch(data) {
|
||||||
let sidebar = $('#admin-sidebar');
|
let sidebar = $('#admin-sidebar');
|
||||||
let overlay = $('#overlay');
|
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">
|
<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">
|
<div id="admin-logo">
|
||||||
{% include 'partials/logo.html.twig' %}
|
{% include 'partials/logo.html.twig' %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user