r803: Implementing BugAPI
authorRobert Sesek <rsesek@bluestatic.org>
Fri, 5 May 2006 23:34:24 +0000 (23:34 +0000)
committerRobert Sesek <rsesek@bluestatic.org>
Fri, 5 May 2006 23:34:24 +0000 (23:34 +0000)
editreport.php

index e317fd33d9edc373274296fe1ec12e9b6857c598..71e3c81c9f79b7b71c1040a21b20342f7f31a799 100644 (file)
@@ -97,16 +97,12 @@ if ($_POST['do'] == 'update')
        // do update stuff
        $pcv = parse_pcv_select($bugsys->in['pcv_select'], true);
        
-       if (!$bugsys->in['summary'])
-       {
-               $message->error($lang->string('You need to enter a summary for this bug.'));
-       }
-       if (!$pcv)
-       {
-               $message->error($lang->string('Invalid product/component/version selected.'));
-       }
+       $bugapi = new BugAPI($bugsys);
+       $bugapi->set('bugid',           $bugsys->in['bugid']);
+       $bugapi->set_condition();
+       $bugapi->dorelations = array();
+       $bugapi->fetch();
        
-       $hist[0] = (array)$db->query_first("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[bugid]");
        $hist2[0] = (array)$temp = $noinitialcustom = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bugvaluefill WHERE bugid = $bug[bugid]");
        
        // -------------------------------------------------------------------
@@ -134,33 +130,35 @@ if ($_POST['do'] == 'update')
        $dependencies = preg_split('#([^0-9].*?)#', $bugsys->in['dependency'], -1, PREG_SPLIT_NO_EMPTY);
        $dependencies = ((count($dependencies) < 1) ? '' : implode(', ', $dependencies));
        
-       $db->query("
-               UPDATE " . TABLE_PREFIX . "bug
-               SET summary = '" . $bugsys->in['summary'] . "',
-                       severity = " . intval($bugsys->in['severity']) . "," .
-                               (can_perform('canchangestatus', $bug['productid']) ? "
-                                       priority = " . intval($bugsys->in['priority']) . ",
-                                       status = " . intval($bugsys->in['status']) . ",
-                                       resolution = " . intval($bugsys->in['resolution']) . ","
-                               : '') . "
-                       " . (can_perform('canassign', $bug['productid']) ? "assignedto = " . intval($bugsys->in['assignedto']) . "," : '') . "
-                       duplicateof = " . intval($bugsys->in['duplicateof']) . ",
-                       dependency = '$dependencies',
-                       productid = " . $pcv['product'] . ",
-                       componentid = " . $pcv['component'] . ",
-                       versionid = " . $pcv['version'] . ",
-                       hidden = " . intval($bugsys->in['hidden']) . "
-               WHERE bugid = $bug[bugid]"
-       );
+       $bugapi->set('summary',         $bugsys->in['summary']);
+       $bugapi->set('severity',        $bugsys->in['severity']);
+       $bugapi->set('duplicateof',     $bugsys->in['duplicateof']);
+       $bugapi->set('dependency',      $dependencies);
+       $bugapi->set('productid',       $pcv['product']);
+       $bugapi->set('componentid',     $pcv['component']);
+       $bugapi->set('versionid',       $pcv['version']);
+       $bugapi->set('hidden',          $bugsys->in['hidden']);
+       
+       if (can_perform('canchangestatus', $bug['productid']))
+       {
+               $bugapi->set('priority',                $bugsys->in['priority']);
+               $bugapi->set('status',                  $bugsys->in['status']);
+               $bugapi->set('resolution',              $bugsys->in['resolution']);
+       }
+       if (can_perform('canassign', $bug['productid']))
+       {
+               $bugapi->set('assignedto',              $bugsys->in['assignedto']);
+       }
+       
+       $bugapi->update();
        
        // -------------------------------------------------------------------
        // do diff history
        
-       $hist[1] = (array)$db->query_first("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[bugid]");
        $hist2[1] = (array)$db->query_first("SELECT * FROM " . TABLE_PREFIX . "bugvaluefill WHERE bugid = $bug[bugid]");
        
-       $diff[0] = array_diff_assoc($hist[0], $hist[1]);
-       $diff[1] = array_diff_assoc($hist[1], $hist[0]);
+       $diff[0] = array_diff_assoc($bugapi->objdata, $bugapi->values);
+       $diff[1] = array_diff_assoc($bugapi->values, $bugapi->objdata);
        
        $lookupindex = array(
                'status' => 'status',