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

This commit is contained in:
Igor Kulikov 2017-04-17 20:22:16 +03:00
parent 0a78e0b081
commit 38e735b26c
3 changed files with 56 additions and 33 deletions

View File

@ -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});
}

View File

@ -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;
}

View File

@ -45,6 +45,10 @@
class="md-icon-button" ng-click="vm.openSidenav()" aria-label="{{ 'home.menu' | translate }}" ng-class="{'tb-invisible': vm.displaySearchMode()}">
<md-icon aria-label="{{ 'home.menu' | translate }}" class="material-icons">menu</md-icon>
</md-button>
<md-button ng-show="forceFullscreen"
class="md-icon-button" aria-label="{{ 'action.back' | translate }}" ng-click="vm.goBack()" ng-class="{'tb-invisible': vm.displaySearchMode()}">
<md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon>
</md-button>
<md-button class="md-icon-button" aria-label="{{ 'action.back' | translate }}" ng-click="searchConfig.showSearch = !searchConfig.showSearch" ng-class="{'tb-invisible': !vm.displaySearchMode()}" >
<md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon>
</md-button>