summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2022-08-12 16:02:43 +0200
committerValerij Fredriksen <valerijf@yahooinc.com>2022-08-12 16:08:10 +0200
commit0ffba6ea05ed7ef60234ab7f8c5863057c18b45b (patch)
tree4b7cc71dc3d39529420b7758739ca7bb25af6b0a /client
parentfddb5fff5fecf4265177ca380f3316f2397e9d2f (diff)
Show notification error if format to jeagar fails
Diffstat (limited to 'client')
-rw-r--r--client/js/app/src/app/assets/index.js1
-rw-r--r--client/js/app/src/app/pages/querybuilder/context/query-builder-provider.jsx1
-rw-r--r--client/js/app/src/app/pages/querybuilder/query-response/download-jeager.jsx52
3 files changed, 33 insertions, 21 deletions
diff --git a/client/js/app/src/app/assets/index.js b/client/js/app/src/app/assets/index.js
index a62869fa71b..bf132dd86a7 100644
--- a/client/js/app/src/app/assets/index.js
+++ b/client/js/app/src/app/assets/index.js
@@ -1,2 +1 @@
export { default as VespaLogo } from 'app/assets/img/vespa-logo.svg';
-export { default as VespaIcon } from 'app/assets/img/vespa-icon.svg';
diff --git a/client/js/app/src/app/pages/querybuilder/context/query-builder-provider.jsx b/client/js/app/src/app/pages/querybuilder/context/query-builder-provider.jsx
index cfe39aaf5ee..622641e8cb6 100644
--- a/client/js/app/src/app/pages/querybuilder/context/query-builder-provider.jsx
+++ b/client/js/app/src/app/pages/querybuilder/context/query-builder-provider.jsx
@@ -109,7 +109,6 @@ function preReducer(state, { action, data }) {
const children = jsonToInputs(JSON.parse(data));
return { ...state, query: { ...root, children } };
} catch (error) {
- alert(`Failed to parse query: ${error}`); // TODO: Change to toast
return state;
}
}
diff --git a/client/js/app/src/app/pages/querybuilder/query-response/download-jeager.jsx b/client/js/app/src/app/pages/querybuilder/query-response/download-jeager.jsx
index 8c60c5b058c..4130172a329 100644
--- a/client/js/app/src/app/pages/querybuilder/query-response/download-jeager.jsx
+++ b/client/js/app/src/app/pages/querybuilder/query-response/download-jeager.jsx
@@ -1,32 +1,45 @@
import { Button } from '@mantine/core';
import React from 'react';
+import { errorMessage } from 'app/libs/notification';
import { Icon } from 'app/components';
import transform from 'app/pages/querybuilder/TransformVespaTrace';
+// copied from safakeskin´s answer on SO, link: https://stackoverflow.com/questions/55613438/reactwrite-to-json-file-or-export-download-no-server
+function downloadFile(filename, blob) {
+ const href = URL.createObjectURL(blob);
+
+ // create "a" HTML element with href to file
+ const link = document.createElement('a');
+ link.href = href;
+ link.download = filename;
+ document.body.appendChild(link);
+ link.click();
+
+ // clean up "a" element & remove ObjectURL
+ document.body.removeChild(link);
+ URL.revokeObjectURL(href);
+}
+
export function DownloadJeager({ response, ...props }) {
const handleClick = () => {
- let content;
try {
- content = JSON.stringify(transform(JSON.parse(response), null, 4));
+ const json = JSON.parse(response);
+
+ try {
+ const content = JSON.stringify(transform(json), null, 4);
+ downloadFile(
+ 'vespa-response.json',
+ new Blob([content], { type: 'application/json' })
+ );
+ } catch (error) {
+ errorMessage(
+ 'Request must be made with tracelevel ≥ 4',
+ 'Failed to transform response to Jaeger format'
+ );
+ }
} catch (error) {
- alert(`Failed to transform response to Jaeger format: ${error}`); // TODO: Change to toast
- return;
+ errorMessage(error.message);
}
-
- // copied from safakeskin´s answer on SO, link: https://stackoverflow.com/questions/55613438/reactwrite-to-json-file-or-export-download-no-server
- const blob = new Blob([content], { type: 'application/json' });
- const href = URL.createObjectURL(blob);
-
- // create "a" HTML element with href to file
- const link = document.createElement('a');
- link.href = href;
- link.download = 'vespa-response.json';
- document.body.appendChild(link);
- link.click();
-
- // clean up "a" element & remove ObjectURL
- document.body.removeChild(link);
- URL.revokeObjectURL(href);
};
return (
@@ -34,6 +47,7 @@ export function DownloadJeager({ response, ...props }) {
{...props}
leftIcon={<Icon name="download" />}
onClick={handleClick}
+ disabled={!(response?.length > 0)}
>
Jaeger Format
</Button>