Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas@di-pentima.com.ar>
const { cluster: clusterId } = getAdvancedDataFromQuery(searchValue);
const sessions = getSearchSessions(clusterId, getState().auth.sessions);
const lists: ListResults<GroupContentsResource>[] = await Promise.all(sessions.map(session => {
const { cluster: clusterId } = getAdvancedDataFromQuery(searchValue);
const sessions = getSearchSessions(clusterId, getState().auth.sessions);
const lists: ListResults<GroupContentsResource>[] = await Promise.all(sessions.map(session => {
- const filters = queryToFilters(searchValue);
+ const filters = queryToFilters(searchValue, session.apiRevision);
return services.groupsService.contents('', {
filters,
limit,
return services.groupsService.contents('', {
filters,
limit,
return sessions.filter(s => s.loggedIn && (!clusterId || s.clusterId === clusterId));
};
return sessions.filter(s => s.loggedIn && (!clusterId || s.clusterId === clusterId));
};
-export const queryToFilters = (query: string) => {
+export const queryToFilters = (query: string, apiRevision: number) => {
const data = getAdvancedDataFromQuery(query);
const filter = new FilterBuilder();
const resourceKind = data.type;
const data = getAdvancedDataFromQuery(query);
const filter = new FilterBuilder();
const resourceKind = data.type;
data.properties.forEach(p => {
if (p.value) {
data.properties.forEach(p => {
if (p.value) {
- filter
- .addContains(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.PROJECT)
- .addContains(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.COLLECTION);
+ if (apiRevision < 20200212) {
+ filter
+ .addILike(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.PROJECT)
+ .addILike(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.COLLECTION);
+ } else {
+ filter
+ .addContains(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.PROJECT)
+ .addContains(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.COLLECTION);
+ }
}
filter.addExists(p.key);
});
}
filter.addExists(p.key);
});
- const params = getParams(dataExplorer, searchValue);
-
const initial = {
itemsAvailable: 0,
items: [] as GroupContentsResource[],
const initial = {
itemsAvailable: 0,
items: [] as GroupContentsResource[],
api.dispatch(setItems(initial));
}
api.dispatch(setItems(initial));
}
- sessions.map(session =>
+ sessions.map(session => {
+ const params = getParams(dataExplorer, searchValue, session.apiRevision);
this.services.groupsService.contents('', params, session)
.then((response) => {
api.dispatch(updateResources(response.items));
api.dispatch(appendItems(response));
}).catch(() => {
api.dispatch(couldNotFetchSearchResults(session.clusterId));
this.services.groupsService.contents('', params, session)
.then((response) => {
api.dispatch(updateResources(response.items));
api.dispatch(appendItems(response));
}).catch(() => {
api.dispatch(couldNotFetchSearchResults(session.clusterId));
);
}
}
const typeFilters = (columns: DataColumns<string>) => serializeResourceTypeFilters(getDataExplorerColumnFilters(columns, ProjectPanelColumnNames.TYPE));
);
}
}
const typeFilters = (columns: DataColumns<string>) => serializeResourceTypeFilters(getDataExplorerColumnFilters(columns, ProjectPanelColumnNames.TYPE));
-export const getParams = (dataExplorer: DataExplorer, query: string) => ({
+const getParams = (dataExplorer: DataExplorer, query: string, apiRevision: number) => ({
...dataExplorerToListParams(dataExplorer),
filters: joinFilters(
...dataExplorerToListParams(dataExplorer),
filters: joinFilters(
+ queryToFilters(query, apiRevision),
typeFilters(dataExplorer.columns)
),
order: getOrder(dataExplorer),
typeFilters(dataExplorer.columns)
),
order: getOrder(dataExplorer),