Skip to content

Instantly share code, notes, and snippets.

@jacekd
Last active August 29, 2015 14:16
Show Gist options
  • Save jacekd/3178578830a973bf8e28 to your computer and use it in GitHub Desktop.
Save jacekd/3178578830a973bf8e28 to your computer and use it in GitHub Desktop.
d3.no.root.multiple.parents.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>d3 three</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.3.1/lodash.min.js"></script>
<style>
.link {
stroke-width: 1px;
stroke: #ddd;
fill: none;
}
.text {
font-family: "Lucida Grande", "Helvetica Nueue", Arial, sans-serif;
font-size: 10px;
}
.hover {
stroke: darkblue;
}
.cert-root {
visibility: hidden;
}
.chart {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div class="chart">
</div>
<script>
var data = {
name: "certificates",
id: "cert-root",
children: [
{
name: "ISO",
id: "cert-iso",
children: [
{id:"CO-01",name:"co-AuditPlanning"},
{id:"CO-02",name:"co-IndependentAudits"},
{id:"CO-03",name:"co-ThirdPartyAudits"},
{id:"CO-04",name:"co-Contact"},
{id:"CO-05",name:"co-InformationSystemRegulatoryMapping"},
{id:"CO-06",name:"co-IntellectualProperty"},
{id:"DG-01",name:"DG-Ownership"},
{id:"DG-02",name:"DG-Classification"},
{id:"DG-03",name:"DG-Handling"},
{id:"DG-04",name:"DG-RetentionPolicy"},
{id:"DG-05",name:"DG-SecureDisposal"},
{id:"DG-06",name:"DG-NonProductionData"},
{id:"DG-07",name:"DG-InformationLeakage"},
{id:"DG-08",name:"DG-RiskAssessments"},
{id:"FS-01",name:"FS-Policy"},
{id:"FS-02",name:"FS-UserAccess"},
{id:"FS-03",name:"FS-ControlledAccessPoints"},
{id:"FS-04",name:"FS-SecureAreaAuthorization"},
{id:"FS-05",name:"FS-UnauthorizedPersonsEntry"},
{id:"FS-06",name:"FS-OffSiteAuthorization"},
{id:"FS-07",name:"FS-OffSiteEquipment"},
{id:"FS-08",name:"FS-AssetManagement"},
{id:"HR-01",name:"HRS-BackgroundScreening"},
{id:"HR-02",name:"HRS-EmploymentAgreements"},
{id:"HR-03",name:"HR-EmploymentTermination"},
{id:"IS-01",name:"IS-ManagementProgram"},
{id:"IS-02",name:"IS-ManagementSupport"},
{id:"IS-03",name:"IS-Policy"},
{id:"IS-04",name:"IS-BaselineRequirements"},
{id:"IS-05",name:"IS-PolicyReviews"},
{id:"IS-06",name:"IS-PolicyEnforcement"},
{id:"IS-07",name:"IS-UserAccessPolicy"},
{id:"IS-08",name:"IS-UserAccessRestriction"},
{id:"IS-09",name:"IS-UserAccessRevocation"},
{id:"IS-10",name:"IS-UserAccessReviews"},
{id:"IS-11",name:"IS-Training/Awareness"},
{id:"IS-12",name:"IS-IndustryKnowledge"},
{id:"IS-13",name:"IS-Roles"},
{id:"IS-14",name:"IS-ManagementOversight"},
{id:"IS-15",name:"IS-SegregationofDuties"},
{id:"IS-16",name:"IS-UserResponsibility"},
{id:"IS-17",name:"IS-Workspace"},
{id:"IS-18",name:"IS-Encryption"},
{id:"IS-19",name:"IS-EncryptionKeyManagement"},
{id:"IS-20",name:"IS-Vulnerability"},
{id:"IS-21",name:"IS-Anti-Virus"},
{id:"IS-22",name:"IS-IncidentManagement"},
{id:"IS-23",name:"IS-IncidentReporting"},
{id:"IS-24",name:"IS-IncidentResponseLegalPreparation"},
{id:"IS-25",name:"IS-IncidentResponseMetrics"},
{id:"IS-26",name:"IS-AcceptableUse"},
{id:"IS-27",name:"IS-AssetReturns"},
{id:"IS-28",name:"IS-eCommerceTransactions"},
{id:"IS-29",name:"IS-AuditToolsAccess"},
{id:"IS-30",name:"IS-Diagnostic"},
{id:"IS-31",name:"IS-Network"},
{id:"IS-32",name:"IS-Portable"},
{id:"IS-33",name:"IS-SourceCodeAccessRestriction"},
{id:"IS-34",name:"IS-UtilityProgramsAccess"},
{id:"LG-01",name:"L-Non-DisclosureAgreements"},
{id:"LG-02",name:"L-ThirdPartyAgreements"},
{id:"OP-01",name:"OM-Policy"},
{id:"OP-02",name:"OM-Documentation"},
{id:"OP-03",name:"OM-Capacity"},
{id:"OP-04",name:"OM-EquipmentMaintenance"},
{id:"RI-01",name:"RM-Program"},
{id:"RI-02",name:"RM-Assessments"},
{id:"RI-03",name:"RM-Mitigation"},
{id:"RI-04",name:"RM-Business"},
{id:"RI-05",name:"RM-ThirdPartyAccess"},
{id:"RM-01",name:"ReM-NewDevelopment"},
{id:"RM-02",name:"ReM-ProductionChanges"},
{id:"RM-03",name:"ReM-QualityTesting"},
{id:"RM-04",name:"ReM-OutsourcedDevelopment"},
{id:"RM-05",name:"ReM-UnauthorizedSoftwareInstallations"},
{id:"RS-01",name:"R-ManagementProgram"},
{id:"RS-02",name:"R-ImpactAnalysis"},
{id:"RS-03",name:"R-BusinessContinuityPlanning"},
{id:"RS-04",name:"R-BusinessContinuityTesting"},
{id:"RS-05",name:"R-EnvironmentalRisks"},
{id:"RS-06",name:"R-EquipmentLocation"},
{id:"RS-07",name:"R-EquipmentPowerFailures"},
{id:"RS-08",name:"R-Power"},
{id:"SA-01",name:"SA-CustomerAccessRequirements"},
{id:"SA-02",name:"SA-UserIDCredentials"},
{id:"SA-03",name:"SA-DataSecurity/Integrity"},
{id:"SA-04",name:"SA-ApplicationSecurity"},
{id:"SA-05",name:"SA-DataIntegrity"},
{id:"SA-06",name:"SA-Production"},
{id:"SA-07",name:"SA-RemoteUserMulti"},
{id:"SA-08",name:"SA-NetworkSecurity"},
{id:"SA-09",name:"SA-Segmentation"},
{id:"SA-10",name:"SA-WirelessSecurity"},
{id:"SA-11",name:"SA-SharedNetworks"},
{id:"SA-12",name:"SA-ClockSynchronization"},
{id:"SA-13",name:"SA-EquipmentIdentification"},
{id:"SA-14",name:"SA-AuditLogging/IntrusionDetection"},
{id:"SA-15",name:"SA-MobileCode"}
]
},
{
name: "PCI",
id: "cert-pci",
children: [
{id:"CO-01",name:"co-AuditPlanning"},
{id:"CO-02",name:"co-IndependentAudits"},
{id:"CO-03",name:"co-ThirdPartyAudits"},
{id:"CO-04",name:"co-Contact"},
{id:"CO-05",name:"co-InformationSystemRegulatoryMapping"},
{id:"DG-02",name:"DG-Classification"},
{id:"DG-03",name:"DG-Handling"},
{id:"DG-04",name:"DG-RetentionPolicy"},
{id:"DG-05",name:"DG-SecureDisposal"},
{id:"DG-06",name:"DG-NonProductionData"},
{id:"DG-07",name:"DG-InformationLeakage"},
{id:"DG-08",name:"DG-RiskAssessments"},
{id:"FS-01",name:"FS-Policy"},
{id:"FS-02",name:"FS-UserAccess"},
{id:"FS-03",name:"FS-ControlledAccessPoints"},
{id:"FS-04",name:"FS-SecureAreaAuthorization"},
{id:"FS-06",name:"FS-OffSiteAuthorization"},
{id:"FS-07",name:"FS-OffSiteEquipment"},
{id:"FS-08",name:"FS-AssetManagement"},
{id:"HR-01",name:"HRS-BackgroundScreening"},
{id:"HR-02",name:"HRS-EmploymentAgreements"},
{id:"IS-01",name:"IS-ManagementProgram"},
{id:"IS-02",name:"IS-ManagementSupport"},
{id:"IS-03",name:"IS-Policy"},
{id:"IS-04",name:"IS-BaselineRequirements"},
{id:"IS-05",name:"IS-PolicyReviews"},
{id:"IS-07",name:"IS-UserAccessPolicy"},
{id:"IS-08",name:"IS-UserAccessRestriction"},
{id:"IS-09",name:"IS-UserAccessRevocation"},
{id:"IS-11",name:"IS-Training/Awareness"},
{id:"IS-14",name:"IS-ManagementOversight"},
{id:"IS-15",name:"IS-SegregationofDuties"},
{id:"IS-16",name:"IS-UserResponsibility"},
{id:"IS-18",name:"IS-Encryption"},
{id:"IS-19",name:"IS-EncryptionKeyManagement"},
{id:"IS-20",name:"IS-Vulnerability"},
{id:"IS-21",name:"IS-Anti-Virus"},
{id:"IS-22",name:"IS-IncidentManagement"},
{id:"IS-23",name:"IS-IncidentReporting"},
{id:"IS-25",name:"IS-IncidentResponseMetrics"},
{id:"IS-26",name:"IS-AcceptableUse"},
{id:"IS-28",name:"IS-eCommerceTransactions"},
{id:"IS-30",name:"IS-Diagnostic"},
{id:"IS-32",name:"IS-Portable"},
{id:"IS-33",name:"IS-SourceCodeAccessRestriction"},
{id:"IS-34",name:"IS-UtilityProgramsAccess"},
{id:"LG-01",name:"L-Non-DisclosureAgreements"},
{id:"LG-02",name:"L-ThirdPartyAgreements"},
{id:"OP-01",name:"OM-Policy"},
{id:"OP-02",name:"OM-Documentation"},
{id:"RI-01",name:"RM-Program"},
{id:"RI-02",name:"RM-Assessments"},
{id:"RI-04",name:"RM-Business"},
{id:"RI-05",name:"RM-ThirdPartyAccess"},
{id:"RM-01",name:"ReM-NewDevelopment"},
{id:"RM-02",name:"ReM-ProductionChanges"},
{id:"RM-03",name:"ReM-QualityTesting"},
{id:"RM-04",name:"ReM-OutsourcedDevelopment"},
{id:"RS-01",name:"R-ManagementProgram"},
{id:"RS-03",name:"R-BusinessContinuityPlanning"},
{id:"RS-04",name:"R-BusinessContinuityTesting"},
{id:"RS-06",name:"R-EquipmentLocation"},
{id:"SA-02",name:"SA-UserIDCredentials"},
{id:"SA-03",name:"SA-DataSecurity/Integrity"},
{id:"SA-04",name:"SA-ApplicationSecurity"},
{id:"SA-05",name:"SA-DataIntegrity"},
{id:"SA-06",name:"SA-Production"},
{id:"SA-07",name:"SA-RemoteUserMulti"},
{id:"SA-08",name:"SA-NetworkSecurity"},
{id:"SA-09",name:"SA-Segmentation"},
{id:"SA-10",name:"SA-WirelessSecurity"},
{id:"SA-11",name:"SA-SharedNetworks"},
{id:"SA-12",name:"SA-ClockSynchronization"},
{id:"SA-14",name:"SA-AuditLogging/IntrusionDetection"}
]
},
{
name: "HIPPA",
id: "cert-hippa",
children: [
{id:"CO-01",name:"co-AuditPlanning"},
{id:"CO-02",name:"co-IndependentAudits"},
{id:"CO-03",name:"co-ThirdPartyAudits"},
{id:"DG-01",name:"DG-Ownership"},
{id:"DG-04",name:"DG-RetentionPolicy"},
{id:"DG-05",name:"DG-SecureDisposal"},
{id:"DG-06",name:"DG-NonProductionData"},
{id:"DG-08",name:"DG-RiskAssessments"},
{id:"FS-01",name:"FS-Policy"},
{id:"FS-02",name:"FS-UserAccess"},
{id:"FS-06",name:"FS-OffSiteAuthorization"},
{id:"FS-07",name:"FS-OffSiteEquipment"},
{id:"FS-08",name:"FS-AssetManagement"},
{id:"HR-02",name:"HRS-EmploymentAgreements"},
{id:"HR-03",name:"HR-EmploymentTermination"},
{id:"IS-01",name:"IS-ManagementProgram"},
{id:"IS-02",name:"IS-ManagementSupport"},
{id:"IS-03",name:"IS-Policy"},
{id:"IS-05",name:"IS-PolicyReviews"},
{id:"IS-06",name:"IS-PolicyEnforcement"},
{id:"IS-07",name:"IS-UserAccessPolicy"},
{id:"IS-08",name:"IS-UserAccessRestriction"},
{id:"IS-09",name:"IS-UserAccessRevocation"},
{id:"IS-10",name:"IS-UserAccessReviews"},
{id:"IS-11",name:"IS-Training/Awareness"},
{id:"IS-15",name:"IS-SegregationofDuties"},
{id:"IS-16",name:"IS-UserResponsibility"},
{id:"IS-18",name:"IS-Encryption"},
{id:"IS-19",name:"IS-EncryptionKeyManagement"},
{id:"IS-20",name:"IS-Vulnerability"},
{id:"IS-21",name:"IS-Anti-Virus"},
{id:"IS-22",name:"IS-IncidentManagement"},
{id:"IS-23",name:"IS-IncidentReporting"},
{id:"IS-24",name:"IS-IncidentResponseLegalPreparation"},
{id:"IS-25",name:"IS-IncidentResponseMetrics"},
{id:"IS-26",name:"IS-AcceptableUse"},
{id:"IS-27",name:"IS-AssetReturns"},
{id:"IS-28",name:"IS-eCommerceTransactions"},
{id:"IS-32",name:"IS-Portable"},
{id:"LG-02",name:"L-ThirdPartyAgreements"},
{id:"OP-04",name:"OM-EquipmentMaintenance"},
{id:"RI-01",name:"RM-Program"},
{id:"RI-02",name:"RM-Assessments"},
{id:"RI-03",name:"RM-Mitigation"},
{id:"RM-02",name:"ReM-ProductionChanges"},
{id:"RS-01",name:"R-ManagementProgram"},
{id:"RS-02",name:"R-ImpactAnalysis"},
{id:"RS-03",name:"R-BusinessContinuityPlanning"},
{id:"RS-04",name:"R-BusinessContinuityTesting"},
{id:"RS-05",name:"R-EnvironmentalRisks"},
{id:"RS-06",name:"R-EquipmentLocation"},
{id:"SA-02",name:"SA-UserIDCredentials"},
{id:"SA-04",name:"SA-ApplicationSecurity"},
{id:"SA-05",name:"SA-DataIntegrity"},
{id:"SA-09",name:"SA-Segmentation"},
{id:"SA-10",name:"SA-WirelessSecurity"},
{id:"SA-11",name:"SA-SharedNetworks"},
{id:"SA-14",name:"SA-AuditLogging/IntrusionDetection"}
]
},
{
name: "GAPP",
id: "cert-gapp",
children: [
{id:"CO-01",name:"co-AuditPlanning"},
{id:"CO-02",name:"co-IndependentAudits"},
{id:"CO-03",name:"co-ThirdPartyAudits"},
{id:"CO-04",name:"co-Contact"},
{id:"CO-05",name:"co-InformationSystemRegulatoryMapping"},
{id:"DG-01",name:"DG-Ownership"},
{id:"DG-02",name:"DG-Classification"},
{id:"DG-03",name:"DG-Handling"},
{id:"DG-04",name:"DG-RetentionPolicy"},
{id:"DG-05",name:"DG-SecureDisposal"},
{id:"DG-06",name:"DG-NonProductionData"},
{id:"DG-07",name:"DG-InformationLeakage"},
{id:"DG-08",name:"DG-RiskAssessments"},
{id:"FS-01",name:"FS-Policy"},
{id:"FS-02",name:"FS-UserAccess"},
{id:"FS-03",name:"FS-ControlledAccessPoints"},
{id:"FS-04",name:"FS-SecureAreaAuthorization"},
{id:"FS-05",name:"FS-UnauthorizedPersonsEntry"},
{id:"FS-06",name:"FS-OffSiteAuthorization"},
{id:"HR-01",name:"HRS-BackgroundScreening"},
{id:"HR-02",name:"HRS-EmploymentAgreements"},
{id:"HR-03",name:"HR-EmploymentTermination"},
{id:"IS-01",name:"IS-ManagementProgram"},
{id:"IS-02",name:"IS-ManagementSupport"},
{id:"IS-03",name:"IS-Policy"},
{id:"IS-04",name:"IS-BaselineRequirements"},
{id:"IS-05",name:"IS-PolicyReviews"},
{id:"IS-06",name:"IS-PolicyEnforcement"},
{id:"IS-07",name:"IS-UserAccessPolicy"},
{id:"IS-08",name:"IS-UserAccessRestriction"},
{id:"IS-09",name:"IS-UserAccessRevocation"},
{id:"IS-10",name:"IS-UserAccessReviews"},
{id:"IS-11",name:"IS-Training/Awareness"},
{id:"IS-13",name:"IS-Roles"},
{id:"IS-14",name:"IS-ManagementOversight"},
{id:"IS-15",name:"IS-SegregationofDuties"},
{id:"IS-16",name:"IS-UserResponsibility"},
{id:"IS-17",name:"IS-Workspace"},
{id:"IS-18",name:"IS-Encryption"},
{id:"IS-19",name:"IS-EncryptionKeyManagement"},
{id:"IS-20",name:"IS-Vulnerability"},
{id:"IS-21",name:"IS-Anti-Virus"},
{id:"IS-22",name:"IS-IncidentManagement"},
{id:"IS-23",name:"IS-IncidentReporting"},
{id:"IS-24",name:"IS-IncidentResponseLegalPreparation"},
{id:"IS-25",name:"IS-IncidentResponseMetrics"},
{id:"IS-26",name:"IS-AcceptableUse"},
{id:"IS-27",name:"IS-AssetReturns"},
{id:"IS-28",name:"IS-eCommerceTransactions"},
{id:"IS-29",name:"IS-AuditToolsAccess"},
{id:"IS-31",name:"IS-Network"},
{id:"IS-32",name:"IS-Portable"},
{id:"IS-33",name:"IS-SourceCodeAccessRestriction"},
{id:"LG-01",name:"L-Non-DisclosureAgreements"},
{id:"LG-02",name:"L-ThirdPartyAgreements"},
{id:"OP-01",name:"OM-Policy"},
{id:"OP-02",name:"OM-Documentation"},
{id:"OP-03",name:"OM-Capacity"},
{id:"OP-04",name:"OM-EquipmentMaintenance"},
{id:"RI-01",name:"RM-Program"},
{id:"RI-02",name:"RM-Assessments"},
{id:"RI-05",name:"RM-ThirdPartyAccess"},
{id:"RM-01",name:"ReM-NewDevelopment"},
{id:"RM-02",name:"ReM-ProductionChanges"},
{id:"RM-03",name:"ReM-QualityTesting"},
{id:"RM-05",name:"ReM-UnauthorizedSoftwareInstallations"},
{id:"RS-05",name:"R-EnvironmentalRisks"},
{id:"SA-01",name:"SA-CustomerAccessRequirements"},
{id:"SA-03",name:"SA-DataSecurity/Integrity"},
{id:"SA-04",name:"SA-ApplicationSecurity"},
{id:"SA-05",name:"SA-DataIntegrity"},
{id:"SA-06",name:"SA-Production"},
{id:"SA-07",name:"SA-RemoteUserMulti"},
{id:"SA-08",name:"SA-NetworkSecurity"},
{id:"SA-10",name:"SA-WirelessSecurity"},
{id:"SA-11",name:"SA-SharedNetworks"},
{id:"SA-14",name:"SA-AuditLogging/IntrusionDetection"}
]
},
{
name: "NIST",
id: "cert-nist",
children: [
{id:"CO-01",name:"co-AuditPlanning"},
{id:"CO-02",name:"co-IndependentAudits"},
{id:"CO-03",name:"co-ThirdPartyAudits"},
{id:"CO-04",name:"co-Contact"},
{id:"CO-05",name:"co-InformationSystemRegulatoryMapping"},
{id:"CO-06",name:"co-IntellectualProperty"},
{id:"DG-01",name:"DG-Ownership"},
{id:"DG-02",name:"DG-Classification"},
{id:"DG-03",name:"DG-Handling"},
{id:"DG-04",name:"DG-RetentionPolicy"},
{id:"DG-05",name:"DG-SecureDisposal"},
{id:"DG-06",name:"DG-NonProductionData"},
{id:"DG-07",name:"DG-InformationLeakage"},
{id:"DG-08",name:"DG-RiskAssessments"},
{id:"FS-01",name:"FS-Policy"},
{id:"FS-02",name:"FS-UserAccess"},
{id:"FS-03",name:"FS-ControlledAccessPoints"},
{id:"FS-04",name:"FS-SecureAreaAuthorization"},
{id:"FS-05",name:"FS-UnauthorizedPersonsEntry"},
{id:"FS-06",name:"FS-OffSiteAuthorization"},
{id:"FS-07",name:"FS-OffSiteEquipment"},
{id:"FS-08",name:"FS-AssetManagement"},
{id:"HR-01",name:"HRS-BackgroundScreening"},
{id:"HR-02",name:"HRS-EmploymentAgreements"},
{id:"HR-03",name:"HR-EmploymentTermination"},
{id:"IS-01",name:"IS-ManagementProgram"},
{id:"IS-02",name:"IS-ManagementSupport"},
{id:"IS-03",name:"IS-Policy"},
{id:"IS-04",name:"IS-BaselineRequirements"},
{id:"IS-05",name:"IS-PolicyReviews"},
{id:"IS-06",name:"IS-PolicyEnforcement"},
{id:"IS-07",name:"IS-UserAccessPolicy"},
{id:"IS-08",name:"IS-UserAccessRestriction"},
{id:"IS-09",name:"IS-UserAccessRevocation"},
{id:"IS-10",name:"IS-UserAccessReviews"},
{id:"IS-11",name:"IS-Training/Awareness"},
{id:"IS-12",name:"IS-IndustryKnowledge"},
{id:"IS-13",name:"IS-Roles"},
{id:"IS-14",name:"IS-ManagementOversight"},
{id:"IS-15",name:"IS-SegregationofDuties"},
{id:"IS-16",name:"IS-UserResponsibility"},
{id:"IS-17",name:"IS-Workspace"},
{id:"IS-18",name:"IS-Encryption"},
{id:"IS-19",name:"IS-EncryptionKeyManagement"},
{id:"IS-20",name:"IS-Vulnerability"},
{id:"IS-21",name:"IS-Anti-Virus"},
{id:"IS-22",name:"IS-IncidentManagement"},
{id:"IS-23",name:"IS-IncidentReporting"},
{id:"IS-24",name:"IS-IncidentResponseLegalPreparation"},
{id:"IS-25",name:"IS-IncidentResponseMetrics"},
{id:"IS-26",name:"IS-AcceptableUse"},
{id:"IS-27",name:"IS-AssetReturns"},
{id:"IS-28",name:"IS-eCommerceTransactions"},
{id:"IS-29",name:"IS-AuditToolsAccess"},
{id:"IS-30",name:"IS-Diagnostic"},
{id:"IS-31",name:"IS-Network"},
{id:"IS-32",name:"IS-Portable"},
{id:"IS-33",name:"IS-SourceCodeAccessRestriction"},
{id:"IS-34",name:"IS-UtilityProgramsAccess"},
{id:"LG-01",name:"L-Non-DisclosureAgreements"},
{id:"LG-02",name:"L-ThirdPartyAgreements"},
{id:"OP-01",name:"OM-Policy"},
{id:"OP-02",name:"OM-Documentation"},
{id:"OP-03",name:"OM-Capacity"},
{id:"OP-04",name:"OM-EquipmentMaintenance"},
{id:"RI-01",name:"RM-Program"},
{id:"RI-02",name:"RM-Assessments"},
{id:"RI-03",name:"RM-Mitigation"},
{id:"RI-04",name:"RM-Business"},
{id:"RI-05",name:"RM-ThirdPartyAccess"},
{id:"RM-01",name:"ReM-NewDevelopment"},
{id:"RM-02",name:"ReM-ProductionChanges"},
{id:"RM-03",name:"ReM-QualityTesting"},
{id:"RM-04",name:"ReM-OutsourcedDevelopment"},
{id:"RM-05",name:"ReM-UnauthorizedSoftwareInstallations"},
{id:"RS-01",name:"R-ManagementProgram"},
{id:"RS-02",name:"R-ImpactAnalysis"},
{id:"RS-03",name:"R-BusinessContinuityPlanning"},
{id:"RS-04",name:"R-BusinessContinuityTesting"},
{id:"RS-05",name:"R-EnvironmentalRisks"},
{id:"RS-06",name:"R-EquipmentLocation"},
{id:"RS-07",name:"R-EquipmentPowerFailures"},
{id:"RS-08",name:"R-Power"},
{id:"SA-01",name:"SA-CustomerAccessRequirements"},
{id:"SA-02",name:"SA-UserIDCredentials"},
{id:"SA-03",name:"SA-DataSecurity/Integrity"},
{id:"SA-04",name:"SA-ApplicationSecurity"},
{id:"SA-05",name:"SA-DataIntegrity"},
{id:"SA-06",name:"SA-Production"},
{id:"SA-07",name:"SA-RemoteUserMulti"},
{id:"SA-08",name:"SA-NetworkSecurity"},
{id:"SA-09",name:"SA-Segmentation"},
{id:"SA-10",name:"SA-WirelessSecurity"},
{id:"SA-11",name:"SA-SharedNetworks"},
{id:"SA-12",name:"SA-ClockSynchronization"},
{id:"SA-13",name:"SA-EquipmentIdentification"},
{id:"SA-14",name:"SA-AuditLogging/IntrusionDetection"},
{id:"SA-15",name:"SA-MobileCode"}
]
},
{
name: "COBIT",
id: "cert-cobit",
children: [
{id:"CO-01",name:"co-AuditPlanning"},
{id:"CO-02",name:"co-IndependentAudits"},
{id:"CO-03",name:"co-ThirdPartyAudits"},
{id:"CO-04",name:"co-Contact"},
{id:"CO-05",name:"co-InformationSystemRegulatoryMapping"},
{id:"DG-01",name:"DG-Ownership"},
{id:"DG-02",name:"DG-Classification"},
{id:"DG-03",name:"DG-Handling"},
{id:"DG-04",name:"DG-RetentionPolicy"},
{id:"DG-05",name:"DG-SecureDisposal"},
{id:"DG-07",name:"DG-InformationLeakage"},
{id:"DG-08",name:"DG-RiskAssessments"},
{id:"FS-01",name:"FS-Policy"},
{id:"FS-03",name:"FS-ControlledAccessPoints"},
{id:"FS-04",name:"FS-SecureAreaAuthorization"},
{id:"FS-05",name:"FS-UnauthorizedPersonsEntry"},
{id:"HR-01",name:"HRS-BackgroundScreening"},
{id:"HR-02",name:"HRS-EmploymentAgreements"},
{id:"HR-03",name:"HR-EmploymentTermination"},
{id:"IS-01",name:"IS-ManagementProgram"},
{id:"IS-02",name:"IS-ManagementSupport"},
{id:"IS-03",name:"IS-Policy"},
{id:"IS-04",name:"IS-BaselineRequirements"},
{id:"IS-05",name:"IS-PolicyReviews"},
{id:"IS-06",name:"IS-PolicyEnforcement"},
{id:"IS-07",name:"IS-UserAccessPolicy"},
{id:"IS-08",name:"IS-UserAccessRestriction"},
{id:"IS-09",name:"IS-UserAccessRevocation"},
{id:"IS-10",name:"IS-UserAccessReviews"},
{id:"IS-11",name:"IS-Training/Awareness"},
{id:"IS-13",name:"IS-Roles"},
{id:"IS-14",name:"IS-ManagementOversight"},
{id:"IS-15",name:"IS-SegregationofDuties"},
{id:"IS-16",name:"IS-UserResponsibility"},
{id:"IS-18",name:"IS-Encryption"},
{id:"IS-19",name:"IS-EncryptionKeyManagement"},
{id:"IS-20",name:"IS-Vulnerability"},
{id:"IS-21",name:"IS-Anti-Virus"},
{id:"IS-22",name:"IS-IncidentManagement"},
{id:"IS-23",name:"IS-IncidentReporting"},
{id:"IS-24",name:"IS-IncidentResponseLegalPreparation"},
{id:"IS-25",name:"IS-IncidentResponseMetrics"},
{id:"IS-26",name:"IS-AcceptableUse"},
{id:"IS-27",name:"IS-AssetReturns"},
{id:"IS-28",name:"IS-eCommerceTransactions"},
{id:"IS-29",name:"IS-AuditToolsAccess"},
{id:"IS-30",name:"IS-Diagnostic"},
{id:"IS-31",name:"IS-Network"},
{id:"IS-32",name:"IS-Portable"},
{id:"IS-34",name:"IS-UtilityProgramsAccess"},
{id:"LG-01",name:"L-Non-DisclosureAgreements"},
{id:"LG-02",name:"L-ThirdPartyAgreements"},
{id:"OP-01",name:"OM-Policy"},
{id:"OP-02",name:"OM-Documentation"},
{id:"OP-03",name:"OM-Capacity"},
{id:"OP-04",name:"OM-EquipmentMaintenance"},
{id:"RI-01",name:"RM-Program"},
{id:"RI-02",name:"RM-Assessments"},
{id:"RI-03",name:"RM-Mitigation"},
{id:"RI-04",name:"RM-Business"},
{id:"RI-05",name:"RM-ThirdPartyAccess"},
{id:"RM-01",name:"ReM-NewDevelopment"},
{id:"RM-02",name:"ReM-ProductionChanges"},
{id:"RM-03",name:"ReM-QualityTesting"},
{id:"RS-01",name:"R-ManagementProgram"},
{id:"SA-02",name:"SA-UserIDCredentials"},
{id:"SA-03",name:"SA-DataSecurity/Integrity"},
{id:"SA-04",name:"SA-ApplicationSecurity"},
{id:"SA-06",name:"SA-Production"},
{id:"SA-09",name:"SA-Segmentation"},
{id:"SA-10",name:"SA-WirelessSecurity"},
{id:"SA-12",name:"SA-ClockSynchronization"},
{id:"SA-13",name:"SA-EquipmentIdentification"},
{id:"SA-14",name:"SA-AuditLogging/IntrusionDetection"}
]
}
]
};
var graph = {
width: 1000,
height: 900
};
d3.selection.prototype.moveToFront = function() {
return this.each(function(){
this.parentNode.appendChild(this);
});
};
var svg = d3.select('.chart').append('svg:svg')
.attr("width", graph.width)
.attr("height", graph.height)
.append('svg:g')
.attr('transform', 'translate(-' + graph.width * 0.2 + ', 0)');
function elbow(d, i) {
return "M" + d.source.y + "," + d.source.x + "H" + d.target.y
+ "V" + d.target.x + "H" + d.target.y
}
var diagonal = d3.svg.diagonal()
.projection(function(d)
{
return [d.y, d.x];
});
var tree = d3.layout.tree()
.size([graph.height,graph.width/2]);
var nodes = tree.nodes(data);
nodes = _.uniq(nodes, 'id');
_.each(nodes, function (o , i) {
var itemsOfTheSameDepth = _.where(nodes, {depth: o.depth});
var indexOfCurrent = _.indexOf(itemsOfTheSameDepth, o);
var interval = graph.height / itemsOfTheSameDepth.length;
nodes[i].x = interval / 2 + (interval * indexOfCurrent);
});
var links = tree.links(nodes);
_.each(links, function (o, i) {
links[i].target = _.find(nodes, {id: o.target.id});
});
var link = svg.selectAll("path")
.data(links)
.enter().append("svg:path")
.attr('class', function (d) {
return (!!d.source) ? d.source.id : "root";
})
.classed('link', true)
.attr('d', diagonal);
var node = svg.selectAll('g.node')
.data(nodes)
.enter().append("svg:g")
.attr("transform", function (d) {
return "translate(" + d.y + "," + d.x + ")";
})
.on('mouseover', function (d) {
d3.selectAll("." + d.id)
.classed("hover", true)
.moveToFront();
})
.on('mouseout', function (d) {
d3.selectAll('.' + d.id)
.classed('hover', false);
});
var colors = d3.scale.category20();
node.append("svg:circle")
.attr("r", 3)
.attr('fill', function (d, i) {
return colors(i);
});
node.append("svg:text")
.attr("dx", function (d) {
return d.children ? -8: 8;
})
.attr("dy", 3)
.classed("text", true)
.attr("text-anchor", function (d) {
return d.children ? "end" : "start";
})
.text(function (d) {
return d.name;
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment