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

richard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-ui.git


The following commit(s) were added to refs/heads/master by this push:
     new 91fe3ee  persist sort-by information
     new daf8992  Merge pull request #175 from frogfather/persist-sort-order
91fe3ee is described below

commit 91fe3ee50b907015c4e069df9b0423b9c1069c59
Author: frogfather <j.a.campb...@icloud.com>
AuthorDate: Mon Jun 8 11:30:06 2020 +0100

    persist sort-by information
---
 .../catalog/app/views/catalog/catalog.state.js     | 29 +++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/ui-modules/catalog/app/views/catalog/catalog.state.js 
b/ui-modules/catalog/app/views/catalog/catalog.state.js
index 0a8713e..f7a6072 100644
--- a/ui-modules/catalog/app/views/catalog/catalog.state.js
+++ b/ui-modules/catalog/app/views/catalog/catalog.state.js
@@ -78,17 +78,26 @@ export function catalogController($scope, $rootScope, 
catalogApi, brUtilsGeneral
         label: 'Bundle'
     }];
 
+    const savedOrderByKey = 'catalog-order-by';
+
+    const savedOrderBy = localStorage && localStorage.getItem(savedOrderByKey) 
!== null ?
+        JSON.parse(localStorage.getItem(savedOrderByKey))
+        : {
+            orderBy: 'bundles',
+            sortBy: 0
+        }
+
     $scope.pagination = {
         page: 1,
         itemsPerPage: 20
     };
     $scope.config = {
-        orderBy: orderBysBundles
+        orderBy: savedOrderBy.orderBy === 'bundles' ? orderBysBundles : 
orderBysTypes
     };
     $scope.state = {
-        view: 'bundles',
+        view: savedOrderBy.orderBy,
         versions: [],
-        orderBy: $scope.config.orderBy[0],
+        orderBy: $scope.config.orderBy.length > savedOrderBy.sortBy ? 
$scope.config.orderBy[savedOrderBy.sortBy] : 0,
         search: {}
     };
 
@@ -96,6 +105,20 @@ export function catalogController($scope, $rootScope, 
catalogApi, brUtilsGeneral
         if (newView && oldView && !angular.equals(newView, oldView)) {
             $scope.config.orderBy = newView === 'types' ? orderBysTypes : 
orderBysBundles;
             $scope.state.orderBy = $scope.config.orderBy[0]
+            savedOrderBy.orderBy = newView;
+            savedOrderBy.sortBy = 0;
+            if (localStorage) {
+                localStorage.setItem(savedOrderByKey, 
JSON.stringify(savedOrderBy));
+            }
+        }
+    });
+
+    $scope.$watch('state.orderBy', (newOrderBy, oldOrderBy) => {
+        if(newOrderBy && oldOrderBy && !angular.equals(newOrderBy, 
oldOrderBy)) {
+            savedOrderBy.sortBy = $scope.config.orderBy.indexOf(newOrderBy);
+            if (localStorage) {
+                localStorage.setItem(savedOrderByKey, 
JSON.stringify(savedOrderBy));
+            }
         }
     });
 

Reply via email to