Browse Source

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

Feature/homepage default data
generic-ui
Manuel Aráoz 11 years ago
parent
commit
ea141f7120
  1. 13
      app/controllers/blocks.js
  2. 37
      app/controllers/transactions.js
  3. 3
      config/routes.js
  4. 24
      public/js/controllers/index.js
  5. 1
      public/js/controllers/search.js
  6. 3
      public/js/services/transactions.js
  7. 2
      public/views/index.html

13
app/controllers/blocks.js

@ -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) {
}
});
};

37
app/controllers/transactions.js

@ -1,17 +1,12 @@
'use strict';
/**
* Module dependencies.
*/
var Transaction = require('../models/Transaction');
var Block = require('../models/Block');
var Address = require('../models/Address');
var async = require('async');
//, _ = require('lodash');
/**
* Module dependencies.
*/
/**
@ -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);
}
});
}
};

3
config/routes.js

@ -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');

24
public/js/controllers/index.js

@ -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 = [];
}]);

1
public/js/controllers/search.js

@ -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 = '';

3
public/js/services/transactions.js

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

2
public/views/index.html

@ -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">

Loading…
Cancel
Save