projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
eliminate some false laziness in FS::Misc::send_email vs. msg_template/email.pm send_...
[freeside.git]
/
rt
/
share
/
html
/
Search
/
Build.html
diff --git
a/rt/share/html/Search/Build.html
b/rt/share/html/Search/Build.html
index
eea5f81
..
26b046e
100644
(file)
--- a/
rt/share/html/Search/Build.html
+++ b/
rt/share/html/Search/Build.html
@@
-2,7
+2,7
@@
%#
%# COPYRIGHT:
%#
%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-201
5
Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-201
9
Best Practical Solutions, LLC
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
@@
-53,7
+53,7
@@
%# Build/Edit.html (Advanced).)
%#
%# After doing some stuff with default arguments and saved searches, the ParseQuery
%# Build/Edit.html (Advanced).)
%#
%# After doing some stuff with default arguments and saved searches, the ParseQuery
-%# function (which is similar to, but not the same as, _parser in lib/RT/Tickets
_SQL
.pm)
+%# function (which is similar to, but not the same as, _parser in lib/RT/Tickets.pm)
%# converts the Query into a RT::Interface::Web::QueryBuilder::Tree. This mason file
%# then adds stuff to or modifies the tree based on the actions that had been requested
%# by clicking buttons. It then calls GetQueryAndOptionList on the tree to generate
%# converts the Query into a RT::Interface::Web::QueryBuilder::Tree. This mason file
%# then adds stuff to or modifies the tree based on the actions that had been requested
%# by clicking buttons. It then calls GetQueryAndOptionList on the tree to generate
@@
-67,7
+67,6
@@
%#
<& /Elements/Header, Title => $title &>
<& /Elements/Tabs, %TabArgs &>
%#
<& /Elements/Header, Title => $title &>
<& /Elements/Tabs, %TabArgs &>
-
<form method="post" action="Build.html" name="BuildQuery" id="BuildQuery">
<input type="hidden" class="hidden" name="SavedSearchId" value="<% $saved_search{'Id'} %>" />
<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $ARGS{'SavedChartSearchId'} %>" />
<form method="post" action="Build.html" name="BuildQuery" id="BuildQuery">
<input type="hidden" class="hidden" name="SavedSearchId" value="<% $saved_search{'Id'} %>" />
<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $ARGS{'SavedChartSearchId'} %>" />
@@
-140,7
+139,11
@@
if ( $NewQuery ) {
my $current = $session{'CurrentSearchHash'};
my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {};
my $current = $session{'CurrentSearchHash'};
my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {};
- my $default = { Query => '', Format => '', OrderBy => 'id', Order => 'ASC', RowsPerPage => 50 };
+ my $default = { Query => '',
+ Format => '',
+ OrderBy => RT->Config->Get('DefaultSearchResultOrderBy'),
+ Order => RT->Config->Get('DefaultSearchResultOrder'),
+ RowsPerPage => 50 };
for( qw(Query Format OrderBy Order RowsPerPage) ) {
$query{$_} = $current->{$_} unless defined $query{$_};
for( qw(Query Format OrderBy Order RowsPerPage) ) {
$query{$_} = $current->{$_} unless defined $query{$_};
@@
-188,9
+191,15
@@
my @options = $tree->GetDisplayedNodes;
my @current_values = grep defined, @options[@clauses];
my @new_values = ();
my @current_values = grep defined, @options[@clauses];
my @new_values = ();
+my $cf_field_names =
+ join "|",
+ map quotemeta,
+ grep { $RT::Tickets::FIELD_METADATA{$_}->[0] eq 'CUSTOMFIELD' }
+ sort keys %RT::Tickets::FIELD_METADATA;
+
# Try to find if we're adding a clause
foreach my $arg ( keys %ARGS ) {
# Try to find if we're adding a clause
foreach my $arg ( keys %ARGS ) {
- next unless $arg =~ m/^ValueOf([\w\.]+|
'\w*CF\.\{.*?\}'
)$/
+ next unless $arg =~ m/^ValueOf([\w\.]+|
($cf_field_names).\{.*?\}
)$/
&& ( ref $ARGS{$arg} eq "ARRAY"
? grep $_ ne '', @{ $ARGS{$arg} }
: $ARGS{$arg} ne '' );
&& ( ref $ARGS{$arg} eq "ARRAY"
? grep $_ ne '', @{ $ARGS{$arg} }
: $ARGS{$arg} ne '' );
@@
-220,6
+229,7
@@
foreach my $arg ( keys %ARGS ) {
for ( my $i = 0; $i < @ops; $i++ ) {
my ( $op, $value ) = ( $ops[$i], $values[$i] );
next if !defined $value || $value eq '';
for ( my $i = 0; $i < @ops; $i++ ) {
my ( $op, $value ) = ( $ops[$i], $values[$i] );
next if !defined $value || $value eq '';
+ my $rawvalue = $value;
if ( $value =~ /^NULL$/i && $op =~ /=/ ) {
if ( $op eq '=' ) {
if ( $value =~ /^NULL$/i && $op =~ /=/ ) {
if ( $op eq '=' ) {
@@
-234,16
+244,15
@@
foreach my $arg ( keys %ARGS ) {
$value = "'$value'";
}
$value = "'$value'";
}
- if ($keyword =~ /^'(\w*CF)\.\{(.*)\}'/) {
- my ($field, $cf) = ($1, $2);
- $cf =~ s/(['\\])/\\$1/g;
- $keyword = "'$field.{$cf}'";
+ if ($keyword =~ s/(['\\])/\\$1/g or $keyword =~ /[^{}\w\.]/) {
+ $keyword = "'$keyword'";
}
my $clause = {
Key => $keyword,
Op => $op,
}
my $clause = {
Key => $keyword,
Op => $op,
- Value => $value
+ Value => $value,
+ RawValue => $rawvalue,
};
push @new_values, RT::Interface::Web::QueryBuilder::Tree->new($clause);
};
push @new_values, RT::Interface::Web::QueryBuilder::Tree->new($clause);