Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscode/.checkmarxIgnored
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
4 changes: 0 additions & 4 deletions media/icons/tabler-icon-check.svg

This file was deleted.

3 changes: 0 additions & 3 deletions media/icons/tabler-icon-uncheck.svg

This file was deleted.

6 changes: 6 additions & 0 deletions media/welcomePage.css
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,9 @@ body[data-vscode-theme-kind*="light"] .feature-card {
justify-content: flex-start;
padding-left: 7px;
}

/* AI feature toggle checkbox styling */
#aiFeatureToggle,
.status-icon-checkbox {
transform: scale(1.25);
}
50 changes: 21 additions & 29 deletions media/welcomePage.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
let serverEnabled = false;

window.addEventListener("DOMContentLoaded", () => {
const checkIcon = document.getElementById("aiFeatureCheckIcon");
const uncheckIcon = document.getElementById("aiFeatureUncheckIcon");
const checkbox = document.getElementById("aiFeatureToggle");
const loader = document.getElementById("aiFeatureLoader");
const aiBoxInfo = document.getElementById("aiFeatureStatusBox");
const aiFeatureBoxWrapper = document.getElementById("aiFeatureBoxWrapper");
Expand All @@ -25,37 +24,23 @@

currentState = newState;

if (newState) {
checkIcon.classList.remove("hidden");
uncheckIcon.classList.add("hidden");
} else {
checkIcon.classList.add("hidden");
uncheckIcon.classList.remove("hidden");
if (checkbox) {
checkbox.checked = newState;
}

checkIcon.setAttribute("aria-pressed", newState.toString());
uncheckIcon.setAttribute("aria-pressed", (!newState).toString());

vscode.postMessage({ type: "changeAllScannersStatus", value: newState });
}

checkIcon.addEventListener("click", () => toggleScannerState(false));
uncheckIcon.addEventListener("click", () => toggleScannerState(true));

function handleKeydown(event, targetState) {
if (event.key === "Enter" || event.key === " ") {
event.preventDefault();
toggleScannerState(targetState);
}
if (checkbox) {
checkbox.addEventListener("change", () => {
if (!serverEnabled) {
checkbox.checked = false;
return;
}
toggleScannerState(checkbox.checked);
});
}

checkIcon.addEventListener("keydown", (event) =>
handleKeydown(event, false)
);
uncheckIcon.addEventListener("keydown", (event) =>
handleKeydown(event, true)
);

if (previousState.aiFeatureLoaded) {
loader.classList.add("hidden");
handleSetAiFeatureState(previousState.lastAiState);
Expand All @@ -75,14 +60,21 @@
function handleSetAiFeatureState(message) {
loader.classList.add("hidden");
serverEnabled = message.enabled;
if (checkbox) {
checkbox.classList.remove("hidden");
}

if (message.enabled) {
toggleScannerState(message.scannersSettings);

checkIcon.style.cursor = "pointer";
uncheckIcon.style.cursor = "pointer";
if (checkbox) {
checkbox.disabled = false;
checkbox.style.cursor = "pointer";
}
} else {
toggleScannerState(false);
if (checkbox) {
checkbox.disabled = true;
}
aiBoxInfo.classList.remove("hidden");
aiFeatureBoxWrapper.classList.remove("hidden");
}
Expand Down
48 changes: 6 additions & 42 deletions src/welcomePage/welcomeWebview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ export class WelcomeWebview {
bootstrapCssUri: vscode.Uri,
scannerImgUri: vscode.Uri,
aiBoxinfo: vscode.Uri,
checkSvgUri: vscode.Uri,
uncheckSvgUri: vscode.Uri,
doubleCheckUri: vscode.Uri,
cssUri: vscode.Uri,
jsUri: vscode.Uri,
Expand Down Expand Up @@ -50,25 +48,12 @@ export class WelcomeWebview {
>
<span class="visually-hidden">Loading...</span>
</div>
<img
id="aiFeatureCheckIcon"
class="status-icon-img hidden"
src="${checkSvgUri}"
alt="Real-time scanners enabled"
role="button"
tabindex="0"
aria-pressed="true"
aria-label="Real-time scanners are currently enabled. Click to disable all scanners."
/>
<img
id="aiFeatureUncheckIcon"
class="status-icon-img hidden"
src="${uncheckSvgUri}"
alt="Real-time scanners disabled"
role="button"
tabindex="0"
aria-pressed="false"
aria-label="Real-time scanners are currently disabled. Click to enable all scanners."
<input
id="aiFeatureToggle"
type="checkbox"
class="status-icon-checkbox hidden"
aria-label="Toggle real-time scanners"
title="Toggle real-time scanners"
/>
</div>
<span class="card-title">Code Smarter with Checkmarx One Assist</span>
Expand Down Expand Up @@ -175,23 +160,6 @@ export class WelcomeWebview {
)
);

const checkSvgUri = panel.webview.asWebviewUri(
vscode.Uri.joinPath(
context.extensionUri,
"media",
"icons",
"tabler-icon-check.svg"
)
);

const uncheckSvgUri = panel.webview.asWebviewUri(
vscode.Uri.joinPath(
context.extensionUri,
"media",
"icons",
"tabler-icon-uncheck.svg"
)
);

const doubleCheckUri = panel.webview.asWebviewUri(
vscode.Uri.joinPath(
Expand Down Expand Up @@ -227,8 +195,6 @@ export class WelcomeWebview {
bootstrapCssUri,
scannerImgUri,
aiBoxinfo,
checkSvgUri,
uncheckSvgUri,
doubleCheckUri,
cssUri,
jsUri,
Expand Down Expand Up @@ -272,8 +238,6 @@ export class WelcomeWebview {
bootstrapCssUri,
newScannerImgUri,
newAiBoxinfo,
checkSvgUri,
uncheckSvgUri,
newDoubleCheckUri,
cssUri,
jsUri,
Expand Down
Loading