From 3b54aae6581d2f5e63d9904536b17ff3b25394b0 Mon Sep 17 00:00:00 2001
From: Nico Vermaas <vermaas@astron.nl>
Date: Fri, 4 Jun 2021 09:51:07 +0200
Subject: [PATCH] add shoppingbasket functionality to 'apertif' and 'astron_vo'
 archives

---
 src/components/query/ASTRONVOResults.js  | 24 ++++++++++++++----------
 src/components/query/ApertifResults.js   |  2 +-
 src/components/query/VORegListResults.js | 14 ++++++++++++++
 src/routes/Routes.js                     |  2 +-
 4 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/src/components/query/ASTRONVOResults.js b/src/components/query/ASTRONVOResults.js
index c525496..1cc01a5 100644
--- a/src/components/query/ASTRONVOResults.js
+++ b/src/components/query/ASTRONVOResults.js
@@ -7,6 +7,15 @@ import LoadingSpinner from "../LoadingSpinner";
 import Paginate from "../Paginate";
 import HandlePreview from "./HandlePreview";
 import Preview from "./Preview";
+import SaveBasket from "../basket/savebasket";
+import AddToBasket from "../basket/addtobasket";
+
+function SAMPBasketItem(record){
+    return {
+        archive: "astron_vo",
+        record: record,
+    };
+}
 
 export default function ASTRONVOResults({ catalog }) {
   const { queryMap, preview } = useContext(QueryContext);
@@ -61,14 +70,11 @@ export default function ASTRONVOResults({ catalog }) {
           numAdjacent={3}
           numPages={numPages}
         />
+        <SaveBasket />
         <Table className="mt-3" responsive>
           <thead>
             <tr className="bg-light">
-              {/* <th>
-              <InputGroup>
-                <InputGroup.Checkbox />
-              </InputGroup>
-            </th> */}
+              <th>Basket</th>
               <th>Collection</th>
               <th>RA</th>
               <th>Dec</th>
@@ -85,11 +91,9 @@ export default function ASTRONVOResults({ catalog }) {
               return (
                 <>
                   <tr key={result.url}>
-                    {/* <th>
-                      <InputGroup>
-                        <InputGroup.Checkbox />
-                      </InputGroup>
-                      </th> */}
+                    <td>
+                      <AddToBasket id={result.id}  item={SAMPBasketItem(result)} />
+                    </td>
                     <td>{result.obs_collection}</td>
                     <td>{Number(result.ra).toFixed(1)}</td>
                     <td>{Number(result.dec).toFixed(1)}</td>
diff --git a/src/components/query/ApertifResults.js b/src/components/query/ApertifResults.js
index a6ec4f3..1cef4f2 100644
--- a/src/components/query/ApertifResults.js
+++ b/src/components/query/ApertifResults.js
@@ -3,7 +3,7 @@ import { Table, Alert } from "react-bootstrap";
 import axios from "axios";
 import { QueryContext } from "../../contexts/QueryContext";
 import { GlobalContext } from "../../contexts/GlobalContext";
-import { BasketContext } from "../../contexts/BasketContext";
+
 import LoadingSpinner from "../LoadingSpinner";
 import Paginate from "../Paginate";
 import HandlePreview from "./HandlePreview";
diff --git a/src/components/query/VORegListResults.js b/src/components/query/VORegListResults.js
index 19c6f2a..2997f22 100644
--- a/src/components/query/VORegListResults.js
+++ b/src/components/query/VORegListResults.js
@@ -4,6 +4,15 @@ import { QueryContext } from "../../contexts/QueryContext";
 import LoadingSpinner from "../LoadingSpinner";
 import Paginate from "../Paginate";
 import { IVOAContext } from "../../contexts/IVOAContext";
+import SaveBasket from "../basket/savebasket";
+import AddToBasket from "../basket/addtobasket";
+
+function SAMPBasketItem(record){
+    return {
+        archive: "ivoa",
+        record: record,
+    };
+}
 
 export default function VORegListResults({ catalog }) {
   const { queryMap } = useContext(QueryContext);
@@ -51,6 +60,7 @@ export default function VORegListResults({ catalog }) {
           numAdjacent={3}
           numPages={numPages}
         />
+        <SaveBasket />
         <Table className="mt-3" responsive>
           <thead>
             <tr className="bg-light">
@@ -74,6 +84,7 @@ export default function VORegListResults({ catalog }) {
                   />
                 </InputGroup>
               </th>
+              <th>Basket</th>
               <th>Resource</th>
               <th>Access URL</th>
               <th>Waveband</th>
@@ -99,6 +110,9 @@ export default function VORegListResults({ catalog }) {
                       />
                     </InputGroup>
                   </th>
+                  <td>
+                    <AddToBasket id={result.id}  item={SAMPBasketItem(result)} />
+                  </td>
                   <td>{result.short_name}</td>
                   <td>{result.access_url}</td>
                   <td>{result.waveband}</td>
diff --git a/src/routes/Routes.js b/src/routes/Routes.js
index 4f5b39f..2de3349 100644
--- a/src/routes/Routes.js
+++ b/src/routes/Routes.js
@@ -56,7 +56,7 @@ export default function Routes() {
           </BasketContextProvider>
         </Route>
       </Switch>
-      <footer><small>esap-gui version 3 jun 2021 - 11:30</small></footer>
+      <footer><small>esap-gui version 4 jun 2021 - 10:00</small></footer>
     </Router>
   );
 }
-- 
GitLab