Files
task-inventory/public/templates.html
mikael-lovqvists-claude-agent 0a985c591b Refactor tasks to configurable entry types
- Storage: nested object buckets per type, integrated next_id into meta,
  migration from old flat task:N key format, seeded default types (task/idea/note)
- Server: /api/entry-types CRUD + /api/entries replacing /api/tasks, type
  validation, blocks deletion if entries exist
- Frontend: dynamic nav per type, Entry_Type_Dialog, Entry_Dialog with type
  selector, type chip in All view, Manage Types view

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 21:53:39 +00:00

118 lines
3.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- Entry list item -->
<template id="t-entry-row">
<div class="task-row">
<button class="btn-expand" hidden></button>
<span class="task-id"></span>
<span class="task-status"></span>
<span class="task-priority"></span>
<div class="task-main">
<div class="entry-type-chip" hidden></div>
<div class="task-title markup"></div>
<div class="task-body markup" hidden></div>
</div>
<span class="task-tags"></span>
<div class="task-actions">
<button class="btn-sub">+ Sub</button>
<button class="btn-edit">Edit</button>
<button class="btn-delete">Delete</button>
</div>
</div>
</template>
<!-- Entry form dialog -->
<template id="t-entry-dialog">
<dialog class="task-dialog">
<form method="dialog">
<h2 class="dialog-title"></h2>
<div class="type-section">
<span class="type-section-label">Type</span>
<span class="type-display" hidden></span>
<select name="type" class="type-select" hidden></select>
</div>
<label>Title
<input name="title" type="text" required autocomplete="off">
</label>
<div class="parent-section">
<span class="parent-section-label">Parent</span>
<input type="hidden" name="parent_id">
<span class="parent-display"></span>
<button type="button" class="btn-set-parent">Set parent…</button>
<button type="button" class="btn-clear-parent" hidden>× Remove</button>
</div>
<div class="field-with-tabs">
<div class="tab-bar">
<button type="button" class="tab-btn active" data-tab="edit">Edit</button>
<button type="button" class="tab-btn" data-tab="preview">Preview</button>
<span class="tab-label">Body</span>
</div>
<div class="tab-pane" data-tab="edit">
<textarea name="body" rows="8"></textarea>
</div>
<div class="tab-pane" data-tab="preview" hidden>
<div class="markup preview-content"></div>
</div>
</div>
<label>Status
<select name="status">
<option value="open">Open</option>
<option value="deferred">Deferred</option>
<option value="done">Done</option>
<option value="cancelled">Cancelled</option>
</select>
</label>
<label>Priority
<select name="priority">
<option value="high">High</option>
<option value="normal" selected>Normal</option>
<option value="low">Low</option>
</select>
</label>
<label>Tags (comma-separated)
<input name="tags" type="text" autocomplete="off">
</label>
<div class="dialog-buttons">
<button type="submit" class="btn-save">Save</button>
<button type="button" class="btn-cancel">Cancel</button>
</div>
</form>
</dialog>
</template>
<!-- Entry picker dialog -->
<template id="t-entry-picker">
<dialog class="task-picker-dialog">
<h2>Make subtask of…</h2>
<input type="text" class="picker-search" placeholder="Search entries…" autocomplete="off">
<div class="picker-list"></div>
<div class="dialog-buttons">
<button type="button" class="btn-cancel">Cancel</button>
</div>
</dialog>
</template>
<!-- Entry type form dialog -->
<template id="t-entry-type-dialog">
<dialog class="entry-type-dialog">
<form method="dialog">
<h2 class="dialog-title"></h2>
<label class="id-label">ID
<input name="id" type="text" pattern="[a-z][a-z0-9_]*" autocomplete="off" placeholder="e.g. bug_report">
</label>
<div class="id-display-row" hidden>
<span class="id-display-label">ID</span>
<code class="id-display-value"></code>
</div>
<label>Title
<input name="title" type="text" autocomplete="off">
</label>
<label>Description
<textarea name="description" rows="3"></textarea>
</label>
<div class="dialog-buttons">
<button type="submit" class="btn-save">Save</button>
<button type="button" class="btn-cancel">Cancel</button>
</div>
</form>
</dialog>
</template>