From 8d008feb04833843812d64e4897b2313f7c7ff78 Mon Sep 17 00:00:00 2001 From: rushtong Date: Tue, 23 Jul 2024 12:49:10 -0400 Subject: [PATCH] feat: remove outdated content --- src/Routes.jsx | 2 - src/images/broad_logo.png | Bin 10399 -> 0 bytes src/images/sample_dac_logo.png | Bin 2588 -> 0 bytes src/libs/utils.js | 12 - src/pages/DatasetCatalog.jsx | 777 ------------------ src/pages/DatasetCatalog.module.css | 112 --- .../CustomDatasetCatalog.css | 31 - .../CustomDatasetCatalog.jsx | 64 -- 8 files changed, 998 deletions(-) delete mode 100644 src/images/broad_logo.png delete mode 100644 src/images/sample_dac_logo.png delete mode 100644 src/pages/DatasetCatalog.jsx delete mode 100644 src/pages/DatasetCatalog.module.css delete mode 100644 src/pages/dac_dataset_catalog/CustomDatasetCatalog.css delete mode 100644 src/pages/dac_dataset_catalog/CustomDatasetCatalog.jsx diff --git a/src/Routes.jsx b/src/Routes.jsx index 2456bc979..219c8411f 100644 --- a/src/Routes.jsx +++ b/src/Routes.jsx @@ -38,7 +38,6 @@ import TermsOfServiceAcceptance from './pages/TermsOfServiceAcceptance'; import {HealthCheck} from './pages/HealthCheck'; import DataSubmissionForm from './pages/data_submission/DataSubmissionForm'; import {ensureSoHasDaaAcknowledgement} from './components/SigningOfficialDaaAgreementWrapper'; -import CustomDatasetCatalog from './pages/dac_dataset_catalog/CustomDatasetCatalog'; import {AnVILDMSPolicyInfo, NIHDMSPolicyInfo} from './pages/DMSPolicyInfo'; import {checkEnv, envGroups} from './utils/EnvironmentUtils'; import { DatasetUpdateForm } from './pages/DatasetUpdateForm'; @@ -101,7 +100,6 @@ const Routes = (props) => ( - {checkEnv(envGroups.NON_STAGING) && } diff --git a/src/images/broad_logo.png b/src/images/broad_logo.png deleted file mode 100644 index bb612994f3a644c72eb379155ac4980635432abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10399 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 yPcs+{27|$1Fc=I5gTY`h7z_r3!C){La^k { - if (!isNil(e)) { - if (!isNil(e.target)) { - const dataValue = e.target.getAttribute('data-value'); - if (!isNil(dataValue)) { - return dataValue.toLowerCase() === 'true'; - } - } - } - return false; -}; - export const hasDataSubmitterRole = (user) => { const roles = get('roles')(user); const dsRole = find({'roleId': 8})(roles); diff --git a/src/pages/DatasetCatalog.jsx b/src/pages/DatasetCatalog.jsx deleted file mode 100644 index 7d89deced..000000000 --- a/src/pages/DatasetCatalog.jsx +++ /dev/null @@ -1,777 +0,0 @@ -import {filter, find, flow, getOr, includes, isEmpty, isNil, isNull, map, isFunction} from 'lodash/fp'; -import React, {Fragment, useEffect, useState, useCallback } from 'react'; -import ReactTooltip from 'react-tooltip'; -import {ConfirmationDialog} from '../components/ConfirmationDialog'; -import TranslatedDulModal from '../components/modals/TranslatedDulModal'; -import {PageHeading} from '../components/PageHeading'; -import {PaginatorBar} from '../components/PaginatorBar'; -import {SearchBox} from '../components/SearchBox'; -import { DataSet } from '../libs/ajax/DataSet'; -import { DAR } from '../libs/ajax/DAR'; -import { DAC } from '../libs/ajax/DAC'; -import {Storage} from '../libs/storage'; -import {Theme} from '../libs/theme'; -import {getBooleanFromEventHtmlDataValue, USER_ROLES} from '../libs/utils'; -import {DataUseTranslation} from '../libs/dataUseTranslation'; -import {spinnerService} from '../libs/spinner-service'; -import { ArrowDropUp, ArrowDropDown } from '@mui/icons-material'; -import DuosLogo from '../images/duos-network-logo.svg'; -import style from './DatasetCatalog.module.css'; - -const tableBody = { - ...Theme.textTableBody, - padding: '8px 5px 8px 5px' -}; - -const canApplyForDataset = (dataset) => { - return !isNil(dataset.dacId) && dataset.dacApproval; -}; - -const extractDatasetProp = (propertyName, dataset) => { - const property = find({ propertyName })(dataset.properties); - return property?.propertyValue; -}; - -const isVisible = (dataset) => { - const openAccess = extractDatasetProp('Open Access', dataset); - const publicDataset = extractDatasetProp('Public Visibility', dataset); - const publicStudy = !isNil(dataset.study?.publicVisibility) ? dataset.study?.publicVisibility : true; - - const open = !isNil(openAccess) ? openAccess : false; - const dacApproved = (!isNil(dataset.dacApproval) && dataset.dacApproval); - const publiclyVisible = !isNil(publicDataset) ? publicDataset : publicStudy; - - return open || (dacApproved && publiclyVisible); -}; - -export default function DatasetCatalog(props) { - - const { - customDacDatasetPage - } = props; - - const isCustomDacDatasetPage = !isNil(customDacDatasetPage); - const color = isCustomDacDatasetPage ? customDacDatasetPage.colorKey : 'dataset'; - const dacFilter = customDacDatasetPage?.dacFilter; - - // Data states - const [currentUser, setCurrentUser] = useState({}); - const [datasetList, setDatasetList] = useState([]); - const [sort, setSort] = useState({ field: 'datasetIdentifier', dir: 1 }); - const [numDatasetsSelected, setNumDatasetsSelected] = useState(0); - const [selectedDatasets, setSelectedDatasets] = useState([]); - const [datasetsOnPage, setDatasetsOnPage] = useState([]); - - // Selection States - const [currentPageAllDatasets, setCurrentPageAllDatasets] = useState(1); - const [currentPageOnlySelected, setCurrentPageOnlySelected] = useState(1); - - const [useCustomFilter, setUseCustomFilter] = useState(isFunction(dacFilter)); - - const [dataUse, setDataUse] = useState(); - const [errorMessage, setErrorMessage] = useState(); - const [errorTitle, setErrorTitle] = useState(); - const [pageSize, setPageSize] = useState(10); - const [searchDulText, setSearchDulText] = useState(); - const [selectedDatasetId, setSelectedDatasetId] = useState(); - - // Modal States - const [showDatasetDelete, setShowDatasetDelete] = useState(false); - const [showDatasetEdit, setShowDatasetEdit] = useState(false); - const [showTranslatedDULModal, setShowTranslatedDULModal] = useState(false); - - const [filterToOnlySelected, setFilterToOnlySelected] = useState(false); - - - const applyDatasetSort = useCallback((sortParams, datasets) => { - const sortedList = datasets.sort((a, b) => { - const aVal = a[sortParams.field] || findPropertyValue(a, sortParams.field); - const bVal = b[sortParams.field] || findPropertyValue(b, sortParams.field); - return aVal.localeCompare(bVal, 'en', {numeric: true}) * sortParams.dir; - }); - setSort(sortParams); - setDatasetList(sortedList); - }, []); - - const getDatasets = useCallback(async () => { - let datasets = await DataSet.getDatasets(); - let localDacs = await getDacs(); - datasets = map((row, index) => { - row.checked = false; - row.ix = index; - row.dbGapLink = - getOr('')('propertyValue')(find({propertyName: 'url'})(row.properties)); - // Extracting these fields to make sorting easier - row['Dataset ID'] = row.datasetIdentifier; - row['Data Access Committee'] = findDacName(localDacs, row); - row['Disease Studied'] = findPropertyValue(row, 'Phenotype/Indication'); - row['Principal Investigator (PI)'] = row.study?.piName || findPropertyValue(row, 'Principal Investigator(PI)'); - row['# of Participants'] = findPropertyValue(row, '# of participants'); - row['Data Custodian'] = findPropertyValue(row, 'Data Depositor'); - return row; - })(datasets); - applyDatasetSort(sort, datasets); - }, [applyDatasetSort, sort]); - - useEffect(() => { - const selected = datasetList.filter((ds) => ds.checked); - - setNumDatasetsSelected(selected.length); - setSelectedDatasets(selected); - }, [datasetList]); - - useEffect(() => { - - const numPages = Math.ceil(selectedDatasets.length / pageSize); - // if we're past the last page, then - // go to the last page. - if (currentPageOnlySelected > numPages && numPages != 0) { - setCurrentPageOnlySelected(numPages); - } - }, [selectedDatasets, pageSize, currentPageOnlySelected]); - - // Initialize page data - useEffect( () => { - const init = async() => { - setCurrentUser(Storage.getCurrentUser()); - await getDatasets(); - ReactTooltip.rebuild(); - }; - init(); - }, [getDatasets]); - - useEffect( () => { - const doEnrichment = async() => { - spinnerService.showAll(); - const theCurrentPage = filterToOnlySelected ? currentPageOnlySelected : currentPageAllDatasets; - const searchTable = (query) => (row) => { - if (query) { - let text = JSON.stringify(row); - return text.toLowerCase().includes(query.toLowerCase()); - } - return true; - }; - const visibleDatasets = filterToOnlySelected ? selectedDatasets : datasetList; - const results = ( - visibleDatasets - .filter(searchTable(searchDulText)) - .filter((row) => { - return (useCustomFilter ? dacFilter(row) : true); - }) - .slice((theCurrentPage - 1) * pageSize, theCurrentPage * pageSize)); - await Promise.all(results.map(async (dataset) => { - - if (isNil(dataset.codeList)) { - if (!dataset.dataUse || isEmpty(dataset.dataUse)) { - dataset.codeList = 'None'; - } else { - const translations = await DataUseTranslation.translateDataUseRestrictions(dataset.dataUse); - const codes = []; - translations.map((restriction) => { - codes.push(restriction.alternateLabel || restriction.code); - }); - dataset.codeList = codes.join(', '); - } - } - })); - setDatasetsOnPage(results); - spinnerService.hideAll(); - }; - doEnrichment(); - - }, [searchDulText, pageSize, selectedDatasets, datasetList, filterToOnlySelected, currentPageOnlySelected, currentPageAllDatasets, dacFilter, useCustomFilter]); - - const getDacs = async () => { - let dacs = await DAC.list(false); - dacs = dacs.map(dac => { - return {id: dac.dacId, name: dac.name}; - }); - return dacs; - }; - - const currentPage = () => { - return (filterToOnlySelected ? currentPageOnlySelected : currentPageAllDatasets); - }; - - - const exportToRequest = async () => { - let datasets = []; - let datasetIdList = []; - selectedDatasets - .forEach(dataset => { - datasets.push({ - key: dataset.dataSetId, - value: dataset.dataSetId, - label: dataset.name, - concatenation: dataset.name, - }); - datasetIdList.push(dataset.dataSetId); - }); - const darBody = { - userId: Storage.getCurrentUser().userId, - datasets: datasets, - datasetId: datasetIdList - }; - const formData = await DAR.postDarDraft(darBody); - const referenceId = formData.referenceId; - props.history.push({ pathname: '/dar_application/' + referenceId }); - }; - - const openTranslatedDUL = async (dataUse) => { - const translations = await DataUseTranslation.translateDataUseRestrictions(dataUse); - setDataUse(translations); - setShowTranslatedDULModal(true); - }; - - const openDelete = (datasetId) => () => { - setShowDatasetDelete(true); - setSelectedDatasetId(datasetId); - }; - - const openEdit = (datasetId) => () => { - setShowDatasetEdit(true); - setSelectedDatasetId(datasetId); - }; - - const dialogHandlerDelete = async (e) => { - const answer = getBooleanFromEventHtmlDataValue(e); - if (answer) { - DataSet.deleteDataset(selectedDatasetId).then(() => { - getDatasets(); - setShowDatasetDelete(false); - }).catch(() => { - setShowDatasetDelete(true); - setErrorMessage('Please try again later.'); - setErrorTitle('Something went wrong'); - }); - } else { - setShowDatasetDelete(false); - setErrorMessage(undefined); - setErrorTitle(undefined); - } - }; - - const dialogHandlerEdit = async (e) => { - const answer = getBooleanFromEventHtmlDataValue(e); - if (answer) { - setShowDatasetEdit(false); - props.history.push({ pathname: `dataset_registration/${selectedDatasetId}` }); - } else { - setShowDatasetEdit(false); - setErrorMessage(undefined); - setErrorTitle(undefined); - } - }; - - const download = () => { - const listDownload = selectedDatasets; - let dataSetsId = []; - listDownload.forEach(dataset => { - dataSetsId.push(dataset.dataSetId); - }); - DataSet.downloadDataSets(dataSetsId, 'datasets.tsv'); - }; - - const handlePageChange = (page) => { - if (filterToOnlySelected) { - setCurrentPageOnlySelected(page); - } else { - setCurrentPageAllDatasets(page); - } - }; - - const handleSizeChange = (size) => { - setPageSize(size); - handlePageChange(1); - }; - - const handleSearchDul = (query) => { - setSearchDulText(query); - }; - - const searchTable = (query) => (row) => { - if (query) { - let text = JSON.stringify(row); - return text.toLowerCase().includes(query.toLowerCase()); - } - return true; - }; - - - const allOnPageSelected = () => { - - const filteredList = datasetsOnPage.filter(canApplyForDataset); - - return filteredList.length > 0 && filteredList.every((row) => { - return row.checked; - }); - }; - - const selectAllOnPage = (e) => { - const checked = isNil(e.target.checked) ? false : e.target.checked; - - const datasetIdsToCheck = datasetsOnPage.map((row) => { - return row.dataSetId; - }); - - const modifiedDatasetList = map((row) => { - if (canApplyForDataset(row)) { - if (datasetIdsToCheck.includes(row.dataSetId)) { - row.checked = checked; - } - } - - return row; - })(datasetList); - - // Update state - setDatasetList(modifiedDatasetList); - }; - - const checkSingleRow = (dataset) => (e) => { - const checked = isNil(e.target.checked) ? false : e.target.checked; - const selectedDatasets = map(row => { - if (row.dataSetId === dataset.dataSetId) { - if (canApplyForDataset(row)) { - row.checked = checked; - } - } - return row; - })(datasetList); - - // Update state - setDatasetList(selectedDatasets); - }; - - const unapprovedStyle = (dataset) => { - if (!isVisible(dataset)) { - return {cursor: 'default', opacity: '50%'}; - } - return {}; - }; - - const findPropertyValue = (dataSet, propName, defaultVal) => { - const defaultValue = isNil(defaultVal) ? '' : defaultVal; - return getOr(defaultValue)('propertyValue')(find({ propertyName: propName })(dataSet.properties)); - }; - - const findDacName = (dacs, dataSet) => { - return getOr('')('name')(find({ id: dataSet.dacId })(dacs)); - }; - - const getLinkDisplay = (dataSet, trIndex) => { - try { - const url = new URL(dataSet.dbGapLink); - return ( - - Link - - ); - } catch (e) { - return --; - } - }; - - const getSortDisplay = ({ field, label }) => { - return ( -
{ - let newSort = - sort.field === field - ? { field, dir: sort.dir * -1 } - : { field, dir: 1 }; - applyDatasetSort(newSort, datasetList); - }} - > - {label ? label : field} -
- - -
-
- ); - }; - - const isEditDatasetEnabled = (dataset) => { - // Study editing is not currently supported through existing edit page. - if (!isNull(getOr(null)('study.studyId')(dataset))) { - return false; - } - if (currentUser.isAdmin) { - return true; - } - // Chairpersons can only edit datasets they have direct access to via their DACs - if (currentUser.isChairPerson) { - return flow( - filter({name: USER_ROLES.chairperson}), - map('dacId'), - includes(dataset.dacId) - )(currentUser.roles); - } - return false; - }; - - const visibleDatasets = () => { - return (filterToOnlySelected ? selectedDatasets : datasetList); - }; - - return ( - -
-
-
- - {isCustomDacDatasetPage && ( -
- -
- )} -
-
-
- - {isCustomDacDatasetPage && ( -
- { - setUseCustomFilter(!useCustomFilter); - setCurrentPageOnlySelected(1); - setCurrentPageAllDatasets(1); - }} - /> - -
- )} -
- { - (currentUser.isAdmin || currentUser.isChairPerson) && ( - - ) - } -
-
-
-
-
- - -
-
-
-
-
- { - setFilterToOnlySelected(!filterToOnlySelected); - }} - /> - -
- -
- - - - - )} - - - - - - - - - - - - - - - - {!isNil(visibleDatasets()) && !isEmpty(visibleDatasets()) && datasetsOnPage.map((dataset, trIndex) => ( - - - - {(currentUser.isAdmin || currentUser.isChairPerson) && ( - - )} - - - - - - - - - - - - - - - ))} - -
- {(currentUser.isAdmin || currentUser.isChairPerson) && ( - Actions{getSortDisplay({ field: 'datasetIdentifier', label: 'Dataset ID' })}{getSortDisplay({ field: 'Dataset Name' })}{getSortDisplay({ field: 'Data Access Committee' })}Data SourceData Use Terms{getSortDisplay({ field: 'Data Type' })}{getSortDisplay({ field: 'Disease Studied' })}{getSortDisplay({ field: 'Principal Investigator (PI)' })}{getSortDisplay({ field: '# of Participants' })}{getSortDisplay({ field: 'Description' })}{getSortDisplay({ field: 'Species' })}{getSortDisplay({ field: 'Data Custodian' })}
-
- {!isNil(dataset.dacId) && ( - <> - -
-
- - - {dataset['Dataset ID']} - - {dataset.name} - - {dataset['Data Access Committee']} - - {getLinkDisplay(dataset, trIndex)} - - openTranslatedDUL(dataset.dataUse)} - className={!isVisible(dataset) ? style['dataset-disabled'] : 'enabled'} - > - {dataset.codeList} - - - {findPropertyValue(dataset, 'Data Type')} - - {dataset['Disease Studied']} - - {dataset['Principal Investigator (PI)']} - - {dataset['# of Participants']} - - {findPropertyValue(dataset, 'Description')} - - {findPropertyValue(dataset, 'Species')} - - {dataset['Data Custodian']} -
-
-
- -
-
-
- { (currentUser.isAdmin || currentUser.isChairPerson || currentUser.isMember || currentUser.isSigningOfficial) && ( - - )} -
-
- {currentUser.isResearcher && ( -
- -
- )} -
- {showTranslatedDULModal && ( - setShowTranslatedDULModal(false)} - /> - )} - dialogHandlerDelete }} - > -
Are you sure you want to delete this Dataset?
-
- dialogHandlerEdit }} - > -
Are you sure you want to edit this Dataset?
-
- - -
- - ); -} diff --git a/src/pages/DatasetCatalog.module.css b/src/pages/DatasetCatalog.module.css deleted file mode 100644 index b6ece3687..000000000 --- a/src/pages/DatasetCatalog.module.css +++ /dev/null @@ -1,112 +0,0 @@ -.first-child { - position: absolute; - margin-left: -40px; -} - -.checkbox { - margin-top: 0; - display: inline; -} - -.checkbox label { - padding-top: 1px; -} - -.checkbox[disabled] .regular-checkbox { - cursor: not-allowed !important; - opacity: 0.65; -} - -.checkbox[disabled] .regular-checkbox:before { - background-color: #eee; - border: 1px solid #ccc; -} - -.regular-checkbox { - cursor: pointer; - position: relative; - padding-left: 25px !important; - margin-right: 15px; - margin-bottom: 15px; - font-size: 13px; -} - -.regular-checkbox.normal { - font-weight: normal; - font-size: 15px; - color: #777777; -} - -.regular-checkbox:before { - content: ""; - width: 18px; - height: 18px; - margin-right: 10px; - position: absolute; - left: 0; - background-color: #ffffff; - border-radius: 3px; -} - -.form-control, .regular-checkbox:before { - border: 1px solid #999999; -} - -.cell-size { - white-space: nowrap; - overflow: hidden; - width: 1%; -} - -.cell-size p { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - max-width: 400px!important; -} - -.table-scroll { - overflow-x: scroll; - margin: 0 25px 5px 60px; - overflow-y: visible; -} - -.table-scroll-admin { - overflow-x: scroll; - margin: 0 25px 5px 60px !important; - overflow-y: visible; -} - -.table-scroll-admin thead, .table-scroll thead { - padding: 0 10px 0 10px; -} - -.display-inline-block { - display: inline-block !important; -} - -.dataset-actions { - display: inline !important; - margin: 0; - padding-right: 10px; -} - -.dataset-actions a { - display: inline !important; - margin: 0 5px 0 0; -} - -.dataset-actions a:hover span { - color: #2FA4E7 !important; -} - -.dataset-actions a .glyphicon { - text-shadow: 1px 1px 0 #ffffff !important; - padding: 0; - vertical-align: bottom; - font-size: 1.15em; -} - -.dataset-disabled, .dataset-disabled p, .dataset-disabled a { - color: #cccccc !important; -} diff --git a/src/pages/dac_dataset_catalog/CustomDatasetCatalog.css b/src/pages/dac_dataset_catalog/CustomDatasetCatalog.css deleted file mode 100644 index bbbbf4fc2..000000000 --- a/src/pages/dac_dataset_catalog/CustomDatasetCatalog.css +++ /dev/null @@ -1,31 +0,0 @@ -/** -Add colors for each page variant that you include. The color key is an option of each variant - -// Text color for title -.[colorKey]-color { - color: <> !important; -} - -// Button color -.[colorKey]-background { - background: <> !important; -} -**/ - -/* Sample color scheme */ -.sample-color { - color: #ff0000 !important; -} - -.sample-background { - background: #ff0000 !important; -} - -/* Broad color scheme */ -.broad-color { - color: #0948B7 !important; -} - -.broad-background { - background: #0948B7 !important; -} \ No newline at end of file diff --git a/src/pages/dac_dataset_catalog/CustomDatasetCatalog.jsx b/src/pages/dac_dataset_catalog/CustomDatasetCatalog.jsx deleted file mode 100644 index 808c91731..000000000 --- a/src/pages/dac_dataset_catalog/CustomDatasetCatalog.jsx +++ /dev/null @@ -1,64 +0,0 @@ -import React from 'react'; -import _ from 'lodash'; -import '../DatasetCatalog'; -import SampleLogoIcon from '../../images/sample_dac_logo.png'; -import BroadLogoIcon from '../../images/broad_logo.png'; -import NotFound from '../NotFound'; -import DatasetCatalog from '../DatasetCatalog'; -import './CustomDatasetCatalog.css'; - - -/** - * Variants can be added and must include the following: - * path: the last element of the path that will identify this catalog variant - * icon: an icon for the catalog variant. It should have as close to a 4x1 ratio as possible - * dacName: the name of the DAC that this catalog is for - * dacFilter: filter method to get the datasets to show on the catalog by default. Return true to include - * the referenced dataset. The callback takes: - * dataset: the datataset to evaluate. The content of the dataset may vary, as a result to see what - * fields are available, open the developer console and go to the sample page. The datasets will - * echoed to the console in dev or local mode - * colorKey: the key of the color scheme for the catalog. See the CustomDatasetCatalog.css file for - * instructions on how to use the colorKey - */ -const variants = (env) => [ - { - path: 'sample', - icon: SampleLogoIcon, - dacName: 'Sample', - dacFilter: (dataset) => { - // eslint-disable-next-line no-console - (_.indexOf(['local', 'dev'], env) > -1) && console.log(dataset); - return dataset['Data Access Committee'] === 'Demo Dac New'; - }, - colorKey: 'sample' - }, - { - path: 'broad', - icon: BroadLogoIcon, - dacName: 'Broad', - dacFilter: (dataset) => dataset.dacId === 4, - colorKey: 'broad' - }, -]; - -export const CustomDatasetCatalog = (props) => { - const { history, match: { params: { variant } }, env } = props; - - const resolvedVariants = variants(env); - const findVariant = (variant) => _.find(resolvedVariants, v => v.path === variant); - - const variantDef = findVariant(variant); - if (_.isEmpty(variantDef)) { - return ; - } - - return ( - - ); -}; - -export default CustomDatasetCatalog; \ No newline at end of file