Index: account_prefs_inc.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/account_prefs_inc.php,v
retrieving revision 1.30
diff -u -r1.30 account_prefs_inc.php
--- account_prefs_inc.php	17 Aug 2004 12:08:37 -0000	1.30
+++ account_prefs_inc.php	5 Oct 2004 15:13:57 -0000
@@ -125,7 +125,11 @@
 		<?php echo lang_get( 'email_on_new' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_new" <?php check_checked( $t_pref->email_on_new, ON ); ?> />
+		<input type="radio" name="email_on_new" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_new, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+		<input type="radio" name="email_on_new" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_new, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_new" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_new, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+		<input type="radio" name="email_on_new" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_new, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
+
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_new_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -139,7 +143,11 @@
 		<?php echo lang_get( 'email_on_assigned' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_assigned" <?php check_checked( $t_pref->email_on_assigned, ON ); ?> />
+		<input type="radio" name="email_on_assigned" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_assigned, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_assigned" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_assigned, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_assigned" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_assigned, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_assigned" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_assigned, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
+
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_assigned_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -153,7 +161,11 @@
 		<?php echo lang_get( 'email_on_feedback' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_feedback" <?php check_checked( $t_pref->email_on_feedback, ON ); ?> />
+                <input type="radio" name="email_on_feedback" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_feedback, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_feedback" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_feedback, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_feedback" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_feedback, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_feedback" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_feedback, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
+
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_feedback_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -167,7 +179,11 @@
 		<?php echo lang_get( 'email_on_resolved' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_resolved" <?php check_checked( $t_pref->email_on_resolved, ON ); ?> />
+                <input type="radio" name="email_on_resolved" value="<?php echo EMAIL_NOTICE_LONG?>" <?php check_checked( $t_pref->email_on_resolved, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_resolved" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_resolved, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_resolved" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_resolved, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_resolved" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_resolved, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
+
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_resolved_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -181,7 +197,10 @@
 		<?php echo lang_get( 'email_on_closed' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_closed" <?php check_checked( $t_pref->email_on_closed, ON ); ?> />
+                <input type="radio" name="email_on_closed" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_closed, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_closed" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_closed, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_closed" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_closed, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_closed" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_closed, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_closed_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -195,7 +214,10 @@
 		<?php echo lang_get( 'email_on_reopened' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_reopened" <?php check_checked( $t_pref->email_on_reopened, ON ); ?> />
+                <input type="radio" name="email_on_reopened" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_reopened, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_reopened" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_reopened, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_reopened" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_reopened, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_reopened" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_reopened, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_reopened_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -209,7 +231,10 @@
 		<?php echo lang_get( 'email_on_bugnote_added' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_bugnote" <?php check_checked( $t_pref->email_on_bugnote, ON ); ?> />
+                <input type="radio" name="email_on_bugnote" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_bugnote, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_bugnote" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_bugnote, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_bugnote" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_bugnote, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_bugnote" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_bugnote, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_bugnote_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -223,7 +248,10 @@
 		<?php echo lang_get( 'email_on_status_change' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_status" <?php check_checked( $t_pref->email_on_status, ON ); ?> />
+                <input type="radio" name="email_on_status" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_status, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_status" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_status, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_status" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_status, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_status" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_status, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_status_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
@@ -237,7 +265,10 @@
 		<?php echo lang_get( 'email_on_priority_change' ) ?>
 	</td>
 	<td>
-		<input type="checkbox" name="email_on_priority" <?php check_checked( $t_pref->email_on_priority , ON); ?> />
+                <input type="radio" name="email_on_priority" value="<?php echo EMAIL_NOTICE_LONG ?>" <?php check_checked( $t_pref->email_on_priority, EMAIL_NOTICE_LONG ); ?> /><?php echo lang_get( 'email_notice_long' ) ?>
+                <input type="radio" name="email_on_priority" value="<?php echo EMAIL_NOTICE_BRIEF ?>" <?php check_checked( $t_pref->email_on_priority, EMAIL_NOTICE_BRIEF ); ?> /><?php echo lang_get( 'email_notice_brief' ) ?>
+		<input type="radio" name="email_on_priority" value="<?php echo EMAIL_NOTICE_DIFF ?>" <?php check_checked( $t_pref->email_on_priority, EMAIL_NOTICE_DIFF ); ?> /><?php echo lang_get( 'email_notice_diff' ) ?>
+                <input type="radio" name="email_on_priority" value="<?php echo EMAIL_NOTICE_OFF ?>" <?php check_checked( $t_pref->email_on_priority, EMAIL_NOTICE_OFF ); ?> /><?php echo lang_get( 'email_notice_off' ) ?><BR>
 		<?php echo lang_get( 'with_minimum_severity' ) ?>
 		<select name="email_on_priority_minimum_severity">
 			<option value="any"><?php echo lang_get( 'any' ) ?></option>
Index: account_prefs_update.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/account_prefs_update.php,v
retrieving revision 1.34
diff -u -r1.34 account_prefs_update.php
--- account_prefs_update.php	8 Aug 2004 11:39:00 -0000	1.34
+++ account_prefs_update.php	5 Oct 2004 15:13:57 -0000
@@ -48,15 +48,15 @@
 	$t_prefs->advanced_report	= gpc_get_bool( 'advanced_report' );
 	$t_prefs->advanced_view		= gpc_get_bool( 'advanced_view' );
 	$t_prefs->advanced_update	= gpc_get_bool( 'advanced_update' );
-	$t_prefs->email_on_new		= gpc_get_bool( 'email_on_new' );
-	$t_prefs->email_on_assigned	= gpc_get_bool( 'email_on_assigned' );
-	$t_prefs->email_on_feedback	= gpc_get_bool( 'email_on_feedback' );
-	$t_prefs->email_on_resolved	= gpc_get_bool( 'email_on_resolved' );
-	$t_prefs->email_on_closed	= gpc_get_bool( 'email_on_closed' );
-	$t_prefs->email_on_reopened	= gpc_get_bool( 'email_on_reopened' );
-	$t_prefs->email_on_bugnote	= gpc_get_bool( 'email_on_bugnote' );
-	$t_prefs->email_on_status	= gpc_get_bool( 'email_on_status' );
-	$t_prefs->email_on_priority	= gpc_get_bool( 'email_on_priority' );
+	$t_prefs->email_on_new		= gpc_get_int( 'email_on_new' );
+	$t_prefs->email_on_assigned	= gpc_get_int( 'email_on_assigned' );
+	$t_prefs->email_on_feedback	= gpc_get_int( 'email_on_feedback' );
+	$t_prefs->email_on_resolved	= gpc_get_int( 'email_on_resolved' );
+	$t_prefs->email_on_closed	= gpc_get_int( 'email_on_closed' );
+	$t_prefs->email_on_reopened	= gpc_get_int( 'email_on_reopened' );
+	$t_prefs->email_on_bugnote	= gpc_get_int( 'email_on_bugnote' );
+	$t_prefs->email_on_status	= gpc_get_int( 'email_on_status' );
+	$t_prefs->email_on_priority	= gpc_get_int( 'email_on_priority' );
 	$t_prefs->email_on_new_minimum_severity			= gpc_get_int( 'email_on_new_minimum_severity' );
 	$t_prefs->email_on_assigned_minimum_severity	= gpc_get_int( 'email_on_assigned_minimum_severity' );
 	$t_prefs->email_on_feedback_minimum_severity	= gpc_get_int( 'email_on_feedback_minimum_severity' );
Index: core/constant_inc.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/constant_inc.php,v
retrieving revision 1.31
diff -u -r1.31 constant_inc.php
--- core/constant_inc.php	28 Sep 2004 14:09:39 -0000	1.31
+++ core/constant_inc.php	5 Oct 2004 15:13:58 -0000
@@ -14,10 +14,10 @@
 	# --- constants -------------------
 
 	# magic numbers
-	define( 'ON',	1 );
-	define( 'OFF',	0 );
-	define( 'AUTO', 3 );
-
+	define( 'ON',	 1 );
+	define( 'OFF',	 0 );
+	define( 'AUTO',  3 );
+	
 
 	# error types
 	define( 'ERROR',	E_USER_ERROR );
@@ -275,6 +275,12 @@
 	# Flags for settings E-mail categories
 	define( 'EMAIL_CATEGORY_PROJECT_CATEGORY',	1);
 
+	# Flags for setting E-Mail Format in My Account - Prefrences
+	define( 'EMAIL_NOTICE_OFF',	0 );
+	define( 'EMAIL_NOTICE_LONG',	1 );
+	define( 'EMAIL_NOTICE_BRIEF',	2 );
+	define( 'EMAIL_NOTICE_DIFF',	3 );
+
 	# Custom Field types
 	define( 'CUSTOM_FIELD_TYPE_STRING',		0 );
 	define( 'CUSTOM_FIELD_TYPE_NUMERIC',	1 );
Index: core/email_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/email_api.php,v
retrieving revision 1.101
diff -u -r1.101 email_api.php
--- core/email_api.php	26 Sep 2004 02:05:14 -0000	1.101
+++ core/email_api.php	5 Oct 2004 15:13:59 -0000
@@ -177,13 +177,13 @@
 		# Reporter
 		if ( ON == email_notify_flag( $p_notify_type, 'reporter' ) ) {
 			$t_reporter_id = bug_get_field( $p_bug_id, 'reporter_id' );
-			$t_recipients[$t_reporter_id] = true;
+			$t_recipients[$t_reporter_id] = user_pref_get_pref( $t_reporter_id, 'email_on_' . $p_notify_type );
 		}
 
 		# Handler
 		if ( ON == email_notify_flag( $p_notify_type, 'handler' )) {
 			$t_handler_id = bug_get_field( $p_bug_id, 'handler_id' );
-			$t_recipients[$t_handler_id] = true;
+			$t_recipients[$t_handler_id] = user_pref_get_pref( $t_reporter_id, 'email_on_' . $p_notify_type );
 		}
 
 		$t_project_id = bug_get_field( $p_bug_id, 'project_id' );
@@ -199,7 +199,7 @@
 			$count = db_num_rows( $result );
 			for ( $i=0 ; $i < $count ; $i++ ) {
 				$t_user_id = db_result( $result, $i );
-				$t_recipients[$t_user_id] = true;
+				$t_recipients[$t_user_id] = user_pref_get_pref( $t_user_id, 'email_on_' . $p_notify_type );
 			}
 		}
 
@@ -215,7 +215,7 @@
 			for( $i=0 ; $i < $count ; $i++ ) {
 				$t_user_id = db_result( $result, $i );
 				# @@@ (thraxisp) check that user can see bugnotes here
-				$t_recipients[$t_user_id] = true;
+				$t_recipients[$t_user_id] = user_pref_get_pref( $t_user_id, 'email_on_' . $p_notify_type );
 			}
 		}
 
@@ -227,7 +227,7 @@
 		foreach( $t_threshold_users as $t_user ) {
 			if ( $t_user['access_level'] <= $t_threshold_max ) {
 				if ( !$t_bug_is_private || $t_user['access_level'] >= config_get( 'private_bug_threshold' ) ) {
-					$t_recipients[$t_user['id']] = true;
+					$t_recipients[$t_user['id']] = user_pref_get_pref( $t_user['id'], 'email_on_' . $p_notify_type );
 				}
 			}
 		}
@@ -285,7 +285,11 @@
 			} else {
 				# @@@ we could check the emails for validity again but I think
 				#   it would be too slow
-				$t_recipients[$t_id] = $t_email;
+				$t_tmp = array();
+				
+				$t_tmp['email'] = $t_email;
+				$t_tmp['notice_format'] = $t_recipients[$t_id];
+				$t_recipients[$t_id] = $t_tmp;
 			}
 		}
 
@@ -403,9 +407,9 @@
 
 			if ( is_array( $t_recipients ) ) {
 				# send email to every recipient
-				foreach ( $t_recipients as $t_user_id => $t_user_email ) {
-					$t_visible_bug_data = email_build_visible_bug_data( $t_user_id, $p_bug_id, $p_message_id );
-					$t_ok = email_bug_info_to_one_user( $t_visible_bug_data, $p_message_id, $t_project_id, $t_user_id ) && $t_ok;
+				foreach ( $t_recipients as $t_user_id => $t_user_info ) {
+					$t_visible_bug_data = email_build_visible_bug_data( $t_user_id, $t_user_info['notice_format'], $p_bug_id, $p_message_id );
+					$t_ok = email_bug_info_to_one_user( $t_visible_bug_data, $p_message_id, $t_project_id, $t_user_id, $t_user_info['notice_format'] ) && $t_ok;
 				}
 			}
 		}
@@ -755,7 +759,7 @@
 	# --------------------
 	# Send bug info to given user
 	# return true on success
-	function email_bug_info_to_one_user( $p_visible_bug_data, $p_message_id, $p_project_id, $p_user_id ) {
+	function email_bug_info_to_one_user( $p_visible_bug_data, $p_message_id, $p_project_id, $p_user_id, $p_email_notice_format ) {
 
 		$t_user_email = user_get_email( $p_user_id );
 
@@ -779,13 +783,13 @@
 		if ( ( $t_message !== null ) && ( !is_blank( $t_message ) ) ) {
 			$t_message .= "\n";
 		}
-
-		$t_message .= email_format_bug_message(  $p_visible_bug_data );
+		
+		$t_message .= email_format_bug_message( $p_visible_bug_data, $p_email_notice_format );
 
 		# send mail
 		# PRINT '<br />email_bug_info::Sending email to :'.$t_user_email;
 		$t_ok = email_send( $t_user_email, $t_subject, $t_message, '', $p_visible_bug_data['set_category'], false );
-
+		
 		lang_pop();
 
 		return $t_ok;
@@ -793,7 +797,7 @@
 
 	# --------------------
 	# Build the bug info part of the message
-	function email_format_bug_message( $p_visible_bug_data ) {
+	function email_format_bug_message( $p_visible_bug_data, $p_email_notice_format ) {
 
 		$t_normal_date_format = config_get( 'normal_date_format' );
 		$t_complete_date_format = config_get( 'complete_date_format' );
@@ -818,78 +822,79 @@
 			$t_message .= '<' . $p_visible_bug_data['email_bug_view_url'] . "> \n";
 			$t_message .= $t_email_separator1."\n";
 		}
+		if ( EMAIL_NOTICE_DIFF != $p_email_notice_format ) {
 
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_reporter' );
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_handler' );
-		$t_message .= $t_email_separator1."\n";
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_project' );
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_bug' );
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_category' );
-		$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' );
-
-		# custom fields formatting
-		foreach( $p_visible_bug_data['custom_fields'] as $t_custom_field_name => $t_custom_field_data ) {
-			$t_message .= str_pad( lang_get_defaulted( $t_custom_field_name, null ) . ': ', $t_email_padding_length, ' ', STR_PAD_RIGHT );
-			$t_message .= string_custom_field_value_for_email ( $t_custom_field_data['value'], $t_custom_field_data['type'] );
-			$t_message .= "\n";
-		} # 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' );
-			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_duplicate' );
-			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_fixed_in_version' );
-		}
-		$t_message .= $t_email_separator1."\n";
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_reporter' );
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_handler' );
+			$t_message .= $t_email_separator1."\n";
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_project' );
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_bug' );
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_category' );
+			$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' );
+
+			# custom fields formatting
+			foreach( $p_visible_bug_data['custom_fields'] as $t_custom_field_name => $t_custom_field_data ) {
+				$t_message .= str_pad( lang_get_defaulted( $t_custom_field_name, null ) . ': ', $t_email_padding_length, ' ', STR_PAD_RIGHT );
+				$t_message .= string_custom_field_value_for_email ( $t_custom_field_data['value'], $t_custom_field_data['type'] );
+				$t_message .= "\n";
+			} # 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' );
+				$t_message .= email_format_attribute( $p_visible_bug_data, 'email_duplicate' );
+				$t_message .= email_format_attribute( $p_visible_bug_data, 'email_fixed_in_version' );
+			}
+			$t_message .= $t_email_separator1."\n";
 
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_date_submitted' );
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_last_modified' );
-		$t_message .= $t_email_separator1."\n";
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_date_submitted' );
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_last_modified' );
+			$t_message .= $t_email_separator1."\n";
 
-		$t_message .= email_format_attribute( $p_visible_bug_data, 'email_summary' );
+			$t_message .= email_format_attribute( $p_visible_bug_data, 'email_summary' );
 
-		$t_message .= lang_get( 'email_description' ) . ": \n".wordwrap( $p_visible_bug_data['email_description'] )."\n";
+			$t_message .= lang_get( 'email_description' ) . ": \n".wordwrap( $p_visible_bug_data['email_description'] )."\n";
 
-		# MASC RELATIONSHIP
-		if ( ON == config_get( 'enable_relationship' ) ) {
-			if (isset( $p_visible_bug_data['relations'] )) {
-				$t_message .= $p_visible_bug_data['relations'];
+			# MASC RELATIONSHIP
+			if ( ON == config_get( 'enable_relationship' ) ) {
+				if (isset( $p_visible_bug_data['relations'] )) {
+					$t_message .= $p_visible_bug_data['relations'];
+				}
 			}
-		}
-		# MASC RELATIONSHIP
-
-		# Sponsorship
-		if ( isset( $p_visible_bug_data['sponsorship_total'] ) && ( $p_visible_bug_data['sponsorship_total'] > 0 ) ) {
-			$t_message .= $t_email_separator1."\n";
-			$t_message .= sprintf( lang_get( 'total_sponsorship_amount' ), sponsorship_format_amount( $p_visible_bug_data['sponsorship_total'] ) ) . "\n" . "\n";
+			# MASC RELATIONSHIP
 
-			if ( isset( $p_visible_bug_data['sponsorships'] ) ) {
-				foreach ( $p_visible_bug_data['sponsorships'] as $t_sponsorship ) {
-					$t_date_added = date( config_get( 'normal_date_format' ), db_unixtimestamp( $t_sponsorship->date_submitted ) );
-
-					$t_message .= $t_date_added . ': ';
-					$t_message .= user_get_name( $t_sponsorship->user_id );
-					$t_message .= ' (' . sponsorship_format_amount( $t_sponsorship->amount ) . ')' . "\n";
+			# Sponsorship
+			if ( isset( $p_visible_bug_data['sponsorship_total'] ) && ( $p_visible_bug_data['sponsorship_total'] > 0 ) ) {
+				$t_message .= $t_email_separator1."\n";
+				$t_message .= sprintf( lang_get( 'total_sponsorship_amount' ), sponsorship_format_amount( $p_visible_bug_data['sponsorship_total'] ) ) . "\n" . "\n";
+
+				if ( isset( $p_visible_bug_data['sponsorships'] ) ) {
+					foreach ( $p_visible_bug_data['sponsorships'] as $t_sponsorship ) {
+						$t_date_added = date( config_get( 'normal_date_format' ), db_unixtimestamp( $t_sponsorship->date_submitted ) );
+
+						$t_message .= $t_date_added . ': ';
+						$t_message .= user_get_name( $t_sponsorship->user_id );
+						$t_message .= ' (' . sponsorship_format_amount( $t_sponsorship->amount ) . ')' . "\n";
+					}
 				}
 			}
-		}
 
-		$t_message .= $t_email_separator1."\n\n";
+			$t_message .= $t_email_separator1."\n\n";
 
-		# format bugnotes
-		foreach ( $p_visible_bug_data['bugnotes'] as $t_bugnote ) {
-			$t_last_modified = date( $t_normal_date_format, $t_bugnote->last_modified );
-			$t_string = ' '.$t_bugnote->reporter_name.' - '.$t_last_modified.' ';
-
-			$t_message .= $t_email_separator2."\n";
-			$t_message .= $t_string."\n";
-			$t_message .= $t_email_separator2."\n";
-			$t_message .= wordwrap( $t_bugnote->note )."\n\n";
+			# format bugnotes
+			foreach ( $p_visible_bug_data['bugnotes'] as $t_bugnote ) {
+				$t_last_modified = date( $t_normal_date_format, $t_bugnote->last_modified );
+				$t_string = ' '.$t_bugnote->reporter_name.' - '.$t_last_modified.' ';
+
+				$t_message .= $t_email_separator2."\n";
+				$t_message .= $t_string."\n";
+				$t_message .= $t_email_separator2."\n";
+				$t_message .= wordwrap( $t_bugnote->note )."\n\n";
+			}
 		}
-
 		# format history
 		if ( array_key_exists( 'history', $p_visible_bug_data ) ) {
 			$t_message .=	lang_get( 'bug_history' ) . "\n";
@@ -933,11 +938,17 @@
 	# Build the bug raw data visible for specified user to be translated and sent by email to the user
 	# (Filter the bug data according to user access level)
 	# return array with bug data. See usage in email_format_bug_message(...)
-	function email_build_visible_bug_data( $p_user_id, $p_bug_id, $p_message_id ) {
+	function email_build_visible_bug_data( $p_user_id, $p_notice_format, $p_bug_id, $p_message_id ) {
 		$t_project_id = bug_get_field( $p_bug_id, 'project_id' );
 		$t_user_access_level = user_get_access_level( $p_user_id, $t_project_id );
 		$t_user_bugnote_order = user_pref_get_pref ( $p_user_id, 'bugnote_order' );
-		$t_user_bugnote_limit = user_pref_get_pref ( $p_user_id, 'email_bugnote_limit' );
+		if ( EMAIL_NOTICE_BRIEF == $p_notice_format ) { # Limit the number of notes based on user prefs
+			$t_user_bugnote_limit = user_pref_get_pref ( $p_user_id, 'email_bugnote_limit' );
+		} else if ( EMAIL_NOTICE_DIFF == $p_notice_format ) { # Display only new bugnote (if any) and any other changes.
+			$t_user_bugnote_limit = 1;
+		} else { # Display all bugnotes
+			$t_user_bugnote_limit = 0;
+		}
 
 		$row = bug_get_extended_row( $p_bug_id );
 		$t_bug_data = array();
Index: lang/strings_english.txt
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/lang/strings_english.txt,v
retrieving revision 1.215
diff -u -r1.215 strings_english.txt
--- lang/strings_english.txt	28 Sep 2004 14:09:40 -0000	1.215
+++ lang/strings_english.txt	5 Oct 2004 15:14:00 -0000
@@ -359,6 +359,10 @@
 $s_bugnote_order = 'Notes Sort Order';
 $s_bugnote_order_asc = 'Ascending';
 $s_bugnote_order_desc = 'Descending';
+$s_email_notice_long = 'Long';
+$s_email_notice_brief = 'Brief';
+$s_email_notice_diff = 'Diff';
+$s_email_notice_off = 'Off';
 $s_email_on_new = 'Email on New';
 $s_email_on_assigned = 'Email on Assigned';
 $s_email_on_feedback = 'Email on Feedback';
@@ -1064,4 +1068,4 @@
 
 # Source Control Integration
 $s_checkin = 'Checkin';
-?>
\ No newline at end of file
+?>
