isError())
// $error_msg .= $ab->getErrorMessage();
} else {
if (!$ab->create($name,$field_type,$attribute1,$attribute2,$is_required,$alias)) {
$error_msg .= _('Error inserting a custom field').': '.$ab->getErrorMessage();
$ab->clearError();
} else {
$feedback .= _('Extra field inserted');
}
}
//
// Delete an extra field and its contents
//
} elseif (getStringFromRequest('deleteextrafield')) {
$id = getStringFromRequest('id');
$ab = new ArtifactExtraField($ath,$id);
if (!$ab || !is_object($ab)) {
$error_msg .= _('Unable to create ArtifactExtraField Object');
} elseif ($ab->isError()) {
$error_msg .= $ab->getErrorMessage();
} else {
$sure = getStringFromRequest('sure');
$really_sure = getStringFromRequest('really_sure');
if (!$ab->delete($sure,$really_sure)) {
$error_msg .= $ab->getErrorMessage();
} else {
$browse_list = $ath->getBrowseList();
$arr = explode(',', $browse_list);
$idx = array_search($id, $arr);
if($idx !== False) {
array_splice($arr, $idx, 1);
}
$ath->setBrowseList(join(',', $arr));
$feedback .= _('Custom Field Deleted');
$deleteextrafield=false;
session_redirect('/tracker/admin/?group_id='.$group_id.'&atid='.$atid.'&add_extrafield=1&feedback='.urlencode($feedback));
}
}
//
// Add an element to an extra field
//
} elseif (getStringFromRequest('add_opt')) {
$boxid = getStringFromRequest('boxid');
$ab = new ArtifactExtraField($ath,$boxid);
if (!$ab || !is_object($ab)) {
$error_msg .= _('Unable to create ArtifactExtraField Object');
} elseif ($ab->isError()) {
$error_msg .= $ab->getErrorMessage();
} else {
$ao = new ArtifactExtraFieldElement($ab);
if (!$ao || !is_object($ao)) {
$error_msg .= 'Unable to create ArtifactExtraFieldElement Object';
// } elseif ($ao->isError())
// $error_msg .= $ao->getErrorMessage();
} else {
$name = getStringFromRequest('name');
$status_id = getIntFromRequest('status_id');
if (!$ao->create($name,$status_id)) {
$error_msg .= _('Error inserting an element').': '.$ao->getErrorMessage();
$ao->clearError();
} else {
$feedback .= _('Element inserted');
}
}
}
//
// Add a canned response
//
} elseif (getStringFromRequest('add_canned')) {
$title = getStringFromRequest('title');
$body = getStringFromRequest('body');
$acr = new ArtifactCanned($ath);
if (!$acr || !is_object($acr)) {
$error_msg .= _('Unable to create ArtifactCanned Object');
// } elseif ($acr->isError()) {
// $error_msg .= $acr->getErrorMessage();
} else {
if (!$acr->create($title,$body)) {
$error_msg .= _('Error inserting').' : '.$acr->getErrorMessage();
$acr->clearError();
} else {
$feedback .= _('Canned Response Inserted');
}
}
//
// Update a canned response
//
} elseif (getStringFromRequest('update_canned')) {
$id = getStringFromRequest('id');
$title = getStringFromRequest('title');
$body = getStringFromRequest('body');
$acr = new ArtifactCanned($ath,$id);
if (!$acr || !is_object($acr)) {
$error_msg .= _('Unable to create ArtifactCanned Object');
} elseif ($acr->isError()) {
$error_msg .= $acr->getErrorMessage();
} else {
if (!$acr->update($title,$body)) {
$error_msg .= _('Error updating').' : '.$acr->getErrorMessage();
$acr->clearError();
} else {
$feedback .= _('Canned Response Updated');
$next = 'add_canned';
}
}
//
// Copy Categories
//
} elseif (getStringFromRequest('copy_opt')) {
$copyid = getStringFromRequest('copyid');
$selectid = getStringFromRequest('selectid');
$copy_rows=count($copyid);
if ($copy_rows > 0) {
//
// create an object for each selected type
//
$result = db_query_params ('SELECT * FROM artifact_extra_field_list
WHERE extra_field_id=$1',
array($selectid));
$typeid = db_result($result,0,'group_artifact_id');
$dest_tracker =& artifactType_get_object($typeid);
if (!$dest_tracker || !is_object($dest_tracker)) {
exit_error(_('ArtifactType could not be created'),'tracker');
} elseif ($dest_tracker->isError()) {
exit_error($dest_tracker->getErrorMessage(),'tracker');
}
//
// Copy elements into a field (box) for each tracker selected
//
$feedback .= _('Copy into Tracker: ');
$feedback .= $dest_tracker->getName();
$aef =new ArtifactExtraField($dest_tracker,$selectid);
if (!$aef || !is_object($aef)) {
$error_msg .= _('Unable to create ArtifactExtraField Object');
} elseif ($aef->isError()) {
$error_msg .= $aefe->getErrorMessage();
} else {
$feedback .= ', Box: ';
$feedback .= $aef->getName();
$feedback .= '
';
for ($k=0; $k < $copy_rows; $k++) {
$aefe = new ArtifactExtraFieldElement($aef);
if (!$aefe || !is_object($aefe)) {
$error_msg .= 'Unable to create ArtifactExtraFieldElement Object';
} elseif ($aefe->isError()) {
$error_msg .= $aefe->getErrorMessage();
} else {
$name=$ath->getElementName($copyid[$k]);
$status=$ath->getElementStatusID($copyid[$k]);
if (!$aefe->create($name,$status)) {
$error_msg .= _('Error inserting an element').': '.$aefe->getErrorMessage();
$aefe->clearError();
} else {
$feedback .= '- Copied choice:'. $name;
}
}
}
}
}
$feedback .= '
';
//
// Update an extra field
//
} elseif (getStringFromRequest('update_box')) {
$id = getStringFromRequest('id');
$name = getStringFromRequest('name');
$attribute1 = getStringFromRequest('attribute1');
$attribute2 = getStringFromRequest('attribute2');
$is_required = getStringFromRequest('is_required');
$alias = getStringFromRequest('alias');
$ac = new ArtifactExtraField($ath,$id);
if (!$ac || !is_object($ac)) {
$error_msg .= _('Unable to create ArtifactExtraField Object');
} elseif ($ac->isError()) {
$error_msg .= $ac->getErrorMessage();
} else {
if (!$ac->update($name,$attribute1,$attribute2,$is_required,$alias)) {
$error_msg .= _('Error updating a custom field').' : '.$ac->getErrorMessage();
$ac->clearError();
} else {
$feedback .= _('Custom Field updated');
$next = 'add_extrafield';
}
}
//
// Update an Element
//
} elseif (getStringFromRequest('update_opt')) {
$id = getStringFromRequest('id');
$name = getStringFromRequest('name');
$boxid = getStringFromRequest('boxid');
$ac = new ArtifactExtraField($ath,$boxid);
if (!$ac || !is_object($ac)) {
$error_msg .= _('Unable to create ArtifactExtraField Object');
} elseif ($ac->isError()) {
$error_msg .= $ac->getErrorMessage();
} else {
$ao = new ArtifactExtraFieldElement($ac,$id);
if (!$ao || !is_object($ao)) {
$error_msg .= _('Unable to create ArtifactExtraFieldElement Object');
} elseif ($ao->isError()) {
$error_msg .= $ao->getErrorMessage();
} else {
$name = getStringFromRequest('name');
$status_id = getIntFromRequest('status_id');
if (!$ao->update($name,$status_id)) {
$error_msg .= _('Error updating a custom field').' : '.$ao->getErrorMessage();
$ao->clearError();
} else {
$feedback .= _('Element updated');
$next = 'add_extrafield';
}
}
}
//
// Clone a tracker's elements to this tracker
//
} elseif (getStringFromRequest('clone_tracker')) {
$clone_id = getIntFromRequest('clone_id');
if (!$clone_id) {
exit_missing_param('',array(_('Clone ID')),'tracker');
}
if (!$ath->cloneFieldsFrom($clone_id)) {
exit_error(_('Error cloning fields: ').$ath->getErrorMessage(),'tracker');
} else {
$feedback .= _('Successfully Cloned Tracker Fields ');
$next = '*main*';
}
//
// Update a tracker
//
} elseif (getStringFromRequest('update_type')) {
$name = getStringFromRequest('name');
$description = getStringFromRequest('description');
$email_all = getStringFromRequest('email_all');
$email_address = getStringFromRequest('email_address');
$due_period = getStringFromRequest('due_period');
$status_timeout = getStringFromRequest('status_timeout');
$use_resolution = getStringFromRequest('use_resolution');
$submit_instructions = getStringFromRequest('submit_instructions');
$browse_instructions = getStringFromRequest('browse_instructions');
if (!$ath->update($name,$description,$email_all,$email_address,
$due_period,$status_timeout,$use_resolution,$submit_instructions,$browse_instructions)) {
$error_msg .= _('Error updating').' : '.$ath->getErrorMessage();
$ath->clearError();
} else {
$feedback .= _('Tracker Updated');
}
//
// Update the browse list of a tracker
//
} elseif (getStringFromRequest('customize_list')) {
$browse_fields = getArrayFromRequest('browse_fields');
foreach ($browse_fields as $name => $pos) {
if ($pos)
$list_fields[$pos][] = $name;
}
ksort($list_fields);
$browse_fields = array();
foreach ($list_fields as $pos => $list_name) {
sort($list_name);
foreach ($list_name as $name)
$browse_fields[] = $name;
}
$browse_fields = join(',', $browse_fields);
if (!$ath->setBrowseList($browse_fields)) {
$error_msg .= _('Error updating').' : '.$ath->getErrorMessage();
$ath->clearError();
} else {
$feedback .= _('Tracker Updated');
}
//
// Delete a tracker
//
} elseif (getStringFromRequest('delete')) {
$sure = getStringFromRequest('sure');
$really_sure = getStringFromRequest('really_sure');
if (!$ath->delete($sure,$really_sure)) {
$error_msg .= _('Error updating').' : '.$ath->getErrorMessage();
} else {
session_redirect('/tracker/admin/?group_id='.$group_id.'&tracker_deleted=1');
}
//
// Update a template
//
} elseif (getStringFromRequest('update_template')) {
$body = getStringFromRequest('body');
$body = preg_replace('/^\s*