From 112ac74cfb5b567152cdf9857e161a5cd2b1e6d1 Mon Sep 17 00:00:00 2001 From: Jamie V Date: Wed, 8 Nov 2023 16:03:57 -0800 Subject: [PATCH] adding nextPage --- src/api/telemetry/TelemetryCollection.js | 4 ++++ src/plugins/telemetryTable/TelemetryTable.js | 19 ++++++++++++++++++- .../components/TableComponent.vue | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/api/telemetry/TelemetryCollection.js b/src/api/telemetry/TelemetryCollection.js index f80636b4c3..38c2a119f1 100644 --- a/src/api/telemetry/TelemetryCollection.js +++ b/src/api/telemetry/TelemetryCollection.js @@ -188,6 +188,10 @@ export default class TelemetryCollection extends EventEmitter { ); } + getLastTelemetryDatum() { + return this.boundedTelemetry[this.boundedTelemetry.length - 1]; + } + /** * Filter any new telemetry (add/page, historical, subscription) based on * time bounds and dupes diff --git a/src/plugins/telemetryTable/TelemetryTable.js b/src/plugins/telemetryTable/TelemetryTable.js index 634d5ec29b..a073b2ff2c 100644 --- a/src/plugins/telemetryTable/TelemetryTable.js +++ b/src/plugins/telemetryTable/TelemetryTable.js @@ -111,6 +111,20 @@ define([ } } + nextPage() { + const keystring = Object.keys(this.telemetryCollections)[0]; + const lastDatum = this.telemetryCollections[keystring].getLastTelemtryDatum(); + const timestampKey = this.openmct.time.timeSystem().key; + const metadata = this.openmct.telemetry.getMetadata( + this.telemetryCollections[keystring].telemetryObject + ); + const formats = this.openmct.telemetry.getFormatMap(metadata); + const lastTimestamp = formats[timestampKey].parse(lastDatum); + + // clear old collection, rerequest from last timestamp + this.addTelemetryObject(this.telemetryCollections[keystring].telemetryObject, lastTimestamp); + } + createTableRowCollections() { this.tableRows = new TableRowCollection(); @@ -141,11 +155,14 @@ define([ } } - addTelemetryObject(telemetryObject) { + addTelemetryObject(telemetryObject, start) { this.addColumnsForObject(telemetryObject, true); const keyString = this.openmct.objects.makeKeyString(telemetryObject.identifier); let requestOptions = this.buildOptionsFromConfiguration(telemetryObject); + if (start) { + requestOptions.start = start; + } let columnMap = this.getColumnMapForObject(keyString); let limitEvaluator = this.openmct.telemetry.limitEvaluator(telemetryObject); // hardcode 50 item limit diff --git a/src/plugins/telemetryTable/components/TableComponent.vue b/src/plugins/telemetryTable/components/TableComponent.vue index 40d8dac04e..3d0f146a71 100644 --- a/src/plugins/telemetryTable/components/TableComponent.vue +++ b/src/plugins/telemetryTable/components/TableComponent.vue @@ -559,6 +559,7 @@ export default { }, nextPage() { this.currentPage++; + this.table.nextPage(); }, updateVisibleRows() { if (!this.updatingView) {