diff --git a/application/frontend/src/components/DocumentNode/DocumentNode.tsx b/application/frontend/src/components/DocumentNode/DocumentNode.tsx index 924e56fdd..4165477a1 100644 --- a/application/frontend/src/components/DocumentNode/DocumentNode.tsx +++ b/application/frontend/src/components/DocumentNode/DocumentNode.tsx @@ -131,7 +131,7 @@ export const DocumentNode: FunctionComponent = ({ return ( <> -
setExpanded(!expanded)}> +
setExpanded(!expanded)}> {getDocumentDisplayName(usedNode)}
@@ -139,6 +139,8 @@ export const DocumentNode: FunctionComponent = ({ {expanded && getTopicsToDisplayOrderdByLinkType().map(([type, links], idx) => { + const sortedResults = links.sort((a, b) => getDocumentDisplayName(a.document).localeCompare(getDocumentDisplayName(b.document))) + let lastDocumentName = sortedResults[0].document.name return (
{idx > 0 &&
} @@ -147,8 +149,9 @@ export const DocumentNode: FunctionComponent = ({
- {links.sort((a, b) => getDocumentDisplayName(a.document).localeCompare(getDocumentDisplayName(b.document))).map((link, i) => ( + {sortedResults.map((link, i) =>{const temp = (
+ {lastDocumentName !== (link.document.name) &&
} = ({ />
- ))} + ) + lastDocumentName = link.document.name + return temp; + })}
diff --git a/application/frontend/src/components/DocumentNode/documentNode.scss b/application/frontend/src/components/DocumentNode/documentNode.scss index 2fc8efe07..1148095c9 100644 --- a/application/frontend/src/components/DocumentNode/documentNode.scss +++ b/application/frontend/src/components/DocumentNode/documentNode.scss @@ -36,3 +36,24 @@ margin: 15px 0; } } + + +.document-node__link-type-container .accordion.ui.styled +{ + div>.title.external-link { + padding-top: 0; + padding-bottom: .25em; + } + div:first-child>.title.external-link { + padding-top: .75em; + padding-bottom: .25em; + } + + div>hr+.title.external-link { + border-top: none; + } + + div:last-child>.title.external-link { + padding-bottom: .75em; + } +} diff --git a/application/frontend/src/pages/Search/SearchName.tsx b/application/frontend/src/pages/Search/SearchName.tsx index 57bb8dfd5..c3f5ef078 100644 --- a/application/frontend/src/pages/Search/SearchName.tsx +++ b/application/frontend/src/pages/Search/SearchName.tsx @@ -65,7 +65,7 @@ export const SearchName = () => {

Matching sources

- {nodes && } + {nodes && }
)} diff --git a/application/frontend/src/pages/Search/components/BodyText.tsx b/application/frontend/src/pages/Search/components/BodyText.tsx index 554efacc7..4bf878be1 100644 --- a/application/frontend/src/pages/Search/components/BodyText.tsx +++ b/application/frontend/src/pages/Search/components/BodyText.tsx @@ -51,8 +51,8 @@ export const SearchBody = () => {

OpenCRE currently links OWASP standards (Top 10, ASVS, Proactive Controls, Cheat sheets, Testing - guide, ZAP), plus several other sources (CWE, CAPEC, NIST-800 53, NIST-800 63b, Cloud Control Matrix, - ISO27001, ISO27002 and PCI-DSS). + guide, ZAP, SAMM), plus several other sources (CWE, CAPEC, NIST-800 53, NIST-800 63b, Cloud Control Matrix, + ISO27001, ISO27002, NIST SSDF, and PCI-DSS).

Contact us via (rob.vanderveer [at] owasp.org) to join the movement. Currently, a stakeholder group is @@ -60,13 +60,13 @@ export const SearchBody = () => {

For more details, see this - presentation video, or read the - - {' '} - CRE explanation document - - . + presentation video, read the + {' '}CRE explanation document{' '} or click the diagram below.

+ + + Diagram + ); }; diff --git a/application/frontend/src/pages/Search/components/SearchResults.tsx b/application/frontend/src/pages/Search/components/SearchResults.tsx index a17de00c5..7ed3d90b5 100644 --- a/application/frontend/src/pages/Search/components/SearchResults.tsx +++ b/application/frontend/src/pages/Search/components/SearchResults.tsx @@ -2,16 +2,17 @@ import React from 'react'; import { DocumentNode } from '../../../components/DocumentNode'; import { getDocumentDisplayName } from 'application/frontend/src/utils/document'; +import { DOCUMENT_TYPES } from 'application/frontend/src/const'; -export const SearchResults = ({ results, grouped=false }) => { +export const SearchResults = ({ results }) => { if (results && results.length != 0) { const sortedResults = results.sort((a, b) => getDocumentDisplayName(a).localeCompare(getDocumentDisplayName(b))) - let lastDocumentName = sortedResults[0].id ?? sortedResults[0].name + let lastDocumentName = sortedResults[0].name return ( <> {sortedResults.map((document, i) => {let temp = ( <> - {grouped && lastDocumentName !== (document.id ?? document.name) &&
} + {document.doctype != DOCUMENT_TYPES.TYPE_CRE && lastDocumentName !== document.name &&
}
diff --git a/application/frontend/www/opencregraphic2.png b/application/frontend/www/opencregraphic2.png new file mode 100644 index 000000000..cb2040ad6 Binary files /dev/null and b/application/frontend/www/opencregraphic2.png differ diff --git a/application/frontend/www/tn_opencregraphic2.jpg b/application/frontend/www/tn_opencregraphic2.jpg new file mode 100644 index 000000000..7fdf36ef6 Binary files /dev/null and b/application/frontend/www/tn_opencregraphic2.jpg differ