View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009213 | mantisbt | filters | public | 2008-06-01 14:47 | 2017-01-31 04:02 |
Reporter | mkornatzki | Assigned To | cproensa | ||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Target Version | 2.1.0 | Fixed in Version | 2.1.0 | ||
Summary | 0009213: manage filter | ||||
Description | hi, i missed the possibility to edit filter, so i made a patch for this. you can now edit the name and the properties of the filter. instructions
| ||||
Tags | patch | ||||
Attached Files | manage_filter.patch (39,268 bytes)
Property changes on: . ___________________________________________________________________ Name: svn:ignore - !core custom_constant_inc.php custom_strings_inc.php custom_functions_inc.php config_inc.php .#* .project project.index .DS_Store custom_relationships_inc.php + !core custom_constant_inc.php custom_strings_inc.php custom_functions_inc.php config_inc.php .#* .project project.index .DS_Store custom_relationships_inc.php jpgraph avatar Index: query_store_page.php =================================================================== --- query_store_page.php (revision 5305) +++ query_store_page.php (working copy) @@ -40,6 +40,11 @@ <?php $t_query_to_store = filter_db_get_filter( gpc_get_cookie( config_get( 'view_all_cookie' ), '' ) ); $t_query_arr = filter_db_get_available_queries(); + $f_source_query_id = gpc_get_string( 'source_query_id', null ); + + if (!is_null($f_source_query_id)) { + $filter_row = filter_get_row($f_source_query_id); + } # Let's just see if any of the current filters are the # same as the one we're about the try and save @@ -58,21 +63,54 @@ print lang_get( 'query_name' ) . ': '; ?> <form method="post" action="query_store.php"> - <input type="text" name="query_name" /><br /> + <input type="text" name="query_name" value="<?php echo $filter_row['name']; ?>"/><br /> <?php if ( access_has_project_level( config_get( 'stored_query_create_shared_threshold' ) ) ) { - print '<input type="checkbox" name="is_public" value="on" /> '; + print '<input type="checkbox" name="is_public" '; + if ($filter_row['is_public'] == 1) { + print 'checked="checked"'; + } + print ' /> '; print lang_get( 'make_public' ); print '<br />'; } ?> - <input type="checkbox" name="all_projects" value="on" <?php check_checked( ALL_PROJECTS == helper_get_current_project() ) ?> > + + <input type="checkbox" name="all_projects" <?php check_checked( $filter_row['project_id'] == ALL_PROJECTS ) ?> > <?php print lang_get( 'all_projects' ); ?><br /><br /> + <?php + if (!is_null($f_source_query_id)) { + ?> + <input type="hidden" name="edit" value="true" /> + <input type="hidden" name="source_query_id" value="<?php echo $f_source_query_id; ?>" /> + <?php + } + ?> <input type="submit" class="button" value="<?php print lang_get( 'save_query' ); ?>" /> </form> - <form action="view_all_bug_page.php"> - <input type="submit" class="button" value="<?php print lang_get( 'go_back' ); ?>" /> - </form> + <?php + if (is_blank($filter_row)) { + ?> + <form action="view_all_bug_page.php"> + <input type="submit" class="button" value="<?php print lang_get( 'go_back' ); ?>" /> + </form> + <?php + } else { + ?> + <form action="filter_edit_page.php"> + <?php + if (!is_null($f_source_query_id)) { + ?> + <input type="hidden" name="edit" value="true" /> + <input type="hidden" name="source_query_id" value="<?php echo $f_source_query_id; ?>" /> + <?php + } + ?> + <input type="submit" class="button" value="<?php print lang_get( 'go_back' ); ?>" /> + </form> + <?php + } + ?> <?php echo '</div>'; html_page_bottom1( __FILE__ ); Index: view_filters_page.php =================================================================== --- view_filters_page.php (revision 5305) +++ view_filters_page.php (working copy) @@ -97,6 +97,7 @@ $t_filter_cols = config_get( 'filter_custom_fields_per_row' ); $t_custom_cols = 1; $t_custom_rows = 0; + $f_source_query_id = gpc_get_string( 'source_query_id' , null); #get valid target fields $t_fields = helper_get_columns_to_view(); @@ -180,7 +181,11 @@ <tr> <td class="right" colspan="<?php PRINT ( 8 * $t_custom_cols ); ?>"> <?php - $f_switch_view_link = 'view_filters_page.php?target_field=' . $t_target_field . '&view_type='; + $f_switch_view_link = 'view_filters_page.php?'; + if (!is_null($f_source_query_id)) { + $f_switch_view_link = $f_switch_view_link . 'source_query_id=' . $f_source_query_id . '&'; + } + $f_switch_view_link = $f_switch_view_link . 'target_field=' . $t_target_field . '&view_type='; if ( ( SIMPLE_ONLY != config_get( 'view_filters' ) ) && ( ADVANCED_ONLY != config_get( 'view_filters' ) ) ) { if ( 'advanced' == $f_view_type ) { @@ -432,10 +437,18 @@ <!-- Submit button --> <td class="right" colspan="<?php echo ( 1 * $t_custom_cols ); ?>"> + <?php + if (!is_null($f_source_query_id)) { + ?> + <input type="hidden" name="source_query_id" value="<?php echo gpc_get_string( 'source_query_id' ) ?>" /> + <input type="hidden" name="edit" value="true" /> + <?php + } + ?> <input type="submit" name="filter" class="button" value="<?php echo lang_get( 'filter_button' ) ?>" /> </td> </tr> </table> </form> -<?php html_page_bottom1( __FILE__ ) ?> +<?php html_page_bottom1( __FILE__ ) ?> \ No newline at end of file Index: view_all_set.php =================================================================== --- view_all_set.php (revision 5305) +++ view_all_set.php (working copy) @@ -28,6 +28,7 @@ $f_source_query_id = gpc_get_int( 'source_query_id', -1 ); $f_print = gpc_get_bool( 'print' ); $f_temp_filter = gpc_get_bool( 'temporary' ); + $f_edit = gpc_get_bool( 'edit' ); # validate filter type $f_default_view_type = 'simple'; @@ -519,11 +520,13 @@ gpc_set_cookie( config_get( 'view_all_cookie' ), $t_row_id, time()+config_get( 'cookie_time_length' ), config_get( 'cookie_path' ) ); } - # redirect to print_all or view_all page - if ( $f_print ) { - $t_redirect_url = 'print_all_bug_page.php'; + # redirect to print_all, view_all page or filter_edit + if ($f_print && !$f_edit) { + $t_redirect_url = 'print_all_bug_page.php'; + } else if (!$f_edit){ + $t_redirect_url = 'view_all_bug_page.php'; } else { - $t_redirect_url = 'view_all_bug_page.php'; + $t_redirect_url = 'filter_edit_page.php?source_query_id=' . $f_source_query_id; } if ( $f_temp_filter ) { @@ -533,4 +536,4 @@ } else { print_header_redirect( $t_redirect_url ); } -?> +?> \ No newline at end of file Index: query_store.php =================================================================== --- query_store.php (revision 5305) +++ query_store.php (working copy) @@ -36,27 +36,35 @@ $f_query_name = strip_tags( gpc_get_string( 'query_name' ) ); $f_is_public = gpc_get_bool( 'is_public' ); $f_all_projects = gpc_get_bool( 'all_projects' ); + $f_edit = gpc_get_bool( 'edit', false ); + $f_source_query_id = gpc_get_string( 'source_query_id', null); - $t_query_redirect_url = 'query_store_page.php'; + $t_query_redirect_url = 'query_store_page.php?'; + if (!is_blank($f_source_query_id)) { + $t_query_redirect_url = $t_query_redirect_url . 'edit=true&source_query_id=' . $f_source_query_id . '&'; + } + # We can't have a blank name if ( is_blank( $f_query_name ) ) { - $t_query_redirect_url = $t_query_redirect_url . '?error_msg=' + $t_query_redirect_url = $t_query_redirect_url . 'error_msg=' . urlencode( lang_get( 'query_blank_name' ) ); print_header_redirect( $t_query_redirect_url ); } # Check and make sure they don't already have a # query with the same name - $t_query_arr = filter_db_get_available_queries(); - foreach( $t_query_arr as $t_id => $t_name ) { - if ( $f_query_name == $t_name ) { - $t_query_redirect_url = $t_query_redirect_url . '?error_msg=' - . urlencode( lang_get( 'query_dupe_name' ) ); - print_header_redirect( $t_query_redirect_url ); - exit; + if (is_null($f_source_query_id)) { + $t_query_arr = filter_db_get_available_queries(); + foreach( $t_query_arr as $t_id => $t_name ) { + if ( $f_query_name == $t_name ) { + $t_query_redirect_url = $t_query_redirect_url . 'error_msg=' + . urlencode( lang_get( 'query_dupe_name' ) ); + print_header_redirect( $t_query_redirect_url ); + exit; + } } - } + } $t_project_id = helper_get_current_project(); if ( $f_all_projects ) { @@ -66,13 +74,17 @@ $t_filter_string = filter_db_get_filter( gpc_get_cookie( config_get( 'view_all_cookie' ), '' ) ); $t_new_row_id = filter_db_set_for_current_user($t_project_id, $f_is_public, - $f_query_name, $t_filter_string); + $f_query_name, $t_filter_string, $f_source_query_id); if ( $t_new_row_id == -1 ) { $t_query_redirect_url = $t_query_redirect_url . '?error_msg=' . urlencode( lang_get( 'query_store_error' ) ); print_header_redirect( $t_query_redirect_url ); } else { - print_header_redirect( 'view_all_bug_page.php' ); + if (!$f_edit) { + print_header_redirect( 'view_all_bug_page.php' ); + } else { + print_header_redirect( 'filter_edit_page.php?edit=true&source_query_id=' . $f_source_query_id ); + } } ?> Index: view_all_bug_page.php =================================================================== --- view_all_bug_page.php (revision 5305) +++ view_all_bug_page.php (working copy) @@ -73,4 +73,4 @@ include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'view_all_inc.php' ); html_page_bottom1( __FILE__ ); -?> +?> \ No newline at end of file Index: filter_edit_page.php =================================================================== --- filter_edit_page.php (revision 0) +++ filter_edit_page.php (revision 0) @@ -0,0 +1,90 @@ +<?php +# Mantis - a php based bugtracking system + +# Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org +# Copyright (C) 2002 - 2007 Mantis Team - mantisbt-dev@lists.sourceforge.net + +# Mantis is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# Mantis is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Mantis. If not, see <http://www.gnu.org/licenses/>. + + # -------------------------------------------------------- + # $Revision: 1.62.2.1 $ + # $Author: giallu $ + # $Date: 2007-10-13 22:34:48 $ + # + # $Id: view_all_bug_page.php,v 1.62.2.1 2007-10-13 22:34:48 giallu Exp $ + # -------------------------------------------------------- +?> +<?php + require_once( 'core.php' ); + + $t_core_path = config_get( 'core_path' ); + + require_once( $t_core_path.'compress_api.php' ); + require_once( $t_core_path.'filter_api.php' ); + require_once( $t_core_path.'last_visited_api.php' ); +?> +<?php auth_ensure_user_authenticated() ?> +<?php + $f_page_number = gpc_get_int( 'page_number', 1 ); + $f_source_query_id = gpc_get_string( 'source_query_id' ); + + $t_per_page = null; + $t_bug_count = null; + $t_page_count = null; + +# print_header_redirect( 'view_all_set.php?type=0' ); + + $t_bugslist = Array(); + $t_row_count = sizeof( $rows ); + for($i=0; $i < $t_row_count; $i++) { + array_push($t_bugslist, $rows[$i]["id"] ); + } + + gpc_set_cookie( config_get( 'bug_list_cookie' ), implode( ',', $t_bugslist ) ); + + compress_enable(); + + html_page_top1( lang_get( 'view_bugs_link' ) ); + html_page_top2(); + + + #include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'view_all_inc.php' ); + $t_filter = current_user_get_bug_filter(); + + if( $t_filter ) { + list( $t_sort, ) = split( ',', $t_filter['sort'] ); + list( $t_dir, ) = split( ',', $t_filter['dir'] ); + } + + $t_checkboxes_exist = false; + + $t_icon_path = config_get( 'icon_path' ); + $t_update_bug_threshold = config_get( 'update_bug_threshold' ); + + $t_columns = helper_get_columns_to_view( COLUMNS_TARGET_VIEW_PAGE ); + + $col_count = sizeof( $t_columns ); + + + + $t_filter_position = config_get( 'filter_position' ); + # -- ====================== FILTER FORM ========================= -- + if ( ( $t_filter_position & FILTER_POSITION_TOP ) == FILTER_POSITION_TOP ) { + filter_draw_selection_area( $f_page_number ); + } + # -- ====================== end of FILTER FORM ================== -- + + + html_page_bottom1( __FILE__ ); +?> Index: query_view_page.php =================================================================== --- query_view_page.php (revision 5305) +++ query_view_page.php (working copy) @@ -45,53 +45,96 @@ $t_use_query_url = 'view_all_set.php?type=3&source_query_id='; $t_delete_query_url = 'query_delete_page.php?source_query_id='; + $t_edit_query_url = 'view_all_set.php?type=3&edit=true&advanced_view_type=true&source_query_id='; $t_rss_enabled = config_get( 'rss_enabled' ); ?> <br /> <div align="center"> <table class="width75" cellspacing="0"> + <tr> + <td></td> + <td> + <?php print lang_get_defaulted( 'id' );?> + </td> + <td> + <?php print lang_get_defaulted('query_name');?> + </td> + <td> + <?php print lang_get_defaulted('query_name_translated');?> + </td> + <td> + <?php print lang_get_defaulted('username');?> + </td> + <td> + <?php print lang_get_defaulted('query_project');?> + </td> + <td> + <?php print lang_get_defaulted( 'public' );?> + </td> + <td></td> + <td></td> + </tr> <?php - $t_column_count = 0; - $t_max_column_count = 2; - foreach( $t_query_arr as $t_id => $t_name ) { - if ( $t_column_count == 0 ) { - print '<tr ' . helper_alternate_class() . '>'; - } + $filter_row = filter_get_row( $t_id ); + print '<tr ' . helper_alternate_class() . '>'; + print '<td>'; - if ( OFF != $t_rss_enabled ) { # Use the "new" RSS link style. print_rss( rss_get_issues_feed_url( null, null, $t_id ), lang_get( 'rss' ) ); echo ' '; } + print '</td>'; - print '<a href="' . $t_use_query_url . db_prepare_int( $t_id ) . '">' . string_display( $t_name ) . '</a>'; + print '<td>'; + print string_display( $filter_row['id'] ); + print '</td>'; + print '<td>'; + print string_display( $filter_row['name'] ); + print '</td>'; + + print '<td>'; + print '<a href="' . $t_use_query_url . db_prepare_int( $t_id ) . '">' . string_display( lang_get_defaulted($t_name) ) . '</a>'; + print '</td>'; + + print '<td>'; + print '<a href="manage_user_edit_page.php?user_id=' . $filter_row['user_id'] . '">' . string_display( user_get_name($filter_row['user_id']) ) . '</a>'; + print '</td>'; + + print '<td>'; + if ($filter_row['project_id'] == ALL_PROJECTS) { + print string_display( lang_get_defaulted(all_projects) ); + } else { + print string_display( project_get_field($filter_row['project_id'], 'name')); + } + print '</td>'; + + print '<td style="text-align: center">'; + print '<input type="checkbox" name="enabled" disabled '; + if ($filter_row['is_public'] == 1) { + print 'checked="checked"'; + } + print '/>'; + print '</td>'; + + print '<td>'; if ( filter_db_can_delete_filter( $t_id ) ) { echo ' '; print_button( $t_delete_query_url . db_prepare_int( $t_id ), lang_get( 'delete_query' ) ); } - print '</td>'; - $t_column_count++; - if ( $t_column_count == $t_max_column_count ) { - print '</tr>'; - $t_column_count = 0; - } - } + print '<td>'; + print_button( $t_edit_query_url . db_prepare_int( $t_id ), lang_get( 'edit_query' ) ); + print '</td>'; - # Tidy up this row - if ( ( $t_column_count > 0 ) && ( $t_column_count < $t_max_column_count ) ) { - for ( $i = $t_column_count; $i < $t_max_column_count; $i++ ) { - print '<td> </td>'; - } print '</tr>'; } ?> </table> </div> -<?php html_page_bottom1( __FILE__ ) ?> +<?php html_page_bottom1( __FILE__ ) ?> \ No newline at end of file Index: set_project.php =================================================================== --- set_project.php (revision 5305) +++ set_project.php (working copy) @@ -63,13 +63,15 @@ if ( strtolower( $t_path ) == strtolower( substr( $_SERVER['HTTP_REFERER'], 0, strlen( $t_path ) ) ) ) { $t_referrer_page = substr( $_SERVER['HTTP_REFERER'], strlen( $t_path ) ); # if view_all_bug_page, pass on filter - if ( eregi( 'view_all_bug_page.php', $t_referrer_page ) ) { + if ( eregi( 'view_all_bug_page.php', $t_referrer_page ) || eregi( 'filter_edit_page.php', $t_referrer_page ) ) { $t_source_filter_id = filter_db_get_project_current( $f_project_id ); $t_redirect_url = 'view_all_set.php?type=4'; if ( $t_source_filter_id !== null ) { $t_redirect_url = 'view_all_set.php?type=3&source_query_id=' . $t_source_filter_id; } + } else if ( eregi( 'query_store_page.php', $t_referrer_page ) ) { + $t_redirect_url = $t_home_page; } else if ( eregi( '_page.php', $t_referrer_page ) ) { # get just the page component if ( strpos( $t_referrer_page, '?' ) !== FALSE ) { Index: core/filter_api.php =================================================================== --- core/filter_api.php (revision 5305) +++ core/filter_api.php (working copy) @@ -1727,7 +1727,13 @@ } } - $t_filters_url = 'view_filters_page.php?for_screen=' . $p_for_screen; + $t_filters_url = 'view_filters_page.php?'; + $f_source_query_id = gpc_get_string('source_query_id', null); + if (!is_null($f_source_query_id)) { + $t_filters_url = $t_filters_url . 'source_query_id=' . $f_source_query_id . '&'; + } + $t_filters_url = $t_filters_url . 'for_screen=' . $p_for_screen; + if ( 'advanced' == $t_view_type ) { $t_filters_url = $t_filters_url . '&view_type=advanced'; } @@ -1742,6 +1748,16 @@ } ?> + <?php if (!is_null($f_source_query_id)) {?> + <tr class="row-1"> + <td class="filter-caption" valign="top" colspan="8"> + <?php + $filter_row = filter_get_row($f_source_query_id); + PRINT lang_get('edit_query') . ': ' . $filter_row['name']; + ?> + </td> + </tr> + <?php } ?> <tr <?php PRINT "class=\"" . $t_trclass . "\""; ?>> <td class="small-caption" valign="top"> <a href="<?php PRINT $t_filters_url . 'reporter_id[]'; ?>" id="reporter_id_filter"><?php PRINT lang_get( 'reporter' ) ?>:</a> @@ -2874,10 +2890,18 @@ <form method="post" name="save_query" action="query_store_page.php"> <input type="submit" name="save_query_button" class="button-small" value="<?php PRINT lang_get( 'save_query' ) ?>" /> </form> + <?php + $f_source_query_id = gpc_get_string('source_query_id', null); + if ($f_source_query_id > 0) { + ?> + <form method="post" name="update_query" action="query_store_page.php" method="post"> + <input type="hidden" name="source_query_id" value="<?php echo $f_source_query_id; ?>" /> + <input type="submit" name="update_query_button" class="button-small" value="<?php PRINT lang_get( 'update_query' ) ?>" /> + </form> + <?php + } + ?> <?php - } else { - ?> - <?php } ?> </td> @@ -2888,7 +2912,7 @@ # Add a filter to the database for the current user function filter_db_set_for_current_user( $p_project_id, $p_is_public, - $p_name, $p_filter_string ) { + $p_name, $p_filter_string, $p_source_query_id = null ) { $t_user_id = auth_get_current_user_id(); $c_project_id = db_prepare_int( $p_project_id ); $c_is_public = db_prepare_bool( $p_is_public, false ); @@ -2912,6 +2936,9 @@ WHERE user_id=" . db_param(0) . " AND project_id=" . db_param(1) . " AND name=" . db_param(2); + if (!is_null($p_source_query_id)) { + $query = $query . " OR id=$p_source_query_id"; + } $result = db_query_bound( $query, Array( $t_user_id, $c_project_id, $c_name ) ); if ( db_num_rows( $result ) > 0 ) { @@ -2919,8 +2946,10 @@ $query = "UPDATE $t_filters_table SET is_public=" . db_param(0) . ", - filter_string=" . db_param(1) . " - WHERE id=" . db_param(2); + filter_string=" . db_param(1) . ", + project_id=$c_project_id, + name='$c_name' + WHERE id=" . db_param(2); db_query_bound( $query, Array( $c_is_public, $p_filter_string, $row['id'] ) ); return $row['id']; Index: css/default.css =================================================================== --- css/default.css (revision 5305) +++ css/default.css (working copy) @@ -63,6 +63,7 @@ td.print-category { font-size: 8pt; color: #000000; font-weight: bold; text-align: right; padding: 2px; } td.print-bottom { border-bottom: 1px solid #000000; } td.print-spacer { background-color: #ffffff; color: #000000; font-size: 1pt; line-height: 0.1; padding: 0px;} +td.filter-caption { font-size: 8pt; font-weight: bold;} tr {} tr.spacer { background-color: #ffffff; color: #000000; height: 5px; } Index: filter_edit_page.php =================================================================== --- filter_edit_page.php (revision 0) +++ filter_edit_page.php (revision 0) @@ -0,0 +1,90 @@ +<?php +# Mantis - a php based bugtracking system + +# Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org +# Copyright (C) 2002 - 2007 Mantis Team - mantisbt-dev@lists.sourceforge.net + +# Mantis is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# Mantis is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Mantis. If not, see <http://www.gnu.org/licenses/>. + + # -------------------------------------------------------- + # $Revision: 1.62.2.1 $ + # $Author: giallu $ + # $Date: 2007-10-13 22:34:48 $ + # + # $Id: view_all_bug_page.php,v 1.62.2.1 2007-10-13 22:34:48 giallu Exp $ + # -------------------------------------------------------- +?> +<?php + require_once( 'core.php' ); + + $t_core_path = config_get( 'core_path' ); + + require_once( $t_core_path.'compress_api.php' ); + require_once( $t_core_path.'filter_api.php' ); + require_once( $t_core_path.'last_visited_api.php' ); +?> +<?php auth_ensure_user_authenticated() ?> +<?php + $f_page_number = gpc_get_int( 'page_number', 1 ); + $f_source_query_id = gpc_get_string( 'source_query_id' ); + + $t_per_page = null; + $t_bug_count = null; + $t_page_count = null; + +# print_header_redirect( 'view_all_set.php?type=0' ); + + $t_bugslist = Array(); + $t_row_count = sizeof( $rows ); + for($i=0; $i < $t_row_count; $i++) { + array_push($t_bugslist, $rows[$i]["id"] ); + } + + gpc_set_cookie( config_get( 'bug_list_cookie' ), implode( ',', $t_bugslist ) ); + + compress_enable(); + + html_page_top1( lang_get( 'view_bugs_link' ) ); + html_page_top2(); + + + #include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'view_all_inc.php' ); + $t_filter = current_user_get_bug_filter(); + + if( $t_filter ) { + list( $t_sort, ) = split( ',', $t_filter['sort'] ); + list( $t_dir, ) = split( ',', $t_filter['dir'] ); + } + + $t_checkboxes_exist = false; + + $t_icon_path = config_get( 'icon_path' ); + $t_update_bug_threshold = config_get( 'update_bug_threshold' ); + + $t_columns = helper_get_columns_to_view( COLUMNS_TARGET_VIEW_PAGE ); + + $col_count = sizeof( $t_columns ); + + + + $t_filter_position = config_get( 'filter_position' ); + # -- ====================== FILTER FORM ========================= -- + if ( ( $t_filter_position & FILTER_POSITION_TOP ) == FILTER_POSITION_TOP ) { + filter_draw_selection_area( $f_page_number ); + } + # -- ====================== end of FILTER FORM ================== -- + + + html_page_bottom1( __FILE__ ); +?> Index: lang/strings_english.txt =================================================================== --- lang/strings_english.txt (revision 5305) +++ lang/strings_english.txt (working copy) @@ -1190,15 +1190,19 @@ $s_use_query = 'Use Filter'; $s_delete_query = 'Delete Filter'; $s_query_deleted = 'Filter Deleted'; +$s_edit_query = 'Edit Filter'; $s_save_query = 'Save Current Filter'; +$s_update_query = 'Update Current Filter'; $s_reset_query = 'Reset Filter'; $s_query_name = 'Filter Name'; +$s_query_name_translated = 'Filter Name (translated)'; $s_query_exists = 'This particular query appears to already exist.'; $s_query_dupe_name = 'Another query already has this name. Please choose a different name for this query.'; $s_query_blank_name = 'You cannot store a filter without a name. Please give this filter a name before saving it.'; $s_query_store_error = 'There was an error saving this query.'; $s_open_queries = 'Manage Filters'; $s_query_delete_msg = 'Are you sure you wish to delete this query?'; +$s_query_project = 'Project'; # view_bug_advanced_page.php $s_view_simple_link = 'View Simple'; Index: lang/strings_german.txt =================================================================== --- lang/strings_german.txt (revision 5305) +++ lang/strings_german.txt (working copy) @@ -1177,12 +1177,14 @@ $s_save_query = 'Filter speichern'; $s_reset_query = 'Filter zurücksetzen'; $s_query_name = 'Filtername'; +$s_query_name_translated = 'Filtername (übersetzt)'; $s_query_exists = 'Ein Filter mit diesen Optionen existiert bereits.'; $s_query_dupe_name = 'Ein Filter mit diesem Namen existiert bereits. Bitte geben Sie einen anderen Namen ein.'; $s_query_blank_name = 'Bitte geben Sie einen Namen für diesen Filter ein.'; $s_query_store_error = 'Ein Fehler ist beim Speichern des Filters aufgetreten.'; $s_open_queries = 'Filter verwalten'; $s_query_delete_msg = 'Möchten Sie diesen Filter wirklich löschen?'; +$s_query_project = 'Projekt'; # view_bug_advanced_page.php $s_view_simple_link = 'einfache Anzeige'; Index: query_store.php =================================================================== --- query_store.php (revision 5305) +++ query_store.php (working copy) @@ -36,27 +36,35 @@ $f_query_name = strip_tags( gpc_get_string( 'query_name' ) ); $f_is_public = gpc_get_bool( 'is_public' ); $f_all_projects = gpc_get_bool( 'all_projects' ); + $f_edit = gpc_get_bool( 'edit', false ); + $f_source_query_id = gpc_get_string( 'source_query_id', null); - $t_query_redirect_url = 'query_store_page.php'; + $t_query_redirect_url = 'query_store_page.php?'; + if (!is_blank($f_source_query_id)) { + $t_query_redirect_url = $t_query_redirect_url . 'edit=true&source_query_id=' . $f_source_query_id . '&'; + } + # We can't have a blank name if ( is_blank( $f_query_name ) ) { - $t_query_redirect_url = $t_query_redirect_url . '?error_msg=' + $t_query_redirect_url = $t_query_redirect_url . 'error_msg=' . urlencode( lang_get( 'query_blank_name' ) ); print_header_redirect( $t_query_redirect_url ); } # Check and make sure they don't already have a # query with the same name - $t_query_arr = filter_db_get_available_queries(); - foreach( $t_query_arr as $t_id => $t_name ) { - if ( $f_query_name == $t_name ) { - $t_query_redirect_url = $t_query_redirect_url . '?error_msg=' - . urlencode( lang_get( 'query_dupe_name' ) ); - print_header_redirect( $t_query_redirect_url ); - exit; + if (is_null($f_source_query_id)) { + $t_query_arr = filter_db_get_available_queries(); + foreach( $t_query_arr as $t_id => $t_name ) { + if ( $f_query_name == $t_name ) { + $t_query_redirect_url = $t_query_redirect_url . 'error_msg=' + . urlencode( lang_get( 'query_dupe_name' ) ); + print_header_redirect( $t_query_redirect_url ); + exit; + } } - } + } $t_project_id = helper_get_current_project(); if ( $f_all_projects ) { @@ -66,13 +74,17 @@ $t_filter_string = filter_db_get_filter( gpc_get_cookie( config_get( 'view_all_cookie' ), '' ) ); $t_new_row_id = filter_db_set_for_current_user($t_project_id, $f_is_public, - $f_query_name, $t_filter_string); + $f_query_name, $t_filter_string, $f_source_query_id); if ( $t_new_row_id == -1 ) { $t_query_redirect_url = $t_query_redirect_url . '?error_msg=' . urlencode( lang_get( 'query_store_error' ) ); print_header_redirect( $t_query_redirect_url ); } else { - print_header_redirect( 'view_all_bug_page.php' ); + if (!$f_edit) { + print_header_redirect( 'view_all_bug_page.php' ); + } else { + print_header_redirect( 'filter_edit_page.php?edit=true&source_query_id=' . $f_source_query_id ); + } } ?> Index: query_store_page.php =================================================================== --- query_store_page.php (revision 5305) +++ query_store_page.php (working copy) @@ -40,6 +40,11 @@ <?php $t_query_to_store = filter_db_get_filter( gpc_get_cookie( config_get( 'view_all_cookie' ), '' ) ); $t_query_arr = filter_db_get_available_queries(); + $f_source_query_id = gpc_get_string( 'source_query_id', null ); + + if (!is_null($f_source_query_id)) { + $filter_row = filter_get_row($f_source_query_id); + } # Let's just see if any of the current filters are the # same as the one we're about the try and save @@ -58,21 +63,54 @@ print lang_get( 'query_name' ) . ': '; ?> <form method="post" action="query_store.php"> - <input type="text" name="query_name" /><br /> + <input type="text" name="query_name" value="<?php echo $filter_row['name']; ?>"/><br /> <?php if ( access_has_project_level( config_get( 'stored_query_create_shared_threshold' ) ) ) { - print '<input type="checkbox" name="is_public" value="on" /> '; + print '<input type="checkbox" name="is_public" '; + if ($filter_row['is_public'] == 1) { + print 'checked="checked"'; + } + print ' /> '; print lang_get( 'make_public' ); print '<br />'; } ?> - <input type="checkbox" name="all_projects" value="on" <?php check_checked( ALL_PROJECTS == helper_get_current_project() ) ?> > + + <input type="checkbox" name="all_projects" <?php check_checked( $filter_row['project_id'] == ALL_PROJECTS ) ?> > <?php print lang_get( 'all_projects' ); ?><br /><br /> + <?php + if (!is_null($f_source_query_id)) { + ?> + <input type="hidden" name="edit" value="true" /> + <input type="hidden" name="source_query_id" value="<?php echo $f_source_query_id; ?>" /> + <?php + } + ?> <input type="submit" class="button" value="<?php print lang_get( 'save_query' ); ?>" /> </form> - <form action="view_all_bug_page.php"> - <input type="submit" class="button" value="<?php print lang_get( 'go_back' ); ?>" /> - </form> + <?php + if (is_blank($filter_row)) { + ?> + <form action="view_all_bug_page.php"> + <input type="submit" class="button" value="<?php print lang_get( 'go_back' ); ?>" /> + </form> + <?php + } else { + ?> + <form action="filter_edit_page.php"> + <?php + if (!is_null($f_source_query_id)) { + ?> + <input type="hidden" name="edit" value="true" /> + <input type="hidden" name="source_query_id" value="<?php echo $f_source_query_id; ?>" /> + <?php + } + ?> + <input type="submit" class="button" value="<?php print lang_get( 'go_back' ); ?>" /> + </form> + <?php + } + ?> <?php echo '</div>'; html_page_bottom1( __FILE__ ); Index: query_view_page.php =================================================================== --- query_view_page.php (revision 5305) +++ query_view_page.php (working copy) @@ -45,53 +45,96 @@ $t_use_query_url = 'view_all_set.php?type=3&source_query_id='; $t_delete_query_url = 'query_delete_page.php?source_query_id='; + $t_edit_query_url = 'view_all_set.php?type=3&edit=true&advanced_view_type=true&source_query_id='; $t_rss_enabled = config_get( 'rss_enabled' ); ?> <br /> <div align="center"> <table class="width75" cellspacing="0"> + <tr> + <td></td> + <td> + <?php print lang_get_defaulted( 'id' );?> + </td> + <td> + <?php print lang_get_defaulted('query_name');?> + </td> + <td> + <?php print lang_get_defaulted('query_name_translated');?> + </td> + <td> + <?php print lang_get_defaulted('username');?> + </td> + <td> + <?php print lang_get_defaulted('query_project');?> + </td> + <td> + <?php print lang_get_defaulted( 'public' );?> + </td> + <td></td> + <td></td> + </tr> <?php - $t_column_count = 0; - $t_max_column_count = 2; - foreach( $t_query_arr as $t_id => $t_name ) { - if ( $t_column_count == 0 ) { - print '<tr ' . helper_alternate_class() . '>'; - } + $filter_row = filter_get_row( $t_id ); + print '<tr ' . helper_alternate_class() . '>'; + print '<td>'; - if ( OFF != $t_rss_enabled ) { # Use the "new" RSS link style. print_rss( rss_get_issues_feed_url( null, null, $t_id ), lang_get( 'rss' ) ); echo ' '; } + print '</td>'; - print '<a href="' . $t_use_query_url . db_prepare_int( $t_id ) . '">' . string_display( $t_name ) . '</a>'; + print '<td>'; + print string_display( $filter_row['id'] ); + print '</td>'; + print '<td>'; + print string_display( $filter_row['name'] ); + print '</td>'; + + print '<td>'; + print '<a href="' . $t_use_query_url . db_prepare_int( $t_id ) . '">' . string_display( lang_get_defaulted($t_name) ) . '</a>'; + print '</td>'; + + print '<td>'; + print '<a href="manage_user_edit_page.php?user_id=' . $filter_row['user_id'] . '">' . string_display( user_get_name($filter_row['user_id']) ) . '</a>'; + print '</td>'; + + print '<td>'; + if ($filter_row['project_id'] == ALL_PROJECTS) { + print string_display( lang_get_defaulted(all_projects) ); + } else { + print string_display( project_get_field($filter_row['project_id'], 'name')); + } + print '</td>'; + + print '<td style="text-align: center">'; + print '<input type="checkbox" name="enabled" disabled '; + if ($filter_row['is_public'] == 1) { + print 'checked="checked"'; + } + print '/>'; + print '</td>'; + + print '<td>'; if ( filter_db_can_delete_filter( $t_id ) ) { echo ' '; print_button( $t_delete_query_url . db_prepare_int( $t_id ), lang_get( 'delete_query' ) ); } - print '</td>'; - $t_column_count++; - if ( $t_column_count == $t_max_column_count ) { - print '</tr>'; - $t_column_count = 0; - } - } + print '<td>'; + print_button( $t_edit_query_url . db_prepare_int( $t_id ), lang_get( 'edit_query' ) ); + print '</td>'; - # Tidy up this row - if ( ( $t_column_count > 0 ) && ( $t_column_count < $t_max_column_count ) ) { - for ( $i = $t_column_count; $i < $t_max_column_count; $i++ ) { - print '<td> </td>'; - } print '</tr>'; } ?> </table> </div> -<?php html_page_bottom1( __FILE__ ) ?> +<?php html_page_bottom1( __FILE__ ) ?> \ No newline at end of file Index: set_project.php =================================================================== --- set_project.php (revision 5305) +++ set_project.php (working copy) @@ -63,13 +63,15 @@ if ( strtolower( $t_path ) == strtolower( substr( $_SERVER['HTTP_REFERER'], 0, strlen( $t_path ) ) ) ) { $t_referrer_page = substr( $_SERVER['HTTP_REFERER'], strlen( $t_path ) ); # if view_all_bug_page, pass on filter - if ( eregi( 'view_all_bug_page.php', $t_referrer_page ) ) { + if ( eregi( 'view_all_bug_page.php', $t_referrer_page ) || eregi( 'filter_edit_page.php', $t_referrer_page ) ) { $t_source_filter_id = filter_db_get_project_current( $f_project_id ); $t_redirect_url = 'view_all_set.php?type=4'; if ( $t_source_filter_id !== null ) { $t_redirect_url = 'view_all_set.php?type=3&source_query_id=' . $t_source_filter_id; } + } else if ( eregi( 'query_store_page.php', $t_referrer_page ) ) { + $t_redirect_url = $t_home_page; } else if ( eregi( '_page.php', $t_referrer_page ) ) { # get just the page component if ( strpos( $t_referrer_page, '?' ) !== FALSE ) { Index: view_all_bug_page.php =================================================================== --- view_all_bug_page.php (revision 5305) +++ view_all_bug_page.php (working copy) @@ -73,4 +73,4 @@ include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'view_all_inc.php' ); html_page_bottom1( __FILE__ ); -?> +?> \ No newline at end of file Index: view_all_set.php =================================================================== --- view_all_set.php (revision 5305) +++ view_all_set.php (working copy) @@ -28,6 +28,7 @@ $f_source_query_id = gpc_get_int( 'source_query_id', -1 ); $f_print = gpc_get_bool( 'print' ); $f_temp_filter = gpc_get_bool( 'temporary' ); + $f_edit = gpc_get_bool( 'edit' ); # validate filter type $f_default_view_type = 'simple'; @@ -519,11 +520,13 @@ gpc_set_cookie( config_get( 'view_all_cookie' ), $t_row_id, time()+config_get( 'cookie_time_length' ), config_get( 'cookie_path' ) ); } - # redirect to print_all or view_all page - if ( $f_print ) { - $t_redirect_url = 'print_all_bug_page.php'; + # redirect to print_all, view_all page or filter_edit + if ($f_print && !$f_edit) { + $t_redirect_url = 'print_all_bug_page.php'; + } else if (!$f_edit){ + $t_redirect_url = 'view_all_bug_page.php'; } else { - $t_redirect_url = 'view_all_bug_page.php'; + $t_redirect_url = 'filter_edit_page.php?source_query_id=' . $f_source_query_id; } if ( $f_temp_filter ) { @@ -533,4 +536,4 @@ } else { print_header_redirect( $t_redirect_url ); } -?> +?> \ No newline at end of file Index: view_filters_page.php =================================================================== --- view_filters_page.php (revision 5305) +++ view_filters_page.php (working copy) @@ -97,6 +97,7 @@ $t_filter_cols = config_get( 'filter_custom_fields_per_row' ); $t_custom_cols = 1; $t_custom_rows = 0; + $f_source_query_id = gpc_get_string( 'source_query_id' , null); #get valid target fields $t_fields = helper_get_columns_to_view(); @@ -180,7 +181,11 @@ <tr> <td class="right" colspan="<?php PRINT ( 8 * $t_custom_cols ); ?>"> <?php - $f_switch_view_link = 'view_filters_page.php?target_field=' . $t_target_field . '&view_type='; + $f_switch_view_link = 'view_filters_page.php?'; + if (!is_null($f_source_query_id)) { + $f_switch_view_link = $f_switch_view_link . 'source_query_id=' . $f_source_query_id . '&'; + } + $f_switch_view_link = $f_switch_view_link . 'target_field=' . $t_target_field . '&view_type='; if ( ( SIMPLE_ONLY != config_get( 'view_filters' ) ) && ( ADVANCED_ONLY != config_get( 'view_filters' ) ) ) { if ( 'advanced' == $f_view_type ) { @@ -432,10 +437,18 @@ <!-- Submit button --> <td class="right" colspan="<?php echo ( 1 * $t_custom_cols ); ?>"> + <?php + if (!is_null($f_source_query_id)) { + ?> + <input type="hidden" name="source_query_id" value="<?php echo gpc_get_string( 'source_query_id' ) ?>" /> + <input type="hidden" name="edit" value="true" /> + <?php + } + ?> <input type="submit" name="filter" class="button" value="<?php echo lang_get( 'filter_button' ) ?>" /> </td> </tr> </table> </form> -<?php html_page_bottom1( __FILE__ ) ?> +<?php html_page_bottom1( __FILE__ ) ?> \ No newline at end of file | ||||
if you want a translated filter name make an entry in your custom_strings_inc.php like |
|
Looks like this feature my have some functionality in addition to 3803. Will review both for possible inclusion. |
|
Hi mkornatzki, looks great, but not usable for me, because you used a relative new base version for your patch. Which version of mantis was your base for the complete patch? |
|
Hi brody, sorry for the long time for my answer. |
|
Mkonrnatzki, |
|
Unassigned after having been assigned for a long time without progress. |
|