main menu now uses backbone to handle navigation. no more reload.

This commit is contained in:
Keivan Beigi
2013-02-26 19:31:35 -08:00
parent 23c1c147f1
commit 82ae91dd6e
5 changed files with 65 additions and 8 deletions

View File

@@ -0,0 +1,56 @@
define(['app'], function () {
NzbDrone.MainMenuView = Backbone.Marionette.ItemView.extend({
ui: {
seriesSearch: '.search input'
},
events: {
'click a': 'onClick'
},
onClick: function (event) {
event.preventDefault();
var target = $(event.target);
var href = undefined;
//look down for <a/>
href = event.target.getAttribute('href');
//if couldn't find it look up
if (!href && target.parent('a') && target.parent('a')[0]) {
var linkElement = target.parent('a')[0];
href = linkElement.getAttribute('href');
this.setActive(linkElement);
} else {
this.setActive(event.target);
}
if (href && href.startsWith('http')) {
window.location.href = href;
} else {
NzbDrone.Router.navigate(href, { trigger: true, replace: true });
}
},
setActive: function (element) {
this.$('a').removeClass('active');
$(element).addClass('active');
},
initialize: function () {
console.log('menue');
this.setElement($('#main-menu-region'));
}
});
return new NzbDrone.MainMenuView();
});