diff --git a/src/index.html b/src/index.html index 549412a..1b1602f 100755 --- a/src/index.html +++ b/src/index.html @@ -8,7 +8,6 @@ - diff --git a/src/js/app-controller.js b/src/js/app-controller.js index f2c27d7..8a4a3c1 100644 --- a/src/js/app-controller.js +++ b/src/js/app-controller.js @@ -21,6 +21,35 @@ app.Controller = function() { callback(); }; + /** + * Start the application by loading the view templates + */ + this.start = function(callback) { + // the views to load + var views = [ + 'login', + 'compose', + 'folderlist', + 'messagelist', + 'messagelistitem', + 'read' + ]; + + // are we running in native app or in browser? + if (document.URL.indexOf("http") === 0 || document.URL.indexOf("chrome") === 0) { + console.log('Assuming Browser environment...'); + onDeviceReady(); + } else { + console.log('Assuming Cordova environment...'); + document.addEventListener("deviceready", onDeviceReady, false); + } + + function onDeviceReady() { + console.log('Starting app.'); + app.util.tpl.loadTemplates(views, callback); + } + }; + /** * Executes a number of commands */ diff --git a/src/js/mobile-loader.js b/src/js/mobile-loader.js new file mode 100644 index 0000000..c4ed1a9 --- /dev/null +++ b/src/js/mobile-loader.js @@ -0,0 +1,31 @@ +(function() { + 'use strict'; + + var controller, + router; + + /** + * Load templates and start the application + */ + $(document).ready(function() { + controller = new app.Controller(); + controller.init(function() { + controller.start(startApp); + }); + }); + + function startApp() { + // start backone.js router + router = new app.Router(); + Backbone.history.start(); + } + + /** + * Helper method shim to ease message posting between sandbox and main window + */ + app.util.postMessage = function(cmd, args, callback) { + // handle the workload in the main window + controller.execute(cmd, args, callback); + }; + +}()); \ No newline at end of file diff --git a/src/js/sandbox-loader.js b/src/js/sandbox-loader.js index 87bea9f..1ea2e91 100644 --- a/src/js/sandbox-loader.js +++ b/src/js/sandbox-loader.js @@ -20,6 +20,7 @@ mainWindow = e.source; mainWindowOrigin = e.origin; + // start backone.js router router = new app.Router(); Backbone.history.start(); } diff --git a/src/js/window-loader.js b/src/js/window-loader.js index fb2c39d..c01bb78 100644 --- a/src/js/window-loader.js +++ b/src/js/window-loader.js @@ -1,41 +1,21 @@ (function() { 'use strict'; - var views = [ - 'login', - 'compose', - 'folderlist', - 'messagelist', - 'messagelistitem', - 'read' - ]; + var controller; /** * Load templates and start the application */ $(document).ready(function() { - // are we running in native app or in browser? - var isBrowser = false; - if (document.URL.indexOf("http") === 0 || document.URL.indexOf("chrome") === 0) { - isBrowser = true; - } - - if (!isBrowser) { - document.addEventListener("deviceready", onDeviceReady, false); - } else { - onDeviceReady(); - } - - function onDeviceReady() { - console.log('Starting in Browser: ' + isBrowser); - app.util.tpl.loadTemplates(views, startApp); - } + controller = new app.Controller(); + controller.init(function() { + controller.start(startApp); + }); }); function startApp() { // sandboxed ui in iframe var sandbox = document.getElementById('sandboxFrame').contentWindow; - var controller = new app.Controller(); // set global listener for events from sandbox window.onmessage = function(e) { @@ -52,14 +32,11 @@ }); }; - // init controller - controller.init(function() { - // init sandbox ui - sandbox.postMessage({ - cmd: 'init', - args: app.util.tpl.templates - }, '*'); - }); + // init sandbox ui + sandbox.postMessage({ + cmd: 'init', + args: app.util.tpl.templates + }, '*'); } }()); \ No newline at end of file diff --git a/src/mobile.html b/src/mobile.html new file mode 100644 index 0000000..bb80364 --- /dev/null +++ b/src/mobile.html @@ -0,0 +1,58 @@ + + + + + Mail + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/sandbox.html b/src/sandbox.html index 149f2d5..9153873 100644 --- a/src/sandbox.html +++ b/src/sandbox.html @@ -13,9 +13,6 @@ - - -