feat(panel-v3): integración ECOIN — daemon, wallet info y GUI
- Detección de ecoind via JSON-RPC (puerto 7474, lee ~/.ecoin/ecoin.conf) - Botones INICIAR/DETENER/ABRIR GUI/VER INFO en pestaña ECOIN - ABRIR GUI para ecoind antes de lanzar ecoin-qt (no pueden coexistir) - Compilación automática de ecoin-qt con qmake si no está compilado - Grid en tiempo real: balance ECO, bloques, conexiones, wallet, daemon - ecoin_rpc() helper para llamadas JSON-RPC al daemon - _start_ecoin/_stop_ecoin/_open_ecoin_gui/_ecoin_info en panel.py Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
68b3ceff8d
commit
fe030f2066
7 changed files with 235 additions and 35 deletions
|
|
@ -59,27 +59,38 @@ function updateStatus(data) {
|
|||
document.getElementById('globalDot').dataset.state = state;
|
||||
|
||||
// --- ECOIN ---
|
||||
const eCard = document.getElementById('ecoinCard');
|
||||
const estate = data.ecoin_installed ? 'running' : 'unknown';
|
||||
eCard.dataset.state = estate;
|
||||
const eCard = document.getElementById('ecoinCard');
|
||||
eCard.dataset.state = data.ecoin_running ? 'running' : (data.ecoin_installed ? 'stopped' : 'unknown');
|
||||
|
||||
if (data.ecoin_installed) {
|
||||
document.getElementById('ecoinState').textContent = 'COMPILADO';
|
||||
document.getElementById('ecoinSub').textContent = 'wallet ECOIN disponible';
|
||||
_btn('btnEGui', false);
|
||||
_btn('btnEWallet', false);
|
||||
_btn('btnEConnect', false);
|
||||
if (data.ecoin_running) {
|
||||
document.getElementById('ecoinState').textContent = 'ACTIVO';
|
||||
document.getElementById('ecoinSub').textContent = 'daemon corriendo (headless)';
|
||||
_btn('btnEStart', true);
|
||||
_btn('btnEStop', false);
|
||||
_btn('btnEGui', false);
|
||||
_btn('btnEInfo', false);
|
||||
} else if (data.ecoin_installed) {
|
||||
document.getElementById('ecoinState').textContent = 'INSTALADO';
|
||||
document.getElementById('ecoinSub').textContent = 'daemon detenido';
|
||||
_btn('btnEStart', false);
|
||||
_btn('btnEStop', true);
|
||||
_btn('btnEGui', false);
|
||||
_btn('btnEInfo', true);
|
||||
} else {
|
||||
document.getElementById('ecoinState').textContent = 'NO INSTALADO';
|
||||
document.getElementById('ecoinSub').textContent = 'instala ECOIN para comenzar';
|
||||
_btn('btnEGui', true);
|
||||
_btn('btnEWallet', true);
|
||||
_btn('btnEConnect', true);
|
||||
_btn('btnEStart', true);
|
||||
_btn('btnEStop', true);
|
||||
_btn('btnEGui', true);
|
||||
_btn('btnEInfo', true);
|
||||
}
|
||||
|
||||
document.getElementById('eWallet').textContent = data.ecoin_wallet ? 'Si' : 'No';
|
||||
document.getElementById('eQt').textContent = data.ecoin_qt ? 'Si' : 'No';
|
||||
document.getElementById('eDaemon').textContent = data.ecoin_daemon ? 'Si' : 'No';
|
||||
// Info grid ecoin
|
||||
document.getElementById('eBalance').textContent = data.ecoin_balance != null ? data.ecoin_balance + ' ECO' : '—';
|
||||
document.getElementById('eBlocks').textContent = data.ecoin_blocks != null ? data.ecoin_blocks : '—';
|
||||
document.getElementById('eConns').textContent = data.ecoin_connections != null ? data.ecoin_connections : '—';
|
||||
document.getElementById('eWallet').textContent = data.ecoin_wallet ? 'Si' : 'No';
|
||||
document.getElementById('eDaemon').textContent = data.ecoin_daemon ? 'Si' : 'No';
|
||||
}
|
||||
|
||||
// ── Log (llamado desde Python) ────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -72,19 +72,21 @@
|
|||
|
||||
<div class="actions">
|
||||
<div class="action-row">
|
||||
<button class="btn primary" id="btnEInstall" onclick="send('ecoin-install')">⬇ INSTALAR</button>
|
||||
<button class="btn" id="btnEGui" onclick="send('ecoin-gui')" disabled>◈ ABRIR GUI</button>
|
||||
<button class="btn primary" id="btnEStart" onclick="send('ecoin-start')" disabled>▶ INICIAR</button>
|
||||
<button class="btn" id="btnEStop" onclick="send('ecoin-stop')" disabled>■ DETENER</button>
|
||||
</div>
|
||||
<div class="action-row">
|
||||
<button class="btn" id="btnEWallet" onclick="send('ecoin-wallet')" disabled>✦ CREAR WALLET</button>
|
||||
<button class="btn" id="btnEConnect" onclick="send('ecoin-connect')" disabled>⟳ CONECTAR</button>
|
||||
<button class="btn" id="btnEGui" onclick="send('ecoin-gui')" disabled>◈ ABRIR GUI</button>
|
||||
<button class="btn" id="btnEInfo" onclick="send('ecoin-info')" disabled>≡ VER INFO</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="infobox">
|
||||
<div class="info-row"><span class="ik">WALLET</span> <span class="iv" id="eWallet">—</span></div>
|
||||
<div class="info-row"><span class="ik">ECOIN-QT</span><span class="iv" id="eQt">—</span></div>
|
||||
<div class="info-row"><span class="ik">ECOIND</span> <span class="iv" id="eDaemon">—</span></div>
|
||||
<div class="info-row"><span class="ik">BALANCE</span> <span class="iv" id="eBalance">—</span></div>
|
||||
<div class="info-row"><span class="ik">BLOQUES</span> <span class="iv" id="eBlocks">—</span></div>
|
||||
<div class="info-row"><span class="ik">CONEXIONES</span> <span class="iv" id="eConns">—</span></div>
|
||||
<div class="info-row"><span class="ik">WALLET</span> <span class="iv" id="eWallet">—</span></div>
|
||||
<div class="info-row"><span class="ik">ECOIND</span> <span class="iv" id="eDaemon">—</span></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue