@@ -716,6 +716,18 @@ func dimmTableHTMLRenderer(tableValues TableValues, targetName string) string {
716716 return renderHTMLTable (socketTableHeaders , socketTableValues , "pure-table pure-table-bordered" , [][]string {})
717717}
718718
719+ // renderChart generates an HTML/JavaScript representation of a chart using the provided data and configuration.
720+ // It supports different chart types (e.g., "line", "scatter") and uses Go templates to format the datasets and chart.
721+ // Parameters:
722+ // - chartType: the type of chart to render ("line", "scatter").
723+ // - allFormattedPoints: a slice of strings, each representing formatted data points for a dataset.
724+ // - datasetNames: a slice of dataset names corresponding to each dataset.
725+ // - xAxisLabels: a slice of labels for the x-axis (used for line charts).
726+ // - config: a chartTemplateStruct containing chart configuration and template variables.
727+ // - datasetHiddenFlags: a slice of booleans indicating whether each dataset should be hidden initially.
728+ //
729+ // Returns:
730+ // - A string containing the rendered chart HTML/JavaScript, or an error message if rendering fails.
719731func renderChart (chartType string , allFormattedPoints []string , datasetNames []string , xAxisLabels []string , config chartTemplateStruct , datasetHiddenFlags []bool ) string {
720732 datasets := []string {}
721733 for dataIdx , formattedPoints := range allFormattedPoints {
@@ -780,6 +792,17 @@ type scatterPoint struct {
780792 y float64
781793}
782794
795+ // renderScatterChart generates an HTML string for a scatter chart using the provided data and configuration.
796+ //
797+ // Parameters:
798+ //
799+ // data - 2D slice of scatterPoint values, where each inner slice represents a dataset's data points.
800+ // datasetNames - Slice of strings representing the names of each dataset.
801+ // config - chartTemplateStruct containing chart configuration options.
802+ //
803+ // Returns:
804+ //
805+ // A string containing the rendered HTML for the scatter chart.
783806func renderScatterChart (data [][]scatterPoint , datasetNames []string , config chartTemplateStruct ) string {
784807 allFormattedPoints := []string {}
785808 for dataIdx := range data {
@@ -792,6 +815,19 @@ func renderScatterChart(data [][]scatterPoint, datasetNames []string, config cha
792815 return renderChart ("scatter" , allFormattedPoints , datasetNames , nil , config , nil )
793816}
794817
818+ // renderLineChart generates an HTML string for a line chart using the provided data and configuration.
819+ //
820+ // Parameters:
821+ //
822+ // xAxisLabels - Slice of strings representing the labels for the X axis.
823+ // data - 2D slice of float64 values, where each inner slice represents a dataset's data points.
824+ // datasetNames - Slice of strings representing the names of each dataset.
825+ // config - chartTemplateStruct containing chart configuration options.
826+ // datasetHiddenFlags - Slice of booleans indicating whether each dataset should be hidden initially.
827+ //
828+ // Returns:
829+ //
830+ // A string containing the rendered HTML for the line chart.
795831func renderLineChart (xAxisLabels []string , data [][]float64 , datasetNames []string , config chartTemplateStruct , datasetHiddenFlags []bool ) string {
796832 allFormattedPoints := []string {}
797833 for dataIdx := range data {
@@ -907,7 +943,7 @@ func getColor(idx int) string {
907943 return colors [idx % len (colors )]
908944}
909945
910- func telemetryTableHTMLRenderer (tableValues TableValues , data [][]float64 , datasetNames []string , chartConfig chartTemplateStruct ) string {
946+ func telemetryTableHTMLRenderer (tableValues TableValues , data [][]float64 , datasetNames []string , chartConfig chartTemplateStruct , datasetHiddenFlags [] bool ) string {
911947 tsFieldIdx := 0
912948 var timestamps []string
913949 for i := range tableValues .Fields [0 ].Values {
@@ -916,7 +952,7 @@ func telemetryTableHTMLRenderer(tableValues TableValues, data [][]float64, datas
916952 timestamps = append (timestamps , timestamp )
917953 }
918954 }
919- return renderLineChart (timestamps , data , datasetNames , chartConfig , nil )
955+ return renderLineChart (timestamps , data , datasetNames , chartConfig , datasetHiddenFlags )
920956}
921957
922958func cpuUtilizationTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -965,7 +1001,7 @@ func cpuUtilizationTelemetryTableHTMLRenderer(tableValues TableValues, targetNam
9651001 SuggestedMin : "0" ,
9661002 SuggestedMax : "100" ,
9671003 }
968- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1004+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
9691005}
9701006
9711007func utilizationCategoriesTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1000,7 +1036,7 @@ func utilizationCategoriesTelemetryTableHTMLRenderer(tableValues TableValues, ta
10001036 SuggestedMin : "0" ,
10011037 SuggestedMax : "100" ,
10021038 }
1003- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1039+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
10041040}
10051041
10061042func irqRateTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1040,7 +1076,7 @@ func irqRateTelemetryTableHTMLRenderer(tableValues TableValues, targetName strin
10401076 SuggestedMin : "0" ,
10411077 SuggestedMax : "0" ,
10421078 }
1043- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1079+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
10441080}
10451081
10461082// driveTelemetryTableHTMLRenderer renders charts of drive statistics
@@ -1096,7 +1132,7 @@ func driveTelemetryTableHTMLRenderer(tableValues TableValues, targetName string)
10961132 SuggestedMin : "0" ,
10971133 SuggestedMax : "0" ,
10981134 }
1099- out += telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1135+ out += telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
11001136 }
11011137 return out
11021138}
@@ -1154,7 +1190,7 @@ func networkTelemetryTableHTMLRenderer(tableValues TableValues, targetName strin
11541190 SuggestedMin : "0" ,
11551191 SuggestedMax : "0" ,
11561192 }
1157- out += telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1193+ out += telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
11581194 }
11591195 return out
11601196}
@@ -1191,7 +1227,7 @@ func memoryTelemetryTableHTMLRenderer(tableValues TableValues, targetName string
11911227 SuggestedMin : "0" ,
11921228 SuggestedMax : "0" ,
11931229 }
1194- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1230+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
11951231}
11961232
11971233func averageFrequencyTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1226,7 +1262,7 @@ func averageFrequencyTelemetryTableHTMLRenderer(tableValues TableValues, targetN
12261262 SuggestedMin : "0" ,
12271263 SuggestedMax : "0" ,
12281264 }
1229- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1265+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
12301266}
12311267
12321268func powerTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1261,7 +1297,7 @@ func powerTelemetryTableHTMLRenderer(tableValues TableValues, targetName string)
12611297 SuggestedMin : "0" ,
12621298 SuggestedMax : "0" ,
12631299 }
1264- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1300+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
12651301}
12661302
12671303func temperatureTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1296,7 +1332,7 @@ func temperatureTelemetryTableHTMLRenderer(tableValues TableValues, targetName s
12961332 SuggestedMin : "0" ,
12971333 SuggestedMax : "0" ,
12981334 }
1299- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1335+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
13001336}
13011337
13021338func ipcTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1331,7 +1367,7 @@ func ipcTelemetryTableHTMLRenderer(tableValues TableValues, targetName string) s
13311367 SuggestedMin : "0" ,
13321368 SuggestedMax : "0" ,
13331369 }
1334- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1370+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
13351371}
13361372
13371373func c6TelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1366,7 +1402,7 @@ func c6TelemetryTableHTMLRenderer(tableValues TableValues, targetName string) st
13661402 SuggestedMin : "0" ,
13671403 SuggestedMax : "0" ,
13681404 }
1369- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1405+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
13701406}
13711407
13721408// instructionTelemetryTableHTMLRenderer renders instruction set usage statistics.
@@ -1434,16 +1470,7 @@ func instructionTelemetryTableHTMLRenderer(tableValues TableValues, targetname s
14341470 SuggestedMin : "0" ,
14351471 SuggestedMax : "0" ,
14361472 }
1437- // render directly using renderLineChart to supply hidden flags
1438- tsFieldIdx := 0
1439- var timestamps []string
1440- for i := range tableValues .Fields [0 ].Values {
1441- timestamp := tableValues .Fields [tsFieldIdx ].Values [i ]
1442- if ! slices .Contains (timestamps , timestamp ) {
1443- timestamps = append (timestamps , timestamp )
1444- }
1445- }
1446- return renderLineChart (timestamps , data , datasetNames , chartConfig , hiddenFlags )
1473+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , hiddenFlags )
14471474}
14481475
14491476func renderGaudiStatsChart (tableValues TableValues , chartStatFieldName string , titleText string , yAxisText string , suggestedMax string ) string {
@@ -1500,7 +1527,7 @@ func renderGaudiStatsChart(tableValues TableValues, chartStatFieldName string, t
15001527 SuggestedMin : "0" ,
15011528 SuggestedMax : suggestedMax ,
15021529 }
1503- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1530+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
15041531}
15051532
15061533func gaudiTelemetryTableHTMLRenderer (tableValues TableValues , targetName string ) string {
@@ -1527,7 +1554,7 @@ func pduTelemetryTableHTMLRenderer(tableValues TableValues, targetName string) s
15271554 SuggestedMin : "0" ,
15281555 SuggestedMax : "0" ,
15291556 }
1530- return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig )
1557+ return telemetryTableHTMLRenderer (tableValues , data , datasetNames , chartConfig , nil )
15311558}
15321559
15331560func callStackFrequencyTableHTMLRenderer (tableValues TableValues , targetName string ) string {
0 commit comments