[ARVADOS-WORKBENCH2] created: 1.2.0-714-g79f3533
Git user
git at public.curoverse.com
Tue Oct 23 06:03:43 EDT 2018
at 79f3533ad0df48c8d6083d5c34f9b7f419173afe (commit)
commit 79f3533ad0df48c8d6083d5c34f9b7f419173afe
Author: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>
Date: Tue Oct 23 12:03:25 2018 +0200
proper saving tags and disabling search button at adnveced search view
Feature #14391
Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>
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 a8d65a4..068ed16 100644
--- a/src/views-components/search-bar/search-bar-advanced-view.tsx
+++ b/src/views-components/search-bar/search-bar-advanced-view.tsx
@@ -11,20 +11,20 @@ import { SEARCH_BAR_ADVANCE_FORM_NAME, saveQuery } from '~/store/search-bar/sear
import { ArvadosTheme } from '~/common/custom-theme';
import { CloseIcon } from '~/components/icon/icon';
import { SearchBarAdvanceFormData } from '~/models/search-bar';
-import {
- SearchBarTypeField, SearchBarClusterField, SearchBarProjectField, SearchBarTrashField,
+import {
+ SearchBarTypeField, SearchBarClusterField, SearchBarProjectField, SearchBarTrashField,
SearchBarDateFromField, SearchBarDateToField, SearchBarPropertiesField,
SearchBarSaveSearchField, SearchBarQuerySearchField
} from '~/views-components/form-fields/search-bar-form-fields';
-type CssRules = 'container' | 'closeIcon' | 'label' | 'buttonWrapper'
+type CssRules = 'container' | 'closeIcon' | 'label' | 'buttonWrapper'
| 'button' | 'circularProgress' | 'searchView' | 'selectGrid';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
container: {
padding: theme.spacing.unit * 2,
borderBottom: `1px solid ${theme.palette.grey["200"]}`
- },
+ },
closeIcon: {
position: 'absolute',
top: '12px',
@@ -66,22 +66,29 @@ interface SearchBarAdvancedViewDataProps {
pristine: boolean;
}
+export interface Tags {
+ values?: {
+ properties?: { key: string, value: string },
+ };
+}
+
interface SearchBarAdvancedViewActionProps {
setView: (currentView: string) => void;
saveQuery: (data: SearchBarAdvanceFormData) => void;
+ tags: Tags;
}
-type SearchBarAdvancedViewProps = SearchBarAdvancedViewActionProps & SearchBarAdvancedViewDataProps
+type SearchBarAdvancedViewProps = SearchBarAdvancedViewActionProps & SearchBarAdvancedViewDataProps
& InjectedFormProps & WithStyles<CssRules>;
const validate = (values: any) => {
const errors: any = {};
- if (values.dateFrom && values.dateTo ) {
+ if (values.dateFrom && values.dateTo) {
if (new Date(values.dateFrom).getTime() > new Date(values.dateTo).getTime()) {
errors.dateFrom = 'Invalid date';
}
- }
+ }
return errors;
};
@@ -96,7 +103,7 @@ export const SearchBarAdvancedView = compose(
}
}),
withStyles(styles))(
- ({ classes, setView, handleSubmit, submitting, invalid, pristine }: SearchBarAdvancedViewProps) =>
+ ({ classes, setView, handleSubmit, submitting, invalid, pristine, tags }: SearchBarAdvancedViewProps) =>
<Paper className={classes.searchView}>
<form onSubmit={handleSubmit}>
<Grid container direction="column" justify="flex-start" alignItems="flex-start">
@@ -152,7 +159,7 @@ export const SearchBarAdvancedView = compose(
<Grid container item xs={12} justify='flex-end'>
<div className={classes.buttonWrapper}>
<Button type="submit" className={classes.button}
- disabled={invalid || submitting || pristine}
+ disabled={invalid || submitting || pristine || !!(tags && !tags.values!.properties)}
color="primary"
size='small'
variant="contained">
@@ -164,5 +171,5 @@ export const SearchBarAdvancedView = compose(
</Grid>
</Grid>
</form>
- </Paper>
+ </Paper>
);
diff --git a/src/views-components/search-bar/search-bar-view.tsx b/src/views-components/search-bar/search-bar-view.tsx
index cfaee6d..b923530 100644
--- a/src/views-components/search-bar/search-bar-view.tsx
+++ b/src/views-components/search-bar/search-bar-view.tsx
@@ -18,7 +18,7 @@ import SearchIcon from '@material-ui/icons/Search';
import { RemoveIcon, EditSavedQueryIcon } from '~/components/icon/icon';
import { SearchView } from '~/store/search-bar/search-bar-reducer';
import { SearchBarBasicView } from '~/views-components/search-bar/search-bar-basic-view';
-import { SearchBarAdvancedView } from '~/views-components/search-bar/search-bar-advanced-view';
+import { SearchBarAdvancedView, Tags } from '~/views-components/search-bar/search-bar-advanced-view';
import { SearchBarAutocompleteView, SearchBarAutocompleteViewDataProps } from '~/views-components/search-bar/search-bar-autocomplete-view';
import { ArvadosTheme } from '~/common/custom-theme';
import { SearchBarAdvanceFormData } from '~/models/search-bar';
@@ -54,6 +54,7 @@ type SearchBarDataProps = {
currentView: string;
isPopoverOpen: boolean;
savedQueries: SearchBarAdvanceFormData[];
+ tags: Tags;
} & SearchBarAutocompleteViewDataProps;
interface SearchBarActionProps {
@@ -182,12 +183,12 @@ export const SearchBarView = withStyles(styles)(
}
getView = (currentView: string) => {
- const { onSetView, loadRecentQueries, savedQueries, deleteSavedQuery, searchValue, searchResults, saveQuery, onSearch, navigateTo, editSavedQuery } = this.props;
+ const { onSetView, loadRecentQueries, savedQueries, deleteSavedQuery, searchValue, searchResults, saveQuery, onSearch, navigateTo, editSavedQuery, tags } = this.props;
switch (currentView) {
case SearchView.BASIC:
return <SearchBarBasicView setView={onSetView} recentQueries={loadRecentQueries} savedQueries={savedQueries} deleteSavedQuery={deleteSavedQuery} onSearch={onSearch} editSavedQuery={editSavedQuery} />;
case SearchView.ADVANCED:
- return <SearchBarAdvancedView setView={onSetView} saveQuery={saveQuery} />;
+ return <SearchBarAdvancedView setView={onSetView} saveQuery={saveQuery} tags={tags} />;
case SearchView.AUTOCOMPLETE:
return <SearchBarAutocompleteView
navigateTo={navigateTo}
diff --git a/src/views-components/search-bar/search-bar.tsx b/src/views-components/search-bar/search-bar.tsx
index 7c3d260..8f39cae 100644
--- a/src/views-components/search-bar/search-bar.tsx
+++ b/src/views-components/search-bar/search-bar.tsx
@@ -15,19 +15,20 @@ import {
openSearchView,
closeSearchView,
navigateToItem,
- editSavedQuery
+ editSavedQuery,
+ searchDataOnEnter
} from '~/store/search-bar/search-bar-actions';
import { SearchBarView } from '~/views-components/search-bar/search-bar-view';
import { SearchBarAdvanceFormData } from '~/models/search-bar';
-import { searchDataOnEnter } from '../../store/search-bar/search-bar-actions';
-const mapStateToProps = ({ searchBar }: RootState) => {
+const mapStateToProps = ({ searchBar, form }: RootState) => {
return {
searchValue: searchBar.searchValue,
currentView: searchBar.currentView,
isPopoverOpen: searchBar.open,
searchResults: searchBar.searchResults,
- savedQueries: searchBar.savedQueries
+ savedQueries: searchBar.savedQueries,
+ tags: form.searchBarAdvanceFormName
};
};
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list