From be8c814da60bd0c3566d1a4df56a59e05e7215a8 Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Fri, 13 Mar 2026 13:50:27 +0000 Subject: [PATCH] feat: simplify open issues tab to link list Replace the verbose issue cards (body preview + inline comment form) with a clean list of links: issue number, title, and an arrow to open the issue on Gitea. Keeps the tab minimal and noise-free. Closes #4 --- server.js | 50 ++++++++++++++------------------------------------ 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/server.js b/server.js index f5b43d5..63cf2f2 100644 --- a/server.js +++ b/server.js @@ -142,14 +142,13 @@ app.get(['/widget.js', BASE + '/widget.js'], (req, res) => { .fb-btn:hover { opacity:.85; } .fb-btn:disabled { opacity:.4; cursor:default; } .fb-status { font-size:.8rem; text-align:center; min-height:1.1rem; } - .fb-issue-item { background:#0d0d0d; border:1px solid #222; border-radius:10px; padding:.9rem 1rem; } - .fb-issue-title { color:#e0e0e0; font-size:.9rem; font-weight:600; margin:0 0 .3rem; } - .fb-issue-meta { color:#555; font-size:.75rem; margin-bottom:.6rem; } - .fb-issue-body { color:#888; font-size:.8rem; margin-bottom:.7rem; white-space:pre-wrap; word-break:break-word; } - .fb-comment-area { display:flex; flex-direction:column; gap:.5rem; } - .fb-comment-input { min-height:55px; } - .fb-comment-btn { background:#2a2a2a; color:#ccc; font-size:.8rem; padding:.45rem .8rem; width:auto; align-self:flex-end; border-radius:6px; } - .fb-comment-btn:hover { background:#333; opacity:1; } + .fb-issue-link { display:flex; align-items:center; justify-content:space-between; gap:.5rem; + padding:.6rem .4rem; border-bottom:1px solid #1a1a1a; text-decoration:none; color:#e0e0e0; + font-size:.875rem; transition:color .15s; } + .fb-issue-link:last-child { border-bottom:none; } + .fb-issue-link:hover { color:#7c9ef5; } + .fb-issue-num { color:#555; font-size:.8rem; flex-shrink:0; } + .fb-issue-arrow { color:#444; font-size:.8rem; flex-shrink:0; } .fb-empty { color:#555; font-size:.85rem; text-align:center; padding:1.5rem 0; } .fb-loading { color:#555; font-size:.85rem; text-align:center; padding:1rem 0; } /* Picker row inside new-issue form */ @@ -382,34 +381,13 @@ app.get(['/widget.js', BASE + '/widget.js'], (req, res) => { if (!issues.length) { list.innerHTML = '
No open issues 🎉
'; return; } list.innerHTML = ''; issues.forEach(function(issue) { - var el = document.createElement('div'); - el.className = 'fb-issue-item'; - var preview = (issue.body || '').replace(/---[\\s\\S]*$/, '').trim().slice(0, 150); - el.innerHTML = \` -

#\${issue.number} \${esc(issue.title)}

-

\${issue.comments} comment\${issue.comments!==1?'s':''} · view on Gitea ↗

- \${preview ? '

' + esc(preview) + '

' : ''} -
- - -
- \`; - list.appendChild(el); - el.querySelector('.fb-comment-btn').addEventListener('click', function() { - var num = this.dataset.issue; - var ta = el.querySelector('textarea[data-issue="'+num+'"]'); - var body = ta.value.trim(); - if (!body) return; - var btn = this; - btn.disabled = true; btn.textContent = 'Posting…'; - fetch(SELF + '/api/comment', { - method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ repo: cfg.repo, issue_number: num, body }) - }).then(function(r) { return r.json(); }).then(function(d) { - if (d.ok) { ta.value=''; btn.textContent='✓ Posted!'; setTimeout(function(){ btn.textContent='Comment'; btn.disabled=false; }, 2000); } - else { btn.textContent='Error'; btn.disabled=false; } - }).catch(function() { btn.textContent='Error'; btn.disabled=false; }); - }); + var a = document.createElement('a'); + a.className = 'fb-issue-link'; + a.href = issue.url; + a.target = '_blank'; + a.rel = 'noopener'; + a.innerHTML = \`#\${issue.number}\${esc(issue.title)}↗\`; + list.appendChild(a); }); }).catch(function() { list.innerHTML = '
Failed to load issues.
'; }); }