From: <gi...@ma...> - 2010-02-22 20:13:36
|
The branch, live has been updated via 66c7feab38513a6375543191dba4e21e9667f5c4 (commit) via 8f89da5c5bc449718ed9618af5ce5fef51870d6f (commit) via a8861d42f44b18baadf7338c593b6e64d45e53cc (commit) via 37e1da1e2a8fcc77cfa9dbdef3aab5bf9534b76b (commit) via 0c3813ba46f5d2b4abe963a21548d87193d672d0 (commit) via e7fe953588fbcc3cca09ece2a606e5ba48a359ce (commit) via 00c58a29db88d1925074ac94d9abdddbd620cac6 (commit) via 391880708982e56454d5bd5aa3d68d515ac3197b (commit) via c6300e134e7991e7affa93b5f9cb75b89210c99b (commit) via b5c381d7d65ab1463518364a13ba459cb59ead20 (commit) via 7caa2274b09a6f58504d3fcbbc7d9429ecbac021 (commit) via 4a56720ba0c6f86c17b747f25c5f5f0f3b169f13 (commit) via 633799cf6645ecac3d4dc4ba67c99a9051965e60 (commit) via 3a2342435a135c01c9bbcdccc4b161d1036e9a16 (commit) via f812d51c3affe6d93abab90cf147211d7fc0a4dc (commit) via 7eada4f2efbec32a127e4a1791073b5282dc08cf (commit) via 343990b552fa383fd0dfedb0b63d4f7d37a9bf6e (commit) via 89b7e0016b0cfdc13063e24db8082c39cba7b350 (commit) via 17c46c7c9047ab4727effeb6493fb435ce568795 (commit) via a784a80638484364583018f4712efd2620a12d1d (commit) via b9be4bb66f5b5076e1ac2be85eb54cb4046ff492 (commit) via d83096067de4db921eef23a919052742d79a2538 (commit) via b551fbc0072668ce292c62379591eaffde31d6e8 (commit) via ba83c0e29e5dd786d9b1d1b47161811dad4c36ca (commit) via d09f09b89c5e3e5a5ada8da560b039c7bcf96bde (commit) via fd63b966db0e05cbb7d57613e442c9e7a40359b3 (commit) via 1b277fc82bba600da5a1dd4a39756efe1d33eef2 (commit) via 8f92d886cede9ac1498cc997cb827f461ed45c2b (commit) via 5f7cef9d27b1a33bfbdffe5ea9474fa7ae77ba8f (commit) via b65591fd61a387ac5b5be97bd7ced9113d62867c (commit) via 185b4b26e981563c0936042645e90e2571177db7 (commit) via 237ce0568c1e6b760f0d09597c9ed8d537c3b3aa (commit) via 9a55e85ce5b071570e24ffcda72c074f39f3662c (commit) via d1a69cd21e62b59bae32cb31864d18f6c337d0d6 (commit) via 764989fc444afef0083d9e543ad03f3de22e0bb0 (commit) via 2f42c6a0501ebc7fbe93cbd421614e285b84c455 (commit) via 4beb15aaddc3ec9d853c850d9867696c5141789e (commit) via dfbe8b563b8b9907d4856b87b5f5f7248c6021fb (commit) via 077921d056b9ddd476ef66fd67eb4ce1884cfcba (commit) via 4dfa13341720dd7974c2df6b113d3f697463270c (commit) via b9bd739473f77e0c6ad4cd4dc76259c86e70bd45 (commit) via 2c8f64b0bf24cf27797db9e451f6dc8881e86750 (commit) via e8ae3806d1586265b4b65ee21f8f2642f727f328 (commit) via dd258c75542e7bb090a9e274be37f438a65c5eb9 (commit) via d6b2fd0939ad3e7172879da76d1559c3db9964fb (commit) via 9b1fbd7766fd5ba235cc9d800043a518fb66d104 (commit) via f3d5815f911b217b5daf27195e1f6a11dad09b37 (commit) via 589ef8ff2dc10e952abdd2e7989dd595a5f7d107 (commit) via 0d044ba08e89bb178cf1c408db61e365a8e36a53 (commit) via 8a9f6d0593d78bc7b4cbe47c0444ba0d50d05fa2 (commit) via 45a2b5c3fa279fc6e3efa46e120603c70d98e14d (commit) via dc96dcfbafa295e37aaca33b0d3310dd30ce42f3 (commit) via 7ea8aa4406a7523562d8ee7122873b3a25962340 (commit) via 5e2d92c9f712d04c311febc6f070943f63e64bfc (commit) via 9849056062082a207aca8efaec42e3e76089086d (commit) via f765794d0223805c8f5f0b5d62c3352b8cedda15 (commit) via 6e8d2751ae30ca0647b99299d02dad1c3f2c992e (commit) via 7b27c02aa7d211370def144cc083e40ea0928b3b (commit) via 96813c57f4a73100f9ccb9896e95a828746e57ab (commit) via 67762d7e93d77d4d4d6346fad5d432bc6ded6f99 (commit) via d38cf8c2e657525967a23a57396a25778e6ff39f (commit) from fb96040e09ecb736b05116840dfd3ac21467d51c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 66c7feab38513a6375543191dba4e21e9667f5c4 Merge: fb96040e09ecb736b05116840dfd3ac21467d51c 8f89da5c5bc449718ed9618af5ce5fef51870d6f Author: John Reese <jr...@le...> Date: Mon Feb 22 14:43:58 2010 -0500 Merge branch 'master-1.2.x' into live ----------------------------------------------------------------------- Summary of changes: .gitignore | 3 +- admin/schema.php | 1 + api/soap/mantisconnect.php | 2 +- api/soap/mc_filter_api.php | 49 +----- api/soap/mc_issue_api.php | 76 +++++++- api/soap/mc_project_api.php | 44 +---- bug_actiongroup_attach_tags_inc.php | 13 +- bug_actiongroup_ext.php | 60 ++---- bug_change_status_page.php | 17 +- bug_file_add.php | 4 +- bug_relationship_graph.php | 9 +- bug_reminder_page.php | 13 +- bug_report_page.php | 33 ++-- bug_update.php | 76 ++++---- bug_update_advanced_page.php | 54 +++--- bug_view_inc.php | 73 ++++---- bugnote_add_inc.php | 11 +- config_defaults_inc.php | 294 +++++++++++++-------------- config_inc.php.sample | 91 +++++---- core.php | 4 +- core/access_api.php | 13 +- core/bug_api.php | 52 ++++-- core/bugnote_api.php | 2 +- core/category_api.php | 2 - core/cfdefs/cfdef_standard.php | 8 +- core/compress_api.php | 7 +- core/config_api.php | 6 +- core/constant_inc.php | 33 +--- core/custom_field_api.php | 22 +- core/database_api.php | 6 +- core/email_api.php | 4 +- core/file_api.php | 2 +- core/filter_api.php | 4 +- core/gpc_api.php | 22 ++- core/history_api.php | 5 +- core/html_api.php | 31 ++- core/lang_api.php | 4 +- core/plugin_api.php | 3 +- core/print_api.php | 52 +++--- core/project_hierarchy_api.php | 58 +++--- core/relationship_api.php | 2 +- core/string_api.php | 25 ++- core/user_pref_api.php | 6 +- core/version_api.php | 2 - css/calendar-blue.css | 2 +- doc/CREDITS | 2 + doc/RELEASE | 15 +- docbook/adminguide/en/configuration.sgml | 18 ++ file_download.php | 6 +- issues_rss.php | 12 +- javascript/dev/ajax.js | 2 +- javascript/dev/jscalendar/calendar-blue.css | 2 +- javascript/dev/time_tracking_stopwatch.js | 6 +- javascript/min/ajax.js | 2 +- javascript/min/jscalendar/calendar-blue.css | 2 +- javascript/min/time_tracking_stopwatch.js | 2 +- lang/strings_english.txt | 4 + library/nusoap/nusoap.php | 6 +- manage_proj_edit_page.php | 3 +- manage_proj_page.php | 2 - manage_user_page.php | 5 +- print_bug_page.php | 58 +++--- proj_doc_page.php | 2 +- return_dynamic_filters.php | 16 +- tests/soap/IssueUpdateTest.php | 48 +++++ view.php | 1 - 66 files changed, 812 insertions(+), 702 deletions(-) ----------------------------------------------------------------------- commit 8f89da5c5bc449718ed9618af5ce5fef51870d6f Author: John Reese <jr...@le...> Date: Mon Feb 22 14:24:52 2010 -0500 Preparing for 1.2.0 release Release notes updated to be relevant for an official 1.2.0 release. The internal version number for MantisBT has also been updated. This marks the official end of feature work on the 1.2.x branch. Commits to the master-1.2.x branch are restricted to bug fixes and security issues. diff --git a/core/constant_inc.php b/core/constant_inc.php index 066e776..5e9f93d 100644 --- a/core/constant_inc.php +++ b/core/constant_inc.php @@ -14,7 +14,7 @@ # You should have received a copy of the GNU General Public License # along with MantisBT. If not, see <http://www.gnu.org/licenses/>. -define( 'MANTIS_VERSION', '1.2.0rc2' ); +define( 'MANTIS_VERSION', '1.2.0' ); # --- constants ------------------- # magic numbers diff --git a/doc/RELEASE b/doc/RELEASE index 7c451ea..090fb20 100644 --- a/doc/RELEASE +++ b/doc/RELEASE @@ -1,19 +1,19 @@ MantisBT Release Notes -1.2.0 Release Candidate 2 +1.2.0 Stable Release ------------------------------------------------- -This release marks the second "stable" release in the 1.2.x series of MantisBT. -The 1.2.x series is now officially feature complete, and this build is ready -for official testing in non-critical installations. This release is a good -representation of a final 1.2.0 build. +This release marks the first official release in the 1.2.x series of MantisBT. +1.2.0 is a major feature release for MantisBT, and includes many bugfixes and +enhancements over the 1.1.x stable branch. All users of 1.1.x are highly +encouraged to upgrade as soon as possible. A full changelog for the 1.2.x series can be found on the official site. [1] -There are many new features added to 1.2.x, including: +There are many new features added to 1.2.0, including: - Converted the MantisBT Manual to Docbook format, and added a new Developer's - Guide manual, both of which are compiled and included in every release. + Guide manual, both of which are compiled and included in every release - Implemented a plugin system with many plugins already released [2] @@ -68,6 +68,7 @@ There have also been many improvements to the codebase beyond adding features: 1.2.0a3 http://www.mantisbt.org/bugs/changelog_page.php?version_id=104 1.2.0rc1 http://www.mantisbt.org/bugs/changelog_page.php?version_id=98 1.2.0rc2 http://www.mantisbt.org/bugs/changelog_page.php?version_id=106 + 1.2.0 http://www.mantisbt.org/bugs/changelog_page.php?version_id=108 [2] MantisForge is now the preferred code collaboration site for MantisBT, including free hosting of MantisBT-related Git repositories for development commit a8861d42f44b18baadf7338c593b6e64d45e53cc Author: John Reese <jr...@le...> Date: Mon Feb 22 14:18:28 2010 -0500 Updated credits diff --git a/doc/CREDITS b/doc/CREDITS index 0e15a93..32a1418 100644 --- a/doc/CREDITS +++ b/doc/CREDITS @@ -83,6 +83,8 @@ Niels Andersen Ondrej Jombik Philip D. Turner Robert Foster +Roland Becker +Rolf Kleef ryandesign Sean Phelan Sebastien Massoutier commit 37e1da1e2a8fcc77cfa9dbdef3aab5bf9534b76b Author: John Reese <jr...@le...> Date: Sun Feb 21 21:49:48 2010 -0500 Remove verbose constants for bug fields diff --git a/bug_report_page.php b/bug_report_page.php index 296c376..e1dd625 100644 --- a/bug_report_page.php +++ b/bug_report_page.php @@ -129,25 +129,25 @@ $t_fields = config_get( 'bug_report_page_fields' ); $t_fields = columns_filter_disabled( $t_fields ); - $tpl_show_category = in_array( BUG_FIELD_CATEGORY, $t_fields ); - $tpl_show_reproducibility = in_array( BUG_FIELD_REPRODUCIBILITY, $t_fields ); - $tpl_show_severity = in_array( BUG_FIELD_SEVERITY, $t_fields ); - $tpl_show_priority = in_array( BUG_FIELD_PRIORITY, $t_fields ); - $tpl_show_steps_to_reproduce = in_array( BUG_FIELD_STEPS_TO_REPRODUCE, $t_fields ); - $tpl_show_handler = in_array( BUG_FIELD_HANDLER, $t_fields ) && access_has_project_level( config_get( 'update_bug_assign_threshold' ) ); + $tpl_show_category = in_array( 'category_id', $t_fields ); + $tpl_show_reproducibility = in_array( 'reproducibility', $t_fields ); + $tpl_show_severity = in_array( 'severity', $t_fields ); + $tpl_show_priority = in_array( 'priority', $t_fields ); + $tpl_show_steps_to_reproduce = in_array( 'steps_to_reproduce', $t_fields ); + $tpl_show_handler = in_array( 'handler', $t_fields ) && access_has_project_level( config_get( 'update_bug_assign_threshold' ) ); $tpl_show_profiles = ON == config_get( 'enable_profiles' ); - $tpl_show_platform = in_array( BUG_FIELD_PLATFORM, $t_fields ); - $tpl_show_os = in_array( BUG_FIELD_OS, $t_fields ); - $tpl_show_os_version = in_array( BUG_FIELD_OS_VERSION, $t_fields ); + $tpl_show_platform = in_array( 'platform', $t_fields ); + $tpl_show_os = in_array( 'os', $t_fields ); + $tpl_show_os_version = in_array( 'os_version', $t_fields ); $tpl_show_versions = version_should_show_product_version( $t_project_id ); - $tpl_show_product_version = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_VERSION, $t_fields ); - $tpl_show_product_build = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_BUILD, $t_fields ) && config_get( 'enable_product_build' ) == ON; - $tpl_show_target_version = $tpl_show_versions && in_array( BUG_FIELD_TARGET_VERSION, $t_fields ) && access_has_project_level( config_get( 'roadmap_update_threshold' ) ); - $tpl_show_additional_info = in_array( BUG_FIELD_ADDITIONAL_INFO, $t_fields ); - $tpl_show_due_date = in_array( BUG_FIELD_DUE_DATE, $t_fields ) && access_has_project_level( config_get( 'due_date_update_threshold' ), helper_get_current_project(), auth_get_current_user_id() ); - $tpl_show_attachments = in_array( BUG_FIELD_ATTACHMENTS, $t_fields ) && file_allow_bug_upload(); - $tpl_show_view_state = in_array( BUG_FIELD_VIEW_STATE, $t_fields ) && access_has_project_level( config_get( 'set_view_status_threshold' ) ); + $tpl_show_product_version = $tpl_show_versions && in_array( 'product_version', $t_fields ); + $tpl_show_product_build = $tpl_show_versions && in_array( 'product_build', $t_fields ) && config_get( 'enable_product_build' ) == ON; + $tpl_show_target_version = $tpl_show_versions && in_array( 'target_version', $t_fields ) && access_has_project_level( config_get( 'roadmap_update_threshold' ) ); + $tpl_show_additional_info = in_array( 'additional_info', $t_fields ); + $tpl_show_due_date = in_array( 'due_date', $t_fields ) && access_has_project_level( config_get( 'due_date_update_threshold' ), helper_get_current_project(), auth_get_current_user_id() ); + $tpl_show_attachments = in_array( 'attachments', $t_fields ) && file_allow_bug_upload(); + $tpl_show_view_state = in_array( 'view_state', $t_fields ) && access_has_project_level( config_get( 'set_view_status_threshold' ) ); # don't index bug report page html_robots_noindex(); diff --git a/bug_update_advanced_page.php b/bug_update_advanced_page.php index 3c88d9d..79fe390 100644 --- a/bug_update_advanced_page.php +++ b/bug_update_advanced_page.php @@ -65,40 +65,40 @@ $t_action_button_position = config_get( 'action_button_position' ); $tpl_top_buttons_enabled = $t_action_button_position == POSITION_TOP || $t_action_button_position == POSITION_BOTH; $tpl_bottom_buttons_enabled = $t_action_button_position == POSITION_BOTTOM || $t_action_button_position == POSITION_BOTH; -$tpl_show_id = in_array( BUG_FIELD_ID, $t_fields ); -$tpl_show_project = in_array( BUG_FIELD_PROJECT, $t_fields ); -$tpl_show_category = in_array( BUG_FIELD_CATEGORY, $t_fields ); -$tpl_show_view_state = in_array( BUG_FIELD_VIEW_STATE, $t_fields ); +$tpl_show_id = in_array( 'id', $t_fields ); +$tpl_show_project = in_array( 'project', $t_fields ); +$tpl_show_category = in_array( 'category_id', $t_fields ); +$tpl_show_view_state = in_array( 'view_state', $t_fields ); $tpl_view_state = $tpl_show_view_state ? string_display_line( get_enum_element( 'view_state', $tpl_bug->view_state ) ) : ''; -$tpl_show_date_submitted = in_array( BUG_FIELD_DATE_SUBMITTED, $t_fields ); -$tpl_show_last_updated = in_array( BUG_FIELD_LAST_UPDATED, $t_fields ); -$tpl_show_reporter = in_array( BUG_FIELD_REPORTER, $t_fields ); -$tpl_show_handler = in_array( BUG_FIELD_HANDLER, $t_fields ); -$tpl_show_priority = in_array( BUG_FIELD_PRIORITY, $t_fields ); -$tpl_show_severity = in_array( BUG_FIELD_SEVERITY, $t_fields ); -$tpl_show_reproducibility = in_array( BUG_FIELD_REPRODUCIBILITY, $t_fields ); -$tpl_show_status = in_array( BUG_FIELD_STATUS, $t_fields ); -$tpl_show_resolution = in_array( BUG_FIELD_RESOLUTION, $t_fields ); -$tpl_show_projection = in_array( BUG_FIELD_PROJECTION, $t_fields ) && config_get( 'enable_projection' ) == ON; -$tpl_show_eta = in_array( BUG_FIELD_ETA, $t_fields ) && config_get( 'enable_eta' ) == ON; +$tpl_show_date_submitted = in_array( 'date_submitted', $t_fields ); +$tpl_show_last_updated = in_array( 'last_updated', $t_fields ); +$tpl_show_reporter = in_array( 'reporter', $t_fields ); +$tpl_show_handler = in_array( 'handler', $t_fields ); +$tpl_show_priority = in_array( 'priority', $t_fields ); +$tpl_show_severity = in_array( 'severity', $t_fields ); +$tpl_show_reproducibility = in_array( 'reproducibility', $t_fields ); +$tpl_show_status = in_array( 'status', $t_fields ); +$tpl_show_resolution = in_array( 'resolution', $t_fields ); +$tpl_show_projection = in_array( 'projection', $t_fields ) && config_get( 'enable_projection' ) == ON; +$tpl_show_eta = in_array( 'eta', $t_fields ) && config_get( 'enable_eta' ) == ON; $t_show_profiles = config_get( 'enable_profiles' ) == ON; -$tpl_show_platform = $t_show_profiles && in_array( BUG_FIELD_PLATFORM, $t_fields ); -$tpl_show_os = $t_show_profiles && in_array( BUG_FIELD_OS, $t_fields ); -$tpl_show_os_version = $t_show_profiles && in_array( BUG_FIELD_OS_VERSION, $t_fields ); +$tpl_show_platform = $t_show_profiles && in_array( 'platform', $t_fields ); +$tpl_show_os = $t_show_profiles && in_array( 'os', $t_fields ); +$tpl_show_os_version = $t_show_profiles && in_array( 'os_version', $t_fields ); $tpl_show_versions = version_should_show_product_version( $tpl_bug->project_id ); -$tpl_show_product_version = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_VERSION, $t_fields ); -$tpl_show_product_build = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_BUILD, $t_fields ) && ( config_get( 'enable_product_build' ) == ON ); +$tpl_show_product_version = $tpl_show_versions && in_array( 'product_version', $t_fields ); +$tpl_show_product_build = $tpl_show_versions && in_array( 'product_build', $t_fields ) && ( config_get( 'enable_product_build' ) == ON ); $tpl_product_build_attribute = $tpl_show_product_build ? string_attribute( $tpl_bug->build ) : ''; -$tpl_show_target_version = $tpl_show_versions && in_array( BUG_FIELD_TARGET_VERSION, $t_fields ) && access_has_bug_level( config_get( 'roadmap_update_threshold' ), $tpl_bug_id ); -$tpl_show_fixed_in_version = $tpl_show_versions && in_array( BUG_FIELD_FIXED_IN_VERSION, $t_fields ); -$tpl_show_due_date = in_array( BUG_FIELD_DUE_DATE, $t_fields ) && access_has_bug_level( config_get( 'due_date_view_threshold' ), $tpl_bug_id ); -$tpl_show_summary = in_array( BUG_FIELD_SUMMARY, $t_fields ); +$tpl_show_target_version = $tpl_show_versions && in_array( 'target_version', $t_fields ) && access_has_bug_level( config_get( 'roadmap_update_threshold' ), $tpl_bug_id ); +$tpl_show_fixed_in_version = $tpl_show_versions && in_array( 'fixed_in_version', $t_fields ); +$tpl_show_due_date = in_array( 'due_date', $t_fields ) && access_has_bug_level( config_get( 'due_date_view_threshold' ), $tpl_bug_id ); +$tpl_show_summary = in_array( 'summary', $t_fields ); $tpl_summary_attribute = $tpl_show_summary ? string_attribute( $tpl_bug->summary ) : ''; -$tpl_show_description = in_array( BUG_FIELD_DESCRIPTION, $t_fields ); +$tpl_show_description = in_array( 'description', $t_fields ); $tpl_description_textarea = $tpl_show_description ? string_textarea( $tpl_bug->description ) : ''; -$tpl_show_additional_information = in_array( BUG_FIELD_ADDITIONAL_INFO, $t_fields ); +$tpl_show_additional_information = in_array( 'additional_info', $t_fields ); $tpl_additional_information_textarea = $tpl_show_additional_information ? string_textarea( $tpl_bug->additional_information ) : ''; -$tpl_show_steps_to_reproduce = in_array( BUG_FIELD_STEPS_TO_REPRODUCE, $t_fields ); +$tpl_show_steps_to_reproduce = in_array( 'steps_to_reproduce', $t_fields ); $tpl_steps_to_reproduce_textarea = $tpl_show_steps_to_reproduce ? string_textarea( $tpl_bug->steps_to_reproduce ) : ''; $tpl_handler_name = string_display_line( user_get_name( $tpl_bug->handler_id ) ); diff --git a/bug_view_inc.php b/bug_view_inc.php index 861f41f..5f857a2 100644 --- a/bug_view_inc.php +++ b/bug_view_inc.php @@ -71,12 +71,12 @@ $t_bugslist = gpc_get_cookie( config_get( 'bug_list_cookie' ), false ); $tpl_show_versions = version_should_show_product_version( $tpl_bug->project_id ); - $tpl_show_product_version = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_VERSION, $t_fields ); - $tpl_show_fixed_in_version = $tpl_show_versions && in_array( BUG_FIELD_FIXED_IN_VERSION, $t_fields ); - $tpl_show_product_build = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_BUILD, $t_fields ) + $tpl_show_product_version = $tpl_show_versions && in_array( 'product_version', $t_fields ); + $tpl_show_fixed_in_version = $tpl_show_versions && in_array( 'fixed_in_version', $t_fields ); + $tpl_show_product_build = $tpl_show_versions && in_array( 'product_build', $t_fields ) && ( config_get( 'enable_product_build' ) == ON ); $tpl_product_build = $tpl_show_product_build ? string_display_line( $tpl_bug->build ) : ''; - $tpl_show_target_version = $tpl_show_versions && in_array( BUG_FIELD_TARGET_VERSION, $t_fields ) + $tpl_show_target_version = $tpl_show_versions && in_array( 'target_version', $t_fields ) && access_has_bug_level( config_get( 'roadmap_view_threshold' ), $f_bug_id ); $tpl_product_version_string = ''; @@ -122,25 +122,25 @@ $tpl_top_buttons_enabled = !$tpl_force_readonly && ( $t_action_button_position == POSITION_TOP || $t_action_button_position == POSITION_BOTH ); $tpl_bottom_buttons_enabled = !$tpl_force_readonly && ( $t_action_button_position == POSITION_BOTTOM || $t_action_button_position == POSITION_BOTH ); - $tpl_show_project = in_array( BUG_FIELD_PROJECT, $t_fields ); + $tpl_show_project = in_array( 'project', $t_fields ); $tpl_project_name = $tpl_show_project ? string_display_line( project_get_name( $tpl_bug->project_id ) ): ''; - $tpl_show_id = in_array( BUG_FIELD_ID, $t_fields ); + $tpl_show_id = in_array( 'id', $t_fields ); $tpl_formatted_bug_id = $tpl_show_id ? string_display_line( bug_format_id( $f_bug_id ) ) : ''; - $tpl_show_date_submitted = in_array( BUG_FIELD_DATE_SUBMITTED, $t_fields ); + $tpl_show_date_submitted = in_array( 'date_submitted', $t_fields ); $tpl_date_submitted = $tpl_show_date_submitted ? date( config_get( 'normal_date_format' ), $tpl_bug->date_submitted ) : ''; - $tpl_show_last_updated = in_array( BUG_FIELD_LAST_UPDATED, $t_fields ); + $tpl_show_last_updated = in_array( 'last_updated', $t_fields ); $tpl_last_updated = $tpl_show_last_updated ? date( config_get( 'normal_date_format' ), $tpl_bug->last_updated ) : ''; - $tpl_show_tags = in_array( BUG_FIELD_TAGS, $t_fields ) && access_has_global_level( config_get( 'tag_view_threshold' ) ); + $tpl_show_tags = in_array( 'tags', $t_fields ) && access_has_global_level( config_get( 'tag_view_threshold' ) ); $tpl_bug_overdue = bug_is_overdue( $f_bug_id ); - $tpl_show_view_state = in_array( BUG_FIELD_VIEW_STATE, $t_fields ); + $tpl_show_view_state = in_array( 'view_state', $t_fields ); $tpl_bug_view_state_enum = $tpl_show_view_state ? string_display_line( get_enum_element( 'view_state', $tpl_bug->view_state ) ) : ''; - $tpl_show_due_date = in_array( BUG_FIELD_DUE_DATE, $t_fields ) && access_has_bug_level( config_get( 'due_date_view_threshold' ), $f_bug_id ); + $tpl_show_due_date = in_array( 'due_date', $t_fields ) && access_has_bug_level( config_get( 'due_date_view_threshold' ), $f_bug_id ); if ( $tpl_show_due_date ) { if ( !date_is_null( $tpl_bug->due_date ) ) { @@ -150,41 +150,41 @@ } } - $tpl_show_reporter = in_array( BUG_FIELD_REPORTER, $t_fields ); - $tpl_show_handler = in_array( BUG_FIELD_HANDLER, $t_fields ) && access_has_bug_level( config_get( 'view_handler_threshold' ), $f_bug_id ); - $tpl_show_additional_information = !is_blank( $tpl_bug->additional_information ) && in_array( BUG_FIELD_ADDITIONAL_INFO, $t_fields ); - $tpl_show_steps_to_reproduce = !is_blank( $tpl_bug->steps_to_reproduce ) && in_array( BUG_FIELD_STEPS_TO_REPRODUCE, $t_fields ); + $tpl_show_reporter = in_array( 'reporter', $t_fields ); + $tpl_show_handler = in_array( 'handler', $t_fields ) && access_has_bug_level( config_get( 'view_handler_threshold' ), $f_bug_id ); + $tpl_show_additional_information = !is_blank( $tpl_bug->additional_information ) && in_array( 'additional_info', $t_fields ); + $tpl_show_steps_to_reproduce = !is_blank( $tpl_bug->steps_to_reproduce ) && in_array( 'steps_to_reproduce', $t_fields ); $tpl_show_monitor_box = !$tpl_force_readonly; $tpl_show_relationships_box = !$tpl_force_readonly; $tpl_show_upload_form = !$tpl_force_readonly && !bug_is_readonly( $f_bug_id ); $tpl_show_history = $f_history; $tpl_show_profiles = config_get( 'enable_profiles' ); - $tpl_show_platform = $tpl_show_profiles && in_array( BUG_FIELD_PLATFORM, $t_fields ); + $tpl_show_platform = $tpl_show_profiles && in_array( 'platform', $t_fields ); $tpl_platform = $tpl_show_platform ? string_display_line( $tpl_bug->platform ) : ''; - $tpl_show_os = $tpl_show_profiles && in_array( BUG_FIELD_OS, $t_fields ); + $tpl_show_os = $tpl_show_profiles && in_array( 'os', $t_fields ); $tpl_os = $tpl_show_os ? string_display_line( $tpl_bug->os ) : ''; - $tpl_show_os_version = $tpl_show_profiles && in_array( BUG_FIELD_OS_VERSION, $t_fields ); + $tpl_show_os_version = $tpl_show_profiles && in_array( 'os_version', $t_fields ); $tpl_os_version = $tpl_show_os_version ? string_display_line( $tpl_bug->os_build ) : ''; - $tpl_show_projection = in_array( BUG_FIELD_PROJECTION, $t_fields ); + $tpl_show_projection = in_array( 'projection', $t_fields ); $tpl_projection = $tpl_show_projection ? string_display_line( get_enum_element( 'projection', $tpl_bug->projection ) ) : ''; - $tpl_show_eta = in_array( BUG_FIELD_ETA, $t_fields ); + $tpl_show_eta = in_array( 'eta', $t_fields ); $tpl_eta = $tpl_show_eta ? string_display_line( get_enum_element( 'eta', $tpl_bug->eta ) ) : ''; - $tpl_show_attachments = in_array( BUG_FIELD_ATTACHMENTS, $t_fields ) && ( ( $tpl_bug->reporter_id == auth_get_current_user_id() ) || access_has_bug_level( config_get( 'view_attachments_threshold' ), $f_bug_id ) ); + $tpl_show_attachments = in_array( 'attachments', $t_fields ) && ( ( $tpl_bug->reporter_id == auth_get_current_user_id() ) || access_has_bug_level( config_get( 'view_attachments_threshold' ), $f_bug_id ) ); $tpl_can_attach_tag = $tpl_show_tags && !$tpl_force_readonly && access_has_bug_level( config_get( 'tag_attach_threshold' ), $f_bug_id ); - $tpl_show_category = in_array( BUG_FIELD_CATEGORY, $t_fields ); + $tpl_show_category = in_array( 'category_id', $t_fields ); $tpl_category = $tpl_show_category ? string_display_line( category_full_name( $tpl_bug->category_id ) ) : ''; - $tpl_show_priority = in_array( BUG_FIELD_PRIORITY, $t_fields ); + $tpl_show_priority = in_array( 'priority', $t_fields ); $tpl_priority = $tpl_show_priority ? string_display_line( get_enum_element( 'priority', $tpl_bug->priority ) ) : ''; - $tpl_show_severity = in_array( BUG_FIELD_SEVERITY, $t_fields ); + $tpl_show_severity = in_array( 'severity', $t_fields ); $tpl_severity = $tpl_show_severity ? string_display_line( get_enum_element( 'severity', $tpl_bug->severity ) ) : ''; - $tpl_show_reproducibility = in_array( BUG_FIELD_REPRODUCIBILITY, $t_fields ); + $tpl_show_reproducibility = in_array( 'reproducibility', $t_fields ); $tpl_reproducibility = $tpl_show_reproducibility ? string_display_line( get_enum_element( 'reproducibility', $tpl_bug->reproducibility ) ): ''; - $tpl_show_status = in_array( BUG_FIELD_STATUS, $t_fields ); + $tpl_show_status = in_array( 'status', $t_fields ); $tpl_status = $tpl_show_status ? string_display_line( get_enum_element( 'status', $tpl_bug->status ) ) : ''; - $tpl_show_resolution = in_array( BUG_FIELD_RESOLUTION, $t_fields ); + $tpl_show_resolution = in_array( 'resolution', $t_fields ); $tpl_resolution = $tpl_show_resolution ? string_display_line( get_enum_element( 'resolution', $tpl_bug->resolution ) ) : ''; - $tpl_show_summary = in_array( BUG_FIELD_SUMMARY, $t_fields ); - $tpl_show_description = in_array( BUG_FIELD_DESCRIPTION, $t_fields ); + $tpl_show_summary = in_array( 'summary', $t_fields ); + $tpl_show_description = in_array( 'description', $t_fields ); $tpl_summary = $tpl_show_summary ? string_display_line_links( bug_format_summary( $f_bug_id, SUMMARY_FIELD ) ) : ''; $tpl_description = $tpl_show_description ? string_display_links( $tpl_bug->description ) : ''; diff --git a/config_defaults_inc.php b/config_defaults_inc.php index 61e0523..b0da8bf 100644 --- a/config_defaults_inc.php +++ b/config_defaults_inc.php @@ -1984,81 +1984,77 @@ * An array of the fields to show on the bug report page. * * The following fields can not be included: - * BUG_FIELD_ID, BUG_FIELD_PROJECT, BUG_FIELD_DATE_SUBMITTED, BUG_FIELD_LAST_UPDATED, BUG_FIELD_STATUS, - * BUG_FIELD_RESOLUTION, BUG_FIELD_TAGS, BUG_FIELD_FIXED_IN_VERSION, BUG_FIELD_PROJECTION, BUG_FIELD_ETA, - * BUG_FIELD_REPORTER. + * id, project, date_submitted, last_updated, status, + * resolution, tags, fixed_in_version, projection, eta, + * reporter. * * The following fields must be included: - * BUG_FIELD_CATEGORY, BUG_FIELD_SUMMARY, BUG_FIELD_DESCRIPTION. + * category_id, summary, description. * * To overload this setting per project, then the settings must be included in the database through - * the generic configuration form. Note that the array in the database should consistent of the values - * of the constants. For example, replace BUG_FIELD_CATEGORY with 'category_id'. See constant_inc.php - * for the values of the constants. + * the generic configuration form. * * @global array $g_bug_report_page_fields */ $g_bug_report_page_fields = array( - BUG_FIELD_CATEGORY, - BUG_FIELD_VIEW_STATE, - BUG_FIELD_HANDLER, - BUG_FIELD_PRIORITY, - BUG_FIELD_SEVERITY, - BUG_FIELD_REPRODUCIBILITY, - BUG_FIELD_PLATFORM, - BUG_FIELD_OS, - BUG_FIELD_OS_VERSION, - BUG_FIELD_PRODUCT_VERSION, - BUG_FIELD_PRODUCT_BUILD, - BUG_FIELD_TARGET_VERSION, - BUG_FIELD_SUMMARY, - BUG_FIELD_DESCRIPTION, - BUG_FIELD_ADDITIONAL_INFO, - BUG_FIELD_STEPS_TO_REPRODUCE, - BUG_FIELD_ATTACHMENTS, - BUG_FIELD_DUE_DATE, + 'category_id', + 'view_state', + 'handler', + 'priority', + 'severity', + 'reproducibility', + 'platform', + 'os', + 'os_version', + 'product_version', + 'product_build', + 'target_version', + 'summary', + 'description', + 'additional_info', + 'steps_to_reproduce', + 'attachments', + 'due_date', ); /** * An array of the fields to show on the bug view page. * * To overload this setting per project, then the settings must be included in the database through - * the generic configuration form. Note that the array in the database should consistent of the values - * of the constants. For example, replace BUG_FIELD_CATEGORY with 'category_id'. See constant_inc.php - * for the values of the constants. + * the generic configuration form. * * @global array $g_bug_view_page_fields */ $g_bug_view_page_fields = array ( - BUG_FIELD_ID, - BUG_FIELD_PROJECT, - BUG_FIELD_CATEGORY, - BUG_FIELD_VIEW_STATE, - BUG_FIELD_DATE_SUBMITTED, - BUG_FIELD_LAST_UPDATED, - BUG_FIELD_REPORTER, - BUG_FIELD_HANDLER, - BUG_FIELD_PRIORITY, - BUG_FIELD_SEVERITY, - BUG_FIELD_REPRODUCIBILITY, - BUG_FIELD_STATUS, - BUG_FIELD_RESOLUTION, - BUG_FIELD_PROJECTION, - BUG_FIELD_ETA, - BUG_FIELD_PLATFORM, - BUG_FIELD_OS, - BUG_FIELD_OS_VERSION, - BUG_FIELD_PRODUCT_VERSION, - BUG_FIELD_PRODUCT_BUILD, - BUG_FIELD_TARGET_VERSION, - BUG_FIELD_FIXED_IN_VERSION, - BUG_FIELD_SUMMARY, - BUG_FIELD_DESCRIPTION, - BUG_FIELD_ADDITIONAL_INFO, - BUG_FIELD_STEPS_TO_REPRODUCE, - BUG_FIELD_TAGS, - BUG_FIELD_ATTACHMENTS, - BUG_FIELD_DUE_DATE, + 'id', + 'project', + 'category_id', + 'view_state', + 'date_submitted', + 'last_updated', + 'reporter', + 'handler', + 'priority', + 'severity', + 'reproducibility', + 'status', + 'resolution', + 'projection', + 'eta', + 'platform', + 'os', + 'os_version', + 'product_version', + 'product_build', + 'target_version', + 'fixed_in_version', + 'summary', + 'description', + 'additional_info', + 'steps_to_reproduce', + 'tags', + 'attachments', + 'due_date', ); /** @@ -2066,118 +2062,114 @@ * @global array $g_bug_print_page_fields */ $g_bug_print_page_fields = array ( - BUG_FIELD_ID, - BUG_FIELD_PROJECT, - BUG_FIELD_CATEGORY, - BUG_FIELD_VIEW_STATE, - BUG_FIELD_DATE_SUBMITTED, - BUG_FIELD_LAST_UPDATED, - BUG_FIELD_REPORTER, - BUG_FIELD_HANDLER, - BUG_FIELD_PRIORITY, - BUG_FIELD_SEVERITY, - BUG_FIELD_REPRODUCIBILITY, - BUG_FIELD_STATUS, - BUG_FIELD_RESOLUTION, - BUG_FIELD_PROJECTION, - BUG_FIELD_ETA, - BUG_FIELD_PLATFORM, - BUG_FIELD_OS, - BUG_FIELD_OS_VERSION, - BUG_FIELD_PRODUCT_VERSION, - BUG_FIELD_PRODUCT_BUILD, - BUG_FIELD_TARGET_VERSION, - BUG_FIELD_FIXED_IN_VERSION, - BUG_FIELD_SUMMARY, - BUG_FIELD_DESCRIPTION, - BUG_FIELD_ADDITIONAL_INFO, - BUG_FIELD_STEPS_TO_REPRODUCE, - BUG_FIELD_TAGS, - BUG_FIELD_ATTACHMENTS, - BUG_FIELD_DUE_DATE, + 'id', + 'project', + 'category_id', + 'view_state', + 'date_submitted', + 'last_updated', + 'reporter', + 'handler', + 'priority', + 'severity', + 'reproducibility', + 'status', + 'resolution', + 'projection', + 'eta', + 'platform', + 'os', + 'os_version', + 'product_version', + 'product_build', + 'target_version', + 'fixed_in_version', + 'summary', + 'description', + 'additional_info', + 'steps_to_reproduce', + 'tags', + 'attachments', + 'due_date', ); /** * An array of the fields to show on the bug update page. * * To overload this setting per project, then the settings must be included in the database through - * the generic configuration form. Note that the array in the database should consistent of the values - * of the constants. For example, replace BUG_FIELD_CATEGORY with 'category_id'. See constant_inc.php - * for the values of the constants. + * the generic configuration form. * * @global array $g_bug_update_page_fields */ $g_bug_update_page_fields = array ( - BUG_FIELD_ID, - BUG_FIELD_PROJECT, - BUG_FIELD_CATEGORY, - BUG_FIELD_VIEW_STATE, - BUG_FIELD_DATE_SUBMITTED, - BUG_FIELD_LAST_UPDATED, - BUG_FIELD_REPORTER, - BUG_FIELD_HANDLER, - BUG_FIELD_PRIORITY, - BUG_FIELD_SEVERITY, - BUG_FIELD_REPRODUCIBILITY, - BUG_FIELD_STATUS, - BUG_FIELD_RESOLUTION, - BUG_FIELD_PROJECTION, - BUG_FIELD_ETA, - BUG_FIELD_PLATFORM, - BUG_FIELD_OS, - BUG_FIELD_OS_VERSION, - BUG_FIELD_PRODUCT_VERSION, - BUG_FIELD_PRODUCT_BUILD, - BUG_FIELD_TARGET_VERSION, - BUG_FIELD_FIXED_IN_VERSION, - BUG_FIELD_SUMMARY, - BUG_FIELD_DESCRIPTION, - BUG_FIELD_ADDITIONAL_INFO, - BUG_FIELD_STEPS_TO_REPRODUCE, - BUG_FIELD_ATTACHMENTS, - BUG_FIELD_DUE_DATE, + 'id', + 'project', + 'category_id', + 'view_state', + 'date_submitted', + 'last_updated', + 'reporter', + 'handler', + 'priority', + 'severity', + 'reproducibility', + 'status', + 'resolution', + 'projection', + 'eta', + 'platform', + 'os', + 'os_version', + 'product_version', + 'product_build', + 'target_version', + 'fixed_in_version', + 'summary', + 'description', + 'additional_info', + 'steps_to_reproduce', + 'attachments', + 'due_date', ); /** * An array of the fields to show on the bug change status page. * * To overload this setting per project, then the settings must be included in the database through - * the generic configuration form. Note that the array in the database should consistent of the values - * of the constants. For example, replace BUG_FIELD_CATEGORY with 'category_id'. See constant_inc.php - * for the values of the constants. + * the generic configuration form. * * @global array $g_bug_change_status_page_fields */ $g_bug_change_status_page_fields = array ( - BUG_FIELD_ID, - BUG_FIELD_PROJECT, - BUG_FIELD_CATEGORY, - BUG_FIELD_VIEW_STATE, - BUG_FIELD_DATE_SUBMITTED, - BUG_FIELD_LAST_UPDATED, - BUG_FIELD_REPORTER, - BUG_FIELD_HANDLER, - BUG_FIELD_PRIORITY, - BUG_FIELD_SEVERITY, - BUG_FIELD_REPRODUCIBILITY, - BUG_FIELD_STATUS, - BUG_FIELD_RESOLUTION, - BUG_FIELD_PROJECTION, - BUG_FIELD_ETA, - BUG_FIELD_PLATFORM, - BUG_FIELD_OS, - BUG_FIELD_OS_VERSION, - BUG_FIELD_PRODUCT_VERSION, - BUG_FIELD_PRODUCT_BUILD, - BUG_FIELD_TARGET_VERSION, - BUG_FIELD_FIXED_IN_VERSION, - BUG_FIELD_SUMMARY, - BUG_FIELD_DESCRIPTION, - BUG_FIELD_ADDITIONAL_INFO, - BUG_FIELD_STEPS_TO_REPRODUCE, - BUG_FIELD_TAGS, - BUG_FIELD_ATTACHMENTS, - BUG_FIELD_DUE_DATE, + 'id', + 'project', + 'category_id', + 'view_state', + 'date_submitted', + 'last_updated', + 'reporter', + 'handler', + 'priority', + 'severity', + 'reproducibility', + 'status', + 'resolution', + 'projection', + 'eta', + 'platform', + 'os', + 'os_version', + 'product_version', + 'product_build', + 'target_version', + 'fixed_in_version', + 'summary', + 'description', + 'additional_info', + 'steps_to_reproduce', + 'tags', + 'attachments', + 'due_date', ); /************************** diff --git a/core/constant_inc.php b/core/constant_inc.php index 1a9c060..066e776 100644 --- a/core/constant_inc.php +++ b/core/constant_inc.php @@ -147,37 +147,6 @@ define( 'ADVANCED_ONLY', 2 ); define( 'SIMPLE_DEFAULT', 3 ); define( 'ADVANCED_DEFAULT', 4 ); -# Bug Fields -define( 'BUG_FIELD_ID', 'id' ); -define( 'BUG_FIELD_PROJECT', 'project_id' ); -define( 'BUG_FIELD_REPORTER', 'reporter_id' ); -define( 'BUG_FIELD_HANDLER', 'handler_id' ); -define( 'BUG_FIELD_PRIORITY', 'priority' ); -define( 'BUG_FIELD_SEVERITY', 'severity' ); -define( 'BUG_FIELD_REPRODUCIBILITY', 'reproducibility' ); -define( 'BUG_FIELD_PRODUCT_VERSION', 'version' ); -define( 'BUG_FIELD_PRODUCT_BUILD', 'build' ); -define( 'BUG_FIELD_PROJECTION', 'projection' ); -define( 'BUG_FIELD_CATEGORY', 'category_id' ); -define( 'BUG_FIELD_DATE_SUBMITTED', 'date_submitted' ); -define( 'BUG_FIELD_ETA', 'eta' ); -define( 'BUG_FIELD_OS', 'os' ); -define( 'BUG_FIELD_OS_VERSION', 'os_build' ); -define( 'BUG_FIELD_PLATFORM', 'platform' ); -define( 'BUG_FIELD_VIEW_STATE', 'view_state' ); -define( 'BUG_FIELD_LAST_UPDATED', 'last_updated' ); -define( 'BUG_FIELD_STATUS', 'status' ); -define( 'BUG_FIELD_RESOLUTION', 'resolution' ); -define( 'BUG_FIELD_FIXED_IN_VERSION', 'fixed_in_version' ); -define( 'BUG_FIELD_TARGET_VERSION', 'target_version' ); -define( 'BUG_FIELD_TAGS', 'tags' ); -define( 'BUG_FIELD_SUMMARY', 'summary' ); -define( 'BUG_FIELD_DESCRIPTION', 'description' ); -define( 'BUG_FIELD_ADDITIONAL_INFO', 'additional_info' ); -define( 'BUG_FIELD_STEPS_TO_REPRODUCE', 'steps_to_reproduce' ); -define( 'BUG_FIELD_ATTACHMENTS', 'attachments' ); -define( 'BUG_FIELD_DUE_DATE', 'due_date' ); - # news values define( 'BY_LIMIT', 0 ); define( 'BY_DATE', 1 ); diff --git a/print_bug_page.php b/print_bug_page.php index f434127..0d7ba8a 100644 --- a/print_bug_page.php +++ b/print_bug_page.php @@ -53,36 +53,36 @@ $t_history = history_get_events_array( $f_bug_id ); - $tpl_show_id = in_array( BUG_FIELD_ID, $t_fields ); - $tpl_show_project = in_array( BUG_FIELD_PROJECT, $t_fields ); - $tpl_show_category = in_array( BUG_FIELD_CATEGORY, $t_fields ); - $tpl_show_date_submitted = in_array( BUG_FIELD_DATE_SUBMITTED, $t_fields ); - $tpl_show_last_updated = in_array( BUG_FIELD_LAST_UPDATED, $t_fields ); - $tpl_show_view_state = in_array( BUG_FIELD_VIEW_STATE, $t_fields ); - $tpl_show_reporter = in_array( BUG_FIELD_REPORTER, $t_fields ); - $tpl_show_handler = in_array( BUG_FIELD_HANDLER, $t_fields ) && access_has_bug_level( config_get( 'view_handler_threshold' ), $f_bug_id ); - $tpl_show_due_date = in_array( BUG_FIELD_DUE_DATE, $t_fields ) && access_has_bug_level( config_get( 'due_date_view_threshold' ), $f_bug_id ); - $tpl_show_priority = in_array( BUG_FIELD_PRIORITY, $t_fields ); - $tpl_show_severity = in_array( BUG_FIELD_SEVERITY, $t_fields ); - $tpl_show_reproducibility = in_array( BUG_FIELD_REPRODUCIBILITY, $t_fields ); - $tpl_show_platform = in_array( BUG_FIELD_PLATFORM, $t_fields ); - $tpl_show_os = in_array( BUG_FIELD_OS, $t_fields ); - $tpl_show_os_version = in_array( BUG_FIELD_OS_VERSION, $t_fields ); - $tpl_show_status = in_array( BUG_FIELD_STATUS, $t_fields ); - $tpl_show_resolution = in_array( BUG_FIELD_RESOLUTION, $t_fields ); - $tpl_show_projection = in_array( BUG_FIELD_PROJECTION, $t_fields ); - $tpl_show_eta = in_array( BUG_FIELD_ETA, $t_fields ); + $tpl_show_id = in_array( 'id', $t_fields ); + $tpl_show_project = in_array( 'project', $t_fields ); + $tpl_show_category = in_array( 'category_id', $t_fields ); + $tpl_show_date_submitted = in_array( 'date_submitted', $t_fields ); + $tpl_show_last_updated = in_array( 'last_updated', $t_fields ); + $tpl_show_view_state = in_array( 'view_state', $t_fields ); + $tpl_show_reporter = in_array( 'reporter', $t_fields ); + $tpl_show_handler = in_array( 'handler', $t_fields ) && access_has_bug_level( config_get( 'view_handler_threshold' ), $f_bug_id ); + $tpl_show_due_date = in_array( 'due_date', $t_fields ) && access_has_bug_level( config_get( 'due_date_view_threshold' ), $f_bug_id ); + $tpl_show_priority = in_array( 'priority', $t_fields ); + $tpl_show_severity = in_array( 'severity', $t_fields ); + $tpl_show_reproducibility = in_array( 'reproducibility', $t_fields ); + $tpl_show_platform = in_array( 'platform', $t_fields ); + $tpl_show_os = in_array( 'os', $t_fields ); + $tpl_show_os_version = in_array( 'os_version', $t_fields ); + $tpl_show_status = in_array( 'status', $t_fields ); + $tpl_show_resolution = in_array( 'resolution', $t_fields ); + $tpl_show_projection = in_array( 'projection', $t_fields ); + $tpl_show_eta = in_array( 'eta', $t_fields ); $tpl_show_versions = version_should_show_product_version( $tpl_bug->project_id ); - $tpl_show_product_version = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_VERSION, $t_fields ); - $tpl_show_product_build = $tpl_show_versions && in_array( BUG_FIELD_PRODUCT_BUILD, $t_fields ) && config_get( 'enable_product_build' ); - $tpl_show_fixed_in_version = $tpl_show_versions && in_array( BUG_FIELD_FIXED_IN_VERSION, $t_fields ); - $tpl_show_target_version = $tpl_show_versions && in_array( BUG_FIELD_TARGET_VERSION, $t_fields ) && access_has_bug_level( config_get( 'roadmap_view_threshold' ), $f_bug_id ); - $tpl_show_summary = in_array( BUG_FIELD_SUMMARY, $t_fields ); - $tpl_show_description = in_array( BUG_FIELD_DESCRIPTION, $t_fields ); - $tpl_show_steps_to_reproduce = in_array( BUG_FIELD_STEPS_TO_REPRODUCE, $t_fields ); - $tpl_show_additional_information = in_array( BUG_FIELD_ADDITIONAL_INFO, $t_fields ); - $tpl_show_tags = in_array( BUG_FIELD_TAGS, $t_fields ); - $tpl_show_attachments = in_array( BUG_FIELD_ATTACHMENTS, $t_fields ); + $tpl_show_product_version = $tpl_show_versions && in_array( 'product_version', $t_fields ); + $tpl_show_product_build = $tpl_show_versions && in_array( 'product_build', $t_fields ) && config_get( 'enable_product_build' ); + $tpl_show_fixed_in_version = $tpl_show_versions && in_array( 'fixed_in_version', $t_fields ); + $tpl_show_target_version = $tpl_show_versions && in_array( 'target_version', $t_fields ) && access_has_bug_level( config_get( 'roadmap_view_threshold' ), $f_bug_id ); + $tpl_show_summary = in_array( 'summary', $t_fields ); + $tpl_show_description = in_array( 'description', $t_fields ); + $tpl_show_steps_to_reproduce = in_array( 'steps_to_reproduce', $t_fields ); + $tpl_show_additional_information = in_array( 'additional_info', $t_fields ); + $tpl_show_tags = in_array( 'tags', $t_fields ); + $tpl_show_attachments = in_array( 'attachments', $t_fields ); $tpl_window_title = string_display_line( config_get( 'window_title' ) ); $tpl_project_name = $tpl_show_project ? string_display_line( project_get_name( $tpl_bug->project_id ) ) : ''; commit 0c3813ba46f5d2b4abe963a21548d87193d672d0 Author: David Hicks <hic...@op...> Date: Sat Feb 20 14:23:27 2010 +1100 Fix #11293: history_default_visible not per-project in bug_view_inc.php bug_view_inc.php sets the project override ($g_project_override) after getting the configuration option history_default_visible. Thus the configuration option history_default_visible will be retrieved using the wrong project (the one which is currently selected by the user cookie, rather than the project of the bug the user is viewing). Thanks to Chris Fitch for detecting this problem. diff --git a/bug_view_inc.php b/bug_view_inc.php index 0a8e630..861f41f 100644 --- a/bug_view_inc.php +++ b/bug_view_inc.php @@ -41,22 +41,21 @@ require_once( 'last_visited_api.php' ); require_once( 'tag_api.php' ); - $f_bug_id = gpc_get_int( 'id' ); - $f_history = gpc_get_bool( 'history', config_get( 'history_default_visible' ) ); + $f_bug_id = gpc_get_int( 'id' ); bug_ensure_exists( $f_bug_id ); $tpl_bug = bug_get( $f_bug_id, true ); - $t_selected_project = helper_get_current_project(); - if( $tpl_bug->project_id != $t_selected_project ) { - # in case the current project is not the same project of the bug we are viewing... - # ... override the current project. This to avoid problems with categories and handlers lists etc. - $g_project_override = $tpl_bug->project_id; - } + # In case the current project is not the same project of the bug we are + # viewing, override the current project. This ensures all config_get and other + # per-project function calls use the project ID of this bug. + $g_project_override = $tpl_bug->project_id; access_ensure_bug_level( VIEWER, $f_bug_id ); + $f_history = gpc_get_bool( 'history', config_get( 'history_default_visible' ) ); + $t_fields = config_get( $tpl_fields_config_option ); $t_fields = columns_filter_disabled( $t_fields ); commit e7fe953588fbcc3cca09ece2a606e5ba48a359ce Author: David Hicks <hic...@op...> Date: Sat Feb 20 14:17:33 2010 +1100 Fix #11527: bug_actiongroup: tag_attach_threshold not checked When using the actiongroup feature of MantisBT (checking multiple issues and performing an action on all checked issue at the same time), the "Attach tags" feature doesn't check tag_attach_threshold when validating which bugs can be modified. This leads to an access denied error from bug_attach_tags(). diff --git a/bug_actiongroup_attach_tags_inc.php b/bug_actiongroup_attach_tags_inc.php index 86fdd6b..518be0d 100644 --- a/bug_actiongroup_attach_tags_inc.php +++ b/bug_actiongroup_attach_tags_inc.php @@ -65,24 +65,31 @@ $g_action_attach_tags_failed = array(); $t_tags = tag_parse_string( $f_tag_string ); + $t_can_attach = access_has_bug_level( config_get( 'tag_attach_threshold' ), $p_bug_id ); $t_can_create = access_has_global_level( config_get( 'tag_create_threshold' ) ); foreach ( $t_tags as $t_tag_row ) { if ( -1 == $t_tag_row['id'] ) { - if ( $t_can_create ) { + if ( $t_can_create && $t_can_attach ) { $g_action_attach_tags_create[] = $t_tag_row; } else { $g_action_attach_tags_failed[] = $t_tag_row; } } else if ( -2 == $t_tag_row['id'] ) { $g_action_attach_tags_failed[] = $t_tag_row; - } else { + } else if ( $t_can_attach ) { $g_action_attach_tags_attach[] = $t_tag_row; + } else { + $g_action_attach_tags_failed[] = $t_tag_row; } } if ( 0 < $f_tag_select && tag_exists( $f_tag_select ) ) { - $g_action_attach_tags_attach[] = tag_get( $f_tag_select ); + if ( $t_can_attach ) { + $g_action_attach_tags_attach[] = tag_get( $f_tag_select ); + } else { + $g_action_attach_tags_failed[] = tag_get( $f_tag_select ); + } } } commit 00c58a29db88d1925074ac94d9abdddbd620cac6 Author: David Hicks <hic...@op...> Date: Sat Feb 20 14:14:45 2010 +1100 Fix #11528: Don't call config_flush_cache() in bug_actiongroup_ext.php There is no need to call config_flush_cache() in bug_actiongroup_ext.php because the configuration cache already takes into account whether a configuration setting is per-user and per-project. Additionally, bug_actiongroup_ext.php has been cleaned up to reduce code complexity and increase the efficiency of this page. diff --git a/bug_actiongroup_ext.php b/bug_actiongroup_ext.php index 307140c..28b10a4 100644 --- a/bug_actiongroup_ext.php +++ b/bug_actiongroup_ext.php @@ -55,49 +55,27 @@ } } - $t_failed_ids = array(); - - # validate all bugs before we start the processing, we may fail the whole action - # group, or some of the bugs. - foreach( $t_projects_bugs as $t_project_id => $t_bug_ids ) { - if ( $t_bug->project_id != helper_get_current_project() ) { - # in case the current project is not the same project of the bug we are viewing... - # ... override the current project. This to avoid problems with categories and handlers lists etc. - $g_project_override = $t_bug->project_id; - /** @todo (thraxisp) the next line goes away if the cache was smarter and used project */ - config_flush_cache(); # flush the config cache so that configs are refetched - } - - foreach( $t_bug_ids as $t_bug_id ) { - $t_result = bug_group_action_validate( $f_action, $t_bug_id ); - if ( $t_result !== true ) { - foreach( $t_result as $t_key => $t_value ) { - $t_failed_ids[$t_key] = $t_value; - } - } - } - } - - // process bugs that are not already failed by validation. - foreach( $t_projects_bugs as $t_project_id => $t_bug_ids ) { - if ( $t_bug->project_id != helper_get_current_project() ) { - // in case the current project is not the same project of the bug we are viewing... - // ... override the current project. This to avoid problems with categories and handlers lists etc. - $g_project_override = $t_bug->project_id; - /** @todo (thraxisp) the next line goes away if the cache was smarter and used project */ - config_flush_cache(); // flush the config cache so that configs are refetched + $t_failed_ids = array(); + + foreach( $t_projects_bugs as $t_project_id => $t_bugs ) { + $g_project_override = $t_project_id; + foreach( $t_bugs as $t_bug_id ) { + $t_result = bug_group_action_validate( $f_action, $t_bug_id ); + if( $t_result !== true ) { + foreach( $t_result as $t_key => $t_value ) { + $t_failed_ids[$t_key] = $t_value; + } + } + if( !isset( $t_failed_ids[$t_bug_id] ) ) { + $t_result = bug_group_action_process( $f_action, $t_bug_id ); + if( $t_result !== true ) { + $t_failed_ids[] = $t_result; + } + } } + } - foreach( $t_bug_ids as $t_bug_id ) { - # do not process this bug if validation failed for it. - if ( !isset( $t_failed_ids[$t_bug_id] ) ) { - $t_result = bug_group_action_process( $f_action, $t_bug_id ); - if ( $t_result !== true ) { - $t_failed_ids[] = $t_result; - } - } - } - } + $g_project_override = null; form_security_purge( $t_form_name ); commit 391880708982e56454d5bd5aa3d68d515ac3197b Author: Paul Richards <pa...@ma...> Date: Tue Dec 22 23:05:13 2009 +0000 Fix part of #11293 - if we have a project_override set, that should lead to the same behaviour as calling config_get with a project id Signed-off-by: David Hicks <hic...@op...> diff --git a/core/config_api.php b/core/config_api.php index d06d169..1fc3f45 100644 --- a/core/config_api.php +++ b/core/config_api.php @@ -54,7 +54,7 @@ $g_cache_config_project = null; # 3.use GLOBAL[config_id] function config_get( $p_option, $p_default = null, $p_user = null, $p_project = null ) { global $g_cache_config, $g_cache_config_access, $g_cache_db_table_exists, $g_cache_filled; - global $g_cache_config_user, $g_cache_config_project; + global $g_cache_config_user, $g_cache_config_project, $g_project_override; # @@ debug @@ echo "lu o=$p_option "; # bypass table lookup for certain options @@ -63,7 +63,9 @@ function config_get( $p_option, $p_default = null, $p_user = null, $p_project = # @@ debug @@ if ($t_bypass_lookup) { echo "bp=$p_option match=$t_match_pattern <br />"; } if( !$t_bypass_lookup ) { - + if( $g_project_override !== null ) { + $p_project = $g_project_override; + } # @@ debug @@ if ( ! db_is_connected() ) { echo "no db "; } # @@ debug @@ echo "lu table=" . ( db_table_exists( $t_config_table ) ? "yes " : "no " ); if( !$g_cache_db_table_exists ) { commit c6300e134e7991e7affa93b5f9cb75b89210c99b Author: Robert Munteanu <rob...@gm...> Date: Fri Feb 19 23:26:42 2010 +0200 Fixes #11266: mc_issue_update() does not transport all field date Implemented setting of the missed fields and added regression test. diff --git a/api/soap/mc_issue_api.php b/api/soap/mc_issue_api.php index 10e819a..e7f2ae0 100644 --- a/api/soap/mc_issue_api.php +++ b/api/soap/mc_issue_api.php @@ -639,6 +639,11 @@ function mc_issue_update( $p_username, $p_password, $p_issue_id, $p_issue ) { $t_description = isset( $p_issue['description'] ) ? $p_issue['description'] : ''; $t_additional_information = isset( $p_issue['additional_information'] ) ? $p_issue['additional_information'] : ''; $t_steps_to_reproduce = isset( $p_issue['steps_to_reproduce'] ) ? $p_issue['steps_to_reproduce'] : ''; + $t_build = isset( $p_issue['build'] ) ? $p_issue['build'] : ''; + $t_platform = isset( $p_issue['platform'] ) ? $p_issue['platform'] : ''; + $t_os = isset( $p_issue['os'] ) ? $p_issue['os'] : ''; + $t_os_build = isset( $p_issue['os_build'] ) ? $p_issue['os_build'] : ''; + $t_sponsorship_total = isset( $p_issue['sponsorship_total'] ) ? $p_issue['sponsorship_total'] : ''; if( $t_reporter_id == 0 ) { $t_reporter_id = $t_user_id; @@ -720,15 +725,15 @@ function mc_issue_update( $p_username, $p_password, $p_issue_id, $p_issue ) { $t_bug_data->date_submitted = isset( $v_date_submitted ) ? $v_date_submitted : ''; $t_bug_data->last_updated = isset( $v_last_updated ) ? $v_last_updated : ''; $t_bug_data->eta = $t_eta_id; - $t_bug_data->os = isset( $v_os ) ? $v_os : ''; - $t_bug_data->os_build = isset( $v_os_build ) ? $v_os_build : ''; - $t_bug_data->platform = isset( $v_platform ) ? $v_platform : ''; + $t_bug_data->os = $t_os; + $t_bug_data->os_build = $t_os_build; + $t_bug_data->platform = $t_platform; $t_bug_data->version = isset( $p_issue['version'] ) ? $p_issue['version'] : ''; $t_bug_data->fixed_in_version = isset( $p_issue['fixed_in_version'] ) ? $p_issue['fixed_in_version'] : ''; - $t_bug_data->build = isset( $v_build ) ? $v_build : ''; + $t_bug_data->build = $t_build; $t_bug_data->view_state = $t_view_state_id; $t_bug_data->summary = $t_summary; - $t_bug_data->sponsorship_total = isset( $v_sponsorship_total ) ? $v_sponsorship_total : 0; + $t_bug_data->sponsorship_total = $t_sponsorship_total; if ( isset( $p_issue['due_date'] ) && access_has_global_level( config_get( 'due_date_update_threshold' ) ) ) { $t_bug_data->due_date = mci_iso8601_to_timestamp( $p_issue['due_date'] ); diff --git a/tests/soap/IssueUpdateTest.php b/tests/soap/IssueUpdateTest.php index 2e4de78..2193d36 100644 --- a/tests/soap/IssueUpdateTest.php +++ b/tests/soap/IssueUpdateTest.php @@ -403,4 +403,52 @@ class IssueUpdateTest extends SoapBase { $this->assertEquals( 30, $issueWithNote->notes[0]->time_tracking); } + + /* + * This test case tests the following: + * 1. Creation of an issue. + * 2. Updating the issue with rare fields + * 3. Getting the issue + * 4. Verifying that the rare field values are preserved + * 5. Deleting the issue. + */ + public function testUpdateWithRareFields() { + + $this->skipIfTimeTrackingIsNotEnabled(); + + $issueToAdd = $this->getIssueToAdd( 'IssueUpdateTest.testUpdateWithRareFields' ); + + $issueId = $this->client->mc_issue_add( + $this->userName, + $this->password, + $issueToAdd); + + $this->deleteAfterRun( $issueId ); + + $issue = $this->client->mc_issue_get( + $this->userName, + $this->password, + $issueId); + + $issue->build = 'build'; + $issue->platform = 'platform'; + $issue->os_build = 'os_build'; + $issue->os = 'os'; + + $this->client->mc_issue_update( + $this->userName, + $this->password, + $issueId, + $issue); + + $retrievedIssue = $this->client->mc_issue_get( + $this->userName, + $this->password, + $issueId); + + $this->assertEquals( 'build', $retrievedIssue->build ); + $this->assertEquals( 'platform', $retrievedIssue->platform ); + $this->assertEquals( 'os', $retrievedIssue->os ); + $this->assertEquals( 'os_build', $retrievedIssue->os_build); + } } commit b5c381d7d65ab1463518364a13ba459cb59ead20 Author: Robert Munteanu <rob...@gm...> Date: Fri Feb 19 23:08:10 2010 +0200 Fixes #11267: mc_project_get_issues() does not transport field 'target_version' mc_project_get_issues was not setting target_version. Fixed by extracting a common method from mc_issue_api and mci_filter_api which does the right thing for both methods. diff --git a/api/soap/mc_filter_api.php b/api/soap/mc_filter_api.php index 733ab28..9fd3da0 100644 --- a/api/soap/mc_filter_api.php +++ b/api/soap/mc_filter_api.php @@ -71,54 +71,7 @@ function mc_filter_get_issues( $p_username, $p_password, $p_project_id, $p_filte $t_rows = filter_get_bug_rows( $p_page_number, $p_per_page, $t_page_count, $t_bug_count, $t_filter, $p_project_id ); foreach( $t_rows as $t_issue_data ) { - $t_id = $t_issue_data->id; - - $t_issue = array(); - $t_issue['id'] = $t_id; - $t_issue['view_state'] = mci_enum_get_array_by_id( $t_issue_data->view_state, 'view_state', $t_lang ); - $t_issue['last_updated'] = timestamp_to_iso8601( $t_issue_data->last_updated ); - - $t_issue['project'] = mci_project_as_array_by_id( $t_issue_data->project_id ); - $t_issue['category'] = mci_get_category( $t_issue_data->category_id ); - $t_issue['priority'] = mci_enum_get_array_by_id( $t_issue_data->priority, 'priority', $t_lang ); - $t_issue['severity'] = mci_enum_get_array_by_id( $t_issue_data->severity, 'severity', $t_lang ); - $t_issue['status'] = mci_enum_get_array_by_id( $t_issue_data->status, 'status', $t_lang ); - - $t_issue['reporter'] = mci_account_get_array_by_id( $t_issue_data->reporter_id ); - $t_issue['summary'] = $t_issue_data->summary; - $t_issue['version'] = mci_null_if_empty( $t_issue_data->version ); - $t_issue['build'] = mci_null_if_empty( $t_issue_data->build ); - $t_issue['platform'] = mci_null_if_empty( $t_issue_data->platform ); - $t_issue['os'] = mci_null_if_empty( $t_issue_data->os ); - $t_issue['os_build'] = mci_null_if_empty( $t_issue_data->os_build ); - $t_issue['reproducibility'] = mci_enum_get_array_by_id( $t_issue_data->reproducibility, 'reproducibility', $t_lang ); - $t_issue['date_submitted'] = timestamp_to_iso8601( $t_issue_data->date_submitted ); - $t_issue['sponsorship_total'] = $t_issue_data->sponsorship_total; - - if( !empty( $t_issue_data->handler_id ) ) { - $t_issue['handler'] = mci_account_get_array_by_id( $t_issue_data->handler_id ); - } - $t_issue['projection'] = mci_enum_get_array_by_id( $t_issue_data->projection, 'projection', $t_lang ); - $t_issue['eta'] = mci_enum_get_array_by_id( $t_issue_data->eta, 'eta', $t_lang ); - - $t_issue['resolution'] = mci_enum_get_arr... [truncated message content] |