View Issue Details

IDProjectCategoryView StatusLast Update
0022310mantisbthtmlpublic2017-10-21 04:37
Reporterj_schultzAssigned Tocommunity 
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product Version2.1.0 
Target Version2.7.0Fixed in Version2.7.0 
Summary0022310: Use HTML5 "required" attribute for required form fields
Description

When submitting a bug, there are several form fields that mustn't be left empty, usually marked with an asterisk.
There is the age-old issue that under some circumstances the browser won't restore the form data when accidentally submitting an incomplete or otherwise erroneous bug report and using the back button after the error message was displayed.
Now that Mantis uses HTML5 for its markup, one small step towards preventing the users from submitting incomplete forms would be the possibility to add the "required" attribute to all such form fields (see http://www.w3schools.com/html/html_form_attributes.asp for more details). Any sufficiently modern browser will then prevent the user from submitting an incomplete form.

TagsNo tags attached.

Relationships

related to 0021694 confirmed inconsistent presentation of required fields 
related to 0023507 closeddregad Users can't change their password when it is blank 
related to 0023512 closedatrol Custom field type checkbox with required status, force to check all checkboxes to proceed 

Activities

j_schultz

j_schultz

2017-02-07 15:47

reporter   ~0055563

Here's a proposed patch to address this problem.



required-form-attributes.patch (21,079 bytes)
Index: account_page.php
===================================================================
--- account_page.php	(revision 13708)
+++ account_page.php	(working copy)
@@ -187,7 +187,7 @@
 					<span class="required"><?php if( $t_force_pw_reset ) { ?> * <?php } ?></span> <?php echo lang_get( 'current_password' ) ?>
 				</td>
 				<td>
-					<input class="input-sm" id="password-current" type="password" name="password_current" size="32" maxlength="<?php echo auth_get_password_max_size(); ?>" />
+					<input class="input-sm" id="password-current" type="password" name="password_current" size="32" maxlength="<?php echo auth_get_password_max_size(); ?>" required />
 				</td>
 			</tr>
 			<?php
@@ -197,7 +197,7 @@
 					<span class="required"><?php if( $t_force_pw_reset ) { ?> * <?php } ?></span> <?php echo lang_get( 'new_password' ) ?>
 				</td>
 				<td>
-					<input class="input-sm" id="password" type="password" name="password" size="32" maxlength="<?php echo auth_get_password_max_size(); ?>" />
+					<input class="input-sm" id="password" type="password" name="password" size="32" maxlength="<?php echo auth_get_password_max_size(); ?>" required />
 				</td>
 			</tr>
 			<tr>
@@ -205,7 +205,7 @@
 					<span class="required"><?php if( $t_force_pw_reset ) { ?> * <?php } ?></span> <?php echo lang_get( 'confirm_password' ) ?>
 				</td>
 				<td>
-					<input class="input-sm" id="password-confirm" type="password" name="password_confirm" size="32" maxlength="<?php echo auth_get_password_max_size(); ?>" />
+					<input class="input-sm" id="password-confirm" type="password" name="password_confirm" size="32" maxlength="<?php echo auth_get_password_max_size(); ?>" required />
 				</td>
 			</tr>
 			<?php
Index: account_prof_edit_page.php
===================================================================
--- account_prof_edit_page.php	(revision 13708)
+++ account_prof_edit_page.php	(working copy)
@@ -102,7 +102,7 @@
 		<span class="required">*</span><?php echo lang_get( 'platform' ) ?>
 	</th>
 	<td width="75%">
-		<input type="text" name="platform" class="input-sm" size="32" maxlength="32" value="<?php echo string_attribute( $v_platform ) ?>" />
+		<input type="text" name="platform" class="input-sm" size="32" maxlength="32" value="<?php echo string_attribute( $v_platform ) ?>" required />
 	</td>
 </tr>
 <tr>
@@ -110,7 +110,7 @@
 		<span class="required">*</span><?php echo lang_get( 'os' ) ?>
 	</th>
 	<td>
-		<input type="text" name="os" class="input-sm"  size="32" maxlength="32" value="<?php echo string_attribute( $v_os ) ?>" />
+		<input type="text" name="os" class="input-sm"  size="32" maxlength="32" value="<?php echo string_attribute( $v_os ) ?>" required />
 	</td>
 </tr>
 <tr>
@@ -118,7 +118,7 @@
 		<span class="required">*</span><?php echo lang_get( 'os_version' ) ?>
 	</th>
 	<td>
-		<input type="text" name="os_build" class="input-sm" size="16" maxlength="16" value="<?php echo string_attribute( $v_os_build ) ?>" />
+		<input type="text" name="os_build" class="input-sm" size="16" maxlength="16" value="<?php echo string_attribute( $v_os_build ) ?>" required />
 	</td>
 </tr>
 <tr>
Index: account_prof_menu_page.php
===================================================================
--- account_prof_menu_page.php	(revision 13708)
+++ account_prof_menu_page.php	(working copy)
@@ -114,7 +114,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'platform' ) ?>
 				</td>
 				<td>
-					<input id="platform" type="text" name="platform" class="input-sm" size="32" maxlength="32" />
+					<input id="platform" type="text" name="platform" class="input-sm" size="32" maxlength="32" required />
 				</td>
 			</tr>
 			<tr>
@@ -122,7 +122,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'os' ) ?>
 				</td>
 				<td>
-					<input id="os" type="text" name="os" class="input-sm" size="32" maxlength="32" />
+					<input id="os" type="text" name="os" class="input-sm" size="32" maxlength="32" required />
 				</td>
 			</tr>
 			<tr>
@@ -130,7 +130,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'os_version' ) ?>
 				</td>
 				<td>
-					<input id="os-version" type="text" name="os_build" class="input-sm" size="16" maxlength="16" />
+					<input id="os-version" type="text" name="os_build" class="input-sm" size="16" maxlength="16" required />
 				</td>
 			</tr>
 			<tr>
Index: bug_change_status_page.php
===================================================================
--- bug_change_status_page.php	(revision 13708)
+++ bug_change_status_page.php	(working copy)
@@ -291,7 +291,7 @@
 		<td>
 <?php
 			if( $t_has_write_access ) {
-				print_custom_field_input( $t_def, $f_bug_id );
+				print_custom_field_input( $t_def, $f_bug_id, $t_require );
 			} elseif( custom_field_has_read_access( $t_id, $f_bug_id ) ) {
 				print_custom_field_value( $t_def, $t_id, $f_bug_id );
 			}
Index: bug_report_page.php
===================================================================
--- bug_report_page.php	(revision 13708)
+++ bug_report_page.php	(working copy)
@@ -542,7 +542,7 @@
 			<span class="required">*</span><label for="summary"><?php print_documentation_link( 'summary' ) ?></label>
 		</th>
 		<td>
-			<input <?php echo helper_get_tab_index() ?> type="text" id="summary" name="summary" size="105" maxlength="128" value="<?php echo string_attribute( $f_summary ) ?>" />
+			<input <?php echo helper_get_tab_index() ?> type="text" id="summary" name="summary" size="105" maxlength="128" value="<?php echo string_attribute( $f_summary ) ?>" required />
 		</td>
 	</tr>
 	<tr>
@@ -550,7 +550,7 @@
 			<span class="required">*</span><label for="description"><?php print_documentation_link( 'description' ) ?></label>
 		</th>
 		<td>
-			<textarea class="form-control" <?php echo helper_get_tab_index() ?> id="description" name="description" cols="80" rows="10"><?php echo string_textarea( $f_description ) ?></textarea>
+			<textarea class="form-control" <?php echo helper_get_tab_index() ?> id="description" name="description" cols="80" rows="10" required><?php echo string_textarea( $f_description ) ?></textarea>
 		</td>
 	</tr>
 
@@ -613,7 +613,7 @@
 			<?php } else { echo string_display( lang_get_defaulted( $t_def['name'] ) ); } ?>
 		</th>
 		<td>
-			<?php print_custom_field_input( $t_def, ( $f_master_bug_id === 0 ) ? null : $f_master_bug_id ) ?>
+			<?php print_custom_field_input( $t_def, ( $f_master_bug_id === 0 ) ? null : $f_master_bug_id, $t_def['require_report'] ) ?>
 		</td>
 	</tr>
 <?php
Index: bug_update_page.php
===================================================================
--- bug_update_page.php	(revision 13708)
+++ bug_update_page.php	(working copy)
@@ -709,7 +709,7 @@
 		echo '<span>', string_display( lang_get_defaulted( $t_def['name'] ) ), '</span>';
 		echo '</label>';
 		echo '</td><td colspan="5">';
-		print_custom_field_input( $t_def, $t_bug_id );
+		print_custom_field_input( $t_def, $t_bug_id, $t_def['require_update'] );
 		echo '</td></tr>';
 	}
 } # foreach( $t_related_custom_field_ids as $t_id )
Index: core/cfdefs/cfdef_standard.php
===================================================================
--- core/cfdefs/cfdef_standard.php	(revision 13708)
+++ core/cfdefs/cfdef_standard.php	(working copy)
@@ -280,9 +280,10 @@
  * print_custom_field_input
  * @param array $p_field_def          Custom field definition.
  * @param mixed $p_custom_field_value Custom field value.
+ * @param string $p_required          The "required" attribute to add to the field
  * @return void
  */
-function cfdef_input_list( array $p_field_def, $p_custom_field_value ) {
+function cfdef_input_list( array $p_field_def, $p_custom_field_value, $p_required = '' ) {
 	$t_values = explode( '|', custom_field_prepare_possible_values( $p_field_def['possible_values'] ) );
 	$t_list_size = $t_possible_values_count = count( $t_values );
 
@@ -295,9 +296,9 @@
 	}
 
 	if( $p_field_def['type'] == CUSTOM_FIELD_TYPE_MULTILIST ) {
-		echo '<select ' . helper_get_tab_index() . ' id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '[]" size="' . $t_list_size . '" multiple="multiple">';
+		echo '<select ' . helper_get_tab_index() . ' id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '[]" size="' . $t_list_size . '" multiple="multiple"' . $p_required .'>';
 	} else {
-		echo '<select ' . helper_get_tab_index() . ' id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '" size="' . $t_list_size . '">';
+		echo '<select ' . helper_get_tab_index() . ' id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '" size="' . $t_list_size . '"' . $p_required .'>';
 	}
 
 	$t_selected_values = explode( '|', $p_custom_field_value );
@@ -315,9 +316,10 @@
  * print_custom_field_input
  * @param array $p_field_def          Custom field definition.
  * @param mixed $p_custom_field_value Custom field value.
+ * @param string $p_required          The "required" attribute to add to the field
  * @return void
  */
-function cfdef_input_checkbox( array $p_field_def, $p_custom_field_value ) {
+function cfdef_input_checkbox( array $p_field_def, $p_custom_field_value, $p_required = '' ) {
 	$t_values = explode( '|', custom_field_prepare_possible_values( $p_field_def['possible_values'] ) );
 	$t_checked_values = explode( '|', $p_custom_field_value );
 	for( $i = 0; $i < count( $t_values ); $i++ ) {
@@ -324,7 +326,7 @@
 		$t_input_id = 'custom_field_' . $p_field_def['id'] . '_value_' . $i;
 		$t_input_name = 'custom_field_' . $p_field_def['id'] . '[]';
 		echo '<label for="' . $t_input_id . '">' . "\n";
-		echo '<input class="ace" id="' . $t_input_id . '" ' . helper_get_tab_index() . ' type="checkbox" name="' . $t_input_name . '" value="' . string_attribute( $t_values[$i] ) . '"';
+		echo '<input class="ace" id="' . $t_input_id . '" ' . helper_get_tab_index() . ' type="checkbox" name="' . $t_input_name . '" value="' . string_attribute( $t_values[$i] ) . '"' . $p_required;
 		check_checked( $t_checked_values, $t_values[$i] );
 		echo " />\n";
 		echo '<span class="lbl">&#160;' . string_display_line( $t_values[$i] ) . '</label>' . "\n";
@@ -336,9 +338,10 @@
  * print_custom_field_input
  * @param array $p_field_def          Custom field definition.
  * @param mixed $p_custom_field_value Custom field value.
+ * @param string $p_required          The "required" attribute to add to the field
  * @return void
  */
-function cfdef_input_radio( array $p_field_def, $p_custom_field_value ) {
+function cfdef_input_radio( array $p_field_def, $p_custom_field_value, $p_required = '' ) {
 	$t_values = explode( '|', custom_field_prepare_possible_values( $p_field_def['possible_values'] ) );
 
 	$t_len = strlen( $p_custom_field_value );
@@ -352,7 +355,7 @@
 		$t_input_id = 'custom_field_' . $p_field_def['id'] . '_value_' . $i;
 		$t_input_name = 'custom_field_' . $p_field_def['id'];
 		echo '<label for="' . $t_input_id . '">';
-		echo '<input class="ace" id="' . $t_input_id . '" ' . helper_get_tab_index() . ' type="radio" name="' . $t_input_name . '" value="' . string_attribute( $t_values[$i] ) . '"';
+		echo '<input class="ace" id="' . $t_input_id . '" ' . helper_get_tab_index() . ' type="radio" name="' . $t_input_name . '" value="' . string_attribute( $t_values[$i] ) . '"' . $p_required;
 		check_checked( $t_checked_value, $t_values[$i] );
 		echo " />\n";
 		echo '<span class="lbl">&#160;' . string_display_line( $t_values[$i] ) . '</span>' . "\n";
@@ -364,10 +367,11 @@
  * print_custom_field_input
  * @param array $p_field_def          Custom field definition.
  * @param mixed $p_custom_field_value Custom field value.
+ * @param string $p_required          The "required" attribute to add to the field
  * @return void
  */
-function cfdef_input_textbox( array $p_field_def, $p_custom_field_value ) {
-	echo '<input ' . helper_get_tab_index() . ' type="text" id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '" size="80"';
+function cfdef_input_textbox( array $p_field_def, $p_custom_field_value, $p_required = '' ) {
+	echo '<input ' . helper_get_tab_index() . ' type="text" id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '" size="80"' . $p_required;
 	if( 0 < $p_field_def['length_max'] ) {
 		echo ' maxlength="' . $p_field_def['length_max'] . '"';
 	} else {
@@ -380,10 +384,11 @@
  * print_custom_field_input
  * @param array $p_field_def          Custom field definition.
  * @param mixed $p_custom_field_value Custom field value.
+ * @param string $p_required          The "required" attribute to add to the field
  * @return void
  */
-function cfdef_input_textarea( array $p_field_def, $p_custom_field_value ) {
-	echo '<textarea class="form-control" ' . helper_get_tab_index() . ' id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '"';
+function cfdef_input_textarea( array $p_field_def, $p_custom_field_value, $p_required = '' ) {
+	echo '<textarea class="form-control" ' . helper_get_tab_index() . ' id="custom_field_' . $p_field_def['id'] . '" name="custom_field_' . $p_field_def['id'] . '"' . $p_required;
 	echo ' cols="70" rows="8">' . $p_custom_field_value .'</textarea>';
 }
 
@@ -392,9 +397,10 @@
  *
  * @param string $p_field_def          The custom field definition.
  * @param string $p_custom_field_value The custom field value to print.
+ * @param string $p_required          The "required" attribute to add to the field
  * @return void
  */
-function cfdef_input_date( $p_field_def, $p_custom_field_value ) {
+function cfdef_input_date( $p_field_def, $p_custom_field_value, $p_required = '' ) {
 	print_date_selection_set( 'custom_field_' . $p_field_def['id'], config_get( 'short_date_format' ), $p_custom_field_value, false, true );
 }
 
Index: core/custom_field_api.php
===================================================================
--- core/custom_field_api.php	(revision 13708)
+++ core/custom_field_api.php	(working copy)
@@ -1372,10 +1372,11 @@
  * NOTE: This probably belongs in the print_api.php
  * @param array   $p_field_def Custom field definition.
  * @param integer $p_bug_id    A bug identifier.
+ * @param boolean $p_required  True if the field is required for form submission
  * @return void
  * @access public
  */
-function print_custom_field_input( array $p_field_def, $p_bug_id = null ) {
+function print_custom_field_input( array $p_field_def, $p_bug_id = null, $p_required = false ) {
 	if( null === $p_bug_id ) {
 		$t_custom_field_value = custom_field_default_to_value( $p_field_def['default_value'], $p_field_def['type'] );
 	} else {
@@ -1392,7 +1393,7 @@
 
 	global $g_custom_field_type_definition;
 	if( isset( $g_custom_field_type_definition[$p_field_def['type']]['#function_print_input'] ) ) {
-		call_user_func( $g_custom_field_type_definition[$p_field_def['type']]['#function_print_input'], $p_field_def, $t_custom_field_value );
+		call_user_func( $g_custom_field_type_definition[$p_field_def['type']]['#function_print_input'], $p_field_def, $t_custom_field_value, $p_required ? ' required ' : '' );
 		print_hidden_input( custom_field_presence_field_name( $p_field_def['id'] ), '1' );
 	} else {
 		trigger_error( ERROR_CUSTOM_FIELD_INVALID_DEFINITION, ERROR );
Index: manage_proj_create_page.php
===================================================================
--- manage_proj_create_page.php	(revision 13708)
+++ manage_proj_create_page.php	(working copy)
@@ -101,7 +101,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'project_name' ) ?>
 				</td>
 				<td>
-					<input type="text" id="project-name" name="name" class="input-sm" size="60" maxlength="128" />
+					<input type="text" id="project-name" name="name" class="input-sm" size="60" maxlength="128" required />
 				</td>
 			</tr>
 			<tr>
Index: manage_proj_edit_page.php
===================================================================
--- manage_proj_edit_page.php	(revision 13708)
+++ manage_proj_edit_page.php	(working copy)
@@ -116,7 +116,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'project_name' ) ?>
 				</td>
 				<td>
-					<input type="text" id="project-name" name="name" class="input-sm" size="60" maxlength="128" value="<?php echo string_attribute( $t_row['name'] ) ?>" />
+					<input type="text" id="project-name" name="name" class="input-sm" size="60" maxlength="128" value="<?php echo string_attribute( $t_row['name'] ) ?>" required />
 				</td>
 			</tr>
 			<tr>
@@ -849,7 +849,7 @@
 				   <span class="required">*</span> <?php echo lang_get( 'username' ) ?>
 				</td>
 				<td>
-					<select id="project-add-users-username" name="user_id[]" class="input-sm" multiple="multiple" size="10"><?php
+					<select id="project-add-users-username" name="user_id[]" class="input-sm" multiple="multiple" size="10" required><?php
 						foreach( $t_users AS $t_user_id=>$t_display_name ) {
 							echo '<option value="', $t_user_id, '">', $t_display_name, '</option>';
 						} ?>
Index: manage_tags_page.php
===================================================================
--- manage_tags_page.php	(revision 13708)
+++ manage_tags_page.php	(working copy)
@@ -208,7 +208,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'tag_name' ) ?>
 				</td>
 				<td>
-					<input type="text" id="tag-name" name="name" class="input-sm" size="40" maxlength="100" />
+					<input type="text" id="tag-name" name="name" class="input-sm" size="40" maxlength="100" required />
 					<small><?php echo sprintf( lang_get( 'tag_separate_by' ), config_get( 'tag_separator' ) ); ?></small>
 				</td>
 			</tr>
Index: news_edit_page.php
===================================================================
--- news_edit_page.php	(revision 13708)
+++ news_edit_page.php	(working copy)
@@ -116,7 +116,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'headline' ) ?>
 				</td>
 				<td>
-					<input type="text" id="news-update-headline" name="headline" class="input-sm" size="64" maxlength="64" value="<?php echo $v_headline ?>" />
+					<input type="text" id="news-update-headline" name="headline" class="input-sm" size="64" maxlength="64" value="<?php echo $v_headline ?>" required />
 				</td>
 			</tr>
 			<tr>
@@ -124,7 +124,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'body' ) ?>
 				</td>
 				<td>
-					<textarea class="form-control" id="news-update-body" name="body" cols="60" rows="10"><?php echo $v_body ?></textarea>
+					<textarea class="form-control" id="news-update-body" name="body" cols="60" rows="10" required><?php echo $v_body ?></textarea>
 				</td>
 			</tr>
 			<tr>
Index: news_menu_page.php
===================================================================
--- news_menu_page.php	(revision 13708)
+++ news_menu_page.php	(working copy)
@@ -75,7 +75,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'headline' ) ?>
 				</td>
 				<td>
-					<input type="text" id="news-headline" name="headline" class="input-sm" size="64" maxlength="64" />
+					<input type="text" id="news-headline" name="headline" class="input-sm" size="64" maxlength="64" required />
 				</td>
 			</tr>
 			<tr>
@@ -83,7 +83,7 @@
 					<span class="required">*</span> <?php echo lang_get( 'body' ) ?>
 				</td>
 				<td>
-					<textarea class="form-control" id="news-body" name="body" cols="60" rows="8"></textarea>
+					<textarea class="form-control" id="news-body" name="body" cols="60" rows="8" required></textarea>
 				</td>
 			</tr>
 			<tr>
Index: proj_doc_add_page.php
===================================================================
--- proj_doc_add_page.php	(revision 13708)
+++ proj_doc_add_page.php	(working copy)
@@ -80,7 +80,7 @@
 		<span class="required">*</span> <?php echo lang_get( 'title' ) ?>
 	</th>
 	<td width="75%">
-		<input type="text" name="title" class="input-sm" size="70" maxlength="250" />
+		<input type="text" name="title" class="input-sm" size="70" maxlength="250" required />
 	</td>
 </tr>
 <tr>
@@ -98,7 +98,7 @@
 		<?php print_max_filesize( $t_max_file_size ); ?>
 	</td>
 	<td>
-		<input type="hidden" name="max_file_size" value="<?php echo $t_max_file_size ?>" />
+		<input type="hidden" name="max_file_size" value="<?php echo $t_max_file_size ?>" required />
 		<input name="file" type="file" size="70" />
 	</td>
 </tr>
Index: proj_doc_edit_page.php
===================================================================
--- proj_doc_edit_page.php	(revision 13708)
+++ proj_doc_edit_page.php	(working copy)
@@ -102,7 +102,7 @@
 		<span class="required">*</span> <?php echo lang_get( 'title' ) ?>
 	</th>
 	<td width="80%">
-		<input type="text" name="title" class="input-sm" size="70" maxlength="250" value="<?php echo $v_title ?>" />
+		<input type="text" name="title" class="input-sm" size="70" maxlength="250" value="<?php echo $v_title ?>" required />
 	</td>
 </tr>
 <tr>
atrol

atrol

2017-02-09 03:23

developer   ~0055601

PR https://github.com/mantisbt/mantisbt/pull/1026

Related Changesets

MantisBT: master f4137abe

2017-02-08 19:12:48

Saga Musix


Committer: dregad Details Diff
Add HTML5 'required' attribute to form fields

Fixes 0022310

Signed-off-by: Damien Regad <dregad@mantisbt.org>
mod - account_page.php Diff File
mod - account_prof_edit_page.php Diff File
mod - account_prof_menu_page.php Diff File
mod - bug_change_status_page.php Diff File
mod - bug_report_page.php Diff File
mod - bug_update_page.php Diff File
mod - core/cfdefs/cfdef_standard.php Diff File
mod - core/custom_field_api.php Diff File
mod - core/date_api.php Diff File
mod - manage_proj_create_page.php Diff File
mod - manage_proj_edit_page.php Diff File
mod - manage_tags_page.php Diff File
mod - news_edit_page.php Diff File
mod - news_menu_page.php Diff File
mod - proj_doc_add_page.php Diff File
mod - proj_doc_edit_page.php Diff File

Issue History

Date Modified Username Field Change
2017-02-03 12:38 j_schultz New Issue
2017-02-07 15:47 j_schultz File Added: required-form-attributes.patch
2017-02-07 15:47 j_schultz Note Added: 0055563
2017-02-09 03:23 atrol Note Added: 0055601
2017-09-05 05:42 dregad Relationship added related to 0021694
2017-09-05 05:43 dregad Assigned To => community
2017-09-05 05:43 dregad Status new => assigned
2017-09-05 05:43 dregad Target Version => 2.7.0
2017-09-09 18:08 dregad Changeset attached => MantisBT master f4137abe
2017-09-09 18:08 dregad Assigned To community => dregad
2017-09-09 18:08 dregad Status assigned => resolved
2017-09-09 18:08 dregad Resolution open => fixed
2017-09-09 18:08 dregad Fixed in Version => 2.7.0
2017-09-10 05:41 atrol Assigned To dregad => community
2017-10-08 23:53 vboctor Status resolved => closed
2017-10-20 05:40 dregad Relationship added related to 0023507
2017-10-21 04:37 atrol Relationship added related to 0023512