several improvements for angular code style

This commit is contained in:
Mario Colque 2014-01-23 14:39:09 -03:00
parent 55c539ece4
commit 049eaea6ff
11 changed files with 97 additions and 89 deletions

View File

@ -24,6 +24,7 @@ function($scope, $rootScope, $routeParams, $location, Global, Address, get_socke
$location.path('/');
});
};
var socket = get_socket($scope);
socket.emit('subscribe', $routeParams.addrStr);
socket.on($routeParams.addrStr, function(tx) {
@ -33,7 +34,6 @@ function($scope, $rootScope, $routeParams, $location, Global, Address, get_socke
$rootScope.$broadcast('tx', tx.txid);
});
$scope.params = $routeParams;
});
});

View File

@ -44,4 +44,5 @@ angular.module('insight.blocks').controller('BlocksController',
};
$scope.params = $routeParams;
});

View File

@ -3,13 +3,13 @@
angular.module('insight.system').controller('FooterController',
function($scope, get_socket, Version) {
var getVersion = function() {
var _getVersion = function() {
Version.get({},
function(res) {
$scope.version = res.version;
});
};
$scope.version = getVersion();
$scope.version = _getVersion();
});

View File

@ -18,7 +18,7 @@ angular.module('insight.system').controller('HeaderController',
var socket = get_socket($scope);
socket.emit('subscribe', 'inv');
var getBlock = function(hash) {
var _getBlock = function(hash) {
Block.get({
blockHash: hash
}, function(res) {
@ -29,7 +29,7 @@ angular.module('insight.system').controller('HeaderController',
socket.on('block', function(block) {
var blockHash = block.hash.toString();
console.log('Updated Blocks Height!');
getBlock(blockHash);
_getBlock(blockHash);
});

View File

@ -2,11 +2,12 @@
var TRANSACTION_DISPLAYED = 5;
var BLOCKS_DISPLAYED = 5;
angular.module('insight.system').controller('IndexController',
function($scope, $rootScope, Global, get_socket, Blocks, Block, Transactions, Transaction) {
$scope.global = Global;
var getTransaction = function(txid) {
var _getTransaction = function(txid) {
Transaction.get({
txId: txid
}, function(res) {
@ -14,7 +15,7 @@ angular.module('insight.system').controller('IndexController',
});
};
var getBlock = function(hash) {
var _getBlock = function(hash) {
Block.get({
blockHash: hash
}, function(res) {
@ -31,22 +32,24 @@ angular.module('insight.system').controller('IndexController',
socket.on('tx', function(tx) {
var txStr = tx.txid.toString();
console.log('Transaction received! ' + JSON.stringify(tx));
if (parseInt($scope.txs.length) > parseInt(TRANSACTION_DISPLAYED) - 1) {
if (parseInt($scope.txs.length, 10) > parseInt(TRANSACTION_DISPLAYED, 10) - 1) {
$scope.txs.pop();
}
getTransaction(txStr);
_getTransaction(txStr);
});
socket.on('block', function(block) {
var blockHash = block.hash.toString();
console.log('Block received! ' + JSON.stringify(block));
if (parseInt($scope.blocks.length) > parseInt(BLOCKS_DISPLAYED) - 1) {
if (parseInt($scope.blocks.length, 10) > parseInt(BLOCKS_DISPLAYED, 10) - 1) {
$scope.blocks.pop();
}
getBlock(blockHash);
_getBlock(blockHash);
});
$scope.human_since = function(time) {
$scope.humanSince = function(time) {
var m = moment.unix(time);
return m.max().fromNow();
};

View File

@ -22,14 +22,14 @@ function($scope, $routeParams, $location, $rootScope, Global, Status, Sync, get_
});
};
var on_sync_update = function(sync) {
var _onSyncUpdate = function(sync) {
$scope.sync = sync;
};
$scope.getSync = function() {
Sync.get({},
function(sync) {
on_sync_update(sync);
_onSyncUpdate(sync);
},
function(e) {
$scope.sync = { error: 'Could not get sync information' + e };
@ -40,7 +40,7 @@ function($scope, $routeParams, $location, $rootScope, Global, Status, Sync, get_
socket.emit('subscribe', 'sync');
socket.on('status', function(sync) {
console.log('[status.js.55::] sync status update received!');
on_sync_update(sync);
_onSyncUpdate(sync);
});
});

View File

@ -9,11 +9,7 @@ function ($scope, $rootScope, $routeParams, $location, Global, Transaction, Tran
var pageNum = 0;
var pagesTotal = 1;
$scope.findThis = function() {
$scope.findTx($routeParams.txId);
};
$scope.aggregateItems = function(items) {
var _aggregateItems = function(items) {
if (!items) return [];
var l = items.length;
@ -21,6 +17,7 @@ function ($scope, $rootScope, $routeParams, $location, Global, Transaction, Tran
var ret = [];
var tmp = {};
var u = 0;
// TODO multiple output address
//
for(var i=0; i < l; i++) {
@ -57,6 +54,7 @@ function ($scope, $rootScope, $routeParams, $location, Global, Transaction, Tran
tmp[addr].addr = addr;
tmp[addr].items = [];
}
tmp[addr].valueSat += items[i].valueSat;
tmp[addr].value = tmp[addr].valueSat / 100000000;
tmp[addr].items.push(items[i]);
@ -67,12 +65,47 @@ function ($scope, $rootScope, $routeParams, $location, Global, Transaction, Tran
angular.forEach(tmp, function(v) {
ret.push(v);
});
return (ret);
return ret;
};
$scope.processTX = function(tx) {
tx.vinSimple = $scope.aggregateItems(tx.vin);
tx.voutSimple = $scope.aggregateItems(tx.vout);
var _processTX = function(tx) {
tx.vinSimple = _aggregateItems(tx.vin);
tx.voutSimple = _aggregateItems(tx.vout);
};
var _paginate = function (data) {
$scope.loading = false;
pagesTotal = data.pagesTotal;
pageNum += 1;
data.txs.forEach(function(tx) {
_processTX(tx);
$scope.txs.push(tx);
});
};
var _byBlock = function() {
TransactionsByBlock.get({
block: $routeParams.blockHash,
pageNum: pageNum
}, function(data) {
_paginate(data);
});
};
var _byAddress = function () {
TransactionsByAddress.get({
address: $routeParams.addrStr,
pageNum: pageNum
}, function(data) {
_paginate(data);
});
};
$scope.findThis = function() {
$scope.findTx($routeParams.txId);
};
$scope.findTx = function(txid) {
@ -80,7 +113,7 @@ function ($scope, $rootScope, $routeParams, $location, Global, Transaction, Tran
txId: txid
}, function(tx) {
$scope.tx = tx;
$scope.processTX(tx);
_processTX(tx);
$scope.txs.unshift(tx);
}, function(e) {
if (e.status === 400) {
@ -92,58 +125,32 @@ function ($scope, $rootScope, $routeParams, $location, Global, Transaction, Tran
else {
$rootScope.flashMessage = 'Transaction Not Found';
}
$location.path('/');
});
};
$scope.byBlock = function() {
TransactionsByBlock.get({
block: $routeParams.blockHash,
pageNum: pageNum
}, function(data) {
$scope.paginate(data);
});
};
$scope.byAddress = function () {
TransactionsByAddress.get({
address: $routeParams.addrStr,
pageNum: pageNum
}, function(data) {
$scope.paginate(data);
});
};
$scope.paginate = function (data) {
$scope.loading = false;
pagesTotal = data.pagesTotal;
pageNum += 1;
data.txs.forEach(function(tx) {
$scope.processTX(tx);
$scope.txs.push(tx);
});
};
//Initial load
$scope.load = function(from) {
$scope.loadedBy = from;
$scope.loadMore();
};
//Load more transactions for pagination
$scope.loadMore = function() {
if (pageNum < pagesTotal && !$scope.loading) {
$scope.loading = true;
if ($scope.loadedBy === 'address') {
$scope.byAddress();
_byAddress();
}
else {
$scope.byBlock();
_byBlock();
}
}
};
//Init without txs
$scope.txs = [];
$scope.$on('tx', function(event, txid) {

View File

@ -1,9 +1,6 @@
'use strict';
angular.element(document).ready(function() {
//Fixing facebook bug with redirect
if (window.location.hash === '#_=_') window.location.hash = '#!';
//Then init the app
angular.bootstrap(document, ['insight']);
});

View File

@ -22,7 +22,7 @@
<td>
<a href="/#!/block/{{b.hash}}">{{b.height}}</a>
</td>
<td>{{human_since(b.time)}}</td>
<td>{{humanSince(b.time)}}</td>
<td>{{b.tx.length}}</td>
<td>{{b.size}}</td>
<td>{{b.confirmations}}</td>
@ -53,7 +53,7 @@
<td>
<a class="ellipsis" href="/#!/tx/{{tx.txid}}">{{tx.txid}}</a>
</td>
<td><span class="ellipsis">{{human_since(tx.time)}}</span></td>
<td><span class="ellipsis">{{humanSince(tx.time)}}</span></td>
<td>{{tx.valueOut}}</td>
</tr>
</tbody>

View File

@ -1,8 +1,8 @@
<div class="alert alert-warning" data-ng-show="txs.length && !txs[0].txid">There are not transactions</div>
<div class="alert alert-warning" data-ng-show="!txs[0].txid">There are not transactions</div>
<div class="block-tx fader" data-ng-show="txs && txs[0].txid" data-ng-repeat="tx in txs">
<div data-ng-include src="'/views/transaction/tx.html'"></div>
</div>
<div class="progress progress-striped active" data-ng-show="!txs.length || loading">
<div class="progress progress-striped active" data-ng-show="loading">
<div class="progress-bar progress-bar-info" style="width: 100%">
<span>Loading...</span>
</div>