Move File Management link into the bottom tab bar

Replace the dashboard-only footer link with a "Files" item in the
persistent bottom tab bar (Home/Notes/Help/Settings) on every page, so
it's reachable the same way everywhere instead of only from the
dashboard.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-24 10:37:56 -04:00
co-authored by Claude Sonnet 5
parent 9ff8c70311
commit 9f0f49a399
7 changed files with 21 additions and 23 deletions
+5 -4
View File
@@ -88,10 +88,11 @@ silently stay blank instead of erroring.
- Cover art: uses a manually-placed `cover`/`folder`/`thumbnail`/`thumb`/
`poster` image if a course has one, otherwise auto-generates one via
`ffmpeg` from a frame of the course's first video
- **File Management** ([/unsorted](templates/unsorted.html), linked from
Settings and from a footer link on the dashboard): a dedicated page for
everything that touches files on disk, since it needs more room than a
Settings card and warrants review before anything actually changes.
- **File Management** ([/unsorted](templates/unsorted.html), its own item
("Files") in the bottom tab bar alongside Home/Notes/Help/Settings): a
dedicated page for everything that touches files on disk, since it needs
more room than a Settings card and warrants review before anything
actually changes.
- *Sort Unsorted*: drop new/incoming courses into an `Unsorted` folder at
the library root, then scan proposes a destination for each one by keyword
overlap against the *existing* category tree - read fresh from disk every
+1 -1
View File
@@ -3588,7 +3588,7 @@ def notes_hub():
@app.route('/unsorted')
def unsorted_page():
"""Review page for filing new courses out of the Unsorted folder - see /api/unsorted/scan for the actual proposals."""
return render_template('unsorted.html', active_tab=None)
return render_template('unsorted.html', active_tab='files')
@app.route('/library/search-transcripts')
+3 -18
View File
@@ -197,21 +197,6 @@
transform: translateY(0);
}
.page-footer-link {
text-align: center;
padding: 24px 0 8px;
}
.page-footer-link a {
color: var(--text-muted);
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 0.85em;
}
.page-footer-link a:hover {
color: var(--accent);
}
.bottom-tab-bar {
position: fixed;
left: 0;
@@ -1329,9 +1314,6 @@
{% endif %}
{% endif %}
<div class="page-footer-link">
<a href="/unsorted">{{ icons.icon('folder', 14) }} File Management</a>
</div>
</div>
<nav class="bottom-tab-bar">
@@ -1347,6 +1329,9 @@
<a href="/settings" class="tab-item {% if active_tab == 'settings' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('settings', 20) }}</span><span class="tab-label">Settings</span>
</a>
<a href="/unsorted" class="tab-item {% if active_tab == 'files' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('folder', 20) }}</span><span class="tab-label">Files</span>
</a>
</nav>
<div id="toast-container" class="toast-container"></div>
+3
View File
@@ -239,6 +239,9 @@
<a href="/settings" class="tab-item {% if active_tab == 'settings' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('settings', 20) }}</span><span class="tab-label">Settings</span>
</a>
<a href="/unsorted" class="tab-item {% if active_tab == 'files' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('folder', 20) }}</span><span class="tab-label">Files</span>
</a>
</nav>
<script src="/static/theme.js"></script>
+3
View File
@@ -282,6 +282,9 @@
<a href="/settings" class="tab-item {% if active_tab == 'settings' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('settings', 20) }}</span><span class="tab-label">Settings</span>
</a>
<a href="/unsorted" class="tab-item {% if active_tab == 'files' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('folder', 20) }}</span><span class="tab-label">Files</span>
</a>
</nav>
<script>
+3
View File
@@ -482,6 +482,9 @@
<a href="/settings" class="tab-item {% if active_tab == 'settings' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('settings', 20) }}</span><span class="tab-label">Settings</span>
</a>
<a href="/unsorted" class="tab-item {% if active_tab == 'files' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('folder', 20) }}</span><span class="tab-label">Files</span>
</a>
</nav>
<script src="/static/theme.js"></script>
+3
View File
@@ -562,6 +562,9 @@
<a href="/settings" class="tab-item {% if active_tab == 'settings' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('settings', 20) }}</span><span class="tab-label">Settings</span>
</a>
<a href="/unsorted" class="tab-item {% if active_tab == 'files' %}active{% endif %}">
<span class="tab-icon">{{ icons.icon('folder', 20) }}</span><span class="tab-label">Files</span>
</a>
</nav>
<script src="/static/theme.js"></script>