haramb3-2 commited on
Commit
1c7e610
·
verified ·
1 Parent(s): e241f1f

implement the new cbom, import cbom, risk assessment and generate report floating windows in the dashboard - Follow Up Deployment

Browse files
Files changed (3) hide show
  1. cboms.html +155 -0
  2. index.html +213 -0
  3. 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