From 829d55d7490ad1554f44f00a5b75272b26d002b2 Mon Sep 17 00:00:00 2001
From: Viktor Vorobev <vorobev@in.tum.de>
Date: Fri, 7 Jul 2023 19:57:29 +0000
Subject: [PATCH] Merged in hide-scan-storage (pull request #55)

[NRRPLT-0000] Hide Scan Storage

* [NRRPLT-0000] Hide Scan Storage


Approved-by: Ugo Albanese
---
 public/hbp.png                                | Bin 0 -> 1641 bytes
 public/hbp75.png                              | Bin 0 -> 9020 bytes
 public/index.html                             |   2 +-
 public/manifest.json                          |  11 ++-
 .../import-experiment-buttons.js              |  85 ++++++++++--------
 .../nrp-core-dashboard/nrp-core-dashboard.js  |  19 ++--
 src/config.json.sample.docker                 |   3 +-
 src/config.json.sample.local                  |   3 +-
 src/config.json.sample.oidc                   |   3 +-
 9 files changed, 76 insertions(+), 50 deletions(-)
 create mode 100644 public/hbp.png
 create mode 100644 public/hbp75.png

diff --git a/public/hbp.png b/public/hbp.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6c728ac784e552cd87262aac310d5dcf6c359f0
GIT binary patch
literal 1641
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

literal 0
HcmV?d00001

diff --git a/public/hbp75.png b/public/hbp75.png
new file mode 100644
index 0000000000000000000000000000000000000000..4dfc63a64049f08f887815e30e64cb0edb2c8adc
GIT binary patch
literal 9020
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

literal 0
HcmV?d00001

diff --git a/public/index.html b/public/index.html
index dd17215..141a45a 100644
--- a/public/index.html
+++ b/public/index.html
@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="utf-8" />
-    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
+    <link rel="icon" href="%PUBLIC_URL%/hbp.png" />
     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
     <meta name="viewport" content="width=device-width, initial-scale=1" />
     <meta name="theme-color" content="#000000" />
diff --git a/public/manifest.json b/public/manifest.json
index 6aade06..35ac71b 100644
--- a/public/manifest.json
+++ b/public/manifest.json
@@ -3,9 +3,14 @@
   "name": "Neurorobotics Platform",
   "icons": [
     {
-      "src": "favicon.ico",
-      "sizes": "64x64 32x32 24x24 16x16",
-      "type": "image/x-icon"
+      "src": "hbp.png",
+      "sizes": "32x32",
+      "type": "image/png"
+    },
+    {
+      "src": "hbp75.png",
+      "sizes": "75x75",
+      "type": "image/png"
     },
     {
       "src": "logo192.png",
diff --git a/src/components/experiment-list/import-experiment-buttons.js b/src/components/experiment-list/import-experiment-buttons.js
index 4c28631..bdb5d10 100644
--- a/src/components/experiment-list/import-experiment-buttons.js
+++ b/src/components/experiment-list/import-experiment-buttons.js
@@ -7,12 +7,18 @@ import ExperimentStorageService from '../../services/experiments/files/experimen
 import './experiment-list-element.css';
 import './import-experiment-buttons.css';
 
+
+import frontendConfig from '../../config.json';
+
 import OverlayTrigger from 'react-bootstrap/OverlayTrigger';
 import Tooltip from 'react-bootstrap/Tooltip';
 export default class ImportExperimentButtons extends React.Component {
   constructor(props) {
     super(props);
     this.state = {};
+    // By default, we enable the scan storage button, even if it's not in the config.
+    // For the online version, we explicitly disable it.
+    this.scanStorage = frontendConfig.scanStorage !== undefined ? frontendConfig.scanStorage : true;
   }
 
   importFolderPopupClick() {
@@ -152,47 +158,50 @@ export default class ImportExperimentButtons extends React.Component {
         {/* Import buttons */}
         {/* TODO: [NRRPLT-8721] restore experiment import funtionality */}
         <div className='list-entry-buttons flex-container center'>
-          <input disabled={true} id='folder' type='file' style={{display:'none'}}
+          <input disabled={true} id='folder' type='file' style={{ display: 'none' }}
             multiple directory='' webkitdirectory=''
-            onChange={(event) => this.importExperimentFolderChange(event)}/>
-          <input disabled={true} id='zip' type='file' style={{display:'none'}}
+            onChange={(event) => this.importExperimentFolderChange(event)} />
+          <input disabled={true} id='zip' type='file' style={{ display: 'none' }}
             multiple accept='.zip'
-            onChange={(event) => this.importZippedExperimentChange(event)}/>
-          {!this.state.isImporting
-            ? <div className='btn-group' role='group'>
-              <OverlayTrigger placement='bottom'
-                key='folder-tooltip'
-                overlay={
-                  <Tooltip id='tooltip-folder'>
-                    The import of the experiments is comming soon!
-                  </Tooltip>
-                }
-              >
-                <button type='button' className='btn btn-outline-dark'>
-                  <label htmlFor='folder' className='import-button'>
-                    <FaFolder/> Import folder
-                  </label>
-                </button>
-              </OverlayTrigger>
-              <OverlayTrigger placement='bottom'
-                key='zip-tooltip'
-                overlay={
-                  <Tooltip id='tooltip-zip'>
-                    The import of the zipped experiments is comming soon!
-                  </Tooltip>
-                }
-              >
-                <button type='button' className='btn btn-outline-dark'
-                  data-toggle='tooltip' data-placement='bottom' title='Tooltip on bottom'
-                >
-                  <label htmlFor='zip' className='import-button'><FaFileArchive /> Import zip</label>
-                </button >
-              </OverlayTrigger>
-              <button type='button' className='btn btn-outline-dark' onClick={() => this.scanStorageClick()}>
-                <FaAudible/> Scan Storage
+            onChange={(event) => this.importZippedExperimentChange(event)} />
+          <div className='btn-group' role='group'>
+            <OverlayTrigger placement='bottom'
+              key='folder-tooltip'
+              overlay={
+                <Tooltip id='tooltip-folder'>
+                  The import of the experiments is coming soon!
+                </Tooltip>
+              }
+            >
+              <button type='button' className='btn btn-outline-dark'>
+                <label htmlFor='folder' className='import-button'>
+                  <FaFolder /> Import folder
+                </label>
               </button>
-            </div>
-            : null}
+            </OverlayTrigger>
+            <OverlayTrigger placement='bottom'
+              key='zip-tooltip'
+              overlay={
+                <Tooltip id='tooltip-zip'>
+                  The import of the zipped experiments is coming soon!
+                </Tooltip>
+              }
+            >
+              <button type='button' className='btn btn-outline-dark'
+                data-toggle='tooltip' data-placement='bottom' title='Tooltip on bottom'
+              >
+                <label htmlFor='zip' className='import-button'><FaFileArchive /> Import zip</label>
+              </button >
+            </OverlayTrigger>
+
+            {
+              this.scanStorage ?
+                <button type='button' className='btn btn-outline-dark' onClick={() => this.scanStorageClick()}>
+                  <FaAudible /> Scan Storage
+                </button> :
+                null
+            }
+          </div>
         </div>
       </div>
     );
diff --git a/src/components/nrp-core-dashboard/nrp-core-dashboard.js b/src/components/nrp-core-dashboard/nrp-core-dashboard.js
index a82678a..3dae07f 100644
--- a/src/components/nrp-core-dashboard/nrp-core-dashboard.js
+++ b/src/components/nrp-core-dashboard/nrp-core-dashboard.js
@@ -5,6 +5,8 @@ import NrpUserService from '../../services/proxy/nrp-user-service.js';
 import EventProxyService from '../../services/proxy/event-proxy-service';
 import ExperimentStorageService from '../../services/experiments/files/experiment-storage-service';
 
+import frontendConfig from '../../config.json';
+
 import Grid from '@material-ui/core/Grid';
 import { Alert, AlertTitle } from '@material-ui/lab';
 import Button from '@material-ui/core/Button';
@@ -29,6 +31,9 @@ export default class NrpCoreDashboard extends React.Component {
       proxyConnected: EventProxyService.instance.isConnected(),
       reconnectDisabled: EventProxyService.instance.isConnected()
     };
+    // By default, we enable the scan storage button, even if it's not in the config.
+    // For the online version, we explicitly disable it.
+    this.scanStorage = frontendConfig.scanStorage !== undefined ? frontendConfig.scanStorage : true;
 
     this.mqttBrokerUrl = MqttClientService.instance.getBrokerURL();
   }
@@ -130,11 +135,15 @@ export default class NrpCoreDashboard extends React.Component {
             {this.state.proxyConnected ? 'Connected' : 'Could not get response from the Proxy'}
           </Alert>
         </Grid>
-        <Grid item xs={12}>
-          <Button onClick={this.triggerProxyScanStorage} disabled={!this.state.proxyConnected}>
-            Proxy Scan Storage
-          </Button>
-        </Grid>
+        {
+          this.scanStorage ?
+            <Grid item xs={12}>
+              <Button onClick={this.triggerProxyScanStorage} disabled={!this.state.proxyConnected}>
+                Proxy Scan Storage
+              </Button>
+            </Grid> :
+            null
+        }
         {/*<Grid item xs={12}>
           <button onClick={NrpUserService.instance.getCurrentUser()}>Try to login</button>
           </Grid> */}
diff --git a/src/config.json.sample.docker b/src/config.json.sample.docker
index 1cb3c67..53c9b43 100644
--- a/src/config.json.sample.docker
+++ b/src/config.json.sample.docker
@@ -17,5 +17,6 @@
       "errors": "runtime_error",
       "status": "status"
     }
-  }
+  },
+  "scanStorage": true
 }
diff --git a/src/config.json.sample.local b/src/config.json.sample.local
index 1cb3c67..53c9b43 100644
--- a/src/config.json.sample.local
+++ b/src/config.json.sample.local
@@ -17,5 +17,6 @@
       "errors": "runtime_error",
       "status": "status"
     }
-  }
+  },
+  "scanStorage": true
 }
diff --git a/src/config.json.sample.oidc b/src/config.json.sample.oidc
index 358b94a..561a210 100644
--- a/src/config.json.sample.oidc
+++ b/src/config.json.sample.oidc
@@ -18,5 +18,6 @@
       "errors": "runtime_error",
       "status": "status"
     }
-  }
+  },
+  "scanStorage": false
 }
-- 
GitLab