Allow page ordering

This commit is contained in:
Ruud
2014-05-05 22:01:11 +02:00
parent 8e35c02763
commit 07eb1f7f4c
8 changed files with 31 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ Page.Manage = new Class({
Extends: PageBase,
order: 20,
name: 'manage',
title: 'Do stuff to your existing movies!',

View File

@@ -2,6 +2,7 @@ Page.Wanted = new Class({
Extends: PageBase,
order: 10,
name: 'wanted',
title: 'Gimmy gimmy gimmy!',
folder_browser: null,

View File

@@ -2,6 +2,7 @@ Page.Log = new Class({
Extends: PageBase,
order: 60,
name: 'log',
title: 'Show recent logs.',
has_tab: false,

View File

@@ -2,6 +2,7 @@ Page.Userscript = new Class({
Extends: PageBase,
order: 80,
name: 'userscript',
has_tab: false,

View File

@@ -2,6 +2,7 @@ Page.Wizard = new Class({
Extends: Page.Settings,
order: 70,
name: 'wizard',
has_tab: false,
wizard_only: true,

View File

@@ -137,19 +137,34 @@
createPages: function(){
var self = this;
var pages = [];
Object.each(Page, function(page_class, class_name){
var pg = new Page[class_name](self, {});
self.pages[class_name] = pg;
self.fireEvent('load'+class_name);
$(pg).inject(self.content);
pages.include({
'order': pg.order,
'name': class_name,
'class': pg
});
});
pages.stableSort(self.sortPageByOrder).each(function(page){
page['class'].load();
self.fireEvent('load'+page.name);
$(page['class']).inject(self.content);
});
delete pages;
self.fireEvent('load');
},
sortPageByOrder: function(a, b){
return (a.order || 100) - (b.order || 100)
},
openPage: function(url) {
var self = this;

View File

@@ -6,6 +6,7 @@ var PageBase = new Class({
},
order: 1,
has_tab: true,
name: '',
@@ -16,6 +17,10 @@ var PageBase = new Class({
// Create main page container
self.el = new Element('div.page.'+self.name);
},
load: function(){
var self = this;
// Create tab for page
if(self.has_tab){
@@ -26,6 +31,7 @@ var PageBase = new Class({
'text': self.name.capitalize()
});
}
},
open: function(action, params){

View File

@@ -2,6 +2,7 @@ Page.Settings = new Class({
Extends: PageBase,
order: 50,
name: 'settings',
title: 'Change settings.',
wizard_only: false,
@@ -112,7 +113,7 @@ Page.Settings = new Class({
},
sortByOrder: function(a, b){
return (a.order || 100) - (b.order || 100)
return (a.order || 100) - (b.order || 100)
},
create: function(json){