Commit de0d0a786db539c5c27e4e5f4a80e10f4e9c4693
1 parent
94323b65
Exists in
master
and in
8 other branches
Fix search button and scroll
Showing
4 changed files
with
40 additions
and
8 deletions
Show diff stats
src/app/pages/programas/programas.controller.js
| @@ -139,6 +139,21 @@ | @@ -139,6 +139,21 @@ | ||
| 139 | 139 | ||
| 140 | }; | 140 | }; |
| 141 | 141 | ||
| 142 | + ProgramasPageController.prototype.submitSearch = function() { | ||
| 143 | + var vm = this; | ||
| 144 | + | ||
| 145 | + vm.loadingFilter = true; | ||
| 146 | + | ||
| 147 | + // scroll to result grid | ||
| 148 | + var $searchResult = angular.element('#search-result'); | ||
| 149 | + if ($searchResult && $searchResult.length > 0) { | ||
| 150 | + angular.element('body').animate({scrollTop: $searchResult.offset().top}, 'fast'); | ||
| 151 | + vm.filtredPrograms = vm.getFiltredPrograms(); | ||
| 152 | + }else { | ||
| 153 | + vm.$log.warn('#search-result element not found.'); | ||
| 154 | + } | ||
| 155 | + }; | ||
| 156 | + | ||
| 142 | ProgramasPageController.prototype.showAllPrograms = function($event) { | 157 | ProgramasPageController.prototype.showAllPrograms = function($event) { |
| 143 | var vm = this; | 158 | var vm = this; |
| 144 | $event.stopPropagation(); | 159 | $event.stopPropagation(); |
src/app/pages/programas/programas.html
| @@ -26,7 +26,7 @@ | @@ -26,7 +26,7 @@ | ||
| 26 | <label for="articleQueryFilter" class="control-label sr-only">Buscar programas:</label> | 26 | <label for="articleQueryFilter" class="control-label sr-only">Buscar programas:</label> |
| 27 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageProgramas.query" placeholder="Buscar programas" aria-label="Buscar programas" > | 27 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageProgramas.query" placeholder="Buscar programas" aria-label="Buscar programas" > |
| 28 | <span class="input-group-btn"> | 28 | <span class="input-group-btn"> |
| 29 | - <button type="button" class="btn btn-default" ng-click="pageProgramas.search()"> | 29 | + <button type="button" class="btn btn-default" ng-click="pageProgramas.submitSearch()"> |
| 30 | <span class="icon-circle icon-small color-theme-common-bg"> | 30 | <span class="icon-circle icon-small color-theme-common-bg"> |
| 31 | <span class="glyphicon glyphicon-search"></span> | 31 | <span class="glyphicon glyphicon-search"></span> |
| 32 | </span> | 32 | </span> |
| @@ -58,7 +58,7 @@ | @@ -58,7 +58,7 @@ | ||
| 58 | <label for="articleQueryFilter" class="control-label sr-only">Buscar programas:</label> | 58 | <label for="articleQueryFilter" class="control-label sr-only">Buscar programas:</label> |
| 59 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageProgramas.query" placeholder="Buscar programas" aria-label="Buscar programas" > | 59 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pageProgramas.query" placeholder="Buscar programas" aria-label="Buscar programas" > |
| 60 | <span class="input-group-btn"> | 60 | <span class="input-group-btn"> |
| 61 | - <button type="button" class="btn btn-default" ng-click="pageProgramas.search()"> | 61 | + <button type="button" class="btn btn-default" ng-click="pageProgramas.submitSearch()"> |
| 62 | <span class="icon-circle icon-small color-theme-common-bg"> | 62 | <span class="icon-circle icon-small color-theme-common-bg"> |
| 63 | <span class="glyphicon glyphicon-search"></span> | 63 | <span class="glyphicon glyphicon-search"></span> |
| 64 | </span> | 64 | </span> |
| @@ -68,7 +68,7 @@ | @@ -68,7 +68,7 @@ | ||
| 68 | </div> | 68 | </div> |
| 69 | </div> | 69 | </div> |
| 70 | </div> | 70 | </div> |
| 71 | - <div class="row"> | 71 | + <div id="search-result" class="row"> |
| 72 | <div class="col-sm-12"> | 72 | <div class="col-sm-12"> |
| 73 | <header class="header"> | 73 | <header class="header"> |
| 74 | <h2>Conheça os programas</h2> | 74 | <h2>Conheça os programas</h2> |
src/app/pages/propostas/propostas.controller.js
| @@ -6,11 +6,12 @@ | @@ -6,11 +6,12 @@ | ||
| 6 | .controller('PropostasPageController', PropostasPageController); | 6 | .controller('PropostasPageController', PropostasPageController); |
| 7 | 7 | ||
| 8 | /** @ngInject */ | 8 | /** @ngInject */ |
| 9 | - function PropostasPageController(DialogaService, $scope, $location, $filter, $log) { | 9 | + function PropostasPageController(DialogaService, $scope, $rootScope, $location, $filter, $log) { |
| 10 | var vm = this; | 10 | var vm = this; |
| 11 | 11 | ||
| 12 | vm.DialogaService = DialogaService; | 12 | vm.DialogaService = DialogaService; |
| 13 | vm.$scope = $scope; | 13 | vm.$scope = $scope; |
| 14 | + vm.$rootScope = $rootScope; | ||
| 14 | vm.$location = $location; | 15 | vm.$location = $location; |
| 15 | vm.$filter = $filter; | 16 | vm.$filter = $filter; |
| 16 | vm.$log = $log; | 17 | vm.$log = $log; |
| @@ -18,6 +19,7 @@ | @@ -18,6 +19,7 @@ | ||
| 18 | vm.init(); | 19 | vm.init(); |
| 19 | vm.loadData(); | 20 | vm.loadData(); |
| 20 | // vm.attachListeners(); // attach listeners after load data (SYNC) | 21 | // vm.attachListeners(); // attach listeners after load data (SYNC) |
| 22 | + vm.$rootScope.focusMainContent(); | ||
| 21 | 23 | ||
| 22 | $log.debug('PropostasPageController'); | 24 | $log.debug('PropostasPageController'); |
| 23 | } | 25 | } |
| @@ -156,4 +158,19 @@ | @@ -156,4 +158,19 @@ | ||
| 156 | return output; | 158 | return output; |
| 157 | }; | 159 | }; |
| 158 | 160 | ||
| 161 | + PropostasPageController.prototype.submitSearch = function() { | ||
| 162 | + var vm = this; | ||
| 163 | + | ||
| 164 | + vm.loadingFilter = true; | ||
| 165 | + | ||
| 166 | + // scroll to result grid | ||
| 167 | + var $searchResult = angular.element('#search-result'); | ||
| 168 | + if ($searchResult && $searchResult.length > 0) { | ||
| 169 | + angular.element('body').animate({scrollTop: $searchResult.offset().top}, 'fast'); | ||
| 170 | + vm.filtredProposals = vm.getFiltredProposals(); | ||
| 171 | + }else { | ||
| 172 | + vm.$log.warn('#search-result element not found.'); | ||
| 173 | + } | ||
| 174 | + }; | ||
| 175 | + | ||
| 159 | })(); | 176 | })(); |
src/app/pages/propostas/propostas.html
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | </div> | 6 | </div> |
| 7 | </div> | 7 | </div> |
| 8 | 8 | ||
| 9 | -<div class="page--propostas"> | 9 | +<div class="page--propostas" role="main"> |
| 10 | 10 | ||
| 11 | <section class="section-info" ng-if="pagePropostas.loading || pagePropostas.error"> | 11 | <section class="section-info" ng-if="pagePropostas.loading || pagePropostas.error"> |
| 12 | <div class="container"> | 12 | <div class="container"> |
| @@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
| 46 | <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label> | 46 | <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label> |
| 47 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pagePropostas.query" placeholder="Buscar propostas" aria-label="Buscar propostas" > | 47 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pagePropostas.query" placeholder="Buscar propostas" aria-label="Buscar propostas" > |
| 48 | <span class="input-group-btn"> | 48 | <span class="input-group-btn"> |
| 49 | - <button type="button" class="btn btn-default" ng-click="pagePropostas.search()"> | 49 | + <button type="button" class="btn btn-default" ng-click="pagePropostas.submitSearch()"> |
| 50 | <span class="icon-circle icon-small color-theme-common-bg"> | 50 | <span class="icon-circle icon-small color-theme-common-bg"> |
| 51 | <span class="glyphicon glyphicon-search"></span> | 51 | <span class="glyphicon glyphicon-search"></span> |
| 52 | </span> | 52 | </span> |
| @@ -78,7 +78,7 @@ | @@ -78,7 +78,7 @@ | ||
| 78 | <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label> | 78 | <label for="articleQueryFilter" class="control-label sr-only">Buscar propostas:</label> |
| 79 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pagePropostas.query" placeholder="Buscar propostas" aria-label="Buscar propostas" > | 79 | <input id="articleQueryFilter" type="search" class="form-control input-search" ng-model="pagePropostas.query" placeholder="Buscar propostas" aria-label="Buscar propostas" > |
| 80 | <span class="input-group-btn"> | 80 | <span class="input-group-btn"> |
| 81 | - <button type="button" class="btn btn-default" ng-click="pagePropostas.search()"> | 81 | + <button type="button" class="btn btn-default" ng-click="pagePropostas.submitSearch()"> |
| 82 | <span class="icon-circle icon-small color-theme-common-bg"> | 82 | <span class="icon-circle icon-small color-theme-common-bg"> |
| 83 | <span class="glyphicon glyphicon-search"></span> | 83 | <span class="glyphicon glyphicon-search"></span> |
| 84 | </span> | 84 | </span> |
| @@ -89,7 +89,7 @@ | @@ -89,7 +89,7 @@ | ||
| 89 | </div> | 89 | </div> |
| 90 | </div> | 90 | </div> |
| 91 | 91 | ||
| 92 | - <div class="row" ng-if="pagePropostas.proposals"> | 92 | + <div id="search-result" class="row" ng-if="pagePropostas.proposals"> |
| 93 | <div class="col-sm-12"> | 93 | <div class="col-sm-12"> |
| 94 | <header class="header"> | 94 | <header class="header"> |
| 95 | <h2>Total de Propostas: "<b>{{pagePropostas.filtredProposals.length}} propostas</b>"</h2> | 95 | <h2>Total de Propostas: "<b>{{pagePropostas.filtredProposals.length}} propostas</b>"</h2> |