Skip to content

Commit d0d866c

Browse files
authored
fix metadata filters (#415)
* fix metadata filters * update other params to use json stringification * update version
1 parent a0b7b86 commit d0d866c

3 files changed

Lines changed: 39 additions & 12 deletions

File tree

client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dive-dsa",
3-
"version": "1.11.27",
3+
"version": "1.11.29",
44
"author": {
55
"name": "Kitware, Inc.",
66
"email": "Bryon.Lewis@kitware.com"

client/platform/web-girder/api/divemetadata.service.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,24 @@ export interface MetadataResultItem {
136136
metadata: StringKeyObject;
137137
}
138138

139+
function toJsonParam(value: unknown) {
140+
return JSON.stringify(value ?? {});
141+
}
142+
139143
function getMetadataFilterValues(folderId: string, keys?: string[]) {
144+
const params: Record<string, string> = {};
145+
if (keys !== undefined) {
146+
params.keys = toJsonParam(keys);
147+
}
140148
return girderRest.get<DIVEMetadataFilterValueResults>(`dive_metadata/${folderId}/metadata_keys`, {
141-
params: { keys },
149+
params,
142150
});
143151
}
144152

145153
function filterDiveMetadata(folderId: string, filters: DIVEMetadataFilter, offset = 0, limit = 50, sort = 'filename', sortdir = 1) {
146154
return girderRest.get<DIVEMetadataResults>(`dive_metadata/${folderId}/filter`, {
147155
params: {
148-
filters, offset, limit, sort, sortdir,
156+
filters: toJsonParam(filters), offset, limit, sort, sortdir,
149157
},
150158
});
151159
}
@@ -178,7 +186,7 @@ async function getDiveDatasetMetadataRow(
178186
function createDiveMetadataClone(folder: string, filters: DIVEMetadataFilter, destFolder: string) {
179187
return girderRest.post<string>(`dive_metadata/${folder}/clone_filter`, null, {
180188
params: {
181-
baseFolder: folder, filters, destFolder,
189+
baseFolder: folder, filters: toJsonParam(filters), destFolder,
182190
},
183191
});
184192
}
@@ -206,7 +214,11 @@ function createDiveMetadataFolder(
206214
) {
207215
return girderRest.post<createDiveMetadataResponse>(`dive_metadata/create_metadata_folder/${parentFolder}`, null, {
208216
params: {
209-
name, rootFolderId, categoricalLimit, displayConfig, ffprobeMetadata,
217+
name,
218+
rootFolderId,
219+
categoricalLimit,
220+
displayConfig: toJsonParam(displayConfig),
221+
ffprobeMetadata: toJsonParam(ffprobeMetadata),
210222
},
211223
});
212224
}
@@ -342,12 +354,17 @@ async function updateDiveMetadataOrder(folderId: string, order: string[], groups
342354
}
343355

344356
async function runSlicerMetadataTask(rootId: string, taskId: string, filters: DIVEMetadataFilter, params: Record<string, XMLBaseValue>) {
345-
return girderRest.post<JobResponse>(`dive_metadata/${rootId}/slicer-cli-task`, { taskId, filterParams: { filters, params } }, { params: { taskId, filterParams: { filters, params } } });
357+
const filterParams = toJsonParam({ filters, params });
358+
return girderRest.post<JobResponse>(
359+
`dive_metadata/${rootId}/slicer-cli-task`,
360+
{ taskId, filterParams },
361+
{ params: { taskId, filterParams } },
362+
);
346363
}
347364

348365
async function exportDiveMetadata(folderId: string, filters: DIVEMetadataFilter, format: 'csv' | 'json', baseUrl?: string) {
349366
const response = await girderRest.post(`dive_metadata/${folderId}/export`, null, {
350-
params: { format, filters, baseURL: baseUrl },
367+
params: { format, filters: toJsonParam(filters), baseURL: baseUrl },
351368
responseType: 'blob',
352369
});
353370

client/platform/web-girder/views/DIVEMetadata/DIVEMetadataFilter.vue

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,18 @@ export default defineComponent({
169169
delete currentFilter.value.metadataFilters[key];
170170
}
171171
});
172-
emit('updateFilters', { filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value });
172+
emit('updateFilters', {
173+
filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value, resetPage: true,
174+
});
173175
}
174176
});
175177
176178
watch([search, regEx], () => {
177179
currentFilter.value.search = search.value;
178180
currentFilter.value.searchRegEx = regEx.value;
179-
emit('updateFilters', { filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value });
181+
emit('updateFilters', {
182+
filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value, resetPage: true,
183+
});
180184
});
181185
182186
const clearFilter = (key: string) => {
@@ -186,7 +190,9 @@ export default defineComponent({
186190
if (currentFilter.value.metadataFilters[key]) {
187191
delete currentFilter.value.metadataFilters[key];
188192
}
189-
emit('updateFilters', { filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value });
193+
emit('updateFilters', {
194+
filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value, resetPage: true,
195+
});
190196
};
191197
const updateFilter = (key: string, { value, category, regEx } : {value: string | string[] | number | boolean | number[], category: MetadataFilterItem['category'], regEx?: boolean}) => {
192198
if (!currentFilter.value.metadataFilters) {
@@ -222,7 +228,9 @@ export default defineComponent({
222228
};
223229
224230
watch([sortValue, sortDir], () => {
225-
emit('updateFilters', { filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value });
231+
emit('updateFilters', {
232+
filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value, resetPage: true,
233+
});
226234
});
227235
228236
const getDefaultValue = (key: string) => {
@@ -263,7 +271,9 @@ export default defineComponent({
263271
};
264272
265273
const jobCompleted = () => {
266-
emit('updateFilters', { filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value });
274+
emit('updateFilters', {
275+
filter: currentFilter.value, sortVal: sortValue.value, sortDir: sortDir.value, resetPage: true,
276+
});
267277
};
268278
269279
const showSlicerCLI = computed(() => {

0 commit comments

Comments
 (0)