Commit c9a8ddb16b3056bc0e7f20372b2d8409f7a7d6e8

Authored by Igor Kulikov
Committed by mp-loki
1 parent d530a98b

TB-49: Add back navigation ability in customer profile view in full-screen mode.

@@ -211,26 +211,31 @@ function GridController($scope, $state, $mdDialog, $document, $q, $timeout, $tra @@ -211,26 +211,31 @@ function GridController($scope, $state, $mdDialog, $document, $q, $timeout, $tra
211 vm.items.pending = true; 211 vm.items.pending = true;
212 promise.then( 212 promise.then(
213 function success(items) { 213 function success(items) {
214 - vm.items.data = vm.items.data.concat(items.data);  
215 - var startIndex = vm.items.data.length - items.data.length;  
216 - var endIndex = vm.items.data.length;  
217 - for (var i = startIndex; i < endIndex; i++) {  
218 - var item = vm.items.data[i];  
219 - item.index = i;  
220 - var row = Math.floor(i / vm.columns);  
221 - var itemRow = vm.items.rowData[row];  
222 - if (!itemRow) {  
223 - itemRow = [];  
224 - vm.items.rowData.push(itemRow); 214 + if (vm.items.reloadPending) {
  215 + vm.items.pending = false;
  216 + reload();
  217 + } else {
  218 + vm.items.data = vm.items.data.concat(items.data);
  219 + var startIndex = vm.items.data.length - items.data.length;
  220 + var endIndex = vm.items.data.length;
  221 + for (var i = startIndex; i < endIndex; i++) {
  222 + var item = vm.items.data[i];
  223 + item.index = i;
  224 + var row = Math.floor(i / vm.columns);
  225 + var itemRow = vm.items.rowData[row];
  226 + if (!itemRow) {
  227 + itemRow = [];
  228 + vm.items.rowData.push(itemRow);
  229 + }
  230 + itemRow.push(item);
225 } 231 }
226 - itemRow.push(item);  
227 - }  
228 - vm.items.nextPageLink = items.nextPageLink;  
229 - vm.items.hasNext = items.hasNext;  
230 - if (vm.items.hasNext) {  
231 - vm.items.nextPageLink.limit = pageSize; 232 + vm.items.nextPageLink = items.nextPageLink;
  233 + vm.items.hasNext = items.hasNext;
  234 + if (vm.items.hasNext) {
  235 + vm.items.nextPageLink.limit = pageSize;
  236 + }
  237 + vm.items.pending = false;
232 } 238 }
233 - vm.items.pending = false;  
234 }, 239 },
235 function fail() { 240 function fail() {
236 vm.items.hasNext = false; 241 vm.items.hasNext = false;
@@ -425,26 +430,35 @@ function GridController($scope, $state, $mdDialog, $document, $q, $timeout, $tra @@ -425,26 +430,35 @@ function GridController($scope, $state, $mdDialog, $document, $q, $timeout, $tra
425 } 430 }
426 431
427 $scope.$on('searchTextUpdated', function () { 432 $scope.$on('searchTextUpdated', function () {
428 - vm.items = {  
429 - data: [],  
430 - rowData: [],  
431 - nextPageLink: {  
432 - limit: pageSize,  
433 - textSearch: $scope.searchConfig.searchText  
434 - },  
435 - selections: {},  
436 - selectedCount: 0,  
437 - hasNext: true,  
438 - pending: false  
439 - };  
440 - vm.detailsConfig.isDetailsOpen = false;  
441 - vm.itemRows.getItemAtIndex(pageSize); 433 + reload();
442 }); 434 });
443 435
444 vm.onGridInited(vm); 436 vm.onGridInited(vm);
445 437
446 vm.itemRows.getItemAtIndex(pageSize); 438 vm.itemRows.getItemAtIndex(pageSize);
447 439
  440 + function reload() {
  441 + if (vm.items && vm.items.pending) {
  442 + vm.items.reloadPending = true;
  443 + } else {
  444 + vm.items = {
  445 + data: [],
  446 + rowData: [],
  447 + nextPageLink: {
  448 + limit: pageSize,
  449 + textSearch: $scope.searchConfig.searchText
  450 + },
  451 + selections: {},
  452 + selectedCount: 0,
  453 + hasNext: true,
  454 + pending: false
  455 + };
  456 + vm.detailsConfig.isDetailsOpen = false;
  457 + vm.items.reloadPending = false;
  458 + vm.itemRows.getItemAtIndex(pageSize);
  459 + }
  460 + }
  461 +
448 function refreshList() { 462 function refreshList() {
449 $state.go($state.current, vm.refreshParamsFunc(), {reload: true}); 463 $state.go($state.current, vm.refreshParamsFunc(), {reload: true});
450 } 464 }
@@ -26,7 +26,7 @@ import logoSvg from '../../svg/logo_title_white.svg'; @@ -26,7 +26,7 @@ import logoSvg from '../../svg/logo_title_white.svg';
26 26
27 /*@ngInject*/ 27 /*@ngInject*/
28 export default function HomeController(loginService, userService, deviceService, Fullscreen, $scope, $element, $rootScope, $document, $state, 28 export default function HomeController(loginService, userService, deviceService, Fullscreen, $scope, $element, $rootScope, $document, $state,
29 - $log, $mdMedia, $animate, $timeout) { 29 + $window, $log, $mdMedia, $animate, $timeout) {
30 30
31 var siteSideNav = $('.tb-site-sidenav', $element); 31 var siteSideNav = $('.tb-site-sidenav', $element);
32 32
@@ -48,6 +48,7 @@ export default function HomeController(loginService, userService, deviceService, @@ -48,6 +48,7 @@ export default function HomeController(loginService, userService, deviceService,
48 48
49 vm.displaySearchMode = displaySearchMode; 49 vm.displaySearchMode = displaySearchMode;
50 vm.openSidenav = openSidenav; 50 vm.openSidenav = openSidenav;
  51 + vm.goBack = goBack;
51 vm.searchTextUpdated = searchTextUpdated; 52 vm.searchTextUpdated = searchTextUpdated;
52 vm.sidenavClicked = sidenavClicked; 53 vm.sidenavClicked = sidenavClicked;
53 vm.toggleFullscreen = toggleFullscreen; 54 vm.toggleFullscreen = toggleFullscreen;
@@ -104,6 +105,10 @@ export default function HomeController(loginService, userService, deviceService, @@ -104,6 +105,10 @@ export default function HomeController(loginService, userService, deviceService,
104 vm.isShowSidenav = true; 105 vm.isShowSidenav = true;
105 } 106 }
106 107
  108 + function goBack() {
  109 + $window.history.back();
  110 + }
  111 +
107 function closeSidenav() { 112 function closeSidenav() {
108 vm.isShowSidenav = false; 113 vm.isShowSidenav = false;
109 } 114 }
@@ -45,6 +45,10 @@ @@ -45,6 +45,10 @@
45 class="md-icon-button" ng-click="vm.openSidenav()" aria-label="{{ 'home.menu' | translate }}" ng-class="{'tb-invisible': vm.displaySearchMode()}"> 45 class="md-icon-button" ng-click="vm.openSidenav()" aria-label="{{ 'home.menu' | translate }}" ng-class="{'tb-invisible': vm.displaySearchMode()}">
46 <md-icon aria-label="{{ 'home.menu' | translate }}" class="material-icons">menu</md-icon> 46 <md-icon aria-label="{{ 'home.menu' | translate }}" class="material-icons">menu</md-icon>
47 </md-button> 47 </md-button>
  48 + <md-button ng-show="forceFullscreen"
  49 + class="md-icon-button" aria-label="{{ 'action.back' | translate }}" ng-click="vm.goBack()" ng-class="{'tb-invisible': vm.displaySearchMode()}">
  50 + <md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon>
  51 + </md-button>
48 <md-button class="md-icon-button" aria-label="{{ 'action.back' | translate }}" ng-click="searchConfig.showSearch = !searchConfig.showSearch" ng-class="{'tb-invisible': !vm.displaySearchMode()}" > 52 <md-button class="md-icon-button" aria-label="{{ 'action.back' | translate }}" ng-click="searchConfig.showSearch = !searchConfig.showSearch" ng-class="{'tb-invisible': !vm.displaySearchMode()}" >
49 <md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon> 53 <md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon>
50 </md-button> 54 </md-button>