mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
Add new help articles to sql migration dashboard (#18240)
* add new articles to help section * Update extensions/sql-migration/src/dashboard/sqlServerDashboard.ts * fix typo, remove link * remove locale in links Co-authored-by: Mohamed Kabiruddin <39162740+mokabiru@users.noreply.github.com>
This commit is contained in:
@@ -33,7 +33,7 @@ The following migration modes are supported for the corresponding Azure SQL targ
|
|||||||
|
|
||||||
|
|
||||||
## Need assistance or have questions/feedback
|
## Need assistance or have questions/feedback
|
||||||
Refer to [Get help from Microsoft support](https://docs.microsoft.com/en-us/sql/azure-data-studio/extensions/azure-sql-migration-extension#get-help-from-microsoft-support).
|
Refer to [Get help from Microsoft support](https://docs.microsoft.com/sql/azure-data-studio/extensions/azure-sql-migration-extension#get-help-from-microsoft-support).
|
||||||
|
|
||||||
|
|
||||||
## Code of Conduct
|
## Code of Conduct
|
||||||
|
|||||||
@@ -309,8 +309,6 @@ export const DASHBOARD_DESCRIPTION = localize('sql.migration.dashboard.descripti
|
|||||||
export const DASHBOARD_MIGRATE_TASK_BUTTON_TITLE = localize('sql.migration.dashboard.migrate.task.button', "Migrate to Azure SQL");
|
export const DASHBOARD_MIGRATE_TASK_BUTTON_TITLE = localize('sql.migration.dashboard.migrate.task.button', "Migrate to Azure SQL");
|
||||||
export const DASHBOARD_MIGRATE_TASK_BUTTON_DESCRIPTION = localize('sql.migration.dashboard.migrate.task.button.description', "Migrate a SQL Server instance to Azure SQL.");
|
export const DASHBOARD_MIGRATE_TASK_BUTTON_DESCRIPTION = localize('sql.migration.dashboard.migrate.task.button.description', "Migrate a SQL Server instance to Azure SQL.");
|
||||||
export const DATABASE_MIGRATION_STATUS = localize('sql.migration.database.migration.status', "Database migration status");
|
export const DATABASE_MIGRATION_STATUS = localize('sql.migration.database.migration.status', "Database migration status");
|
||||||
export const HELP_LINK1_TITLE = localize('sql.migration.dashboard.link1.title', "Assessment rules for Azure SQL Managed Instance");
|
|
||||||
export const HELP_LINK1_DESCRIPTION = localize('sql.migration.dashboard.link1.description', "Assessment rules used to determine the feasibility of migrating your SQL Server instance to Azure SQL Managed Instance.");
|
|
||||||
export const HELP_TITLE = localize('sql.migration.dashboard.help.title', "Help articles and video links");
|
export const HELP_TITLE = localize('sql.migration.dashboard.help.title', "Help articles and video links");
|
||||||
export const PRE_REQ_TITLE = localize('sql.migration.pre.req.title', "Things you need before starting a migration:");
|
export const PRE_REQ_TITLE = localize('sql.migration.pre.req.title', "Things you need before starting a migration:");
|
||||||
export const PRE_REQ_1 = localize('sql.migration.pre.req.1', "Azure account details");
|
export const PRE_REQ_1 = localize('sql.migration.pre.req.1', "Azure account details");
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import { MigrationStatusDialog } from '../dialog/migrationStatus/migrationStatus
|
|||||||
import { AdsMigrationStatus } from '../dialog/migrationStatus/migrationStatusDialogModel';
|
import { AdsMigrationStatus } from '../dialog/migrationStatus/migrationStatusDialogModel';
|
||||||
import { filterMigrations, SupportedAutoRefreshIntervals } from '../api/utils';
|
import { filterMigrations, SupportedAutoRefreshIntervals } from '../api/utils';
|
||||||
import * as styles from '../constants/styles';
|
import * as styles from '../constants/styles';
|
||||||
|
import * as nls from 'vscode-nls';
|
||||||
|
const localize = nls.loadMessageBundle();
|
||||||
|
|
||||||
interface IActionMetadata {
|
interface IActionMetadata {
|
||||||
title?: string,
|
title?: string,
|
||||||
@@ -448,7 +450,7 @@ export class DashboardWidget {
|
|||||||
const statusContainer = view.modelBuilder.flexContainer().withLayout({
|
const statusContainer = view.modelBuilder.flexContainer().withLayout({
|
||||||
flexFlow: 'column',
|
flexFlow: 'column',
|
||||||
width: '400px',
|
width: '400px',
|
||||||
height: '350px',
|
height: '360px',
|
||||||
justifyContent: 'flex-start',
|
justifyContent: 'flex-start',
|
||||||
}).withProps({
|
}).withProps({
|
||||||
CSSStyles: {
|
CSSStyles: {
|
||||||
@@ -688,12 +690,13 @@ export class DashboardWidget {
|
|||||||
const linksContainer = view.modelBuilder.flexContainer().withLayout({
|
const linksContainer = view.modelBuilder.flexContainer().withLayout({
|
||||||
flexFlow: 'column',
|
flexFlow: 'column',
|
||||||
width: '400px',
|
width: '400px',
|
||||||
height: '350px',
|
height: '360px',
|
||||||
justifyContent: 'flex-start',
|
justifyContent: 'flex-start',
|
||||||
}).withProps({
|
}).withProps({
|
||||||
CSSStyles: {
|
CSSStyles: {
|
||||||
'border': '1px solid rgba(0, 0, 0, 0.1)',
|
'border': '1px solid rgba(0, 0, 0, 0.1)',
|
||||||
'padding': '16px'
|
'padding': '16px',
|
||||||
|
'overflow': 'scroll',
|
||||||
}
|
}
|
||||||
}).component();
|
}).component();
|
||||||
const titleComponent = view.modelBuilder.text().withProps({
|
const titleComponent = view.modelBuilder.text().withProps({
|
||||||
@@ -709,24 +712,38 @@ export class DashboardWidget {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const links = [{
|
const links = [
|
||||||
title: loc.HELP_LINK1_TITLE,
|
{
|
||||||
description: loc.HELP_LINK1_DESCRIPTION,
|
title: localize('sql.migration.dashboard.help.link.migrateUsingADS', 'Migrate databases using Azure Data Studio'),
|
||||||
link: 'https://docs.microsoft.com/azure/azure-sql/migration-guides/managed-instance/sql-server-to-sql-managed-instance-assessment-rules'
|
description: localize('sql.migration.dashboard.help.description.migrateUsingADS', 'The Azure SQL Migration extension for Azure Data Studio provides capabilities to assess, get right-sized Azure recommendations and migrate SQL Server databases to Azure.'),
|
||||||
}];
|
link: 'https://docs.microsoft.com/azure/dms/migration-using-azure-data-studio'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: localize('sql.migration.dashboard.help.link.mi', 'Tutorial: Migrate to Azure SQL Managed Instance (online)'),
|
||||||
|
description: localize('sql.migration.dashboard.help.description.mi', 'A step-by-step tutorial to migrate databases from a SQL Server instance (on-premises or Azure Virtual Machines) to Azure SQL Managed Instance with minimal downtime.'),
|
||||||
|
link: 'https://docs.microsoft.com/azure/dms/tutorial-sql-server-managed-instance-online-ads'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: localize('sql.migration.dashboard.help.link.vm', 'Tutorial: Migrate to SQL Server on Azure Virtual Machines (online)'),
|
||||||
|
description: localize('sql.migration.dashboard.help.description.vm', 'A step-by-step tutorial to migrate databases from a SQL Server instance (on-premises) to SQL Server on Azure Virtual Machines with minimal downtime.'),
|
||||||
|
link: 'https://docs.microsoft.com/azure/dms/tutorial-sql-server-to-virtual-machine-online-ads'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: localize('sql.migration.dashboard.help.link.dmsGuide', 'Azure Database Migration Guides'),
|
||||||
|
description: localize('sql.migration.dashboard.help.description.dmsGuide', 'A hub of migration articles that provides step-by-step guidance for migrating and modernizing your data assets in Azure.'),
|
||||||
|
link: 'https://docs.microsoft.com/data-migration/'
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
linksContainer.addItems(links.map(l => this.createLink(view, l)), {
|
linksContainer.addItems(links.map(l => this.createLink(view, l)), {});
|
||||||
CSSStyles: {
|
|
||||||
'margin-bottom': '8px'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const videosContainer = this.createVideoLinkContainers(view, []);
|
const videoLinks: IActionMetadata[] = [];
|
||||||
linksContainer.addItem(videosContainer, {
|
const videosContainer = view.modelBuilder.flexContainer().withLayout({
|
||||||
CSSStyles: {
|
flexFlow: 'row',
|
||||||
'margin-bottom': '8px'
|
width: maxWidth,
|
||||||
}
|
}).component();
|
||||||
});
|
videosContainer.addItems(videoLinks.map(l => this.createVideoLink(view, l)), {});
|
||||||
|
linksContainer.addItem(videosContainer);
|
||||||
|
|
||||||
return linksContainer;
|
return linksContainer;
|
||||||
}
|
}
|
||||||
@@ -737,13 +754,14 @@ export class DashboardWidget {
|
|||||||
CSSStyles: {
|
CSSStyles: {
|
||||||
'flex-direction': 'column',
|
'flex-direction': 'column',
|
||||||
'width': `${maxWidth}px`,
|
'width': `${maxWidth}px`,
|
||||||
'justify-content': 'flex-start'
|
'justify-content': 'flex-start',
|
||||||
|
'margin-bottom': '12px'
|
||||||
}
|
}
|
||||||
}).component();
|
}).component();
|
||||||
const linkContainer = view.modelBuilder.flexContainer().withProps({
|
const linkContainer = view.modelBuilder.flexContainer().withProps({
|
||||||
CSSStyles: {
|
CSSStyles: {
|
||||||
'flex-direction': 'row',
|
'flex-direction': 'row',
|
||||||
'width': `${maxWidth + 10}px`,
|
'width': `${maxWidth}px`,
|
||||||
'justify-content': 'flex-start',
|
'justify-content': 'flex-start',
|
||||||
'margin-bottom': '4px'
|
'margin-bottom': '4px'
|
||||||
}
|
}
|
||||||
@@ -769,19 +787,6 @@ export class DashboardWidget {
|
|||||||
return labelsContainer;
|
return labelsContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
private createVideoLinkContainers(view: azdata.ModelView, links: IActionMetadata[]): azdata.Component {
|
|
||||||
const maxWidth = 400;
|
|
||||||
const videosContainer = view.modelBuilder.flexContainer().withLayout({
|
|
||||||
flexFlow: 'row',
|
|
||||||
width: maxWidth,
|
|
||||||
}).component();
|
|
||||||
links.forEach(link => {
|
|
||||||
const videoContainer = this.createVideoLink(view, link);
|
|
||||||
videosContainer.addItem(videoContainer);
|
|
||||||
});
|
|
||||||
return videosContainer;
|
|
||||||
}
|
|
||||||
|
|
||||||
private createVideoLink(view: azdata.ModelView, linkMetaData: IActionMetadata): azdata.Component {
|
private createVideoLink(view: azdata.ModelView, linkMetaData: IActionMetadata): azdata.Component {
|
||||||
const maxWidth = 150;
|
const maxWidth = 150;
|
||||||
const videosContainer = view.modelBuilder.flexContainer().withLayout({
|
const videosContainer = view.modelBuilder.flexContainer().withLayout({
|
||||||
|
|||||||
Reference in New Issue
Block a user