added public/private toggle
This commit is contained in:
parent
30bc61212f
commit
4064a46c8a
1 changed files with 15 additions and 7 deletions
22
handlers.py
22
handlers.py
|
|
@ -364,7 +364,8 @@ def handle_add_form(msg="", action_type="index"):
|
|||
f'{_csrf_field()}'
|
||||
f'<input name="url" placeholder="https://example.com" size="50"><br><br>'
|
||||
f'<input name="note" placeholder="why are you saving this? (optional)" size="50"><br><br>'
|
||||
f'<input name="tags" placeholder="tags (comma-separated, e.g. solarpunk, mesh)" size="50"><br><br>'
|
||||
f'<input name="tags" placeholder="tags (comma-separated, e.g. solarpunk, mesh)" size="50"><br>'
|
||||
f'<small>tag: private to exclude from sharing</small><br><br>'
|
||||
f'<button type="submit">index</button>'
|
||||
f"</form>"
|
||||
f"<p>{msg}</p>"
|
||||
|
|
@ -426,7 +427,7 @@ def handle_add_submit(body):
|
|||
f'<label>Title:</label><br>'
|
||||
f'<input name="manual_title" size="50" placeholder="page title" required><br><br>'
|
||||
f'<label>Description:</label><br>'
|
||||
f'<textarea name="manual_description" rows="4" cols="50" placeholder="what is this site about?" required></textarea><br><br>'
|
||||
f'<textarea name="manual_description" rows="4" cols="50" placeholder="what is this site about? (optional)"></textarea><br><br>'
|
||||
f'<button type="submit">save manually</button>'
|
||||
f"</form>"
|
||||
f'<a href="/">back</a>'
|
||||
|
|
@ -444,8 +445,8 @@ def handle_add_manual_submit(body):
|
|||
if not url:
|
||||
return handle_add_form("URL is required.")
|
||||
|
||||
if not manual_title or not manual_desc:
|
||||
return handle_add_form("Title and description are required for manual entry.")
|
||||
if not manual_title:
|
||||
return handle_add_form("Title is required for manual entry.")
|
||||
|
||||
db = get_db()
|
||||
try:
|
||||
|
|
@ -603,7 +604,8 @@ def handle_edit_form(page_id, msg=""):
|
|||
f'<label>Note (why you saved this):</label><br>'
|
||||
f'<input name="note" value="{esc(row["note"])}" size="50"><br><br>'
|
||||
f'<label>Tags (comma-separated):</label><br>'
|
||||
f'<input name="tags" value="{esc(tags)}" size="50"><br><br>'
|
||||
f'<input name="tags" value="{esc(tags)}" size="50"> '
|
||||
f'<small>(tag: private to keep private)</small><br><br>'
|
||||
f'<button type="submit">save</button>'
|
||||
f"</form>"
|
||||
f"<p>{msg}</p>"
|
||||
|
|
@ -768,7 +770,8 @@ def handle_style_form(msg=""):
|
|||
f'<input name="site_name" value="{esc(name)}" placeholder="tinyweb" size="30"><br><br>'
|
||||
f"<h2>sharing</h2>"
|
||||
f'<label><input type="checkbox" name="sharing_enabled" value="1"{checked}>'
|
||||
f" share your site list publicly at /api/sites</label><br><br>"
|
||||
f" share your site list publicly at /api/sites</label><br>"
|
||||
f"<small>Note: pages tagged: private will not be shared.</small><br><br>"
|
||||
f"<h2>mesh network</h2>"
|
||||
f"<p>Connect to a Reticulum transport node to reach other peers.</p>"
|
||||
f"<small>Default: reticulum.derickphan.com:4242</small><br>"
|
||||
|
|
@ -974,6 +977,8 @@ def handle_api_sites(query=None):
|
|||
sites = []
|
||||
for r in rows:
|
||||
tags = _get_page_tags(r["id"], db)
|
||||
if "private" in tags:
|
||||
continue # Skip pages tagged private from sharing
|
||||
sites.append({
|
||||
"url": r["url"], "title": r["title"], "note": r["note"],
|
||||
"tags": tags, "last_modified": r["last_modified"] or "",
|
||||
|
|
@ -981,7 +986,10 @@ def handle_api_sites(query=None):
|
|||
# Include list of all current URLs so subscriber can detect deletions (limited)
|
||||
all_urls = None
|
||||
if not since:
|
||||
all_urls = [r["url"] for r in db.execute("SELECT url FROM pages LIMIT ?", (MAX_API_SITES,)).fetchall()]
|
||||
all_url_rows = db.execute(
|
||||
"SELECT p.id, p.url FROM pages ORDER BY id DESC LIMIT ?", (MAX_API_SITES,)
|
||||
).fetchall()
|
||||
all_urls = [r["url"] for r in all_url_rows if "private" not in _get_page_tags(r["id"], db)]
|
||||
finally:
|
||||
return_db(db)
|
||||
data = {"name": get_site_name(), "sites": sites}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue