Allow page ordering

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

No files matched your search

@@ -2,6 +2,7 @@ Page.Manage = new Class({
Extends: PageBase, Extends: PageBase,
order: 20,
name: 'manage', name: 'manage',
title: 'Do stuff to your existing movies!', title: 'Do stuff to your existing movies!',
@@ -2,6 +2,7 @@ Page.Wanted = new Class({
Extends: PageBase, Extends: PageBase,
order: 10,
name: 'wanted', name: 'wanted',
title: 'Gimmy gimmy gimmy!', title: 'Gimmy gimmy gimmy!',
folder_browser: null, folder_browser: null,
@@ -2,6 +2,7 @@ Page.Log = new Class({
Extends: PageBase, Extends: PageBase,
order: 60,
name: 'log', name: 'log',
title: 'Show recent logs.', title: 'Show recent logs.',
has_tab: false, has_tab: false,
@@ -2,6 +2,7 @@ Page.Userscript = new Class({
Extends: PageBase, Extends: PageBase,
order: 80,
name: 'userscript', name: 'userscript',
has_tab: false, has_tab: false,
@@ -2,6 +2,7 @@ Page.Wizard = new Class({
Extends: Page.Settings, Extends: Page.Settings,
order: 70,
name: 'wizard', name: 'wizard',
has_tab: false, has_tab: false,
wizard_only: true, wizard_only: true,
+18 -3
View File
@@ -137,19 +137,34 @@
createPages: function(){ createPages: function(){
var self = this; var self = this;
var pages = [];
Object.each(Page, function(page_class, class_name){ Object.each(Page, function(page_class, class_name){
var pg = new Page[class_name](self, {}); var pg = new Page[class_name](self, {});
self.pages[class_name] = pg; self.pages[class_name] = pg;
self.fireEvent('load'+class_name); pages.include({
'order': pg.order,
$(pg).inject(self.content); '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'); self.fireEvent('load');
}, },
sortPageByOrder: function(a, b){
return (a.order || 100) - (b.order || 100)
},
openPage: function(url) { openPage: function(url) {
var self = this; var self = this;
+6
View File
@@ -6,6 +6,7 @@ var PageBase = new Class({
}, },
order: 1,
has_tab: true, has_tab: true,
name: '', name: '',
@@ -16,6 +17,10 @@ var PageBase = new Class({
// Create main page container // Create main page container
self.el = new Element('div.page.'+self.name); self.el = new Element('div.page.'+self.name);
},
load: function(){
var self = this;
// Create tab for page // Create tab for page
if(self.has_tab){ if(self.has_tab){
@@ -26,6 +31,7 @@ var PageBase = new Class({
'text': self.name.capitalize() 'text': self.name.capitalize()
}); });
} }
}, },
open: function(action, params){ open: function(action, params){
+2 -1
View File
@@ -2,6 +2,7 @@ Page.Settings = new Class({
Extends: PageBase, Extends: PageBase,
order: 50,
name: 'settings', name: 'settings',
title: 'Change settings.', title: 'Change settings.',
wizard_only: false, wizard_only: false,
@@ -112,7 +113,7 @@ Page.Settings = new Class({
}, },
sortByOrder: function(a, b){ sortByOrder: function(a, b){
return (a.order || 100) - (b.order || 100) return (a.order || 100) - (b.order || 100)
}, },
create: function(json){ create: function(json){