[Rt-commit] rt branch 4.4/preview-searches created. rt-4.4.6-92-g815c333d44
BPS Git Server
git at git.bestpractical.com
Fri Aug 18 16:10:55 UTC 2023
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "rt".
The branch, 4.4/preview-searches has been created
at 815c333d44f7c5641b5b78378aaa1f1de821342d (commit)
- Log -----------------------------------------------------------------
commit 815c333d44f7c5641b5b78378aaa1f1de821342d
Author: sunnavy <sunnavy at bestpractical.com>
Date: Thu Mar 12 01:50:10 2020 +0800
Add new page where admins can preview results of search modules
diff --git a/share/html/Elements/Tabs b/share/html/Elements/Tabs
index 1cb6b17208..228cc7a644 100644
--- a/share/html/Elements/Tabs
+++ b/share/html/Elements/Tabs
@@ -698,6 +698,12 @@ my $build_main_nav = sub {
);
}
+ $tools->child( preview_searches =>
+ title => loc('Search Modules'),
+ description => loc('Preview results of search modules'),
+ path => '/Tools/PreviewSearches.html',
+ );
+
if ( $session{'CurrentUser'}->HasRight( Right => 'ShowConfigTab', Object => RT->System ) )
{
$build_admin_menu->(Menu());
diff --git a/share/html/Tools/PreviewSearches.html b/share/html/Tools/PreviewSearches.html
new file mode 100644
index 0000000000..d9eb7f2bbc
--- /dev/null
+++ b/share/html/Tools/PreviewSearches.html
@@ -0,0 +1,152 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC
+%# <sales at bestpractical.com>
+%#
+%# (Except where explicitly superseded by other copyright notices)
+%#
+%#
+%# LICENSE:
+%#
+%# This work is made available to you under the terms of Version 2 of
+%# the GNU General Public License. A copy of that license should have
+%# been provided with this software, but in any event can be snarfed
+%# from www.gnu.org.
+%#
+%# This work 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 this program; if not, write to the Free Software
+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%# 02110-1301 or visit their web page on the internet at
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
+%#
+%#
+%# CONTRIBUTION SUBMISSION POLICY:
+%#
+%# (The following paragraph is not intended to limit the rights granted
+%# to you to modify and distribute this software under the terms of
+%# the GNU General Public License and is only of importance to you if
+%# you choose to contribute your changes and enhancements to the
+%# community by submitting them to Best Practical Solutions, LLC.)
+%#
+%# By intentionally submitting any modifications, corrections or
+%# derivatives to this work, or any other work intended for use with
+%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
+%# you are the copyright holder for those contributions and you grant
+%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
+%# royalty-free, perpetual, license to use, copy, create derivative
+%# works based on those contributions, and sublicense and distribute
+%# those contributions and any derivatives thereof.
+%#
+%# END BPS TAGGED BLOCK }}}
+<& /Elements/Header, Title => loc('Preview results of search modules') &>
+<& /Elements/Tabs &>
+
+<&| /Widgets/TitleBox, title => loc('Search Modules') &>
+ <p>
+ <&|/l&>RT can use searches packaged in modules for some utilities like rt-crontool. This page allows you to run the searches from these modules in the web UI to confirm they find the tickets you expect.</&>
+ </p>
+
+ <p>
+ <&|/l&>Note that the web version of the search will run as the logged in user. To see exactly the same results as rt-crontool, view the search with the user mapped via the Unix Login field or make sure your user account has the same rights as the user running rt-crontool.</&>
+ </p>
+</&>
+
+<form method="POST" action="PreviewSearches.html">
+ <table>
+ <tr>
+ <td align="right"><&|/l&>Search Module</&>:</td>
+ <td>
+ <select name="Search">
+% for my $module ( @modules ) {
+ <option value="<% $module %>" <% $module eq $Search ? 'selected="selected"' : '' |n%>><% $module %></option>
+% }
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td align="right"><&|/l&>Search argument</&>:</td>
+ <td><input name="SearchArg" size="60" value="<% $SearchArg %>" /></td>
+ </tr>
+% if ( $ShowFormat ) {
+ <tr>
+ <td align="right"><&|/l&>Format</&>:</td>
+ <td><textarea name="Format" rows="8" cols="72"><% $Format %></textarea></td>
+ </tr>
+% }
+ <tr>
+ <td align="right"><&|/l&>Rows per page</&>:</td>
+ <td>
+ <& /Elements/SelectResultsPerPage, Name => "Rows", Default => $Rows &>
+ </td>
+ </tr>
+ </table>
+ <& /Elements/Submit, Label => loc('Search') &>
+</form>
+
+% if ( $tickets ) {
+
+<&| /Widgets/TitleBox, title => loc('Found [quant,_1,ticket,tickets]', $tickets->CountAll) &>
+
+<& /Elements/CollectionList,
+ Collection => $tickets,
+ AllowSorting => 1,
+ Rows => $Rows,
+ Page => $Page,
+ Format => $Format,
+ SearchArg => $SearchArg,
+ Search => $Search,
+ PassArguments => [qw(Format Rows Page Order OrderBy Search SearchArg)],
+&>
+
+</&>
+% }
+
+<%INIT>
+
+use List::MoreUtils 'uniq';
+my @modules;
+for my $root (@INC) {
+ my $mask = File::Spec->catfile( $root, qw(RT Search *.pm) );
+ for my $file ( glob $mask ) {
+ my ($name) = $file =~ /(\w+).pm$/;
+ next if $name eq 'Simple';
+ push @modules, "RT::Search::$name";
+ }
+}
+
+ at modules = sort( uniq(@modules) );
+
+my $tickets;
+if ( $Search ) {
+ if ( $Search->require ) {
+ $tickets = RT::Tickets->new( $session{CurrentUser} );
+ my $search = $Search->new(
+ TicketsObj => $tickets,
+ Argument => $SearchArg,
+ CurrentUser => $session{CurrentUser},
+ );
+ $search->Prepare();
+ }
+ else {
+ $RT::Logger->error("Couldn't load $Search: $@");
+ Abort( loc( "Couldn't load [_1]", $Search ) );
+ }
+}
+
+</%INIT>
+
+<%ARGS>
+$Search => ''
+$SearchArg => ''
+$Format => RT->Config->Get('DefaultSearchResultFormat')
+$ShowFormat => undef
+$Page => 1
+$Rows => 50
+</%ARGS>
-----------------------------------------------------------------------
hooks/post-receive
--
rt
More information about the rt-commit
mailing list