From 5ad16b30983fee65d02193d8b9f99fa993f5ab9d Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Mon, 23 Dec 2013 14:43:34 -0600
Subject: [PATCH] ui: Auto focus user lookup search box

---
 include/ajax.tickets.php                     |  2 +-
 include/staff/templates/user-lookup.tmpl.php |  4 ++--
 scp/js/scp.js                                | 12 +++++++++---
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index 9c9a8b7d4..e6c0fdb36 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -682,7 +682,7 @@ class TicketsAjaxAPI extends AjaxController {
                 'title' => sprintf('Change user for ticket #%s', $ticket->getNumber())
                 );
 
-        return self::_userlookup($user, $info);
+        return self::_userlookup($user, null, $info);
     }
 
     function _userlookup($user, $form, $info) {
diff --git a/include/staff/templates/user-lookup.tmpl.php b/include/staff/templates/user-lookup.tmpl.php
index eb93fab22..caa80a417 100644
--- a/include/staff/templates/user-lookup.tmpl.php
+++ b/include/staff/templates/user-lookup.tmpl.php
@@ -89,14 +89,14 @@ $(function() {
     $('a#unselect-user').click( function(e) {
         e.preventDefault();
         $('div#selected-user-info').hide();
-        $('div#new-user-form').fadeIn();
+        $('div#new-user-form').fadeIn({start: function(){ $('#user-search').focus(); }});
         return false;
      });
 
     $(document).on('click', 'form.user input.cancel', function (e) {
         e.preventDefault();
         $('div#new-user-form').hide();
-        $('div#selected-user-info').fadeIn();
+        $('div#selected-user-info').fadeIn({start: function(){ $('#user-search').focus(); }});
         return false;
      });
 });
diff --git a/scp/js/scp.js b/scp/js/scp.js
index 84a491479..594bb21c8 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -419,11 +419,14 @@ $(document).ready(function(){
            });
      });
 
-    $.dialog = function (url, code, cb) {
-
+    $.dialog = function (url, code, cb, options) {
+        options = options||{};
         $('.dialog#popup .body').load(url, function () {
             $('#overlay').show();
-            $('.dialog#popup').show();
+            $('.dialog#popup').show({
+                duration: 0,
+                complete: function() { if (options.onshow) options.onshow(); }
+            });
             $(document).off('.dialog');
             $(document).on('submit.dialog', '.dialog#popup form', function(e) {
                 e.preventDefault();
@@ -451,12 +454,15 @@ $(document).ready(function(){
                 return false;
             });
          });
+        if (options.onload) { options.onload(); }
      };
 
     $.userLookup = function (url, cb) {
         $.dialog(url, 201, function (resp) {
             var user = $.parseJSON(resp);
             if(cb) cb(user);
+        }, {
+            onshow: function() { $('#user-search').focus(); }
         });
     };
 
-- 
GitLab