Skip to content

feat: Enhance Quick Search with Bible/Media support and categorization#2790

Merged
vassbo merged 8 commits intoChurchApps:devfrom
jeremiahseun:main
Feb 11, 2026
Merged

feat: Enhance Quick Search with Bible/Media support and categorization#2790
vassbo merged 8 commits intoChurchApps:devfrom
jeremiahseun:main

Conversation

@jeremiahseun
Copy link
Contributor

@jeremiahseun jeremiahseun commented Feb 3, 2026

  • Update Quick Search UI to look like Mac Spotlight (wider, centered, headers).
  • Implement async search logic to handle Bible search.
  • Categorize results into Songs, Bible, Media, and Others.
  • Add Bible search functionality (Reference and Text search).
  • Add Media search functionality.
  • Implement trigger actions for Bible (opens Scripture tab) and Media (plays media).

Screenshots

Screenshot 2026-02-04 at 11 57 08 Screenshot 2026-02-04 at 11 57 30 Screenshot 2026-02-04 at 11 58 52

jeremiahseun and others added 4 commits February 1, 2026 18:00
- Update Quick Search UI to look like Mac Spotlight (wider, centered, headers).
- Implement async search logic to handle Bible search.
- Categorize results into Songs, Bible, Media, and Others.
- Add Bible search functionality (Reference and Text search).
- Add Media search functionality.
- Implement trigger actions for Bible (opens Scripture tab) and Media (plays media).
Add a fast inverted search index and Bible index for much faster lookups (buildSearchIndex, fastSearch, buildBibleIndex, fastBibleSearch).
Introduce index invalidation (invalidateSearchIndex) when the text cache is loaded or saved so the index is rebuilt when data changes. Extend quicksearch features and UX: category filters (all, songs, bible, media, settings), highlighted token matches, glowing placeholder indicator, snippet previews for song lyrics and Bible verses, and improved transitions/styles. Integrate the index-based Bible search with a fallback to the existing library search; use local scripture cache and build an index when available.
Update quicksearch API to accept category and raw search value, and adapt result generation to include descriptions and previews.
Add a new translation key (main.search_anything).
Small refactors and safety checks added to preserve behavior for small show lists by falling back to the original search logic.
@vassbo vassbo changed the base branch from main to dev February 3, 2026 07:00
@vassbo
Copy link
Collaborator

vassbo commented Feb 4, 2026

Thanks for adding images, can we get rid of the horizontal scroll bar, also we should not have any tabs. Instead we can allow limiting the search with show: / bible: prefixes. Also it should be Shows and not Songs.

@tobsowo
Copy link

tobsowo commented Feb 4, 2026

Thank you for this.
I would suggest something similar to VideoPsalm.
https://myvideopsalm.weebly.com/songs.html

@jeremiahseun
Copy link
Contributor Author

Thanks for adding images, can we get rid of the horizontal scroll bar, also we should not have any tabs. Instead we can allow limiting the search with show: / bible: prefixes. Also it should be Shows and not Songs.

@vassbo You mean that I should remove Settings and Media?
I understand the horizontal scroll bar. I'll just applying wrapping.

@jeremiahseun
Copy link
Contributor Author

Thank you for this.

I would suggest something similar to VideoPsalm.

https://myvideopsalm.weebly.com/songs.html

Sorry I don't understand. Maybe explain more @tobsowo

@tobsowo
Copy link

tobsowo commented Feb 4, 2026

I was looking into adding a search button with a search icon that shows options for other search queries.

Similar for Bible too: https://myvideopsalm.weebly.com/bible-verses.html

image -------- image

@vassbo
Copy link
Collaborator

vassbo commented Feb 4, 2026

@jeremiahseun I mean that we don't need to have any tabs, like currently, so remove the entire tab bar. We can allow keywords in the search bar though if people want to limit the search. Shows can be more than just songs, that's why it's not called songs.

@tobsowo That's too many options, it's not needed.

@vassbo vassbo deleted the branch ChurchApps:dev February 6, 2026 13:04
@vassbo vassbo closed this Feb 6, 2026
@jeremiahseun
Copy link
Contributor Author

@vassbo Alright noted.
I'll like to ask why this PR is closed.

@vassbo
Copy link
Collaborator

vassbo commented Feb 6, 2026

It was auto closed because I merged the branch.

@vassbo vassbo reopened this Feb 6, 2026
Replace the category picker with hashtag-based category detection in QuickSearch and update search behavior. Key changes:
- UI: removed category bar and related styles; detect #hashtag (e.g. #shows, #audio, #overlays) and strip it from the query.
- Categories: rename 'songs' -> 'shows' and add 'audio' and 'overlays' categories; wire audio playlists/streams and overlay results into quicksearch results and triggers.
- Highlighting: prioritize exact phrase matches, then token-based highlighting (matches any word), with longer words matched first.
- Media: add option to restrict media results to audio files and set appropriate icons for audio/media.
- Bible/search index: bump behavior to support more results and finer-grained indexing (index shorter tokens, n-grams up to 5 words, search-term generation improvements) and add a Bible index version to force rebuilds when needed.
- Minor: update en.json label ("song" -> "Shows").
These changes improve discoverability via keywords and broaden searchable content (audio/overlays) while refining ranking and highlighting.
@jeremiahseun
Copy link
Contributor Author

Screenshot 2026-02-06 at 23 10 18 New look @vassbo

@Vitlyr
Copy link

Vitlyr commented Feb 7, 2026

@jeremiahseun Could you perhaps bind the key "G" to support multiple languages. Such as I cant really access the quick search menu without switching to the English language layout first.

@vassbo
Copy link
Collaborator

vassbo commented Feb 11, 2026

@Vitlyr I didn't realize that, but got it fixed.

@vassbo vassbo merged commit 8e38435 into ChurchApps:dev Feb 11, 2026
vassbo added a commit that referenced this pull request Feb 11, 2026
* Added back forceLogin - Fixed on B1Admin

* Fixed clear background not working if no output screen exists

* Updated languages

* fix: improve split long verses with tolerance for balanced output (#2812)

- Split long verses at punctuation near the center of the text for balanced slides
- Search for punctuation (.,;:!?) within a tolerance window around the text center
- Pick the punctuation closest to center for the most even split
- Fall back to nearest space if no punctuation found in window
- Prevent small trailing segments from being merged back when it would undo the split
- Pass tolerance through to HTML text splitting path
- Expand split sub-verse IDs (e.g. 10_1, 10_2) in activeVerses for slide generation
- Add longVersesTolerance default to scriptureSettings

* fix: Fix issue when searching for scripture using the split long verses (#2818)

When using split long verses the scripture search does not take into
account the verse splits. If you do a scripture search which includes
the verses and then convert to a show the split long verses is not taken
into account. The fix is to map the searched verses to the calculated
split verses.

* Moved create scripture shortcut #2822

* Scripture fix

* Fallback to copy/paste when unable to move file #2823

* Fixing errors

* Auto get project if none is opened

* Tweaks

* Fixed media replaced incorrectly #2779

* Fixed some replaced slide backgrounds not outputted #2807

* Faster slide loading

* Slide media thumbnail is now the correct resolution
- Fixed issue with thumbnail generation

* Fixed thumbnail generation only doing one at a time
- Fixed thumbnail generation stopping when failed once
- Skip loading when failed

* Media editor showing output resolution
- Tweaks

* Project media item thumbnail
- Project items splitted by type

* Drop import PPT file

* Save imported project directly back to the file

* Tweaks

* Project item arrow
- Project tweaks

* Default template textbox now fits 8 lines perfectly

* Fixed player

* Project permission fixes

* Fixed context menu sometimes clipping bottom

* Fixed context menu sometimes clipping bottom

* Fixed hostname already in use issue on macOS #1637

* Tweaks

* Fixed drop position #2834

* Tweaks

* Cloud fixes

* Fixed thumbnail paths on macOS

* Tweaks

* Loop enabled title

* Fixed specific outputs issue

* Fixed infinite loop

* Fixed StageShow media fit

* Tweaks

* Random number history as dynamic value #2813

* Action to mark project item as played #2752

* Set initial project name to an upcomming weekday date #2734

* Overlay actions #2665

* StageShow Dynamic Value Conditions #2624
- Fixed stage item issue

* feat: Enhance Quick Search with Bible/Media support and categorization (#2790)

* Enhance Quick Search with Bible/Media support and categorization

- Update Quick Search UI to look like Mac Spotlight (wider, centered, headers).
- Implement async search logic to handle Bible search.
- Categorize results into Songs, Bible, Media, and Others.
- Add Bible search functionality (Reference and Text search).
- Add Media search functionality.
- Implement trigger actions for Bible (opens Scripture tab) and Media (plays media).

* feat: Enhance search index and quicksearch UI

Add a fast inverted search index and Bible index for much faster lookups (buildSearchIndex, fastSearch, buildBibleIndex, fastBibleSearch).
Introduce index invalidation (invalidateSearchIndex) when the text cache is loaded or saved so the index is rebuilt when data changes. Extend quicksearch features and UX: category filters (all, songs, bible, media, settings), highlighted token matches, glowing placeholder indicator, snippet previews for song lyrics and Bible verses, and improved transitions/styles. Integrate the index-based Bible search with a fallback to the existing library search; use local scripture cache and build an index when available.
Update quicksearch API to accept category and raw search value, and adapt result generation to include descriptions and previews.
Add a new translation key (main.search_anything).
Small refactors and safety checks added to preserve behavior for small show lists by falling back to the original search logic.

* Formatted code changes

* QuickSearch: add hashtag filters and audio/overlays

Replace the category picker with hashtag-based category detection in QuickSearch and update search behavior. Key changes:
- UI: removed category bar and related styles; detect #hashtag (e.g. #shows, #audio, #overlays) and strip it from the query.
- Categories: rename 'songs' -> 'shows' and add 'audio' and 'overlays' categories; wire audio playlists/streams and overlay results into quicksearch results and triggers.
- Highlighting: prioritize exact phrase matches, then token-based highlighting (matches any word), with longer words matched first.
- Media: add option to restrict media results to audio files and set appropriate icons for audio/media.
- Bible/search index: bump behavior to support more results and finer-grained indexing (index shorter tokens, n-grams up to 5 words, search-term generation improvements) and add a Bible index version to force rebuilds when needed.
- Minor: update en.json label ("song" -> "Shows").
These changes improve discoverability via keywords and broaden searchable content (audio/overlays) while refining ranking and highlighting.

* Update QuickSearch.svelte

* Fixes

* Fixes

---------

Co-authored-by: Kristoffer <kristoffervassbo@gmail.com>

* Lock slides inside a show (#2825)

* feat: add slide locking functionality to prevent edits and deletions

* feat: implement slide locking checks for copy, paste, and cut actions

* feat: add toggle lock functionality for slides and pass showId and slideId to Icons component

* feat: add checks to skip locked slides in templates

* feat: enhance slide locking checks in editors and clipboard actions

* Fixes

* Resolve conflict

---------

Co-authored-by: Otoniel Pérez Velarde <otperez@domingoalonsogroup.com>
Co-authored-by: Kristoffer <kristoffervassbo@gmail.com>

* feat(transitions): fade through transition (#2837)

* feat(transitions): add fade through feature

Adds a toggle in the transition dialog to enable/disable "fade through",
which avoids dipping into black during transitions

* chore(transitions): add i18n for fade through

I'm not sure whether this is correct way to do it

* feat(transition): add explanation tooltip

* Update

* Fix

---------

Co-authored-by: Kristoffer <kristoffervassbo@gmail.com>

* Version update

---------

Co-authored-by: Jeremy Zongker <jeremy@zongker.net>
Co-authored-by: Yuri Vidal <yurividal@users.noreply.github.com>
Co-authored-by: Emmanuel Mathi-Amorim <manny@amorim.ca>
Co-authored-by: Jeremiah Oluwaseun Erinola <seunjeremiah@gmail.com>
Co-authored-by: Otoniel Pérez Velarde <61138950+otonielpv@users.noreply.github.com>
Co-authored-by: Otoniel Pérez Velarde <otperez@domingoalonsogroup.com>
Co-authored-by: zabackary <137591653+zabackary@users.noreply.github.com>
@vassbo vassbo mentioned this pull request Feb 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants