[Fusionforge-commits] FusionForge branch master updated. db0a68e8d05c8658a3620fc55be14dbbe630ee18

Franck Villaume nerville at fusionforge.org
Thu Jul 10 11:00:52 CEST 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  db0a68e8d05c8658a3620fc55be14dbbe630ee18 (commit)
      from  601bc87aeb80c979d1bbdcdfe84ff48f01c9cb2e (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 db0a68e8d05c8658a3620fc55be14dbbe630ee18
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date:   Thu Jul 10 10:54:51 2014 +0200

    implement [#655] Tracker: enable support for multi-select extrafield in roadmap

diff --git a/src/common/tracker/ArtifactFactory.class.php b/src/common/tracker/ArtifactFactory.class.php
index 6bda9c1..499bccd 100644
--- a/src/common/tracker/ArtifactFactory.class.php
+++ b/src/common/tracker/ArtifactFactory.class.php
@@ -473,7 +473,7 @@ class ArtifactFactory extends Error {
 	function getArtifactsByReleases($extra_field_id, $releases) {
 		$artifacts = array();
 
-		$sql = 'SELECT a.*
+		$sql = 'SELECT DISTINCT a.*
 		FROM artifact_extra_field_data aefd, artifact_extra_field_elements aefe, artifact_vw a
 		WHERE aefd.extra_field_id=aefe.extra_field_id
 		AND CAST (aefd.field_data AS integer)=aefe.element_id
diff --git a/src/common/tracker/views/form-adminroadmap.php b/src/common/tracker/views/form-adminroadmap.php
index 322f5b2..a142903 100644
--- a/src/common/tracker/views/form-adminroadmap.php
+++ b/src/common/tracker/views/form-adminroadmap.php
@@ -220,7 +220,7 @@ if ($set_roadmap_failed ||
 				echo '<option value="0"'.(! $field_id ? ' selected="selected"' : '').' >'._('Not used').'</option>'."\n";
 				$extra_fields = $ath->getExtraFields( array(ARTIFACT_EXTRAFIELD_FILTER_INT));
 				foreach ($extra_fields as $extra_field) {
-					if ($extra_field['field_type'] != ARTIFACT_EXTRAFIELDTYPE_CHECKBOX && $extra_field['field_type'] != ARTIFACT_EXTRAFIELDTYPE_MULTISELECT) {
+					if ($extra_field['field_type'] != ARTIFACT_EXTRAFIELDTYPE_CHECKBOX) {
 						echo '<option value="'.$extra_field['extra_field_id'].'"'.($extra_field['extra_field_id'] == $field_id ? ' selected="selected"' : '').' >'.$extra_field['field_name'].'</option>'."\n";
 					}
 				}
diff --git a/src/www/tracker/roadmap.php b/src/www/tracker/roadmap.php
index f33ca72..3b3e99f 100644
--- a/src/www/tracker/roadmap.php
+++ b/src/www/tracker/roadmap.php
@@ -361,46 +361,48 @@ if (!$at_arr || count($at_arr) < 1) {
 
 			foreach($art_arr as $artifact) {
 				$extra_data = $artifact->getExtraFieldDataText();
-				$release_value = $extra_data[$field_id]['value'];
+				$release_value = explode(',',$extra_data[$field_id]['value']);
 
-				if ($selected_release && $release_value != $selected_release) {
+				if ($selected_release && !in_array($selected_release, $release_value)) {
 					continue;
 				}
 
-				$custom_status_name = $artifact->getCustomStatusName();
-				$artifact_id = $artifact->getID();
+				foreach ($release_value as $release_value_id) {
+					$custom_status_name = $artifact->getCustomStatusName();
+					$artifact_id = $artifact->getID();
 
-				@$rmap[$release_value][$artifact_type_name] .= $templates[$template]['begin_ticket'];
+					@$rmap[$release_value_id][$artifact_type_name] .= $templates[$template]['begin_ticket'];
 
-				// Icon
-				if ($artifact->getStatusID() == 1) {
-					$icon = html_image('ic/ticket-open.png','','',array('alt' => $custom_status_name, 'title' => $custom_status_name));
-				}
-				else {
-					$icon = html_image('ic/ticket-closed.png','','',array('alt' => $custom_status_name, 'title' => $custom_status_name));
+					// Icon
+					if ($artifact->getStatusID() == 1) {
+						$icon = html_image('ic/ticket-open.png','','',array('alt' => $custom_status_name, 'title' => $custom_status_name));
+					}
+					else {
+						$icon = html_image('ic/ticket-closed.png','','',array('alt' => $custom_status_name, 'title' => $custom_status_name));
+					}
+					$rmap[$release_value_id][$artifact_type_name] .= sprintf($templates[$template]['ticket_icon'], $icon);
+
+					// Artifact id
+					$rmap[$release_value_id][$artifact_type_name] .= sprintf($templates[$template]['ticket_id'],
+							dirname(getStringFromServer('PHP_SELF')).'/?func=detail&aid='.$artifact_id .
+								'&group_id='. $group_id .'&atid='.$ath->getID(),
+							$artifact_id);
+
+					// Summary
+					$rmap[$release_value_id][$artifact_type_name] .= sprintf($templates[$template]['ticket_summary'],
+							htmlentities($artifact->getDetails(), ENT_COMPAT, 'UTF-8'),
+							$artifact->getSummary());
+
+					$rmap[$release_value_id][$artifact_type_name] .= $templates[$template]['end_ticket'];
+
+					// Graph
+					@$rel_states[$release_value_id][$artifact->getStatusID()]['count']++;
+					$rel_states[$release_value_id][$artifact->getStatusID()]['name'] = $artifact->getStatusName();
+					@$total_rel_states[$release_value_id]++;
+					@$rel_art_states[$release_value_id][$artifact_type_name][$custom_status_name]['count']++;
+					$rel_art_states[$release_value_id][$artifact_type_name][$custom_status_name]['name'] = $custom_status_name;
+					@$total_rel_art_states[$release_value_id][$artifact_type_name]++;
 				}
-				$rmap[$release_value][$artifact_type_name] .= sprintf($templates[$template]['ticket_icon'], $icon);
-
-				// Artifact id
-				$rmap[$release_value][$artifact_type_name] .= sprintf($templates[$template]['ticket_id'],
-						dirname(getStringFromServer('PHP_SELF')).'/?func=detail&aid='.$artifact_id .
-							'&group_id='. $group_id .'&atid='.$ath->getID(),
-						$artifact_id);
-
-				// Summary
-				$rmap[$release_value][$artifact_type_name] .= sprintf($templates[$template]['ticket_summary'],
-						htmlentities($artifact->getDetails(), ENT_COMPAT, 'UTF-8'),
-						$artifact->getSummary());
-
-				$rmap[$release_value][$artifact_type_name] .= $templates[$template]['end_ticket'];
-
-				// Graph
-				@$rel_states[$release_value][$artifact->getStatusID()]['count']++;
-				$rel_states[$release_value][$artifact->getStatusID()]['name'] = $artifact->getStatusName();
-				@$total_rel_states[$release_value]++;
-				@$rel_art_states[$release_value][$artifact_type_name][$custom_status_name]['count']++;
-				$rel_art_states[$release_value][$artifact_type_name][$custom_status_name]['name'] = $custom_status_name;
-				@$total_rel_art_states[$release_value][$artifact_type_name]++;
 			}
 		}
 	}

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

Summary of changes:
 src/common/tracker/ArtifactFactory.class.php   |    2 +-
 src/common/tracker/views/form-adminroadmap.php |    2 +-
 src/www/tracker/roadmap.php                    |   68 ++++++++++++------------
 3 files changed, 37 insertions(+), 35 deletions(-)


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list