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 211 vm.items.pending = true;
212 212 promise.then(
213 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 240 function fail() {
236 241 vm.items.hasNext = false;
... ... @@ -425,26 +430,35 @@ function GridController($scope, $state, $mdDialog, $document, $q, $timeout, $tra
425 430 }
426 431
427 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 436 vm.onGridInited(vm);
445 437
446 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 462 function refreshList() {
449 463 $state.go($state.current, vm.refreshParamsFunc(), {reload: true});
450 464 }
... ...
... ... @@ -26,7 +26,7 @@ import logoSvg from '../../svg/logo_title_white.svg';
26 26
27 27 /*@ngInject*/
28 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 31 var siteSideNav = $('.tb-site-sidenav', $element);
32 32
... ... @@ -48,6 +48,7 @@ export default function HomeController(loginService, userService, deviceService,
48 48
49 49 vm.displaySearchMode = displaySearchMode;
50 50 vm.openSidenav = openSidenav;
  51 + vm.goBack = goBack;
51 52 vm.searchTextUpdated = searchTextUpdated;
52 53 vm.sidenavClicked = sidenavClicked;
53 54 vm.toggleFullscreen = toggleFullscreen;
... ... @@ -104,6 +105,10 @@ export default function HomeController(loginService, userService, deviceService,
104 105 vm.isShowSidenav = true;
105 106 }
106 107
  108 + function goBack() {
  109 + $window.history.back();
  110 + }
  111 +
107 112 function closeSidenav() {
108 113 vm.isShowSidenav = false;
109 114 }
... ...
... ... @@ -45,6 +45,10 @@
45 45 class="md-icon-button" ng-click="vm.openSidenav()" aria-label="{{ 'home.menu' | translate }}" ng-class="{'tb-invisible': vm.displaySearchMode()}">
46 46 <md-icon aria-label="{{ 'home.menu' | translate }}" class="material-icons">menu</md-icon>
47 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 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 53 <md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon>
50 54 </md-button>
... ...