From 6fa18e9582c58bfb299722e2ebbf3ee40fd50298 Mon Sep 17 00:00:00 2001 From: Evan Theurer Date: Fri, 7 Nov 2014 14:44:12 +0100 Subject: [PATCH] Autofocus room input field when changing rooms. --- static/js/controllers/roomchangecontroller.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/static/js/controllers/roomchangecontroller.js b/static/js/controllers/roomchangecontroller.js index 084f4a80..1602b95d 100644 --- a/static/js/controllers/roomchangecontroller.js +++ b/static/js/controllers/roomchangecontroller.js @@ -20,11 +20,14 @@ */ define([], function() { + // Keep variable's state across controller loads. + var roomChangeNum = 0; + var initialLoad = false; + // RoomchangeController return ["$scope", "$element", "$window", "mediaStream", "$http", "$timeout", function($scope, $element, $window, mediaStream, $http, $timeout) { //console.log("Room change controller", $element, $scope.roomdata); - var url = mediaStream.url.api("rooms"); var ctrl = this; @@ -57,7 +60,13 @@ define([], function() { ctrl.getRoom(function(roomdata) { console.info("Retrieved room data", roomdata); $scope.roomdata = roomdata; - $element.find(".btn-roomcreate").get(0).focus(); + // When the default room is disabled, put focus on the create room button on initial load. + if (initialLoad && !mediaStream.config.DefaultRoomEnabled) { + $element.find(".btn-roomcreate").get(0).focus(); + initialLoad = false; + } else { + $element.find(".roomdata-link-input").get(0).focus(); + } }); } }; @@ -76,6 +85,10 @@ define([], function() { var u = encodeURIComponent(n); $scope.roomdata.url = "/" + u; $scope.roomdata.link = mediaStream.url.room(n); + roomChangeNum++; + if (roomChangeNum === 1 && $window.location.pathname === '/') { + initialLoad = true; + } }); var roomDataLinkInput = $element.find(".roomdata-link-input");