From dddc34d8d24273aecf15261dbc2f9df1b0f068d0 Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Mon, 17 Mar 2014 19:41:36 -0500 Subject: [PATCH] fix(popup): focus popup. Fixes #820 --- js/ext/angular/src/service/ionicPopup.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/js/ext/angular/src/service/ionicPopup.js b/js/ext/angular/src/service/ionicPopup.js index 32741e16e8..2deb585cde 100644 --- a/js/ext/angular/src/service/ionicPopup.js +++ b/js/ext/angular/src/service/ionicPopup.js @@ -131,16 +131,28 @@ angular.module('ionic.service.popup', ['ionic.service.templateLoad']) } }; + var focusLastButton = function(popup) { + var buttons, lastButton; + buttons = popup.el.querySelectorAll('button'); + lastButton = buttons[buttons.length-1]; + if(lastButton) { + lastButton.focus(); + } + } + // Show a single popup var showSinglePopup = function(popup, opts) { var _this = this; ionic.requestAnimationFrame(function() { + hideBody(popup); positionPopup(popup); popup.el.classList.remove('popup-hidden'); popup.el.classList.add('popup-showing'); popup.el.classList.add('active'); + + focusLastButton(popup); }); }; @@ -150,12 +162,15 @@ angular.module('ionic.service.popup', ['ionic.service.templateLoad']) popup.el.classList.remove('popup-hidden'); popup.el.classList.add('popup-showing'); popup.el.classList.add('active'); + focusLastButton(popup); }); }; // Hide a single popup var hideSinglePopup = function(popup) { ionic.requestAnimationFrame(function() { + var buttons, lastButton; + popup.el.classList.remove('active'); popup.el.classList.add('popup-hidden'); });