Fix bugs in resources download
Fix a bug caused when downloading with smart query filter on. Also fix a bug in downloading presets.
This commit is contained in:
1 parent
3b3369a236
commit
d70263e798
7 files changed
+25
-21
No files matched your search
+8
-4
@@ -101,13 +101,17 @@ export function query(
|
||||
.collection(RESOURCE_COLLECTION[resource] || resource);
|
||||
const cursor = collection.find(q);
|
||||
if (options.projection) {
|
||||
cursor.project(
|
||||
resource === "devices"
|
||||
? mongodbFunctions.processDeviceProjection(options.projection)
|
||||
: options.projection
|
||||
let projection = options.projection;
|
||||
if (resource === "devices") {
|
||||
projection = mongodbFunctions.processDeviceProjection(
|
||||
options.projection
|
||||
);
|
||||
}
|
||||
|
||||
if (resource === "presets") projection.configurations = 1;
|
||||
cursor.project(projection);
|
||||
}
|
||||
|
||||
if (resource === "users") cursor.project({ password: 0 });
|
||||
|
||||
if (options.skip) cursor.skip(options.skip);
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ const getDownloadUrl = memoize((filter, indexParameters) => {
|
||||
const columns = {};
|
||||
for (const p of indexParameters) columns[p.label] = stringify(p.parameter);
|
||||
return `/api/devices.csv?${m.buildQueryString({
|
||||
filter: filter,
|
||||
filter: stringify(filter),
|
||||
columns: JSON.stringify(columns)
|
||||
})}`;
|
||||
});
|
||||
@@ -382,7 +382,7 @@ export const component: ClosureComponent = (): Component => {
|
||||
vnode.state["selected"] = selected;
|
||||
|
||||
const downloadUrl = getDownloadUrl(
|
||||
vnode.attrs["filter"],
|
||||
filter,
|
||||
vnode.attrs["indexParameters"]
|
||||
);
|
||||
|
||||
|
||||
+3
-3
@@ -6,7 +6,7 @@ import * as store from "./store";
|
||||
import * as notifications from "./notifications";
|
||||
import memoize from "../lib/common/memoize";
|
||||
import * as smartQuery from "./smart-query";
|
||||
import { map, parse } from "../lib/common/expression-parser";
|
||||
import { map, parse, stringify } from "../lib/common/expression-parser";
|
||||
import { loadYaml, yaml } from "./dynamic-loader";
|
||||
|
||||
const PAGE_SIZE = config.ui.pageSize || 10;
|
||||
@@ -32,7 +32,7 @@ const getDownloadUrl = memoize(filter => {
|
||||
}
|
||||
|
||||
return `/api/faults.csv?${m.buildQueryString({
|
||||
filter: filter,
|
||||
filter: stringify(filter),
|
||||
columns: JSON.stringify(cols)
|
||||
})}`;
|
||||
});
|
||||
@@ -272,7 +272,7 @@ export const component: ClosureComponent = (): Component => {
|
||||
}
|
||||
vnode.state["selected"] = selected;
|
||||
|
||||
const downloadUrl = getDownloadUrl(vnode.attrs["filter"]);
|
||||
const downloadUrl = getDownloadUrl(filter);
|
||||
|
||||
const attrs = {};
|
||||
attrs["resource"] = "faults";
|
||||
|
||||
+3
-3
@@ -8,7 +8,7 @@ import memoize from "../lib/common/memoize";
|
||||
import putFormComponent from "./put-form-component";
|
||||
import * as overlay from "./overlay";
|
||||
import * as smartQuery from "./smart-query";
|
||||
import { map, parse } from "../lib/common/expression-parser";
|
||||
import { map, parse, stringify } from "../lib/common/expression-parser";
|
||||
|
||||
const PAGE_SIZE = config.ui.pageSize || 10;
|
||||
|
||||
@@ -112,7 +112,7 @@ const getDownloadUrl = memoize(filter => {
|
||||
const cols = {};
|
||||
for (const attr of attributes) cols[attr.label] = attr.id;
|
||||
return `/api/files.csv?${m.buildQueryString({
|
||||
filter: filter,
|
||||
filter: stringify(filter),
|
||||
columns: JSON.stringify(cols)
|
||||
})}`;
|
||||
});
|
||||
@@ -375,7 +375,7 @@ export const component: ClosureComponent = (): Component => {
|
||||
}
|
||||
vnode.state["selected"] = selected;
|
||||
|
||||
const downloadUrl = getDownloadUrl(vnode.attrs["filter"]);
|
||||
const downloadUrl = getDownloadUrl(filter);
|
||||
|
||||
const attrs = {};
|
||||
attrs["resource"] = "files";
|
||||
|
||||
+3
-3
@@ -8,7 +8,7 @@ import * as notifications from "./notifications";
|
||||
import putFormComponent from "./put-form-component";
|
||||
import memoize from "../lib/common/memoize";
|
||||
import * as smartQuery from "./smart-query";
|
||||
import { map, parse } from "../lib/common/expression-parser";
|
||||
import { map, parse, stringify } from "../lib/common/expression-parser";
|
||||
|
||||
const PAGE_SIZE = config.ui.pageSize || 10;
|
||||
|
||||
@@ -105,7 +105,7 @@ const getDownloadUrl = memoize(filter => {
|
||||
const cols = {};
|
||||
for (const attr of attributes) cols[attr.label] = attr.id;
|
||||
return `/api/presets.csv?${m.buildQueryString({
|
||||
filter: filter,
|
||||
filter: stringify(filter),
|
||||
columns: JSON.stringify(cols)
|
||||
})}`;
|
||||
});
|
||||
@@ -456,7 +456,7 @@ export const component: ClosureComponent = (): Component => {
|
||||
}
|
||||
vnode.state["selected"] = selected;
|
||||
|
||||
const downloadUrl = getDownloadUrl(vnode.attrs["filter"]);
|
||||
const downloadUrl = getDownloadUrl(filter);
|
||||
|
||||
const attrs = {};
|
||||
attrs["resource"] = "presets";
|
||||
|
||||
@@ -8,7 +8,7 @@ import memoize from "../lib/common/memoize";
|
||||
import putFormComponent from "./put-form-component";
|
||||
import * as overlay from "./overlay";
|
||||
import * as smartQuery from "./smart-query";
|
||||
import { map, parse } from "../lib/common/expression-parser";
|
||||
import { map, parse, stringify } from "../lib/common/expression-parser";
|
||||
import { loadCodeMirror } from "./dynamic-loader";
|
||||
|
||||
const PAGE_SIZE = config.ui.pageSize || 10;
|
||||
@@ -95,7 +95,7 @@ const getDownloadUrl = memoize(filter => {
|
||||
const cols = {};
|
||||
for (const attr of attributes) cols[attr.label] = attr.id;
|
||||
return `/api/provisions.csv?${m.buildQueryString({
|
||||
filter: filter,
|
||||
filter: stringify(filter),
|
||||
columns: JSON.stringify(cols)
|
||||
})}`;
|
||||
});
|
||||
@@ -424,7 +424,7 @@ export const component: ClosureComponent = (): Component => {
|
||||
}
|
||||
vnode.state["selected"] = selected;
|
||||
|
||||
const downloadUrl = getDownloadUrl(vnode.attrs["filter"]);
|
||||
const downloadUrl = getDownloadUrl(filter);
|
||||
|
||||
const attrs = {};
|
||||
attrs["resource"] = "provisions";
|
||||
|
||||
@@ -8,7 +8,7 @@ import memoize from "../lib/common/memoize";
|
||||
import putFormComponent from "./put-form-component";
|
||||
import * as overlay from "./overlay";
|
||||
import * as smartQuery from "./smart-query";
|
||||
import { map, parse } from "../lib/common/expression-parser";
|
||||
import { map, parse, stringify } from "../lib/common/expression-parser";
|
||||
import { loadCodeMirror } from "./dynamic-loader";
|
||||
|
||||
const PAGE_SIZE = config.ui.pageSize || 10;
|
||||
@@ -95,7 +95,7 @@ const getDownloadUrl = memoize(filter => {
|
||||
const cols = {};
|
||||
for (const attr of attributes) cols[attr.label] = attr.id;
|
||||
return `/api/virtualParameters.csv?${m.buildQueryString({
|
||||
filter: filter,
|
||||
filter: stringify(filter),
|
||||
columns: JSON.stringify(cols)
|
||||
})}`;
|
||||
});
|
||||
@@ -434,7 +434,7 @@ export const component: ClosureComponent = (): Component => {
|
||||
}
|
||||
vnode.state["selected"] = selected;
|
||||
|
||||
const downloadUrl = getDownloadUrl(vnode.attrs["filter"]);
|
||||
const downloadUrl = getDownloadUrl(filter);
|
||||
|
||||
const attrs = {};
|
||||
attrs["resource"] = "virtualParameters";
|
||||
|
||||
Reference in new issue
Block a user