summaryrefslogtreecommitdiffstats
path: root/pyload/web/app/scripts/controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/web/app/scripts/controller.js')
-rw-r--r--pyload/web/app/scripts/controller.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/pyload/web/app/scripts/controller.js b/pyload/web/app/scripts/controller.js
new file mode 100644
index 000000000..60f604e5b
--- /dev/null
+++ b/pyload/web/app/scripts/controller.js
@@ -0,0 +1,72 @@
+define([
+ 'app',
+ 'backbone',
+ 'underscore',
+
+ // Views
+ 'views/headerView',
+ 'views/notificationView',
+ 'views/dashboard/dashboardView',
+ 'views/dashboard/selectionView',
+ 'views/dashboard/filterView',
+ 'views/loginView',
+ 'views/settings/settingsView',
+ 'views/accounts/accountListView'
+], function(
+ App, Backbone, _, HeaderView, NotificationView, DashboardView, SelectionView, FilterView, LoginView, SettingsView, AccountListView) {
+ 'use strict';
+ // TODO some views does not need to be loaded instantly
+
+ return {
+
+ header: function() {
+ if (!App.header.currentView) {
+ App.header.show(new HeaderView());
+ App.header.currentView.init();
+ App.notification.attachView(new NotificationView());
+ }
+ },
+
+ dashboard: function() {
+ this.header();
+
+ App.actionbar.show(new FilterView());
+
+ // TODO: not completely visible after reattaching
+ // now visible every time
+ if (_.isUndefined(App.selection.currentView) || _.isNull(App.selection.currentView))
+ App.selection.attachView(new SelectionView());
+
+ App.content.show(new DashboardView());
+ },
+
+ login: function() {
+ App.content.show(new LoginView());
+ },
+
+ logout: function() {
+ alert('Not implemented');
+ },
+
+ settings: function() {
+ this.header();
+
+ var view = new SettingsView();
+ App.actionbar.show(new view.actionbar());
+ App.content.show(view);
+ },
+
+ accounts: function() {
+ this.header();
+
+ var view = new AccountListView();
+ App.actionbar.show(new view.actionbar());
+ App.content.show(view);
+ },
+
+ admin: function() {
+ alert('Not implemented');
+ }
+ };
+
+});