Skip to content

Improve connection list step prompts #4627

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 12, 2025
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export class StorageConnectionListStep<T extends IStorageConnectionWizardContext

buttons.push(skipForNow);

const message: string = localize('connectAzureWebJobsStorage', 'In order to proceed, you must connect a storage account for internal use by the Azure Functions runtime.');
const message: string = localize('connectAzureWebJobsStorage', 'Azure Functions requires a storage account to be configured.');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UX: Shortening this message removes the rationale ("for internal use by the Azure Functions runtime"). Consider retaining a brief rationale or adding a "Learn more" link, since this is a modal blocking step. Also ensure this prompt does not appear when azureWebJobsStorage is already configured to avoid confusion.

Review generated with Copilot

context.azureWebJobsStorageType = (await context.ui.showWarningMessage(message, { modal: true }, ...buttons) as {
title: string;
data: Exclude<ConnectionType, 'Custom'>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export class DTSConnectionListStep<T extends IDTSConnectionWizardContext> extend
}

public async prompt(context: T): Promise<void> {
const connectAzureButton = { title: localize('connectAzureTaskScheduler', 'Connect Azure Task Scheduler'), data: ConnectionType.Azure };
const connectAzureButton = { title: localize('connectDurableTaskScheduler', 'Connect Durable Task Scheduler'), data: ConnectionType.Azure };
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Naming: The button title uses "Durable Task Scheduler" while other parts sometimes say "Task Scheduler". Please standardize across UI strings and localize keys (connectDurableTaskScheduler vs connectAzureTaskScheduler).

Review generated with Copilot

const connectEmulatorButton = { title: useEmulator, data: ConnectionType.Emulator };
const connectCustomDTSButton = { title: localize('connectCustomTaskScheduler', 'Manually Set a Connection String'), data: ConnectionType.Custom };
const skipForNow = { title: localize('skipForNow', 'Skip for now'), data: undefined };
Expand All @@ -44,7 +44,7 @@ export class DTSConnectionListStep<T extends IDTSConnectionWizardContext> extend

buttons.push(skipForNow);

const message: string = localize('selectDTSConnection', 'Durable Functions needs to be configured to use a Durable Task Scheduler.');
const message: string = localize('selectDTSConnection', 'Durable Functions requires a durable task scheduler to be configured.');
context.dtsConnectionType = (await context.ui.showWarningMessage(message, { modal: true }, ...buttons) as {
title: string;
data: ConnectionType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export class EventHubsConnectionListStep<T extends INetheriteConnectionWizardCon

buttons.push(skipForNow);

const message: string = localize('selectEventHubsNamespace', 'In order to proceed, you must connect an event hubs namespace for internal use by the Azure Functions runtime.');
const message: string = localize('selectEventHubsNamespace', 'Durable Functions requires an event hubs namespace to be configured.');
context.eventHubsConnectionType = (await context.ui.showWarningMessage(message, { modal: true }, ...buttons) as {
title: string;
data: Exclude<ConnectionType, 'Custom'>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export class SqlConnectionListStep<T extends ISqlDatabaseConnectionWizardContext

buttons.push(skipForNow);

const message: string = localize('selectSqlDatabaseConnection', 'In order to proceed, you must connect a SQL database for internal use by the Azure Functions runtime.');
const message: string = localize('selectSqlDatabaseConnection', 'Durable Functions requires a SQL database to be configured.');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wording/capitalization: Here we say "SQL database" (lowercase database) while Event Hubs uses title case. Please align casing and consider clarifying whether Azure SQL specifically is required or any SQL-compatible storage for the Durable Task SQL provider.

Review generated with Copilot

context.sqlDbConnectionType = (await context.ui.showWarningMessage(message, { modal: true }, ...buttons) as {
title: string;
data: Exclude<ConnectionType, 'Emulator'> | undefined;
Expand Down