Example support for spanish language
This commit is contained in:
parent
b8f624f1e0
commit
4d8068301a
|
@ -119,8 +119,11 @@ module.exports = function(grunt) {
|
|||
//Default task(s).
|
||||
grunt.registerTask('default', ['watch']);
|
||||
|
||||
//Update .pot file
|
||||
grunt.registerTask('translate', ['nggettext_extract']);
|
||||
|
||||
//Compile task (concat + minify)
|
||||
grunt.registerTask('compile', ['nggettext_extract', 'nggettext_compile', 'concat', 'uglify', 'cssmin']);
|
||||
grunt.registerTask('compile', ['nggettext_compile', 'concat', 'uglify', 'cssmin']);
|
||||
|
||||
|
||||
};
|
||||
|
|
|
@ -0,0 +1,470 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Insight\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.6.8\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "(Input unconfirmed)"
|
||||
msgstr "(Entrada sin confirmar)"
|
||||
|
||||
#: public/views/404.html
|
||||
msgid "404 Page not found :("
|
||||
msgstr "404 Página no encontrada :("
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is an <a href=\"http://live.insight.is/\" target="
|
||||
"\"_blank\">open-source Bitcoin blockchain explorer</a> with complete REST "
|
||||
"and websocket APIs that can be used for writing web wallets and other apps "
|
||||
"that need more advanced blockchain queries than provided by bitcoind RPC. "
|
||||
"Check out the <a href=\"http://github.com/bitpay/insight\" target=\"_blank"
|
||||
"\">source code</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong> es un <a href=\"http://live.insight.is/\" target="
|
||||
"\"_blank\">explorador de bloques de Bitcoin open-source</a> con un completo "
|
||||
"conjunto de REST y APIs de websockets que pueden ser usadas para escribir "
|
||||
"monederos de Bitcoins y otras aplicaciones que requieran consultar un "
|
||||
"explorador de bloques. Obtén el código en <a href=\"http://github.com/"
|
||||
"bitpay/insight\" target=\"_blank\">el repositorio abierto de Github</a>."
|
||||
|
||||
#: public/views/index.html
|
||||
msgid ""
|
||||
"<strong>insight</strong> is still in development, so be sure to report any "
|
||||
"bugs and provide feedback for improvement at our <a href=\"https://github."
|
||||
"com/bitpay/insight/issues\" target=\"_blank\">github issue tracker</a>."
|
||||
msgstr ""
|
||||
"<strong>insight</strong> esta en desarrollo aún, por ello agradecemos que "
|
||||
"nos reporten errores o sugerencias para mejorar el software. <a href="
|
||||
"\"https://github.com/bitpay/insight/issues\" target=\"_blank\">Github issue "
|
||||
"tracker</a>."
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Address"
|
||||
msgstr "Dirección"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Age"
|
||||
msgstr "Edad"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Application Status"
|
||||
msgstr "Estado de la Aplicación"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Best Block"
|
||||
msgstr "Mejor Bloque"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Bitcoin node information"
|
||||
msgstr "Información del nodo Bitcoin"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Block"
|
||||
msgstr "Bloque"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Block Reward"
|
||||
msgstr "Bloque Recompensa"
|
||||
|
||||
#: public/views/block_list.html public/views/dummy-translations.html
|
||||
#: public/views/status.html
|
||||
msgid "Blocks"
|
||||
msgstr "Bloques"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Bytes Serialized"
|
||||
msgstr "Bytes Serializados"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid ""
|
||||
"Can't connect to bitcoind to get live updates from the p2p network. (Tried "
|
||||
"connecting to bitcoind at {{host}}:{{port}} and failed.)"
|
||||
msgstr ""
|
||||
"No se pudo conectar a bitcoind para obtener actualizaciones en vivo de la "
|
||||
"red p2p. (Se intentó conectar a bitcoind de {{host}}:{{port}} y falló.)"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Can't connect to insight server. Attempting to reconnect..."
|
||||
msgstr "No se pudo conectar al servidor insight. Intentando re-conectar..."
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Can't connect to internet. Please, check your connection."
|
||||
msgstr "No se pudo conectar a Internet. Por favor, verifique su conexión."
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Complete"
|
||||
msgstr "Completado"
|
||||
|
||||
#: public/views/transaction.html public/views/transaction/tx.html
|
||||
msgid "Confirmations"
|
||||
msgstr "Confirmaciones"
|
||||
|
||||
#: public/views/includes/header.html
|
||||
msgid "Conn"
|
||||
msgstr "Con"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Connections to other nodes"
|
||||
msgstr "Conexiones a otros nodos"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Blockchain Tip (insight)"
|
||||
msgstr "Actual Blockchain Tip (insight)"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Current Sync Status"
|
||||
msgstr "Actual Estado de Sincronización"
|
||||
|
||||
#: public/views/transaction.html
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Difficulty"
|
||||
msgstr "Dificultad"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Double spent attempt detected. From tx:"
|
||||
msgstr "Intento de doble gasto detectado. De la transacción:"
|
||||
|
||||
#: public/views/includes/connection.html
|
||||
msgid "Error!"
|
||||
msgstr "¡Error!"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Fee"
|
||||
msgstr "Tasa"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Final Balance"
|
||||
msgstr "Balance Final"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Finish Date"
|
||||
msgstr "Fecha Final"
|
||||
|
||||
#: public/views/404.html
|
||||
msgid "Go to home"
|
||||
msgstr "Volver al Inicio"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Hash Serialized"
|
||||
msgstr "Hash Serializado"
|
||||
|
||||
#: public/views/block.html public/views/block_list.html
|
||||
#: public/views/index.html public/views/status.html
|
||||
#: public/views/includes/header.html
|
||||
msgid "Height"
|
||||
msgstr "Altura"
|
||||
|
||||
#: public/views/transaction.html public/views/transaction/tx.html
|
||||
msgid "Included in Block"
|
||||
msgstr "Incluido en el Bloque"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Incoherence in levelDB detected:"
|
||||
msgstr "Detectada una incoherencia en levelDB:"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Info Errors"
|
||||
msgstr "Errores de Información"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Initial Block Chain Height"
|
||||
msgstr "Altura de la Cadena en Bloque Inicial"
|
||||
|
||||
#: public/views/transaction.html
|
||||
msgid "Input"
|
||||
msgstr "Entrada"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Last Block"
|
||||
msgstr "Último Bloque"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Last Block Hash (Bitcoind)"
|
||||
msgstr "Último Bloque Hash (Bitcoind)"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Latest Blocks"
|
||||
msgstr "Últimos Bloques"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Latest Transactions"
|
||||
msgstr "Últimas Transacciones"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Loading Address Information"
|
||||
msgstr "Cargando Información de la Dirección"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Loading Block Information"
|
||||
msgstr "Cargando Información del Bloque"
|
||||
|
||||
#: public/views/block_list.html
|
||||
msgid "Loading Selected Date..."
|
||||
msgstr "Cargando Fecha Seleccionada..."
|
||||
|
||||
#: public/views/transaction.html
|
||||
msgid "Loading Transaction Details"
|
||||
msgstr "Cargando Detalles de la Transacción"
|
||||
|
||||
#: public/views/transaction/list.html
|
||||
msgid "Loading Transactions..."
|
||||
msgstr "Cargando Transacciones..."
|
||||
|
||||
#: public/views/includes/infoStatus.html
|
||||
msgid "Loading..."
|
||||
msgstr "Cargando..."
|
||||
|
||||
#: public/views/transaction.html
|
||||
msgid "Mined Time"
|
||||
msgstr "Hora de Minado"
|
||||
|
||||
#: public/views/block.html public/views/block_list.html
|
||||
#: public/views/index.html
|
||||
msgid "Mined by"
|
||||
msgstr "Minado por"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Mining Difficulty"
|
||||
msgstr "Dificultad de Minado"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Next Block"
|
||||
msgstr "Próximo Bloque"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "No Inputs (Newly Generated Coins)"
|
||||
msgstr "Sin Entradas (Monedas Recién Generadas)"
|
||||
|
||||
#: public/views/block_list.html
|
||||
msgid "No blocks yet."
|
||||
msgstr "No hay bloques aún."
|
||||
|
||||
#: public/views/includes/header.html public/views/includes/search.html
|
||||
msgid "No matching records found!"
|
||||
msgstr "¡No se encontraron registros coincidentes!"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "No. Transactions"
|
||||
msgstr "Nro. de Transacciones"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Number Of Transactions"
|
||||
msgstr "Número de Transacciones"
|
||||
|
||||
#: public/views/transaction.html
|
||||
msgid "Output"
|
||||
msgstr "Salida"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Powered by"
|
||||
msgstr "Funciona con"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Previous Block"
|
||||
msgstr "Bloque Anterior"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Protocol version"
|
||||
msgstr "Versión del protocolo"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Proxy setting"
|
||||
msgstr "Opción de proxy"
|
||||
|
||||
#: public/views/transaction.html
|
||||
msgid "Received Time"
|
||||
msgstr "Hora de Recibido"
|
||||
|
||||
#: public/views/redirect.html
|
||||
msgid "Redirecting..."
|
||||
msgstr "Redireccionando..."
|
||||
|
||||
#: public/views/includes/header.html
|
||||
msgid "Search for block, transaction or address"
|
||||
msgstr "Buscar bloques, transacciones o direcciones"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "See all blocks"
|
||||
msgstr "Ver todos los bloques"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Show Transaction Output data"
|
||||
msgstr "Mostrar dato de Salida de la Transacción"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Show all"
|
||||
msgstr "Mostrar todos"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Show input"
|
||||
msgstr "Mostrar entrada"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Show less"
|
||||
msgstr "Ver menos"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Show more"
|
||||
msgstr "Ver más"
|
||||
|
||||
#: public/views/block_list.html public/views/index.html
|
||||
#: public/views/transaction.html
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Size (bytes)"
|
||||
msgstr "Tamaño (bytes)"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Skipped Blocks (previously synced)"
|
||||
msgstr "Bloques Saltados (previamente sincronizado)"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Start Date"
|
||||
msgstr "Fecha de Inicio"
|
||||
|
||||
#: public/views/dummy-translations.html
|
||||
msgid "Status"
|
||||
msgstr "Estado"
|
||||
|
||||
#: public/views/block.html public/views/transaction.html
|
||||
msgid "Summary"
|
||||
msgstr "Resumen"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Summary <small>confirmed</small>"
|
||||
msgstr "Resumen <small>confirmados</small>"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Sync Progress"
|
||||
msgstr "Proceso de Sincronización"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Sync Status"
|
||||
msgstr "Estado de Sincronización"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Sync Type"
|
||||
msgstr "Tipo de Sincronización"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Synced Blocks"
|
||||
msgstr "Bloques Sincornizados"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Testnet"
|
||||
msgstr "Red de prueba"
|
||||
|
||||
#: public/views/transaction/list.html
|
||||
msgid "There are no transactions involving this address."
|
||||
msgstr "No hay transacciones para esta dirección"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Time Offset"
|
||||
msgstr "Desplazamiento de hora"
|
||||
|
||||
#: public/views/block.html
|
||||
msgid "Timestamp"
|
||||
msgstr "Fecha y hora"
|
||||
|
||||
#: public/views/block_list.html
|
||||
msgid "Today"
|
||||
msgstr "Hoy"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Total Amount"
|
||||
msgstr "Cantidad Total"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Total Received"
|
||||
msgstr "Total Recibido"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Total Sent"
|
||||
msgstr "Total Enviado"
|
||||
|
||||
#: public/views/transaction.html
|
||||
msgid "Transaction"
|
||||
msgstr "Transacción"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Transaction Output Set Information"
|
||||
msgstr "Información del Conjunto de Salida de la Transacción"
|
||||
|
||||
#: public/views/status.html
|
||||
msgid "Transaction Outputs"
|
||||
msgstr "Salidas de la Transacción"
|
||||
|
||||
#: public/views/address.html public/views/block.html
|
||||
#: public/views/block_list.html public/views/index.html
|
||||
#: public/views/status.html
|
||||
msgid "Transactions"
|
||||
msgstr "Transacciones"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Unconfirmed"
|
||||
msgstr "Sin confirmar"
|
||||
|
||||
#: public/views/transaction.html public/views/transaction/tx.html
|
||||
msgid "Unconfirmed Transaction!"
|
||||
msgstr "¡Transacción sin confirmar!"
|
||||
|
||||
#: public/views/address.html
|
||||
msgid "Unconfirmed Txs Balance"
|
||||
msgstr "Balance sin confirmar"
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Value Out"
|
||||
msgstr "Valor de Salida"
|
||||
|
||||
#: public/views/block.html public/views/status.html
|
||||
msgid "Version"
|
||||
msgstr "Versión"
|
||||
|
||||
#: public/views/block_list.html public/views/index.html
|
||||
msgid "Waiting for blocks..."
|
||||
msgstr "Esperando bloques..."
|
||||
|
||||
#: public/views/index.html
|
||||
msgid "Waiting for transactions..."
|
||||
msgstr "Esperando transacciones..."
|
||||
|
||||
#: public/views/block_list.html
|
||||
msgid "by date."
|
||||
msgstr "por fecha."
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "first seen at"
|
||||
msgstr "Visto a"
|
||||
|
||||
#: public/views/transaction/tx.html
|
||||
msgid "mined"
|
||||
msgstr "minado"
|
||||
|
||||
#: public/views/block_list.html
|
||||
msgid "mined on:"
|
||||
msgstr "minado el:"
|
||||
|
||||
#~ msgid "Waiting for blocks"
|
||||
#~ msgstr "Esperando bloques"
|
File diff suppressed because one or more lines are too long
|
@ -44,6 +44,16 @@
|
|||
</div>
|
||||
<div id="footer" role="navigation">
|
||||
<div class="container" data-ng-controller="FooterController">
|
||||
<div class="languages m20t pull-left">
|
||||
[
|
||||
<a href="#"
|
||||
ng-click="setLanguage(l.isoCode)"
|
||||
ng-class="{'selected': defaultLanguage == l.isoCode}"
|
||||
ng-repeat="l in availableLanguages">
|
||||
<span ng-show="$last"> · </span> {{l.name}}
|
||||
</a>
|
||||
]
|
||||
</div>
|
||||
<a class="insight m10v pull-right" target="_blank" href="http://insight.is">insight <small>API v{{version}}</small></a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -89,6 +89,7 @@ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
|
|||
.m50v { margin: 50px 0; }
|
||||
.m10b { margin-bottom: 10px; }
|
||||
.m10l { margin-left: 10px; }
|
||||
.m20t { margin-top: 20px; }
|
||||
.vm { vertical-align: middle; }
|
||||
.pa {position: absolute;}
|
||||
.pr {position: relative;}
|
||||
|
@ -409,6 +410,25 @@ margin-left: 0;
|
|||
#footer a.insight small { font-size: 11px; }
|
||||
.line-footer { border-top: 2px dashed #ccc; }
|
||||
|
||||
#footer .languages {
|
||||
color: #ddd;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#footer .languages a {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
#footer .languages a.selected {
|
||||
color: #eee;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#footer .languages a:hover {
|
||||
text-decoration: none;
|
||||
color: #fffffe;
|
||||
}
|
||||
|
||||
.line-bot {
|
||||
border-bottom: 2px solid #EAEAEA;
|
||||
padding: 0 0 10px 0;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
var defaultLanguage = localStorage.getItem('insight-language') || 'en';
|
||||
|
||||
angular.module('insight',[
|
||||
'ngAnimate',
|
||||
'ngResource',
|
||||
|
|
|
@ -48,7 +48,7 @@ angular.module('insight')
|
|||
$locationProvider.hashPrefix('!');
|
||||
})
|
||||
.run(function($rootScope, $route, $location, $routeParams, $anchorScroll, ngProgress, gettextCatalog) {
|
||||
gettextCatalog.currentLanguage = 'en';
|
||||
gettextCatalog.currentLanguage = defaultLanguage;
|
||||
$rootScope.$on('$routeChangeStart', function() {
|
||||
ngProgress.start();
|
||||
});
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('insight.system').controller('FooterController',
|
||||
function($scope, Version) {
|
||||
function($scope, $route, $templateCache, gettextCatalog, Version) {
|
||||
|
||||
$scope.defaultLanguage = defaultLanguage;
|
||||
|
||||
var _getVersion = function() {
|
||||
Version.get({},
|
||||
|
@ -12,4 +14,20 @@ angular.module('insight.system').controller('FooterController',
|
|||
|
||||
$scope.version = _getVersion();
|
||||
|
||||
$scope.availableLanguages = [{
|
||||
name: 'English',
|
||||
isoCode: 'en',
|
||||
}, {
|
||||
name: 'Spanish',
|
||||
isoCode: 'es',
|
||||
}];
|
||||
|
||||
$scope.setLanguage = function(isoCode) {
|
||||
gettextCatalog.currentLanguage = $scope.defaultLanguage = defaultLanguage = isoCode;
|
||||
localStorage.setItem('insight-language', isoCode);
|
||||
var currentPageTemplate = $route.current.templateUrl;
|
||||
$templateCache.remove(currentPageTemplate);
|
||||
$route.reload();
|
||||
};
|
||||
|
||||
});
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
|||
<div data-ng-include src="'/views/includes/connection.html'"></div>
|
||||
<div class="jumbotron">
|
||||
<h1>Ooops!</h1>
|
||||
<h2 class="text-muted">404 Page not found :(</h2>
|
||||
<p><a href="/" class="pull-right">Go to home</a></p>
|
||||
<h2 translate class="text-muted">404 Page not found :(</h2>
|
||||
<p><a translate href="/" class="pull-right">Go to home</a></p>
|
||||
</div>
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
<div class="secondary_navbar hidden-xs hidden-sm" scroll data-ng-class="{'hidden': !secondaryNavbar}" data-ng-show="address.addrStr" data-ng-init="hideSNavbar=0">
|
||||
<div class="container" data-ng-if="!hideSNavbar">
|
||||
<div class="col-md-8 text-left">
|
||||
<h3>Address</h3> {{address.addrStr}}
|
||||
<h3 translate>Address</h3> {{address.addrStr}}
|
||||
<span class="btn-copy" clip-copy="address.addrStr"></span>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<span class="txvalues txvalues-primary"><strong>Final Balance</strong> {{$root.currency.getConvertion(address.balance) || address.balance + ' BTC' }}</span>
|
||||
<span class="txvalues txvalues-primary"><strong translate>Final Balance</strong> {{$root.currency.getConvertion(address.balance) || address.balance + ' BTC' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide_snavbar">
|
||||
|
@ -17,35 +17,35 @@
|
|||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1>Address <small data-ng-show="address.addrStr">{{$root.currency.getConvertion(address.balance) || address.balance + ' BTC'}}</small></h1>
|
||||
<h1><span translate>Address</span> <small data-ng-show="address.addrStr">{{$root.currency.getConvertion(address.balance) || address.balance + ' BTC'}}</small></h1>
|
||||
<div class="text-muted" data-ng-if="!address.addrStr">
|
||||
<span>Loading Address Information <span class="loader-gif"></span>
|
||||
<span translate>Loading Address Information</span> <span class="loader-gif"></span>
|
||||
</div>
|
||||
<div data-ng-if="address.addrStr">
|
||||
<div class="well well-sm ellipsis">
|
||||
<strong>Address</strong>
|
||||
<strong translate>Address</strong>
|
||||
<span class="text-muted">{{address.addrStr}}</span>
|
||||
<span class="btn-copy" clip-copy="address.addrStr"></span>
|
||||
</div>
|
||||
<h2>Summary <small>confirmed</small></h2>
|
||||
<h2 translate>Summary <small>confirmed</small></h2>
|
||||
<div class="row" data-ng-hide="!address.addrStr">
|
||||
<div class="col-md-10">
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Total Received</strong></td>
|
||||
<td><strong translate>Total Received</strong></td>
|
||||
<td class="ellipsis text-right">{{$root.currency.getConvertion(address.totalReceived) || address.totalReceived + ' BTC'}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Total Sent</strong></td>
|
||||
<td><strong translate>Total Sent</strong></td>
|
||||
<td class="ellipsis text-right">{{$root.currency.getConvertion(address.totalSent) || address.totalSent + ' BTC'}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Final Balance</strong></td>
|
||||
<td><strong translate>Final Balance</strong></td>
|
||||
<td class="ellipsis text-right">{{$root.currency.getConvertion(address.balance) || address.balance + ' BTC'}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>No. Transactions</strong></td>
|
||||
<td><strong translate>No. Transactions</strong></td>
|
||||
<td class="ellipsis text-right">{{address.txApperances}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -56,15 +56,15 @@
|
|||
</div>
|
||||
</div>
|
||||
<div data-ng-show="address.unconfirmedTxApperances">
|
||||
<h3>Unconfirmed</h3>
|
||||
<h3 translate>Unconfirmed</h3>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="small">Unconfirmed Txs Balance</td>
|
||||
<td class="small" translate>Unconfirmed Txs Balance</td>
|
||||
<td class="address ellipsis text-right">{{$root.currency.getConvertion(address.unconfirmedBalance)}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="small">No. Transactions</td>
|
||||
<td class="small" translate>No. Transactions</td>
|
||||
<td class="address ellipsis text-right">{{address.unconfirmedTxApperances}}</td>
|
||||
</tr>
|
||||
|
||||
|
@ -73,7 +73,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div data-ng-if="address.addrStr" data-ng-controller="transactionsController" data-ng-init="load('address')">
|
||||
<h2>Transactions</h2>
|
||||
<h2 translate>Transactions</h2>
|
||||
<div data-ng-include src="'/views/transaction/list.html'" when-scrolled="loadMore()"></div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<div class="col-md-10">
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<h3 class="text-left">Block #{{block.height}}</h3>
|
||||
<h3 class="text-left"><span translate>Block</span> #{{block.height}}</h3>
|
||||
</div>
|
||||
<p class="col-md-6 ellipsis text-left">
|
||||
<strong>Hash</strong> {{block.hash}}
|
||||
|
@ -33,7 +33,7 @@
|
|||
</div>
|
||||
<h1>Block #{{block.height}}</h1>
|
||||
<div class="text-muted" data-ng-if="!block.hash">
|
||||
<span>Loading Block Information <span class="loader-gif"></span>
|
||||
<span translate>Loading Block Information</span> <span class="loader-gif"></span>
|
||||
</div>
|
||||
<div data-ng-if="block.hash">
|
||||
<div class="well well-sm ellipsis">
|
||||
|
@ -41,32 +41,32 @@
|
|||
<span class="txid text-muted">{{block.hash}}</span>
|
||||
<span class="btn-copy" clip-copy="block.hash"></span>
|
||||
</div>
|
||||
<h2>Summary</h2>
|
||||
<h2 translate>Summary</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<table class="table" style="table-layout: fixed">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Number Of Transactions</strong></td>
|
||||
<td><strong translate>Number Of Transactions</strong></td>
|
||||
<td class="text-right text-muted">{{block.tx.length}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Height</strong></td>
|
||||
<td><strong translate>Height</strong></td>
|
||||
<td class="text-right text-muted">{{block.height}}
|
||||
<span data-ng-show="block.isMainChain" class="text-success">(Mainchain)</span>
|
||||
<span data-ng-show="!block.isMainChain" class="text-danger"> <span class="glyphicon glyphicon-warning-sign"></span> (Orphaned)</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Block Reward</strong></td>
|
||||
<td><strong translate>Block Reward</strong></td>
|
||||
<td class="text-right text-muted">{{$root.currency.getConvertion(block.reward) || block.reward + ' BTC'}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Timestamp</strong></td>
|
||||
<td><strong translate>Timestamp</strong></td>
|
||||
<td class="text-right text-muted">{{block.time * 1000 | date:'medium'}}</td>
|
||||
</tr>
|
||||
<tr data-ng-show="block.poolInfo">
|
||||
<td><strong>Mined by</strong></td>
|
||||
<td><strong translate>Mined by</strong></td>
|
||||
<td class="text-right text-muted">
|
||||
<a href="{{block.poolInfo.url}}" target="_blank" title="{{block.poolInfo.poolName}}">{{block.poolInfo.poolName}}</a>
|
||||
</td>
|
||||
|
@ -81,7 +81,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr data-ng-show="block.previousblockhash">
|
||||
<td><strong>Previous Block</strong></td>
|
||||
<td><strong translate>Previous Block</strong></td>
|
||||
<td class="text-right"><a href="/block/{{block.previousblockhash}}">{{block.height-1}}</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -91,7 +91,7 @@
|
|||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> <strong> Difficulty </strong></td>
|
||||
<td> <strong translate>Difficulty</strong></td>
|
||||
<td class="text-right text-muted">{{block.difficulty}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -99,11 +99,11 @@
|
|||
<td class="text-right text-muted">{{block.bits}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> <strong> Size (bytes) </strong></td>
|
||||
<td> <strong translate>Size (bytes)</strong></td>
|
||||
<td class="text-right text-muted">{{block.size}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> <strong> Version </strong></td>
|
||||
<td> <strong translate>Version</strong></td>
|
||||
<td class="text-right text-muted">{{block.version}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -111,7 +111,7 @@
|
|||
<td class="text-right text-muted">{{block.nonce}}</td>
|
||||
</tr>
|
||||
<tr data-ng-show="block.nextblockhash">
|
||||
<td><strong>Next Block</strong></td>
|
||||
<td><strong translate>Next Block</strong></td>
|
||||
<td class="text-right"><a href="/block/{{block.nextblockhash}}">{{block.height+1}}</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -120,7 +120,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div data-ng-if="block.hash" data-ng-controller="transactionsController" data-ng-init="load('block')">
|
||||
<h3>Transactions</h3>
|
||||
<h3 translate>Transactions</h3>
|
||||
<div data-ng-include src="'/views/transaction/list.html'" when-scrolled="loadMore()"></div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
<div class="block-id">
|
||||
<div class="icon-block text-center">
|
||||
<span class="glyphicon glyphicon-list"></span>
|
||||
<h3>Blocks <br> mined on:</h3>
|
||||
<h3><span translate>Blocks</span> <br>
|
||||
<span translate>mined on:</span></h3>
|
||||
</div>
|
||||
</div>
|
||||
<p class="lead text-center m20v">
|
||||
|
@ -13,11 +14,11 @@
|
|||
<a href="#" class="btn btn-primary btn-xs" datepicker-popup show-button-bar="false" data-ng-click="openCalendar($event)" data-ng-model="dt" is-open="opened" data-ng-required="true"><span class="glyphicon glyphicon-calendar"></span></a>
|
||||
</p>
|
||||
<div class="m20v text-center text-muted" data-ng-if="!pagination.current">
|
||||
<span>Loading Selected Date...</span>
|
||||
<span translate>Loading Selected Date...</span>
|
||||
</div>
|
||||
<div data-ng-if="pagination.current">
|
||||
<p class="lead text-center m20v" data-ng-show="loading"> </p>
|
||||
<p class="text-center m20v" data-ng-show="pagination.isToday && !loading">Today</p>
|
||||
<p class="text-center m20v" data-ng-show="pagination.isToday && !loading" translate>Today</p>
|
||||
<p class="text-center m20v" data-ng-show="!pagination.isToday && !loading">{{humanSince(pagination.currentTs)}}
|
||||
<p class="text-center m20v" data-ng-show="loading"> </p>
|
||||
<div class="m50v text-center">
|
||||
|
@ -29,23 +30,23 @@
|
|||
<div class="col-xs-12 col-md-9 col-md-offset-3">
|
||||
<div class="page-header">
|
||||
<h1>
|
||||
Blocks
|
||||
<small>by date. {{detail}} {{before}}</small>
|
||||
<span translate>Blocks</span>
|
||||
<small><span translate>by date.</span> {{detail}} {{before}}</small>
|
||||
</h1>
|
||||
</div>
|
||||
<table class="table table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Height</th>
|
||||
<th>Timestamp</th>
|
||||
<th class="text-right">Transactions</th>
|
||||
<th class="text-right hidden-xs">Mined by</th>
|
||||
<th class="text-right">Size</th>
|
||||
<th translate>Height</th>
|
||||
<th translate>Timestamp</th>
|
||||
<th class="text-right" translate>Transactions</th>
|
||||
<th class="text-right hidden-xs" translate>Mined by</th>
|
||||
<th class="text-right" translate>Size</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr data-ng-show="loading">
|
||||
<td colspan="5">Waiting for blocks <span class="loader-gif"></span></td>
|
||||
<td colspan="5"><span translate>Waiting for blocks...</span> <span class="loader-gif"></span></td>
|
||||
</tr>
|
||||
<tr class="fader" data-ng-repeat='b in blocks'>
|
||||
<td><a href="/block/{{b.hash}}">{{b.height}}</a></td>
|
||||
|
@ -62,6 +63,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="text-center text-muted" data-ng-show="!blocks.length && !loading">No blocks yet.</h2>
|
||||
<h2 class="text-center text-muted" data-ng-show="!blocks.length && !loading"
|
||||
translate>No blocks yet.</h2>
|
||||
</section>
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
{{'Blocks'|translate}}
|
||||
{{'Status'|translate}}
|
|
@ -4,18 +4,17 @@
|
|||
data-ng-show="!serverOnline || !clienteOnline || !apiOnline"
|
||||
data-ng-init="getConnStatus()">
|
||||
|
||||
<strong>Error!</strong>
|
||||
<strong translate>Error!</strong>
|
||||
|
||||
<p data-ng-show="!apiOnline">
|
||||
Can't connect to bitcoind to get live updates from the p2p network.
|
||||
(Tried connecting to bitcoind at {{host}}:{{port}} and failed.)
|
||||
<p data-ng-show="!apiOnline" translate>
|
||||
Can't connect to bitcoind to get live updates from the p2p network. (Tried connecting to bitcoind at {{host}}:{{port}} and failed.)
|
||||
</p>
|
||||
|
||||
<p data-ng-show="!serverOnline">
|
||||
<p data-ng-show="!serverOnline" translate>
|
||||
Can't connect to insight server. Attempting to reconnect...
|
||||
</p>
|
||||
|
||||
<p data-ng-show="!clienteOnline">
|
||||
<p data-ng-show="!clienteOnline" translate>
|
||||
Can't connect to internet. Please, check your connection.
|
||||
</p>
|
||||
|
||||
|
|
|
@ -12,14 +12,16 @@
|
|||
<div class="navbar-collapse collapse" collapse="$root.isCollapsed">
|
||||
<ul class="nav navbar-nav">
|
||||
<li data-ng-repeat="item in menu" ui-route="/{{item.link}}" data-ng-class="{active: $uiRoute}">
|
||||
<a href="/{{item.link}}">{{item.title}}</a>
|
||||
<a href="/{{item.link}}">{{item.title|translate}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<form id="search-form" data-ng-controller="SearchController" class="navbar-form navbar-left hidden-xs" role="search" data-ng-submit="search()">
|
||||
<div class="form-group" data-ng-class="{'has-error': badQuery}">
|
||||
<input id="search" type="text" class="form-control" data-ng-model="q" data-ng-class="{'loading': loading}" placeholder="Search for block, transaction or address" data-ng-submit="search()">
|
||||
<input id="search" type="text" class="form-control"
|
||||
data-ng-model="q" data-ng-class="{'loading': loading}"
|
||||
placeholder="{{'Search for block, transaction or address'|translate}}" data-ng-submit="search()">
|
||||
</div>
|
||||
<div class="no_matching text-danger" data-ng-show="badQuery">No matching records found!</div>
|
||||
<div class="no_matching text-danger" data-ng-show="badQuery" translate>No matching records found!</div>
|
||||
</form>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li>
|
||||
|
@ -37,13 +39,14 @@
|
|||
</div>
|
||||
·
|
||||
<span data-ng-init="getStatus('Info')">
|
||||
<strong>Conn</strong> {{info.connections}}
|
||||
<strong>{{'Conn'|translate}}</strong> {{info.connections}}
|
||||
</span> ·
|
||||
<strong>Height</strong> {{totalBlocks || info.blocks}}
|
||||
<strong>{{'Height'|translate}}</strong> {{totalBlocks || info.blocks}}
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" data-ng-click="openScannerModal()"><span class="glyphicon glyphicon-qrcode"></span> Scan</a>
|
||||
<a href="#" data-ng-click="openScannerModal()"><span class="glyphicon
|
||||
glyphicon-qrcode"></span> Scan</a>
|
||||
</li>
|
||||
<li class="dropdown" data-ng-controller="CurrencyController" data-ng-include="'/views/includes/currency.html'"></li>
|
||||
</ul>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<span class="text-warning" data-ng-show="!loaded && !error">Loading...</span>
|
||||
<span class="text-warning" data-ng-show="!loaded && !error" translate>Loading...</span>
|
||||
<span class="text-danger" data-ng-show="error">{{error}}</span>
|
||||
|
||||
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<div class="form-group" data-ng-class="{'has-error': badQuery}">
|
||||
<input id="search" type="text" class="form-control" data-ng-model="q" data-ng-class="{'loading': loading}" placeholder="Search for block, transaction or address" data-ng-submit="search()">
|
||||
</div>
|
||||
<div class="no_matching text-danger" data-ng-show="badQuery">No matching records found!</div>
|
||||
<div class="no_matching text-danger" data-ng-show="badQuery" translate>No matching records found!</div>
|
||||
</form>
|
||||
|
|
|
@ -9,19 +9,19 @@
|
|||
|
||||
<div data-ng-include src="'/views/includes/search.html'"></div>
|
||||
|
||||
<h1>Latest Blocks</h1>
|
||||
<h1 translate>Latest Blocks</h1>
|
||||
<table class="table table-hover table-striped" style="table-layout: fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Height</th>
|
||||
<th>Age</th>
|
||||
<th class="text-right"><span class="ellipsis">Transactions</span></th>
|
||||
<th class="text-right hidden-xs"><span class="ellipsis">Mined by</span></th>
|
||||
<th class="text-right">Size</th>
|
||||
<th translate>Height</th>
|
||||
<th translate>Age</th>
|
||||
<th class="text-right"><span class="ellipsis" translate>Transactions</span></th>
|
||||
<th class="text-right hidden-xs"><span class="ellipsis" translate>Mined by</span></th>
|
||||
<th class="text-right" translate>Size</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr data-ng-show="!blocks.length"><td colspan="4">Waiting for blocks...</td></tr>
|
||||
<tr data-ng-show="!blocks.length"><td colspan="4" translate>Waiting for blocks...</td></tr>
|
||||
<tr class="fader" data-ng-repeat='b in blocks'>
|
||||
<td>
|
||||
<a href="/block/{{b.hash}}">{{b.height}}</a>
|
||||
|
@ -34,20 +34,20 @@
|
|||
</tbody>
|
||||
</table>
|
||||
<div class="btn-more">
|
||||
<a href="/blocks" class="btn btn-default">See all blocks</a>
|
||||
<a href="/blocks" class="btn btn-default" translate>See all blocks</a>
|
||||
</div>
|
||||
|
||||
<h2>Latest Transactions</h2>
|
||||
<h2 translate>Latest Transactions</h2>
|
||||
|
||||
<table class="table table-hover table-striped" style="table-layout: fixed;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Hash</th>
|
||||
<th class="text-right">Value Out</th>
|
||||
<th class="text-right" translate>Value Out</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr data-ng-show="!txs.length"><td colspan="3">Waiting for transactions...</td></tr>
|
||||
<tr data-ng-show="!txs.length"><td colspan="3" translate>Waiting for transactions...</td></tr>
|
||||
<tr class="fader" data-ng-repeat='tx in txs'>
|
||||
<td>
|
||||
<a class="ellipsis" href="/tx/{{tx.txid}}">{{tx.txid}}</a>
|
||||
|
@ -60,15 +60,13 @@
|
|||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-4 col-gray">
|
||||
<h2> About </h2>
|
||||
<p><strong>insight</strong> is an <a href="http://live.insight.is/" target="_blank">open-source Bitcoin blockchain explorer</a> with complete REST
|
||||
and websocket APIs that can be used for writing web wallets and other apps
|
||||
that need more advanced blockchain queries than provided by bitcoind RPC.
|
||||
Check out the <a href="http://github.com/bitpay/insight" target="_blank">source code</a>.</p>
|
||||
<p><strong>insight</strong> is still in development, so be sure to report any bugs and provide feedback for improvement at our <a href="https://github.com/bitpay/insight/issues" target="_blank">github issue tracker</a>.</p>
|
||||
<h2 translate>About</h2>
|
||||
<p translate><strong>insight</strong> is an <a href="http://live.insight.is/"
|
||||
target="_blank">open-source Bitcoin blockchain explorer</a> with complete REST and websocket APIs that can be used for writing web wallets and other apps that need more advanced blockchain queries than provided by bitcoind RPC. Check out the <a href="http://github.com/bitpay/insight" target="_blank">source code</a>.</p>
|
||||
<p translate><strong>insight</strong> is still in development, so be sure to report any bugs and provide feedback for improvement at our <a href="https://github.com/bitpay/insight/issues" target="_blank">github issue tracker</a>.</p>
|
||||
<div id="powered" class="row">
|
||||
<div class="powered-text">
|
||||
<small class="text-muted">Powered by</small>
|
||||
<small class="text-muted" translate>Powered by</small>
|
||||
</div>
|
||||
<a href="http://bitcore.io" target="_blank" class="bitcore" title="Bitcore"></a>
|
||||
<a href="http://angularjs.org" target="_blank" class="angularjs" title="AngularJS"></a>
|
||||
|
|
|
@ -1 +1 @@
|
|||
<div class="text-center">Redirecting...</div>
|
||||
<div class="text-center" translate>Redirecting...</div>
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
<div data-ng-include src="'/views/includes/connection.html'"></div>
|
||||
<section>
|
||||
<div class="page-header">
|
||||
<h1>
|
||||
Application Status
|
||||
</h1>
|
||||
<h1 translate>Application Status</h1>
|
||||
</div>
|
||||
<div id="status" class="row">
|
||||
|
||||
<div class="col-xs-12 col-md-8">
|
||||
<h2>Sync Status</h2>
|
||||
<h2 translate>Sync Status</h2>
|
||||
<table class="table" data-ng-controller="StatusController" data-ng-init="getSync()">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Sync Progress</td>
|
||||
<td translate>Sync Progress</td>
|
||||
<td>
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: {{ sync.syncPercentage}}%">
|
||||
<span data-ng-show="sync.syncPercentage>0">{{sync.syncPercentage}}% Complete</span>
|
||||
<span data-ng-show="sync.syncPercentage>0">{{sync.syncPercentage}}%
|
||||
<span translate>Complete</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Current Sync Status</td>
|
||||
<td translate>Current Sync Status</td>
|
||||
<td class="text-right">
|
||||
<span data-ng-show="!sync.error">{{sync.status}}</span>
|
||||
<span class="text-danger" data-ng-show="sync.error">
|
||||
|
@ -32,51 +32,51 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Start Date</td>
|
||||
<td translate>Start Date</td>
|
||||
<td class="text-right"><time title="{{sync.startTs | date:'medium'}}">{{humanSince(sync.startTs)}}</time></td>
|
||||
</tr>
|
||||
<tr data-ng-show="sync.endTs">
|
||||
<td>Finish Date</td>
|
||||
<td translate>Finish Date</td>
|
||||
<td class="text-right"><time title="{{sync.startTs | date:'medium'}}" >{{humanSince(sync.endTs)}}</time></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Initial Block Chain Height</td>
|
||||
<td translate>Initial Block Chain Height</td>
|
||||
<td class="text-right">{{sync.blockChainHeight}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Synced Blocks</td>
|
||||
<td translate>Synced Blocks</td>
|
||||
<td class="text-right">{{sync.syncedBlocks}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Skipped Blocks (previously synced)</td>
|
||||
<td translate>Skipped Blocks (previously synced)</td>
|
||||
<td class="text-right">{{sync.skippedBlocks}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sync Type</td>
|
||||
<td translate>Sync Type</td>
|
||||
<td class="text-right">{{sync.type}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Last Block</h2>
|
||||
<h2 translate>Last Block</h2>
|
||||
<table class="table" style="table-layout: fixed" data-ng-controller="StatusController" data-ng-init="getStatus('LastBlockHash')">
|
||||
<thead data-ng-include src="'/views/includes/infoStatus.html'"></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Last Block Hash (Bitcoind)</td>
|
||||
<td translate>Last Block Hash (Bitcoind)</td>
|
||||
<td class="text-right ellipsis"><a href="/block/{{lastblockhash}}">{{lastblockhash}}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Current Blockchain Tip (insight)</td>
|
||||
<td translate>Current Blockchain Tip (insight)</td>
|
||||
<td class="text-right ellipsis"><a href="/block/{{syncTipHash}}">{{syncTipHash}}</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Transaction Output Set Information</h2>
|
||||
<h2 translate>Transaction Output Set Information</h2>
|
||||
<div data-ng-controller="StatusController">
|
||||
<button data-ng-click="txoutLoading=1;getStatus('TxOutSetInfo')" class="btn btn-default" data-ng-show="!txoutsetinfo.height">
|
||||
Show Transaction Output data
|
||||
<span translate>Show Transaction Output data</span>
|
||||
<span data-ng-show="txoutLoading" class="glyphicon glyphicon-refresh icon-rotate"></span>
|
||||
</button >
|
||||
|
||||
|
@ -84,31 +84,31 @@
|
|||
<thead data-ng-include src="'/views/includes/infoStatus.html'"></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Height</td>
|
||||
<td translate>Height</td>
|
||||
<td class="text-right"><a href="/block-index/{{txoutsetinfo.height}}">{{txoutsetinfo.height}}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Best Block</td>
|
||||
<td translate>Best Block</td>
|
||||
<td class="text-right ellipsis"><a href="/block/{{txoutsetinfo.bestblock}}">{{txoutsetinfo.bestblock}}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Transactions</td>
|
||||
<td translate>Transactions</td>
|
||||
<td class="text-right"> {{txoutsetinfo.transactions}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Transaction Outputs</td>
|
||||
<td translate>Transaction Outputs</td>
|
||||
<td class="text-right">{{txoutsetinfo.txouts}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bytes Serialized</td>
|
||||
<td translate>Bytes Serialized</td>
|
||||
<td class="text-right">{{txoutsetinfo.bytes_serialized}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Hash Serialized</td>
|
||||
<td translate>Hash Serialized</td>
|
||||
<td class="text-right ellipsis">{{txoutsetinfo.hash_serialized}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total Amount</td>
|
||||
<td translate>Total Amount</td>
|
||||
<td class="text-right">{{txoutsetinfo.total_amount}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -117,44 +117,44 @@
|
|||
</div> <!-- END OF COL-8 -->
|
||||
|
||||
<div class="col-xs-12 col-md-4 col-gray">
|
||||
<h2>Bitcoin node information</h2>
|
||||
<h2 translate>Bitcoin node information</h2>
|
||||
<table class="table" data-ng-controller="StatusController" data-ng-init="getStatus('Info')">
|
||||
<thead data-ng-include src="'/views/includes/infoStatus.html'"></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Version</td>
|
||||
<td translate>Version</td>
|
||||
<td class="text-right">{{info.version}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Protocol version</td>
|
||||
<td translate>Protocol version</td>
|
||||
<td class="text-right">{{info.protocolversion}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Blocks</td>
|
||||
<td translate>Blocks</td>
|
||||
<td class="text-right"><a href="/block-index/{{info.blocks}}">{{info.blocks}}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Time Offset</td>
|
||||
<td translate>Time Offset</td>
|
||||
<td class="text-right">{{info.timeoffset}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Connections to other nodes</td>
|
||||
<td translate>Connections to other nodes</td>
|
||||
<td class="text-right">{{info.connections}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mining Difficulty</td>
|
||||
<td translate>Mining Difficulty</td>
|
||||
<td class="text-right">{{info.difficulty}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Testnet</td>
|
||||
<td translate>Testnet</td>
|
||||
<td class="text-right">{{info.testnet}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Proxy setting</td>
|
||||
<td translate>Proxy setting</td>
|
||||
<td class="text-right">{{info.proxy}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Info Errors</td>
|
||||
<td translate>Info Errors</td>
|
||||
<td class="text-right">{{info.infoErrors}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -3,15 +3,19 @@
|
|||
<div class="secondary_navbar hidden-xs hidden-sm" scroll data-ng-class="{'hidden': !secondaryNavbar}" data-ng-show="tx.txid" data-ng-init="hideSNavbar=0">
|
||||
<div class="container" data-ng-if="!hideSNavbar">
|
||||
<div class="col-md-6 col-lg-7 text-left">
|
||||
<h3>Transaction</h3>
|
||||
<h3 translate>Transaction</h3>
|
||||
<div class="ellipsis">
|
||||
<small>{{tx.txid}}</small>
|
||||
<span class="btn-copy" clip-copy="tx.txid"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-5 text-right">
|
||||
<span data-ng-show="tx.confirmations" class="txvalues txvalues-success">{{tx.confirmations}} Confirmations</span>
|
||||
<span data-ng-show="!tx.confirmations" class="txvalues txvalues-danger">Unconfirmed Transaction!</span>
|
||||
<span data-ng-show="tx.confirmations" class="txvalues
|
||||
txvalues-success">{{tx.confirmations}}
|
||||
<span translate>Confirmations</span>
|
||||
</span>
|
||||
<span data-ng-show="!tx.confirmations"
|
||||
class="txvalues txvalues-danger" translate>Unconfirmed Transaction!</span>
|
||||
<span class="txvalues txvalues-primary">{{$root.currency.getConvertion(tx.valueOut) || tx.valueOut + ' BTC' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -23,43 +27,43 @@
|
|||
</div>
|
||||
</div>
|
||||
<div data-ng-if="tx.txid">
|
||||
<h1>Transaction
|
||||
<h1><span translate>Transaction</span>
|
||||
<small data-ng-show="from_vin || from_vout">
|
||||
<span data-ng-show="from_vin">Input</span>
|
||||
<span data-ng-show="from_vout">Output</span>
|
||||
<span data-ng-show="from_vin" translate>Input</span>
|
||||
<span data-ng-show="from_vout" translate>Output</span>
|
||||
<span>{{v_index}}</span>
|
||||
</small>
|
||||
</h1>
|
||||
<div class="progress progress-striped active" data-ng-if="!tx.txid">
|
||||
<div class="progress-bar progress-bar-info" style="width: 100%">
|
||||
<span>Loading Transaction Details <span class="loader-gif"></span>
|
||||
<span translate>Loading Transaction Details</span> <span class="loader-gif"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div data-ng-if="tx.txid">
|
||||
<div class="well well-sm ellipsis">
|
||||
<strong>Transaction</strong>
|
||||
<strong translate>Transaction</strong>
|
||||
<span class="txid text-muted">{{tx.txid}}</span>
|
||||
<span class="btn-copy" clip-copy="tx.txid"></span>
|
||||
</div>
|
||||
<h2>Summary</h2>
|
||||
<h2 translate>Summary</h2>
|
||||
<table class="table" style="table-layout: fixed">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong> Size </strong></td>
|
||||
<td><strong translate>Size</strong></td>
|
||||
<td class="text-muted text-right">{{tx.size}} (bytes)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Received Time </strong></td>
|
||||
<td><strong translate>Received Time</strong></td>
|
||||
<td data-ng-show="tx.time" class="text-muted text-right">{{tx.time * 1000|date:'medium'}}</td>
|
||||
<td data-ng-show="!tx.time" class="text-muted text-right">N/A</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Mined Time </strong></td>
|
||||
<td><strong translate>Mined Time</strong></td>
|
||||
<td data-ng-show="tx.time" class="text-muted text-right">{{tx.blocktime * 1000|date:'medium'}}</td>
|
||||
<td data-ng-show="!tx.time" class="text-muted text-right">N/A</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Included in Block </strong></td>
|
||||
<td><strong translate>Included in Block</strong></td>
|
||||
<td data-ng-show="tx.blockhash" class="text-muted text-right">
|
||||
<div class="ellipsis">
|
||||
<a href="/block/{{tx.blockhash}}">{{tx.blockhash}}</a>
|
||||
|
@ -82,7 +86,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<h2>Details</h2>
|
||||
<h2 translate>Details</h2>
|
||||
<div class="block-tx" data-ng-if="tx.txid">
|
||||
<div data-ng-include src="'/views/transaction/tx.html'"></div>
|
||||
</div>
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<div class="alert alert-warning" data-ng-show="!txs[0].txid && !loading">There are no transactions involving this address.</div>
|
||||
<div class="alert alert-warning"
|
||||
data-ng-show="!txs[0].txid && !loading"
|
||||
translate>There are no transactions involving this address.</div>
|
||||
<div class="block-tx" 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="loading">
|
||||
<div class="progress-bar progress-bar-info" style="width: 100%">
|
||||
<span>Loading Transactions...</span>
|
||||
<span translate>Loading Transactions...</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
</div>
|
||||
<div class="col-xs-5 col-md-4 text-right text-muted">
|
||||
<div data-ng-show="tx.firstSeenTs">
|
||||
first seen at
|
||||
<span translate>first seen at</span>
|
||||
<time>{{tx.firstSeenTs * 1000 | date:'medium'}}</time>
|
||||
</div>
|
||||
<div data-ng-show="tx.time && !tx.firstSeenTs">
|
||||
mined
|
||||
<span translate>mined</span>
|
||||
<time>{{tx.time * 1000 | date:'medium'}}</time>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -24,7 +24,7 @@
|
|||
<div class="row" data-ng-if="tx.isCoinBase">
|
||||
<div class="col-md-12 transaction-vin-vout" data-ng-repeat="vin in tx.vin">
|
||||
<div class="ellipsis">
|
||||
<span>No Inputs (Newly Generated Coins)</span>
|
||||
<span translate>No Inputs (Newly Generated Coins)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -43,15 +43,22 @@
|
|||
<a href="/address/{{vin.addr}}" data-ng-show="!vin.notAddr && vin.addr != $root.currentAddr">{{vin.addr}}</a>
|
||||
</div>
|
||||
<div data-ng-show="vin.unconfirmedInput" class="text-danger"> <span class="glyphicon glyphicon-warning-sign"></span> (Input unconfirmed)</div>
|
||||
<div data-ng-show="vin.dbError" class="text-danger"> <span class="glyphicon glyphicon-warning-sign"></span> Incoherence in levelDB detected: {{vin.dbError}}</div>
|
||||
<div data-ng-show="vin.doubleSpentTxID" class="text-danger"> <span class="glyphicon glyphicon-warning-sign"></span> Double spent attempt detected. From tx:
|
||||
<div data-ng-show="vin.dbError" class="text-danger">
|
||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
||||
<span translate>Incoherence in levelDB detected:</span> {{vin.dbError}}
|
||||
</div>
|
||||
<div data-ng-show="vin.doubleSpentTxID" class="text-danger">
|
||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
||||
<span translate>Double spent attempt detected. From tx:</span>
|
||||
<a href="/tx/{{vin.doubleSpentTxID}}">{{vin.doubleSpentTxID}},{{vin.doubleSpentIndex}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="showmore_collapse text-left" data-ng-show="tx.vinSimple.length > 5" data-ng-class="{ 'hidden': itemsExpanded}">
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="sizeInNoExpanded != tx.vinSimple.length" ng-click="currentInNoExpanded=0; sizeInNoExpanded=5"><i class="glyphicon glyphicon-chevron-up"></i> Show less</button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="currentInNoExpanded >= tx.vinSimple.length/sizeInNoExpanded - 1" ng-click="currentInNoExpanded=0; sizeInNoExpanded=tx.vinSimple.length"><i class="glyphicon glyphicon-chevron-down"></i> Show more</button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="sizeInNoExpanded != tx.vinSimple.length" ng-click="currentInNoExpanded=0; sizeInNoExpanded=5"><i class="glyphicon glyphicon-chevron-up"></i>
|
||||
<span translate>Show less</span></button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="currentInNoExpanded >= tx.vinSimple.length/sizeInNoExpanded - 1" ng-click="currentInNoExpanded=0; sizeInNoExpanded=tx.vinSimple.length"><i class="glyphicon glyphicon-chevron-down"></i>
|
||||
<span translate>Show more</span></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -69,15 +76,16 @@
|
|||
<a href="/address/{{vin.addr}}" data-ng-show="!vin.notAddr">{{vin.addr}}</a>
|
||||
</div>
|
||||
<div data-ng-show="vin.unconfirmedInput" class="text-danger">
|
||||
<span class="glyphicon glyphicon-warning-sign"></span> (Input unconfirmed)
|
||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
||||
<span translate>(Input unconfirmed)</span>
|
||||
</div>
|
||||
<div data-ng-show="vin.dbError" class="text-danger">
|
||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
||||
Incoherence in levelDB detected: {{vin.dbError}}
|
||||
<span translate>Incoherence in levelDB detected:</span> {{vin.dbError}}
|
||||
</div>
|
||||
<div data-ng-show="vin.doubleSpentTxID" class="text-danger">
|
||||
<span class="glyphicon glyphicon-warning-sign"></span>
|
||||
Double spent attempt detected. From tx:
|
||||
<span translate>Double spent attempt detected. From tx:</span>
|
||||
<a href="/tx/{{<vin class=""></vin>doubleSpentTxID}}">{{vin.doubleSpentTxID}},{{vin.doubleSpentIndex}}</a>
|
||||
</div>
|
||||
</div> <!-- END OF PANEL BODY -->
|
||||
|
@ -91,12 +99,16 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="text-left">
|
||||
<button type="button" class="btn btn-default btn-sm" data-ng-show="(from_vin) && tx.vin.length > 1" data-ng-disabled="fromVinCollapsed" data-ng-click="currentInExpanded=0; sizeInExpanded=tx.vin.length;fromVinCollapsed=1">Show input #{{ v_index }}</button>
|
||||
<button type="button" class="btn btn-default btn-sm" data-ng-show="(from_vin) && tx.vin.length > 1" data-ng-disabled="!fromVinCollapsed" data-ng-click="currentInExpanded=0; sizeInExpanded=tx.vin.length;fromVinCollapsed=0">Show all</button>
|
||||
<button type="button" class="btn btn-default btn-sm" data-ng-show="(from_vin) && tx.vin.length > 1" data-ng-disabled="fromVinCollapsed" data-ng-click="currentInExpanded=0; sizeInExpanded=tx.vin.length;fromVinCollapsed=1">
|
||||
<span translate>Show input</span> #{{ v_index }}</button>
|
||||
<button type="button" class="btn btn-default btn-sm" data-ng-show="(from_vin) && tx.vin.length > 1" data-ng-disabled="!fromVinCollapsed" data-ng-click="currentInExpanded=0; sizeInExpanded=tx.vin.length;fromVinCollapsed=0">
|
||||
<span translate>Show all</span></button>
|
||||
</div>
|
||||
<div class="showmore_collapse text-left" data-ng-show="tx.vin.length > 5 && !fromVinCollapsed" data-ng-class="{ 'hidden': !itemsExpanded}">
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="sizeInExpanded != tx.vin.length" ng-click="currentInExpanded=0; sizeInExpanded=5"><i class="glyphicon glyphicon-chevron-up"></i> Show less</button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="currentInExpanded >= tx.vin.length/sizeInExpanded - 1" ng-click="currentInExpanded=0; sizeInExpanded=tx.vin.length"><i class="glyphicon glyphicon-chevron-down"></i> Show more</button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="sizeInExpanded != tx.vin.length" ng-click="currentInExpanded=0; sizeInExpanded=5"><i class="glyphicon glyphicon-chevron-up"></i>
|
||||
<span translate>Show less</span></button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="currentInExpanded >= tx.vin.length/sizeInExpanded - 1" ng-click="currentInExpanded=0; sizeInExpanded=tx.vin.length"><i class="glyphicon glyphicon-chevron-down"></i>
|
||||
<span translate>Show more</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -131,8 +143,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="showmore_collapse text-left" data-ng-show="tx.voutSimple.length > 5" data-ng-class="{ 'hidden': itemsExpanded}">
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="sizeOutNoExpanded != tx.voutSimple.length" ng-click="currentOutNoExpanded=0; sizeOutNoExpanded=5"><i class="glyphicon glyphicon-chevron-up"></i> Show less</button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="currentOutNoExpanded >= tx.voutSimple.length/sizeOutNoExpanded - 1" ng-click="currentOutNoExpanded=0; sizeOutNoExpanded=tx.voutSimple.length"><i class="glyphicon glyphicon-chevron-down"></i> Show more</button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="sizeOutNoExpanded != tx.voutSimple.length" ng-click="currentOutNoExpanded=0; sizeOutNoExpanded=5"><i class="glyphicon glyphicon-chevron-up"></i>
|
||||
<span translate>Show less</span></button>
|
||||
<button type="button" class="btn btn-info btn-sm" ng-hide="currentOutNoExpanded >= tx.voutSimple.length/sizeOutNoExpanded - 1" ng-click="currentOutNoExpanded=0; sizeOutNoExpanded=tx.voutSimple.length"><i class="glyphicon glyphicon-chevron-down"></i>
|
||||
<span translate>Show more</span></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -154,7 +168,7 @@
|
|||
</div>
|
||||
<div style="padding-left: 0.7em; padding-bottom: 2em; word-wrap:break-word" data-ng-class="{true: 'v_highlight', false: ''}[from_vout == true && v_index == vout.n]">
|
||||
<p class="small">
|
||||
<strong>Type</strong>
|
||||
<strong translate>Type</strong>
|
||||
<span class="text-muted">{{vout.scriptPubKey.type}}</span>
|
||||
</p>
|
||||
<div class="small">
|
||||
|
@ -178,17 +192,19 @@
|
|||
</div>
|
||||
|
||||
<div class="well well-sm bgwhite ellipsis" data-ng-if="itemsExpanded && !block.hash && tx.blockhash">
|
||||
<strong>Included in Block</strong> <a class="text-muted" href="/block/{{tx.blockhash}}">{{tx.blockhash}}</a>
|
||||
<strong translate>Included in Block</strong> <a class="text-muted" href="/block/{{tx.blockhash}}">{{tx.blockhash}}</a>
|
||||
<span class="btn-copy" clip-copy="tx.blockhash"></span>
|
||||
</div>
|
||||
|
||||
<div class="line-top row" data-ng-hide="!tx">
|
||||
<div class="col-xs-6 col-sm-4 col-md-4">
|
||||
<span data-ng-show="!tx.isCoinBase && !isNaN(parseFloat(tx.fees))" class="txvalues txvalues-default">Fees: {{$root.currency.getConvertion(tx.fees) || tx.fees + 'BTC'}} </span>
|
||||
<span data-ng-show="!tx.isCoinBase && !isNaN(parseFloat(tx.fees))"
|
||||
class="txvalues txvalues-default"><span translate>Fee</span>: {{$root.currency.getConvertion(tx.fees) || tx.fees + 'BTC'}} </span>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-8 col-md-8 text-right">
|
||||
<span data-ng-show="tx.confirmations" class="txvalues txvalues-success">{{tx.confirmations}} Confirmations</span>
|
||||
<span data-ng-show="!tx.confirmations" class="txvalues txvalues-danger">Unconfirmed Transaction!</span>
|
||||
<span data-ng-show="tx.confirmations" class="txvalues
|
||||
txvalues-success">{{tx.confirmations}} <span translate>Confirmations</span></span>
|
||||
<span data-ng-show="!tx.confirmations" class="txvalues txvalues-danger" translate>Unconfirmed Transaction!</span>
|
||||
<span class="txvalues txvalues-primary">{{$root.currency.getConvertion(tx.valueOut) || tx.valueOut + ' BTC' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue