]>
src.bluestatic.org Git - bugdar.git/blob - showreport.php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # BugStrike [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
7 || # This file may not be reproduced in any way without permission. # ||
8 || # --------------------------------------------------------------- # ||
9 || # User License Agreement at http://www.iris-studios.com/license/ # ||
10 || ################################################################### ||
11 \*=====================================================================*/
13 $fetchtemplates = array (
15 'showreport_attachment' ,
19 'bugfield_static_text'
22 define ( 'SVN' , ' $Id $' );
24 $focus [' showreport
'] = ' focus
';
26 require_once(' ./ global . php
');
28 if (!can_perform(' canviewbugs
'))
30 $message- >error_permission();
33 $show [' edit
'] = (((can_perform(' caneditown
') AND $bugsys- >userinfo[' userid
'] == $bug [' userid
']) OR can_perform(' caneditothers
')) AND can_perform(' caneditinfo
')) ? true : false;
35 $bugid = intval( $bugsys- >in[' bugid
']);
37 // ###################################################################
39 if (empty( $bugid ) OR $_REQUEST [' do '] == ' quicksearch
')
43 if ( $db- >query_first("SELECT bugid FROM " . TABLE_PREFIX . "bug WHERE bugid = $bugid" ))
45 header("Location: showreport.php?bugid= $bugid" );
50 $error = $lang- >getlex(' error_invalid_id
');
54 eval(' $template- > flush ( "' . $template- >fetch('quicksearch') . '" ); ');
58 // ###################################################################
60 // -------------------------------------------------------------------
62 $bug = $db- >query_first("
63 SELECT bugvaluefill.*, bug.*, user.email, user.displayname, user.showemail
64 FROM " . TABLE_PREFIX . "bug AS bug
65 LEFT JOIN " . TABLE_PREFIX . "user AS user
66 ON (bug.userid = user.userid)
67 LEFT JOIN " . TABLE_PREFIX . "bugvaluefill AS bugvaluefill
68 ON (bug.bugid = bugvaluefill.bugid)
69 WHERE bug.bugid = " . intval( $bugsys- >in[' bugid
'])
74 $message- >error( $lang- >getlex(' error_invalid_id
'));
77 if ( $bug [' hidden
'] AND !can_perform(' canviewhidden
'))
79 $message- >error_permission();
82 // ###################################################################
83 // global display items
85 $favourite = (bool) $db- >query_first("SELECT * FROM " . TABLE_PREFIX . "favourite WHERE bugid = $bug [bugid] AND userid = " . $bugsys- >userinfo[' userid
']);
86 $favouritetext = (( $favourite ) ? $lang- >string(' Remove from Favourites
') : $lang- >string(' Add to Favourites
'));
88 $bug [' userinfo
'] = construct_user_display( $bug );
89 $bug [' datetime
'] = $datef- >format( $bugsys- >options[' dateformat
'], $bug [' dateline
']);
90 $bug [' product
'] = $bugsys- >datastore[' product
'][" $bug [productid]"][' title
'];
91 $bug [' component
'] = (( $bug [' componentid
']) ? $bugsys- >datastore[' product
'][" $bug [componentid]"][' title
'] : ' ');
92 $bug [' version
'] = $bugsys- >datastore[' version
'][" $bug [versionid]"][' version
'];
94 // ###################################################################
98 $select [' severity
'] = construct_datastore_select(' severity
', ' severity
', ' severityid
', $bug [' severity
']);
100 $show [' changestatus
'] = ((can_perform(' canchangestatus
')) ? true : false);
101 if (can_perform(' canchangestatus
'))
103 $select [' priority
'] = construct_datastore_select(' priority
', ' priority
', ' priorityid
', $bug [' priority
']);
104 $select [' status
'] = construct_datastore_select(' status
', ' status
', ' statusid
', $bug [' status
']);
105 $select [' resolution
'] = construct_datastore_select(' resolution
', ' resolution
', ' resolutionid
', $bug [' resolution
']);
108 $show [' assign
'] = ((can_perform(' canassign
')) ? true : false);
109 if (can_perform(' canassign
'))
111 foreach ( $bugsys- >datastore[' assignto
'] AS $dev )
113 $value = $dev [' userid
'];
114 $selected = (( $dev [' userid
'] == $bug [' assignedto
']) ? true : false);
115 $label = construct_user_display( $dev , false);
116 eval(' $select [ dev
] .= "' . $template- >fetch('selectoption') . '" ; ');
120 $pcv_select = construct_pcv_select("p $bug [productid]c $bug [componentid]v $bug [versionid]");
122 $firstcomment = $db- >query_first("SELECT * FROM " . TABLE_PREFIX . "comment WHERE bugid = $bug [bugid] ORDER BY dateline ASC LIMIT 1");
124 if ( $bug [' duplicateof
'])
126 $duplicate = $db- >query_first("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug [duplicateof]");
129 if ( $bug [' dependency
'])
131 $dependencies = $db- >query("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid IN ( $bug [dependency])");
132 while ( $dependency = $db- >fetch_array( $dependencies ))
134 $depends [] = "<a href= \" showreport.php?bugid= $dependency [bugid] \" title= \" $dependency [summary] \" > $dependency [bugid]</a>";
136 $dependencies = implode(' ', $depends );
139 $actions = $db- >query("SELECT * FROM " . TABLE_PREFIX . "autoaction ORDER BY name ASC");
140 $select [' autoactions
'] = ' ';
141 $show [' autoactions
'] = false;
142 while ( $action = $db- >fetch_array( $actions ))
144 $label = $action [' name
'];
145 $value = $action [' actionid
'];
147 eval(' $select [ autoaction
] .= "' . $template- >fetch('selectoption') . '" ; ');
148 $show [' autoactions
'] = true;
150 if ( $show [' autoactions
'])
155 eval(' $select [ autoaction
] = "' . $template- >fetch('selectoption') . '" . $select [ autoaction
]; ');
159 // ###################################################################
163 // -------------------------------------------------------------------
165 $bug [' status
'] = $bugsys- >datastore[' status
'][" $bug [status]"][' status
'];
166 $bug [' resolution
'] = $bugsys- >datastore[' resolution
'][" $bug [resolution]"][' resolution
'];
167 $bug [' severity
'] = $bugsys- >datastore[' severity
'][" $bug [severity]"][' severity
'];
168 $bug [' priority
'] = $bugsys- >datastore[' priority
'][" $bug [priority]"][' priority
'];
170 $assigninfo = $bugsys- >datastore[' assignto
'][" $bug [assignedto]"];
171 $bug [' assigninfo
'] = ((is_array( $assigninfo )) ? construct_user_display( $assigninfo ) : ' ');
173 $duplicateof = $db- >query_first("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug [duplicateof]");
175 $duplicates = $db- >query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE duplicateof = $bug [bugid]");
176 while ( $duplicate = $db- >fetch_array( $duplicates ))
178 $dupelist [] = "<a href= \" showreport.php?bugid= $duplicate [bugid] \" target= \" _blank \" > $duplicate [summary]</a>";
180 $dupelist = implode(' , ', $dupelist );
182 if ( $bug [' dependency
'])
184 $dependencies = $db- >query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid IN ( $bug [dependency])");
185 while ( $dependency = $db- >fetch_array( $dependencies ))
187 $depends [] = "<a href= \" showreport.php?bugid= $dependency [bugid] \" title= \" $dependency [summary] \" target= \" _blank \" > $dependency [bugid]</a>";
189 $dependencies = implode(' ', $depends );
193 // ###################################################################
194 // custom field output
196 $fields = construct_custom_fields( $bug );
197 $show [' customfields
'] = ( $fields ? true : false);
199 $bugsys- >debug(' fields modulo
: ' . count( $fields ) % 2);
201 foreach ( $fields AS $field )
203 $bugsys- >debug("i = $i" );
206 $customfields [' right
'] .= $field ;
210 $customfields [' left
'] .= $field ;
216 // ###################################################################
219 // -------------------------------------------------------------------
221 $words = explode(' ', $bugsys- >in[' hilight
']);
222 foreach ( $words AS $word )
226 $word = preg_quote( $bugsys- >unsanitize( $word ));
227 $hilight [] = $temp = trim(preg_replace(' #[ ^
0 - 9 a
- zA
- Z_
] #', '', $word));
231 // -------------------------------------------------------------------
233 $show [ 'getattachments' ] = (( can_perform ( 'cangetattach' ) OR can_perform ( 'caneditattach' )) ? true : false );
234 $show [ 'putattachments' ] = (( can_perform ( 'canputattach' ) OR can_perform ( 'caneditattach' )) ? true : false );
235 $show [ 'attachments' ] = ( $show [ 'getattachments' ] OR $show [ 'putattachments' ]) ? true : false ;
237 if ( $show [ 'getattachments' ] OR $show [ 'putattachments' ])
239 $attachments_fetch = $db- > query ( "
240 SELECT attachment.*, user.email, user.showemail,
242 FROM " . TABLE_PREFIX
. "attachment AS attachment
243 LEFT JOIN " . TABLE_PREFIX
. "user AS user
244 ON (attachment.userid = user.userid)
245 WHERE attachment.bugid = $bug [bugid]
246 ORDER BY attachment.dateline"
250 while ( $attachment = $db- > fetch_array ( $attachments_fetch ))
253 $show [ 'editattach' ] = (( can_perform ( 'caneditattach' ) OR ( $attachment [ 'userid' ] == $bugsys- > userinfo
[ 'userid' ] AND can_perform ( 'canputattach' ))) ? true : false );
254 $attachment [ 'date' ] = $datef- > format ( $bugsys- > options
[ 'dateformat' ], $attachment [ 'dateline' ]);
255 $attachment [ 'user' ] = construct_user_display ( $attachment , false );
256 eval ( ' $attachments .= "' . $template- > fetch ( 'showreport_attachment' ) . '";' );
259 $show [ 'attachments' ] = (! $show [ 'putattachments' ] AND ! $attaches ) ? false : true ;
262 // -------------------------------------------------------------------
265 $vote = $db- > query_first ( "SELECT *, FIND_IN_SET(" . $bugsys- > userinfo
[ 'userid' ] . ", userids) AS uservote FROM " . TABLE_PREFIX
. "vote WHERE bugid = $bug [bugid]" );
267 $vote [ 'total' ] = $vote [ 'votefor' ] +
$vote [ 'voteagainst' ];
268 $vote [ 'forpercent' ] = round ( $vote [ 'votefor' ] / $vote [ 'total' ], 3 ) * 100 ;
269 $vote [ 'againstpercent' ] = round ( $vote [ 'voteagainst' ] / $vote [ 'total' ], 3 ) * 100 ;
271 $show [ 'vote' ] = (( can_perform ( 'canvote' ) AND ! $vote [ 'uservote' ]) ? true : false );
273 // -------------------------------------------------------------------
275 $comments_fetch = $db- > query ( "
276 SELECT comment.*, user.email, user.showemail, user.displayname
277 FROM " . TABLE_PREFIX
. "comment AS comment
278 LEFT JOIN " . TABLE_PREFIX
. "user AS user
279 ON (comment.userid = user.userid)
280 WHERE comment.bugid = $bug [bugid]" . ((! can_perform ( 'canviewhidden' )) ? "
281 AND !hidden" : '' ) . "
282 ORDER BY comment.dateline ASC"
284 while ( $comment = $db- > fetch_array ( $comments_fetch ))
286 $comment [ 'posttime' ] = $datef- > format ( $bugsys- > options
[ 'dateformat' ], $comment [ 'dateline' ]);
287 $comment [ 'postby' ] = construct_user_display ( $comment );
288 $show [ 'editcomment' ] = ((( can_perform ( 'caneditown' ) AND $bugsys- > userinfo
[ 'userid' ] == $comment [ 'userid' ]) OR can_perform ( 'caneditothers' )) ? true : false );
290 if ( is_array ( $hilight ))
292 foreach ( $hilight AS $id => $find )
295 $replace = "<span style= \" background-color: yellow; font-weight: bold; color: red; \" > \\ 1</span>" ;
296 $comment [ 'comment_parsed' ] = preg_replace ( $find , $replace , $comment [ 'comment_parsed' ]);
300 eval ( ' $comments .= "' . $template- > fetch ( 'showreport_comment' ) . '";' );
303 $show [ 'newreply' ] = (( can_perform ( 'canpostcomments' )) ? true : false );
305 if ( is_array ( $hilight ))
307 foreach ( $hilight AS $id => $find )
310 $replace = "<span style= \" background-color: yellow; font-weight: bold; color: red; \" > \\ 1</span>" ;
311 $bug [ 'summary' ] = preg_replace ( $find , $replace , $bug [ 'summary' ]);
315 eval ( ' $template- >flush("' . $template- > fetch ( 'showreport' ) . '");' );
317 /*=====================================================================*\
318 || ###################################################################
321 || ###################################################################
322 \*=====================================================================*/