提交 7e9474ed 编写于 作者: R Ramya Achutha Rao

Run extension queries in sections only if applicable

上级 d96cf918
......@@ -144,6 +144,12 @@ export class ExtensionsListView extends ViewletPanel {
return this.list.length;
}
protected showEmptyModel(): TPromise<IPagedModel<IExtension>> {
const emptyModel = new PagedModel([]);
this.setModel(emptyModel);
return TPromise.as(emptyModel);
}
private async query(value: string): Promise<IPagedModel<IExtension>> {
const query = Query.parse(value);
......@@ -686,42 +692,41 @@ export class GroupByServerExtensionsView extends ExtensionsListView {
}
export class EnabledExtensionsView extends ExtensionsListView {
private readonly enabledExtensionsQuery = '@enabled';
async show(query: string): Promise<IPagedModel<IExtension>> {
return super.show('@enabled');
return (query && query.trim() !== this.enabledExtensionsQuery) ? this.showEmptyModel() : super.show(this.enabledExtensionsQuery);
}
}
export class DisabledExtensionsView extends ExtensionsListView {
private readonly disabledExtensionsQuery = '@disabled';
async show(query: string): Promise<IPagedModel<IExtension>> {
return super.show('@disabled');
return (query && query.trim() !== this.disabledExtensionsQuery) ? this.showEmptyModel() : super.show(this.disabledExtensionsQuery);
}
}
export class BuiltInExtensionsView extends ExtensionsListView {
async show(query: string): Promise<IPagedModel<IExtension>> {
return super.show(query.replace('@builtin', '@builtin:features'));
return (query && query.trim() !== '@builtin') ? this.showEmptyModel() : super.show('@builtin:features');
}
}
export class BuiltInThemesExtensionsView extends ExtensionsListView {
async show(query: string): Promise<IPagedModel<IExtension>> {
return super.show(query.replace('@builtin', '@builtin:themes'));
return (query && query.trim() !== '@builtin') ? this.showEmptyModel() : super.show('@builtin:themes');
}
}
export class BuiltInBasicsExtensionsView extends ExtensionsListView {
async show(query: string): Promise<IPagedModel<IExtension>> {
return super.show(query.replace('@builtin', '@builtin:basics'));
return (query && query.trim() !== '@builtin') ? this.showEmptyModel() : super.show('@builtin:basics');
}
}
export class DefaultRecommendedExtensionsView extends ExtensionsListView {
private readonly recommendedExtensionsQuery = '@recommended:all';
renderBody(container: HTMLElement): void {
super.renderBody(container);
......@@ -732,13 +737,13 @@ export class DefaultRecommendedExtensionsView extends ExtensionsListView {
}
async show(query: string): Promise<IPagedModel<IExtension>> {
return super.show('@recommended:all');
return (query && query.trim() !== this.recommendedExtensionsQuery) ? this.showEmptyModel() : super.show(this.recommendedExtensionsQuery);
}
}
export class RecommendedExtensionsView extends ExtensionsListView {
private readonly recommendedExtensionsQuery = '@recommended';
renderBody(container: HTMLElement): void {
super.renderBody(container);
......@@ -749,12 +754,12 @@ export class RecommendedExtensionsView extends ExtensionsListView {
}
async show(query: string): Promise<IPagedModel<IExtension>> {
return super.show('@recommended');
return (query && query.trim() !== this.recommendedExtensionsQuery) ? this.showEmptyModel() : super.show(this.recommendedExtensionsQuery);
}
}
export class WorkspaceRecommendedExtensionsView extends ExtensionsListView {
private readonly recommendedExtensionsQuery = '@recommended:workspace';
private installAllAction: InstallWorkspaceRecommendedExtensionsAction;
renderBody(container: HTMLElement): void {
......@@ -788,14 +793,14 @@ export class WorkspaceRecommendedExtensionsView extends ExtensionsListView {
this.disposables.push(...[this.installAllAction, configureWorkspaceFolderAction, actionbar]);
}
async show(): Promise<IPagedModel<IExtension>> {
let model = await super.show('@recommended:workspace');
async show(query: string): Promise<IPagedModel<IExtension>> {
let model = await ((query && query.trim() !== '@recommended') ? this.showEmptyModel() : super.show(this.recommendedExtensionsQuery));
this.setExpanded(model.length > 0);
return model;
}
private update(): void {
this.show();
this.show(this.recommendedExtensionsQuery);
this.setRecommendationsToInstall();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册