[whups] [patch] Use client-adding logic in driver

Jason M. Felice jfelice at cronosys.com
Fri Dec 5 07:20:59 PST 2003


create.php was manually adding clients still.  This patch removes that
duplicate logic and makes the driver's addTicket() call the driver's
updateClients() to set clients.  This also means you can set clients from
whups' API.

-------------- next part --------------
patchwork diff create.php
--- create.php	Fri Dec  5 09:38:09 2003
+++ create.php	Fri Dec  5 10:06:04 2003
@@ -151,40 +151,6 @@
     $message = sprintf(_("Your ticket id is %s. "), $tid);
     $message .= _("An appropriate person has been notified of this request.");
     $notification->push($message, 'horde.success');
-
-    if ($GLOBALS['registry']->hasMethod('clients/getClientSource')) {
-        /* Add a link from this ticket to the selected client. */
-        if (!empty($info['client'])) {
-            $clientsource = $GLOBALS['registry']->call('clients/getClientSource');
-            require_once HORDE_BASE . '/lib/Links.php';
-            $links = &Horde_Links::singleton($registry->getApp());
-
-            $link_data = array('link_params' => array('link_type' => 'client', 
-                                                      'from_application' => 'tickets', 
-                                                      'to_application' => 'clients'),
-                               'from_params' => array('from_key' => 'ticket_id',  
-                                                      'from_value' => $tid));
-
-            /* Now add in the new client link(s). */
-            $clients = $info['client'];
-            if (!is_array($clients)) {
-                $clients = array($clients);
-            }
-            foreach ($clients as $client_id) {
-                $link_data['to_params'] = array('source' => $clientsource, 'to_value' => $client_id);
-                $status = $links->addLink($link_data);
-                if (is_a($status, 'PEAR_Error')) {
-                    $notification->push($status, 'horde.error');
-                } elseif ($registry->hasMethod('clients' . '/getLinkSummary')) {
-                    $link_summary = $registry->call('clients' . '/getLinkSummary', array($link_data));
-                    $notification->push(sprintf(_("Added a %s link to %s."), 'client', $link_summary), 'horde.success');
-                } else {
-                    $notification->push(_("Link added."), 'horde.success');
-                }
-            }
-        }
-    }
-
     $url = Horde::applicationUrl('details.php', true);
     $url = Util::addParameter($url, 'id', $tid);
     header('Location: ' . $url);
patchwork diff lib/Driver/sql.php
--- lib/Driver/sql.php	Fri Dec  5 10:17:20 2003
+++ lib/Driver/sql.php	Fri Dec  5 10:07:56 2003
@@ -232,6 +232,14 @@
             return $result;
         }
 
+        // Assign clients.
+        if ($GLOBALS['registry']->hasMethod('clients/getClientSource')) {
+            if (!empty($info['client'])) {
+                $clients = $info['client'];
+                $this->updateClients($new_id, 'ticket', $clients);
+            }
+        }
+
         $minfo = $this->getModule($module);
         $this->notifyTicket($new_id, $summary, $minfo['name'], Auth::getAuth());
         if (!empty($owner)) {


More information about the whups mailing list