| <?php |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| $t_core_path = config_get( 'core_path' ); |
| |
| require_once( $t_core_path.'current_user_api.php' ); |
| |
| |
| $t_user_id = auth_get_current_user_id(); |
| |
| if ( !access_has_bug_level( config_get( 'private_bugnote_threshold' ), $f_bug_id ) ) { |
| $t_restriction = 'AND ( view_state=' . VS_PUBLIC . ' OR reporter_id = ' . $t_user_id . ')'; |
| } else { |
| $t_restriction = ''; |
| } |
| |
| $t_bugnote_table = config_get( 'mantis_bugnote_table' ); |
| $t_bugnote_text_table = config_get( 'mantis_bugnote_text_table' ); |
| $t_bugnote_order = current_user_get_pref( 'bugnote_order' ); |
| |
| |
| $query = "SELECT * |
| FROM $t_bugnote_table |
| WHERE bug_id='$f_bug_id' $t_restriction |
| ORDER BY date_submitted $t_bugnote_order, id $t_bugnote_order"; |
| $result = db_query( $query ); |
| $num_notes = db_num_rows( $result ); |
| ?> |
| |
| <?php |
| <a name="bugnotes" id="bugnotes" /><br /> |
| |
| <?php |
| collapse_open( 'bugnotes' ); |
| ?> |
| <table class="width100" cellspacing="1"> |
| <?php |
| |
| if ( 0 == $num_notes ) { |
| ?> |
| <tr> |
| <td class="center" colspan="2"> |
| <?php echo lang_get( 'no_bugnotes_msg' ) ?> |
| </td> |
| </tr> |
| <?php } else { |
| <tr class="title"> |
| <td class="form-title" colspan="2"> |
| <?php |
| collapse_icon( 'bugnotes' ); ?> |
| <?php echo lang_get( 'bug_notes_title' ) ?> |
| </td> |
| </tr> |
| <?php |
| $t_normal_date_format = config_get( 'normal_date_format' ); |
| $t_total_time = 0; |
| |
| for ( $i=0; $i < $num_notes; $i++ ) { |
| |
| $row = db_fetch_array( $result ); |
| extract( $row, EXTR_PREFIX_ALL, 'v3' ); |
| if ( db_unixtimestamp( $v3_date_submitted ) != db_unixtimestamp( $v3_last_modified ) ) |
| $t_bugnote_modified = true; |
| else |
| $t_bugnote_modified = false; |
| |
| $v3_date_submitted = date( $t_normal_date_format, ( db_unixtimestamp( $v3_date_submitted ) ) ); |
| $v3_last_modified = date( $t_normal_date_format, ( db_unixtimestamp( $v3_last_modified ) ) ); |
| |
| |
| $query = "SELECT note |
| FROM $t_bugnote_text_table |
| WHERE id='$v3_bugnote_text_id'"; |
| $result2 = db_query( $query ); |
| $row = db_fetch_array( $result2 ); |
| |
| $v3_note = $row['note']; |
| $v3_note = string_display_links( $v3_note ); |
| $t_bugnote_id_formatted = bugnote_format_id( $v3_id ); |
| |
| if ( 0 != $v3_time_tracking ) { |
| $v3_time_tracking_hhmm = db_minutes_to_hhmm( $v3_time_tracking ); |
| $v3_note_type = TIME_TRACKING; |
| $t_total_time += $v3_time_tracking; |
| } else { |
| $v3_time_tracking_hhmm = ''; |
| } |
| |
| if ( VS_PRIVATE == $v3_view_state ) { |
| $t_bugnote_css = 'bugnote-private'; |
| $t_bugnote_note_css = 'bugnote-note-private'; |
| } else { |
| $t_bugnote_css = 'bugnote-public'; |
| $t_bugnote_note_css = 'bugnote-note-public'; |
| } |
| ?> |
| <tr class="bugnote" id="c<?php echo $v3_id ?>"> |
| <td class="<?php echo $t_bugnote_css ?>"> |
| <?php if ( ON == config_get("show_avatar") ) print_avatar( $v3_reporter_id ); ?> |
| <span class="small">(<?php echo $t_bugnote_id_formatted ?>)</span><br /> |
| <?php |
| echo print_user( $v3_reporter_id ); |
| ?> |
| <span class="small"><?php |
| if ( user_exists( $v3_reporter_id ) ) { |
| $t_access_level = access_get_project_level( null, $v3_reporter_id ); |
| echo '(', get_enum_element( 'access_levels', $t_access_level ), ')'; |
| } |
| ?></span> |
| <?php if ( VS_PRIVATE == $v3_view_state ) { ?> |
| <span class="small">[ <?php echo lang_get( 'private' ) ?> ]</span> |
| <?php } ?> |
| <br /> |
| <span class="small"><?php echo $v3_date_submitted ?></span><br /> |
| <?php |
| if ( $t_bugnote_modified ) { |
| echo '<span class="small">'.lang_get( 'edited_on').' '.$v3_last_modified.'</span><br />'; |
| } |
| ?> |
| <br /><div class="small"> |
| <?php |
| |
| if ( !bug_is_readonly( $f_bug_id ) ) { |
| $t_can_edit_note = false; |
| $t_can_delete_note = false; |
| |
| |
| if ( ( access_has_bug_level( config_get( 'manage_project_threshold' ), $f_bug_id ) ) || |
| ( ( $v3_reporter_id == $t_user_id ) && ( ON == config_get( 'bugnote_allow_user_edit_delete' ) ) ) ) { |
| $t_can_edit_note = true; |
| $t_can_delete_note = true; |
| } |
| |
| |
| if ( $t_can_edit_note || access_has_bug_level( config_get( 'update_bugnote_threshold' ), $f_bug_id ) ) { |
| print_button( 'bugnote_edit_page.php?bugnote_id='.$v3_id, lang_get( 'bugnote_edit_link' ) ); |
| } |
| |
| |
| if ( $t_can_delete_note || access_has_bug_level( config_get( 'delete_bugnote_threshold' ), $f_bug_id ) ) { |
| echo " "; |
| print_button( 'bugnote_delete.php?bugnote_id='.$v3_id, lang_get( 'delete_link' ) ); |
| } |
| |
| if ( access_has_bug_level( config_get( 'private_bugnote_threshold' ), $f_bug_id ) && |
| access_has_bug_level( config_get( 'change_view_status_threshold' ), $f_bug_id ) ) { |
| if ( VS_PRIVATE == $v3_view_state ) { |
| echo " "; |
| print_button('bugnote_set_view_state.php?private=0&bugnote_id='.$v3_id, lang_get( 'make_public' )); |
| } else { |
| echo " "; |
| print_button('bugnote_set_view_state.php?private=1&bugnote_id='.$v3_id, lang_get( 'make_private' )); |
| } |
| } |
| } |
| ?> |
| </div> |
| </td> |
| <td class="<?php echo $t_bugnote_note_css ?>"> |
| <?php |
| switch ( $v3_note_type ) { |
| case REMINDER: |
| echo '<em>' . lang_get( 'reminder_sent_to' ) . ': '; |
| $v3_note_attr = substr( $v3_note_attr, 1, strlen( $v3_note_attr ) - 2 ); |
| $t_to = array(); |
| foreach ( explode( '|', $v3_note_attr ) as $t_recipient ) { |
| $t_to[] = prepare_user_name( $t_recipient ); |
| } |
| echo implode( ', ', $t_to ) . '</em><br /><br />'; |
| case TIME_TRACKING: |
| if ( access_has_bug_level( config_get( 'time_tracking_view_threshold' ), $f_bug_id ) ) { |
| echo '<b><big>', $v3_time_tracking_hhmm, '</big></b><br /><br />'; |
| } |
| break; |
| } |
| |
| echo $v3_note; |
| ?> |
| </td> |
| </tr> |
| <tr class="spacer"> |
| <td colspan="2"></td> |
| </tr> |
| <?php |
| } |
| |
| if ( $t_total_time > 0 && access_has_bug_level( config_get( 'time_tracking_view_threshold' ), $f_bug_id ) ) { |
| echo '<tr><td colspan="2">', sprintf ( lang_get( 'total_time_for_issue' ), db_minutes_to_hhmm( $t_total_time ) ), '</td></tr>'; |
| } |
| } |
| ?> |
| </table> |
| |
| <?php |
| collapse_closed( 'bugnotes' ); |
| ?> |
| |
| <table class="width100" cellspacing="1"> |
| <tr class="title"> |
| <td class="form-title" colspan="2"> |
| <?php collapse_icon( 'bugnotes' ); ?> |
| <?php echo lang_get( 'bug_notes_title' ) ?> |
| </td> |
| </tr> |
| </table> |
| <?php |
| collapse_end( 'bugnotes' ); |
| ?> |
| |
| <?php |