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:
Shweelan Samson authored and Zaid Abdulla committed 2019-03-04 16:12:39 -08:00
1 parent 3b3369a236
commit d70263e798
7 files changed
+26 -22

No files matched your search

+9 -5
View File
@@ -101,11 +101,15 @@ 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 });
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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";
+3 -3
View File
@@ -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";
+3 -3
View File
@@ -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";