OSDN Git Service

reduced the summery to 5 items
authorZhiting Lin <zlin035@uottawa.ca>
Thu, 23 Aug 2018 01:56:22 +0000 (09:56 +0800)
committerZhiting Lin <zlin035@uottawa.ca>
Thu, 23 Aug 2018 01:56:22 +0000 (09:56 +0800)
src/features/transactions/components/Show.jsx
src/utility/buildInOutDisplay.js

index cf17ba4..003cf76 100644 (file)
@@ -48,6 +48,45 @@ class Show extends BaseShow {
 
       const status = (!item.statusFail)? (lang === 'zh' ? '成功' : 'Succeed'): (lang === 'zh' ? '失败' : 'Failed')
 
+      const getInout = (inout) =>{
+        let resultoutput = {}
+
+        resultoutput.id = inout.id
+
+        if(inout.address){
+          resultoutput.address = inout.address
+        }else if(inout.controlProgram){
+          resultoutput.controlProgram = inout.controlProgram
+        }
+
+        resultoutput.amount = inout.amount
+
+        if(inout.accountAlias ||inout.accountId){
+          resultoutput.account = inout.accountAlias ||inout.accountId
+        }
+
+        resultoutput.accountId = inout.accountId
+        resultoutput.asset = inout.assetAlias || inout.assetId
+        resultoutput.assetId =  inout.assetId
+        resultoutput.assetDefinition =  inout.assetDefinition
+        resultoutput.type = inout.type
+
+        return resultoutput
+      }
+
+      let outputs = []
+      item.outputs.forEach((output,index) =>{
+        let resultoutput = getInout(output)
+        outputs[index] = resultoutput
+      })
+
+      let inputs = []
+      item.inputs.forEach((input,index) =>{
+        let resultinput = getInout(input)
+        inputs[index] = resultinput
+      })
+
+
       const title = <span>
         {lang === 'zh' ? '交易' : 'Transaction '}
         &nbsp;<code>{item.id}</code>
@@ -80,7 +119,7 @@ class Show extends BaseShow {
             ]}
           />
 
-          {item.inputs.map((input, index) =>
+          {inputs.map((input, index) =>
             <KeyValueTable
               key={index}
               title={index == 0 ? lang === 'zh' ? '输入' : 'Inputs' : ''}
@@ -88,7 +127,7 @@ class Show extends BaseShow {
             />
           )}
 
-          {item.outputs.map((output, index) =>
+          {outputs.map((output, index) =>
             <KeyValueTable
               key={index}
               title={index == 0 ? lang === 'zh' ? '输出' : 'Outputs' : ''}
index c445c8d..3e5a4c3 100644 (file)
@@ -8,12 +8,14 @@ const mappings = {
   position: 'Position',
   assetId: 'Asset ID',
   assetAlias: 'Asset Alias',
+  asset: 'Asset',
   assetDefinition: 'Asset Definition',
   assetTags: 'Asset Tags',
   assetIsLocal: 'Asset Is Local?',
   amount: 'Amount',
   accountId: 'Account ID',
   accountAlias: 'Account Alias',
+  account: 'Account',
   accountTags: 'Account Tags',
   controlProgram: 'Control Program',
   address: 'Address',
@@ -34,12 +36,14 @@ const mappings_ZH = {
   purpose: 'Purpose',
   transactionId: '交易ID',
   position: '位置',
+  asset: '资产',
   assetId: '资产ID',
   assetAlias: '资产别名',
   assetDefinition: '资产定义',
   assetTags: 'Asset Tags',
   assetIsLocal: 'Asset Is Local?',
   amount: '数量',
+  account: '账户',
   accountId: '账户ID',
   accountAlias: '账户别名',
   accountTags: 'Account Tags',
@@ -58,41 +62,21 @@ const mappings_ZH = {
 
 const txInputFields = [
   'type',
-  'assetId',
-  'assetAlias',
-  'assetDefinition',
-  'assetTags',
-  'assetIsLocal',
+  'asset',
   'amount',
-  'accountId',
-  'accountAlias',
-  'accountTags',
-  'issuanceProgram',
+  'account',
   'controlProgram',
   'address',
-  'spentOutputId',
-  'isLocal',
-  'referenceData',
 ]
 
 const txOutputFields = [
   'type',
-  'purpose',
   'id',
-  'position',
-  'assetId',
-  'assetAlias',
-  'assetDefinition',
-  'assetTags',
-  'assetIsLocal',
+  'asset',
   'amount',
-  'accountId',
-  'accountAlias',
-  'accountTags',
+  'account',
   'controlProgram',
   'address',
-  'isLocal',
-  'referenceData',
 ]
 
 const unspentFields = [
@@ -132,6 +116,18 @@ const buildDisplay = (item, fields, btmAmountUnit, lang) => {
           label: ( lang === 'zh'? mappings_ZH[key]: mappings[key] ),
           value: decimals? formatIntNumToPosDecimal(item[key], decimals) :normalizeGlobalBTMAmount(item['assetId'], item[key], btmAmountUnit)
         })
+      }else if(key === 'asset'){
+        details.push({
+          label: ( lang === 'zh'? mappings_ZH[key]: mappings[key] ),
+          value: item[key],
+          link: `/assets/${item.assetId}`
+        })
+      }else if(key === 'account'){
+        details.push({
+          label: ( lang === 'zh'? mappings_ZH[key]: mappings[key] ),
+          value: item[key],
+          link: `/accounts/${item.accountId}`
+        })
       }else{
         details.push({label: ( lang === 'zh'? mappings_ZH[key]: mappings[key] ), value: item[key]})
       }