mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
fix search box issue (#15097)
* fix search box issue * fix compilation error
This commit is contained in:
@@ -99,6 +99,8 @@
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
width: 200px;
|
width: 200px;
|
||||||
align-content: flex-start;
|
align-content: flex-start;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slick-header-menu .filter .filter-option {
|
.slick-header-menu .filter .filter-option {
|
||||||
|
|||||||
@@ -139,12 +139,12 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
.appendTo($item);
|
.appendTo($item);
|
||||||
}
|
}
|
||||||
|
|
||||||
private addMenuInput(menu: JQuery<HTMLElement>, columnDef: Slick.Column<T>) {
|
private addMenuInput(menu: JQuery<HTMLElement>, columnDef: Slick.Column<T>): void {
|
||||||
const self = this;
|
const self = this;
|
||||||
jQuery('<input class="input" placeholder="Search" style="margin-top: 5px; width: 206px">')
|
jQuery('<input class="input" placeholder="Search" style="margin-top: 5px; width: 206px">')
|
||||||
.data('column', columnDef)
|
.data('column', columnDef)
|
||||||
.bind('keyup', (e) => {
|
.bind('keyup', async (e) => {
|
||||||
const filterVals = this.getFilterValuesByInput(jQuery(e.target));
|
const filterVals = await this.getFilterValuesByInput(jQuery(e.target));
|
||||||
self.updateFilterInputs(menu, columnDef, filterVals);
|
self.updateFilterInputs(menu, columnDef, filterVals);
|
||||||
})
|
})
|
||||||
.appendTo(menu);
|
.appendTo(menu);
|
||||||
@@ -375,14 +375,20 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
return Array.from(seen);
|
return Array.from(seen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private getFilterValuesByInput($input: JQuery<HTMLElement>): Array<string> {
|
private async getFilterValuesByInput($input: JQuery<HTMLElement>): Promise<Array<string>> {
|
||||||
const column = $input.data('column'),
|
const column = $input.data('column'),
|
||||||
filter = $input.val() as string,
|
filter = $input.val() as string,
|
||||||
dataView = this.grid.getData() as Slick.DataProvider<T>,
|
dataView = this.grid.getData() as IDisposableDataProvider<T>,
|
||||||
seen: Set<any> = new Set();
|
seen: Set<any> = new Set();
|
||||||
|
|
||||||
dataView.getItems().forEach(item => {
|
let columnValues: any[];
|
||||||
const value = item[column.field];
|
if (dataView.getColumnValues) {
|
||||||
|
columnValues = await dataView.getColumnValues(this.columnDef);
|
||||||
|
} else {
|
||||||
|
columnValues = dataView.getItems().map(item => item[column.field]);
|
||||||
|
}
|
||||||
|
|
||||||
|
columnValues.forEach(value => {
|
||||||
const valueArr = value instanceof Array ? value : [(!value ? '' : value)];
|
const valueArr = value instanceof Array ? value : [(!value ? '' : value)];
|
||||||
if (filter.length > 0) {
|
if (filter.length > 0) {
|
||||||
const lowercaseFilter = filter.toString().toLowerCase();
|
const lowercaseFilter = filter.toString().toLowerCase();
|
||||||
@@ -399,7 +405,7 @@ export class HeaderFilter<T extends Slick.SlickData> {
|
|||||||
return Array.from(seen).sort((v) => { return v; });
|
return Array.from(seen).sort((v) => { return v; });
|
||||||
}
|
}
|
||||||
|
|
||||||
private getAllFilterValues(data: Array<Slick.SlickData>, column: Slick.Column<T>) {
|
private getAllFilterValues(data: Array<T>, column: Slick.Column<T>) {
|
||||||
const seen: Set<any> = new Set();
|
const seen: Set<any> = new Set();
|
||||||
|
|
||||||
data.forEach(items => {
|
data.forEach(items => {
|
||||||
|
|||||||
@@ -586,7 +586,7 @@ export class AsmtResultsViewComponent extends TabChild implements IAssessmentCom
|
|||||||
return seen.sort((v) => { return v; });
|
return seen.sort((v) => { return v; });
|
||||||
}
|
}
|
||||||
|
|
||||||
private getFilterValuesByInput($input: JQuery<HTMLElement>): Array<string> {
|
private async getFilterValuesByInput($input: JQuery<HTMLElement>): Promise<Array<string>> {
|
||||||
const column = $input.data('column'),
|
const column = $input.data('column'),
|
||||||
filter = $input.val() as string,
|
filter = $input.val() as string,
|
||||||
dataView = this['grid'].getData() as Slick.DataProvider<Slick.SlickData>,
|
dataView = this['grid'].getData() as Slick.DataProvider<Slick.SlickData>,
|
||||||
|
|||||||
Reference in New Issue
Block a user