Spaces:
Running
Running
implement the new cbom, import cbom, risk assessment and generate report floating windows in the dashboard - Follow Up Deployment
Browse files- cboms.html +155 -0
- index.html +213 -0
- prompts.txt +8 -0
cboms.html
CHANGED
|
@@ -339,6 +339,103 @@
|
|
| 339 |
</main>
|
| 340 |
</div>
|
| 341 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 342 |
<script>
|
| 343 |
AOS.init();
|
| 344 |
feather.replace();
|
|
@@ -354,6 +451,64 @@
|
|
| 354 |
this.classList.remove('text-gray-500', 'hover:text-gray-700');
|
| 355 |
});
|
| 356 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 357 |
</script>
|
| 358 |
</body>
|
| 359 |
|
|
|
|
| 339 |
</main>
|
| 340 |
</div>
|
| 341 |
|
| 342 |
+
<!-- CBOM Details Floating Window -->
|
| 343 |
+
<div id="cbomDetailsModal" class="fixed inset-0 z-50 flex items-center justify-center hidden bg-black bg-opacity-50">
|
| 344 |
+
<div class="bg-white rounded-xl shadow-lg w-full max-w-2xl max-h-[90vh] overflow-y-auto">
|
| 345 |
+
<div class="p-6">
|
| 346 |
+
<div class="flex items-center justify-between mb-4">
|
| 347 |
+
<h3 class="text-xl font-semibold" id="cbomModalTitle">CBOM Details</h3>
|
| 348 |
+
<button onclick="closeCbomModal()" class="text-gray-500 hover:text-gray-700">
|
| 349 |
+
<i data-feather="x" class="w-6 h-6"></i>
|
| 350 |
+
</button>
|
| 351 |
+
</div>
|
| 352 |
+
|
| 353 |
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-6">
|
| 354 |
+
<div class="p-4 bg-gray-50 rounded-lg">
|
| 355 |
+
<p class="text-sm text-gray-500">Name</p>
|
| 356 |
+
<p class="font-medium" id="cbomName">-</p>
|
| 357 |
+
</div>
|
| 358 |
+
<div class="p-4 bg-gray-50 rounded-lg">
|
| 359 |
+
<p class="text-sm text-gray-500">Version</p>
|
| 360 |
+
<p class="font-medium" id="cbomVersion">-</p>
|
| 361 |
+
</div>
|
| 362 |
+
<div class="p-4 bg-gray-50 rounded-lg">
|
| 363 |
+
<p class="text-sm text-gray-500">Status</p>
|
| 364 |
+
<p class="font-medium" id="cbomStatus">-</p>
|
| 365 |
+
</div>
|
| 366 |
+
<div class="p-4 bg-gray-50 rounded-lg">
|
| 367 |
+
<p class="text-sm text-gray-500">Last Modified</p>
|
| 368 |
+
<p class="font-medium" id="cbomModified">-</p>
|
| 369 |
+
</div>
|
| 370 |
+
</div>
|
| 371 |
+
|
| 372 |
+
<div class="mb-6">
|
| 373 |
+
<h4 class="font-medium mb-2">Assets Breakdown</h4>
|
| 374 |
+
<div class="grid grid-cols-4 gap-2 text-center">
|
| 375 |
+
<div class="p-3 bg-blue-50 rounded-lg">
|
| 376 |
+
<p class="text-xl font-bold text-blue-600" id="cbomAlgorithms">0</p>
|
| 377 |
+
<p class="text-xs text-gray-600">Algorithms</p>
|
| 378 |
+
</div>
|
| 379 |
+
<div class="p-3 bg-purple-50 rounded-lg">
|
| 380 |
+
<p class="text-xl font-bold text-purple-600" id="cbomProtocols">0</p>
|
| 381 |
+
<p class="text-xs text-gray-600">Protocols</p>
|
| 382 |
+
</div>
|
| 383 |
+
<div class="p-3 bg-yellow-50 rounded-lg">
|
| 384 |
+
<p class="text-xl font-bold text-yellow-600" id="cbomCertificates">0</p>
|
| 385 |
+
<p class="text-xs text-gray-600">Certificates</p>
|
| 386 |
+
</div>
|
| 387 |
+
<div class="p-3 bg-green-50 rounded-lg">
|
| 388 |
+
<p class="text-xl font-bold text-green-600" id="cbomTotal">0</p>
|
| 389 |
+
<p class="text-xs text-gray-600">Total</p>
|
| 390 |
+
</div>
|
| 391 |
+
</div>
|
| 392 |
+
</div>
|
| 393 |
+
|
| 394 |
+
<div class="mb-6">
|
| 395 |
+
<h4 class="font-medium mb-2">Risk Assessment</h4>
|
| 396 |
+
<div class="space-y-3">
|
| 397 |
+
<div>
|
| 398 |
+
<div class="flex justify-between text-sm mb-1">
|
| 399 |
+
<span>High Risk</span>
|
| 400 |
+
<span id="cbomHighRisk">0%</span>
|
| 401 |
+
</div>
|
| 402 |
+
<div class="w-full bg-gray-200 rounded-full h-2">
|
| 403 |
+
<div class="bg-red-500 h-2 rounded-full" id="cbomHighRiskBar" style="width: 0%"></div>
|
| 404 |
+
</div>
|
| 405 |
+
</div>
|
| 406 |
+
<div>
|
| 407 |
+
<div class="flex justify-between text-sm mb-1">
|
| 408 |
+
<span>Medium Risk</span>
|
| 409 |
+
<span id="cbomMediumRisk">0%</span>
|
| 410 |
+
</div>
|
| 411 |
+
<div class="w-full bg-gray-200 rounded-full h-2">
|
| 412 |
+
<div class="bg-yellow-500 h-2 rounded-full" id="cbomMediumRiskBar" style="width: 0%"></div>
|
| 413 |
+
</div>
|
| 414 |
+
</div>
|
| 415 |
+
<div>
|
| 416 |
+
<div class="flex justify-between text-sm mb-1">
|
| 417 |
+
<span>Low Risk</span>
|
| 418 |
+
<span id="cbomLowRisk">0%</span>
|
| 419 |
+
</div>
|
| 420 |
+
<div class="w-full bg-gray-200 rounded-full h-2">
|
| 421 |
+
<div class="bg-green-500 h-2 rounded-full" id="cbomLowRiskBar" style="width: 0%"></div>
|
| 422 |
+
</div>
|
| 423 |
+
</div>
|
| 424 |
+
</div>
|
| 425 |
+
</div>
|
| 426 |
+
|
| 427 |
+
<div class="flex justify-end space-x-3">
|
| 428 |
+
<button onclick="closeCbomModal()" class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 429 |
+
Close
|
| 430 |
+
</button>
|
| 431 |
+
<button class="px-4 py-2 bg-yellow-400 text-gray-900 rounded-lg hover:bg-yellow-500">
|
| 432 |
+
View Full Details
|
| 433 |
+
</button>
|
| 434 |
+
</div>
|
| 435 |
+
</div>
|
| 436 |
+
</div>
|
| 437 |
+
</div>
|
| 438 |
+
|
| 439 |
<script>
|
| 440 |
AOS.init();
|
| 441 |
feather.replace();
|
|
|
|
| 451 |
this.classList.remove('text-gray-500', 'hover:text-gray-700');
|
| 452 |
});
|
| 453 |
});
|
| 454 |
+
|
| 455 |
+
// CBOM Modal Functions
|
| 456 |
+
function openCbomModal(cbomData) {
|
| 457 |
+
document.getElementById('cbomModalTitle').textContent = cbomData.name;
|
| 458 |
+
document.getElementById('cbomName').textContent = cbomData.name;
|
| 459 |
+
document.getElementById('cbomVersion').textContent = cbomData.version;
|
| 460 |
+
document.getElementById('cbomStatus').textContent = cbomData.status;
|
| 461 |
+
document.getElementById('cbomModified').textContent = cbomData.modified;
|
| 462 |
+
document.getElementById('cbomAlgorithms').textContent = cbomData.assets.algorithms;
|
| 463 |
+
document.getElementById('cbomProtocols').textContent = cbomData.assets.protocols;
|
| 464 |
+
document.getElementById('cbomCertificates').textContent = cbomData.assets.certificates;
|
| 465 |
+
document.getElementById('cbomTotal').textContent = cbomData.assets.total;
|
| 466 |
+
|
| 467 |
+
document.getElementById('cbomHighRisk').textContent = cbomData.risks.high + '%';
|
| 468 |
+
document.getElementById('cbomMediumRisk').textContent = cbomData.risks.medium + '%';
|
| 469 |
+
document.getElementById('cbomLowRisk').textContent = cbomData.risks.low + '%';
|
| 470 |
+
|
| 471 |
+
document.getElementById('cbomHighRiskBar').style.width = cbomData.risks.high + '%';
|
| 472 |
+
document.getElementById('cbomMediumRiskBar').style.width = cbomData.risks.medium + '%';
|
| 473 |
+
document.getElementById('cbomLowRiskBar').style.width = cbomData.risks.low + '%';
|
| 474 |
+
|
| 475 |
+
document.getElementById('cbomDetailsModal').classList.remove('hidden');
|
| 476 |
+
}
|
| 477 |
+
|
| 478 |
+
function closeCbomModal() {
|
| 479 |
+
document.getElementById('cbomDetailsModal').classList.add('hidden');
|
| 480 |
+
}
|
| 481 |
+
|
| 482 |
+
// Sample data for CBOM cards
|
| 483 |
+
const cbomCards = document.querySelectorAll('.p-4.border.border-gray-200.rounded-lg');
|
| 484 |
+
cbomCards.forEach(card => {
|
| 485 |
+
card.addEventListener('click', function() {
|
| 486 |
+
const title = this.querySelector('h4').textContent;
|
| 487 |
+
const status = this.querySelector('span').textContent;
|
| 488 |
+
const versionText = this.querySelector('p:nth-of-type(1)').textContent;
|
| 489 |
+
const modifiedText = this.querySelector('p:nth-of-type(2)').textContent;
|
| 490 |
+
|
| 491 |
+
const cbomData = {
|
| 492 |
+
name: title,
|
| 493 |
+
status: status,
|
| 494 |
+
version: versionText.split('•')[0].replace('Version', '').trim(),
|
| 495 |
+
modified: modifiedText.replace('Last modified:', '').trim(),
|
| 496 |
+
assets: {
|
| 497 |
+
algorithms: Math.floor(Math.random() * 50) + 10,
|
| 498 |
+
protocols: Math.floor(Math.random() * 30) + 5,
|
| 499 |
+
certificates: Math.floor(Math.random() * 300) + 50,
|
| 500 |
+
total: Math.floor(Math.random() * 400) + 100
|
| 501 |
+
},
|
| 502 |
+
risks: {
|
| 503 |
+
high: Math.floor(Math.random() * 30) + 5,
|
| 504 |
+
medium: Math.floor(Math.random() * 40) + 20,
|
| 505 |
+
low: Math.floor(Math.random() * 40) + 30
|
| 506 |
+
}
|
| 507 |
+
};
|
| 508 |
+
|
| 509 |
+
openCbomModal(cbomData);
|
| 510 |
+
});
|
| 511 |
+
});
|
| 512 |
</script>
|
| 513 |
</body>
|
| 514 |
|
index.html
CHANGED
|
@@ -355,10 +355,223 @@
|
|
| 355 |
</main>
|
| 356 |
</div>
|
| 357 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 358 |
<script>
|
| 359 |
AOS.init();
|
| 360 |
feather.replace();
|
| 361 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 362 |
// Simple animation for cards on load
|
| 363 |
document.addEventListener('DOMContentLoaded', function () {
|
| 364 |
const cards = document.querySelectorAll('.card-hover');
|
|
|
|
| 355 |
</main>
|
| 356 |
</div>
|
| 357 |
|
| 358 |
+
<!-- Floating Modals -->
|
| 359 |
+
<div id="newCbomModal" class="fixed inset-0 z-50 flex items-center justify-center hidden bg-black bg-opacity-50">
|
| 360 |
+
<div class="bg-white rounded-xl shadow-lg w-full max-w-md">
|
| 361 |
+
<div class="p-6">
|
| 362 |
+
<div class="flex items-center justify-between mb-4">
|
| 363 |
+
<h3 class="text-xl font-semibold">Create New CBOM</h3>
|
| 364 |
+
<button onclick="closeModal('newCbomModal')" class="text-gray-500 hover:text-gray-700">
|
| 365 |
+
<i data-feather="x" class="w-6 h-6"></i>
|
| 366 |
+
</button>
|
| 367 |
+
</div>
|
| 368 |
+
|
| 369 |
+
<div class="space-y-4">
|
| 370 |
+
<div>
|
| 371 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">CBOM Name</label>
|
| 372 |
+
<input type="text" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400">
|
| 373 |
+
</div>
|
| 374 |
+
<div>
|
| 375 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
|
| 376 |
+
<textarea class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400" rows="3"></textarea>
|
| 377 |
+
</div>
|
| 378 |
+
<div>
|
| 379 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Template</label>
|
| 380 |
+
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400">
|
| 381 |
+
<option>Web Application</option>
|
| 382 |
+
<option>Mobile Application</option>
|
| 383 |
+
<option>Microservices</option>
|
| 384 |
+
<option>Legacy System</option>
|
| 385 |
+
</select>
|
| 386 |
+
</div>
|
| 387 |
+
</div>
|
| 388 |
+
|
| 389 |
+
<div class="flex justify-end space-x-3 mt-6">
|
| 390 |
+
<button onclick="closeModal('newCbomModal')" class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 391 |
+
Cancel
|
| 392 |
+
</button>
|
| 393 |
+
<button class="px-4 py-2 bg-yellow-400 text-gray-900 rounded-lg hover:bg-yellow-500">
|
| 394 |
+
Create CBOM
|
| 395 |
+
</button>
|
| 396 |
+
</div>
|
| 397 |
+
</div>
|
| 398 |
+
</div>
|
| 399 |
+
</div>
|
| 400 |
+
|
| 401 |
+
<div id="importCbomModal" class="fixed inset-0 z-50 flex items-center justify-center hidden bg-black bg-opacity-50">
|
| 402 |
+
<div class="bg-white rounded-xl shadow-lg w-full max-w-md">
|
| 403 |
+
<div class="p-6">
|
| 404 |
+
<div class="flex items-center justify-between mb-4">
|
| 405 |
+
<h3 class="text-xl font-semibold">Import CBOM</h3>
|
| 406 |
+
<button onclick="closeModal('importCbomModal')" class="text-gray-500 hover:text-gray-700">
|
| 407 |
+
<i data-feather="x" class="w-6 h-6"></i>
|
| 408 |
+
</button>
|
| 409 |
+
</div>
|
| 410 |
+
|
| 411 |
+
<div class="space-y-4">
|
| 412 |
+
<div class="border-2 border-dashed border-gray-300 rounded-lg p-8 text-center">
|
| 413 |
+
<i data-feather="upload" class="w-12 h-12 mx-auto text-gray-400 mb-3"></i>
|
| 414 |
+
<p class="text-sm text-gray-500 mb-2">Drag and drop your CBOM file here</p>
|
| 415 |
+
<p class="text-xs text-gray-400 mb-4">Supports .json, .xml, .cbom formats</p>
|
| 416 |
+
<button class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200">
|
| 417 |
+
Select File
|
| 418 |
+
</button>
|
| 419 |
+
</div>
|
| 420 |
+
<div class="flex items-center space-x-2">
|
| 421 |
+
<input type="checkbox" id="overwrite" class="rounded border-gray-300 text-yellow-400 focus:ring-yellow-400">
|
| 422 |
+
<label for="overwrite" class="text-sm text-gray-700">Overwrite existing CBOM with same name</label>
|
| 423 |
+
</div>
|
| 424 |
+
</div>
|
| 425 |
+
|
| 426 |
+
<div class="flex justify-end space-x-3 mt-6">
|
| 427 |
+
<button onclick="closeModal('importCbomModal')" class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 428 |
+
Cancel
|
| 429 |
+
</button>
|
| 430 |
+
<button class="px-4 py-2 bg-yellow-400 text-gray-900 rounded-lg hover:bg-yellow-500">
|
| 431 |
+
Import CBOM
|
| 432 |
+
</button>
|
| 433 |
+
</div>
|
| 434 |
+
</div>
|
| 435 |
+
</div>
|
| 436 |
+
</div>
|
| 437 |
+
|
| 438 |
+
<div id="riskAssessmentModal" class="fixed inset-0 z-50 flex items-center justify-center hidden bg-black bg-opacity-50">
|
| 439 |
+
<div class="bg-white rounded-xl shadow-lg w-full max-w-md">
|
| 440 |
+
<div class="p-6">
|
| 441 |
+
<div class="flex items-center justify-between mb-4">
|
| 442 |
+
<h3 class="text-xl font-semibold">Run Risk Assessment</h3>
|
| 443 |
+
<button onclick="closeModal('riskAssessmentModal')" class="text-gray-500 hover:text-gray-700">
|
| 444 |
+
<i data-feather="x" class="w-6 h-6"></i>
|
| 445 |
+
</button>
|
| 446 |
+
</div>
|
| 447 |
+
|
| 448 |
+
<div class="space-y-4">
|
| 449 |
+
<div>
|
| 450 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Select CBOM</label>
|
| 451 |
+
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400">
|
| 452 |
+
<option>Enterprise Web App</option>
|
| 453 |
+
<option>Payment Gateway</option>
|
| 454 |
+
<option>Legacy System</option>
|
| 455 |
+
<option>Mobile Banking</option>
|
| 456 |
+
</select>
|
| 457 |
+
</div>
|
| 458 |
+
<div>
|
| 459 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Assessment Type</label>
|
| 460 |
+
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400">
|
| 461 |
+
<option>Quantum Risk Only</option>
|
| 462 |
+
<option>Full Cryptographic Assessment</option>
|
| 463 |
+
<option>Compliance Check</option>
|
| 464 |
+
</select>
|
| 465 |
+
</div>
|
| 466 |
+
<div class="flex items-center space-x-2">
|
| 467 |
+
<input type="checkbox" id="includeDependencies" class="rounded border-gray-300 text-yellow-400 focus:ring-yellow-400" checked>
|
| 468 |
+
<label for="includeDependencies" class="text-sm text-gray-700">Include dependencies in assessment</label>
|
| 469 |
+
</div>
|
| 470 |
+
</div>
|
| 471 |
+
|
| 472 |
+
<div class="flex justify-end space-x-3 mt-6">
|
| 473 |
+
<button onclick="closeModal('riskAssessmentModal')" class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 474 |
+
Cancel
|
| 475 |
+
</button>
|
| 476 |
+
<button class="px-4 py-2 bg-yellow-400 text-gray-900 rounded-lg hover:bg-yellow-500">
|
| 477 |
+
Run Assessment
|
| 478 |
+
</button>
|
| 479 |
+
</div>
|
| 480 |
+
</div>
|
| 481 |
+
</div>
|
| 482 |
+
</div>
|
| 483 |
+
|
| 484 |
+
<div id="generateReportModal" class="fixed inset-0 z-50 flex items-center justify-center hidden bg-black bg-opacity-50">
|
| 485 |
+
<div class="bg-white rounded-xl shadow-lg w-full max-w-md">
|
| 486 |
+
<div class="p-6">
|
| 487 |
+
<div class="flex items-center justify-between mb-4">
|
| 488 |
+
<h3 class="text-xl font-semibold">Generate Report</h3>
|
| 489 |
+
<button onclick="closeModal('generateReportModal')" class="text-gray-500 hover:text-gray-700">
|
| 490 |
+
<i data-feather="x" class="w-6 h-6"></i>
|
| 491 |
+
</button>
|
| 492 |
+
</div>
|
| 493 |
+
|
| 494 |
+
<div class="space-y-4">
|
| 495 |
+
<div>
|
| 496 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Report Type</label>
|
| 497 |
+
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400">
|
| 498 |
+
<option>Quantum Risk Assessment</option>
|
| 499 |
+
<option>Compliance Report</option>
|
| 500 |
+
<option>Executive Summary</option>
|
| 501 |
+
<option>Technical Details</option>
|
| 502 |
+
</select>
|
| 503 |
+
</div>
|
| 504 |
+
<div>
|
| 505 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Format</label>
|
| 506 |
+
<div class="grid grid-cols-3 gap-2">
|
| 507 |
+
<button class="p-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 508 |
+
<i data-feather="file-text" class="w-5 h-5 mx-auto text-gray-600"></i>
|
| 509 |
+
<span class="text-xs block mt-1">PDF</span>
|
| 510 |
+
</button>
|
| 511 |
+
<button class="p-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 512 |
+
<i data-feather="file-text" class="w-5 h-5 mx-auto text-gray-600"></i>
|
| 513 |
+
<span class="text-xs block mt-1">DOCX</span>
|
| 514 |
+
</button>
|
| 515 |
+
<button class="p-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 516 |
+
<i data-feather="file-text" class="w-5 h-5 mx-auto text-gray-600"></i>
|
| 517 |
+
<span class="text-xs block mt-1">CSV</span>
|
| 518 |
+
</button>
|
| 519 |
+
</div>
|
| 520 |
+
</div>
|
| 521 |
+
<div class="flex items-center space-x-2">
|
| 522 |
+
<input type="checkbox" id="includeCharts" class="rounded border-gray-300 text-yellow-400 focus:ring-yellow-400" checked>
|
| 523 |
+
<label for="includeCharts" class="text-sm text-gray-700">Include charts and graphs</label>
|
| 524 |
+
</div>
|
| 525 |
+
</div>
|
| 526 |
+
|
| 527 |
+
<div class="flex justify-end space-x-3 mt-6">
|
| 528 |
+
<button onclick="closeModal('generateReportModal')" class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50">
|
| 529 |
+
Cancel
|
| 530 |
+
</button>
|
| 531 |
+
<button class="px-4 py-2 bg-yellow-400 text-gray-900 rounded-lg hover:bg-yellow-500">
|
| 532 |
+
Generate Report
|
| 533 |
+
</button>
|
| 534 |
+
</div>
|
| 535 |
+
</div>
|
| 536 |
+
</div>
|
| 537 |
+
</div>
|
| 538 |
+
|
| 539 |
<script>
|
| 540 |
AOS.init();
|
| 541 |
feather.replace();
|
| 542 |
|
| 543 |
+
// Modal functions
|
| 544 |
+
function openModal(modalId) {
|
| 545 |
+
document.getElementById(modalId).classList.remove('hidden');
|
| 546 |
+
}
|
| 547 |
+
|
| 548 |
+
function closeModal(modalId) {
|
| 549 |
+
document.getElementById(modalId).classList.add('hidden');
|
| 550 |
+
}
|
| 551 |
+
|
| 552 |
+
// Connect quick action buttons to modals
|
| 553 |
+
document.addEventListener('DOMContentLoaded', function() {
|
| 554 |
+
// New CBOM
|
| 555 |
+
document.querySelector('button:has(span:contains("New CBOM"))').addEventListener('click', function() {
|
| 556 |
+
openModal('newCbomModal');
|
| 557 |
+
});
|
| 558 |
+
|
| 559 |
+
// Import CBOM
|
| 560 |
+
document.querySelector('button:has(span:contains("Import CBOM"))').addEventListener('click', function() {
|
| 561 |
+
openModal('importCbomModal');
|
| 562 |
+
});
|
| 563 |
+
|
| 564 |
+
// Risk Assessment
|
| 565 |
+
document.querySelector('button:has(span:contains("Risk Assessment"))').addEventListener('click', function() {
|
| 566 |
+
openModal('riskAssessmentModal');
|
| 567 |
+
});
|
| 568 |
+
|
| 569 |
+
// Generate Report
|
| 570 |
+
document.querySelector('button:has(span:contains("Generate Report"))').addEventListener('click', function() {
|
| 571 |
+
openModal('generateReportModal');
|
| 572 |
+
});
|
| 573 |
+
});
|
| 574 |
+
|
| 575 |
// Simple animation for cards on load
|
| 576 |
document.addEventListener('DOMContentLoaded', function () {
|
| 577 |
const cards = document.querySelectorAll('.card-hover');
|
prompts.txt
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
can you implement the floating windows or any kind of placeholder that currently does not perform any action? i want to have a fully functional code and i want to show all the nested tabs
|
| 2 |
+
implement the new cbom floating window
|
| 3 |
+
implement the new cbom, import cbom, risk assessment and generate report floating window in the dashboard
|
| 4 |
+
implement the new cbom, import cbom, risk assessment and generate report floating windows in the dashboard
|
| 5 |
+
implement the new cbom, import cbom, risk assessment and generate report floating windows in the dashboard
|
| 6 |
+
implement the new cbom, import cbom, risk assessment and generate report floating windows in the dashboard
|
| 7 |
+
implement the new cbom, import cbom, risk assessment and generate report floating windows in the dashboard
|
| 8 |
+
implement the new cbom, import cbom, risk assessment and generate report floating windows in the dashboard
|