X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/eec72fb6bd94a219b07370120e2c2af67d562a05..25216cc7acedc987c26a159f0b640210c0ef101e:/src/views-components/search-bar/search-bar-advanced-view.tsx?ds=sidebyside diff --git a/src/views-components/search-bar/search-bar-advanced-view.tsx b/src/views-components/search-bar/search-bar-advanced-view.tsx index c7573501..9395fa7f 100644 --- a/src/views-components/search-bar/search-bar-advanced-view.tsx +++ b/src/views-components/search-bar/search-bar-advanced-view.tsx @@ -6,15 +6,20 @@ import * as React from 'react'; import { reduxForm, InjectedFormProps, reset } from 'redux-form'; import { compose, Dispatch } from 'redux'; import { Paper, StyleRulesCallback, withStyles, WithStyles, Button, Grid, IconButton, CircularProgress } from '@material-ui/core'; -import { SEARCH_BAR_ADVANCE_FORM_NAME, searchAdvanceData } from '~/store/search-bar/search-bar-actions'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { CloseIcon } from '~/components/icon/icon'; -import { SearchBarAdvanceFormData } from '~/models/search-bar'; +import { + SEARCH_BAR_ADVANCED_FORM_NAME, SEARCH_BAR_ADVANCED_FORM_PICKER_ID, + searchAdvancedData, + setSearchValueFromAdvancedData +} from 'store/search-bar/search-bar-actions'; +import { ArvadosTheme } from 'common/custom-theme'; +import { CloseIcon } from 'components/icon/icon'; +import { SearchBarAdvancedFormData } from 'models/search-bar'; import { SearchBarTypeField, SearchBarClusterField, SearchBarProjectField, SearchBarTrashField, SearchBarDateFromField, SearchBarDateToField, SearchBarPropertiesField, - SearchBarSaveSearchField, SearchBarQuerySearchField -} from '~/views-components/form-fields/search-bar-form-fields'; + SearchBarSaveSearchField, SearchBarQuerySearchField, SearchBarPastVersionsField +} from 'views-components/form-fields/search-bar-form-fields'; +import { treePickerActions } from "store/tree-picker/tree-picker-actions"; type CssRules = 'container' | 'closeIcon' | 'label' | 'buttonWrapper' | 'button' | 'circularProgress' | 'searchView' | 'selectGrid'; @@ -22,7 +27,8 @@ type CssRules = 'container' | 'closeIcon' | 'label' | 'buttonWrapper' const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ container: { padding: theme.spacing.unit * 2, - borderBottom: `1px solid ${theme.palette.grey["200"]}` + borderBottom: `1px solid ${theme.palette.grey["200"]}`, + position: 'relative', }, closeIcon: { position: 'absolute', @@ -69,6 +75,7 @@ interface SearchBarAdvancedViewFormDataProps { // ToDo: maybe we should remove tags export interface SearchBarAdvancedViewDataProps { tags: any; + saveQuery: boolean; } export interface SearchBarAdvancedViewActionProps { @@ -93,16 +100,20 @@ const validate = (values: any) => { }; export const SearchBarAdvancedView = compose( - reduxForm({ - form: SEARCH_BAR_ADVANCE_FORM_NAME, + reduxForm({ + form: SEARCH_BAR_ADVANCED_FORM_NAME, validate, - onSubmit: (data: SearchBarAdvanceFormData, dispatch: Dispatch) => { - dispatch(searchAdvanceData(data)); - dispatch(reset(SEARCH_BAR_ADVANCE_FORM_NAME)); - } + onSubmit: (data: SearchBarAdvancedFormData, dispatch: Dispatch) => { + dispatch(searchAdvancedData(data)); + dispatch(reset(SEARCH_BAR_ADVANCED_FORM_NAME)); + dispatch(treePickerActions.DEACTIVATE_TREE_PICKER_NODE({ pickerId: SEARCH_BAR_ADVANCED_FORM_PICKER_ID })); + }, + onChange: (data: SearchBarAdvancedFormData, dispatch: Dispatch, props: any, prevData: SearchBarAdvancedFormData) => { + dispatch(setSearchValueFromAdvancedData(data, prevData)); + }, }), withStyles(styles))( - ({ classes, closeAdvanceView, handleSubmit, submitting, invalid, pristine, tags }: SearchBarAdvancedViewFormProps) => + ({ classes, closeAdvanceView, handleSubmit, submitting, invalid, pristine, tags, saveQuery }: SearchBarAdvancedViewFormProps) =>
@@ -121,7 +132,7 @@ export const SearchBarAdvancedView = compose( Project - + @@ -130,6 +141,9 @@ export const SearchBarAdvancedView = compose( + + + @@ -152,7 +166,7 @@ export const SearchBarAdvancedView = compose( - + {saveQuery && }