Teach extension how to request display of alerts page
This commit is contained in:
@@ -113,6 +113,13 @@ export interface SetStateMsg {
|
||||
parsedResultSets: ParsedResultSets;
|
||||
}
|
||||
|
||||
export interface ShowInterpretedPageMsg {
|
||||
t: 'showInterpretedPage';
|
||||
interpretation: Interpretation;
|
||||
pageNumber: number;
|
||||
totalPages: number;
|
||||
}
|
||||
|
||||
/** Advance to the next or previous path no in the path viewer */
|
||||
export interface NavigatePathMsg {
|
||||
t: 'navigatePath';
|
||||
@@ -124,6 +131,7 @@ export interface NavigatePathMsg {
|
||||
export type IntoResultsViewMsg =
|
||||
| ResultsUpdatingMsg
|
||||
| SetStateMsg
|
||||
| ShowInterpretedPageMsg
|
||||
| NavigatePathMsg;
|
||||
|
||||
export type FromResultsViewMsg =
|
||||
|
||||
@@ -28,6 +28,7 @@ import {
|
||||
SortDirection,
|
||||
RAW_RESULTS_PAGE_SIZE,
|
||||
INTERPRETED_RESULTS_PAGE_SIZE,
|
||||
ALERTS_TABLE_NAME,
|
||||
} from './interface-types';
|
||||
import { Logger } from './logging';
|
||||
import * as messages from './messages';
|
||||
@@ -244,7 +245,12 @@ export class InterfaceManager extends DisposableObject {
|
||||
);
|
||||
break;
|
||||
case 'changePage':
|
||||
await this.showPageOfResults(msg.selectedTable, msg.pageNumber);
|
||||
if (msg.selectedTable === ALERTS_TABLE_NAME) {
|
||||
await this.showPageOfInterpretedResults(msg.pageNumber);
|
||||
}
|
||||
else {
|
||||
await this.showPageOfRawResults(msg.selectedTable, msg.pageNumber);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assertNever(msg);
|
||||
@@ -380,10 +386,30 @@ export class InterfaceManager extends DisposableObject {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a page of interpreted results
|
||||
*/
|
||||
public async showPageOfInterpretedResults(
|
||||
pageNumber: number
|
||||
): Promise<void> {
|
||||
if (this._interpretation === undefined) {
|
||||
throw new Error(`Trying to show interpreted results but interpretation was undefined`);
|
||||
}
|
||||
if (this._interpretation.sarif.runs[0].results === undefined) {
|
||||
throw new Error(`Trying to show interpreted results but results were undefined`);
|
||||
}
|
||||
await this.postMessage({
|
||||
t: 'showInterpretedPage',
|
||||
interpretation: this.getPageOfInterpretedResults(pageNumber),
|
||||
pageNumber,
|
||||
totalPages: Math.ceil(this._interpretation.sarif.runs[0].results.length / INTERPRETED_RESULTS_PAGE_SIZE),
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a page of raw results from the chosen table.
|
||||
*/
|
||||
public async showPageOfResults(
|
||||
public async showPageOfRawResults(
|
||||
selectedTable: string,
|
||||
pageNumber: number
|
||||
): Promise<void> {
|
||||
|
||||
@@ -195,6 +195,9 @@ class App extends React.Component<{}, ResultsViewState> {
|
||||
|
||||
this.loadResults();
|
||||
break;
|
||||
case 'showInterpretedPage':
|
||||
// TODO: show interpreted page
|
||||
break;
|
||||
case 'resultsUpdating':
|
||||
this.setState({
|
||||
isExpectingResultsUpdate: true,
|
||||
|
||||
Reference in New Issue
Block a user