[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