- 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>
104 lines
4.7 KiB
HTML
104 lines
4.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>OASIS</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
|
|
<!-- HEADER -->
|
|
<header>
|
|
<div class="header-left">
|
|
<img src="../oasis-logo.png" class="logo" alt="OASIS">
|
|
<div class="header-titles">
|
|
<span class="app-title">OASIS</span>
|
|
<span class="app-sub">SOLAR NET HUB PANEL</span>
|
|
</div>
|
|
</div>
|
|
<div class="status-dot" id="globalDot" data-state="unknown">●</div>
|
|
</header>
|
|
|
|
<!-- TABS -->
|
|
<nav class="tabbar">
|
|
<button class="tabBtn active" data-tab="oasis" onclick="switchTab('oasis')">OASIS</button>
|
|
<button class="tabBtn" data-tab="ecoin" onclick="switchTab('ecoin')">ECOIN</button>
|
|
<button class="tabBtn" data-tab="sistema" onclick="switchTab('sistema')">SISTEMA</button>
|
|
</nav>
|
|
|
|
<!-- CONTENIDO -->
|
|
<main>
|
|
|
|
<!-- ── OASIS ── -->
|
|
<section class="tab-panel active" id="tab-oasis">
|
|
|
|
<div class="status-card" id="oasisCard" data-state="unknown">
|
|
<div class="card-stripe"></div>
|
|
<div class="card-body">
|
|
<div class="card-state" id="oasisState">COMPROBANDO</div>
|
|
<div class="card-sub" id="oasisSub">iniciando...</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions">
|
|
<div class="action-row">
|
|
<button class="btn primary" id="btnStart" onclick="send('oasis-start')" disabled>▶ INICIAR</button>
|
|
<button class="btn" id="btnStop" onclick="send('oasis-stop')" disabled>■ DETENER</button>
|
|
</div>
|
|
<div class="action-row">
|
|
<button class="btn" id="btnInstall" onclick="send('oasis-install')">⬇ INSTALAR</button>
|
|
<button class="btn" id="btnBrowser" onclick="send('oasis-browser')" disabled>◎ ABRIR WEB</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="infobox">
|
|
<div class="info-row"><span class="ik">VERSION</span><span class="iv" id="iVer">—</span></div>
|
|
<div class="info-row"><span class="ik">NODE.JS</span><span class="iv" id="iNode">—</span></div>
|
|
<div class="info-row"><span class="ik">RUTA</span> <span class="iv" id="iDir">—</span></div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ── ECOIN ── -->
|
|
<section class="tab-panel" id="tab-ecoin">
|
|
|
|
<div class="status-card" id="ecoinCard" data-state="unknown">
|
|
<div class="card-stripe"></div>
|
|
<div class="card-body">
|
|
<div class="card-state" id="ecoinState">COMPROBANDO</div>
|
|
<div class="card-sub" id="ecoinSub">iniciando...</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions">
|
|
<div class="action-row">
|
|
<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="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">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>
|
|
|
|
<!-- ── SISTEMA ── -->
|
|
<section class="tab-panel" id="tab-sistema">
|
|
<div class="log-header">LOG DE ACTIVIDAD</div>
|
|
<div class="log-area" id="logArea"></div>
|
|
<button class="btn btn-clear" onclick="clearLog()">LIMPIAR LOG</button>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<script src="app.js"></script>
|
|
</body>
|
|
</html>
|