[Fusionforge-commits] FusionForge branch master updated. f2532cf51e6d3ae3a7b70fa5e683ee737b5ab58e

Franck VILLAUME nerville at fusionforge.org
Fri Feb 28 10:47:05 CET 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, master has been updated
       via  f2532cf51e6d3ae3a7b70fa5e683ee737b5ab58e (commit)
       via  b725618d31667cf718bacc90e9fc4b51f2cb7443 (commit)
      from  c3b783b9cbad82d3f612bd440e5137b5eed5f595 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f2532cf51e6d3ae3a7b70fa5e683ee737b5ab58e
Author: Stéphane-Eymeric Bredthauer <sebredthauer at gmail.com>
Date:   Thu Feb 27 17:32:10 2014 +0100

    Browse trackers: add Next/Previous + util_make_link + cosmetic
    
    Signed-off-by: Franck Villaume <franck.villaume at trivialdev.com>

diff --git a/src/common/tracker/actions/browse.php b/src/common/tracker/actions/browse.php
index c3c444c..9e434a9 100644
--- a/src/common/tracker/actions/browse.php
+++ b/src/common/tracker/actions/browse.php
@@ -8,6 +8,8 @@
  * Copyright 2012-2014, Franck Villaume - TrivialDev
  * Copyright 2011, Iñigo Martinez
  * Copyright 2012, Thorsten “mirabilos” Glaser <t.glaser at tarent.de>
+ * Copyright 2014, Stéphane-Eymeric Bredthauer
+ * http://fusionforge.org
  *
  * This file is part of FusionForge. FusionForge is free software;
  * you can redistribute it and/or modify it under the terms of the
@@ -395,8 +397,7 @@ if (db_numrows($res)>0) {
 		echo '</optgroup>';
 	echo '</select>
 	<noscript><input type="submit" name="run" value="'._('Power Query').'" /></noscript>
-	  <a href="/tracker/?atid='. $ath->getID().'&group_id='.$group_id.'&func=query">'.
-	_('Build Query').'</a>
+	  '.util_make_link('/tracker/?atid='. $ath->getID().'&group_id='.$group_id.'&func=query', _('Build Query')).'
 	</td></tr></table>
 	</form>';
 	?>
@@ -407,8 +408,8 @@ if (db_numrows($res)>0) {
 		/* ]]> */</script>
 	<?php
 } else {
-	echo '<strong>
-	<a href="/tracker/?atid='. $ath->getID().'&group_id='.$group_id.'&func=query">'._('Build Query').'</a></strong>';
+
+	echo util_make_link('/tracker/?atid='. $ath->getID().'&group_id='.$group_id.'&func=query','<strong>'._('Build Query').'</strong>');
 }
 echo '
 	</div>
@@ -416,15 +417,15 @@ echo '
 	<form action="'. getStringFromServer('PHP_SELF') .'?group_id='.$group_id.'&atid='.$ath->getID().'" method="post">
 	<input type="hidden" name="query_id" value="-1" />
 	<input type="hidden" name="set" value="custom" />
-	<table class="fullwidth">
+	<table>
 	<tr>
 	<td>
-	'._('Assignee')._(': '). $tech_box .'
+	'._('Assignee')._(': ').'<br>'. $tech_box .'
 	</td>
-	<td class="align-center">
-	'._('State')._(': '). $status_box .'
+	<td>
+	'._('State')._(': ').'<br>'. $status_box .'
 	</td>
-	<td class="align-right">';
+	<td>';
 
 // Compute the list of fields which can be sorted.
 $efarr = $ath->getExtraFields(array(ARTIFACT_EXTRAFIELDTYPE_TEXT,
@@ -440,10 +441,11 @@ for ($k=0; $k<count($keys); $k++) {
 	$order_arr[] = $efarr[$i]['extra_field_id'];
 }
 
-echo _('Order by').
+echo _('Order by')._(': ').'<br>'.
 	html_build_select_box_from_arrays($order_arr,$order_name_arr,'_sort_col',$_sort_col,false) .
 	html_build_select_box_from_arrays($sort_arr,$sort_name_arr,'_sort_ord',$_sort_ord,false) .
-	'<input type="submit" name="submit" value="'._('Quick Browse').'" />';
+	'</td>
+	<td><br><input type="submit" name="submit" value="'._('Quick Browse').'" /></td>';
 
 echo '
 	</td>
@@ -536,9 +538,9 @@ if ($art_arr && $art_cnt > 0) {
 	}
 
 	if ($set=='custom') {
-		$set .= '&_assigned_to='.$_assigned_to.'&_status='.$_status.'&_sort_col='.$_sort_col.'&_sort_ord='.$_sort_ord;
+		$set .= '&_assigned_to='.$_assigned_to.'&_status='.$_status.'&_sort_col='.$_sort_col.'&_sort_ord='.$_sort_ord;
 		if (array_key_exists($ath->getCustomStatusField(),$_extra_fields)) {
-			$set .= '&extra_fields['.$ath->getCustomStatusField().']='.$_extra_fields[$ath->getCustomStatusField()];
+			$set .= '&extra_fields['.$ath->getCustomStatusField().']='.$_extra_fields[$ath->getCustomStatusField()];
 		}
 	}
 
@@ -617,18 +619,20 @@ if ($art_arr && $art_cnt > 0) {
 				echo '<td style="white-space: nowrap;">'.
 				($IS_ADMIN?'<input type="checkbox" name="artifact_id_list[]" value="'.
 				$art_arr[$i]->getID() .'" /> ':'').
-				'<a href="'.getStringFromServer('PHP_SELF').'?func=detail&aid='.
-				$art_arr[$i]->getID() .
-				'&group_id='. $group_id .'&atid='.
-				$ath->getID().'">'.$art_arr[$i]->getID() .
-				'</a></td>';
+				util_make_link(getStringFromServer('PHP_SELF').'?func=detail&aid='.
+				$art_arr[$i]->getID().
+				'&group_id='. $group_id .'&atid='.
+				$ath->getID(),
+				$art_arr[$i]->getID()).
+				'</td>';
 			} elseif ($f == 'summary') {
-		 		echo '<td><a href="'.getStringFromServer('PHP_SELF').'?func=detail&aid='.
+		 		echo '<td>'.
+				util_make_link(getStringFromServer('PHP_SELF').'?func=detail&aid='.
 				$art_arr[$i]->getID() .
-				'&group_id='. $group_id .'&atid='.
-				$ath->getID().'">'.
-				$art_arr[$i]->getSummary().
-				'</a></td>';
+				'&group_id='. $group_id .'&atid='.
+				$ath->getID(),
+				$art_arr[$i]->getSummary()).
+				'</td>';
 			} elseif ($f == 'open_date') {
 				echo '<td>'. (($set != 'closed' && $art_arr[$i]->getOpenDate() < $then)?'* ':'  ') .
 				date(_('Y-m-d H:i'),$art_arr[$i]->getOpenDate()) .'</td>';
@@ -650,13 +654,13 @@ if ($art_arr && $art_cnt > 0) {
 				$tasks_res = $art_arr[$i]->getRelatedTasks();
 				$s ='';
 				while ($rest = db_fetch_array($tasks_res)) {
-					$link = '/pm/task.php?func=detailtask&project_task_id='.$rest['project_task_id'].
-						'&group_id='.$group_id.'&group_project_id='.$rest['group_project_id'];
+					$link = '/pm/task.php?func=detailtask&project_task_id='.$rest['project_task_id'].
+						'&group_id='.$group_id.'&group_project_id='.$rest['group_project_id'];
 					$title = '[T'.$rest['project_task_id'].']';
 					if ($rest['status_id'] == 2) {
 						$title = '<span class="strike">'.$title.'</span>';
 					}
-					print $s.'<a href="'.$link.'" title="'.util_html_secure($rest['summary']).'">'.$title.'</a>';
+					echo $s.util_make_link($link, $title, array( 'title' => util_html_secure($rest['summary'])));
 					$s = ' ';
 				}
 				echo '</td>';
@@ -697,7 +701,11 @@ if ($art_arr && $art_cnt > 0) {
 	$pages = $art_cnt / $paging;
 	$currentpage = intval($start / $paging);
 
-	if ($pages >= 1) {
+	if ($start > 0) {
+		echo util_make_link (getStringFromServer('PHP_SELF').'?func=browse&group_id='.$group_id.'&atid='.$ath->getID().'&set='. $set.'&start='.($start-$paging),'<strong>← '._('previous').'</strong>');
+		echo '  ';
+	}
+	if ($pages > 1) {
 		$skipped_pages=false;
 		for ($j=0; $j<$pages; $j++) {
 			if ($pages > 20) {
@@ -714,11 +722,13 @@ if ($art_arr && $art_cnt > 0) {
 			if ($j * $paging == $start) {
 				echo '<strong>'.($j+1).'</strong>  ';
 			} else {
-				echo '<a href="'.getStringFromServer('PHP_SELF')."?func=browse&group_id=".$group_id.'&atid='.$ath->getID().'&set='. $set.'&start='.($j*$paging).'"><strong>'.($j+1).'</strong></a>  ';
+				echo util_make_link(getStringFromServer('PHP_SELF').'?func=browse&group_id='.$group_id.'&atid='.$ath->getID().'&set='. $set.'&start='.($j*$paging), '<strong>'.($j+1).'</strong>').'  ';
 			}
 		}
 	}
-
+	if ( $art_cnt > $start + $paging) {
+		echo util_make_link (getStringFromServer('PHP_SELF').'?func=browse&group_id='.$group_id.'&atid='.$ath->getID().'&set='. $set.'&start='.($start+$paging),'<strong>'._('next').' →</strong>');
+	}
 	echo '<div style="display:table;width:100%">';
 	echo '<div style="display:table-row">';
 

commit b725618d31667cf718bacc90e9fc4b51f2cb7443
Author: Stéphane-Eymeric Bredthauer <sebredthauer at gmail.com>
Date:   Thu Feb 27 17:38:21 2014 +0100

    Browse tasks: add page navigation + sort order + util_make_link + cosmetic
    
    Signed-off-by: Franck Villaume <franck.villaume at trivialdev.com>

diff --git a/src/common/pm/ProjectTaskFactory.class.php b/src/common/pm/ProjectTaskFactory.class.php
index 5d0b2e6..1bd1ed3 100644
--- a/src/common/pm/ProjectTaskFactory.class.php
+++ b/src/common/pm/ProjectTaskFactory.class.php
@@ -6,6 +6,7 @@
  * Copyright 2002, Tim Perdue/GForge, LLC
  * Copyright 2009, Roland Mas
  * Copyright 2014, Franck Villaume - TrivialDev
+ * Copyright 2014, Stéphane-Eymeric Bredthauer
  *
  * This file is part of FusionForge. FusionForge is free software;
  * you can redistribute it and/or modify it under the terms of the
@@ -42,6 +43,7 @@ class ProjectTaskFactory extends Error {
 	 */
 	var $project_tasks;
 	var $order;
+	var $sort_order;
 	var $status;
 	var $category;
 	var $assigned_to;
@@ -77,15 +79,17 @@ class ProjectTaskFactory extends Error {
 	 * setup - sets up limits and sorts before you call getTasks().
 	 *
 	 * @param	int	$offset		The offset - number of rows to skip.
-	 * @param	string	$order		The way to order - ASC or DESC.
+	 * @param	string	$order		What to order.
 	 * @param	int	$max_rows	The max number of rows to return.
 	 * @param	string	$set		Whether to set these prefs into the user_prefs table - use "custom".
 	 * @param	int	$_assigned_to	Include this param if you want to limit to a certain assignee.
 	 * @param	int	$_status	Include this param if you want to limit to a certain category.
 	 * @param	$_category_id
 	 * @param	string    $_view
+	 * @param	string	$_sort_order	The way to order - ASC or DESC.
+	 *    
 	 */
-	function setup($offset,$order,$max_rows,$set,$_assigned_to,$_status,$_category_id,$_view='') {
+	function setup($offset,$order,$max_rows,$set,$_assigned_to,$_status,$_category_id,$_view='',$_sort_order) {
 //echo "<br />offset: $offset| order: $order|max_rows: $max_rows|_assigned_to: $_assigned_to|_status: $_status|_category_id: $_category_id +";
 		if ((!$offset) || ($offset < 0)) {
 			$this->offset=0;
@@ -114,7 +118,22 @@ class ProjectTaskFactory extends Error {
 		if (!$order) {
 			$order = 'project_task_id';
 		}
+		if ($_sort_order) {
+			if ($_sort_order=='ASC' || $_sort_order=='DESC') {
+				if (session_loggedin()) {
+					$u->setPreference('pm_task_sort_order'.$this->ProjectGroup->getID(), $_sort_order);
+				}
+			} else {
+				$_sort_order = NULL;
+			}
+		} else {
+			if (session_loggedin()) {
+				$_sort_order = $u->getPreference('pm_task_sort_order'.$this->ProjectGroup->getID());
+			}
+		}
+		
 		$this->order=$order;
+		$this->sort_order=$_sort_order;
 
 		if ($set=='custom') {
 			/*
@@ -156,12 +175,15 @@ class ProjectTaskFactory extends Error {
 			return $this->project_tasks;
 		}
 		$qpa = db_construct_qpa();
-		if ($this->order=='priority') {
-			$order = 'ORDER BY priority DESC' ;
+		if ($this->sort_order) {
+			$order = "ORDER BY $this->order $this->sort_order" ;
 		} else {
-			$order = "ORDER BY $this->order ASC" ;
+			if ($this->order=='priority') {
+				$order = 'ORDER BY priority DESC' ;
+			} else {
+				$order = "ORDER BY $this->order ASC" ;
+			}
 		}
-
 		if ($this->assigned_to) {
 			$tat = $this->assigned_to ;
 			if (! is_array ($tat))
diff --git a/src/www/pm/browse_task.php b/src/www/pm/browse_task.php
index 2981d08..5f9f3ab 100644
--- a/src/www/pm/browse_task.php
+++ b/src/www/pm/browse_task.php
@@ -7,6 +7,7 @@
  * Copyright 2010, FusionForge Team
  * Copyright (C) 2011 Alain Peyrat - Alcatel-Lucent
  * Copyright 2014, Franck Villaume - TrivialDev
+ * Copyright 2014, Stéphane-Eymeric Bredthauer
  * http://fusionforge.org
  *
  * This file is part of FusionForge. FusionForge is free software;
@@ -47,6 +48,7 @@ if (!$ptf || !is_object($ptf)) {
 }
 
 $_order = getStringFromRequest('_order');
+$_sort_order = getStringFromRequest('_sort_order');
 $set = getStringFromRequest('set');
 $_assigned_to = getIntFromRequest('_assigned_to');
 $_status = getStringFromRequest('_status');
@@ -70,7 +72,7 @@ if (!$paging) {
 	$paging = 25;
 }
 
-$ptf->setup($offset,$_order,$paging,$set,$_assigned_to,$_status,$_category_id,$_view);
+$ptf->setup($offset,$_order,$paging,$set,$_assigned_to,$_status,$_category_id,$_view,$_sort_order);
 if ($ptf->isError()) {
 	exit_error($ptf->getErrorMessage(),'pm');
 }
@@ -82,6 +84,7 @@ if ($ptf->isError()) {
 $_assigned_to=$ptf->assigned_to;
 $_status=$ptf->status;
 $_order=$ptf->order;
+$_sort_order=$ptf->sort_order;
 $_category_id=$ptf->category;
 $_view=$ptf->view_type;
 
@@ -118,7 +121,7 @@ $cat_name_arr[]=_('Any');
 $cat_box=html_build_select_box_from_arrays ($cat_id_arr,$cat_name_arr,'_category_id',$_category_id,true,'none');
 
 /*
-	Creating a custom sort box
+	Creating a custom order box
 */
 $order_title_arr=array();
 $order_title_arr[]=_('Task Id');
@@ -135,9 +138,23 @@ $order_col_arr[]='start_date';
 $order_col_arr[]='end_date';
 $order_col_arr[]='percent_complete';
 $order_col_arr[]='priority';
+
 $order_box=html_build_select_box_from_arrays ($order_col_arr,$order_title_arr,'_order',$_order,false);
 
 /*
+	Creating a custom sort box
+*/
+
+$sort_title_arr=array();
+$sort_title_arr[]=_('Ascending');
+$sort_title_arr[]=_('Descending');
+
+$sort_col=array();
+$sort_col[]='ASC';
+$sort_col[]='DESC';
+
+$sort_box=html_build_select_box_from_arrays($sort_col,$sort_title_arr,'_sort_order',$_sort_order,false);
+/*
 	Creating View array
 */
 $view_arr=array();
@@ -148,23 +165,41 @@ $view_col_arr[]='summary';
 $view_col_arr[]='detail';
 $view_box=html_build_select_box_from_arrays ($view_col_arr,$view_arr,'_view',$_view,false);
 
+$rows=count($pt_arr);
+$totalTasks = $pg->getCount($_status, $_category_id);
+
+if (session_loggedin()) {
+	/* logged in users get configurable paging */
+	echo '<form action="'. getStringFromServer('PHP_SELF') .'?group_id='.$group_id.'&group_project_id='.$pg->getID().'&offset='.$offset.'" method="post">'."\n";
+
+}
+printf('<p>' . _('Displaying results %1$s out of %2$d total.'),$rows ? ($offset + 1).'-'.($offset + $rows) : '0', $totalTasks);
+
+if (session_loggedin()) {
+	printf(' ' . _('Displaying %2$s results.') . "\n\t<input " .
+			'type="submit" name="setpaging" value="%1$s" />' .
+			"\n</p>\n</form>\n", _('Change'),
+			html_build_select_box_from_array(array(
+			'10', '25', '50', '100', '1000'), 'nres', $paging, 1));
+} else {
+	echo "</p>\n";
+}
+
 /*
 	Show the new pop-up boxes to select assigned to and/or status
 */
-echo '	<form action="'. getStringFromServer('PHP_SELF') .'?group_id='.$group_id.'&group_project_id='.$group_project_id.'" method="post">
+echo '	<form action="'. getStringFromServer('PHP_SELF') .'?group_id='.$group_id.'&group_project_id='.$group_project_id.'" method="post">
 	<input type="hidden" name="set" value="custom" />
 	<table>
 	<tr>
-		<td>'._('Assignee').'<br />'. $tech_box .'</td>
-		<td>'._('Status').'<br />'. $pg->statusBox('_status',$_status,true, _('Any')) .'</td>
-		<td>'._('Category').'<br />'. $cat_box .'</td>
-		<td>'._('Sort On').'<br />'. $order_box .'</td>
-		<td>'._('Detail View').'<br />'. $view_box .'</td>
-		<td><input type="submit" name="submit" value="'._('Browse').'" /></td>
+		<td>'._('Assignee')._(': ').'<br />'. $tech_box .'</td>
+		<td>'._('Status')._(': ').'<br />'. $pg->statusBox('_status',$_status,true, _('Any')) .'</td>
+		<td>'._('Category')._(': ').'<br />'. $cat_box .'</td>
+		<td>'._('Sort On')._(': ').'<br />'. $order_box . $sort_box .'</td>
+		<td>'._('Detail View')._(': ').'<br />'. $view_box .'</td>
+		<td><br /><input type="submit" name="submit" value="'._('Browse').'" /></td>
 	</tr></table></form>';
 
-$rows=count($pt_arr);
-$totalTasks = $pg->getCount($_status, $_category_id);
 if ($rows < 1) {
 
 	echo '
@@ -173,26 +208,10 @@ if ($rows < 1) {
 		<div class="warning">'._('Add tasks using the link above').'</div>';
 	echo db_error();
 } else {
-	if (session_loggedin()) {
-		/* logged in users get configurable paging */
-		echo '<form action="'. getStringFromServer('PHP_SELF') .'?group_id='.$group_id.'&group_project_id='.$pg->getID().'&offset='.$offset.'" method="post">'."\n";
-
-	}
-	printf('<p>' . _('Displaying results %1$d‒%2$d out of %3$d total.'), $offset + 1, $offset + $rows, $totalTasks);
-
-	if (session_loggedin()) {
-		printf(' ' . _('Displaying %2$s results.') . "\n\t<input " .
-		       'type="submit" name="setpaging" value="%1$s" />' .
-		       "\n</p>\n</form>\n", _('Change'),
-		       html_build_select_box_from_array(array(
-								'10', '25', '50', '100', '1000'), 'nres', $paging, 1));
-	} else {
-		echo "</p>\n";
-	}
 
 	//create a new $set string to be used for next/prev button
 	if ($set=='custom') {
-		$set .= '&_assigned_to='.$_assigned_to.'&_status='.$_status;
+		$set .= '&_assigned_to='.$_assigned_to.'&_status='.$_status;
 	}
 
 	/*
@@ -246,7 +265,7 @@ if ($rows < 1) {
 	$now=time();
 
 	for ($i=0; $i < $rows; $i++) {
-		$url = getStringFromServer('PHP_SELF')."?func=detailtask&project_task_id=".$pt_arr[$i]->getID()."&group_id=".$group_id."&group_project_id=".$group_project_id;
+		$url = getStringFromServer('PHP_SELF')."?func=detailtask&project_task_id=".$pt_arr[$i]->getID()."&group_id=".$group_id."&group_project_id=".$group_project_id;
 
 		echo '
 			<tr class="priority'.$pt_arr[$i]->getPriority().'"><td style="width:16px; background-color:#FFFFFF">' .
@@ -259,7 +278,7 @@ if ($rows < 1) {
 			$pt_arr[$i]->getID() .'" /> ':'').
 			$pt_arr[$i]->getID() ."</td>\n";
 		if ($display_col['summary'])
-			echo '<td><a href="'.$url.'">'.$pt_arr[$i]->getSummary() ."</a></td>\n";
+			echo '<td>'.util_make_link($url,$pt_arr[$i]->getSummary())."</td>\n";
 		if ($display_col['start_date'])
 			echo '<td>'.date(_('Y-m-d H:i'), $pt_arr[$i]->getStartDate() )."</td>\n";
 		if ($display_col['end_date'])
@@ -294,25 +313,42 @@ if ($rows < 1) {
 		}
 	}
 
+	echo $GLOBALS['HTML']->listTableBottom();
+
 	/*
-		Show extra rows for <-- Prev / Next -->
+	 Show extra rows for <-- Prev / Next -->
 	*/
-	echo '<tr><td colspan="2">';
 	if ($offset > 0) {
-		echo util_make_link('/pm/task.php?func=browse&group_project_id='.$group_project_id.'&group_id='.$group_id.'&offset='.($offset-$paging),'<strong>← '._('previous').'</strong>');
-	} else {
-		echo ' ';
-	}
-	echo '</td><td> </td><td colspan="2">';
+		echo util_make_link (getStringFromServer('PHP_SELF').'?func=browse&group_project_id='.$group_project_id.'&group_id='.$group_id.'&offset='.($offset-$paging),'<strong>← '._('previous').'</strong>');
+		echo '  ';	
+	} 
+	$pages = $totalTasks / $paging;
+	$currentpage = intval($offset / $paging);
+	if ($pages > 1) {
+		$skipped_pages=false;
+		for ($j=0; $j<$pages; $j++) {
+			if ($pages > 20) {
+				if ((($j > 4) && ($j < ($currentpage-5))) || (($j > ($currentpage+5)) && ($j < ($pages-5)))) {
+					if (!$skipped_pages) {
+						$skipped_pages=true;
+						echo ".... ";
+					}
+					continue;
+				} else {
+					$skipped_pages=false;
+				}
+			}
+			if ($j * $paging == $offset) {
+				echo '<strong>'.($j+1).'</strong>  ';
+			} else {
+				echo util_make_link (getStringFromServer('PHP_SELF').'?func=browse&group_project_id='.$group_project_id.'&group_id='.$group_id.'&offset='.($j*$paging),'<strong>'.($j+1).'</strong>').'  ';
+			}
+		}
+	}	
 	if ( $totalTasks > $offset + $paging) {
-		echo util_make_link('/pm/task.php?func=browse&group_project_id='.$group_project_id.'&group_id='.$group_id.'&offset='.($offset+$paging),'<strong>'._('next').' →</strong>');
-	} else {
-		echo ' ';
-	}
-	echo '</td></tr>';
-
-	echo $GLOBALS['HTML']->listTableBottom();
-
+		echo util_make_link (getStringFromServer('PHP_SELF').'?func=browse&group_project_id='.$group_project_id.'&group_id='.$group_id.'&offset='.($offset+$paging),'<strong>'._('next').' →</strong>');
+	}	
+	
 	echo '<div style="display:table;width:100%">';
 	echo '<div style="display:table-row">';
 
@@ -366,23 +402,23 @@ if ($rows < 1) {
 			</td></tr>
 
 			<tr>
-			<td><strong>'._('Category').
+			<td><strong>'._('Category')._(':').
 				'</strong><br />'. $pg->categoryBox ('category_id','xzxz',true,
 				_('No Change')) .'</td>
-			<td><strong>'._('Priority').
+			<td><strong>'._('Priority')._(':').
 				'</strong><br />';
 			build_priority_select_box ('priority', '100', true);
 			echo '</td>
 			</tr>
 
 			<tr>
-			<td><strong>'._('Assigned to').
+			<td><strong>'._('Assigned to')._(':').
 				'</strong><br />'. $tech_box .'</td>
-			<td><strong>'._('State').
+			<td><strong>'._('State')._(':').
 				'</strong><br />'. $pg->statusBox ('status_id','xzxz',true,_('No Change')) .'</td>
 			</tr>
 
-			<tr><td><strong>'._('Subproject').'</strong><br />
+			<tr><td><strong>'._('Subproject')._(':').'</strong><br />
 			'.$pg->groupProjectBox('new_group_project_id',$group_project_id,false).'</td>
 			<td><input type="submit" name="submit" value="'.
 			_('Mass Update').'" /></td></tr>

-----------------------------------------------------------------------

Summary of changes:
 src/common/pm/ProjectTaskFactory.class.php |   34 +++++--
 src/common/tracker/actions/browse.php      |   68 ++++++++------
 src/www/pm/browse_task.php                 |  136 ++++++++++++++++++----------
 3 files changed, 153 insertions(+), 85 deletions(-)


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list