From e5900885dd28c6bf41f7ca58c0f5b5b35b913f40 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sun, 30 Nov 2025 19:43:33 +0100 Subject: [PATCH 1/2] width --- src/dashboard/Data/Browser/DataBrowser.react.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index a7bd4e69e..55a8bd014 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -26,6 +26,7 @@ const AGGREGATION_PANEL_AUTO_LOAD_FIRST_ROW = 'aggregationPanelAutoLoadFirstRow' const AGGREGATION_PANEL_SYNC_SCROLL = 'aggregationPanelSyncScroll'; const AGGREGATION_PANEL_BATCH_NAVIGATE = 'aggregationPanelBatchNavigate'; const AGGREGATION_PANEL_SHOW_CHECKBOX = 'aggregationPanelShowCheckbox'; +const AGGREGATION_PANEL_WIDTH = 'aggregationPanelWidth'; function formatValueForCopy(value, type) { if (value === undefined) { @@ -98,6 +99,8 @@ export default class DataBrowser extends React.Component { window.localStorage?.getItem(AGGREGATION_PANEL_BATCH_NAVIGATE) !== 'false'; const storedShowPanelCheckbox = window.localStorage?.getItem(AGGREGATION_PANEL_SHOW_CHECKBOX) !== 'false'; + const storedPanelWidth = window.localStorage?.getItem(AGGREGATION_PANEL_WIDTH); + const parsedPanelWidth = storedPanelWidth ? parseInt(storedPanelWidth, 10) : 300; const hasAggregation = props.classwiseCloudFunctions?.[ `${props.app.applicationId}${props.appName}` @@ -117,7 +120,7 @@ export default class DataBrowser extends React.Component { firstSelectedCell: null, selectedData: [], prevClassName: props.className, - panelWidth: 300, + panelWidth: parsedPanelWidth, isResizing: false, maxWidth: window.innerWidth - 300, showAggregatedData: true, @@ -358,6 +361,7 @@ export default class DataBrowser extends React.Component { isResizing: false, panelWidth: size.width, }); + window.localStorage?.setItem(AGGREGATION_PANEL_WIDTH, size.width); } handleResizeDiv(event, { size }) { From 522f4a2232d2a9a790391a68a40407dadaee0cc4 Mon Sep 17 00:00:00 2001 From: Manuel Trezza <5673677+mtrezza@users.noreply.github.com> Date: Sun, 30 Nov 2025 19:55:19 +0100 Subject: [PATCH 2/2] panel count --- src/dashboard/Data/Browser/DataBrowser.react.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index 55a8bd014..371c805ee 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -27,6 +27,7 @@ const AGGREGATION_PANEL_SYNC_SCROLL = 'aggregationPanelSyncScroll'; const AGGREGATION_PANEL_BATCH_NAVIGATE = 'aggregationPanelBatchNavigate'; const AGGREGATION_PANEL_SHOW_CHECKBOX = 'aggregationPanelShowCheckbox'; const AGGREGATION_PANEL_WIDTH = 'aggregationPanelWidth'; +const AGGREGATION_PANEL_COUNT = 'aggregationPanelCount'; function formatValueForCopy(value, type) { if (value === undefined) { @@ -101,6 +102,8 @@ export default class DataBrowser extends React.Component { window.localStorage?.getItem(AGGREGATION_PANEL_SHOW_CHECKBOX) !== 'false'; const storedPanelWidth = window.localStorage?.getItem(AGGREGATION_PANEL_WIDTH); const parsedPanelWidth = storedPanelWidth ? parseInt(storedPanelWidth, 10) : 300; + const storedPanelCount = window.localStorage?.getItem(AGGREGATION_PANEL_COUNT); + const parsedPanelCount = storedPanelCount ? parseInt(storedPanelCount, 10) : 1; const hasAggregation = props.classwiseCloudFunctions?.[ `${props.app.applicationId}${props.appName}` @@ -134,7 +137,7 @@ export default class DataBrowser extends React.Component { prefetchCache: {}, selectionHistory: [], displayedObjectIds: [], // Array of object IDs currently displayed in the panel - panelCount: 1, // Number of panels to display + panelCount: parsedPanelCount, // Number of panels to display multiPanelData: {}, // Object mapping objectId to panel data _objectsToFetch: [], // Temporary field for async fetch handling loadingObjectIds: new Set(), @@ -1152,6 +1155,8 @@ export default class DataBrowser extends React.Component { multiPanelData: currentObjectData, panelWidth: limitedWidth, }); + window.localStorage?.setItem(AGGREGATION_PANEL_COUNT, newPanelCount); + window.localStorage?.setItem(AGGREGATION_PANEL_WIDTH, limitedWidth); // Fetch missing data asynchronously objectsToFetch.forEach((objectId, i) => { @@ -1173,6 +1178,9 @@ export default class DataBrowser extends React.Component { const newWidth = (prevState.panelWidth / prevState.panelCount) * newPanelCount; + window.localStorage?.setItem(AGGREGATION_PANEL_COUNT, newPanelCount); + window.localStorage?.setItem(AGGREGATION_PANEL_WIDTH, newWidth); + return { panelCount: newPanelCount, displayedObjectIds: newDisplayedObjectIds,