thingsboard-aplcache
Changes
ui/src/app/components/grid.directive.js 78(+46 -32)
ui/src/app/layout/home.controller.js 7(+6 -1)
ui/src/app/layout/home.tpl.html 4(+4 -0)
Details
ui/src/app/components/grid.directive.js 78(+46 -32)
diff --git a/ui/src/app/components/grid.directive.js b/ui/src/app/components/grid.directive.js
index f6b66ee..5664400 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.nextPageLink = items.nextPageLink;
+ vm.items.hasNext = items.hasNext;
+ if (vm.items.hasNext) {
+ vm.items.nextPageLink.limit = pageSize;
+ }
+ vm.items.pending = false;
}
- 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});
}
ui/src/app/layout/home.controller.js 7(+6 -1)
diff --git a/ui/src/app/layout/home.controller.js b/ui/src/app/layout/home.controller.js
index 290cacf..4979501 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;
}
ui/src/app/layout/home.tpl.html 4(+4 -0)
diff --git a/ui/src/app/layout/home.tpl.html b/ui/src/app/layout/home.tpl.html
index 31c8e7f..bfb37eb 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()}">
<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>