Skip to content

Searching/filtering (derived from SP-34 in Jira) #262

@tombogle

Description

@tombogle

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:

  1. Methods that identify sessions containing metadata matches in the main session metadata file.
  2. Methods that identify sessions containing metadata matches in the metadata files for other session component files.
  3. Methods that identify sessions containing matches in the transcriptions.
  4. Methods that identify sessions containing matches in the translations.
  5. Addition of UI to allow user to search/filter sessions
  6. Methods that identify persons containing metadata matches in the main person metadata file.
  7. Methods that identify persons containing metadata matches in the metadata files for other person component files.
  8. Addition of UI to allow user to search/filter persons
  9. Methods that identify sessions containing matches in the contents of readable "text" files: (TXT, MD, PDF, HTML, DOC)
  10. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions