Load subpages

This commit is contained in:
Ruud
2014-05-13 22:37:00 +02:00
parent 43b6e3ac07
commit d80fe99609
5 changed files with 49 additions and 10 deletions
@@ -1,4 +1,4 @@
Page.Movies.Manage = new Class({
var MoviesManage = new Class({
Extends: PageBase,
@@ -2,6 +2,11 @@ Page.Movies = new Class({
Extends: PageBase,
subPages: []
name: 'movies',
sub_pages: ['Wanted', 'Manage'],
})
indexAction: function(){
p('test');
}
});
@@ -1,4 +1,4 @@
Page.Movies.Wanted = new Class({
var MoviesWanted = new Class({
Extends: PageBase,
+6 -6
View File
@@ -1,4 +1,4 @@
var CouchPotato = new Class({
var CouchPotato = new Class({
Implements: [Events, Options],
@@ -152,7 +152,7 @@ var CouchPotato = new Class({
pages.stableSort(self.sortPageByOrder).each(function(page){
page['class'].load();
self.fireEvent('load'+page.name);
$(page['class']).inject(self.content);
$(page['class']).inject(self.pages);
});
delete pages;
@@ -169,11 +169,11 @@ var CouchPotato = new Class({
var self = this;
self.route.parse();
var page_name = self.route.getPage().capitalize();
var action = self.route.getAction();
var params = self.route.getParams();
var page_name = self.route.getPage().capitalize(),
action = self.route.getAction(),
params = self.route.getParams(),
current_url = self.route.getCurrentUrl();
var current_url = self.route.getCurrentUrl();
if(current_url == self.current_url)
return;
+34
View File
@@ -10,6 +10,8 @@ var PageBase = new Class({
has_tab: true,
name: '',
sub_pages: null,
initialize: function(options) {
var self = this;
@@ -32,6 +34,38 @@ var PageBase = new Class({
});
}
if(self.sub_pages){
self.loadSubPages();
}
},
loadSubPages: function(){
var self = this;
var sub_pages = self.sub_pages;
self.pages = new Element('div.pages').inject(self.el);
self.sub_pages = [];
sub_pages.each(function(class_name){
var pg = new window[self.name.capitalize()+class_name](self, {});
self.sub_pages[class_name] = pg;
self.sub_pages.include({
'order': pg.order,
'name': class_name,
'class': pg
});
});
self.sub_pages.stableSort(self.sortPageByOrder).each(function(page){
page['class'].load();
self.fireEvent('load'+page.name);
$(page['class']).inject(self.pages);
});
},
open: function(action, params){