Hide the sidebar if it's empty.
When updating the view check to see if the sidebar contains any visible children elements. If not, hide it.
This commit is contained in:
@@ -91,7 +91,7 @@ my.Graph = Backbone.View.extend({
|
||||
// check we have something to plot
|
||||
if (this.state.get('group') && this.state.get('series')) {
|
||||
// faff around with width because flot draws axes *outside* of the element width which means graph can get push down as it hits element next to it
|
||||
this.$graph.width(this.el.width() - 20);
|
||||
this.$graph.width(this.el.width() - 240);
|
||||
var series = this.createSeries();
|
||||
var options = this.getGraphOptions(this.state.attributes.graphType);
|
||||
this.plot = Flotr.draw(this.$graph.get(0), series, options);
|
||||
|
||||
@@ -203,6 +203,7 @@ my.MultiView = Backbone.View.extend({
|
||||
} else {
|
||||
this.updateNav(this.pageViews[0].id);
|
||||
}
|
||||
this._showHideSidebar();
|
||||
|
||||
this.model.bind('query:start', function() {
|
||||
self.notify({loader: true, persist: true});
|
||||
@@ -280,6 +281,20 @@ my.MultiView = Backbone.View.extend({
|
||||
|
||||
},
|
||||
|
||||
// hide the sidebar if empty
|
||||
_showHideSidebar: function() {
|
||||
var $dataSidebar = this.el.find('.data-view-sidebar');
|
||||
var visibleChildren = $dataSidebar.children().filter(function() {
|
||||
return $(this).css("display") != "none";
|
||||
}).length;
|
||||
|
||||
if (visibleChildren > 0) {
|
||||
$dataSidebar.show();
|
||||
} else {
|
||||
$dataSidebar.hide();
|
||||
}
|
||||
},
|
||||
|
||||
updateNav: function(pageName) {
|
||||
this.el.find('.navigation a').removeClass('active');
|
||||
var $el = this.el.find('.navigation a[data-view="' + pageName + '"]');
|
||||
@@ -310,6 +325,7 @@ my.MultiView = Backbone.View.extend({
|
||||
e.preventDefault();
|
||||
var action = $(e.target).attr('data-action');
|
||||
this['$'+action].toggle();
|
||||
this._showHideSidebar();
|
||||
},
|
||||
|
||||
_onSwitchView: function(e) {
|
||||
@@ -317,6 +333,7 @@ my.MultiView = Backbone.View.extend({
|
||||
var viewName = $(e.target).attr('data-view');
|
||||
this.updateNav(viewName);
|
||||
this.state.set({currentView: viewName});
|
||||
this._showHideSidebar();
|
||||
},
|
||||
|
||||
// create a state object for this view and do the job of
|
||||
|
||||
Reference in New Issue
Block a user