Bläddra i källkod

Replace client-side pagination with API-side pagination for transfers and deployments

Signed-off-by: Mihaela Balutoiu <mbalutoiu@cloudbasesolutions.com>
Mihaela Balutoiu 1 månad sedan
förälder
incheckning
0230abf95d

+ 16 - 0
src/components/smart/DeploymentsPage/DeploymentsPage.tsx

@@ -67,6 +67,8 @@ class DeploymentsPage extends React.Component<Props, State> {
   componentDidMount() {
   componentDidMount() {
     document.title = "Coriolis Deployments";
     document.title = "Coriolis Deployments";
 
 
+    deploymentStore.resetDeploymentPagination();
+
     projectStore.getProjects();
     projectStore.getProjects();
     endpointStore.getEndpoints({ showLoading: true });
     endpointStore.getEndpoints({ showLoading: true });
     userStore.getAllUsers({
     userStore.getAllUsers({
@@ -112,6 +114,7 @@ class DeploymentsPage extends React.Component<Props, State> {
   }
   }
 
 
   handleProjectChange() {
   handleProjectChange() {
+    deploymentStore.resetDeploymentPagination();
     endpointStore.getEndpoints({ showLoading: true });
     endpointStore.getEndpoints({ showLoading: true });
     deploymentStore.getDeployments({ showLoading: true });
     deploymentStore.getDeployments({ showLoading: true });
   }
   }
@@ -297,6 +300,19 @@ class DeploymentsPage extends React.Component<Props, State> {
                 this.setState({ selectedDeployments });
                 this.setState({ selectedDeployments });
               }}
               }}
               dropdownActions={BulkActions}
               dropdownActions={BulkActions}
+              apiPagination={{
+                currentPage: deploymentStore.deploymentsPage,
+                hasNextPage: deploymentStore.deploymentsHasNextPage,
+                itemsPerPage: deploymentStore.deploymentsItemsPerPage,
+                onPageChange: page => {
+                  deploymentStore.setDeploymentsPage(page);
+                },
+                onItemsPerPageChange: e => {
+                  deploymentStore.setDeploymentsItemsPerPage(
+                    parseInt(e.target.value, 10),
+                  );
+                },
+              }}
               renderItemComponent={options => (
               renderItemComponent={options => (
                 <TransferListItem
                 <TransferListItem
                   {...options}
                   {...options}

+ 16 - 0
src/components/smart/TransfersPage/TransfersPage.tsx

@@ -89,6 +89,8 @@ class TransfersPage extends React.Component<Props, State> {
   componentDidMount() {
   componentDidMount() {
     document.title = "Coriolis Transfers";
     document.title = "Coriolis Transfers";
 
 
+    transferStore.resetTransferPagination();
+
     projectStore.getProjects();
     projectStore.getProjects();
     endpointStore.getEndpoints({ showLoading: true });
     endpointStore.getEndpoints({ showLoading: true });
     userStore.getAllUsers({
     userStore.getAllUsers({
@@ -124,6 +126,7 @@ class TransfersPage extends React.Component<Props, State> {
   }
   }
 
 
   handleProjectChange() {
   handleProjectChange() {
+    transferStore.resetTransferPagination();
     transferStore.getTransfers();
     transferStore.getTransfers();
     endpointStore.getEndpoints({ showLoading: true });
     endpointStore.getEndpoints({ showLoading: true });
   }
   }
@@ -445,6 +448,19 @@ class TransfersPage extends React.Component<Props, State> {
               onPaginatedItemsChange={paginatedTransfers => {
               onPaginatedItemsChange={paginatedTransfers => {
                 this.handlePaginatedItemsChange(paginatedTransfers);
                 this.handlePaginatedItemsChange(paginatedTransfers);
               }}
               }}
+              apiPagination={{
+                currentPage: transferStore.transfersPage,
+                hasNextPage: transferStore.transfersHasNextPage,
+                itemsPerPage: transferStore.transfersItemsPerPage,
+                onPageChange: page => {
+                  transferStore.setTransfersPage(page);
+                },
+                onItemsPerPageChange: e => {
+                  transferStore.setTransfersItemsPerPage(
+                    parseInt(e.target.value, 10),
+                  );
+                },
+              }}
               renderItemComponent={options => (
               renderItemComponent={options => (
                 <TransferListItem
                 <TransferListItem
                   {...options}
                   {...options}