mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-10 18:22:34 -05:00
* Improved behavior for accepting EULA. (#12453) * working version of overloading "select" button * promptForEula to use showErrorMessage * make parameter optional in promptForEula * remove test code * PR feedback * eula to EULA * minor fix * Fix compile error Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
This commit is contained in:
@@ -377,14 +377,14 @@ async function promptToUpdateAzdata(newVersion: string, userRequested: boolean =
|
||||
}
|
||||
|
||||
/**
|
||||
* Prompts user to accept EULA it if was not previously accepted. Stores and returns the user response to EULA prompt.
|
||||
* Prompts user to accept EULA. Stores and returns the user response to EULA prompt.
|
||||
* @param memento - memento where the user response is stored.
|
||||
* @param userRequested - if true this operation was requested in response to a user issued command, if false it was issued at startup by system
|
||||
* @param requireUserAction - if the prompt is required to be acted upon by the user. This is typically 'true' when this method is called to address an Error when the EULA needs to be accepted to proceed.
|
||||
* pre-requisite, the calling code has to ensure that the eula has not yet been previously accepted by the user.
|
||||
* returns true if the user accepted the EULA.
|
||||
*/
|
||||
|
||||
export async function promptForEula(memento: vscode.Memento, userRequested: boolean = false): Promise<boolean> {
|
||||
export async function promptForEula(memento: vscode.Memento, userRequested: boolean = false, requireUserAction: boolean = false): Promise<boolean> {
|
||||
let response: string | undefined = loc.no;
|
||||
const config = <AzdataDeployOption>getConfig(azdataAcceptEulaKey);
|
||||
if (userRequested) {
|
||||
@@ -397,7 +397,9 @@ export async function promptForEula(memento: vscode.Memento, userRequested: bool
|
||||
if (config === AzdataDeployOption.prompt || userRequested) {
|
||||
Logger.show();
|
||||
Logger.log(loc.promptForEulaLog(microsoftPrivacyStatementUrl, eulaUrl));
|
||||
response = await vscode.window.showInformationMessage(loc.promptForEula(microsoftPrivacyStatementUrl, eulaUrl), ...responses);
|
||||
response = requireUserAction
|
||||
? await vscode.window.showErrorMessage(loc.promptForEula(microsoftPrivacyStatementUrl, eulaUrl), ...responses)
|
||||
: await vscode.window.showInformationMessage(loc.promptForEula(microsoftPrivacyStatementUrl, eulaUrl), ...responses);
|
||||
Logger.log(loc.userResponseToEulaPrompt(response));
|
||||
}
|
||||
if (response === loc.doNotAskAgain) {
|
||||
|
||||
@@ -59,6 +59,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<azdata
|
||||
|
||||
return {
|
||||
isEulaAccepted: () => !!context.globalState.get<boolean>(constants.eulaAccepted),
|
||||
promptForEula: (onError: boolean = true): Promise<boolean> => promptForEula(context.globalState, true /* userRequested */, onError),
|
||||
azdata: {
|
||||
arc: {
|
||||
dc: {
|
||||
|
||||
13
extensions/azdata/src/typings/azdata-ext.d.ts
vendored
13
extensions/azdata/src/typings/azdata-ext.d.ts
vendored
@@ -240,6 +240,19 @@ declare module 'azdata-ext' {
|
||||
|
||||
export interface IExtension {
|
||||
azdata: IAzdataApi;
|
||||
|
||||
/**
|
||||
* returns true if AZDATA CLI EULA has been previously accepted by the user.
|
||||
*/
|
||||
isEulaAccepted(): boolean;
|
||||
|
||||
/**
|
||||
* Prompts user to accept EULA. Stores and returns the user response to EULA prompt.
|
||||
* @param requireUserAction - if the prompt is required to be acted upon by the user. This is typically 'true' when this method is called to address an Error when the EULA needs to be accepted to proceed.
|
||||
*
|
||||
* pre-requisite, the calling code has to ensure that the EULA has not yet been previously accepted by the user. The code can use @see isEulaAccepted() call to ascertain this.
|
||||
* returns true if the user accepted the EULA.
|
||||
*/
|
||||
promptForEula(requireUserAction?: boolean): Promise<boolean>
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user