[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