From f586ecf7083589cb02bc08d43d0b24190d0417c7 Mon Sep 17 00:00:00 2001 From: Matias Pando Date: Thu, 30 Oct 2014 11:08:34 -0300 Subject: [PATCH 1/4] Added drop down --- js/controllers/settings.js | 53 ++++++++++++++++++++++++++++++-------- views/settings.html | 5 +++- 2 files changed, 46 insertions(+), 12 deletions(-) diff --git a/js/controllers/settings.js b/js/controllers/settings.js index 9671c5598..b629c459c 100644 --- a/js/controllers/settings.js +++ b/js/controllers/settings.js @@ -7,21 +7,42 @@ angular.module('copayApp.controllers').controller('SettingsController', function $scope.defaultLanguage = config.defaultLanguage || 'en'; $scope.insightLivenet = config.network.livenet.url; $scope.insightTestnet = config.network.testnet.url; + $scope.defaultLogLevel = config.logLevel || 'log'; + + + + //$scope.availableLogLevels = logger.levels; + + $scope.availableLogLevels = { + 'debug': 0, + 'info': 1, + 'log': 2, + 'warn': 3, + 'error': 4, + 'fatal': 5 + }; + + console.log($scope.defaultLogLevel); + console.log($scope.availableLogLevels); + + for (var key in $scope.availableLogLevels) { + console.log("Ele " + key + " -- " + $scope.availableLogLevels[key]) + } $scope.availableStorages = [{ - name: 'Insight', - pluginName: 'EncryptedInsightStorage', - }, { - name: 'Localstorage', - pluginName: 'EncryptedLocalStorage', - }, - // { - // name: 'GoogleDrive', - // pluginName: 'GoogleDrive', - // } + name: 'Insight', + pluginName: 'EncryptedInsightStorage', + }, { + name: 'Localstorage', + pluginName: 'EncryptedLocalStorage', + }, + // { + // name: 'GoogleDrive', + // pluginName: 'GoogleDrive', + // } ]; - _.each($scope.availableStorages, function(v){ + _.each($scope.availableStorages, function(v) { if (config.plugins[v.pluginName]) $scope.selectedStorage = v; }); @@ -41,6 +62,13 @@ angular.module('copayApp.controllers').controller('SettingsController', function } } + for (var ii in $scope.availableLogLevels) { + if ($scope.defaultLogLevel === $scope.availableLogLevels[ii]) { + $scope.selectedLogLevel = $scope.availableLogLevels[ii]; + break; + } + } + $scope.save = function() { $scope.insightLivenet = copay.Insight.setCompleteUrl($scope.insightLivenet); @@ -59,11 +87,14 @@ angular.module('copayApp.controllers').controller('SettingsController', function var plugins = {}; plugins[$scope.selectedStorage.pluginName] = true; + logger.setLevel($scope.selectedLogLevel); + localStorage.setItem('config', JSON.stringify({ network: insightSettings, version: copay.version, defaultLanguage: $scope.selectedLanguage.isoCode, plugins: plugins, + logLevel: $scope.selectedLogLevel, })); // Go home reloading the application diff --git a/views/settings.html b/views/settings.html index da62e5ca9..f0c097c16 100644 --- a/views/settings.html +++ b/views/settings.html @@ -35,7 +35,10 @@ Wallets and profiles are stored encrypted using your password as a key. You can store the encrypted data locally, on your platform, or remotely on the Insight Server. More pluggins are welcomed! - + Log level + + From 7cc6e335a7be56d092fe3c5a5669a1fe5e34eb56 Mon Sep 17 00:00:00 2001 From: Matias Pando Date: Thu, 30 Oct 2014 16:53:30 -0300 Subject: [PATCH 2/4] Adding a way to set the log level from the UI --- copay.js | 1 + js/controllers/settings.js | 36 ++++++++++++++++-------------------- js/log.js | 19 +++++++++++++++++-- views/settings.html | 2 +- 4 files changed, 35 insertions(+), 23 deletions(-) diff --git a/copay.js b/copay.js index 511a3dafd..f3d332743 100644 --- a/copay.js +++ b/copay.js @@ -6,6 +6,7 @@ module.exports.PrivateKey = require('./js/models/PrivateKey'); module.exports.HDPath = require('./js/models/HDPath'); module.exports.HDParams = require('./js/models/HDParams'); module.exports.crypto = require('./js/util/crypto'); +module.exports.logger = require('./js/log'); // components diff --git a/js/controllers/settings.js b/js/controllers/settings.js index b629c459c..65322603d 100644 --- a/js/controllers/settings.js +++ b/js/controllers/settings.js @@ -1,32 +1,28 @@ 'use strict'; + angular.module('copayApp.controllers').controller('SettingsController', function($scope, $rootScope, $window, $location, controllerUtils, notification) { controllerUtils.redirIfLogged(); + + + + $scope.title = 'Settings'; $scope.defaultLanguage = config.defaultLanguage || 'en'; $scope.insightLivenet = config.network.livenet.url; $scope.insightTestnet = config.network.testnet.url; $scope.defaultLogLevel = config.logLevel || 'log'; + var logLevels = copay.logger.getLevels(); + + $scope.availableLogLevels = []; - //$scope.availableLogLevels = logger.levels; - - $scope.availableLogLevels = { - 'debug': 0, - 'info': 1, - 'log': 2, - 'warn': 3, - 'error': 4, - 'fatal': 5 - }; - - console.log($scope.defaultLogLevel); - console.log($scope.availableLogLevels); - - for (var key in $scope.availableLogLevels) { - console.log("Ele " + key + " -- " + $scope.availableLogLevels[key]) + for (var key in logLevels) { + $scope.availableLogLevels.push({ + 'name': key + }); } $scope.availableStorages = [{ @@ -63,7 +59,7 @@ angular.module('copayApp.controllers').controller('SettingsController', function } for (var ii in $scope.availableLogLevels) { - if ($scope.defaultLogLevel === $scope.availableLogLevels[ii]) { + if ($scope.defaultLogLevel === $scope.availableLogLevels[ii].name) { $scope.selectedLogLevel = $scope.availableLogLevels[ii]; break; } @@ -84,17 +80,17 @@ angular.module('copayApp.controllers').controller('SettingsController', function }, } + var plugins = {}; plugins[$scope.selectedStorage.pluginName] = true; - - logger.setLevel($scope.selectedLogLevel); + copay.logger.setLevel($scope.selectedLogLevel.name); localStorage.setItem('config', JSON.stringify({ network: insightSettings, version: copay.version, defaultLanguage: $scope.selectedLanguage.isoCode, plugins: plugins, - logLevel: $scope.selectedLogLevel, + logLevel: $scope.selectedLogLevel.name, })); // Go home reloading the application diff --git a/js/log.js b/js/log.js index 4b278eebf..1d7c7c776 100644 --- a/js/log.js +++ b/js/log.js @@ -1,6 +1,7 @@ -var config = require('../config'); +var config = config || require('../config'); var _ = require('lodash'); + /** * @desc * A simple logger that wraps the console.log methods when available. @@ -22,6 +23,10 @@ var Logger = function(name) { this.level = 2; }; +Logger.prototype.getLevels = function() { + return levels; +}; + var levels = { 'debug': 0, @@ -112,5 +117,15 @@ Logger.prototype.setLevel = function(level) { */ var logger = new Logger('copay'); -logger.setLevel(config.logLevel); +var error = new Error(); + +var logLevel = config.logLevel; + +if (typeof localStorage !== "undefined" && localStorage.getItem) { + var localConfig = JSON.parse(localStorage.getItem("config")); + if (localConfig && localConfig.logLevel) + logLevel = localConfig.logLevel; +} + +logger.setLevel(logLevel); module.exports = logger; diff --git a/views/settings.html b/views/settings.html index f0c097c16..436218ba7 100644 --- a/views/settings.html +++ b/views/settings.html @@ -36,7 +36,7 @@ Log level -