UNPKG

insight-ui-mangacoin

Version:

An open-source frontend for the Insight API. The Insight API provides you with a convenient, powerful and simple way to query and broadcast data on the monacoin network and build your own services with it.

65 lines (57 loc) 1.65 kB
'use strict'; angular.module('insight.search').controller('SearchController', function($scope, $routeParams, $location, $timeout, Global, Block, Transaction, Address, BlockByHeight) { $scope.global = Global; $scope.loading = false; var _badQuery = function() { $scope.badQuery = true; $timeout(function() { $scope.badQuery = false; }, 2000); }; var _resetSearch = function() { $scope.q = ''; $scope.loading = false; }; $scope.search = function() { var q = $scope.q; $scope.badQuery = false; $scope.loading = true; Block.get({ blockHash: q }, function() { _resetSearch(); $location.path('block/' + q); }, function() { //block not found, search on TX Transaction.get({ txId: q }, function() { _resetSearch(); $location.path('tx/' + q); }, function() { //tx not found, search on Address Address.get({ addrStr: q }, function() { _resetSearch(); $location.path('address/' + q); }, function() { // block by height not found if (isFinite(q)) { // ensure that q is a finite number. A logical height value. BlockByHeight.get({ blockHeight: q }, function(hash) { _resetSearch(); $location.path('/block/' + hash.blockHash); }, function() { //not found, fail :( $scope.loading = false; _badQuery(); }); } else { $scope.loading = false; _badQuery(); } }); }); }); }; });