From f1507e492d1d164c837390d08206b6268b85dc2a Mon Sep 17 00:00:00 2001
From: meyer <meyer@astron.nl>
Date: Thu, 15 Oct 2020 17:59:57 +0200
Subject: [PATCH] change query schema based on selected catalog

---
 src/components/query/QueryCatalogs.js     | 15 ++++++++++++---
 src/components/query/QueryIVOARegistry.js |  1 +
 src/components/query/VOServiceResults.js  |  8 ++++----
 src/contexts/GlobalContext.js             |  3 ++-
 src/utils/form/parseADEXForm.js           | 12 ++++++++----
 5 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/src/components/query/QueryCatalogs.js b/src/components/query/QueryCatalogs.js
index dec058c..f341c21 100644
--- a/src/components/query/QueryCatalogs.js
+++ b/src/components/query/QueryCatalogs.js
@@ -1,5 +1,5 @@
 import React, { useContext, useEffect } from "react";
-import { useParams } from "react-router-dom";
+import { useParams, useHistory } from "react-router-dom";
 import axios from "axios";
 import { Container } from "react-bootstrap";
 import Form from "react-jsonschema-form";
@@ -19,6 +19,7 @@ export default function QueryCatalogs() {
     GlobalContext
   );
   const { uri } = useParams();
+  const history = useHistory();
   console.log("uri:", uri);
   console.log("default conf:", defaultConf);
 
@@ -40,8 +41,6 @@ export default function QueryCatalogs() {
       case "lofar":
         setConfigName("lofar");
         break;
-      default:
-        setConfigName(defaultConf);
     }
     return () => {
       console.log("cleaned up");
@@ -115,6 +114,16 @@ export default function QueryCatalogs() {
         schema={config.query_schema}
         ObjectFieldTemplate={formTemplate}
         formData={formData}
+        onBlur={(field, value) => {
+          if (field == "root_catalog") {
+            console.log("Change query catalog to : ", value);
+            if (value == "adex") {
+              history.push("/query");
+            } else {
+              history.push("/archives/" + value + "/query");
+            }
+          }
+        }}
         onSubmit={({ formData }) => setFormData(formData)}
         {...uiSchemaProp}
       ></Form>
diff --git a/src/components/query/QueryIVOARegistry.js b/src/components/query/QueryIVOARegistry.js
index 34ed887..2101a32 100644
--- a/src/components/query/QueryIVOARegistry.js
+++ b/src/components/query/QueryIVOARegistry.js
@@ -138,6 +138,7 @@ export default function QueryIVOARegistry() {
       query: { "ui:widget": "textarea" },
       keyword: { "ui:widget": "hidden" },
       tap_schema: { "ui:widget": "hidden" },
+      waveband: { "ui:widget": "hidden" },
     };
     console.log("new ui schema:", uiSchemaProp);
     return (
diff --git a/src/components/query/VOServiceResults.js b/src/components/query/VOServiceResults.js
index 77e8935..5617ff9 100644
--- a/src/components/query/VOServiceResults.js
+++ b/src/components/query/VOServiceResults.js
@@ -11,10 +11,10 @@ export default function VORegistryResults({ catalog }) {
   console.log("VO service queryMap:", queryMap.get(catalog));
 
   if (queryMap.get(catalog).status === "fetched") {
-    if (queryMap.get(catalog).results[0].includes("ERROR"))
-      return (
-        <Alert variant="warning">{queryMap.get(catalog).results[0]}</Alert>
-      );
+    // if (queryMap.get(catalog).results[0].includes("ERROR"))
+    //   return (
+    //     <Alert variant="warning">{queryMap.get(catalog).results[0]}</Alert>
+    //   );
     if (queryMap.get(catalog).results.results.length === 0)
       return <Alert variant="warning">No matching results found!</Alert>;
 
diff --git a/src/contexts/GlobalContext.js b/src/contexts/GlobalContext.js
index 3a13832..14ae233 100644
--- a/src/contexts/GlobalContext.js
+++ b/src/contexts/GlobalContext.js
@@ -11,7 +11,8 @@ export function GlobalContextProvider({ children }) {
     process.env.NODE_ENV === "development"
       ? "http://localhost:15671/esap-api/"
       : "/esap-api/";
-
+  // "http://localhost:15671/esap-api/"
+  // "http://sdc.astron.nl:5557/esap-api/"
   const [config, setConfig] = useState();
   const [configName, setConfigName] = useState(defaultConf);
 
diff --git a/src/utils/form/parseADEXForm.js b/src/utils/form/parseADEXForm.js
index 1c6a1d6..75f134d 100644
--- a/src/utils/form/parseADEXForm.js
+++ b/src/utils/form/parseADEXForm.js
@@ -1,5 +1,5 @@
 export default function ParseADEXForm(formData, page) {
-  let catalogs = ["apertif", "astron_vo"];
+  let catalogs = ["apertif", "astron_vo", "lofar"];
   let queries = [];
   // queries is an array of dictionaries, where each dictionary consists of
   // {"catalog": "catalogname",
@@ -20,10 +20,14 @@ export default function ParseADEXForm(formData, page) {
   //  "status": "null|fetching|fetched",
   //  "results": null}
   let catalog = formInput.find(([key]) => key === "catalog")[1];
-  if (catalog === "all") {
+  if (catalog === "adex") {
     console.log("Catalogs:", catalogs);
     catalogs.map((catalog) => {
-      let esapquery = query + `${`${query}` ? "&" : ""}archive_uri=` + catalog;
+      let esapquery =
+        query +
+        `${`${query}` ? "&" : ""}archive_uri=` +
+        catalog +
+        "&page_size=20";
 
       queries.push({
         catalog: catalog,
@@ -36,7 +40,7 @@ export default function ParseADEXForm(formData, page) {
       query +
       `${`${query}` ? "&" : ""}archive_uri=` +
       catalog +
-      `&page=${page}`;
+      `&page_size=30&page=${page}`;
 
     queries.push({
       catalog: catalog,
-- 
GitLab