Files
BountyBoard/web/templates/board.html
etalon c59aea42ef feat: Y2K dither theme, filter toolbars, chat bubble widget; fix alignment root causes
- theme rework (user request): white paper bg, brown ink, ordered-dither
  halftone textures, hard offset Y2K shadows, dithered masthead bands;
  dark theme matched; token test + DECISIONS updated
- fix: .card + .card stacking margin leaked into grid layouts, shifting
  every card except the first (the 'always the first item' reports)
- fix: CSP style-src 'self' silently dropped every inline style attribute
  (misaligned save button, stat values, editor attach button, bell badge);
  styles now allow inline, scripts remain strict per §12
- fix: [hidden] is now display:none !important so flex containers cannot
  defeat it (chat panel/footers)
- board + metrics filters live in boxed .toolbar rows with baseline-aligned
  controls; metric stat cards use a uniform .stat layout
- new-conversation dialog: fixed 440px width and 180px results list (no
  more resizing while searching), full-width result rows, picked people
  drop out of the list
- floating messages bubble bottom-right on all pages (except /messages):
  unread badge, mini panel with conversation list, thread view, quick
  composer, live WS updates; toasts moved up to clear it

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 21:54:27 +02:00

45 lines
1.4 KiB
HTML

{{define "content"}}
<h1>Bounty Board</h1>
<div class="error-box" id="error" role="alert"></div>
<div class="toolbar mt" id="board-filters">
<div class="field">
<label for="f-q">Search</label>
<input type="search" id="f-q" placeholder="Search title or description… ( / )">
</div>
<div class="field">
<label for="f-customer">Customer</label>
<select id="f-customer"><option value="">All</option></select>
</div>
<div class="field">
<label for="f-min">Min bounty</label>
<input type="number" id="f-min" min="0" step="10" placeholder="0">
</div>
<div class="field">
<label for="f-sort">Sort</label>
<select id="f-sort">
<option value="">Newest</option>
<option value="bounty">Highest bounty</option>
</select>
</div>
<button class="btn" id="f-save" title="Save current filters as default">Save</button>
</div>
<div class="grid mt" id="board-grid"></div>
<dialog id="claim-dialog">
<form method="dialog" id="claim-form" class="stack" style="min-width:380px">
<h2>Request assignment</h2>
<p class="muted" id="claim-task-title"></p>
<div class="field">
<label for="claim-note">Pitch note (optional)</label>
<textarea id="claim-note" placeholder="why you?"></textarea>
</div>
<div class="spread">
<button class="btn" type="button" id="claim-cancel">Cancel</button>
<button class="btn primary" type="submit">Request assignment</button>
</div>
</form>
</dialog>
{{end}}