-
Notifications
You must be signed in to change notification settings - Fork 7
feat: Enhance search #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Introduce search modes (local and remote) - Replace "extended search" by "remote redmine search" - Allow to search in any searchable fields (#46) - Allow to search for closed issues - Search in specified project not in all (fix)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR enhances the search functionality by introducing two distinct search modes: local search (for searching through cached issues) and remote Redmine search (for comprehensive server-side searching). The change replaces the previous automatic "extended search" feature with an explicit mode selection, giving users more control over their search experience. A keyboard shortcut (CTRL+M) allows quick toggling between modes.
- Removed the
extendedSearchsetting and replaced it with a mode-based search system - Refactored search components into
IssueSearchandTimerSearchwith context-based state management - Updated the Redmine API to support more flexible search options (titles-only, open issues, assigned to me)
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/provider/SettingsProvider.tsx | Removed deprecated extendedSearch feature flag |
| src/pages/SettingsPage.tsx | Removed UI controls for extendedSearch setting |
| src/pages/TimersPage.tsx | Refactored to use new TimerSearch component with context |
| src/pages/IssuesPage.tsx | Refactored to use new IssueSearch component and filter context pattern |
| src/lang/*.json | Updated translations for new search modes and removed old extended search strings |
| src/hooks/useTimers.ts | Updated to use new TimerSearchContext type |
| src/hooks/useSearch.ts | Deleted old search hook |
| src/hooks/useRedmineSearch.ts | New hook implementing remote Redmine search with customizable options |
| src/hooks/useMyIssues.ts | Simplified by removing inline filtering logic, now handles only data fetching |
| src/hooks/useIssues.ts | Removed search parameter, simplified to pure data fetching |
| src/hooks/useHotkey.ts | Changed parameter order to be more intuitive (hotkey, callback, enabled) |
| src/components/ui/field.tsx | Added FieldInfo component for displaying tooltips |
| src/components/ui/dropdown-menu.tsx | New dropdown menu component for mode selection UI |
| src/components/timer/TimerSearch.tsx | New search component for timers page with local search only |
| src/components/timer/EditTimer.tsx | Updated to use new useHotKey signature |
| src/components/issue/Search.tsx | Deleted old search component |
| src/components/issue/IssueSearch.tsx | New search component with mode selection, remote search options, and context |
| src/components/issue/IssuesList.tsx | Updated to use new search context pattern |
| src/components/issue/Filter.tsx | Refactored to provider/consumer pattern with context API |
| src/components/form/ToggleField.tsx | Added support for description and info tooltip props |
| src/api/redmine.ts | Renamed and enhanced search methods with more flexible options |
| README.md | Updated feature compatibility table with new search terminology |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This pull request introduces major improvements to the issue search experience.
Previously, searching was somewhat confusing. There was a local search and "extended search" to find issues that are not assigned to you. Both searches were processed at the same time.
Now you have to select a search mode:
Local search
You could search through all the issues on your list. This includes issues that you have pinned, remembered, or where timers still exist. However, the local search only searches the subject of the issue.
Remote redmine search
This mode uses the Redmine search engine to find issues. If you need an advanced search, you should choose remote search.
This allows you to search in all searchable fields (including custom fields), find issues that are not assigned to you or issues that have already been closed.
Both search modes have their own advantages and limitations, depending on what you want to find. So just pick the correct search mode at the right time.
Tip: You can easily switch search mode by pressing
CTRL+Mwithout using the mode picker.