export const setSearchValueFromAdvancedData = (data: SearchBarAdvancedFormData, prevData?: SearchBarAdvancedFormData) =>
(dispatch: Dispatch, getState: () => RootState) => {
+ if (data.projectObject) {
+ data.projectUuid = data.projectObject.uuid;
+ }
const searchValue = getState().searchBar.searchValue;
const value = getQueryFromAdvancedData({
...data,
};
export const setAdvancedDataFromSearchValue = (search: string, vocabulary: Vocabulary) =>
- async (dispatch: Dispatch) => {
+ async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
const data = getAdvancedDataFromQuery(search, vocabulary);
+ if (data.projectUuid) {
+ data.projectObject = await services.projectService.get(data.projectUuid);
+ }
dispatch<any>(initialize(SEARCH_BAR_ADVANCED_FORM_NAME, data));
if (data.projectUuid) {
await dispatch<any>(activateSearchBarProject(data.projectUuid));
recursive: true
}, session, cancelTokens[index].token);
}));
-
+
cancelTokens = [];
-
+
const items = lists.reduce((items, list) => items.concat(list.items), [] as GroupContentsResource[]);
-
+
if (lists.filter(list => !!(list as any).items).length !== lists.length) {
dispatch(searchBarActions.SET_SEARCH_RESULTS([]));
} else {
};
(data.properties || []).forEach(p =>
fo[`prop-"${p.keyID || p.key}":"${p.valueID || p.value}"`] = `"${p.valueID || p.value}"`
- );
+ );
return fo;
};
[`has:"${p.keyID || p.key}"`, `prop-"${p.keyID || p.key}":"${p.valueID || p.value}"`]
));
- const modified = getModifiedKeysValues(flatData(data), prevData ? flatData(prevData):{});
+ const modified = getModifiedKeysValues(flatData(data), prevData ? flatData(prevData) : {});
value = buildQueryFromKeyMap(
- {searchValue: data.searchValue, ...modified} as SearchBarAdvancedFormData, keyMap);
+ { searchValue: data.searchValue, ...modified } as SearchBarAdvancedFormData, keyMap);
value = value.trim();
return value;
};
export const activateSearchBarProject = (id: string) =>
- async (dispatch: Dispatch, getState: () => RootState) => {
- const { treePicker } = getState();
+ async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+
+
+ /*const { treePicker } = getState();
const node = getSearchBarTreeNode(id)(treePicker);
if (node && node.status !== TreeNodeStatus.LOADED) {
await dispatch<any>(loadSearchBarTreeProjects(id));
ids: getSearchBarTreeNodeAncestorsIds(id)(treePicker),
pickerId: SEARCH_BAR_ADVANCED_FORM_PICKER_ID
}));
- dispatch<any>(expandSearchBarTreeItem(id));
+ dispatch<any>(expandSearchBarTreeItem(id));*/
};
import { PropertyValueField } from 'views-components/resource-properties-form/property-value-field';
import { connect } from "react-redux";
import { RootState } from "store/store";
+import { ProjectInput, ProjectCommandInputParameter } from 'views/run-process-panel/inputs/project-input';
export const SearchBarTypeField = () =>
<Field
);
export const SearchBarProjectField = () =>
- <Field
- name='projectUuid'
- component={ProjectsPicker} />;
-
-const ProjectsPicker = (props: WrappedFieldProps) =>
- <div style={{ height: '100px', display: 'flex', flexDirection: 'column', overflow: 'overlay' }}>
- <HomeTreePicker
- pickerId={SEARCH_BAR_ADVANCED_FORM_PICKER_ID}
- toggleItemActive={
- (_: any, { id }: TreeItem<ProjectsTreePickerItem>) => {
- props.input.onChange(id);
- }
- } />
- </div>;
+ <ProjectInput input={{
+ id: "projectObject",
+ label: "Limit search to Project"
+ } as ProjectCommandInputParameter}
+ options={{ showOnlyOwned: false, showOnlyWritable: false }} />
export const SearchBarTrashField = () =>
<Field