Eval results for tickets 04-07; grader ignores bot-run skips; resolve tickets 01-07

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
VasanthandClaude Sonnet 5.5 committed 2026-10-16 16:56:16 +05:30
1 parent 258bfbb500
commit 312742cfef
17 files changed
+2546 -19

No files matched your search

+14 -8
View File
@@ -2,14 +2,14 @@
<!--
Generic RPA dashboard (no AI). Derived from Tebra ERA (reference/tebra_dashboard.html).
One file: works inside PyQt6 QWebEngineView (QWebChannel bridge) OR served by any web
backend (falls back to polling GET /dashboard and /run/status).
Theme = the body / body.dark token blocks only (see themes.md). Custom brand #7a3cff.
backend (falls back to polling GET <API_BASE>/dashboard and /run/status).
Placeholders filled. Theme = the body / body.dark token blocks only (see themes.md).
-->
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>RPA Dashboard</title>
<title>RPA Bot</title>
<script src="qrc:///qtwebchannel/qwebchannel.js"></script>
<style>
/* ===== THEME TOKENS (swap these for a preset/custom palette, see themes.md) ===== */
@@ -125,7 +125,7 @@ td{padding:10px 14px;border-bottom:1px solid var(--border)}
<aside class="sidebar">
<div class="logo-area">
<div class="logo-box"><img src="" alt="" onerror="this.remove()"></div>
<div><div class="logo-title">RPA Dashboard</div><div class="logo-sub">Bot status &amp; reports</div></div>
<div><div class="logo-title">RPA Bot</div><div class="logo-sub">Automation dashboard</div></div>
</div>
<nav class="nav">
<button class="nav-item active" data-tab="dashboard" title="Dashboard"><svg viewBox="0 0 24 24"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg><span>Dashboard</span></button>
@@ -179,15 +179,17 @@ td{padding:10px 14px;border-bottom:1px solid var(--border)}
<div class="tbl-wrap"><table><thead id="r-head"></thead><tbody id="r-body"></tbody></table></div>
</div>
</div>
</section>
</main>
</div>
<script>
// ===== CONFIG (fill per project) =====
const STEPS = ["Initializing","Login","Process items","Completed"];
const REPORT_COLUMNS = [{"key":"item","label":"Item"},{"key":"batch","label":"Batch"},{"key":"status","label":"Status"}];
const API_BASE = ""; // web mode only, e.g. "/api"
const STEPS = ["Initializing","Login","Process items","Completed"]; // e.g. ["Initializing","Login","Process items","Completed"]
const REPORT_COLUMNS = [{"key":"item","label":"Item"},{"key":"date","label":"Date"},{"key":"status","label":"Status"}]; // e.g. [{key:"item",label:"Item"},{key:"status",label:"Status"}]
const API_BASE = ""; // web mode only, e.g. "/api"
const SAMPLE_DATA = true; // no bot yet: the page answers its own data actions. Set false once wired.
const TABS = {dashboard:["Dashboard","Overview of every batch"],run:["Run","Live progress and log"],report:["Report","Result of every processed item"]};
@@ -263,7 +265,7 @@ const $=id=>document.getElementById(id), tbTitle=$('tb-title'), tbSub=$('tb-sub'
function esc(s){return String(s??'').replace(/[&<>"]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[c]));}
function setDark(on){ document.body.classList.toggle('dark',on); $('mode-btn').setAttribute('aria-pressed',on); $('mode-btn').textContent=on?'☀':'🌙'; }
function toggleDark(){ const on=!document.body.classList.contains('dark'); setDark(on); api('set_dark',on); }
function setUser(u){ $('u-name').textContent=u.username; $('u-role').textContent=u.role; $('avatar').textContent=(u.username||'U')[0].toUpperCase(); }
function setUser(u){ document.body.dataset.role=u.role||''; $('u-name').textContent=u.username; $('u-role').textContent=u.role; $('avatar').textContent=(u.username||'U')[0].toUpperCase(); }
function setStatus(state,msg){ $('st-dot').className='dot '+state; $('st-text').textContent=msg||state; $('run-btn').disabled=state==='running'; }
function startRun(){ showTab('run'); $('log').innerHTML=''; setStep(STEPS[0],0); api('start_automation'); }
@@ -301,6 +303,10 @@ function renderReport(){
?`<td><span class="pill ${esc(r.bucket||'attention')}">${esc(r.status)}</span></td>`:`<td>${esc(r[c.key])}</td>`).join('')+'</tr>').join('')
: `<tr><td class="empty" colspan="${REPORT_COLUMNS.length}">No rows yet</td></tr>`;
}
renderSteps();
startTransport();
</script>