From 9cfef6b834b08d372b67715b8d82752acdc7945d Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Wed, 26 Jul 2017 14:17:02 -0400 Subject: [PATCH] use dynamic link for blockHash in block detail page; retrieve block data --- app/src/pages/block-detail/block-detail.html | 10 +++---- app/src/pages/block-detail/block-detail.ts | 28 ++++++++++++++++---- app/src/pages/blocksPage/blocksPage.ts | 4 +-- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/app/src/pages/block-detail/block-detail.html b/app/src/pages/block-detail/block-detail.html index b7bd717..b0a0972 100644 --- a/app/src/pages/block-detail/block-detail.html +++ b/app/src/pages/block-detail/block-detail.html @@ -14,13 +14,13 @@ -

Block #

-

BlockHash {{ blockHash }}

+

Block # {{ block.height }}

+

BlockHash {{ block.hash }}

Summary

-

Number of Transactions

+

Number of Transactions {{ block.tx.length }}

Height

-

Block Reward

-

Timestamp

+

Block Reward {{ block.reward }}

+

Timestamp

Mined by

Merkle Root

Previous Block

diff --git a/app/src/pages/block-detail/block-detail.ts b/app/src/pages/block-detail/block-detail.ts index 6bfce4d..68931e4 100644 --- a/app/src/pages/block-detail/block-detail.ts +++ b/app/src/pages/block-detail/block-detail.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams } from 'ionic-angular'; +import { Http } from '@angular/http'; /** * Generated class for the BlockDetailPage page. @@ -8,22 +9,39 @@ import { IonicPage, NavController, NavParams } from 'ionic-angular'; * on Ionic pages and navigation. */ @IonicPage({ - name: 'block-detail' + name: 'block-detail', + segment: 'block/:blockHash' }) @Component({ selector: 'page-block-detail', - templateUrl: 'block-detail.html', + templateUrl: 'block-detail.html' }) export class BlockDetailPage { - blockHash: string; + private blockHash: string; + public block: any = { + tx: [] + }; - constructor(public navCtrl: NavController, public navParams: NavParams) { + constructor(public navCtrl: NavController, private http: Http, public navParams: NavParams) { this.blockHash = navParams.get('blockHash'); console.log('blockHash is', this.blockHash); + + let apiPrefix: string = 'http://localhost:3001/insight-api/'; + + this.http.get(apiPrefix + 'block/' + this.blockHash).subscribe( + (data) => { + console.log('block is', data); + this.block = JSON.parse(data['_body']); + console.log('this.block is', this.block); + }, + (err) => { + console.log('err is', err); + } + ); } - ionViewDidLoad() { + public ionViewDidLoad(): void { console.log('ionViewDidLoad BlockDetailPage'); } diff --git a/app/src/pages/blocksPage/blocksPage.ts b/app/src/pages/blocksPage/blocksPage.ts index 5f729b9..141ebe5 100644 --- a/app/src/pages/blocksPage/blocksPage.ts +++ b/app/src/pages/blocksPage/blocksPage.ts @@ -27,7 +27,7 @@ export class BlocksPage { public search(event) { console.log('q is', this.q); - let apiPrefix = 'http://localhost:3001/insight-api/'; + let apiPrefix: string = 'http://localhost:3001/insight-api/'; this.http.get(apiPrefix + 'block/' + this.q).subscribe( (data) => { this.resetSearch(); @@ -53,7 +53,7 @@ export class BlocksPage { let parsedData = JSON.parse(data._body); console.log('parsedData', parsedData); this.navCtrl.push('block-detail', { - blockHash: parsedData.blockHash + 'blockHash': parsedData.blockHash }); }.bind(this), function (err) {