Merge branch 'master' of git.curoverse.com:arvados-workbench2 into 13827-structured...
authorJanicki Artur <artur.janicki@contractors.roche.com>
Thu, 11 Oct 2018 07:49:58 +0000 (09:49 +0200)
committerJanicki Artur <artur.janicki@contractors.roche.com>
Thu, 11 Oct 2018 07:49:58 +0000 (09:49 +0200)
refs #2
13827

Arvados-DCO-1.1-Signed-off-by: Janicki Artur <artur.janicki@contractors.roche.com>

1  2 
src/store/search-bar/search-bar-actions.ts
src/views-components/search-bar/search-bar-advanced-view.tsx
src/views-components/search-bar/search-bar-view.tsx

index 717b9824d5ee38d1844619495f800553355e0e83,2b8ca83e694c62ff18cf457214f6852b363054c8..dbc77a84e942ccb18028ac8296acdc934a88b543
@@@ -21,20 -21,20 +21,31 @@@ export const searchBarActions = unioniz
  
  export type SearchBarActions = UnionOf<typeof searchBarActions>;
  
 +export interface SearchBarAdvanceFormData {
 +    type?: GroupContentsResource;
 +    cluster?: string;
 +    project?: string;
 +    dataFrom: string;
 +    dataTo: string;
 +    searchQuery: string;
 +}
 +
 +export const SEARCH_BAR_ADVANCE_FORM_NAME = 'searchBarAdvanceFormName';
 +
  export const goToView = (currentView: string) => searchBarActions.SET_CURRENT_VIEW(currentView);
  
- export const searchData = (searchValue: string) => 
+ export const saveRecentQuery = (query: string) =>
+     (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
+         services.searchQueriesService.saveRecentQuery(query);
+     };
+ export const loadRecentQueries = () =>
+     (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
+         const recentSearchQueries = services.searchQueriesService.getRecentQueries();
+         return recentSearchQueries || [];
+     };
+ export const searchData = (searchValue: string) =>
      async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
          dispatch(searchBarActions.SET_SEARCH_VALUE(searchValue));
          dispatch(searchBarActions.SET_SEARCH_RESULTS([]));
index 8e20b997c23648ea45c47f6a613ab0a8cc0e76b8,dde23685f57b51f9b6802d661360507780c7f926..583c9a0b12af1befacfebbaa89091d014e0c7825
@@@ -63,99 -24,12 +63,99 @@@ interface SearchBarAdvancedViewActionPr
      setView: (currentView: string) => void;
  }
  
 -export const SearchBarAdvancedView = withStyles(styles)(
 -    ({ classes, setView }: SearchBarAdvancedViewProps & WithStyles<CssRules>) =>
 -        <Paper className={classes.searchView}>
 -            <List component="nav" className={classes.list}>
 -                <RecentQueriesItem text='ADVANCED VIEW' />
 -            </List>
 -            <Button onClick={() => setView(SearchView.BASIC)}>Back</Button>
 -        </Paper>
 -);
 +type SearchBarAdvancedViewProps = SearchBarAdvancedViewActionProps & SearchBarAdvancedViewDataProps 
 +    & InjectedFormProps & WithStyles<CssRules>;
 +
 +export const SearchBarAdvancedView = compose(
 +    reduxForm<SearchBarAdvanceFormData, SearchBarAdvancedViewActionProps>({
 +        form: SEARCH_BAR_ADVANCE_FORM_NAME,
 +        onSubmit: (data: SearchBarAdvanceFormData, dispatch: Dispatch) => {
 +            console.log('data: ', data);
 +            dispatch(reset(SEARCH_BAR_ADVANCE_FORM_NAME));
 +        }
 +    }),
 +    withStyles(styles))(
 +        ({ classes, setView, handleSubmit, invalid, submitting, pristine }: SearchBarAdvancedViewProps) =>
 +            <Paper>
 +                <form onSubmit={handleSubmit} className={classes.form}>
 +                    <Grid container direction="column" justify="flex-start" alignItems="flex-start">
 +                        <Grid item xs={12} container className={classes.container}>
 +                            <Grid item container xs={12}>
 +                                <Grid item xs={2} className={classes.label}>Type</Grid>
 +                                <Grid item xs={5}>
 +                                    <SearchBarTypeField />
 +                                </Grid>
 +                            </Grid>
 +                            <Grid item container xs={12}>
 +                                <Grid item xs={2} className={classes.label}>Cluster</Grid>
 +                                <Grid item xs={5}>
 +                                    <SearchBarClusterField />
 +                                </Grid>
 +                            </Grid>
 +                            <Grid item container xs={12}>
 +                                <Grid item xs={2} className={classes.label}>Project</Grid>
 +                                <Grid item xs={5}>
 +                                    <SearchBarProjectField />
 +                                </Grid>
 +                            </Grid>
 +                            <Grid item container xs={12}>
 +                                <Grid item xs={2} className={classes.label} />
 +                                <Grid item xs={5}>
 +                                    <SearchBarTrashField />
 +                                </Grid>
 +                            </Grid>
 +                            <IconButton onClick={() => setView(SearchView.BASIC)} className={classes.closeIcon}>
 +                                <CloseIcon />
 +                            </IconButton>
 +                        </Grid>
 +                        <Grid container item xs={12} className={classes.container}>
 +                            <Grid item xs={2} className={classes.label}>Data modified</Grid>
 +                            <Grid item xs={3}>
 +                                <SearchBarDataFromField />
 +                            </Grid>
 +                            <Grid item xs={3}>
 +                                <SearchBarDataToField />
 +                            </Grid>
 +                        </Grid>
 +                        <Grid container item xs={12} className={classes.container}>
 +                            <Grid container item xs={12}>
 +                                <Grid item xs={2} className={classes.label}>Properties</Grid>
 +                                <Grid item xs={4}>
 +                                    <SearchBarKeyField />
 +                                </Grid>
 +                                <Grid item xs={4}>
 +                                    <SearchBarValueField />
 +                                </Grid>
 +                                <Grid container item xs={2} justify='flex-end' alignItems="center">
 +                                    <Button className={classes.button}
 +                                        color="primary"
 +                                        size='small'
 +                                        variant="contained">
 +                                        Add
 +                                    </Button>
 +                                </Grid>
 +                            </Grid>
 +                            <Grid container item xs={12} justify="flex-start" alignItems="center">
 +                                <Grid item xs={2} className={classes.label} />
 +                                <Grid item xs={4}>
 +                                    <SearchBarSaveSearchField />
 +                                </Grid>
 +                                <Grid item xs={4}>
 +                                    <SearchBarQuerySearchField />
 +                                </Grid>
 +                            </Grid>
 +                            <Grid container item xs={12} justify='flex-end'>
 +                                <div className={classes.buttonWrapper}>
 +                                    <Button type="submit" className={classes.button}
 +                                        color="primary"
 +                                        size='small'
 +                                        variant="contained">
 +                                        Search
 +                                    </Button>
 +                                    {submitting && <CircularProgress size={20} className={classes.circularProgress} />}
 +                                </div>
 +                            </Grid>
 +                        </Grid>
 +                    </Grid>
 +                </form>
-             </Paper>);
++            </Paper>);
index 7c87bd30e24212b1ecce81027b9a0086b1a7ffbc,b2575a8f5f3ec171c24f192ab235262aa9295334..d6facbd7bcc23619b27104f0dd78c5fd7dc59c40
@@@ -22,7 -22,7 +22,7 @@@ import { SearchBarAdvancedView } from '
  import { SearchBarAutocompleteView, SearchBarAutocompleteViewDataProps } from '~/views-components/search-bar/search-bar-autocomplete-view';
  import { ArvadosTheme } from '~/common/custom-theme';
  
- type CssRules = 'container' | 'input' | 'searchBar' | 'view';
 -type CssRules = 'container' | 'containerSearchViewOpened' | 'input' | 'searchBar';
++type CssRules = 'container' | 'containerSearchViewOpened' | 'input' | 'searchBar' | 'view';
  
  const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => {
      return {