[evolvis-commits] r17129: [#944]=?UTF-8?Q?=20Bug=C3=BCbersicht?=: Auch nach submitter filtern lassen↵ New =?UTF-8?Q?=20javascript=20functiona?==?UTF-8?Q?lity=20added?=, that changes the tracker on the change of the selectbox. Prefends that an user_preferences gets overwritten on searching in the tracker . User_preferences is now broken anyway because of one last commit with the new v2 format .

papel at evolvis.org papel at evolvis.org
Thu Mar 10 16:59:52 CET 2011


Author: papel
Date: 2011-03-10 16:59:52 +0100 (Thu, 10 Mar 2011)
New Revision: 17129

Modified:
   trunk/gforge_base/evolvisforge/gforge/www/include/html.php
   trunk/gforge_base/evolvisforge/gforge/www/js/common.js
   trunk/gforge_base/evolvisforge/gforge/www/tracker/browse.php
Log:
[#944] Bugübersicht: Auch nach submitter filtern lassen
New javascript functionality added, that changes the tracker on the change of the selectbox. Prefends that an user_preferences gets overwritten on searching in the tracker. User_preferences is now broken anyway because of one last commit with the new v2 format. 

Modified: trunk/gforge_base/evolvisforge/gforge/www/include/html.php
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/www/include/html.php	2011-03-09 12:39:56 UTC (rev 17128)
+++ trunk/gforge_base/evolvisforge/gforge/www/include/html.php	2011-03-10 15:59:52 UTC (rev 17129)
@@ -302,20 +302,46 @@
  * @param		bool	Whether or not to show the 'Any row'
  * @param		string	What to call the 'Any row' defaults to any
  */
-function html_build_select_box_from_arrays ($vals,$texts,$select_name,$checked_val='xzxz',$show_100=true,$text_100='none',$show_any=false,$text_any='any') {
+function html_build_select_box_from_arrays ($vals,$texts,$select_name,$checked_val='xzxz',$show_100=true,$text_100='none',$show_any=false,$text_any='any', $onChangeValue='', $onChangeParams=array()) {
 	if ($text_100=='none'){
 		$text_100=_('None');
 	}
 	$return = '';
-
+	$strParams = '';
 	$rows=count($vals);
 	if (count($texts) != $rows) {
 		$return .= 'ERROR - uneven row counts';
 	}
 
 	$return .= '
-		<select name="'.$select_name.'">';
+		<select name="'.$select_name.'"';
+		
+	if($onChangeValue) {
+		
+		$strParams = "'".$onChangeValue."'" .','.'this.value';
+		
+		if(count($onChangeParams) > 0) {
+				
+			$i = 0;
+			$keys = array_keys($onChangeParams);
+			$strParams .= ",'";
+			foreach($onChangeParams as $param) {
+				if($i != 0) {
+					$strParams .= ';';
+				}
+				$strParams .= $keys[$i].':'.$param;
+				$i++;
+			} 
+			$strParams .= "'";
+		} else {
+			$strParams .= ','."'".'null'."'";
+		}
+		
+		$return .= ' onchange="submitFormOnSelectBoxChanged('.$strParams.')"';	
+	}
 
+	$return .= '>';
+
 	//we don't always want the default Any row shown
 	if ($show_any) {
 		$return .= '

Modified: trunk/gforge_base/evolvisforge/gforge/www/js/common.js
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/www/js/common.js	2011-03-09 12:39:56 UTC (rev 17128)
+++ trunk/gforge_base/evolvisforge/gforge/www/js/common.js	2011-03-10 15:59:52 UTC (rev 17129)
@@ -121,5 +121,91 @@
 			objStatusBox.options[i].selected = true;
 		}
 	}
-} 
+}
 
+/** 
+ * 
+ * */
+
+function getFirstAtId() {
+	
+	var url = document.URL;
+	
+	var arrParams0 = url.split('atid');
+	
+	var arrParams1 = arrParams0[1].split('&');
+	
+	var arrParams2 = arrParams1[0].split('=');
+	
+	return arrParams2[1]
+}
+
+/**
+ *  function buildUrlParams(params) - Part of function buildUrlParams(params)
+ *
+ *	@param string comma separated string, that indicates parameters and values that has to be submitted in the url
+ *	@return string parameters and values in form of an url
+ **/
+
+function buildUrlParams(params) {
+	
+	var strParams = '';
+	var arrParams = params.split(':');
+
+	for(var i = 0; i < arrParams.length; i++) {
+		if(i % 2 != 0) {
+			strParams += '=';
+		} else {
+			strParams += '&';
+		}
+		strParams += arrParams[i];
+	}	
+	
+	return strParams;
+}
+
+/**
+ *	function buildUrlParams(params) - Submits some parameters onChange to the url within the url
+ *
+ *	@param	int	nameOfValue
+ *	@param	int	value
+ *	@param 	string comma and semicolon separated string, that indicates parameters and values that has to be submitted in the url
+ **/
+
+function submitFormOnSelectBoxChanged(nameOfValue, value, params) {
+	
+	/* BEGIN Need this fix for this special implementation */
+	if(value == 0) {	
+		value = getFirstAtId();
+		params += ';search_all:1';
+	}
+	/* END */
+	
+	var url = document.URL;
+	var strParams = '';
+	
+	if(url.indexOf('?')!=-1) {
+		var urlWithoutParams = url.split('?');
+		url = urlWithoutParams[0];
+	} 
+	
+	url += '?' + nameOfValue + '=' + value;
+	
+	if(params.indexOf(';')) {
+		var arrSemiParams = params.split(';');
+		
+		for(var i = 0; i < arrSemiParams.length; i++) {
+			
+			if(arrSemiParams[i].indexOf(':')!=-1) {
+				strParams += buildUrlParams(arrSemiParams[i]);
+			} 
+		}
+		
+		url += strParams;
+	} else {
+		strParams += buildUrlParams(params);
+		url += strParams;
+	}
+	
+	top.location.href = url;
+}
\ No newline at end of file

Modified: trunk/gforge_base/evolvisforge/gforge/www/tracker/browse.php
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/www/tracker/browse.php	2011-03-09 12:39:56 UTC (rev 17128)
+++ trunk/gforge_base/evolvisforge/gforge/www/tracker/browse.php	2011-03-10 15:59:52 UTC (rev 17129)
@@ -220,8 +220,12 @@
 	$selected_tracker = $atid;
 }
 
-$arrSubTrackerBox = html_build_select_box_from_arrays($arrSubTrackerIds, $arrSubTrackerNames, 'selected_tracker', $selected_tracker, false, _('Unassigned'),true, _('Any'));
+$onChangeValue = 'atid';
+$extOnChangeParams  = array();
+$extOnChangeParams = array('group_id' => $group_id);
 
+$arrSubTrackerBox = html_build_select_box_from_arrays($arrSubTrackerIds, $arrSubTrackerNames, 'selected_tracker', $selected_tracker, false, _('Unassigned'),true, _('Any'), $onChangeValue, $extOnChangeParams);
+
 $tech_box = html_build_select_box_from_arrays ($tech_id_arr,$tech_name_arr,'_assigned_to',$_assigned_to,true,_('Unassigned'),true,_('Any'));
 
 $arrSubmitterBox = html_build_select_box_from_arrays($creators_id_arr, $creators_name_arr, '_submitted_by', $_submitted_by, true, _('Unassigned'), true, _('Any'));



More information about the evolvis-commits mailing list