diff --git a/src/js/app-controller.js b/src/js/app-controller.js index f358ffc..77b3763 100644 --- a/src/js/app-controller.js +++ b/src/js/app-controller.js @@ -78,9 +78,6 @@ ctrl.start = function(options, callback) { ctrl.buildModules = function() { var lawnchairDao, restDao, pubkeyDao, privkeyDao, crypto, emailDao, keychain, pgp, userStorage, pgpbuilder, oauth, appConfigStore, auth; - // start the mailreader's worker thread - mailreader.startWorker(config.workerPath + '/mailreader-parser-worker.min.js'); - // init objects and inject dependencies restDao = new RestDAO(); lawnchairDao = new LawnchairDAO(); @@ -91,6 +88,8 @@ ctrl.buildModules = function() { crypto = new Crypto(); ctrl._pgp = pgp = new PGP(); ctrl._keychain = keychain = new KeychainDAO(lawnchairDao, pubkeyDao, privkeyDao, crypto, pgp); + + // TODO: inject dialog service directly into keychain service keychain.requestPermissionForKeyUpdate = function(params, callback) { var message = params.newKey ? str.updatePublicKeyMsgNewKey : str.updatePublicKeyMsgRemovedKey; message = message.replace('{0}', params.userId); diff --git a/src/js/service/account.js b/src/js/email/account.js similarity index 100% rename from src/js/service/account.js rename to src/js/email/account.js diff --git a/src/js/service/email.js b/src/js/email/email.js similarity index 100% rename from src/js/service/email.js rename to src/js/email/email.js diff --git a/src/js/email/index.js b/src/js/email/index.js new file mode 100644 index 0000000..e8c6d5a --- /dev/null +++ b/src/js/email/index.js @@ -0,0 +1,6 @@ +'use strict'; + +angular.module('woEmail', []); + +require('./email'); +require('./account'); \ No newline at end of file diff --git a/src/js/email/mailreader.js b/src/js/email/mailreader.js new file mode 100644 index 0000000..c37a537 --- /dev/null +++ b/src/js/email/mailreader.js @@ -0,0 +1,10 @@ +'use strict'; + +var mailreader = require('mailreader'); +var config = require('../app-config').config; +mailreader.startWorker(config.workerPath + '/mailreader-parser-worker.min.js'); + +var ngModule = angular.module('woServices'); +ngModule.factory('mailreader', function() { + return mailreader; +}); \ No newline at end of file diff --git a/src/js/service/outbox.js b/src/js/email/outbox.js similarity index 100% rename from src/js/service/outbox.js rename to src/js/email/outbox.js diff --git a/src/js/email/pgpbuilder.js b/src/js/email/pgpbuilder.js new file mode 100644 index 0000000..3245e32 --- /dev/null +++ b/src/js/email/pgpbuilder.js @@ -0,0 +1,4 @@ +'use strict'; + +var ngModule = angular.module('woServices'); +ngModule.service('pgpbuilder', require('pgpbuilder')); \ No newline at end of file diff --git a/src/js/service/auth.js b/src/js/service/auth.js index f5e1b23..6cb1863 100644 --- a/src/js/service/auth.js +++ b/src/js/service/auth.js @@ -25,8 +25,8 @@ var SMTP_DB_KEY = 'smtp'; * auth.getCredentials(...); // called to gather all the information to connect to IMAP/SMTP, * username, password / oauth token, IMAP/SMTP server host names, ... */ -function Auth(appConfigStore, oauth, pgp) { - this._appConfigStore = appConfigStore; +function Auth(deviceStorage, oauth, pgp) { + this._appConfigStore = deviceStorage; this._oauth = oauth; this._pgp = pgp; } diff --git a/src/js/service/devicestorage.js b/src/js/service/devicestorage.js index 262cf24..b457e15 100644 --- a/src/js/service/devicestorage.js +++ b/src/js/service/devicestorage.js @@ -1,9 +1,11 @@ 'use strict'; var ngModule = angular.module('woServices'); -ngModule.factory('deviceStorage', ['lawnchairDAO', function(lawnchairDAO) { - return new DeviceStorage(lawnchairDAO); -}]); +ngModule.factory('deviceStorage', ['lawnchairDAO', + function(lawnchairDAO) { + return new DeviceStorage(lawnchairDAO); + } +]); module.exports = DeviceStorage; /** @@ -13,8 +15,8 @@ function DeviceStorage(lawnchairDAO) { this._localDbDao = lawnchairDAO; } -DeviceStorage.prototype.init = function(emailAddress, callback) { - this._localDbDao.init(emailAddress, callback); +DeviceStorage.prototype.init = function(dbName, callback) { + this._localDbDao.init(dbName, callback); }; /** diff --git a/src/js/service/index.js b/src/js/service/index.js index eaf6a3c..bbe35ab 100644 --- a/src/js/service/index.js +++ b/src/js/service/index.js @@ -4,4 +4,5 @@ angular.module('woServices', []); require('./newsletter'); require('./mail-config'); -require('./account'); \ No newline at end of file +require('./account'); +require('.pgpbuilder'); \ No newline at end of file diff --git a/src/js/service/connection-doctor.js b/src/js/util/connection-doctor.js similarity index 100% rename from src/js/service/connection-doctor.js rename to src/js/util/connection-doctor.js diff --git a/src/js/util/dialog.js b/src/js/util/dialog.js new file mode 100644 index 0000000..41a7692 --- /dev/null +++ b/src/js/util/dialog.js @@ -0,0 +1,12 @@ +'use strict'; + +var ngModule = angular.module('woUtil'); +ngModule.service('dialog', Dialog); + +function Dialog() {} + +Dialog.prototype.error = function() {}; + +Dialog.prototype.info = function() {}; + +Dialog.prototype.confirm = function() {}; \ No newline at end of file diff --git a/src/js/util/index.js b/src/js/util/index.js new file mode 100644 index 0000000..8685385 --- /dev/null +++ b/src/js/util/index.js @@ -0,0 +1,6 @@ +'use strict'; + +angular.module('woUtil', []); + +require('./dialog'); +require('./update/update-handler'); \ No newline at end of file diff --git a/src/js/util/update/update-handler.js b/src/js/util/update/update-handler.js index 0928cbf..d74e9e0 100644 --- a/src/js/util/update/update-handler.js +++ b/src/js/util/update/update-handler.js @@ -1,5 +1,10 @@ 'use strict'; +var ngModule = angular.module('woUtil'); +ngModule.service('updateHandler', ['deviceStorage', 'deviceStorage', 'auth', UpdateHandler]); +module.exports = UpdateHandler; + + var axe = require('axe-logger'), cfg = require('../../app-config').config, updateV1 = require('./update-v1'), @@ -11,12 +16,12 @@ var axe = require('axe-logger'), /** * Handles database migration */ -var UpdateHandler = function(appConfigStorage, userStorage, auth) { +function UpdateHandler(appConfigStorage, userStorage, auth) { this._appConfigStorage = appConfigStorage; this._userStorage = userStorage; this._updateScripts = [updateV1, updateV2, updateV3, updateV4, updateV5]; this._auth = auth; -}; +} /** * Executes all the necessary updates @@ -125,6 +130,4 @@ UpdateHandler.prototype.checkForUpdate = function(dialog) { } }); } -}; - -module.exports = UpdateHandler; \ No newline at end of file +}; \ No newline at end of file