mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-05-07 17:02:57 +01:00
Merge branch 'migrate_querytablestab__to_react' of https://github.com/Azure/cosmos-explorer into migrate_querytablestab__to_react
This commit is contained in:
commit
43b6e25e86
@ -151,7 +151,6 @@ export default class TableEntityListViewModel extends DataTableViewModel {
|
|||||||
// If number remaining pages in cache falls below prefetchThreshold prefetch will be triggered.
|
// If number remaining pages in cache falls below prefetchThreshold prefetch will be triggered.
|
||||||
var prefetchThreshold = 10;
|
var prefetchThreshold = 10;
|
||||||
var tableQuery = this.tableQuery;
|
var tableQuery = this.tableQuery;
|
||||||
|
|
||||||
// Try cache if valid.
|
// Try cache if valid.
|
||||||
if (this.isCacheValid(tableQuery)) {
|
if (this.isCacheValid(tableQuery)) {
|
||||||
// Check if prefetch needed.
|
// Check if prefetch needed.
|
||||||
@ -484,12 +483,6 @@ export default class TableEntityListViewModel extends DataTableViewModel {
|
|||||||
if (this.isCacheValid(tableQuery)) {
|
if (this.isCacheValid(tableQuery)) {
|
||||||
// Append to cache.
|
// Append to cache.
|
||||||
this.cache.data = this.cache.data.concat(entities.slice(0));
|
this.cache.data = this.cache.data.concat(entities.slice(0));
|
||||||
var p = new Promise<Entities.ITableEntity[]>((resolve) => {
|
|
||||||
if (this.cache.data) {
|
|
||||||
resolve(this.cache.data);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return p;
|
|
||||||
} else {
|
} else {
|
||||||
// Create cache.
|
// Create cache.
|
||||||
this.cache.data = entities;
|
this.cache.data = entities;
|
||||||
@ -504,12 +497,12 @@ export default class TableEntityListViewModel extends DataTableViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.allDownloaded || nextDownloadSize === 0) {
|
if (this.allDownloaded || nextDownloadSize === 0) {
|
||||||
return Promise.resolve(result);
|
return Promise.resolve(this.cache.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentRetry >= TableEntityListViewModel._maximumNumberOfPrefetchRetries) {
|
if (currentRetry >= TableEntityListViewModel._maximumNumberOfPrefetchRetries) {
|
||||||
result.ExceedMaximumRetries = true;
|
result.ExceedMaximumRetries = true;
|
||||||
return Promise.resolve(result);
|
return Promise.resolve(this.cache.data);
|
||||||
}
|
}
|
||||||
return this.prefetchData(tableQuery, nextDownloadSize, currentRetry + 1);
|
return this.prefetchData(tableQuery, nextDownloadSize, currentRetry + 1);
|
||||||
}
|
}
|
||||||
|
@ -293,6 +293,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
|
|||||||
if (!isRunQuery) {
|
if (!isRunQuery) {
|
||||||
try {
|
try {
|
||||||
documents = await tableEntityListViewModel.renderNextPageAndupdateCache();
|
documents = await tableEntityListViewModel.renderNextPageAndupdateCache();
|
||||||
|
if (documents) {
|
||||||
if (userContext.apiType === "Cassandra") {
|
if (userContext.apiType === "Cassandra") {
|
||||||
headers = documents?.length ? this.getFormattedHeaders(documents) : ["userid", "name", "email"];
|
headers = documents?.length ? this.getFormattedHeaders(documents) : ["userid", "name", "email"];
|
||||||
this.setupIntialEntities(headers, documents, isInitialLoad);
|
this.setupIntialEntities(headers, documents, isInitialLoad);
|
||||||
@ -300,6 +301,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
|
|||||||
headers = documents?.length ? this.getFormattedHeaders(documents) : ["RowKey", "PartitionKey", "Timestamp"];
|
headers = documents?.length ? this.getFormattedHeaders(documents) : ["RowKey", "PartitionKey", "Timestamp"];
|
||||||
this.setupIntialEntities(headers, documents, isInitialLoad);
|
this.setupIntialEntities(headers, documents, isInitialLoad);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.setState({
|
this.setState({
|
||||||
queryErrorMessage: error.responseText,
|
queryErrorMessage: error.responseText,
|
||||||
@ -351,6 +353,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
|
|||||||
let maxWidth: number;
|
let maxWidth: number;
|
||||||
let documentItems: IDocument[] = [];
|
let documentItems: IDocument[] = [];
|
||||||
let filteredItems: IDocument[] = [];
|
let filteredItems: IDocument[] = [];
|
||||||
|
let updatedQueryTableRows: IQueryTableRowsType[] = [];
|
||||||
this.columns = [];
|
this.columns = [];
|
||||||
const { queryTableRows } = this.state;
|
const { queryTableRows } = this.state;
|
||||||
|
|
||||||
@ -385,15 +388,17 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (entities.length > 0) {
|
||||||
documentItems = this.generateDetailsList(entities);
|
documentItems = this.generateDetailsList(entities);
|
||||||
filteredItems = documentItems.slice(0, PAGESIZE);
|
filteredItems = documentItems.slice(0, PAGESIZE);
|
||||||
|
|
||||||
const queryTableRowsClone = [...queryTableRows];
|
const queryTableRowsClone = [...queryTableRows];
|
||||||
const updatedQueryTableRows = queryTableRowsClone.map((queryTableRow) => {
|
updatedQueryTableRows = queryTableRowsClone.map((queryTableRow) => {
|
||||||
const queryTableRowClone = { ...queryTableRow };
|
const queryTableRowClone = { ...queryTableRow };
|
||||||
queryTableRowClone.fieldOptions = getformattedOptions(headers);
|
queryTableRowClone.fieldOptions = getformattedOptions(headers);
|
||||||
return queryTableRowClone;
|
return queryTableRowClone;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.setState(
|
this.setState(
|
||||||
{
|
{
|
||||||
@ -408,10 +413,10 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
|
|||||||
fromDocument: 0,
|
fromDocument: 0,
|
||||||
toDocument: PAGESIZE,
|
toDocument: PAGESIZE,
|
||||||
currentStartIndex: PAGESIZE,
|
currentStartIndex: PAGESIZE,
|
||||||
queryTableRows: updatedQueryTableRows,
|
queryTableRows: entities.length > 0 ? updatedQueryTableRows : [],
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
if (isInitialLoad && headers.length > 0) {
|
if (entities.length > 0 && isInitialLoad && headers.length > 0) {
|
||||||
this.loadFilterExample();
|
this.loadFilterExample();
|
||||||
this.onItemsSelectionChanged(true);
|
this.onItemsSelectionChanged(true);
|
||||||
}
|
}
|
||||||
@ -561,6 +566,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
|
|||||||
return this.state.tableEntityListViewModel.removeEntitiesFromCache(entitiesToDelete).then(() => {
|
return this.state.tableEntityListViewModel.removeEntitiesFromCache(entitiesToDelete).then(() => {
|
||||||
this.setState({
|
this.setState({
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
|
rowSelected: false,
|
||||||
});
|
});
|
||||||
this.loadEntities(false, false);
|
this.loadEntities(false, false);
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user