← Commit history

0.15.1: owner and status above the dates, in both panels

Drew Owens ·a255e168c5 · ·parent 4c19c28
The create panel put the date row before owner and status; the user wants owner and status first. Applied the same order to the full edit modal, because two panels doing the same job that disagree about field order is worse than either order on its own. Both read: name, owner and status, dates, notes, provenance. Tab order is DOM order so it followed for free. Its own patch rather than folded into the next round: 0.16.0 is the init() refactor and its value is being behaviour-neutral and bisectable, so a visible layout change does not belong in it.
4 files changed +24−11
docs/BUILD-NOTES.md+13
@@ -3,6 +3,19 @@ Decisions taken while building, and the places where the plan and the code disagreed. Newest first. +## Build notes, 2026-08-07 (0.15.1)++Owner and status moved above the dates in the create panel, and the SAME move in+the full edit modal. Two panels doing the same job that disagree about field+order is worse than either order on its own, so consistency won over leaving the+modal alone. Both now read: name, owner and status, dates, notes, provenance.+Tab order is DOM order, so it followed for free and is asserted.++Shipped as its own patch rather than folded into the next round. 0.16.0 is the+init() refactor and its whole value is being behaviour-neutral and bisectable, so+a visible layout change does not belong in it; and holding this behind a refactor+would have delayed a small thing for no reason.+ ## Build notes, 2026-08-07 (0.15.0)  **The stray teal line and the lagging line were the same bug.** The drop
gantt.html+8−8
@@ -2445,14 +2445,14 @@ function openItemModal(r,carriedName){     <div class="de-row" style="margin-top:8px">       <div style="flex:1"><label>phase</label><select id="imPhase">${phases.map((ph,i)=>`<option value="${i}">${esc(ph.name)}</option>`).join('')}</select></div>     </div>-    <div class="de-row">-      ${ms?'':'<div><label>start</label><input type="date" id="imStart"></div>'}-      <div><label>${ms?'date':'deadline'}</label><input type="date" id="imEnd"></div>-    </div>     <div class="de-row">       <div style="flex:1"><label>owner</label><input type="text" id="imOwner" list="ownerList" placeholder="one name"></div>       <div style="flex:1"><label>status</label><select id="imStatus"><option value="">none</option>${STATUS_ORDER.map(x=>`<option value="${x}">${statusLabel[x]}</option>`).join('')}</select></div>     </div>+    <div class="de-row">+      ${ms?'':'<div><label>start</label><input type="date" id="imStart"></div>'}+      <div><label>${ms?'date':'deadline'}</label><input type="date" id="imEnd"></div>+    </div>     <div class="de-note-row"><label>notes</label><input type="text" id="imDesc"></div>     <div class="de-note-row"><label>provenance</label><input type="text" id="imProv" placeholder="where this came from"></div>     <div class="de-actions"><button class="de-btn primary" id="imApply">Apply</button>@@ -2521,13 +2521,13 @@ function openCreateEditor(){     </div>     <div class="de-note-row"><label>name <span class="de-hint">required</span></label><input type="text" id="ncName" placeholder="What is it?"></div>     <div class="de-row" style="margin-top:8px">-      <div id="ncStartWrap"><label>start</label><input type="date" id="ncStart" value="${today}"></div>-      <div><label id="ncEndLabel">deadline</label><input type="date" id="ncEnd" value="${plus}"></div>-    </div>-    <div class="de-row">       <div style="flex:1"><label>owner</label><input type="text" id="ncOwner" list="ownerList" placeholder="one name"></div>       <div style="flex:1"><label>status</label><select id="ncStatus">${STATUS_ORDER.map(x=>`<option value="${x}">${statusLabel[x]}</option>`).join('')}</select></div>     </div>+    <div class="de-row">+      <div id="ncStartWrap"><label>start</label><input type="date" id="ncStart" value="${today}"></div>+      <div><label id="ncEndLabel">deadline</label><input type="date" id="ncEnd" value="${plus}"></div>+    </div>     <div class="de-note-row"><label>notes</label><input type="text" id="ncDesc" placeholder="Shown on hover and in the table"></div>     <div class="de-note-row"><label>provenance <span class="de-hint">where this came from</span></label><input type="text" id="ncProv" value="Added by hand"></div>     <div class="de-actions"><button class="de-btn primary" id="ncCreate">Create</button>
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "adom-gantt",   "title": "Adom Gantt",   "type": "app",-  "version": "0.15.0",+  "version": "0.15.1",   "description": "Interactive Gantt chart viewer for project timelines, with a table view over the same data. Data-driven, dark by default with a print-friendly light mode, and fully editable in the browser: drag bars to move or resize, multi-select and batch-shift dates, manage dependency arrows inline, reorder rows, filter by phase, and undo. Toggle to the table for every task and milestone as a row with owner, deadline and status, filtered per owner and edited in place. Every edit is recorded in an append-only changelog so an AI can read what a human changed and build on it. Imports JSON, CSV, MS Project XML and Jira CSV; exports JSON, CSV, SVG and a self-contained HTML snapshot.",   "main": "server.js",   "bin": {
page.json+2−2
@@ -2,7 +2,7 @@   "slug": "adom-gantt",   "title": "Adom Gantt",   "type": "app",-  "version": "0.15.0",+  "version": "0.15.1",   "description": "Interactive Gantt chart viewer for project timelines, with a table view over the same data. Data-driven, dark by default with a print-friendly light mode, and fully editable in the browser: drag bars to move or resize, multi-select and batch-shift dates, manage dependency arrows inline, reorder rows, filter by phase, and undo. Toggle to the table for every task and milestone as a row with owner, deadline and status, filtered per owner and edited in place. Every edit is recorded in an append-only changelog so an AI can read what a human changed and build on it. Imports JSON, CSV, MS Project XML and Jira CSV; exports JSON, CSV, SVG and a self-contained HTML snapshot.",   "main": "server.js",   "bin": {@@ -63,4 +63,4 @@     "name": "Drew Owens",     "email": "[email protected]"   }-}\ No newline at end of file+}