diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..e6bb78c --- /dev/null +++ b/TODO.md @@ -0,0 +1,26 @@ +# Clio TODO + +## Audio Player Issues +- [ ] Short audio files show wrong duration (e.g., shows 1 second instead of 13 seconds) + - Progress bar doesn't move for these + - Can't seek + - Need to investigate why audioDuration isn't being set correctly for short files + +- [ ] Hard to click on audio controls for small recordings + - Add proper prev/next buttons for navigation + - Make clickable area larger + +## URL Routing Issue +- [ ] URL shows `#/detail` instead of `#/recording/{id}` + - Loses recording info on refresh + - Need to debug why buildHash isn't being called or URL isn't updating + +## Security (Completed) +- [x] Add API key authentication to all endpoints +- [x] UI prompts for API key and stores in localStorage +- [x] Audio fetched via authenticated blob URL + +## Deployment +- [x] Forgejo workflow for UI deployment +- [x] Forgejo workflow for API deployment (needs sudo permission for restart) +- [ ] Add sudoers rule for gitea-runner to restart phone-recorder diff --git a/another_todo.txt b/another_todo.txt new file mode 100644 index 0000000..e945fb7 --- /dev/null +++ b/another_todo.txt @@ -0,0 +1,4 @@ + +add echo service for testing +add a food diary +google drive plugin diff --git a/clio-ui/components/Dashboard.jsx b/clio-ui/components/Dashboard.jsx index 8233901..4fb3ea5 100644 --- a/clio-ui/components/Dashboard.jsx +++ b/clio-ui/components/Dashboard.jsx @@ -101,7 +101,7 @@ function Dashboard({ data, setView, setSelectedDay, setSelectedRecording }) {
Recent Recordings
{recent.map(r => ( - { setSelectedRecording(r); setView('detail'); }} /> + setSelectedRecording(r)} /> ))}
diff --git a/clio-ui/components/DayView.jsx b/clio-ui/components/DayView.jsx index 0ce3ca3..53dff61 100644 --- a/clio-ui/components/DayView.jsx +++ b/clio-ui/components/DayView.jsx @@ -159,7 +159,7 @@ function DayView({ data, selectedDay, setSelectedDay, setSelectedRecording, setV {dayRecs.length === 0 ? (
No recordings this day.
) : ( - { setSelectedRecording(r); setView('detail'); }} /> + setSelectedRecording(r)} /> )} )} diff --git a/clio-ui/components/HighlightsView.jsx b/clio-ui/components/HighlightsView.jsx index 9bbf291..f071a3e 100644 --- a/clio-ui/components/HighlightsView.jsx +++ b/clio-ui/components/HighlightsView.jsx @@ -38,7 +38,6 @@ function HighlightsView({ data, highlights, setSelectedRecording, setView }) { if (rec) { // Pass the highlight's startSeconds to seek to that position setSelectedRecording(rec, highlight.startSeconds); - setView('detail'); } } diff --git a/clio-ui/components/SearchView.jsx b/clio-ui/components/SearchView.jsx index a9dc01b..e72df81 100644 --- a/clio-ui/components/SearchView.jsx +++ b/clio-ui/components/SearchView.jsx @@ -129,7 +129,7 @@ function SearchView({ data, setSelectedRecording, setView }) { query={query} highlightText={highlightText} formatTime={formatTime} - onOpen={(seekTime) => { setSelectedRecording(recording, seekTime); setView('detail'); }} + onOpen={(seekTime) => setSelectedRecording(recording, seekTime)} /> ))}