// 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]");
// -------------------------------------------------------------------
$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',