diff --git a/js/app.js b/js/app.js
index ae8d2cda3..f93bf2ac1 100644
--- a/js/app.js
+++ b/js/app.js
@@ -2,16 +2,17 @@
var copay = require('copay');
var _ = require('lodash');
-var config = defaultConfig;
var LS = require('../js/plugins/LocalStorage');
var ls = new LS();
-var localConfig;
-var defaults = JSON.parse(JSON.stringify(defaultConfig));
-
+// TODO move this to configService !
+var config = copay.defaultConfig;
ls.getItem('config', function(err, data) {
+ var localConfig;
+ try {
localConfig = JSON.parse(data);
+ } catch(e) {};
if (localConfig) {
var cmv = copay.version.split('.')[1];
var lmv = localConfig.version ? localConfig.version.split('.')[1] : '-1';
@@ -40,6 +41,7 @@ var modules = [
var copayApp = window.copayApp = angular.module('copayApp', modules);
+var defaults = JSON.parse(JSON.stringify(copay.defaultConfig));
copayApp.value('defaults', defaults);
copayApp.config(function($sceDelegateProvider) {
diff --git a/js/controllers/createProfile.js b/js/controllers/createProfile.js
index 6e4981f3d..8d35c8d48 100644
--- a/js/controllers/createProfile.js
+++ b/js/controllers/createProfile.js
@@ -1,6 +1,6 @@
'use strict';
-angular.module('copayApp.controllers').controller('CreateProfileController', function($scope, $rootScope, $location, $timeout, notification, pluginManager, identityService, pinService, isMobile) {
+angular.module('copayApp.controllers').controller('CreateProfileController', function($scope, $rootScope, $location, $timeout, notification, pluginManager, identityService, pinService, isMobile, configService) {
var _credentials, _firstpin;
@@ -50,7 +50,6 @@ angular.module('copayApp.controllers').controller('CreateProfileController', fun
});
};
-
$scope.selectStorage = function (storage) {
$scope.useLocalstorage = storage == 'local';
$timeout(function() {
@@ -58,16 +57,10 @@ angular.module('copayApp.controllers').controller('CreateProfileController', fun
}, 1);
};
- $scope.setStorage = function(useLocalstorage) {
- console.log('[createProfile.js.53:useLocalstorage:]', useLocalstorage); //TODO
+ $scope.goToEmail = function() {
console.log('[createProfile.js.53:useLocalstorage:]', $scope.useLocalstorage); //TODO
- //settingsService.save({...})
$scope.createStep = 'email';
- $scope.useEmail = !useLocalstorage;
- $scope.useLocalstorage = useLocalstorage;
- $timeout(function() {
- $scope.$digest();
- }, 1);
+ $scope.useEmail = !$scope.useLocalstorage;
};
$scope.setEmailOrUsername = function(form) {
@@ -97,14 +90,12 @@ angular.module('copayApp.controllers').controller('CreateProfileController', fun
});
};
- $scope.createProfile = function(form) {
- $rootScope.hideNavigation = false;
- if (form && form.$invalid) {
- $scope.error = 'Please enter the required fields';
- return;
- }
- $scope.loading = true;
- identityService.create( $scope.userOrEmail, form.password.$modelValue, function(err) {
+
+ $scope._doCreateProfile = function(emailOrUsername, password) {
+ preconditions.checkArgument(_.isString(emailOrUsername));
+ preconditions.checkArgument(_.isString(password));
+
+ identityService.create(emailOrUsername, password, function(err) {
$scope.loading = false;
if (err) {
@@ -141,5 +132,32 @@ angular.module('copayApp.controllers').controller('CreateProfileController', fun
}
}
});
- }
+ };
+
+
+ $scope.createProfile = function(form) {
+ $rootScope.hideNavigation = false;
+ if (form && form.$invalid) {
+ $scope.error = 'Please enter the required fields';
+ return;
+ }
+ $scope.loading = true;
+
+ var plugins = config.plugins;
+
+ plugins.EncryptedLocalStorage = false;
+ plugins.EncryptedInsightStorage = false;
+
+ var pluginName = $scope.useLocalstorage ? 'EncryptedLocalStorage' : 'EncryptedInsightStorage';
+
+ plugins[pluginName] = true;
+ console.log('[createProfile.js.102:plugins:]', plugins); //TODO
+
+ configService.set({
+ plugins: plugins
+ }, function() {
+ $scope._doCreateProfile($scope.userOrEmail, form.password.$modelValue);
+ });
+ };
+
});
diff --git a/js/controllers/homeWallet.js b/js/controllers/homeWallet.js
index 400cc5329..55c4a00bb 100644
--- a/js/controllers/homeWallet.js
+++ b/js/controllers/homeWallet.js
@@ -64,8 +64,10 @@ angular.module('copayApp.controllers').controller('HomeWalletController', functi
$scope.$on("$destroy", function() {
var w = $rootScope.wallet;
- removeWatch();
- w.removeListener('txProposalEvent', _updateTxs);
+ if (w) {
+ removeWatch();
+ w.removeListener('txProposalEvent', _updateTxs);
+ };
});
$scope.setAlternativeAmount = function(w, tx, cb) {
diff --git a/js/services/configService.js b/js/services/configService.js
index 2d0fef102..4278e5215 100644
--- a/js/services/configService.js
+++ b/js/services/configService.js
@@ -4,20 +4,31 @@ angular.module('copayApp.services').factory('configService', function(localstora
var root = {};
root.set = function(opts, cb) {
- copay.logger.setLevel(opts.logLevel);
- localstorageService.getItem('config', function(err, oldOps) {
- _.defaults(opts, JSON.parse(oldOps));
+ if (opts.logLevel)
+ copay.logger.setLevel(opts.logLevel);
+
+ localstorageService.getItem('config', function(err, oldOpsStr) {
+
+ var oldOpts = {};
+
+ try {
+ oldOpts = JSON.parse(oldOpsStr);
+ } catch (e) {};
+
+ var newOpts = {};
+ _.extend(newOpts, copay.defaultConfig, oldOpts, opts);
// TODO remove this gloval variable.
- config = opts;
- localstorageService.setItem('config', JSON.stringify(opts), cb);
+ config = newOpts;
+
+ localstorageService.setItem('config', JSON.stringify(newOpts), cb);
});
};
root.reset = function(cb) {
config = copay.defaultConfig;
- localstorageService.removeItem('config',cb);
+ localstorageService.removeItem('config', cb);
};
return root;
diff --git a/views/createProfile.html b/views/createProfile.html
index 3b7024348..82bdd0cde 100644
--- a/views/createProfile.html
+++ b/views/createProfile.html
@@ -59,7 +59,6 @@
Email address confirmation needed
-
In this Device
@@ -82,17 +81,11 @@
-