diff --git a/ADMIN.md b/ADMIN.md new file mode 100644 index 0000000..05b0a26 --- /dev/null +++ b/ADMIN.md @@ -0,0 +1,44 @@ +## Adding new Disease Cell Lines through the admin CMS + +### Relational dependancies + +`Disease cell lines` reference: + + 1. `Modeled diseases` + 2. `Cell lines` + +`Modeled diseases` reference + + 1. `Gene names` + +`Cell lines` reference + + 1. `Gene names` + +![Untitled](https://github.com/allen-cell-animated/cell-catalog/assets/5170636/7625a706-1c26-437d-850a-9ea494ee5a81) + + +1. **Login to the Admin CMS**: Open your web browser and navigate to the admin CMS URL. Use github to sign in. + +2. **Before you start**: Before you add a new cell line you need to make sure you have already added: + 1. **the disease** the cell line is modeling. If you it is not yet in the database, go to the section on adding a disease and then continue here. + 2. **the parental/base cell line**. If it is not yet in the database, go to the section on adding a cell line and then continue here. + +3. **Add New Disease Cell Line**: Click the button "Add new disease cell line" + +4. **Enter Disease Cell Line Details**: If this cell line is not ready to be on the website, leave the status as is. + +5. **Save the New Disease Cell Line**: From the "Publish" dropdown click "Publish now" + +## Adding new Disease through the admin CMS +1. **Before you start**: Before you add a new disease you need to make sure you have already added **the gene** the disease model is based on. If you it is not yet in the database, go to the section on adding a gene and then continue here. + +## Adding new Normal Cell Line through the admin CMS +1. **Before you start**: Before you add a new disease you need to make sure you have already added **the gene** the disease model is based on. If you it is not yet in the database, go to the section on adding a gene and then continue here. + +2. **Add new Normal Cell Line**: Go to the cell line section, click the button "Add new cell line" +5. **Save the Normal Cell Line**: From the "Publish" dropdown click "Publish now" + +## Adding new Gene through the admin CMS +1. Click on **Gene and structures names** and click on "New Gene and structure name" or select it from the "Quick add" menu +2. Add the gene symbol and gene name diff --git a/README.md b/README.md index d555225..7c48ace 100644 --- a/README.md +++ b/README.md @@ -29,3 +29,9 @@ Media Libraries have been included in this starter as a default. Contributions are always welcome, no matter how large or small. Before contributing, please read the [code of conduct](CODE_OF_CONDUCT.md). + +## Development +See [contributing guide](CONTRIBUTING.md) + +## Changes to the content +see [admin guide](ADMIN.md) \ No newline at end of file diff --git a/gatsby-config.js b/gatsby-config.js index 4575e1a..9db4591 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -41,6 +41,7 @@ module.exports = { `gatsby-plugin-image`, "gatsby-plugin-sharp", "gatsby-transformer-sharp", + 'gatsby-plugin-react-svg', { resolve: "gatsby-transformer-remark", options: { diff --git a/package.json b/package.json index f9158db..515447e 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "gatsby-plugin-netlify": "^5.0.0", "gatsby-plugin-purgecss": "^6.0.0", "gatsby-plugin-react-helmet": "^6.13.1", + "gatsby-plugin-react-svg": "^3.3.0", "gatsby-plugin-sass": "^6.13.1", "gatsby-plugin-sharp": "^5.13.1", "gatsby-remark-copy-linked-files": "^6.13.1", diff --git a/src/components/DiseaseTable.tsx b/src/components/DiseaseTable.tsx index a08cd08..3349867 100644 --- a/src/components/DiseaseTable.tsx +++ b/src/components/DiseaseTable.tsx @@ -1,10 +1,14 @@ import React from "react"; import { Table, Tag, Flex } from "antd"; +import Icon from "@ant-design/icons"; import Content from "./Content"; import { UnpackedDiseaseCellLine } from "../component-queries/DiseaseCellLines"; import { formatCellLineId } from "../utils"; +const Tube = require("../img/tube.svg"); +const CertificateIcon = require("../img/cert-icon.svg"); + import { tableTitle, container, @@ -13,6 +17,8 @@ import { clones, comingSoon, } from "../style/disease-table.module.css"; +import { WHITE } from "./Layout"; +import { Certificate } from "crypto"; interface DiseaseTableProps { diseaseName: string; @@ -92,7 +98,13 @@ const DiseaseTable = ({ } else { return ( - Obtain Line + + + Obtain Line + ); } @@ -110,7 +122,13 @@ const DiseaseTable = ({ href={certificate_of_analysis.publicURL} target="_blank" > - Cert. of Analysis + + + Cert. of Analysis + ) ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 9f5ac4b..00f6ccb 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -11,7 +11,7 @@ import { container } from "../style/layout.module.css"; const OFF_WHITE = "#F2F2F2"; const DARK_BLUE = "#00215F"; -const WHITE = "#FFFFFF"; +export const WHITE = "#FFFFFF"; const LIGHT_BLUE = "#E5E9F1"; const DARK_GRAY = "#CBCBCC"; const LIGHT_GRAY = "#323233"; diff --git a/src/img/cert-icon.svg b/src/img/cert-icon.svg new file mode 100644 index 0000000..597790e --- /dev/null +++ b/src/img/cert-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/img/tube.svg b/src/img/tube.svg new file mode 100644 index 0000000..eaf740d --- /dev/null +++ b/src/img/tube.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/yarn.lock b/yarn.lock index d1bcb5a..c30e43c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5044,6 +5044,11 @@ better-opn@^2.1.1: dependencies: open "^7.0.3" +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -6486,7 +6491,7 @@ css.escape@^1.5.1: resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== -css@^2.0.0: +css@2.2.4, css@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== @@ -7512,6 +7517,11 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== + emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -9180,6 +9190,13 @@ gatsby-plugin-react-helmet@^6.13.1: dependencies: "@babel/runtime" "^7.20.13" +gatsby-plugin-react-svg@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-react-svg/-/gatsby-plugin-react-svg-3.3.0.tgz#1dad8594ecd6ffd86e5ff45e1b9365367c999c44" + integrity sha512-kFPElMFu1QCkiFCm1pSrVkOHAeafU6wkD0qCVPs7nL/Txh5KFh0aOO6Feiwvfre1Jo+Eg3lwCuGmgsy9L+4pDg== + dependencies: + svg-react-loader "^0.4.6" + gatsby-plugin-sass@^6.13.1: version "6.13.1" resolved "https://registry.yarnpkg.com/gatsby-plugin-sass/-/gatsby-plugin-sass-6.13.1.tgz#13fa6a4b95aee7c1bf3e69c017ae9c8e1a0abf49" @@ -11493,6 +11510,11 @@ json2mq@^0.2.0: dependencies: string-convert "^0.2.0" +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + json5@^1.0.1, json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" @@ -11811,6 +11833,15 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== +loader-utils@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + integrity sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ== + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + loader-utils@^1.2.3: version "1.4.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" @@ -12004,7 +12035,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@4.17.21, lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.0: +lodash@4.17.21, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -14886,6 +14917,11 @@ radix3@^1.1.0: resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== +ramda@0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" + integrity sha512-HGd5aczYKQXGILB+abY290V7Xz62eFajpa6AtMdwEmQSakJmgSO7ks4eI3HdR34j+X2Vz4Thp9VAJbrCAMbO2w== + random-bytes@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" @@ -16362,6 +16398,11 @@ rw@^1.3.3: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== +rx@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug== + rxjs@^6.4.0, rxjs@^6.6.0, rxjs@^6.6.2: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" @@ -16475,7 +16516,7 @@ sass@^1.70.0: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sax@^1.2.4, sax@~1.3.0: +sax@>=0.6.0, sax@^1.2.4, sax@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== @@ -17514,6 +17555,18 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svg-react-loader@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/svg-react-loader/-/svg-react-loader-0.4.6.tgz#b263efb3e3d2fff4c682a729351aba5f185051a1" + integrity sha512-HVEypjWQsQuJdBIPzXGxpmQsQts7QwfQuYgK1rah6BVCMoLNSCh/ESKVNd7/tHq8DkWYHHTyaUMDA1FjqZYrgA== + dependencies: + css "2.2.4" + loader-utils "1.1.0" + ramda "0.21.0" + rx "4.1.0" + traverse "0.6.6" + xml2js "0.4.17" + svgo@^2.7.0: version "2.8.0" resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" @@ -17895,6 +17948,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +traverse@0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw== + traverse@^0.6.6: version "0.6.8" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.8.tgz#5e5e0c41878b57e4b73ad2f3d1e36a715ea4ab15" @@ -19185,6 +19243,21 @@ xml-utils@^1.0.2: resolved "https://registry.yarnpkg.com/xml-utils/-/xml-utils-1.7.0.tgz#333ce391d8918f872aaf98d2cf90f9ef9b82bd0f" integrity sha512-bWB489+RQQclC7A9OW8e5BzbT8Tu//jtAOvkYwewFr+Q9T9KDGvfzC1lp0pYPEQPEoPQLDkmxkepSC/2gIAZGw== +xml2js@0.4.17: + version "0.4.17" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + integrity sha512-1O7wk/NTQN0UEOItIYTxK4qP4sMUVU60MbF4Nj0a8jd6eebMXOicVI/KFOEsYKKH4uBpx6XG9ZGZctXK5rtO5Q== + dependencies: + sax ">=0.6.0" + xmlbuilder "^4.1.0" + +xmlbuilder@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + integrity sha512-oEePiEefhQhAeUnwRnIBLBWmk/fsWWbQ53EEWsRuzECbQ3m5o/Esmq6H47CYYwSLW+Ynt0rS9hd0pd2ogMAWjg== + dependencies: + lodash "^4.0.0" + xmlhttprequest-ssl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67"