This is an automated email from the ASF dual-hosted git repository.

jbertram pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis-console.git

commit c0451a41000d35e9dad477fdbe5567b5bec96028
Author: Andy Taylor <[email protected]>
AuthorDate: Fri Dec 6 11:21:59 2024 +0000

    ARTEMIS-5193 - Add page size to saved preferences
---
 .../artemis/artemis-preferences-service.ts                 | 14 ++++++++++++++
 .../artemis-extension/artemis/messages/MessagesTable.tsx   |  3 +++
 .../src/artemis-extension/artemis/table/ArtemisTable.tsx   |  6 ++++++
 3 files changed, 23 insertions(+)

diff --git 
a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-preferences-service.ts
 
b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-preferences-service.ts
index 4863670..46c57d0 100644
--- 
a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-preferences-service.ts
+++ 
b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/artemis-preferences-service.ts
@@ -16,6 +16,8 @@
  */
 import { Column } from "./table/ArtemisTable"
 
+const PAGE_SIZE = ".pageSize";
+
 export interface IArtemisPreferencesService {
   loadArtemisPreferences(): ArtemisOptions
   saveArtemisPreferences(newValues: Partial<ArtemisOptions>): void
@@ -68,6 +70,18 @@ class ArtemisPreferencesService implements 
IArtemisPreferencesService {
     localStorage.setItem(storageLocation, JSON.stringify(data));
   }
 
+  loadTablePageSize(storageLocation: string|undefined, size: number): number {
+    const localStorageData = localStorage.getItem(storageLocation + PAGE_SIZE);
+    if (localStorageData) {
+        return Number(localStorageData);
+    }
+    return size;
+  }
+
+  saveTablePageSize(storageLocation: string, size: number) {
+    localStorage.setItem(storageLocation + PAGE_SIZE, size.toString());
+  }
+
   private loadFromStorage(): Partial<ArtemisOptions> {
     const localStorageData = 
localStorage.getItem(STORAGE_KEY_ARTEMIS_PREFERENCES)
 
diff --git 
a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/messages/MessagesTable.tsx
 
b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/messages/MessagesTable.tsx
index 632fd62..46ad6b8 100644
--- 
a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/messages/MessagesTable.tsx
+++ 
b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/messages/MessagesTable.tsx
@@ -28,6 +28,7 @@ import { SendMessage } from './SendMessage';
 import { Message } from './MessageView';
 import { ArtemisContext } from '../context';
 import { log } from '../globals';
+import { artemisPreferencesService } from '../artemis-preferences-service';
 
 export type MessageProps = {
   address: string,
@@ -90,6 +91,7 @@ export const MessagesTable: 
React.FunctionComponent<MessageProps> = props => {
       const response = await artemisService.getMessages(queueMBean, page, 
perPage, filter);
       return response;
     }
+    
setPerPage(artemisPreferencesService.loadTablePageSize("messagesColumnDefs", 
10));
     listData();
 
   }, [props.address, props.routingType, props.queue, page, perPage, filter, 
selectedMessages])
@@ -99,6 +101,7 @@ export const MessagesTable: 
React.FunctionComponent<MessageProps> = props => {
   };
 
   const handlePerPageSelect = (_event: React.MouseEvent | React.KeyboardEvent 
| MouseEvent, newPerPage: number, newPage: number) => {
+    artemisPreferencesService.saveTablePageSize("messagesColumnDefs", 
newPerPage)
     setPerPage(newPerPage);
   };
 
diff --git 
a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/table/ArtemisTable.tsx
 
b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/table/ArtemisTable.tsx
index 0722618..6c7257b 100644
--- 
a/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/table/ArtemisTable.tsx
+++ 
b/artemis-console-extension/artemis-extension/src/artemis-extension/artemis/table/ArtemisTable.tsx
@@ -141,6 +141,9 @@ const operationOptions = [
       setColumns(updatedColumns);
       setColumnsLoaded(true);
     }
+    if(broker.storageColumnLocation) {
+      
setPerPage(artemisPreferencesService.loadTablePageSize(broker.storageColumnLocation,
 10));
+    }
     listData();
 
   }, [columns, page, activeSort, filter, perPage, columnsLoaded, broker])
@@ -215,6 +218,9 @@ const operationOptions = [
   };
 
   const handlePerPageSelect = (_event: React.MouseEvent | React.KeyboardEvent 
| MouseEvent, newPerPage: number, newPage: number) => {
+    if(broker.storageColumnLocation) {
+      
artemisPreferencesService.saveTablePageSize(broker.storageColumnLocation, 
newPerPage)
+    }
     setPerPage(newPerPage);
   };
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to