Tier 3: appointments CRUD + time tracking with topbar timer

This commit is contained in:
2026-02-28 04:38:56 +00:00
parent 82d03ce23a
commit 6ad642084d
13 changed files with 1075 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
{% extends "base.html" %}
{% block content %}
<div class="page-header">
<h1 class="page-title">{{ page_title }}</h1>
</div>
<div class="card">
<form method="post" action="{{ '/weblinks/' ~ item.id ~ '/edit' if item else '/weblinks/create' }}">
<div class="form-grid">
<div class="form-group full-width">
<label class="form-label">Label *</label>
<input type="text" name="label" class="form-input" required
value="{{ item.label if item else '' }}" placeholder="Display name...">
</div>
<div class="form-group full-width">
<label class="form-label">URL *</label>
<input type="url" name="url" class="form-input" required
value="{{ item.url if item else '' }}" placeholder="https://...">
</div>
<div class="form-group">
<label class="form-label">Folder</label>
<select name="folder_id" class="form-select">
<option value="">None</option>
{% for f in folders %}
<option value="{{ f.id }}" {{ 'selected' if prefill_folder_id == f.id|string }}>{{ f.name }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<label class="form-label">Tags</label>
<input type="text" name="tags" class="form-input" placeholder="tag1, tag2, ..."
value="{{ item.tags|join(', ') if item and item.tags else '' }}">
</div>
<div class="form-group full-width">
<label class="form-label">Description</label>
<textarea name="description" class="form-textarea" rows="2">{{ item.description if item and item.description else '' }}</textarea>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">{{ 'Save Changes' if item else 'Add Weblink' }}</button>
<a href="/weblinks" class="btn btn-secondary">Cancel</a>
</div>
</form>
</div>
{% endblock %}