From: <vb...@us...> - 2008-03-20 08:07:25
|
Revision: 5127 http://mantisbt.svn.sourceforge.net/mantisbt/?rev=5127&view=rev Author: vboctor Date: 2008-03-20 01:07:08 -0700 (Thu, 20 Mar 2008) Log Message: ----------- Fixed #1910: Provide ability to make version obsolete. Modified Paths: -------------- trunk/mantisbt/admin/schema.php trunk/mantisbt/changelog_page.php trunk/mantisbt/core/print_api.php trunk/mantisbt/core/version_api.php trunk/mantisbt/lang/strings_english.txt trunk/mantisbt/manage_proj_edit_page.php trunk/mantisbt/manage_proj_ver_edit_page.php trunk/mantisbt/manage_proj_ver_update.php trunk/mantisbt/roadmap_page.php Modified: trunk/mantisbt/admin/schema.php =================================================================== --- trunk/mantisbt/admin/schema.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/admin/schema.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -402,5 +402,5 @@ protected L NOTNULL DEFAULT \" '0' \", priority I UNSIGNED NOTNULL DEFAULT '3' " ) ); - -?> +$upgrade[] = Array( 'AddColumnSQL', Array( db_get_table( 'mantis_project_version_table' ), " + obsolete L NOTNULL DEFAULT \" '0' \"" ) ); Modified: trunk/mantisbt/changelog_page.php =================================================================== --- trunk/mantisbt/changelog_page.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/changelog_page.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -84,8 +84,8 @@ $t_bug_table = db_get_table( 'mantis_bug_table' ); $t_relation_table = db_get_table( 'mantis_bug_relationship_table' ); - $t_version_rows = version_get_all_rows( $t_project_id ); - + $t_version_rows = version_get_all_rows( $t_project_id, /* released */ null, /* obsolete */ false ); + $t_project_header_printed = false; foreach( $t_version_rows as $t_version_row ) { @@ -173,7 +173,7 @@ $t_issue_id = $t_issue_ids[$k]; $t_issue_parent = $t_issue_parents[$k]; - if ( in_array( $t_issue_id, $t_cycle_ids ) || in_array( $t_parent_id, $t_cycle_ids ) ) { + if ( in_array( $t_issue_id, $t_cycle_ids ) || in_array( $t_issue_parent, $t_cycle_ids ) ) { $t_cycle = true; } else { $t_cycle = false; Modified: trunk/mantisbt/core/print_api.php =================================================================== --- trunk/mantisbt/core/print_api.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/core/print_api.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -798,7 +798,7 @@ # $p_released = null to get all, 1: only released, 0: only future versions # $p_leading_black = allow selection of no version # $p_with_subs = include subprojects - function print_version_option_list( $p_version='', $p_project_id = null, $p_released = null, $p_leading_blank = true, $p_with_subs=false ) { + function print_version_option_list( $p_version='', $p_project_id = null, $p_released = null, $p_leading_blank = true, $p_with_subs = false ) { if ( null === $p_project_id ) { $c_project_id = helper_get_current_project(); } else { @@ -806,9 +806,9 @@ } if ( $p_with_subs ) { - $versions = version_get_all_rows_with_subs( $c_project_id, $p_released ); + $versions = version_get_all_rows_with_subs( $c_project_id, $p_released, /* obsolete */ null ); } else { - $versions = version_get_all_rows( $c_project_id, $p_released ); + $versions = version_get_all_rows( $c_project_id, $p_released, /* obsolete */ null ); } if ( $p_leading_blank ) { @@ -816,6 +816,14 @@ } foreach( $versions as $version ) { + # If the current version is obsolete, and current version not equal to $p_version, + # then skip it. + if ( ((int)$version['obsolete']) == 1 ) { + if ( $version['version'] != $p_version ) { + continue; + } + } + $t_version = string_attribute( $version['version'] ); echo "<option value=\"$t_version\""; check_selected( $p_version, $t_version ); Modified: trunk/mantisbt/core/version_api.php =================================================================== --- trunk/mantisbt/core/version_api.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/core/version_api.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -33,6 +33,7 @@ var $description = ''; var $released = VERSION_FUTURE; var $date_order = ''; + var $obsolete = 0; } #=================================== @@ -120,9 +121,10 @@ # -------------------- # Add a version to the project - function version_add( $p_project_id, $p_version, $p_released = VERSION_FUTURE, $p_description = '', $p_date_order = null) { + function version_add( $p_project_id, $p_version, $p_released = VERSION_FUTURE, $p_description = '', $p_date_order = null, $p_obsolete = false ) { $c_project_id = db_prepare_int( $p_project_id ); $c_released = db_prepare_int( $p_released ); + $c_obsolete = db_prepare_bool( $p_obsolete ); if ( null === $p_date_order ) { $c_date_order = db_now(); @@ -135,10 +137,10 @@ $t_project_version_table = db_get_table( 'mantis_project_version_table' ); $query = "INSERT INTO $t_project_version_table - ( project_id, version, date_order, description, released ) + ( project_id, version, date_order, description, released, obsolete ) VALUES - (" . db_param(0) . ", " . db_param(1) . ", " . db_param(2) . ", " . db_param(3) . ", " . db_param(4) . " )"; - db_query_bound( $query, Array( $c_project_id, $p_version, $c_date_order, $p_description, $c_released ) ); + (" . db_param(0) . ', ' . db_param(1) . ', ' . db_param(2) . ', ' . db_param(3) . ', ' . db_param(4) . ', ' . db_param(5) . ' )'; + db_query_bound( $query, Array( $c_project_id, $p_version, $c_date_order, $p_description, $c_released, $c_obsolete ) ); # db_query errors on failure so: return true; @@ -162,6 +164,7 @@ $c_old_version_name = $t_old_version_name; $c_description = $p_version_info->description; $c_released = db_prepare_int( $p_version_info->released ); + $c_obsolete = db_prepare_bool( $p_version_info->obsolete ); $c_date_order = db_timestamp( $p_version_info->date_order ); $c_project_id = db_prepare_int( $p_version_info->project_id ); @@ -172,9 +175,10 @@ SET version=" . db_param(0) . ", description=" .db_param(1) . ", released=" . db_param(2) . ", - date_order=" . db_param(3) . " - WHERE id=" . db_param(4); - db_query_bound( $query, Array( $c_version_name, $c_description, $c_released, $c_date_order, $c_version_id ) ); + date_order=" . db_param(3) . ", + obsolete=" . db_param(4) . " + WHERE id=" . db_param(5); + db_query_bound( $query, Array( $c_version_name, $c_description, $c_released, $c_date_order, $c_obsolete, $c_version_id ) ); if ( $c_version_name != $c_old_version_name ) { $query = "UPDATE $t_bug_table @@ -270,22 +274,31 @@ # -------------------- # Return all versions for the specified project - function version_get_all_rows( $p_project_id, $p_released = null ) { + function version_get_all_rows( $p_project_id, $p_released = null, $p_obsolete = false ) { $c_project_id = db_prepare_int( $p_project_id ); $t_project_version_table = db_get_table( 'mantis_project_version_table' ); + $t_param_count = 0; + $query = "SELECT * FROM $t_project_version_table - WHERE project_id=" . db_param(0); - $query_params[] = $c_project_id; - + WHERE project_id=" . db_param($t_param_count++); + $query_params = array( $c_project_id ); + if ( $p_released !== null ) { $c_released = db_prepare_int( $p_released ); - $query .= " AND released = " . db_param(1); + $query .= " AND released = " . db_param($t_param_count++); $query_params[] = $c_released; } + + if ( $p_obsolete !== null ) { + $c_obsolete = db_prepare_bool( $p_obsolete ); + $query .= " AND obsolete = " . db_param($t_param_count++); + $query_params[] = $c_obsolete; + } + $query .= " ORDER BY date_order DESC"; - + $result = db_query_bound( $query, $query_params ); $count = db_num_rows( $result ); $rows = array(); @@ -299,7 +312,7 @@ # -------------------- # Return all versions for the specified project, including subprojects - function version_get_all_rows_with_subs( $p_project_id, $p_released = null ) { + function version_get_all_rows_with_subs( $p_project_id, $p_released = null, $p_obsolete = false ) { $t_project_where = helper_project_specific_where( $p_project_id ); if ( $p_released === null ) { @@ -309,11 +322,18 @@ $t_released_where = "AND ( released = $c_released )"; } + if ( $p_obsolete === null ) { + $t_obsolete_where = ''; + } else { + $c_obsolete = db_prepare_bool( $p_obsolete ); + $t_obsolete_where = "AND ( obsolete = $c_obsolete )"; + } + $t_project_version_table = db_get_table( 'mantis_project_version_table' ); $query = "SELECT * FROM $t_project_version_table - WHERE $t_project_where $t_released_where + WHERE $t_project_where $t_released_where $t_obsolete_where ORDER BY date_order DESC"; $result = db_query( $query ); $count = db_num_rows( $result ); Modified: trunk/mantisbt/lang/strings_english.txt =================================================================== --- trunk/mantisbt/lang/strings_english.txt 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/lang/strings_english.txt 2008-03-20 08:07:08 UTC (rev 5127) @@ -920,6 +920,7 @@ $s_edit_project_version_title = 'Edit Project Version'; $s_update_version_button = 'Update Version'; $s_released = 'Released'; +$s_obsolete = 'Obsolete'; # manage_proj_version_update.php $s_version_updated_msg = 'Version has been successfully updated...'; Modified: trunk/mantisbt/manage_proj_edit_page.php =================================================================== --- trunk/mantisbt/manage_proj_edit_page.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/manage_proj_edit_page.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -414,7 +414,7 @@ </td> </tr> <?php - $t_versions = version_get_all_rows( $f_project_id ); + $t_versions = version_get_all_rows( $f_project_id, /* released = */ null, /* obsolete = */ null ); if ( count( $t_versions ) > 0 ) { ?> @@ -426,6 +426,9 @@ <?php echo lang_get( 'released' ) ?> </td> <td class="center"> + <?php echo lang_get( 'obsolete' ) ?> + </td> + <td class="center"> <?php echo lang_get( 'timestamp' ) ?> </td> <td class="center"> @@ -438,6 +441,7 @@ foreach ( $t_versions as $t_version ) { $t_name = $t_version['version']; $t_released = $t_version['released']; + $t_obsolete = $t_version['obsolete']; $t_date_order = $t_version['date_order']; $t_date_formatted = string_format_complete_date( $t_version['date_order'] ); ?> @@ -450,6 +454,9 @@ <?php echo trans_bool( $t_released ) ?> </td> <td class="center"> + <?php echo trans_bool( $t_obsolete ) ?> + </td> + <td class="center"> <?php echo $t_date_formatted ?> </td> <td class="center"> Modified: trunk/mantisbt/manage_proj_ver_edit_page.php =================================================================== --- trunk/mantisbt/manage_proj_ver_edit_page.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/manage_proj_ver_edit_page.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -79,6 +79,14 @@ <input type="checkbox" name="released" <?php check_checked( $t_version->released, VERSION_RELEASED ); ?> /> </td> </tr> +<tr <?php echo helper_alternate_class() ?>> + <td class="category"> + <?php echo lang_get( 'obsolete' ) ?> + </td> + <td> + <input type="checkbox" name="obsolete" <?php check_checked( $t_version->obsolete, true ); ?> /> + </td> +</tr> <tr> <td> Modified: trunk/mantisbt/manage_proj_ver_update.php =================================================================== --- trunk/mantisbt/manage_proj_ver_update.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/manage_proj_ver_update.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -37,6 +37,7 @@ $f_new_version = gpc_get_string( 'new_version' ); $f_description = gpc_get_string( 'description' ); $f_released = gpc_get_bool( 'released' ); + $f_obsolete = gpc_get_bool( 'obsolete' ); access_ensure_project_level( config_get( 'manage_project_threshold' ), $t_version->project_id ); @@ -49,6 +50,7 @@ $t_version->version = $f_new_version; $t_version->description = $f_description; $t_version->released = $f_released ? VERSION_RELEASED : VERSION_FUTURE; + $t_version->obsolete = $f_obsolete; $t_version->date_order = $f_date_order; version_update( $t_version ); Modified: trunk/mantisbt/roadmap_page.php =================================================================== --- trunk/mantisbt/roadmap_page.php 2008-03-18 15:58:29 UTC (rev 5126) +++ trunk/mantisbt/roadmap_page.php 2008-03-20 08:07:08 UTC (rev 5127) @@ -195,7 +195,7 @@ $t_issue_id = $t_issue_ids[$k]; $t_issue_parent = $t_issue_parents[$k]; - if ( in_array( $t_issue_id, $t_cycle_ids ) || in_array( $t_parent_id, $t_cycle_ids ) ) { + if ( in_array( $t_issue_id, $t_cycle_ids ) || in_array( $t_issue_parent, $t_cycle_ids ) ) { $t_cycle = true; } else { $t_cycle = false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |