This commit is contained in:
parent
6c7b94adce
commit
528813d4a0
6 changed files with 33 additions and 4 deletions
26
TODO.md
Normal file
26
TODO.md
Normal file
|
|
@ -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
|
||||
4
another_todo.txt
Normal file
4
another_todo.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
add echo service for testing
|
||||
add a food diary
|
||||
google drive plugin
|
||||
|
|
@ -101,7 +101,7 @@ function Dashboard({ data, setView, setSelectedDay, setSelectedRecording }) {
|
|||
<div style={{ fontSize: 11, color: 'var(--text3)', textTransform: 'uppercase', letterSpacing: '0.08em', fontFamily: 'var(--font-mono)', marginBottom: 14 }}>Recent Recordings</div>
|
||||
<div style={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
||||
{recent.map(r => (
|
||||
<RecordingRow key={r.id} recording={r} onClick={() => { setSelectedRecording(r); setView('detail'); }} />
|
||||
<RecordingRow key={r.id} recording={r} onClick={() => setSelectedRecording(r)} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ function DayView({ data, selectedDay, setSelectedDay, setSelectedRecording, setV
|
|||
{dayRecs.length === 0 ? (
|
||||
<div style={{ color: 'var(--text3)', fontFamily: 'var(--font-mono)', fontSize: 12, marginTop: 20 }}>No recordings this day.</div>
|
||||
) : (
|
||||
<DayTimeline recordings={dayRecs} onSelect={r => { setSelectedRecording(r); setView('detail'); }} />
|
||||
<DayTimeline recordings={dayRecs} onSelect={r => setSelectedRecording(r)} />
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue