Merge pull request #51 from colkito/feature/homepage-default-data

Feature/homepage default data
This commit is contained in:
Manuel Aráoz 2014-01-15 09:36:20 -08:00
commit ea141f7120
7 changed files with 55 additions and 30 deletions

View File

@ -3,10 +3,8 @@
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Block = mongoose.model('Block');
//, _ = require('lodash');
/**
@ -35,10 +33,13 @@ exports.show = function(req, res) {
}
};
/**
* List of blocks by date
*/
exports.list = function(req, res) {
var limit = req.query.limit || 0;
//helper to convert timestamps to yyyy-mm-dd format
var formatTimestamp = function (date) {
var yyyy = date.getUTCFullYear().toString();
@ -69,11 +70,11 @@ exports.list = function(req, res) {
'$lte': lte
}
})
.limit(limit)
.sort('-time')
.exec(function(err, blocks) {
if (err) {
res.render('error', {
status: 500
});
res.status(500).send(err);
} else {
res.jsonp({
blocks: blocks,
@ -86,5 +87,3 @@ exports.list = function(req, res) {
}
});
};

View File

@ -1,17 +1,12 @@
'use strict';
var Transaction = require('../models/Transaction');
var Block = require('../models/Block');
var Address = require('../models/Address');
var async = require('async');
//, _ = require('lodash');
/**
* Module dependencies.
*/
var Transaction = require('../models/Transaction');
var Block = require('../models/Block');
var Address = require('../models/Address');
var async = require('async');
/**
@ -33,6 +28,7 @@ exports.transaction = function(req, res, next, txid) {
/**
* Show transaction
*/
exports.show = function(req, res) {
@ -41,6 +37,7 @@ exports.show = function(req, res) {
}
};
var getTransaction = function(txid, cb) {
Transaction.fromIdWithInfo(txid, function(err, tx) {
if (err) {
@ -51,9 +48,14 @@ var getTransaction = function(txid, cb) {
});
};
exports.transactions = function(req, res, next) {
/**
* List of transaction
*/
exports.list = function(req, res, next) {
var bId = req.query.block;
var aId = req.query.address;
var limit = req.query.limit || 1000;
if (bId) {
Block.fromHashWithInfo(bId, function(err, block) {
@ -69,7 +71,7 @@ exports.transactions = function(req, res, next) {
});
});
}
else {
else if (aId) {
var a = Address.new(aId);
a.update(function(err) {
@ -84,7 +86,18 @@ exports.transactions = function(req, res, next) {
res.jsonp(results);
});
});
}
else {
Transaction
.find()
.limit(limit)
.sort('-time')
.exec(function(err, txs) {
if (err) {
res.status(500).send(err);
} else {
res.jsonp(txs);
}
});
}
};

View File

@ -18,8 +18,7 @@ module.exports = function(app) {
var transactions = require('../app/controllers/transactions');
app.get('/api/tx/:txid', transactions.show);
app.param('txid', transactions.transaction);
app.get('/api/txs', transactions.transactions);
app.get('/api/txs', transactions.list);
// Address routes
var addresses = require('../app/controllers/addresses');

View File

@ -2,10 +2,10 @@
var TRANSACTION_DISPLAYED = 5;
var BLOCKS_DISPLAYED = 5;
angular.module('mystery.system').controller('IndexController', ['$scope', 'Global', 'socket', function($scope, Global, socket) {
angular.module('mystery.system').controller('IndexController', ['$scope', 'Global', 'socket', 'Blocks', 'Transactions', function($scope, Global, socket, Blocks, Transactions) {
$scope.global = Global;
socket.on('tx', function(data) {
var tx = data;
socket.on('tx', function(tx) {
console.log('Transaction received! ' + JSON.stringify(tx));
if ($scope.txs.length === TRANSACTION_DISPLAYED) {
$scope.txs.pop();
@ -13,8 +13,7 @@ angular.module('mystery.system').controller('IndexController', ['$scope', 'Globa
$scope.txs.unshift(tx);
});
socket.on('block', function(data) {
var block = data;
socket.on('block', function(block) {
console.log('Block received! ' + JSON.stringify(block));
if ($scope.blocks.length === BLOCKS_DISPLAYED) {
$scope.blocks.pop();
@ -22,8 +21,21 @@ angular.module('mystery.system').controller('IndexController', ['$scope', 'Globa
$scope.blocks.unshift(block);
});
$scope.index = function() {
Blocks.get({
limit: BLOCKS_DISPLAYED
}, function(res) {
$scope.blocks = res.blocks;
});
Transactions.query({
limit: TRANSACTION_DISPLAYED
}, function(txs) {
$scope.txs = txs;
});
};
$scope.txs = [];
$scope.blocks = [];
}]);

View File

@ -5,7 +5,6 @@ angular.module('mystery.search').controller('SearchController', ['$scope', '$rou
$scope.search = function() {
var q = $scope.q;
var path;
$scope.badQuery = false;
$scope.q = '';

View File

@ -32,3 +32,6 @@ angular.module('mystery.transactions').factory('TransactionsByAddress', ['$resou
});
}]);
angular.module('mystery.transactions').factory('Transactions', ['$resource', function($resource) {
return $resource('/api/txs');
}]);

View File

@ -1,4 +1,4 @@
<section data-ng-controller="IndexController" data-ng-init="">
<section data-ng-controller="IndexController" data-ng-init="index()">
<div class="container">
<div class="row">
<div class="col-md-6">