/**
  *	createTrackers - creates all the standard trackers for a given Group.
  *
  *	@return	boolean	success.
  */
 function createTrackers()
 {
     // first, check if trackers already exist
     $res = db_query("SELECT * FROM artifact_group_list \n\t\t\tWHERE group_id='" . $this->Group->getID() . "' AND datatype > 0");
     if (db_numrows($res) > 0) {
         return true;
     }
     include $GLOBALS['gfcommon'] . 'tracker/artifact_type_definitions.php';
     db_begin();
     foreach ($trackers as $trk) {
         $at = new ArtifactType($this->Group);
         if (!$at || !is_object($at)) {
             db_rollback();
             $this->setError('Error Getting Tracker Object');
             return false;
         }
         //
         //	Create a tracker
         //
         if (!$at->create(addslashes($trk[0]), addslashes($trk[1]), $trk[2], $trk[3], $trk[4], $trk[5], $trk[6], $trk[7], $trk[8], $trk[9], $trk[10])) {
             db_rollback();
             $this->setError('Error Creating Tracker: ' . $at->getErrorMessage());
             return false;
         } else {
             //
             //	Create each field in the tracker
             //
             foreach ($trk[11] as $fld) {
                 $aef = new ArtifactExtraField($at);
                 //print($fld[0])."***|";
                 if (!$aef->create(addslashes($fld[0]), $fld[1], $fld[2], $fld[3], $fld[4])) {
                     db_rollback();
                     $this->setError('Error Creating Extra Field: ' . $aef->getErrorMessage());
                     return false;
                 } else {
                     //
                     //	create each element in the field
                     //
                     foreach ($fld[5] as $el) {
                         //print($el)."**";
                         $aefe = new ArtifactExtraFieldElement($aef);
                         /*	 Allow us to provide a list as an element
                         			 value - in doing so, we can provide a
                         			 status field value for people wanting to
                         			 set up custom statuses. The first element
                         			 of any given array is the name, the second
                         			 is the status_id (0, 1 or 2)*/
                         $el_name = $el;
                         $el_status = 0;
                         if (is_array($el) && $fld[1] == ARTIFACT_EXTRAFIELDTYPE_STATUS) {
                             $el_name = $el[0];
                             $el_status = $el[1];
                         }
                         if (!$aefe->create(addslashes($el_name), $el_status)) {
                             db_rollback();
                             $this->setError('Error Creating Extra Field Element: ' . $aefe->getErrorMessage());
                             return false;
                         }
                     }
                 }
             }
         }
     }
     db_commit();
     return true;
 }
<?php

//
//  FORM TO COPY Choices configured by admin for extra_field BOXES
//
$id = getIntFromRequest('id');
$fb = new ArtifactExtraField($ath, $id);
$title = sprintf(_('Copy choices from custom field %1$s'), $fb->getName());
$ath->adminHeader(array('title' => $title));
echo "<h3>" . $title . "</h3>";
$efearr =& $ath->getExtraFieldElements($id);
for ($i = 0; $i < count($efearr); $i++) {
    $field_id_arr[] = $efearr[$i]['element_id'];
    $field_arr[] = $efearr[$i]['element_name'];
}
echo '<table>';
echo '<tr>';
echo '<td></td><td><center><strong>';
echo _('Copy From');
echo '<br />';
echo $fb->getName();
echo '</center></strong></td><td></td><td><strong><center>';
echo _('Into trackers and custom fields');
echo '</center></strong></tr><tr><td><strong><center>';
echo '</center></strong></td>';
echo '<td valign=top>';
?>
		
		<form action="<?php 
echo getStringFromServer('PHP_SELF') . '?group_id=' . $group_id . '&atid=' . $ath->getID();
?>
示例#3
0
         echo "Could Not Insert AEFD for artifactgroup " . db_error();
         db_rollback();
         exit(10);
     }
     $res3 = db_query("UPDATE artifact_history SET old_value='{$group_name}',field_name='Group'\n\t\t\tWHERE old_value='{$artgroup_id}' AND field_name='artifact_group_id' AND artifact_id IN\n            (SELECT artifact_id FROM artifact WHERE group_artifact_id='{$gaid}')");
     if (!$res3) {
         echo "Could Not update history artifactgroup " . db_error();
         db_rollback();
         exit(11);
     }
 }
 if ($ur) {
     //
     //	Convert ArtifactResolution To Extra Field
     //
     $aef = new ArtifactExtraField($at);
     $aef->create('Resolution', ARTIFACT_EXTRAFIELDTYPE_SELECT, 0, 0);
     $resolutionbox_id = $aef->getID();
     if (!$resolutionbox_id) {
         echo "\nCould Not Get resolutionbox_id " . $aef->getErrorMessage();
         db_rollback();
         exit(12);
     }
     $resc = db_query("SELECT * FROM artifact_resolution");
     for ($j = 0; $j < db_numrows($resc); $j++) {
         $resolution_id = db_result($resc, $j, 'id');
         $resolution_name = addslashes(db_result($resc, $j, 'resolution_name'));
         if (strlen($resolution_name) < 1) {
             $resolution_name = '[empty]';
         }
         $efe = new ArtifactExtraFieldElement($aef);
示例#4
0
function artifacttype_to_soap($at_arr)
{
    $return = array();
    for ($i = 0; $i < count($at_arr); $i++) {
        if ($at_arr[$i]->isError()) {
            //skip if error
        } else {
            // Get list of extra fields for this artifact
            $extrafields = array();
            $tmpextrafields = $at_arr[$i]->getExtraFields();
            foreach ($tmpextrafields as $extrafield) {
                $aefobj = new ArtifactExtraField($at_arr[$i], $extrafield["extra_field_id"]);
                // array of available values
                $avtmp = $aefobj->getAvailableValues();
                $avs = array();
                for ($j = 0; $j < count($avtmp); $j++) {
                    $avs[$j]["element_id"] = $avtmp[$j]["element_id"];
                    $avs[$j]["element_name"] = $avtmp[$j]["element_name"];
                    $avs[$j]["status_id"] = $avtmp[$j]["status_id"];
                }
                $extrafields[] = array("extra_field_id" => $aefobj->getID(), "field_name" => $aefobj->getName(), "field_type" => $aefobj->getType(), "attribute1" => $aefobj->getAttribute1(), "attribute2" => $aefobj->getAttribute2(), "is_required" => $aefobj->isRequired(), "alias" => $aefobj->getAlias(), "available_values" => $avs, "default_selected_id" => 0);
            }
            $return[] = array('group_artifact_id' => $at_arr[$i]->data_array['group_artifact_id'], 'group_id' => $at_arr[$i]->data_array['group_id'], 'name' => $at_arr[$i]->data_array['name'], 'description' => $at_arr[$i]->data_array['description'], 'is_public' => $at_arr[$i]->data_array['is_public'], 'allow_anon' => $at_arr[$i]->data_array['allow_anon'], 'due_period' => $at_arr[$i]->data_array['due_period'], 'datatype' => $at_arr[$i]->data_array['datatype'], 'status_timeout' => $at_arr[$i]->data_array['status_timeout'], 'extra_fields' => $extrafields, 'custom_status_field' => $at_arr[$i]->data_array['custom_status_field']);
        }
    }
    return $return;
}
<?php

//
//  FORM TO BUILD SELECTION BOXES
//
$title = sprintf(_('Manage Custom Fields for %s'), $ath->getName());
$ath->adminHeader(array('title' => $title));
echo "<h2>" . $title . "</h2>";
/*
	List of possible user built Selection Boxes for an ArtifactType
*/
$efarr =& $ath->getExtraFields();
$eftypes = ArtifactExtraField::getAvailableTypes();
$keys = array_keys($efarr);
echo "<br />";
$rows = count($keys);
if ($rows > 0) {
    $title_arr = array();
    $title_arr[] = _('Custom Fields Defined');
    $title_arr[] = _('Type');
    $title_arr[] = _('Elements Defined');
    $title_arr[] = _('Add Options');
    echo $GLOBALS['HTML']->listTableTop($title_arr);
    for ($k = 0; $k < $rows; $k++) {
        $i = $keys[$k];
        echo '<tr ' . $GLOBALS['HTML']->boxGetAltRowStyle($i) . '>' . '<td>' . $efarr[$i]['field_name'] . '<a href="' . getStringFromServer('PHP_SELF') . '?update_box=1&amp;id=' . $efarr[$i]['extra_field_id'] . '&amp;group_id=' . $group_id . '&amp;atid=' . $ath->getID() . '">' . ' [' . _('Edit') . ']</a>' . '<a href="' . getStringFromServer('PHP_SELF') . '?deleteextrafield=1&amp;id=' . $efarr[$i]['extra_field_id'] . '&amp;group_id=' . $group_id . '&amp;atid=' . $ath->getID() . '">' . ' [' . _('Delete') . ']</a>' . '<a href="' . getStringFromServer('PHP_SELF') . '?copy_opt=1&amp;id=' . $efarr[$i]['extra_field_id'] . '&amp;group_id=' . $group_id . '&amp;atid=' . $ath->getID() . '">' . ' [' . _('Copy') . ']</a>' . '</td>';
        echo '<td>' . $eftypes[$efarr[$i]['field_type']] . '</td>';
        /*
        	List of possible options for a user built Selection Box
        */
        $elearray = $ath->getExtraFieldElements($efarr[$i]['extra_field_id']);
 /**
  *	cloneFieldsFrom - clone all the fields and elements from another tracker
  *
  *	@return	boolean	true/false on success
  */
 function cloneFieldsFrom($clone_tracker_id)
 {
     global $sys_template_group;
     $g =& group_get_object($sys_template_group);
     if (!$g || !is_object($g)) {
         $this->setError('Could Not Get Template Group');
         return false;
     } elseif ($g->isError()) {
         $this->setError('Template Group Error ' . $g->getErrorMessage());
         return false;
     }
     $at =& new ArtifactType($g, $clone_tracker_id);
     if (!$at || !is_object($at)) {
         $this->setError('Could Not Get Tracker To Clone');
         return false;
     } elseif ($at->isError()) {
         $this->setError('Clone Tracker Error ' . $at->getErrorMessage());
         return false;
     }
     $efs =& $at->getExtraFields();
     //
     //	Iterate list of extra fields
     //
     db_begin();
     foreach ($efs as $ef) {
         //new field in this tracker
         $nef = new ArtifactExtraField($this);
         if (!$nef->create(addslashes(util_unconvert_htmlspecialchars($ef['field_name'])), $ef['field_type'], $ef['attribute1'], $ef['attribute2'], $ef['is_required'], $ef['alias'])) {
             db_rollback();
             $this->setError('Error Creating New Extra Field: ' . $nef->getErrorMessage());
             return false;
         }
         //
         //	Iterate the elements
         //
         $resel = db_query("SELECT * FROM artifact_extra_field_elements WHERE extra_field_id='" . $ef['extra_field_id'] . "'");
         while ($el =& db_fetch_array($resel)) {
             //new element
             $nel = new ArtifactExtraFieldElement($nef);
             if (!$nel->create(addslashes(util_unconvert_htmlspecialchars($el['element_name'])), $el['status_id'])) {
                 db_rollback();
                 $this->setError('Error Creating New Extra Field Element: ' . $nel->getErrorMessage());
                 return false;
             }
         }
     }
     db_commit();
     return true;
 }