@@ -42,6 +42,7 @@ import { isAutomation } from '../vscode/env'
42
42
import { getOverriddenParameters } from '../../lambda/config/parameterUtils'
43
43
import { addTelemetryEnvVar } from './cli/samCliInvokerUtils'
44
44
import { samSyncUrl , samInitDocUrl } from '../constants'
45
+ import { getAwsConsoleUrl } from '../awsConsole'
45
46
46
47
const localize = nls . loadMessageBundle ( )
47
48
@@ -71,13 +72,22 @@ function createBucketPrompter(client: DefaultS3Client) {
71
72
72
73
return createQuickPick ( items , {
73
74
title : 'Select an S3 Bucket' ,
74
- placeholder : 'Filter or enter a new bucket name ' ,
75
+ placeholder : 'Select a bucket ( or enter a name to create one) ' ,
75
76
buttons : createCommonButtons ( samSyncUrl ) ,
76
77
filterBoxInputSettings : {
77
78
label : 'Create a New Bucket' ,
78
79
// This is basically a hack. I need to refactor `createQuickPick` a bit.
79
80
transform : v => prefixNewBucketName ( v ) ,
80
81
} ,
82
+ noItemsFoundItem : {
83
+ label : localize (
84
+ 'aws.cfn.noStacks' ,
85
+ 'No S3 buckets for region "{0}". Enter a name to create a new one.' ,
86
+ client . regionCode
87
+ ) ,
88
+ data : undefined ,
89
+ onClick : undefined ,
90
+ } ,
81
91
} )
82
92
}
83
93
@@ -87,6 +97,7 @@ const canShowStack = (s: StackSummary) =>
87
97
88
98
function createStackPrompter ( client : DefaultCloudFormationClient ) {
89
99
const recentStack = getRecentResponse ( client . regionCode , 'stackName' )
100
+ const consoleUrl = getAwsConsoleUrl ( 'cloudformation' , client . regionCode )
90
101
const items = client . listAllStacks ( ) . map ( stacks =>
91
102
stacks . filter ( canShowStack ) . map ( s => ( {
92
103
label : s . StackName ,
@@ -99,17 +110,27 @@ function createStackPrompter(client: DefaultCloudFormationClient) {
99
110
100
111
return createQuickPick ( items , {
101
112
title : 'Select a CloudFormation Stack' ,
102
- placeholder : 'Filter or enter a new stack name ' ,
113
+ placeholder : 'Select a stack ( or enter a name to create one) ' ,
103
114
filterBoxInputSettings : {
104
115
label : 'Create a New Stack' ,
105
116
transform : v => v ,
106
117
} ,
107
- buttons : createCommonButtons ( samSyncUrl ) ,
118
+ buttons : createCommonButtons ( samSyncUrl , consoleUrl ) ,
119
+ noItemsFoundItem : {
120
+ label : localize (
121
+ 'aws.cfn.noStacks' ,
122
+ 'No stacks in region "{0}". Enter a name to create a new one.' ,
123
+ client . regionCode
124
+ ) ,
125
+ data : undefined ,
126
+ onClick : undefined ,
127
+ } ,
108
128
} )
109
129
}
110
130
111
131
function createEcrPrompter ( client : DefaultEcrClient ) {
112
132
const recentEcrRepo = getRecentResponse ( client . regionCode , 'ecrRepoUri' )
133
+ const consoleUrl = getAwsConsoleUrl ( 'ecr' , client . regionCode )
113
134
const items = client . listAllRepositories ( ) . map ( list =>
114
135
list . map ( repo => ( {
115
136
label : repo . repositoryName ,
@@ -121,12 +142,21 @@ function createEcrPrompter(client: DefaultEcrClient) {
121
142
122
143
return createQuickPick ( items , {
123
144
title : 'Select an ECR Repository' ,
124
- placeholder : 'Filter or enter an existing repository URI' ,
125
- buttons : createCommonButtons ( samSyncUrl ) ,
145
+ placeholder : 'Select a repository ( or enter repository URI) ' ,
146
+ buttons : createCommonButtons ( samSyncUrl , consoleUrl ) ,
126
147
filterBoxInputSettings : {
127
148
label : 'Existing repository URI' ,
128
149
transform : v => v ,
129
150
} ,
151
+ noItemsFoundItem : {
152
+ label : localize (
153
+ 'aws.ecr.noRepos' ,
154
+ 'No ECR repositories in region "{0}". Enter a name to create a new one.' ,
155
+ client . regionCode
156
+ ) ,
157
+ data : undefined ,
158
+ onClick : undefined ,
159
+ } ,
130
160
} )
131
161
}
132
162
@@ -141,6 +171,7 @@ export function createEnvironmentPrompter(config: SamConfig, environments = conf
141
171
142
172
return createQuickPick ( items , {
143
173
title : 'Select an Environment to Use' ,
174
+ placeholder : 'Select an environment' ,
144
175
buttons : createCommonButtons ( samSyncUrl ) ,
145
176
} )
146
177
}
0 commit comments