mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-01 09:35:41 -05:00
[Sql Migration] Stabilize save and close logic and fix related ux bugs (#18579)
* add loadSavedInfo function in stateMachine; only open wizard if didLoadSavedInfo * * add loadSavedInfo function in stateMachine; only open wizard if didLoadSavedInfo * replaced savedInfo.miggrationServiceId string with sqlMigrationServer object * selectDatbasesFromList helper function to check previously selected dbs in dbSelectorPage and sqlDatabaseTree * * remove savedInfo references from targetSelectionPage, migrationModePage * add selectDefaultDropdownValue helper to stateMachine to handle unify savedInfo selection logic * add updateDropdownLoadingStatus to targetSelectionPage * check if values exist before making api calls in statemachine * removed savedInfo references from databaseBackupPage, integrationRuntimePage * databaseBackupPage - targetDatabaseNames, networkShares, blobs need to rely on savedInfo as user may update the list of migrationdbs during the retry/saveAndClose * re-add serverAssessments to savedInfo; only getAssessments if it does not exist or needs to be updated; fix networkShare type savedInfo * rename _assessmentDbs to _databasesForAssessment; _migrationDbs to _databasesForMigration * load blobs/networkshares savedinfo; move selectDefaultDropdownValue to utils * fix selectDefaultDropdownValue; refreshDatabaseBackupPage when user changes target subscription or location
This commit is contained in:
@@ -146,6 +146,15 @@ export function convertIsoTimeToLocalTime(isoTime: string): Date {
|
||||
|
||||
export type SupportedAutoRefreshIntervals = -1 | 15000 | 30000 | 60000 | 180000 | 300000;
|
||||
|
||||
export function selectDefaultDropdownValue(dropDown: DropDownComponent, value?: string, useDisplayName: boolean = true): void {
|
||||
const selectedIndex = value ? findDropDownItemIndex(dropDown, value, useDisplayName) : -1;
|
||||
if (selectedIndex > -1) {
|
||||
selectDropDownIndex(dropDown, selectedIndex);
|
||||
} else {
|
||||
selectDropDownIndex(dropDown, 0);
|
||||
}
|
||||
}
|
||||
|
||||
export function selectDropDownIndex(dropDown: DropDownComponent, index: number): void {
|
||||
if (index >= 0 && dropDown.values && index <= dropDown.values.length - 1) {
|
||||
const value = dropDown.values[index];
|
||||
@@ -153,10 +162,15 @@ export function selectDropDownIndex(dropDown: DropDownComponent, index: number):
|
||||
}
|
||||
}
|
||||
|
||||
export function findDropDownItemIndex(dropDown: DropDownComponent, value: string): number {
|
||||
export function findDropDownItemIndex(dropDown: DropDownComponent, value: string, useDisplayName: boolean = true): number {
|
||||
if (dropDown.values) {
|
||||
return dropDown.values.findIndex((v: any) =>
|
||||
(v as CategoryValue)?.displayName?.toLowerCase() === value?.toLowerCase());
|
||||
if (useDisplayName) {
|
||||
return dropDown.values.findIndex((v: any) =>
|
||||
(v as CategoryValue)?.displayName?.toLowerCase() === value?.toLowerCase());
|
||||
} else {
|
||||
return dropDown.values.findIndex((v: any) =>
|
||||
(v as CategoryValue)?.name?.toLowerCase() === value?.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user