mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-22 09:35:37 -05:00
* Initial check in for SQL migration SKU recommendation feature (#18116) Co-authored-by: Raymond Truong <ratruong@microsoft.com> * add TargetSelectionPage, remove AccountSelectionPage, fix saveAndClose bugs (#18092) * update sku interfaces (#18150) * create the skuRecommendationResultsDialog (#18151) * add TargetSelectionPage, remove AccountSelectionPage, fix saveAndClose bugs * create skuRecommendationResultsDialog * Replace placeholder SKU recommendation results with actual results (#18153) * Replace placeholder SKU recommendation results with actual backend call results * Remove skuRecommendationExample * Replace number fields in interfaces with correct enums, and update UI text * add getAzureRecommendationDialog for performance collection (#18159) * add getAzureRecommendationDialog when there are no recommendations available * update 'get azure rec' / 'view details' link values * add condition to check if recommendations are available * Implement start/stop perf data collection + import perf data into new UI (#18149) * Implement start/stop perf data collection * add getAzureRecommendationDialog when there are no recommendations available * update 'get azure rec' / 'view details' link values * add condition to check if recommendations are available * Implement import existing data + start/stop perf collection with new UI Co-authored-by: Rachel Kim <rackim@microsoft.com> * Expose SqlInstanceRequirements in SKU recommendation results (#18207) * Expose SqlInstanceRequirements * Move string literals to constants file * Fix formatting in mssql.d.ts * create storage properties table (#18215) * Edit sku recommendation parameters (#18244) * Edit sku recommendation parameters * make _targetPercentileDropdown not editable; styling updates * Azure recommendation section exposes data collection status and stop option (#18246) * Edit sku recommendation parameters * create azure recommendation details section on sku page * Improve error handling + add auto refresh + other small changes (#18228) * Update source properties table * WIP - refresh perf data collection * Add auto refresh logic * Address comments Co-authored-by: Rachel Kim <rackim@microsoft.com> * Show/hide azure recommendation components based on data collection source and status (#18254) * add refresh recommendation button; show/hide content based on perf collection status * show/hide azure rec content based on perf data source scenarios * add popups for start/stop; allow user to restart data collection; add perf collection to save close; add info tooltips (#18278) * Update SKU recommendation timer logic (#18281) * Update timer logic * Fix misc UI bugs * update sql migration extension readme (#18295) * Remove empty constant, as this may have broken the build * Fix 'save and close' behavior for SKU recommendation (#18301) * Update timer logic * Fix misc UI bugs * 'WIP' * Add logic to restore correct SKU recommendation state when reloading * SKU UX enhancements - status info, button validations, savedInfo logic (#18320) * add stop/inprogress status icons to perf collection status text, update restart icon * refactor savedInfo as an interface, edit parameter recommednations are saved, add open folder inputbox validation, handle no recommendations available scenario * fix getazureredialog bug, cleanup cold * nit card styling * Update recommendations whenever user changes list of databases to assess + misc clean up (#18323) * Consolidate constants, clean up redundant functions, misc clean up * Remove old SKU recommendation interfaces * Update some more strings * Telemetry events for SKU Recommendation (#18282) * Telemetry events for SKU Recommendation * Addressing comments - 1) fixed camel casing 2) removed extra logging to console 3) added telemetry for subid, rg, tenantid on targetselectionpage * Resolving conflicts * Addressing comments - 1) removing filename 2) moving all numbers to measurements. * Resolving comment - Fixing telemetry value for tenant id. * removing warning 'logError' is declared but its value is never read (#18333) * Stop existing data collection when leaving and starting a new migration + update timers (#18339) * Refresh recommendations when pressing stop data collection button * Fix orphaned data collection when save and closing and starting a new migration * Revert "Refresh recommendations when pressing stop data collection button" This reverts commit e6fb2ade8f8a41952adb81cb0ee852414dfa4ef2. * Update timers to use production values * Remove unused import * address bug bash issues: add learn more link, add last refreshed time, fix vm card view detail open issue, remember last selected folder, remove strings, refactor refresh logic on sku page (#18340) * Address comments * Update to sqltoolsservice 3.0.0-release.204 Co-authored-by: Rachel Kim <rackim@microsoft.com> Co-authored-by: Neetu Singh <23.neetu@gmail.com>
178 lines
6.7 KiB
TypeScript
178 lines
6.7 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as vscode from 'vscode';
|
|
|
|
export interface IconPath {
|
|
dark: string;
|
|
light: string;
|
|
}
|
|
|
|
export class IconPathHelper {
|
|
public static copy: IconPath;
|
|
public static discard: IconPath;
|
|
public static refresh: IconPath;
|
|
public static cutover: IconPath;
|
|
public static sqlMigrationLogo: IconPath;
|
|
public static sqlMiVideoThumbnail: IconPath;
|
|
public static sqlVmVideoThumbnail: IconPath;
|
|
public static migrationDashboardHeaderBackground: IconPath;
|
|
public static inProgressMigration: IconPath;
|
|
public static completedMigration: IconPath;
|
|
public static notStartedMigration: IconPath;
|
|
public static sqlVmLogo: IconPath;
|
|
public static sqlMiLogo: IconPath;
|
|
public static sqlServerLogo: IconPath;
|
|
public static sqlDatabaseLogo: IconPath;
|
|
public static sqlDatabaseWarningLogo: IconPath;
|
|
public static cancel: IconPath;
|
|
public static warning: IconPath;
|
|
public static info: IconPath;
|
|
public static error: IconPath;
|
|
public static completingCutover: IconPath;
|
|
public static migrationService: IconPath;
|
|
public static sendFeedback: IconPath;
|
|
public static expandButtonClosed: IconPath;
|
|
public static expandButtonOpen: IconPath;
|
|
public static newSupportRequest: IconPath;
|
|
public static emptyTable: IconPath;
|
|
public static addAzureAccount: IconPath;
|
|
public static retry: IconPath;
|
|
public static edit: IconPath;
|
|
public static restartDataCollection: IconPath;
|
|
public static stop: IconPath;
|
|
|
|
public static setExtensionContext(context: vscode.ExtensionContext) {
|
|
IconPathHelper.copy = {
|
|
light: context.asAbsolutePath('images/copy.svg'),
|
|
dark: context.asAbsolutePath('images/copy.svg')
|
|
};
|
|
IconPathHelper.discard = {
|
|
light: context.asAbsolutePath('images/discard.svg'),
|
|
dark: context.asAbsolutePath('images/discard.svg')
|
|
};
|
|
IconPathHelper.refresh = {
|
|
light: context.asAbsolutePath('images/refresh.svg'),
|
|
dark: context.asAbsolutePath('images/refresh.svg')
|
|
};
|
|
IconPathHelper.sqlMiVideoThumbnail = {
|
|
light: context.asAbsolutePath('images/sqlMiVideoThumbnail.svg'),
|
|
dark: context.asAbsolutePath('images/sqlMiVideoThumbnail.svg')
|
|
};
|
|
IconPathHelper.sqlVmVideoThumbnail = {
|
|
light: context.asAbsolutePath('images/sqlVmVideoThumbnail.svg'),
|
|
dark: context.asAbsolutePath('images/sqlVmVideoThumbnail.svg')
|
|
};
|
|
IconPathHelper.migrationDashboardHeaderBackground = {
|
|
light: context.asAbsolutePath('images/dashboardWatermark.svg'),
|
|
dark: context.asAbsolutePath('images/dashboardWatermark.svg')
|
|
};
|
|
IconPathHelper.sqlMigrationLogo = {
|
|
light: context.asAbsolutePath('images/migration.svg'),
|
|
dark: context.asAbsolutePath('images/migration.svg')
|
|
};
|
|
IconPathHelper.inProgressMigration = {
|
|
light: context.asAbsolutePath('images/inProgress.svg'),
|
|
dark: context.asAbsolutePath('images/inProgress.svg')
|
|
};
|
|
IconPathHelper.completedMigration = {
|
|
light: context.asAbsolutePath('images/succeeded.svg'),
|
|
dark: context.asAbsolutePath('images/succeeded.svg')
|
|
};
|
|
IconPathHelper.notStartedMigration = {
|
|
light: context.asAbsolutePath('images/notStarted.svg'),
|
|
dark: context.asAbsolutePath('images/notStarted.svg')
|
|
};
|
|
IconPathHelper.cutover = {
|
|
light: context.asAbsolutePath('images/cutover.svg'),
|
|
dark: context.asAbsolutePath('images/cutover.svg')
|
|
};
|
|
IconPathHelper.sqlMiLogo = {
|
|
light: context.asAbsolutePath('images/sqlMI.svg'),
|
|
dark: context.asAbsolutePath('images/sqlMI.svg')
|
|
};
|
|
IconPathHelper.sqlVmLogo = {
|
|
light: context.asAbsolutePath('images/sqlVM.svg'),
|
|
dark: context.asAbsolutePath('images/sqlVM.svg')
|
|
};
|
|
IconPathHelper.sqlServerLogo = {
|
|
light: context.asAbsolutePath('images/sqlServer.svg'),
|
|
dark: context.asAbsolutePath('images/sqlServer.svg')
|
|
};
|
|
IconPathHelper.sqlDatabaseLogo = {
|
|
light: context.asAbsolutePath('images/sqlDatabase.svg'),
|
|
dark: context.asAbsolutePath('images/sqlDatabase.svg')
|
|
};
|
|
IconPathHelper.sqlDatabaseWarningLogo = {
|
|
light: context.asAbsolutePath('images/sqlDatabaseWarning.svg'),
|
|
dark: context.asAbsolutePath('images/sqlDatabaseWarning.svg')
|
|
};
|
|
IconPathHelper.cancel = {
|
|
light: context.asAbsolutePath('images/cancel.svg'),
|
|
dark: context.asAbsolutePath('images/cancel.svg')
|
|
};
|
|
IconPathHelper.warning = {
|
|
light: context.asAbsolutePath('images/warning.svg'),
|
|
dark: context.asAbsolutePath('images/warning.svg')
|
|
};
|
|
IconPathHelper.info = {
|
|
light: context.asAbsolutePath('images/info.svg'),
|
|
dark: context.asAbsolutePath('images/info.svg')
|
|
};
|
|
IconPathHelper.error = {
|
|
light: context.asAbsolutePath('images/error.svg'),
|
|
dark: context.asAbsolutePath('images/error.svg')
|
|
};
|
|
IconPathHelper.completingCutover = {
|
|
light: context.asAbsolutePath('images/completingCutover.svg'),
|
|
dark: context.asAbsolutePath('images/completingCutover.svg')
|
|
};
|
|
IconPathHelper.migrationService = {
|
|
light: context.asAbsolutePath('images/migrationService.svg'),
|
|
dark: context.asAbsolutePath('images/migrationService.svg')
|
|
};
|
|
IconPathHelper.sendFeedback = {
|
|
light: context.asAbsolutePath('images/sendFeedback.svg'),
|
|
dark: context.asAbsolutePath('images/sendFeedback.svg')
|
|
};
|
|
IconPathHelper.expandButtonClosed = {
|
|
light: context.asAbsolutePath('images/expandButtonClosedLight.svg'),
|
|
dark: context.asAbsolutePath('images/expandButtonClosedDark.svg')
|
|
};
|
|
IconPathHelper.expandButtonOpen = {
|
|
light: context.asAbsolutePath('images/expandButtonOpenLight.svg'),
|
|
dark: context.asAbsolutePath('images/expandButtonOpenDark.svg')
|
|
};
|
|
IconPathHelper.newSupportRequest = {
|
|
light: context.asAbsolutePath('images/newSupportRequest.svg'),
|
|
dark: context.asAbsolutePath('images/newSupportRequest.svg')
|
|
};
|
|
IconPathHelper.emptyTable = {
|
|
light: context.asAbsolutePath('images/emptyTable.svg'),
|
|
dark: context.asAbsolutePath('images/emptyTable.svg')
|
|
};
|
|
IconPathHelper.addAzureAccount = {
|
|
light: context.asAbsolutePath('images/noAzureAccount.svg'),
|
|
dark: context.asAbsolutePath('images/noAzureAccount.svg')
|
|
};
|
|
IconPathHelper.retry = {
|
|
light: context.asAbsolutePath('images/retry.svg'),
|
|
dark: context.asAbsolutePath('images/retry.svg')
|
|
};
|
|
IconPathHelper.edit = {
|
|
light: context.asAbsolutePath('images/edit.svg'),
|
|
dark: context.asAbsolutePath('images/edit.svg')
|
|
};
|
|
IconPathHelper.restartDataCollection = {
|
|
light: context.asAbsolutePath('images/restartDataCollection.svg'),
|
|
dark: context.asAbsolutePath('images/restartDataCollection.svg')
|
|
};
|
|
IconPathHelper.stop = {
|
|
light: context.asAbsolutePath('images/stop.svg'),
|
|
dark: context.asAbsolutePath('images/stop.svg')
|
|
};
|
|
}
|
|
}
|