app/assets/javascripts/dradis/plugins/calculators/cvss/calculator.js.coffee in dradis-calculator_cvss-3.15.0 vs app/assets/javascripts/dradis/plugins/calculators/cvss/calculator.js.coffee in dradis-calculator_cvss-3.16.0

- old
+ new

@@ -36,11 +36,11 @@ cr, ir, ar, mav, mac, mpr, mui, ms, mc, mi, ma); if output.success == true $('input[type=submit]').attr('disabled', null) - $('[data-behavior~=cvss-error]').hide().text('') + $('[data-behavior~=cvss-error]').addClass('d-none').text('') $('#base-score').text("#{output.baseMetricScore} (#{output.baseSeverity})") $('#temporal-score').text("#{output.temporalMetricScore} (#{output.temporalSeverity})") $('#environmental-score').text("#{output.environmentalMetricScore} (#{output.environmentalSeverity})") issue_cvss = "#[CVSSv3.Vector]#\n" @@ -55,52 +55,81 @@ issue_cvss += "#{output.temporalSeverity}\n\n" issue_cvss += "#[CVSSv3.EnvironmentalScore]#\n" issue_cvss += "#{output.environmentalMetricScore}\n\n" issue_cvss += "#[CVSSv3.EnvironmentalSeverity]#\n" issue_cvss += "#{output.environmentalSeverity}\n\n" - + + # Base metrics issue_cvss += "#[CVSSv3.BaseAttackVector]#\n" - issue_cvss += "#{output.baseAttackVector}\n\n" + issue_cvss += "#{$("button[name=av].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.BaseAttackComplexity]#\n" - issue_cvss += "#{output.baseAttackComplexity}\n\n" + issue_cvss += "#{$("button[name=ac].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.BasePrivilegesRequired]#\n" - issue_cvss += "#{output.basePrivilegesRequired}\n\n" + issue_cvss += "#{$("button[name=pr].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.BaseUserInteraction]#\n" - issue_cvss += "#{output.baseUserInteraction}\n\n" + issue_cvss += "#{$("button[name=ui].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.BaseScope]#\n" - issue_cvss += "#{output.baseScope}\n\n" + issue_cvss += "#{$("button[name=s].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.BaseConfidentiality]#\n" - issue_cvss += "#{output.baseConfidentiality}\n\n" + issue_cvss += "#{$("button[name=c].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.BaseIntegrity]#\n" - issue_cvss += "#{output.baseIntegrity}\n\n" + issue_cvss += "#{$("button[name=i].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.BaseAvailability]#\n" - issue_cvss += "#{output.baseAvailability}\n\n" + issue_cvss += "#{$("button[name=a].btn-primary").data('label')}\n\n" + + # Temporal metrics + issue_cvss += "#[CVSSv3.TemporalExploitCodeMaturity]#\n" + issue_cvss += "#{$("button[name=e].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.TemporalRemediationLevel]#\n" + issue_cvss += "#{$("button[name=rl].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.TemporalReportConfidence]#\n" + issue_cvss += "#{$("button[name=rc].btn-primary").data('label')}\n\n" + + # Environmental metrics issue_cvss += "#[CVSSv3.EnvironmentalConfidentialityRequirement]#\n" - issue_cvss += "#{output.environmentalConfidentialityRequirement}\n\n" + issue_cvss += "#{$("button[name=cr].btn-primary").data('label')}\n\n" issue_cvss += "#[CVSSv3.EnvironmentalIntegrityRequirement]#\n" - issue_cvss += "#{output.environmentalIntegrityRequirement}\n\n" + issue_cvss += "#{$("button[name=ir].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.EnvironmentalAvailabilityRequirement]#\n" + issue_cvss += "#{$("button[name=ar].btn-primary").data('label')}\n\n" + + issue_cvss += "#[CVSSv3.ModifiedAttackVector]#\n" + issue_cvss += "#{$("button[name=mav].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.ModifiedAttackComplexity]#\n" + issue_cvss += "#{$("button[name=mac].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.ModifiedPrivilegesRequired]#\n" + issue_cvss += "#{$("button[name=mpr].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.ModifiedUserInteraction]#\n" + issue_cvss += "#{$("button[name=mui].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.ModifiedScope]#\n" + issue_cvss += "#{$("button[name=ms].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.ModifiedConfidentiality]#\n" + issue_cvss += "#{$("button[name=mc].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.ModifiedIntegrity]#\n" + issue_cvss += "#{$("button[name=mi].btn-primary").data('label')}\n\n" + issue_cvss += "#[CVSSv3.ModifiedAvailability]#\n" + issue_cvss += "#{$("button[name=ma].btn-primary").data('label')}\n\n" + $('textarea[name=cvss_fields]').val(issue_cvss) else errorMessage = '' if output.errorType == 'MissingBaseMetric' errorMessage = "The error type is '#{output.errorType}' and the metrics with errors are #{output.errorMetrics}." else errorMessage = "All Base metrics are required" $('input[type=submit]').attr('disabled', 'disabled') - $('[data-behavior~=cvss-error]') - .show() - .text(errorMessage) + $('[data-behavior~=cvss-error]').removeClass('d-none').text(errorMessage) - document.addEventListener "turbolinks:load", -> if $('[data-behavior~=cvss-buttons]').length CVSSCalculator.calculate() - $('[data-behavior~=cvss-error]').hide() + $('[data-behavior~=cvss-error]').addClass('d-none') $('[data-behavior~=cvss-buttons] button').on 'click', -> + $this = $(this) - $this.parent().find('button').removeClass('btn-primary'); - $this.addClass('btn-primary'); + $this.parent().find('button').removeClass('active btn-primary'); + $this.addClass('active btn-primary'); $("input[name=#{$this.attr('name')}]").val($this.val()) CVSSCalculator.calculate()