diff --git a/ui/src/app/components/grid.directive.js b/ui/src/app/components/grid.directive.js index f6b66ee67e..56644009c8 100644 --- a/ui/src/app/components/grid.directive.js +++ b/ui/src/app/components/grid.directive.js @@ -211,26 +211,31 @@ function GridController($scope, $state, $mdDialog, $document, $q, $timeout, $tra vm.items.pending = true; promise.then( function success(items) { - vm.items.data = vm.items.data.concat(items.data); - var startIndex = vm.items.data.length - items.data.length; - var endIndex = vm.items.data.length; - for (var i = startIndex; i < endIndex; i++) { - var item = vm.items.data[i]; - item.index = i; - var row = Math.floor(i / vm.columns); - var itemRow = vm.items.rowData[row]; - if (!itemRow) { - itemRow = []; - vm.items.rowData.push(itemRow); + if (vm.items.reloadPending) { + vm.items.pending = false; + reload(); + } else { + vm.items.data = vm.items.data.concat(items.data); + var startIndex = vm.items.data.length - items.data.length; + var endIndex = vm.items.data.length; + for (var i = startIndex; i < endIndex; i++) { + var item = vm.items.data[i]; + item.index = i; + var row = Math.floor(i / vm.columns); + var itemRow = vm.items.rowData[row]; + if (!itemRow) { + itemRow = []; + vm.items.rowData.push(itemRow); + } + itemRow.push(item); } - itemRow.push(item); + vm.items.nextPageLink = items.nextPageLink; + vm.items.hasNext = items.hasNext; + if (vm.items.hasNext) { + vm.items.nextPageLink.limit = pageSize; + } + vm.items.pending = false; } - vm.items.nextPageLink = items.nextPageLink; - vm.items.hasNext = items.hasNext; - if (vm.items.hasNext) { - vm.items.nextPageLink.limit = pageSize; - } - vm.items.pending = false; }, function fail() { vm.items.hasNext = false; @@ -425,26 +430,35 @@ function GridController($scope, $state, $mdDialog, $document, $q, $timeout, $tra } $scope.$on('searchTextUpdated', function () { - vm.items = { - data: [], - rowData: [], - nextPageLink: { - limit: pageSize, - textSearch: $scope.searchConfig.searchText - }, - selections: {}, - selectedCount: 0, - hasNext: true, - pending: false - }; - vm.detailsConfig.isDetailsOpen = false; - vm.itemRows.getItemAtIndex(pageSize); + reload(); }); vm.onGridInited(vm); vm.itemRows.getItemAtIndex(pageSize); + function reload() { + if (vm.items && vm.items.pending) { + vm.items.reloadPending = true; + } else { + vm.items = { + data: [], + rowData: [], + nextPageLink: { + limit: pageSize, + textSearch: $scope.searchConfig.searchText + }, + selections: {}, + selectedCount: 0, + hasNext: true, + pending: false + }; + vm.detailsConfig.isDetailsOpen = false; + vm.items.reloadPending = false; + vm.itemRows.getItemAtIndex(pageSize); + } + } + function refreshList() { $state.go($state.current, vm.refreshParamsFunc(), {reload: true}); } diff --git a/ui/src/app/layout/home.controller.js b/ui/src/app/layout/home.controller.js index 290cacf9a1..4979501085 100644 --- a/ui/src/app/layout/home.controller.js +++ b/ui/src/app/layout/home.controller.js @@ -26,7 +26,7 @@ import logoSvg from '../../svg/logo_title_white.svg'; /*@ngInject*/ export default function HomeController(loginService, userService, deviceService, Fullscreen, $scope, $element, $rootScope, $document, $state, - $log, $mdMedia, $animate, $timeout) { + $window, $log, $mdMedia, $animate, $timeout) { var siteSideNav = $('.tb-site-sidenav', $element); @@ -48,6 +48,7 @@ export default function HomeController(loginService, userService, deviceService, vm.displaySearchMode = displaySearchMode; vm.openSidenav = openSidenav; + vm.goBack = goBack; vm.searchTextUpdated = searchTextUpdated; vm.sidenavClicked = sidenavClicked; vm.toggleFullscreen = toggleFullscreen; @@ -104,6 +105,10 @@ export default function HomeController(loginService, userService, deviceService, vm.isShowSidenav = true; } + function goBack() { + $window.history.back(); + } + function closeSidenav() { vm.isShowSidenav = false; } diff --git a/ui/src/app/layout/home.tpl.html b/ui/src/app/layout/home.tpl.html index 31c8e7fad9..bfb37eb3cd 100644 --- a/ui/src/app/layout/home.tpl.html +++ b/ui/src/app/layout/home.tpl.html @@ -45,6 +45,10 @@ class="md-icon-button" ng-click="vm.openSidenav()" aria-label="{{ 'home.menu' | translate }}" ng-class="{'tb-invisible': vm.displaySearchMode()}"> menu + + arrow_back + arrow_back