table column with iconcss (#13056)

This commit is contained in:
Vladimir Chernov
2020-10-31 02:23:38 +03:00
committed by GitHub
parent 2f571d868b
commit da6f800f11
11 changed files with 168 additions and 41 deletions

View File

@@ -28,20 +28,47 @@ export class AssessmentResultGrid implements vscode.Disposable {
private descriptionCaption!: azdata.TextComponent;
private asmtType!: AssessmentType;
private targetTypeIcon: { [targetType: number]: azdata.IconColumnCellValue };
private readonly checkIdColOrder = 4;
private readonly targetColOrder = 0;
private readonly checkIdColOrder = 5;
private readonly targetColOrder = 1;
public get component(): azdata.Component {
return this.rootContainer;
}
public constructor(view: azdata.ModelView) {
public constructor(view: azdata.ModelView, extensionContext: vscode.ExtensionContext) {
const headerCssClass = 'no-borders align-with-header';
this.targetTypeIcon = {
[azdata.sqlAssessment.SqlAssessmentTargetType.Database]: {
icon: {
dark: extensionContext.asAbsolutePath('resources/dark/database.svg'),
light: extensionContext.asAbsolutePath('resources/light/database.svg')
},
ariaLabel: localize('databaseIconLabel', "Database Icon")
},
[azdata.sqlAssessment.SqlAssessmentTargetType.Server]: {
icon: {
dark: extensionContext.asAbsolutePath('resources/dark/server.svg'),
light: extensionContext.asAbsolutePath('resources/light/server.svg')
},
ariaLabel: localize('serverIconLabel', "Server Icon")
}
};
this.table = view.modelBuilder.table()
.withProperties<azdata.TableComponentProperties>({
data: [],
columns: [
{
value: 'targetType',
name: '',
type: azdata.ColumnType.icon,
width: 10,
headerCssClass: headerCssClass,
toolTip: localize('asmt.column.targetType', "Target Type"),
},
{ value: LocalizedStrings.TARGET_COLUMN_NAME, headerCssClass: headerCssClass, width: 125 },
{ value: LocalizedStrings.SEVERITY_COLUMN_NAME, headerCssClass: headerCssClass, width: 100 },
{ value: LocalizedStrings.MESSAGE_COLUMN_NAME, headerCssClass: headerCssClass, width: 900 },
@@ -250,6 +277,7 @@ export class AssessmentResultGrid implements vscode.Disposable {
private convertToDataView(asmtResult: azdata.SqlAssessmentResultItem): any[] {
return [
this.targetTypeIcon[asmtResult.targetType],
asmtResult.targetName,
asmtResult.level,
this.asmtType === AssessmentType.InvokeAssessment ? asmtResult.message : asmtResult.displayName,

View File

@@ -131,7 +131,7 @@ export class AssessmentEngine {
let databaseListRequest = azdata.connection.listDatabases(this.connectionProfile.connectionId);
let assessmentResult: azdata.SqlAssessmentResult;
if (AssessmentType.InvokeAssessment) {
if (asmtType === AssessmentType.InvokeAssessment) {
TelemetryReporter.sendActionEvent(SqlAssessmentTelemetryView, SqlTelemetryActions.InvokeServerAssessment);
assessmentResult = await this.sqlAssessment.assessmentInvoke(this.connectionUri, azdata.sqlAssessment.SqlAssessmentTargetType.Server);

View File

@@ -74,7 +74,7 @@ export class SqlAssessmentMainTab extends SqlAssessmentTab {
}
});
this.resultGrid = new AssessmentResultGrid(view);
this.resultGrid = new AssessmentResultGrid(view, this.extensionContext);
rootContainer.addItem(this.resultGrid.component, {
flex: '1 1 auto',
CSSStyles: {

View File

@@ -80,7 +80,7 @@ export class SqlAssessmentHistoryTab extends SqlAssessmentTab {
root.clearItems();
this.resultGrid = new AssessmentResultGrid(view);
this.resultGrid = new AssessmentResultGrid(view, this.extensionContext);
this.toDispose.push(this.resultGrid);
await view.initializeModel(title);