[evolvis-commits] r10047: adding the rest of the multiple renderer code for unlimited fields in tracker↵
mirabilos at evolvis.org
mirabilos at evolvis.org
Thu Feb 24 17:36:42 CET 2011
Author: mirabilos
Date: 2011-02-24 17:36:42 +0100 (Thu, 24 Feb 2011)
New Revision: 10047
Modified:
trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactExtraField.class
trunk/gforge_base/evolvisforge-5.1/gforge/www/include/html.php
trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class
trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-addextrafield.php
trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-updateextrafield.php
trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/updates.php
trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/include/ArtifactTypeHtml.class
Log:
adding the rest of the multiple renderer code for unlimited fields in tracker
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactExtraField.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactExtraField.class 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactExtraField.class 2011-02-24 16:36:42 UTC (rev 10047)
@@ -88,10 +88,13 @@
* a tracker. This function is only used to create rows for boxes
* configured by the admin.
*
- * @param string Name of the box.
+ * @param string Name of the extra field.
+ * @param int The type of field - radio, select, text, textarea
+ * @param int Attribute1 - for text (size) and textarea (rows)
+ * @param int Attribute2 - for text (maxlength) and textarea (cols)
* @return true on success / false on failure.
*/
- function create($name) {
+ function create($name,$field_type,$attribute1,$attribute2) {
global $Language;
//
@@ -105,8 +108,9 @@
$this->setPermissionDeniedError();
return false;
}
- $sql="INSERT INTO artifact_extra_field_list (group_artifact_id,field_name)
- VALUES ('".$this->ArtifactType->getID()."','".htmlspecialchars($name)."')";
+ $sql="INSERT INTO artifact_extra_field_list (group_artifact_id,field_name,field_type,attribute1,attribute2)
+ VALUES ('".$this->ArtifactType->getID()."','".htmlspecialchars($name)."',
+ '$field_type','$attribute1','$attribute2')";
$result=db_query($sql);
@@ -117,14 +121,14 @@
$this->setError(db_error());
return false;
}
- //
- // Now set up our internal data structures
- //
- if (!$this->fetchData($id)) {
- return false;
- }
+ //
+ // Now set up our internal data structures
+ //
+ if (!$this->fetchData($id)) {
+ return false;
+ }
+ }
- }
/**
* fetchData - re-fetch the data for this ArtifactExtraField from the database.
*
@@ -172,21 +176,59 @@
}
/**
+ * getAttribute1 - get the attribute1 field.
+ *
+ * @return int The first attribute.
+ */
+ function getAttribute1() {
+ return $this->data_array['attribute1'];
+ }
+
+ /**
+ * getAttribute2 - get the attribute2 field.
+ *
+ * @return int The second attribute.
+ */
+ function getAttribute2() {
+ return $this->data_array['attribute2'];
+ }
+
+ /**
+ * getAvailableTypes - the types of text fields and their names available.
+ *
+ * @return array types.
+ */
+ function getAvailableTypes() {
+ global $Language;
+ return array(
+ 1=>$Language->getText('tracker_admin_build_boxes','box_type_select'),
+ 3=>$Language->getText('tracker_admin_build_boxes','box_type_radio'),
+ 4=>$Language->getText('tracker_admin_build_boxes','box_type_text'),
+ 6=>$Language->getText('tracker_admin_build_boxes','box_type_textarea')
+ );
+ }
+
+ /**
* update - update a row in the table used to store box names
* for a tracker. This function is only to update rowsf
* for boxes configured by
* the admin.
*
- * @param string Name of the box.
+ * @param string Name of the field.
+ * @param int Attribute1 - for text (size) and textarea (rows)
+ * @param int Attribute2 - for text (maxlength) and textarea (cols)
* @return boolean success.
*/
- function update($name) {
+ function update($name,$attribute1,$attribute2) {
if (!$this->ArtifactType->userIsAdmin()) {
$this->setPermissionDeniedError();
return false;
}
$sql="UPDATE artifact_extra_field_list
- SET field_name='".htmlspecialchars($name)."'
+ SET
+ field_name='".htmlspecialchars($name)."',
+ attribute1='$attribute1',
+ attribute2='$attribute2'
WHERE extra_field_id='". $this->getID() ."'
AND group_artifact_id='".$this->ArtifactType->getID()."'";
$result=db_query($sql);
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/html.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/html.php 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/html.php 2011-02-24 16:36:42 UTC (rev 10047)
@@ -473,7 +473,7 @@
* @param string The value to be checked
* @param bool Whether to make 'No Change' selected.
*/
-function html_build_priority_select_box ($name='priority', $checked_val='5', $nochange=false) {
+function html_build_priority_select_box ($name='priority', $checked_val='3', $nochange=false) {
global $Language;
?>
<select name="<?php echo $name; ?>">
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab 2011-02-24 16:36:42 UTC (rev 10047)
@@ -2693,6 +2693,14 @@
tracker_admin_add_users title Add/Update Tracker User Permissions to $1
tracker_admin_add_users update_permissions Update Developer Permissions
tracker_admin_add_users user_name User Name
+tracker_admin_build_boxes box_type_select Select Box
+tracker_admin_build_boxes box_type_radio Radio Buttons
+tracker_admin_build_boxes box_type_text Text Field
+tracker_admin_build_boxes box_type_textarea Text Area
+tracker_admin_build_boxes box_type Type of extra field
+tracker_admin_build_boxes box_sizerows Text Fields and Text Areas need to have Size/Maxlength and Rows/Cols defined, respectively.
+tracker_admin_build_boxes box_sizeattr1 Text Field Size/Text Area Rows
+tracker_admin_build_boxes box_sizeattr2 Text Field Maxlength/Text Area Columns
tracker_admin_build_boxes title Add/Update Extra Fields
tracker_admin_build_boxes edit Edit
tracker_admin_build_boxes opt_title Add/Update Extra Field Elements in: $1
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class 2011-02-24 16:36:42 UTC (rev 10047)
@@ -68,29 +68,23 @@
$labels = array();
$links = array();
- $labels[] = $Language->getText('group','short_pm');
- $links[] = '/pm/?group_id='.$group_id;
-
if ($group_project_id) {
+ $labels[] = (($pg) ? $pg->getName() .': ' : '') .$Language->getText('pm_include_grouphtml','browse_task');
+ $links[] = '/pm/task.php?group_id='.$group_id.'&group_project_id='.$group_project_id.'&func=browse';
if (session_loggedin()) {
$labels[] = $Language->getText('pm_include_grouphtml','add_task');
$links[] = '/pm/task.php?group_id='.$group_id.'&group_project_id='.$group_project_id.'&func=addtask';
}
- $labels[] = $Language->getText('pm_include_grouphtml','browse_task');
- $links[] = '/pm/task.php?group_id='.$group_id.'&group_project_id='.$group_project_id.'&func=browse';
$labels[] = $Language->getText('pm_include_grouphtml','gantt_chart');
$links[] = 'javascript:gantt_window()';
}
$labels[] = $Language->getText('pm_include_grouphtml','reporting');
$links[] = '/pm/reporting/?group_id='.$group_id;
$labels[] = $Language->getText('pm_include_grouphtml','admin');
- $links[] = '/pm/admin/?group_id='.$group_id;
+ $links[] = '/pm/admin/?group_id='.$group_id.'&group_project_id='.$group_project_id.'&update_pg=1';
echo ($HTML->subMenu($labels,$links));
- if ($pg) {
- echo "<h3>".$Language->getText('pm_include_grouphtml','project').": ". $pg->getName() ."</h3>";
- }
}
function pm_footer($params) {
@@ -254,8 +248,6 @@
for ( $i = 0; $i < $rows; $i++ ) {
-
-
echo '
<tr bgcolor="'.html_get_priority_color( $pt_arr[$i]->getPriority() ).'">'.
'<td><a href="/pm/task.php?func=detailtask'.
@@ -269,16 +261,9 @@
date('Y-m-d',$pt_arr[$i]->getEndDate() ).'</td>'.
'<td>'. $pt_arr[$i]->getPercentComplete() .'%</td></tr>';
-
-
}
echo $GLOBALS['HTML']->listTableBottom();
-
-
-
-
-
}
}
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-addextrafield.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-addextrafield.php 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-addextrafield.php 2011-02-24 16:36:42 UTC (rev 10047)
@@ -45,9 +45,12 @@
echo '</td>';
echo '<td>';
- echo '<a href="'.$PHP_SELF.'?add_opt=1&boxid='.
- $efarr[$i]['extra_field_id'].'&group_id='.$group_id.'&atid='. $ath->getID() .'">['.
- $Language->getText('tracker_admin_build_boxes', 'box_add_choices').']</a>';
+ if ($efarr[$i]['field_type'] == ARTIFACT_EXTRAFIELDTYPE_SELECT || $efarr[$i]['field_type'] == ARTIFACT_EXTRAFIELDTYPE_RADIO) {
+ echo '<a href="'.$PHP_SELF.'?add_opt=1&boxid='.
+ $efarr[$i]['extra_field_id'].'&group_id='.$group_id.'&atid='. $ath->getID() .'">['.
+ $Language->getText('tracker_admin_build_boxes', 'box_add_choices').']</a>';
+ }
+ echo '</td>';
}
echo '</tr>';
echo $GLOBALS['HTML']->listTableBottom();
@@ -62,6 +65,18 @@
<strong><?php echo $Language->getText('tracker_admin_build_boxes','box_name') ?>:</strong><br />
<input type="text" name="name" value="" size="15" maxlength="30" /><br />
<p>
+ <strong><?php echo $Language->getText('tracker_admin_build_boxes','box_type') ?>:</strong><br />
+ <input type="radio" name="field_type" value="1"> <?php echo $Language->getText('tracker_admin_build_boxes','box_type_select'); ?><br />
+ <input type="radio" name="field_type" value="3"> <?php echo $Language->getText('tracker_admin_build_boxes','box_type_radio'); ?><br />
+ <input type="radio" name="field_type" value="4"> <?php echo $Language->getText('tracker_admin_build_boxes','box_type_text'); ?><br />
+ <input type="radio" name="field_type" value="6"> <?php echo $Language->getText('tracker_admin_build_boxes','box_type_textarea'); ?><br />
+ <p>
+ <?php echo $Language->getText('tracker_admin_build_boxes','box_sizerows'); ?><br />
+ <?php echo $Language->getText('tracker_admin_build_boxes','box_sizeattr1'); ?>
+ <input type="text" name="attribute1" value="0" size="2" maxlength="2"><br />
+ <?php echo $Language->getText('tracker_admin_build_boxes','box_sizeattr2'); ?>
+ <input type="text" name="attribute2" value="0" size="2" maxlength="2">
+ <p>
<strong><span style="color:red"><?php echo $Language->getText('tracker_admin_build_boxes','box_warning') ?></span></strong></p>
<p>
<input type="submit" name="post_changes" value="<?php echo$Language->getText('general','submit') ?>" /></p>
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-updateextrafield.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-updateextrafield.php 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/form-updateextrafield.php 2011-02-24 16:36:42 UTC (rev 10047)
@@ -25,6 +25,10 @@
<p>
<strong><?php echo $Language->getText('tracker_admin_build_boxes','box_name') ?>:</strong><br />
<input type="text" name="name" value="<?php echo $ac->getName(); ?>" /></p>
+ <p>
+ <?php echo $Language->getText('tracker_admin_build_boxes','box_sizerows'); ?><br />
+ <?php echo $Language->getText('tracker_admin_build_boxes','box_sizeattr1'); ?> <input type="text" name="attribute1" value="<?php echo $ac->getAttribute1(); ?>" size="2" maxlength="2"><br />
+ <?php echo $Language->getText('tracker_admin_build_boxes','box_sizeattr2'); ?> <input type="text" name="attribute2" value="<?php echo $ac->getAttribute2(); ?>" size="2" maxlength="2">
<p>
<strong><span style="color:red"><?php echo $Language->getText('tracker_admin_build_boxes','box_change_warning') ?>
</span></strong></p>
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/updates.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/updates.php 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/admin/updates.php 2011-02-24 16:36:42 UTC (rev 10047)
@@ -11,7 +11,7 @@
// } elseif ($ab->isError())
// $feedback .= $ab->getErrorMessage();
} else {
- if (!$ab->create($name)) {
+ if (!$ab->create($name,$field_type,$attribute1,$attribute2)) {
$feedback .= $Language->getText('tracker_admin_build_boxes','error_inserting_box').': '.$ab->getErrorMessage();
$ab->clearError();
} else {
@@ -203,7 +203,7 @@
} elseif ($ac->isError()) {
$feedback .= $ac->getErrorMessage();
} else {
- if (!$ac->update($name)) {
+ if (!$ac->update($name,$attribute1,$attribute2)) {
$feedback .= $Language->getText('tracker_admin_build_boxes','error_updating').' : '.$ac->getErrorMessage();
$ac->clearError();
} else {
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/include/ArtifactTypeHtml.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/include/ArtifactTypeHtml.class 2011-02-24 16:36:40 UTC (rev 10046)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/include/ArtifactTypeHtml.class 2011-02-24 16:36:42 UTC (rev 10047)
@@ -79,12 +79,16 @@
//TODO - add code for "display only" such as mod-limited and detail.php pages
+ echo '
+ <!-- Start Extra Fields Rendering -->
+ <tr>';
$col_count=0;
for ($i=0; $i<$count; $i++) {
+//echo "|||$col_count***".$efarr[$i]['attribute2'];
if ($efarr[$i]['field_type'] == ARTIFACT_EXTRAFIELDTYPE_SELECT) {
echo '
- <td width="50%"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
+ <td width="50%" valign="top"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
$this->renderSelect($efarr[$i]['extra_field_id'],$selected[$efarr[$i]['extra_field_id']],$show_100,$text_100).'</td>';
@@ -93,19 +97,41 @@
} elseif ($efarr[$i]['field_type'] == ARTIFACT_EXTRAFIELDTYPE_RADIO) {
echo '
- <td width="50%"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
+ <td width="50%" valign="top"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
$this->renderRadio($efarr[$i]['extra_field_id'],$selected[$efarr[$i]['extra_field_id']],$show_100,$text_100).'</td>';
} elseif ($efarr[$i]['field_type'] == ARTIFACT_EXTRAFIELDTYPE_TEXT) {
+ //text fields might be really wide, so need a row to themselves.
+ if (($col_count == 1) && ($efarr[$i]['attribute1'] > 30)) {
+ $col_count = 0;
+ $colspan=2;
+ echo '
+ <td> </td>
+ </tr>
+ <tr>';
+ } else {
+ $colspan=1;
+ }
echo '
- <td width="50%"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
+ <td width="50%" colspan="'.$colspan.'" valign="top"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
$this->renderTextField($efarr[$i]['extra_field_id'],$selected[$efarr[$i]['extra_field_id']],$efarr[$i]['attribute1'],$efarr[$i]['attribute2']).'</td>';
} elseif ($efarr[$i]['field_type'] == ARTIFACT_EXTRAFIELDTYPE_TEXTAREA) {
+ //text areas might be really wide, so need a row to themselves.
+ if (($col_count == 1) && ($efarr[$i]['attribute2'] > 30)) {
+ $col_count = 0;
+ $colspan=2;
+ echo '
+ <td> </td>
+ </tr>
+ <tr>';
+ } else {
+ $colspan=1;
+ }
echo '
- <td width="50%"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
+ <td width="50%" colspan="'.$colspan.'" valign="top"><strong>'.$efarr[$i]['field_name'].'</strong><br />'.
$this->renderTextArea($efarr[$i]['extra_field_id'],$selected[$efarr[$i]['extra_field_id']],$efarr[$i]['attribute1'],$efarr[$i]['attribute2']).'</td>';
// } elseif ($efarr[$i]['field_type'] == ARTIFACT_EXTRAFIELDTYPE_MULTISELECT) {
@@ -115,11 +141,19 @@
$col_count++;
//we've done two columns - if there are more to do, start a new row
if (($col_count == 2) && ($i != $count-1)) {
+ $col_count = 0;
echo '
</tr>
<tr>';
}
}
+ if ($col_count == 1) {
+ echo '
+ <td> </td>';
+ }
+ echo '
+ </tr>
+ <!-- End Extra Fields Rendering -->';
}
/**
More information about the evolvis-commits
mailing list