[evolvis-commits] r10924: more work on query - everything is now multi-select boxes so more powerful queries can be built↵
mirabilos at evolvis.org
mirabilos at evolvis.org
Thu Feb 24 17:58:01 CET 2011
Author: mirabilos
Date: 2011-02-24 17:58:01 +0100 (Thu, 24 Feb 2011)
New Revision: 10924
Modified:
trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactFactory.class
trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactQuery.class
trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/browse.php
trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/include/ArtifactTypeHtml.class
trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/query.php
Log:
more work on query - everything is now multi-select boxes so more powerful queries can be built
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactFactory.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactFactory.class 2011-02-24 16:58:00 UTC (rev 10923)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactFactory.class 2011-02-24 16:58:01 UTC (rev 10924)
@@ -219,7 +219,11 @@
//if assigned to selected, and more to where clause
if ($this->assigned_to) {
- $assigned_str="AND assigned_to='".$this->assigned_to."'";
+ if (is_array($this->assigned_to)) {
+ $assigned_str="AND assigned_to IN (".implode(',',$this->assigned_to).")";
+ } else {
+ $assigned_str="AND assigned_to='".$this->assigned_to."'";
+ }
} else {
//no assigned to was chosen, so don't add it to where clause
$assigned_str='';
@@ -249,7 +253,7 @@
//
// now run the query using the criteria chosen above
//
- $sql="SELECT artifact_vw.* FROM artifact_vw $ef_table_str
+ $sql="SELECT DISTINCT ON (group_artifact_id, artifact_id) artifact_vw.* FROM artifact_vw $ef_table_str
WHERE
group_artifact_id='". $this->ArtifactType->getID() ."'
$status_str $assigned_str $last_changed_str $ef_where_str
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactQuery.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactQuery.class 2011-02-24 16:58:00 UTC (rev 10923)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/tracker/ArtifactQuery.class 2011-02-24 16:58:01 UTC (rev 10924)
@@ -201,6 +201,9 @@
$this->setError('Setting Status: '.db_error());
return false;
}
+ if (is_array($assignee)) {
+ $assignee=implode(',',$assignee);
+ }
$res=db_query("INSERT INTO artifact_query_fields
(artifact_query_id,query_field_type,query_field_id,query_field_values)
VALUES ('$id','".ARTIFACT_QUERY_ASSIGNEE."','0','".( (int)$assignee )."')");
@@ -400,7 +403,7 @@
function Exist($name) {
$user_id = user_getid();
$art_id = $this->ArtifactType->getID();
- $sql = "SELECT * FROM artifact_query WHERE group_artifact_id = '".$art_id."' AND query_name = '".$name."' AND user_id = '".$user_id."'";
+ $sql = "SELECT * FROM artifact_query WHERE group_artifact_id = '$art_id' AND query_name = '$name' AND user_id = '$user_id'";
$res = db_query($sql);
if (db_numrows($res)>0) {
return true;
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/browse.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/browse.php 2011-02-24 16:58:00 UTC (rev 10923)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/browse.php 2011-02-24 16:58:01 UTC (rev 10924)
@@ -54,7 +54,7 @@
$ath->header(array('titlevals'=>array($ath->getName()),'atid'=>$ath->getID()));
echo '
-<table width="10%" border="0">
+<table width="60%" border="0">
<form action="'. $PHP_SELF .'?group_id='.$group_id.'&atid='.$ath->getID().'" method="post">';
if (!session_loggedin()) {
@@ -136,26 +136,31 @@
'<td><span style="font-size:smaller">'.$Language->getText('tracker','changed').': <a href="javascript:help_window(\'/help/tracker.php?helpname=changed\')"><strong>(?)</strong></a><br />'. html_build_select_box_from_arrays($changed_arr,$changed_name_arr,'_changed_from',$_changed_from,false) .'</span></td>
</tr>';
- echo '<tr>
+ echo '
+ <tr>
<td align="right"><span style="font-size:smaller">'.$Language->getText('tracker_browse','sort_by').': <a href="javascript:help_window(\'/help/tracker.php?helpname=sort_by\')"><strong>(?)</strong></a></span></td>'.
- '<td><span style="font-size:smaller">'.
- html_build_select_box_from_arrays($order_arr,$order_name_arr,'_sort_col',$_sort_col,false) .'</td>'.
- '<td><span style="font-size:smaller">'.html_build_select_box_from_arrays($sort_arr,$sort_name_arr,'_sort_ord',$_sort_ord,false) .'</td>'.
- '<td><span style="font-size:smaller"><input type="submit" name="submit" value="'.$Language->getText('general','browse').'" /></td>'
- .'</tr>'
- .'<tr>';
+ '<td colspan="2"><span style="font-size:smaller">'.
+ 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="'.$Language->getText('general','browse').'" /></span></td>
+ </tr>';
} else {
$res=db_query("SELECT artifact_query_id,query_name
FROM artifact_query WHERE user_id='".user_getid()."' AND group_artifact_id='".$ath->getID()."'");
+ echo '
+ <tr>';
if (db_numrows($res)>0) {
- echo '<tr>'
- .'<td align="right"><span style="font-size:smaller">'.html_build_select_box($res,'query_id',$query_id,false).'</span></td>'.
+ echo '
+ <td align="right"><span style="font-size:smaller">'.html_build_select_box($res,'query_id',$query_id,false).'</span></td>'.
'<td align="left"><span style="font-size:smaller"><input type="submit" name="run" value="'.$Language->getText('tracker','run_query').'"></input></span></td>';
+ } else {
+ echo '<td colspan="2"> </td>';
}
+echo '<td align="left"><span style="font-size:smaller"><strong><a href="javascript:admin_window(\'/tracker/?func=query&group_id='.$group_id.'&atid='. $ath->getID().'\')">'.$Language->getText('tracker','build_query').'</a></strong></span></td>
+ </tr>';
}
-echo '<td align="left"><span style="font-size:smaller"><strong><a href="javascript:admin_window(\'/tracker/?func=query&group_id='.$group_id.'&atid='. $ath->getID().'\')">'.$Language->getText('tracker','build_query').'</a></strong></span></td>
- </tr>
+echo '
</form></table>';
/**
*
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:58:00 UTC (rev 10923)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/include/ArtifactTypeHtml.class 2011-02-24 16:58:01 UTC (rev 10924)
@@ -83,13 +83,21 @@
// echo ' | <a href="/tracker/admin/?group_id='.$group_id.'&atid='. $this->getID() .'">'.$Language->getText('tracker_artifacttype','edit_options').': '. $this->getName() .'</a></strong>';
}
- function renderExtraFields($selected=array(),$show_100=false,$text_100='none',$show_any=false,$text_any='Any',$filter='',$status_show_100=false) {
+ function renderExtraFields($selected=array(),$show_100=false,$text_100='none',$show_any=false,$text_any='Any',$filter='',$status_show_100=false,$mode='') {
$efarr = $this->getExtraFields($filter);
//each two columns, we'll reset this and start a new row
//TODO - add code for "display only" such as mod-limited and detail.php pages
$template = $this->getRenderHTML($filter);
+ if ($mode=='QUERY') {
+ $keys=array_keys($efarr);
+ for ($k=0; $k<count($keys); $k++) {
+ $i=$keys[$k];
+ $efarr[$i]['field_type'] = ARTIFACT_EXTRAFIELDTYPE_MULTISELECT;
+ }
+ }
+
$keys=array_keys($efarr);
for ($k=0; $k<count($keys); $k++) {
$i=$keys[$k];
@@ -352,7 +360,7 @@
<textarea name="extra_fields['.$extra_field_id.']" rows="'.$rows.'" cols="'.$cols.'">'.$contents.'</textarea>';
}
- function technicianBox ($name='assigned_to',$checked='xzxz',$show_100=true,$text_100='none',$extra_id='-1',$extra_name='') {
+ function technicianBox ($name='assigned_to',$checked='xzxz',$show_100=true,$text_100='none',$extra_id='-1',$extra_name='',$multiple=false) {
global $Language;
if ($text_100=='none'){
$text_100=$Language->getText('tracker_artifacttype','nobody');
@@ -366,7 +374,11 @@
$ids[]=$extra_id;
$names[]=$extra_name;
}
- return html_build_select_box_from_arrays ($ids,$names,$name,$checked,$show_100,$text_100);
+ if ($multiple) {
+ return html_build_multiple_select_box_from_arrays ($ids,$names,$name,$checked,15,$show_100,$text_100);
+ } else {
+ return html_build_select_box_from_arrays ($ids,$names,$name,$checked,$show_100,$text_100);
+ }
}
function cannedResponseBox ($name='canned_response',$checked='xzxz') {
Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/query.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/query.php 2011-02-24 16:58:00 UTC (rev 10923)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/tracker/query.php 2011-02-24 16:58:01 UTC (rev 10924)
@@ -116,7 +116,7 @@
$_sort_ord=$aq->getSortOrd();
//
// creating a custom technician box which includes "any" and "unassigned"
-$tech_box=$ath->technicianBox ('_assigned_to',$_assigned_to,true,'none','0',$Language->getText('tracker','any'));
+$tech_box=$ath->technicianBox ('_assigned_to',$_assigned_to,true,'none','-1',false,true);
//
@@ -226,7 +226,8 @@
}
echo '</td>
</tr>';
- $ath->renderExtraFields($extra_fields,true,'None',true,'Any',ARTIFACT_EXTRAFIELD_FILTER_INT);
+ $ath->renderExtraFields($extra_fields,true,'None',true,'Any',ARTIFACT_EXTRAFIELD_FILTER_INT,false,'QUERY');
+
echo '
<tr>
<td><span style="font-size:smaller">'.$Language->getText('tracker_browse','sort_by').':</span><br />
More information about the evolvis-commits
mailing list