From d2fc5a6202fef5c261076fb9930e53e9cc6a7f8f Mon Sep 17 00:00:00 2001
From: Nico Vermaas <vermaas@astron.nl>
Date: Mon, 1 Nov 2021 15:54:39 +0100
Subject: [PATCH] adding multiple archive query (under construction)

---
 src/components/query/QueryCatalogs.js         |  1 +
 src/components/query/QueryMultipleArchives.js | 46 +++++++------------
 src/utils/form/parseMultipleArchivesForm.js   |  1 +
 3 files changed, 19 insertions(+), 29 deletions(-)

diff --git a/src/components/query/QueryCatalogs.js b/src/components/query/QueryCatalogs.js
index bc5a17e..6bd0909 100644
--- a/src/components/query/QueryCatalogs.js
+++ b/src/components/query/QueryCatalogs.js
@@ -70,6 +70,7 @@ export default function QueryCatalogs() {
 
     queryMap.clear();
     const gui = config.query_schema.name;
+
     const queries = parseQueryForm(gui, formData);
     queries.forEach((query) => {
       queryMap.set(query.catalog, {
diff --git a/src/components/query/QueryMultipleArchives.js b/src/components/query/QueryMultipleArchives.js
index b4405f9..99f06a1 100644
--- a/src/components/query/QueryMultipleArchives.js
+++ b/src/components/query/QueryMultipleArchives.js
@@ -140,8 +140,7 @@ export default function QueryMultipleArchives() {
         console.log('status = '+status)
     }
 
-    // set ConfigName for archive
-    // load the GUI for this configuration
+    // set ConfigName for multi_archive query
 
     useEffect(() => {
         setConfigName("multiple_archives");
@@ -154,6 +153,7 @@ export default function QueryMultipleArchives() {
     }, []);
 
 
+    // execute when the form
     useEffect(() => {
 
         if (status === CREATE_QUERIES) {
@@ -164,7 +164,6 @@ export default function QueryMultipleArchives() {
             fetchRunQueries()
         }
 
-        //alert('archiveQueries: ',archiveQueries)
     }, [queryStep, formData]);
 
 
@@ -182,6 +181,14 @@ export default function QueryMultipleArchives() {
         setQueryStep('run-query')
     }
 
+    // submit the form, and create the queries based on the parameters
+    function submitFormData(formData) {
+        setFormData(formData)
+
+        setStatus(CREATE_QUERIES)
+        setQueryStep('create-query')
+    }
+
     // https://react-jsonschema-form.readthedocs.io/en/latest/advanced-customization/custom-templates/#objectfieldtemplate
     function myObjectFieldTemplate({ TitleField, properties, title, description }) {
     return (
@@ -201,30 +208,11 @@ export default function QueryMultipleArchives() {
     // RENDER
     if (!config) return <LoadingSpinner />
 
+    // load the GUI for this configuration
     const uiSchemaProp = config.ui_schema ? { uiSchema: config.ui_schema } : {};
 
-    console.log("Form Data:", formData);
-    //alert('render: '+status)
-
-    if (status === CREATE_QUERIES) {
-        //fetchCreateQueries()
-    }
-
-    if (status === RUN_SELECTED_QUERIES) {
-        //fetchRunQueries()
-    }
-
-
-    let renderForm
-    if (status === QUERY_FORM) {
-        renderForm=<h1>Render Form</h1>
-    }
-
     // the logic to construct the GUI
-    let renderCreateQueryButton
-    //if (status === CREATE_QUERIES) {
-        renderCreateQueryButton = <Button type="submit" onClick={() => {handleCreateQueries();}}>{getQueryIcon()} Create Queries</Button>
-    //}
+    let renderCreateQueryButton = <Button type="submit" onClick={() => {handleCreateQueries();}}>{getQueryIcon()} Create Queries</Button>
 
     let renderRunQueryButton
     if (status === QUERIES_SELECTED) {
@@ -249,18 +237,18 @@ export default function QueryMultipleArchives() {
 
     return (
       <Container fluid>
-          <h2>Status - {status}</h2>
-          {renderForm}
+
             <Form
               schema={config.query_schema}
               ObjectFieldTemplate={myObjectFieldTemplate}
               formData={formData}
-              onSubmit={({ formData }) => setFormData(formData)}
+              onSubmit={({ formData }) => submitFormData(formData)}
               {...uiSchemaProp}
             >
-            {renderCreateQueryButton}&nbsp;
-            {renderRunQueryButton}
+
         </Form>
+          {renderCreateQueryButton}&nbsp;
+          {renderRunQueryButton}
           {renderCreateQueryResults}
           {renderQueryResults}
       </Container>
diff --git a/src/utils/form/parseMultipleArchivesForm.js b/src/utils/form/parseMultipleArchivesForm.js
index aed34e1..6dc536a 100644
--- a/src/utils/form/parseMultipleArchivesForm.js
+++ b/src/utils/form/parseMultipleArchivesForm.js
@@ -8,6 +8,7 @@ export default function parseMultipleArchivesForm(formData) {
     let base_query = "";
     let formInput = Object.entries(formData);
 
+
     // construct the base esap_query by iterating over all the fields in the form
     for (let [key, value] of formInput) {
         base_query += `${`${base_query}` ? "&" : ""}` + key + "=" + value;
-- 
GitLab