@@ -5,37 +5,53 @@ export type SettingsPackageTrust = {
5
5
[ key : string ] : InstallPermissionEnum . AlwaysAllow | InstallPermissionEnum . AlwaysAsk ;
6
6
} ;
7
7
8
- export const ALWAYS_ALLOW = 'Always allow installs ' ;
9
- export const ALWAYS_ASK = 'Always ask before installing ' ;
8
+ export const ALWAYS_ALLOW = 'Always allow' ;
9
+ export const ALWAYS_ASK = 'Ask every time ' ;
10
10
export const INSTALL_NO_CONFIGURE = 'Install without configuring permissions' ;
11
11
12
12
export const YES_INSTALL = 'Yes, Install' ;
13
13
export const NO_INSTALL = 'Do Not Install' ;
14
14
15
- export function promptForInstallPermissions ( extensionName : string , packages : string ) : Thenable < InstallPermissionEnum > {
15
+ export function promptForInstallPermissions (
16
+ extensionName : string ,
17
+ packages : string [ ] ,
18
+ ) : Thenable < InstallPermissionEnum > {
19
+ const extName = extensionName . split ( '.' ) [ 1 ] ;
20
+ if ( packages . length < 1 ) {
21
+ return Promise . reject ( 'No packages to install.' ) ;
22
+ }
23
+ let detailStr = `'${ extensionName } ' wants to install the package '${ packages [ 0 ] } '.` ;
24
+ if ( packages . length > 1 ) {
25
+ detailStr = `'${ extensionName } ' wants to install packages '${ packages . join ( ', ' ) } '.` ;
26
+ }
27
+ detailStr = `Set permissions for this and future package installations from '${ extensionName } '.` ;
16
28
return new Promise ( ( resolve ) => {
17
29
window
18
30
. showInformationMessage (
19
- 'Would you like to set permissions for future package installs from the ' + extensionName + ' extension?' ,
31
+ `Allow extension ' ${ extName } ' to install packages?` ,
20
32
{
21
- detail : `package/s: " ${ packages } "` ,
33
+ detail : detailStr ,
22
34
modal : true ,
23
35
} ,
24
36
ALWAYS_ASK ,
25
37
ALWAYS_ALLOW ,
26
- INSTALL_NO_CONFIGURE ,
27
38
)
28
39
. then ( ( selectedOption ) => {
29
40
switch ( selectedOption ) {
30
41
case ALWAYS_ALLOW :
42
+ window . showInformationMessage (
43
+ `${ extName } extension installed ${ packages . join ( ', ' ) } package and is always allowed to install in the future.` ,
44
+ 'Configure'
45
+ ) . then ( ( selection ) => {
46
+ if ( selection === 'Configure' ) {
47
+ // Add logic to open the configuration settings
48
+ }
49
+ } ) ;
31
50
resolve ( InstallPermissionEnum . AlwaysAllow ) ;
32
51
break ;
33
52
case ALWAYS_ASK :
34
53
resolve ( InstallPermissionEnum . AlwaysAsk ) ;
35
54
break ;
36
- case INSTALL_NO_CONFIGURE :
37
- resolve ( InstallPermissionEnum . InstallNoConfigure ) ;
38
- break ;
39
55
default :
40
56
resolve ( InstallPermissionEnum . Cancel ) ;
41
57
break ;
@@ -44,13 +60,21 @@ export function promptForInstallPermissions(extensionName: string, packages: str
44
60
} ) ;
45
61
}
46
62
47
- export function promptForAlwaysAsk ( extensionName : string , packages : string ) : Thenable < string | undefined > {
63
+ export function promptForAlwaysAsk ( extensionName : string , packages : string [ ] ) : Thenable < string | undefined > {
64
+ const extName = extensionName . split ( '.' ) [ 1 ] ;
65
+ if ( packages . length < 1 ) {
66
+ return Promise . reject ( 'No packages to install.' ) ;
67
+ }
68
+ let detailStr = `${ extName } wants to install '${ packages [ 0 ] } ' package.` ;
69
+ if ( packages . length > 1 ) {
70
+ detailStr = `${ extName } wants to install '${ packages . join ( ', ' ) } ' packages.` ;
71
+ }
48
72
return new Promise ( ( resolve ) => {
49
73
window
50
74
. showInformationMessage (
51
- 'Do you want to install the following package/s from the ' + extensionName + ' extension?' ,
75
+ `Allow ${ extName } to Install Packages?` ,
52
76
{
53
- detail : `package/s: " ${ packages } "` ,
77
+ detail : detailStr ,
54
78
modal : true ,
55
79
} ,
56
80
YES_INSTALL ,
0 commit comments