77 lines
3.6 KiB
HTML
77 lines
3.6 KiB
HTML
{% extends "base.html" %}
|
|
{% block content %}
|
|
<div class="page-header">
|
|
<h1 class="page-title">Weblinks<span class="page-count">{{ items|length }}</span></h1>
|
|
<div class="flex gap-2">
|
|
<a href="/weblinks/folders/create" class="btn btn-secondary">+ New Folder</a>
|
|
<a href="/weblinks/create{{ '?folder_id=' ~ current_folder_id if current_folder_id }}" class="btn btn-primary">+ New Weblink</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="weblinks-layout">
|
|
<!-- Folder sidebar -->
|
|
<div class="weblinks-folders">
|
|
<a href="/weblinks" class="weblink-folder-item {{ 'active' if not current_folder_id }}">
|
|
All Weblinks
|
|
</a>
|
|
{% for folder in top_folders %}
|
|
<a href="/weblinks?folder_id={{ folder.id }}" class="weblink-folder-item {{ 'active' if current_folder_id == folder.id|string }}">
|
|
{{ folder.name }}
|
|
{% if folder.link_count %}<span class="badge" style="margin-left: auto;">{{ folder.link_count }}</span>{% endif %}
|
|
</a>
|
|
{% for child in child_folder_map.get(folder.id|string, []) %}
|
|
<a href="/weblinks?folder_id={{ child.id }}" class="weblink-folder-item {{ 'active' if current_folder_id == child.id|string }}" style="padding-left: 28px;">
|
|
{{ child.name }}
|
|
{% if child.link_count %}<span class="badge" style="margin-left: auto;">{{ child.link_count }}</span>{% endif %}
|
|
</a>
|
|
{% endfor %}
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<!-- Weblinks list -->
|
|
<div class="weblinks-content">
|
|
{% if current_folder %}
|
|
<div class="flex items-center justify-between mb-2">
|
|
<h2 style="font-size: 1rem; font-weight: 600;">{{ current_folder.name }}</h2>
|
|
<form action="/weblinks/folders/{{ current_folder.id }}/delete" method="post"
|
|
data-confirm="Delete folder '{{ current_folder.name }}'?" style="display:inline">
|
|
<button type="submit" class="btn btn-ghost btn-xs" style="color: var(--red)">Delete Folder</button>
|
|
</form>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if items %}
|
|
<div class="card">
|
|
{% for item in items %}
|
|
<div class="list-row">
|
|
<span class="row-title">
|
|
<a href="{{ item.url }}" target="_blank" rel="noopener">{{ item.label }}</a>
|
|
</span>
|
|
<span class="row-meta text-xs" style="max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
|
|
{{ item.url }}
|
|
</span>
|
|
{% if item.tags %}
|
|
{% for tag in item.tags %}
|
|
<span class="row-tag">{{ tag }}</span>
|
|
{% endfor %}
|
|
{% endif %}
|
|
<div class="row-actions">
|
|
<a href="/weblinks/{{ item.id }}/edit" class="btn btn-ghost btn-xs">Edit</a>
|
|
<form action="/weblinks/{{ item.id }}/delete" method="post" data-confirm="Delete this weblink?" style="display:inline">
|
|
<button type="submit" class="btn btn-ghost btn-xs" style="color: var(--red)">Del</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<div class="empty-state">
|
|
<div class="empty-state-icon">🔗</div>
|
|
<div class="empty-state-text">No weblinks{{ ' in this folder' if current_folder }} yet</div>
|
|
<a href="/weblinks/create{{ '?folder_id=' ~ current_folder_id if current_folder_id }}" class="btn btn-primary">Add Weblink</a>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|