Commit 704a8be8c6271225f2ac119dd0aac4e34ae2c293
1 parent
914264b0
TB-70: Improve search usability for cards view.
Showing
2 changed files
with
24 additions
and
3 deletions
... | ... | @@ -56,6 +56,8 @@ export default function HomeController(types, loginService, userService, deviceS |
56 | 56 | vm.searchTextUpdated = searchTextUpdated; |
57 | 57 | vm.sidenavClicked = sidenavClicked; |
58 | 58 | vm.toggleFullscreen = toggleFullscreen; |
59 | + vm.openSearch = openSearch; | |
60 | + vm.closeSearch = closeSearch; | |
59 | 61 | |
60 | 62 | $scope.$on('$stateChangeSuccess', function (evt, to, toParams, from) { |
61 | 63 | watchEntitySubtype(false); |
... | ... | @@ -128,6 +130,25 @@ export default function HomeController(types, loginService, userService, deviceS |
128 | 130 | } |
129 | 131 | } |
130 | 132 | |
133 | + function openSearch() { | |
134 | + if ($scope.searchConfig.searchEnabled) { | |
135 | + $scope.searchConfig.showSearch = true; | |
136 | + $timeout(() => { | |
137 | + angular.element('#tb-search-text-input', $element).focus(); | |
138 | + }); | |
139 | + } | |
140 | + } | |
141 | + | |
142 | + function closeSearch() { | |
143 | + if ($scope.searchConfig.searchEnabled) { | |
144 | + $scope.searchConfig.showSearch = false; | |
145 | + if ($scope.searchConfig.searchText.length) { | |
146 | + $scope.searchConfig.searchText = ''; | |
147 | + searchTextUpdated(); | |
148 | + } | |
149 | + } | |
150 | + } | |
151 | + | |
131 | 152 | function searchTextUpdated() { |
132 | 153 | $scope.$broadcast('searchTextUpdated'); |
133 | 154 | } | ... | ... |
... | ... | @@ -49,7 +49,7 @@ |
49 | 49 | class="md-icon-button" aria-label="{{ 'action.back' | translate }}" ng-click="vm.goBack()" ng-class="{'tb-invisible': vm.displaySearchMode()}"> |
50 | 50 | <md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon> |
51 | 51 | </md-button> |
52 | - <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="vm.closeSearch()" ng-class="{'tb-invisible': !vm.displaySearchMode()}" > | |
53 | 53 | <md-icon aria-label="{{ 'action.back' | translate }}" class="material-icons">arrow_back</md-icon> |
54 | 54 | </md-button> |
55 | 55 | <div flex layout="row" ng-show="!vm.displaySearchMode()" tb-no-animate class="md-toolbar-tools"> |
... | ... | @@ -64,10 +64,10 @@ |
64 | 64 | </div> |
65 | 65 | <md-input-container ng-class="{'tb-entity-search': vm.displayEntitySubtypeSearch()}" flex> |
66 | 66 | <label> </label> |
67 | - <input ng-model="searchConfig.searchText" ng-change="vm.searchTextUpdated()" placeholder="{{ 'common.enter-search' | translate }}"/> | |
67 | + <input id="tb-search-text-input" ng-model="searchConfig.searchText" ng-change="vm.searchTextUpdated()" placeholder="{{ 'common.enter-search' | translate }}"/> | |
68 | 68 | </md-input-container> |
69 | 69 | </div> |
70 | - <md-button class="md-icon-button" aria-label="{{ 'action.search' | translate }}" ng-show="searchConfig.searchEnabled" ng-click="searchConfig.showSearch = !searchConfig.showSearch"> | |
70 | + <md-button class="md-icon-button" aria-label="{{ 'action.search' | translate }}" ng-show="searchConfig.searchEnabled" ng-click="vm.openSearch()"> | |
71 | 71 | <md-icon aria-label="{{ 'action.search' | translate }}" class="material-icons">search</md-icon> |
72 | 72 | </md-button> |
73 | 73 | <md-button ng-show="!vm.displaySearchMode()" hide-xs hide-sm class="md-icon-button" ng-click="vm.toggleFullscreen()" aria-label="{{ 'fullscreen.toggle' | translate }}"> | ... | ... |