diff --git a/public/views/includes/output.html b/public/views/includes/output.html
index 30779518d..2e8355edb 100644
--- a/public/views/includes/output.html
+++ b/public/views/includes/output.html
@@ -1,21 +1,23 @@
-
+
Recipients:
- {{output.summary.length}}
+ {{output.parent.length}}
-
+
To:
- {{output.toAddress}}
+ {{output.toAddress}}
+
+
-
+
Amount:
{{output.amountStr}}
{{output.alternativeAmountStr}}
-
+
Note:
{{output.message}}
diff --git a/public/views/includes/transaction.html b/public/views/includes/transaction.html
index a5438e714..849bd2140 100644
--- a/public/views/includes/transaction.html
+++ b/public/views/includes/transaction.html
@@ -13,7 +13,7 @@
Recipients:
- {{tx.outputs.recipientCount}}
+ {{tx.outputs.length}}
To:
diff --git a/public/views/modals/txp-details.html b/public/views/modals/txp-details.html
index fbe0fcb57..5a1554944 100644
--- a/public/views/modals/txp-details.html
+++ b/public/views/modals/txp-details.html
@@ -15,7 +15,7 @@
Details
-
diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js
index 62b8b7294..7148ab005 100644
--- a/src/js/controllers/index.js
+++ b/src/js/controllers/index.js
@@ -436,21 +436,20 @@ angular.module('copayApp.controllers').controller('indexController', function($r
};
if (tx.outputs) {
- tx.amount = lodash.reduce(tx.outputs, function(total, o) {
+ tx.outputs.details = JSON.parse(JSON.stringify(tx.outputs));
+ tx.amount = lodash.reduce(tx.outputs.details, function(total, o) {
+ o.parent = tx.outputs;
formatAmount(o, o.amount * self.satToUnit);
return total + o.amount;
}, 0);
- var summary = tx.outputs;
- tx.outputs = [{
+ tx.outputs.summary = [{
amount: tx.amount,
message: tx.message,
- summary: summary
+ parent: tx.outputs
}];
- tx.outputs[0].parent = tx.outputs;
- tx.outputs.transform = formatAmount;
- tx.outputs.accumulator = 'amount';
- tx.outputs.recipientCount = summary.length;
- formatAmount(tx.outputs[0], tx.amount * self.satToUnit);
+ formatAmount(tx.outputs.summary[0], tx.amount * self.satToUnit);
+ tx.outputs.isSummarized = true;
+ tx.outputs.list = tx.outputs.summary;
}
formatAmount(tx, tx.amount * self.satToUnit);
diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js
index 9d9c431e7..e3479c451 100644
--- a/src/js/controllers/walletHome.js
+++ b/src/js/controllers/walletHome.js
@@ -255,10 +255,6 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
$scope.loading = true;
$scope.error = null;
$timeout(function() {
- lodash.times(
- txp.outputs ? txp.outputs.recipientCount : 0,
- function(n) { $scope.expand(txp.outputs); }
- );
fc.signTxProposal(txp, function(err, txpsi) {
profileService.lockFC();
self.setOngoingProcess();
@@ -368,21 +364,13 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
self.copyAddress(addr);
};
- $scope.expand = function(list) {
- if (list && list.length && list[list.length - 1].summary) {
- var lastItem = list.pop();
- if (lastItem.summary.length === 0) return;
- var nextItem = lastItem.summary.shift();
- lastItem[list.accumulator] -= nextItem[list.accumulator];
- list.push(nextItem);
- if (lastItem.summary.length) {
- if (lastItem.summary.length === 1) {
- list.push(lastItem.summary.pop());
- } else {
- list.transform(lastItem, lastItem[list.accumulator]);
- list.push(lastItem);
- }
- }
+ $scope.toggleOutputSummary = function(output) {
+ if (output.parent.isSummarized) {
+ output.parent.isSummarized = false;
+ output.parent.list = output.parent.details;
+ } else {
+ output.parent.isSummarized = true;
+ output.parent.list = output.parent.summary;
}
};