From 823dc6f1a75f011d1e6ec6aefaed62ff94806eac Mon Sep 17 00:00:00 2001 From: Kosta Korenkov <7r0ggy@gmail.com> Date: Mon, 3 Aug 2015 14:21:12 +0300 Subject: [PATCH 1/3] Store the whole addon spec in addonManager --- src/js/services/addonManager.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/js/services/addonManager.js b/src/js/services/addonManager.js index 6a3aba52d..0749a37f5 100644 --- a/src/js/services/addonManager.js +++ b/src/js/services/addonManager.js @@ -1,23 +1,25 @@ 'use strict'; -angular.module('copayApp.services').provider('addonManager', function () { - var addonMenuItems = []; - var addonViews = []; +angular.module('copayApp.services').provider('addonManager', function (lodash) { + var addons = []; this.registerAddon = function(addonSpec) { - addonMenuItems.push(addonSpec.menuItem); - addonViews.push(addonSpec.view); + addons.push(addonSpec); }; this.$get = function() { var manager = {}; manager.addonMenuItems = function() { - return addonMenuItems; + return lodash.map(addons, function(addonSpec) { + return addonSpec.menuItem; + }); }; manager.addonViews = function() { - return addonViews; + return lodash.map(addons, function(addonSpec) { + return addonSpec.view; + }); }; return manager; From 56e91029daf182daf7ab4bce3bf4d824573cf08b Mon Sep 17 00:00:00 2001 From: Kosta Korenkov <7r0ggy@gmail.com> Date: Mon, 3 Aug 2015 15:49:07 +0300 Subject: [PATCH 2/3] Make addonManager to be service ..so it would be possible to use other services/factories/values when registering addon --- src/js/services/addonManager.js | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/js/services/addonManager.js b/src/js/services/addonManager.js index 0749a37f5..68d32c61a 100644 --- a/src/js/services/addonManager.js +++ b/src/js/services/addonManager.js @@ -1,28 +1,22 @@ 'use strict'; -angular.module('copayApp.services').provider('addonManager', function (lodash) { +angular.module('copayApp.services').service('addonManager', function (lodash) { var addons = []; - this.registerAddon = function(addonSpec) { + this.registerAddon = function (addonSpec) { addons.push(addonSpec); }; - this.$get = function() { - var manager = {}; + this.addonMenuItems = function () { + return lodash.map(addons, function (addonSpec) { + return addonSpec.menuItem; + }); + }; - manager.addonMenuItems = function() { - return lodash.map(addons, function(addonSpec) { - return addonSpec.menuItem; - }); - }; - - manager.addonViews = function() { - return lodash.map(addons, function(addonSpec) { - return addonSpec.view; - }); - }; - - return manager; - } + this.addonViews = function () { + return lodash.map(addons, function (addonSpec) { + return addonSpec.view; + }); + }; }); From 6e37cb30179ba9ba5590efddaa2873ad94c02e19 Mon Sep 17 00:00:00 2001 From: Kosta Korenkov <7r0ggy@gmail.com> Date: Mon, 3 Aug 2015 15:49:44 +0300 Subject: [PATCH 3/3] Allow addons to customize pending proposals --- src/js/controllers/index.js | 1 + src/js/services/addonManager.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 5989c3ca3..5cd320d16 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -488,6 +488,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r if (tx.creatorId != self.copayerId) { self.pendingTxProposalsCountForUs = self.pendingTxProposalsCountForUs + 1; } + addonManager.formatPendingTxp(tx); }); self.txps = txps; }; diff --git a/src/js/services/addonManager.js b/src/js/services/addonManager.js index 68d32c61a..b50b44e1f 100644 --- a/src/js/services/addonManager.js +++ b/src/js/services/addonManager.js @@ -19,4 +19,12 @@ angular.module('copayApp.services').service('addonManager', function (lodash) { }); }; + this.formatPendingTxp = function (txp) { + lodash.each(addons, function (addon) { + if (addon.formatPendingTxp) { + addon.formatPendingTxp(txp); + } + }); + }; + });