mirror of
https://github.com/moparisthebest/mail
synced 2024-11-29 12:22:22 -05:00
Restructure architecture into angular modules and services
This commit is contained in:
parent
95ad15b0dd
commit
c221372ed4
@ -78,9 +78,6 @@ ctrl.start = function(options, callback) {
|
|||||||
ctrl.buildModules = function() {
|
ctrl.buildModules = function() {
|
||||||
var lawnchairDao, restDao, pubkeyDao, privkeyDao, crypto, emailDao, keychain, pgp, userStorage, pgpbuilder, oauth, appConfigStore, auth;
|
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
|
// init objects and inject dependencies
|
||||||
restDao = new RestDAO();
|
restDao = new RestDAO();
|
||||||
lawnchairDao = new LawnchairDAO();
|
lawnchairDao = new LawnchairDAO();
|
||||||
@ -91,6 +88,8 @@ ctrl.buildModules = function() {
|
|||||||
crypto = new Crypto();
|
crypto = new Crypto();
|
||||||
ctrl._pgp = pgp = new PGP();
|
ctrl._pgp = pgp = new PGP();
|
||||||
ctrl._keychain = keychain = new KeychainDAO(lawnchairDao, pubkeyDao, privkeyDao, crypto, pgp);
|
ctrl._keychain = keychain = new KeychainDAO(lawnchairDao, pubkeyDao, privkeyDao, crypto, pgp);
|
||||||
|
|
||||||
|
// TODO: inject dialog service directly into keychain service
|
||||||
keychain.requestPermissionForKeyUpdate = function(params, callback) {
|
keychain.requestPermissionForKeyUpdate = function(params, callback) {
|
||||||
var message = params.newKey ? str.updatePublicKeyMsgNewKey : str.updatePublicKeyMsgRemovedKey;
|
var message = params.newKey ? str.updatePublicKeyMsgNewKey : str.updatePublicKeyMsgRemovedKey;
|
||||||
message = message.replace('{0}', params.userId);
|
message = message.replace('{0}', params.userId);
|
||||||
|
6
src/js/email/index.js
Normal file
6
src/js/email/index.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('woEmail', []);
|
||||||
|
|
||||||
|
require('./email');
|
||||||
|
require('./account');
|
10
src/js/email/mailreader.js
Normal file
10
src/js/email/mailreader.js
Normal file
@ -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;
|
||||||
|
});
|
4
src/js/email/pgpbuilder.js
Normal file
4
src/js/email/pgpbuilder.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
var ngModule = angular.module('woServices');
|
||||||
|
ngModule.service('pgpbuilder', require('pgpbuilder'));
|
@ -25,8 +25,8 @@ var SMTP_DB_KEY = 'smtp';
|
|||||||
* auth.getCredentials(...); // called to gather all the information to connect to IMAP/SMTP,
|
* auth.getCredentials(...); // called to gather all the information to connect to IMAP/SMTP,
|
||||||
* username, password / oauth token, IMAP/SMTP server host names, ...
|
* username, password / oauth token, IMAP/SMTP server host names, ...
|
||||||
*/
|
*/
|
||||||
function Auth(appConfigStore, oauth, pgp) {
|
function Auth(deviceStorage, oauth, pgp) {
|
||||||
this._appConfigStore = appConfigStore;
|
this._appConfigStore = deviceStorage;
|
||||||
this._oauth = oauth;
|
this._oauth = oauth;
|
||||||
this._pgp = pgp;
|
this._pgp = pgp;
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var ngModule = angular.module('woServices');
|
var ngModule = angular.module('woServices');
|
||||||
ngModule.factory('deviceStorage', ['lawnchairDAO', function(lawnchairDAO) {
|
ngModule.factory('deviceStorage', ['lawnchairDAO',
|
||||||
|
function(lawnchairDAO) {
|
||||||
return new DeviceStorage(lawnchairDAO);
|
return new DeviceStorage(lawnchairDAO);
|
||||||
}]);
|
}
|
||||||
|
]);
|
||||||
module.exports = DeviceStorage;
|
module.exports = DeviceStorage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,8 +15,8 @@ function DeviceStorage(lawnchairDAO) {
|
|||||||
this._localDbDao = lawnchairDAO;
|
this._localDbDao = lawnchairDAO;
|
||||||
}
|
}
|
||||||
|
|
||||||
DeviceStorage.prototype.init = function(emailAddress, callback) {
|
DeviceStorage.prototype.init = function(dbName, callback) {
|
||||||
this._localDbDao.init(emailAddress, callback);
|
this._localDbDao.init(dbName, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -5,3 +5,4 @@ angular.module('woServices', []);
|
|||||||
require('./newsletter');
|
require('./newsletter');
|
||||||
require('./mail-config');
|
require('./mail-config');
|
||||||
require('./account');
|
require('./account');
|
||||||
|
require('.pgpbuilder');
|
12
src/js/util/dialog.js
Normal file
12
src/js/util/dialog.js
Normal file
@ -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() {};
|
6
src/js/util/index.js
Normal file
6
src/js/util/index.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('woUtil', []);
|
||||||
|
|
||||||
|
require('./dialog');
|
||||||
|
require('./update/update-handler');
|
@ -1,5 +1,10 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var ngModule = angular.module('woUtil');
|
||||||
|
ngModule.service('updateHandler', ['deviceStorage', 'deviceStorage', 'auth', UpdateHandler]);
|
||||||
|
module.exports = UpdateHandler;
|
||||||
|
|
||||||
|
|
||||||
var axe = require('axe-logger'),
|
var axe = require('axe-logger'),
|
||||||
cfg = require('../../app-config').config,
|
cfg = require('../../app-config').config,
|
||||||
updateV1 = require('./update-v1'),
|
updateV1 = require('./update-v1'),
|
||||||
@ -11,12 +16,12 @@ var axe = require('axe-logger'),
|
|||||||
/**
|
/**
|
||||||
* Handles database migration
|
* Handles database migration
|
||||||
*/
|
*/
|
||||||
var UpdateHandler = function(appConfigStorage, userStorage, auth) {
|
function UpdateHandler(appConfigStorage, userStorage, auth) {
|
||||||
this._appConfigStorage = appConfigStorage;
|
this._appConfigStorage = appConfigStorage;
|
||||||
this._userStorage = userStorage;
|
this._userStorage = userStorage;
|
||||||
this._updateScripts = [updateV1, updateV2, updateV3, updateV4, updateV5];
|
this._updateScripts = [updateV1, updateV2, updateV3, updateV4, updateV5];
|
||||||
this._auth = auth;
|
this._auth = auth;
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes all the necessary updates
|
* Executes all the necessary updates
|
||||||
@ -126,5 +131,3 @@ UpdateHandler.prototype.checkForUpdate = function(dialog) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = UpdateHandler;
|
|
Loading…
Reference in New Issue
Block a user