mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-21 22:30:53 +00:00
User Setting To Search Notes (#9393)
* add search notes and tie user search settings to checkboxes in search drawer * add user setting to optionally search the notes of objects * add search filter test * add PR link * add limit parameter * typo, meant to check part result * resolve api_version.py conflict * don't use search_whole and search_regex together --------- Co-authored-by: Matthias Mair <code@mjmair.com>
This commit is contained in:
docs/docs/settings
src
backend
InvenTree
frontend
src
@ -189,12 +189,23 @@ export function SearchDrawer({
|
||||
const [value, setValue] = useState<string>('');
|
||||
const [searchText] = useDebouncedValue(value, 500);
|
||||
|
||||
const [searchRegex, setSearchRegex] = useState<boolean>(false);
|
||||
const [searchWhole, setSearchWhole] = useState<boolean>(false);
|
||||
|
||||
const user = useUserState();
|
||||
const userSettings = useUserSettingsState();
|
||||
|
||||
const [searchRegex, setSearchRegex] = useState<boolean>(false);
|
||||
const [searchWhole, setSearchWhole] = useState<boolean>(false);
|
||||
const [searchNotes, setSearchNotes] = useState<boolean>(false);
|
||||
|
||||
useEffect(() => {
|
||||
setSearchRegex(userSettings.isSet('SEARCH_REGEX', false));
|
||||
setSearchWhole(userSettings.isSet('SEARCH_WHOLE', false));
|
||||
setSearchNotes(userSettings.isSet('SEARCH_NOTES', false));
|
||||
}, [
|
||||
userSettings.isSet('SEARCH_REGEX', false),
|
||||
userSettings.isSet('SEARCH_WHOLE', false),
|
||||
userSettings.isSet('SEARCH_NOTES', false)
|
||||
]);
|
||||
|
||||
// Build out search queries based on user permissions and preferences
|
||||
const searchQueryList: SearchQuery[] = useMemo(() => {
|
||||
return [
|
||||
@ -373,7 +384,8 @@ export function SearchDrawer({
|
||||
limit: userSettings.getSetting('SEARCH_PREVIEW_RESULTS', '10'),
|
||||
search: searchText,
|
||||
search_regex: searchRegex,
|
||||
search_whole: searchWhole
|
||||
search_whole: searchWhole,
|
||||
search_notes: searchNotes
|
||||
};
|
||||
|
||||
// Add in custom query parameters
|
||||
@ -393,7 +405,7 @@ export function SearchDrawer({
|
||||
|
||||
// Search query manager
|
||||
const searchQuery = useQuery({
|
||||
queryKey: ['search', searchText, searchRegex, searchWhole],
|
||||
queryKey: ['search', searchText, searchRegex, searchWhole, searchNotes],
|
||||
queryFn: performSearch
|
||||
});
|
||||
|
||||
@ -495,6 +507,15 @@ export function SearchDrawer({
|
||||
</Menu.Target>
|
||||
<Menu.Dropdown>
|
||||
<Menu.Label>{t`Search Options`}</Menu.Label>
|
||||
<Menu.Item>
|
||||
<Checkbox
|
||||
label={t`Whole word search`}
|
||||
checked={searchWhole}
|
||||
onChange={(event) =>
|
||||
setSearchWhole(event.currentTarget.checked)
|
||||
}
|
||||
/>
|
||||
</Menu.Item>
|
||||
<Menu.Item>
|
||||
<Checkbox
|
||||
label={t`Regex search`}
|
||||
@ -506,10 +527,10 @@ export function SearchDrawer({
|
||||
</Menu.Item>
|
||||
<Menu.Item>
|
||||
<Checkbox
|
||||
label={t`Whole word search`}
|
||||
checked={searchWhole}
|
||||
label={t`Notes search`}
|
||||
checked={searchNotes}
|
||||
onChange={(event) =>
|
||||
setSearchWhole(event.currentTarget.checked)
|
||||
setSearchNotes(event.currentTarget.checked)
|
||||
}
|
||||
/>
|
||||
</Menu.Item>
|
||||
|
@ -71,6 +71,7 @@ export default function UserSettings() {
|
||||
keys={[
|
||||
'SEARCH_WHOLE',
|
||||
'SEARCH_REGEX',
|
||||
'SEARCH_NOTES',
|
||||
'SEARCH_PREVIEW_RESULTS',
|
||||
'SEARCH_PREVIEW_SHOW_PARTS',
|
||||
'SEARCH_HIDE_INACTIVE_PARTS',
|
||||
|
Reference in New Issue
Block a user