diff --git a/.gitignore b/.gitignore index dad6f4459a35afaef8598b5dac3f1f3104202a1c..72fc038c68e37795481943bec1f487767fa4d0a7 100644 --- a/.gitignore +++ b/.gitignore @@ -52,4 +52,4 @@ Thumbs.db *.wmv src/config.json -coverage \ No newline at end of file +coverage diff --git a/package-lock.json b/package-lock.json index 3e6f31cba2658c2d4d48546718a28bce8af484f9..46e84c15df21c4c853dba58c0349d8197a78cb46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1896,9 +1896,9 @@ } }, "@popperjs/core": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.6.0.tgz", - "integrity": "sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==" + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.2.tgz", + "integrity": "sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==" }, "@restart/context": { "version": "2.1.4", @@ -2334,9 +2334,12 @@ } }, "@types/classnames": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz", - "integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", + "requires": { + "classnames": "*" + } }, "@types/cookie": { "version": "0.4.0", @@ -2462,18 +2465,19 @@ "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" }, "@types/react": { - "version": "16.14.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.3.tgz", - "integrity": "sha512-zPrXn03hmPYqh9DznqSFQsoRtrQ4aHgnZDO+hMGvsE/PORvDTdJCHQ6XvJV31ic+0LzF73huPFXUb++W6Kri0Q==", + "version": "16.14.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.5.tgz", + "integrity": "sha512-YRRv9DNZhaVTVRh9Wmmit7Y0UFhEVqXqCSw3uazRWMxa2x85hWQZ5BN24i7GXZbaclaLXEcodEeIHsjBA8eAMw==", "requires": { "@types/prop-types": "*", + "@types/scheduler": "*", "csstype": "^3.0.2" } }, "@types/react-transition-group": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz", - "integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", "requires": { "@types/react": "*" } @@ -2486,6 +2490,11 @@ "@types/node": "*" } }, + "@types/scheduler": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", + "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" + }, "@types/source-list-map": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", @@ -4258,9 +4267,9 @@ } }, "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "clean-css": { "version": "4.2.3", @@ -5055,9 +5064,9 @@ } }, "csstype": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz", - "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" }, "cyclist": { "version": "1.0.1", @@ -10496,9 +10505,9 @@ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "lodash-es": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz", - "integrity": "sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, "lodash._reinterpolate": { "version": "3.0.0", diff --git a/public/index.html b/public/index.html index 8c1f6cb3cad46961473c1190c81023b095cbf282..dd172158746c1c6a64bd030dc00ee0ab7f45c857 100644 --- a/public/index.html +++ b/public/index.html @@ -3,6 +3,7 @@ <head> <meta charset="utf-8" /> <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> + <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" /> <meta diff --git a/src/components/experiment-list/import-experiment-buttons.css b/src/components/experiment-list/import-experiment-buttons.css index 429b61bbeb0046a0a3218f0b358a3fcd7cf82cd2..dd472ee2f4cf6ad496146ed054f1db57a9a2543c 100644 --- a/src/components/experiment-list/import-experiment-buttons.css +++ b/src/components/experiment-list/import-experiment-buttons.css @@ -12,7 +12,7 @@ z-index: 10001; } - #import-buttons { - vertical-align: middle; - margin: auto 0; + .import-button { + cursor: pointer; + height: 50%; } \ No newline at end of file diff --git a/src/components/experiment-list/import-experiment-buttons.js b/src/components/experiment-list/import-experiment-buttons.js index 8129213a7b674a8fd7fa8801d7e79a026147f865..03d27aea23682f21895c87445b1ae9a8758f7070 100644 --- a/src/components/experiment-list/import-experiment-buttons.js +++ b/src/components/experiment-list/import-experiment-buttons.js @@ -1,7 +1,6 @@ import React from 'react'; import { FaFolder, FaFileArchive, FaAudible } from 'react-icons/fa'; -import { ButtonGroup, Button } from 'react-bootstrap'; import ImportExperimentService from '../../services/experiments/files/import-experiment-service.js'; import ExperimentStorageService from '../../services/experiments/files/experiment-storage-service.js'; @@ -94,14 +93,14 @@ export default class ImportExperimentButtons extends React.Component { {/* Import folder pop-up */} {this.state.importFolderResponse ? <div className="import-popup"> - <div variant="success"> + <div className="alert alert-success" role="alert"> <p>The experiment folder <b>{' ' + this.state.importFolderResponse.zipBaseFolderName}</b> has been succesfully imported as <b>{' ' + this.state.importFolderResponse.destFolderName}</b>. </p> </div> <div className="text-right"> - <Button variant="success" onClick={() => this.importFolderPopupClick()}>Got it!</Button> + <button className="btn btn-success" onClick={() => this.importFolderPopupClick()}>Got it!</button> </div> </div> : null @@ -110,7 +109,7 @@ export default class ImportExperimentButtons extends React.Component { {/* Import zip pop-up */} {this.state.importZipResponses ? <div className="import-popup"> - <div> + <div className="alert alert-success" role="alert"> <p>{this.state.importZipResponses.numberOfZips} successfully imported zip files.</p> </div> <p>The following experiments folders</p> @@ -118,7 +117,7 @@ export default class ImportExperimentButtons extends React.Component { <p>have been successfully imported as:</p> <p><b>{this.state.importZipResponses.destFolderName.join(', ')}.</b></p> <div className="text-right"> - <Button variant="success" onClick={() => this.importZipPopupClick()}>Got it!</Button> + <button className="btn btn-success" onClick={() => this.importZipPopupClick()}>Got it!</button> </div> </div> : null @@ -127,7 +126,7 @@ export default class ImportExperimentButtons extends React.Component { {/* Scan pop-up */} {this.state.scanStorageResponse ? <div className="import-popup"> - <div> + <div className="alert alert-success" role="alert"> <p>{this.state.scanStorageResponse.addedFoldersNumber} added folders, {' ' + this.state.scanStorageResponse.deletedFoldersNumber} deleted folders.</p> </div> @@ -141,7 +140,7 @@ export default class ImportExperimentButtons extends React.Component { ? this.state.scanStorageResponse.deletedFolders : 'none' }</b></p> <div className="text-right"> - <Button variant="success" onClick={() => this.scanStoragePopupClick()}>Got it!</Button> + <button className="btn btn-success" onClick={() => this.scanStoragePopupClick()}>Got it!</button> </div> </div> : null @@ -156,17 +155,19 @@ export default class ImportExperimentButtons extends React.Component { multiple accept='.zip' onChange={(event) => this.importZippedExperimentChange(event)}/> {!this.state.isImporting - ? <ButtonGroup role="group"> - <Button variant="outline-dark"> - <label htmlFor="folder"><FaFolder/> Import folder</label> - </Button> - <Button variant="outline-dark"> - <label htmlFor="zip"><FaFileArchive/> Import zip</label> - </Button > - <Button variant="outline-dark" onClick={() => this.scanStorageClick()}> + ? <div className="btn-group" role="group"> + <button type="button" className="btn btn-outline-dark"> + <label htmlFor="folder" className="import-button"> + <FaFolder/> Import folder + </label> + </button> + <button type="button" className="btn btn-outline-dark"> + <label htmlFor="zip" className="import-button"><FaFileArchive/> Import zip</label> + </button > + <button type="button" className="btn btn-outline-dark" onClick={() => this.scanStorageClick()}> <FaAudible/> Scan Storage - </Button> - </ButtonGroup> + </button> + </div> : null} </div> </div> diff --git a/src/components/user-menu/user-menu.js b/src/components/user-menu/user-menu.js index a287c8620d25ab87dcf6068bbf47e830b3bbebb4..efaea8c0ce86eb8a9059a3b9514c3b67a296cbd0 100644 --- a/src/components/user-menu/user-menu.js +++ b/src/components/user-menu/user-menu.js @@ -56,10 +56,11 @@ export default class UserMenu extends React.Component { onClick={this.onClickLogout} > <FaSignOutAlt className='user-icon' /> - Logout + Logout </Dropdown.Item> </Dropdown.Menu> </Dropdown> + </div> ); } diff --git a/src/index.js b/src/index.js index 33f3dd6b06a99231aa04113f545f3f2c34dd0955..ef2edf8ea3fc42258464231e29140c8723458c1e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,6 @@ import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; -import 'bootstrap/dist/css/bootstrap.min.css'; import App from './App'; import reportWebVitals from './reportWebVitals';