diff --git a/src/commands/environmentVariables/editEnvironmentVariables/EnvironmentVariablesEditDraftStep.ts b/src/commands/environmentVariables/editEnvironmentVariables/EnvironmentVariablesEditDraftStep.ts index 3373cc48..545c72c6 100644 --- a/src/commands/environmentVariables/editEnvironmentVariables/EnvironmentVariablesEditDraftStep.ts +++ b/src/commands/environmentVariables/editEnvironmentVariables/EnvironmentVariablesEditDraftStep.ts @@ -4,18 +4,25 @@ *--------------------------------------------------------------------------------------------*/ import { type Container, type EnvironmentVar } from "@azure/arm-appcontainers"; -import { nonNullProp } from "@microsoft/vscode-azext-utils"; -import { type Progress } from "vscode"; +import { ActivityChildItem, ActivityChildType, activityFailContext, activityFailIcon, activityProgressContext, activityProgressIcon, activitySuccessContext, activitySuccessIcon, createContextValue, nonNullProp, type ExecuteActivityOutput } from "@microsoft/vscode-azext-utils"; +import { TreeItemCollapsibleState, type Progress } from "vscode"; import { type ContainerAppItem } from "../../../tree/ContainerAppItem"; import { type RevisionsItemModel } from "../../../tree/revisionManagement/RevisionItem"; import { localize } from "../../../utils/localize"; import { RevisionDraftUpdateBaseStep } from "../../revisionDraft/RevisionDraftUpdateBaseStep"; import { type EnvironmentVariablesEditContext } from "./EnvironmentVariablesEditContext"; +export type EnvironmentVariablesEditDraftStepOutputs = { + treeItemLabel?: string; + outputLogFailMessage?: string; +}; + +const environmentVariablesEditDraftStepContext: string = 'environmentVariablesEditDraftStepItem'; + export class EnvironmentVariablesEditDraftStep extends RevisionDraftUpdateBaseStep { public priority: number = 920; - constructor(baseItem: ContainerAppItem | RevisionsItemModel) { + constructor(baseItem: ContainerAppItem | RevisionsItemModel, readonly outputs: EnvironmentVariablesEditDraftStepOutputs = {}) { super(baseItem); } @@ -41,4 +48,40 @@ export class EnvironmentVariablesEditDraftStep { const item: EnvironmentVariablesItem = node ?? await pickEnvironmentVariables(context, { autoSelectDraft: true }); @@ -41,6 +41,9 @@ export async function editEnvironmentVariables(context: IActionContext, node?: E }; wizardContext.telemetry.properties.revisionMode = containerApp.revisionsMode; + // Create an output reference to pass to the draft step so we can edit after prompting + const editDraftStepOutputs: EnvironmentVariablesEditDraftStepOutputs = {}; + const wizard = new AzureWizard(wizardContext, { title: localize('editEnvironmentVariables', 'Edit environment variables for "{0}" (draft)', parentResource.name), promptSteps: [ @@ -49,10 +52,15 @@ export async function editEnvironmentVariables(context: IActionContext, node?: E ], executeSteps: [ getVerifyProvidersStep(), - new EnvironmentVariablesEditDraftStep(item), + new EnvironmentVariablesEditDraftStep(item, editDraftStepOutputs), ], }); await wizard.prompt(); + if (wizardContext.envPath) { + wizardContext.activityTitle = localize('editEnvVarsFromFileActivityTitle', 'Edit environment variables for "{0}" from provided .env file (draft)', parentResource.name); + editDraftStepOutputs.treeItemLabel = localize('saveEnvVarsToDraftLabel', 'Save environment variables from provided .env file to draft'); + editDraftStepOutputs.outputLogFailMessage = localize('editEnvVarsFileFail', 'Failed to edit environment variables for "{0}" from provided .env file (draft).', parentResource.name); + } await wizard.execute(); }