diff --git a/public/css/panel.css b/public/css/panel.css index 7128b1c..3d9e488 100644 --- a/public/css/panel.css +++ b/public/css/panel.css @@ -335,7 +335,14 @@ .badge-active { background: #c84040; } /* Unknown / fallback */ -.badge-unknown { background: #606060; } +.badge-unknown { background: #606060; } + +/* Boolean feature badges */ +.badge-api { background: #1e90cc; } +.badge-invitation-only { background: #b87800; } +.badge-deprecated { background: #8b3030; } +.badge-nsfw { background: #9b2b9b; } +.badge-region { background: #2e7d32; } /* OPSEC row layout */ .opsec-row { diff --git a/public/js/arf.js b/public/js/arf.js index a935de5..e7cd87b 100644 --- a/public/js/arf.js +++ b/public/js/arf.js @@ -451,6 +451,30 @@ function openPanel(d) { var pricingClass = ["free","freemium","paid"].indexOf(pricing) !== -1 ? pricing : "unknown"; badgeHtml += ' ' + escapeHtml(pricing) + ''; + if (d.data.api === true) { + badgeHtml += ' API'; + } + if (d.data.invitationOnly === true) { + badgeHtml += ' Invite Only'; + } + if (d.data.deprecated === true) { + badgeHtml += ' Deprecated'; + } + if (d.data.nsfw === true) { + badgeHtml += ' NSFW'; + } + + var region = d.data.region; + var regionLabel; + if (!region || region === "global") { + regionLabel = "Global"; + } else if (Array.isArray(region)) { + regionLabel = region.map(function(r) { return r.toUpperCase(); }).join(", "); + } else { + regionLabel = String(region).toUpperCase(); + } + badgeHtml += ' ' + escapeHtml(regionLabel) + ''; + badgesEl.innerHTML = badgeHtml; badgesEl.classList.remove("empty"); }