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.
+
+
+
+
);
};
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