diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php index a142fc1056deab841b3cbf5f590a19295313ac80..ef207f84dbc587318eca5f509ad0763f7caf1a8d 100644 --- a/include/ajax.tickets.php +++ b/include/ajax.tickets.php @@ -448,5 +448,30 @@ class TicketsAjaxAPI extends AjaxController { return $resp; } + + function changeUserForm($tid) { + global $thisstaff; + + if(!$thisstaff + || !($ticket=Ticket::lookup($tid)) + || !$ticket->checkStaffAccess($thisstaff)) + Http::response(404, 'No such ticket'); + + + $user = $ticket->getOwner(); + + $info = array( + 'title' => sprintf('Change user for ticket #%s', $ticket->getNumber()) + ); + + ob_start(); + include(STAFFINC_DIR . 'templates/user-lookup.tmpl.php'); + $resp = ob_get_contents(); + ob_end_clean(); + return $resp; + + } + + } ?> diff --git a/include/staff/ticket-edit.inc.php b/include/staff/ticket-edit.inc.php index 668cd523484926831642b9626a2c2816877d562d..fa4b4069022d5453689d03820ba8479e4efa8b29 100644 --- a/include/staff/ticket-edit.inc.php +++ b/include/staff/ticket-edit.inc.php @@ -20,21 +20,26 @@ if ($_POST) </th> </tr> <?php - $client = User::lookup($info['user_id']); + if(!$info['user_id'] || !($user = User::lookup($info['user_id']))) + $user = $ticket->getUser(); ?> <tr><td>Client:</td><td> - <span id="client-info"><?php echo $client->getName(); ?> - <<?php echo $client->getEmail(); ?>></span> - <a class="action-button" style="float:none;overflow:inherit" - href="ajax.php/users/lookup?id=<?php echo $client->getId(); ?>" - onclick="javascript: - $('#overlay').show(); - $('#user-lookup .body').load(this.href); - $('#user-lookup').show(); - return false; - "><i class="icon-edit"></i> Change</a> - <input type="hidden" name="user_id" id="user_id" - value="<?php echo $info['user_id']; ?>" /> + <div id="client-info"> + <span id="client-name"><?php echo $user->getName(); ?></span> + <span id="client-email"><<?php echo $user->getEmail(); ?>></span> + <a class="action-button" style="float:none;overflow:inherit" href="#" + onclick="javascript: + $.userLookup('ajax.php/tickets/<?php echo $ticket->getId(); ?>/change-user', + function(user) { + $('input#user_id').val(user.id); + $('#user_name').html(user.name); + $('#user_email').html('<'+user.email+'>'); + }); + return false; + "><i class="icon-edit"></i> Change</a> + <input type="hidden" name="user_id" id="user_id" + value="<?php echo $info['user_id']; ?>" /> + </div> </td></tr> <tbody> <tr> diff --git a/scp/ajax.php b/scp/ajax.php index 460248be22a420910f6bf54bf88a20a826a66727..82a2ce3ef28fc7008f21fba0daeef96ea9ea2102 100644 --- a/scp/ajax.php +++ b/scp/ajax.php @@ -67,6 +67,8 @@ $dispatcher = patterns('', url_post('^/lookup/form$', 'addUser') )), url('^/tickets/', patterns('ajax.tickets.php:TicketsAjaxAPI', + url_get('^(?P<tid>\d+)/change-user$', 'changeUserForm'), + url_post('^(?P<tid>\d+)/change-user$', 'changeUser'), url_get('^(?P<tid>\d+)/preview', 'previewTicket'), url_post('^(?P<tid>\d+)/lock', 'acquireLock'), url_post('^(?P<tid>\d+)/lock/(?P<id>\d+)/renew', 'renewLock'),