From 4867e9983f264d0019992978b563e84899eb5db0 Mon Sep 17 00:00:00 2001 From: Gregg Zigler Date: Thu, 23 Jul 2015 15:06:56 -0700 Subject: [PATCH] simplify recipient summary logic so that entire list is expanded with one click --- public/views/includes/output.html | 14 ++++++++------ public/views/includes/transaction.html | 2 +- public/views/modals/txp-details.html | 2 +- src/js/controllers/index.js | 17 ++++++++--------- src/js/controllers/walletHome.js | 26 +++++++------------------- 5 files changed, 25 insertions(+), 36 deletions(-) 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; } };