Searching/filtering (derived from SP-34 in Jira)
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 7
- Forks
- 13
- PR merge metrics
- No merged PRs in 30d
Description
Given a standard 10 hour initial corpus, with (making this up) 3 minute average length, we'll have 200 sessions to deal with. Not all of these can be taken to the next stage... the user will need ways to "find that one I'm thinking of", as well as methodically tag for prioritization. User need some kind of search/filter feature to help them find something in a particular metadata field or a session's transcription or translation.
Lameta has implemented an alpha feature to do this, so that can serve as at least an initial starting place for some design ideas.
As just a very basic start on this, we can add a filter box to both the Sessions and People tabs. When a filter is active, this box is highlighted, and an "X" shows. Clicking the X cancels the filter.
After entering some text in the filter box, the user initiates filtering by pressing ENTER or clicking the magnifying glass.
The first matching item should be automatically selected. If no items match, we should have no selection.
For now, let's not aim to have it fast enough to do as you type. However, we need to avoid the situation where the user does one filter, but then types in something new, and doesn't press return, and thinks he's looking at the results of the new search. So, when in filter mode (background is highlighted), typing anything in the box kicks you out of filter mode (all the items are displayed, the magnifying glass reappears, the highlight goes away).
A good breakdown of the phases could be (these are roughly in logical/priority
order, but several of them could be done in a different order if something were to get blocked:
- Methods that identify sessions containing metadata matches in the main session metadata file.
- Methods that identify sessions containing metadata matches in the metadata files for other session component files.
- Methods that identify sessions containing matches in the transcriptions.
- Methods that identify sessions containing matches in the translations.
- Addition of UI to allow user to search/filter sessions
- Methods that identify persons containing metadata matches in the main person metadata file.
- Methods that identify persons containing metadata matches in the metadata files for other person component files.
- Addition of UI to allow user to search/filter persons
- Methods that identify sessions containing matches in the contents of readable "text" files: (TXT, MD, PDF, HTML, DOC)
- Methods that identify persons containing matches in the contents of readable "text" files: (TXT, MD, PDF, HTML, DOC)
Note that the implementations of the various things for persons would be mostly identical/shared with those of sessions, but I have listed them separately since filtering by session is likely to be a higher priority than filtering by person.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by selecting one phase, then locate the Sessions or People data and UI components involved; done should include the requested filtering behavior, selection handling, and filter-mode reset described in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100