collapsable menu w/saving in admin

This commit is contained in:
Nabeel Shahzad
2017-08-21 13:06:10 -05:00
parent 0a3ea07549
commit 27a22ab39c
9 changed files with 167 additions and 40 deletions

View File

@@ -119,9 +119,92 @@
<script src="/js/admin/admin.js"></script>
<script>
$(document).ready(function () {
$(".select2").select2();
var getStorage = function(key) {
var st = window.localStorage.getItem(key);
console.log('storage: ', key, st);
if(_.isNil(st)) {
return {
"menu": [],
};
}
return JSON.parse(st);
};
var saveStorage = function(key, obj) {
console.log('save: ', key, obj);
window.localStorage.setItem(key, JSON.stringify(obj));
};
var addItem = function(obj, item) {
if (_.isNil(obj)) {
obj = [];
}
var index = _.indexOf(obj, item);
if(index === -1) {
obj.push(item);
}
return obj;
};
var removeItem = function (obj, item) {
if (_.isNil(obj)) {
obj = [];
}
var index = _.indexOf(obj, item);
if (index !== -1) {
console.log("removing", item);
obj.splice(index, 1);
}
return obj;
};
$(document).ready(function () {
$(".select2").select2();
var storage = getStorage("phpvms.admin");
// see what menu items should be open
for(var idx = 0; idx < storage.menu.length; idx++) {
var id = storage.menu[idx];
var elem = $(".collapse#" + id);
elem.addClass("in").trigger("show.bs.collapse");
var caret = $("a." + id + " b");
caret.addClass("pe-7s-angle-down");
caret.removeClass("pe-7s-angle-up");
}
$(".collapse").on("hide.bs.collapse", function () {
console.log('hiding');
var id = $(this).attr('id');
var elem = $("a." + id + " b");
elem.removeClass("pe-7s-angle-down");
elem.addClass("pe-7s-angle-up");
removeItem(storage.menu, id);
saveStorage("phpvms.admin", storage);
});
$(".collapse").on("show.bs.collapse", function () {
console.log('showing');
var id = $(this).attr('id');
var caret = $("a." + id + " b");
caret.addClass("pe-7s-angle-down");
caret.removeClass("pe-7s-angle-up");
addItem(storage.menu, id);
saveStorage("phpvms.admin", storage);
});
});
</script>
@yield('scripts')
</html>

View File

@@ -1,25 +1,53 @@
<li><h5>operations</h5></li>
<li>
<a href="{!! url('/admin/dashboard') !!}"><i class="pe-7s-display1"></i>dashboard</a>
</li>
<li><a href="{!! url('/admin/pireps') !!}"><i class="pe-7s-cloud-upload"></i>pireps
<span data-toggle="tooltip" title="3 New" class="badge bg-light-blue pull-right">3</span>
<li>
<a data-toggle="collapse" href="#operations_menu" class="menu operations_menu" aria-expanded="true">
<h5>operations&nbsp;<b class="pe-7s-angle-up"></b></h5>
</a>
<div class="collapse" id="operations_menu" aria-expanded="true">
<ul class="nav">
<li><a href="{!! url('/admin/pireps') !!}"><i class="pe-7s-cloud-upload"></i>pireps
<span data-toggle="tooltip" title="3 New"
class="badge bg-light-blue pull-right">3</span>
</a>
</li>
<li><a href="{!! url('/admin/flights') !!}"><i class="pe-7s-vector"></i>flights</a></li>
<li><a href="{!! url('/admin/aircraft') !!}"><i class="pe-7s-plane"></i>fleet</a></li>
<li><a href="{!! url('/admin/fares') !!}"><i class="pe-7s-graph2"></i>fares</a></li>
</ul>
</div>
</li>
<li><a href="{!! url('/admin/flights') !!}"><i class="pe-7s-vector"></i>flights</a></li>
<li><a href="{!! url('/admin/aircraft') !!}"><i class="pe-7s-plane"></i>fleet</a></li>
<li><a href="{!! url('/admin/fares') !!}"><i class="pe-7s-graph2"></i>fares</a></li>
<li style="padding-bottom: 18px;"></li>
<li><h5>config</h5></li>
<li><a href="{!! url('/admin/airlines') !!}"><i class="pe-7s-paper-plane"></i>airlines</a></li>
<li><a href="{!! url('/admin/airports') !!}"><i class="pe-7s-map-marker"></i>airports</a></li>
<li><a href="{!! url('/admin/users') !!}"><i class="pe-7s-users"></i>users</a></li>
<li><a href="{!! url('/admin/ranks') !!}"><i class="pe-7s-id"></i>ranks</a></li>
<li>
<a data-toggle="collapse" href="#config_menu" class="menu config_menu" aria-expanded="true">
<h5>config&nbsp;<b class="pe-7s-angle-up"></b></h5>
</a>
<li style="padding-bottom: 18px;"></li>
<li><h5>addons</h5></li>
@stack('admin.addons.links')
<div class="collapse" id="config_menu" aria-expanded="true">
<ul class="nav">
<li><a href="{!! url('/admin/airlines') !!}"><i
class="pe-7s-paper-plane"></i>airlines</a></li>
<li><a href="{!! url('/admin/airports') !!}"><i
class="pe-7s-map-marker"></i>airports</a></li>
<li><a href="{!! url('/admin/users') !!}"><i class="pe-7s-users"></i>users</a></li>
<li><a href="{!! url('/admin/ranks') !!}"><i class="pe-7s-id"></i>ranks</a></li>
</ul>
</div>
</li>
<li>
<a data-toggle="collapse" href="#addons_menu" class="menu addons_menu" aria-expanded="true">
<h5>addons&nbsp;<b class="pe-7s-angle-up"></b></h5>
</a>
<div class="collapse" id="addons_menu" aria-expanded="true">
<ul class="nav">
@stack('admin.addons.links')
</ul>
</div>
</li>

View File

@@ -1,4 +1,4 @@
<div class="sidebar" data-background-color="black" data-active-color="info">
<div class="sidebar" data-background-color="white" data-active-color="info">
<!--
Tip 1: you can change the color of the sidebar's background using: data-background-color="white | black"