diff --git a/core/email_api.php b/core/email_api.php index e1c7d1ba01..ca79398fd5 100644 --- a/core/email_api.php +++ b/core/email_api.php @@ -1680,16 +1680,9 @@ function email_format_bug_message( array $p_visible_bug_data ) { $t_email_separator2 = config_get( 'email_separator2' ); $t_email_padding_length = config_get( 'email_padding_length' ); - $t_status = $p_visible_bug_data['email_status']; - $p_visible_bug_data['email_date_submitted'] = date( $t_complete_date_format, $p_visible_bug_data['email_date_submitted'] ); $p_visible_bug_data['email_last_modified'] = date( $t_complete_date_format, $p_visible_bug_data['email_last_modified'] ); - $p_visible_bug_data['email_status'] = get_enum_element( 'status', $t_status ); - $p_visible_bug_data['email_severity'] = get_enum_element( 'severity', $p_visible_bug_data['email_severity'] ); - $p_visible_bug_data['email_priority'] = get_enum_element( 'priority', $p_visible_bug_data['email_priority'] ); - $p_visible_bug_data['email_reproducibility'] = get_enum_element( 'reproducibility', $p_visible_bug_data['email_reproducibility'] ); - $t_message = $t_email_separator1 . " \n"; if( isset( $p_visible_bug_data['email_bug_view_url'] ) ) { @@ -1708,11 +1701,30 @@ function email_format_bug_message( array $p_visible_bug_data ) { $t_message .= email_format_attribute( $p_visible_bug_data, 'email_tag' ); } - $t_message .= email_format_attribute( $p_visible_bug_data, 'email_reproducibility' ); - $t_message .= email_format_attribute( $p_visible_bug_data, 'email_severity' ); - $t_message .= email_format_attribute( $p_visible_bug_data, 'email_priority' ); - $t_message .= email_format_attribute( $p_visible_bug_data, 'email_status' ); - $t_message .= email_format_attribute( $p_visible_bug_data, 'email_target_version' ); + if ( isset( $p_visible_bug_data[ 'email_reproducibility' ] ) ) { + $p_visible_bug_data['email_reproducibility'] = get_enum_element( 'reproducibility', $p_visible_bug_data['email_reproducibility'] ); + $t_message .= email_format_attribute( $p_visible_bug_data, 'email_reproducibility' ); + } + + if ( isset( $p_visible_bug_data[ 'email_severity' ] ) ) { + $p_visible_bug_data['email_severity'] = get_enum_element( 'severity', $p_visible_bug_data['email_severity'] ); + $t_message .= email_format_attribute( $p_visible_bug_data, 'email_severity' ); + } + + if ( isset( $p_visible_bug_data[ 'email_priority' ] ) ) { + $p_visible_bug_data['email_priority'] = get_enum_element( 'priority', $p_visible_bug_data['email_priority'] ); + $t_message .= email_format_attribute( $p_visible_bug_data, 'email_priority' ); + } + + if ( isset( $p_visible_bug_data[ 'email_status' ] ) ) { + $t_status = $p_visible_bug_data['email_status']; + $p_visible_bug_data['email_status'] = get_enum_element( 'status', $t_status ); + $t_message .= email_format_attribute( $p_visible_bug_data, 'email_status' ); + } + + if ( isset( $p_visible_bug_data[ 'email_target_version' ] ) ) { + $t_message .= email_format_attribute( $p_visible_bug_data, 'email_target_version' ); + } # custom fields formatting foreach( $p_visible_bug_data['custom_fields'] as $t_custom_field_name => $t_custom_field_data ) { @@ -1723,9 +1735,13 @@ function email_format_bug_message( array $p_visible_bug_data ) { # end foreach custom field - if( config_get( 'bug_resolved_status_threshold' ) <= $t_status ) { - $p_visible_bug_data['email_resolution'] = get_enum_element( 'resolution', $p_visible_bug_data['email_resolution'] ); - $t_message .= email_format_attribute( $p_visible_bug_data, 'email_resolution' ); + if( isset( $t_status ) && config_get( 'bug_resolved_status_threshold' ) <= $t_status ) { + + if ( isset( $p_visible_bug_data[ 'email_resolution' ] ) ) { + $p_visible_bug_data['email_resolution'] = get_enum_element( 'resolution', $p_visible_bug_data['email_resolution'] ); + $t_message .= email_format_attribute( $p_visible_bug_data, 'email_resolution' ); + } + $t_message .= email_format_attribute( $p_visible_bug_data, 'email_fixed_in_version' ); } $t_message .= $t_email_separator1 . " \n"; @@ -1743,11 +1759,11 @@ function email_format_bug_message( array $p_visible_bug_data ) { $t_message .= lang_get( 'email_description' ) . ": \n" . $p_visible_bug_data['email_description'] . "\n"; - if( !is_blank( $p_visible_bug_data['email_steps_to_reproduce'] ) ) { + if( isset( $p_visible_bug_data[ 'email_steps_to_reproduce' ] ) && !is_blank( $p_visible_bug_data['email_steps_to_reproduce'] ) ) { $t_message .= "\n" . lang_get( 'email_steps_to_reproduce' ) . ": \n" . $p_visible_bug_data['email_steps_to_reproduce'] . "\n"; } - if( !is_blank( $p_visible_bug_data['email_additional_information'] ) ) { + if( isset( $p_visible_bug_data[ 'email_additional_information' ] ) && !is_blank( $p_visible_bug_data['email_additional_information'] ) ) { $t_message .= "\n" . lang_get( 'email_additional_information' ) . ": \n" . $p_visible_bug_data['email_additional_information'] . "\n"; } @@ -1837,6 +1853,8 @@ function email_build_visible_bug_data( $p_user_id, $p_bug_id, $p_message_id ) { $t_row = bug_get_extended_row( $p_bug_id ); $t_bug_data = array(); + $t_bug_view_fields = config_get( 'bug_view_page_fields', null, $p_user_id, $t_row['project_id'] ); + $t_bug_data['email_bug'] = $p_bug_id; if( $p_message_id !== 'email_notification_title_for_action_bug_deleted' ) { @@ -1859,7 +1877,7 @@ function email_build_visible_bug_data( $p_user_id, $p_bug_id, $p_message_id ) { $t_bug_data['email_category'] = $t_category_name; $t_tag_rows = tag_bug_get_attached( $p_bug_id ); - if( !empty( $t_tag_rows ) && access_compare_level( $t_user_access_level, config_get( 'tag_view_threshold' ) ) ) { + if( in_array( 'tags', $t_bug_view_fields ) && !empty( $t_tag_rows ) && access_compare_level( $t_user_access_level, config_get( 'tag_view_threshold' ) ) ) { $t_bug_data['email_tag'] = ''; foreach( $t_tag_rows as $t_tag ) { @@ -1876,22 +1894,42 @@ function email_build_visible_bug_data( $p_user_id, $p_bug_id, $p_message_id ) { $t_bug_data['email_due_date'] = date( config_get( 'short_date_format' ), $t_row['due_date'] ); } - $t_bug_data['email_status'] = $t_row['status']; - $t_bug_data['email_severity'] = $t_row['severity']; - $t_bug_data['email_priority'] = $t_row['priority']; - $t_bug_data['email_reproducibility'] = $t_row['reproducibility']; + if ( in_array( 'status', $t_bug_view_fields ) ) { + $t_bug_data['email_status'] = $t_row['status']; + } + + if ( in_array( 'severity', $t_bug_view_fields ) ) { + $t_bug_data['email_severity'] = $t_row['severity']; + } + + if ( in_array( 'priority', $t_bug_view_fields ) ) { + $t_bug_data['email_priority'] = $t_row['priority']; + } - $t_bug_data['email_resolution'] = $t_row['resolution']; + if ( in_array( 'reproducibility', $t_bug_view_fields ) ) { + $t_bug_data['email_reproducibility'] = $t_row['reproducibility']; + } + + if ( in_array( 'resolution', $t_bug_view_fields ) ) { + $t_bug_data['email_resolution'] = $t_row['resolution']; + } + $t_bug_data['email_fixed_in_version'] = $t_row['fixed_in_version']; - if( !is_blank( $t_row['target_version'] ) && access_compare_level( $t_user_access_level, config_get( 'roadmap_view_threshold' ) ) ) { + if( in_array( 'target_version', $t_bug_view_fields ) && !is_blank( $t_row['target_version'] ) && access_compare_level( $t_user_access_level, config_get( 'roadmap_view_threshold' ) ) ) { $t_bug_data['email_target_version'] = $t_row['target_version']; } $t_bug_data['email_summary'] = $t_row['summary']; $t_bug_data['email_description'] = $t_row['description']; - $t_bug_data['email_additional_information'] = $t_row['additional_information']; - $t_bug_data['email_steps_to_reproduce'] = $t_row['steps_to_reproduce']; + + if( in_array( 'additional_info', $t_bug_view_fields ) ) { + $t_bug_data['email_additional_information'] = $t_row['additional_information']; + } + + if ( in_array( 'steps_to_reproduce', $t_bug_view_fields ) ) { + $t_bug_data['email_steps_to_reproduce'] = $t_row['steps_to_reproduce']; + } $t_bug_data['set_category'] = '[' . $t_bug_data['email_project'] . '] ' . $t_category_name;