diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php index bee2c7d6cfcd7be03684f1baedb273979b7205a5..1a010c450a2c693a62b2fb360e6a53d76574b77a 100644 --- a/include/ajax.tickets.php +++ b/include/ajax.tickets.php @@ -450,16 +450,19 @@ class TicketsAjaxAPI extends AjaxController { } //Collaborators utils - function addCollaborator($tid) { + function addCollaborator($tid, $uid=0) { global $thisstaff; if (!($ticket=Ticket::lookup($tid)) || !$ticket->checkStaffAccess($thisstaff)) Http::response(404, 'No such ticket'); + + $user = $uid? User::lookup($uid) : null; + //If not a post then assume new collaborator form if(!$_POST) - return self::_addcollaborator($ticket); + return self::_addcollaborator($ticket, $user); $user = $form = null; if (isset($_POST['id']) && $_POST['id']) { //Existing user/ @@ -540,9 +543,9 @@ class TicketsAjaxAPI extends AjaxController { $info += array( 'title' => sprintf('Ticket #%s: Add a collaborator', $ticket->getNumber()), - 'action' => sprintf('#tickets/%d/add-collaborator', $ticket->getId()) + 'action' => sprintf('#tickets/%d/add-collaborator', $ticket->getId()), + 'onselect' => sprintf('ajax.php/tickets/%d/add-collaborator/', $ticket->getId()), ); - return self::_userlookup($user, $form, $info); } diff --git a/include/staff/templates/user-lookup.tmpl.php b/include/staff/templates/user-lookup.tmpl.php index fcc8ec2ca3624364bc1b668aebdf843f00036fbd..617011b2d6eaeeafa59c31fe5e12003b55d40ff0 100644 --- a/include/staff/templates/user-lookup.tmpl.php +++ b/include/staff/templates/user-lookup.tmpl.php @@ -80,7 +80,7 @@ $(function() { }, onselect: function (obj) { $('#the-lookup-form').load( - "ajax.php/users/select/"+obj.id + '<?php echo $info['onselect']? $info['onselect']: "ajax.php/users/select/"; ?>'+obj.id ); }, property: "/bin/true" diff --git a/scp/ajax.php b/scp/ajax.php index 397d1f44b563cb2d4e8221d7d8dd5f71229330b6..c84b73c2d9328a4c5b39d35e7c460a0d1ece21d3 100644 --- a/scp/ajax.php +++ b/scp/ajax.php @@ -62,7 +62,7 @@ $dispatcher = patterns('', url_get('^/(?P<id>\d+)$', 'getUser'), url_post('^/(?P<id>\d+)$', 'updateUser'), url_get('^/(?P<id>\d+)/edit$', 'editUser'), - url_get('^/lookup$', 'getUser'), + url('^/lookup$', 'getUser'), url_get('^/lookup/form$', 'getLookupForm'), url_post('^/lookup/form$', 'addUser'), url_get('^/select$', 'selectUser'), @@ -80,6 +80,7 @@ $dispatcher = patterns('', url_post('^(?P<tid>\d+)/lock/(?P<id>\d+)/release', 'releaseLock'), url_get('^(?P<tid>\d+)/collaborators/manage$', 'showCollaborators'), url_post('^(?P<tid>\d+)/collaborators$', 'updateCollaborators'), + url_get('^(?P<tid>\d+)/add-collaborator/(?P<uid>\d+)$', 'addCollaborator'), url('^(?P<tid>\d+)/add-collaborator$', 'addCollaborator'), url_get('^lookup', 'lookup'), url_get('^search', 'search')