summaryrefslogtreecommitdiff
path: root/rt/share/html/Search
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/Search')
-rw-r--r--rt/share/html/Search/Build.html323
-rwxr-xr-xrt/share/html/Search/Bulk.html448
-rw-r--r--rt/share/html/Search/Calendar.html238
-rw-r--r--rt/share/html/Search/Chart204
-rw-r--r--rt/share/html/Search/Chart.html98
-rwxr-xr-xrt/share/html/Search/Edit.html99
-rw-r--r--rt/share/html/Search/Elements/BuildFormatString254
-rw-r--r--rt/share/html/Search/Elements/Chart151
-rw-r--r--rt/share/html/Search/Elements/ConditionRow97
-rw-r--r--rt/share/html/Search/Elements/DisplayOptions136
-rw-r--r--rt/share/html/Search/Elements/EditFormat113
-rw-r--r--rt/share/html/Search/Elements/EditQuery243
-rw-r--r--rt/share/html/Search/Elements/EditSearches296
-rw-r--r--rt/share/html/Search/Elements/Graph50
-rw-r--r--rt/share/html/Search/Elements/NewListActions66
-rw-r--r--rt/share/html/Search/Elements/PickBasics214
-rw-r--r--rt/share/html/Search/Elements/PickCFs125
-rw-r--r--rt/share/html/Search/Elements/PickCriteria72
-rw-r--r--rt/share/html/Search/Elements/ResultViews80
-rw-r--r--rt/share/html/Search/Elements/ResultsRSSView143
-rw-r--r--rt/share/html/Search/Elements/SearchPrivacy55
-rw-r--r--rt/share/html/Search/Elements/SearchesForObject65
-rw-r--r--rt/share/html/Search/Elements/SelectAndOr53
-rw-r--r--rt/share/html/Search/Elements/SelectChartType58
-rw-r--r--rt/share/html/Search/Elements/SelectGroup67
-rw-r--r--rt/share/html/Search/Elements/SelectGroupBy63
-rw-r--r--rt/share/html/Search/Elements/SelectLinks66
-rw-r--r--rt/share/html/Search/Elements/SelectPersonType84
-rw-r--r--rt/share/html/Search/Elements/SelectSearchObject68
-rw-r--r--rt/share/html/Search/Elements/SelectSearchesForObjects69
-rw-r--r--rt/share/html/Search/Graph.html50
-rwxr-xr-xrt/share/html/Search/Results.html208
-rw-r--r--rt/share/html/Search/Results.rdf48
-rw-r--r--rt/share/html/Search/Results.tsv162
-rw-r--r--rt/share/html/Search/Simple.html106
35 files changed, 0 insertions, 4672 deletions
diff --git a/rt/share/html/Search/Build.html b/rt/share/html/Search/Build.html
deleted file mode 100644
index c5067d5..0000000
--- a/rt/share/html/Search/Build.html
+++ /dev/null
@@ -1,323 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-%#
-%# Data flow here:
-%# The page receives a Query from the previous page, and maybe arguments
-%# corresponding to actions. (If it doesn't get a Query argument, it pulls
-%# one out of the session hash. Also, it could be getting just a raw query from
-%# 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 RT/Tickets_Overlay_SQL)
-%# 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
-%# the SQL query (which is saved as a hidden input) and the option list for the Clauses
-%# box in the top right corner.
-%#
-%# Worthwhile refactoring: the tree manipulation code for the actions could use some cleaning
-%# up. The node-adding code is different in the "add" actions from in ParseQuery, which leads
-%# to things like ParseQuery correctly not quoting numbers in numerical fields, while the "add"
-%# action does quote it (this breaks SQLite).
-%#
-<& /Elements/Header, Title => $title &>
-<& /Ticket/Elements/Tabs,
- current_tab => "Search/Build.html?".$QueryString,
- Title => $title,
- %query,
- SavedSearchId => $saved_search{'Id'},
- SavedChartSearchId => $ARGS{SavedChartSearchId},
-&>
-
-<form method="post" action="Build.html" name="BuildQuery">
-<input type="hidden" class="hidden" name="SavedSearchId" value="<% $saved_search{'Id'} %>" />
-<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $ARGS{'SavedChartSearchId'} %>" />
-<input type="hidden" class="hidden" name="Query" value="<% $query{'Query'} %>" />
-<input type="hidden" class="hidden" name="Format" value="<% $query{'Format'} %>" />
-
-
-
-
-<div id="pick-criteria">
- <& Elements/PickCriteria, query => $query{'Query'}, cfqueues => $queues &>
-<& /Elements/Submit, Label => loc('Add these terms'), Name => 'AddClause'&>
-<& /Elements/Submit, Label => loc('Add these terms and Search'), Name => 'DoSearch'&>
-</div>
-
-
-<div id="editquery">
-<& Elements/EditQuery,
- %ARGS,
- actions => \@actions,
- optionlist => $optionlist,
- Description => $saved_search{'Description'},
- &>
-</div>
-<div id="editsearches">
- <& Elements/EditSearches, %saved_search, CurrentSearch => \%query &>
-</div>
-
-<span id="display-options">
-<& Elements/DisplayOptions,
- %ARGS, %query,
- AvailableColumns => $AvailableColumns,
- CurrentFormat => $CurrentFormat,
-&>
-<& /Elements/Submit, Label => loc('Update format and Search'), Name => 'DoSearch', id=>"formatbuttons"&>
-</span>
-</form>
-
-<%INIT>
-use RT::Interface::Web::QueryBuilder;
-use RT::Interface::Web::QueryBuilder::Tree;
-
-$ARGS{SavedChartSearchId} ||= 'new';
-
-my $title = loc("Query Builder");
-
-my %query;
-for( qw(Query Format OrderBy Order RowsPerPage) ) {
- $query{$_} = $ARGS{$_};
-}
-
-my %saved_search;
-my @actions = $m->comp( 'Elements/EditSearches:Init', %ARGS, Query => \%query, SavedSearch => \%saved_search);
-
-if ( $NewQuery ) {
-
- # Wipe all data-carrying variables clear if we want a new
- # search, or we're deleting an old one..
- %query = ();
- %saved_search = ( Id => 'new' );
-
- # ..then wipe the session out..
- delete $session{'CurrentSearchHash'};
-
- # ..and the search results.
- $session{'tickets'}->CleanSlate if defined $session{'tickets'};
-}
-
-{ # Attempt to load what we can from the session and preferences, set defaults
-
- my $current = $session{'CurrentSearchHash'};
- my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {};
- my $default = { Query => '', Format => '', OrderBy => 'id', Order => 'ASC', RowsPerPage => 50 };
-
- for( qw(Query Format OrderBy Order RowsPerPage) ) {
- $query{$_} = $current->{$_} unless defined $query{$_};
- $query{$_} = $prefs->{$_} unless defined $query{$_};
- $query{$_} = $default->{$_} unless defined $query{$_};
- }
-
- for( qw(Order OrderBy) ) {
- if (ref $query{$_} eq "ARRAY") {
- $query{$_} = join( '|', @{ $query{$_} } );
- }
- }
- if ( $query{'Format'} ) {
- # Clean unwanted junk from the format
- $query{'Format'} = $m->comp( '/Elements/ScrubHTML', Content => $query{'Format'} );
- }
-}
-
-my $ParseQuery = sub {
- my ($string, $results) = @_;
-
- my $tree = RT::Interface::Web::QueryBuilder::Tree->new('AND');
- @$results = $tree->ParseSQL( Query => $string, CurrentUser => $session{'CurrentUser'} );
-
- return $tree;
-};
-
-my @parse_results;
-my $tree = $ParseQuery->( $query{'Query'}, \@parse_results );
-
-# if parsing went poorly, send them to the edit page to fix it
-if ( @parse_results ) {
- return $m->comp( "Edit.html", Query => $query{'Query'}, actions => \@actions );
-}
-
-my @options = $tree->GetDisplayedNodes;
-my @current_values = grep defined, @options[@clauses];
-my @new_values = ();
-
-# {{{ Try to find if we're adding a clause
-foreach my $arg ( keys %ARGS ) {
- next unless $arg =~ m/^ValueOf(\w+|'CF.{.*?}')$/
- && ( ref $ARGS{$arg} eq "ARRAY"
- ? grep $_ ne '', @{ $ARGS{$arg} }
- : $ARGS{$arg} ne '' );
-
- # We're adding a $1 clause
- my $field = $1;
-
- my ($op, $value);
-
- #figure out if it's a grouping
- my $keyword = $ARGS{ $field . "Field" } || $field;
-
- my ( @ops, @values );
- if ( ref $ARGS{ 'ValueOf' . $field } eq "ARRAY" ) {
- # we have many keys/values to iterate over, because there is
- # more than one CF with the same name.
- @ops = @{ $ARGS{ $field . 'Op' } };
- @values = @{ $ARGS{ 'ValueOf' . $field } };
- }
- else {
- @ops = ( $ARGS{ $field . 'Op' } );
- @values = ( $ARGS{ 'ValueOf' . $field } );
- }
- $RT::Logger->error("Bad Parameters passed into Query Builder")
- unless @ops == @values;
-
- for ( my $i = 0; $i < @ops; $i++ ) {
- my ( $op, $value ) = ( $ops[$i], $values[$i] );
- next if !defined $value || $value eq '';
-
- if ( $value eq 'NULL' && $op =~ /=/ ) {
- if ( $op eq '=' ) {
- $op = "IS";
- }
- elsif ( $op eq '!=' ) {
- $op = "IS NOT";
- }
-
- # This isn't "right", but...
- # It has to be this way until #5182 is fixed
- $value = "'NULL'";
- }
- else {
- $value =~ s/'/\\'/g;
- $value = "'$value'" unless $value =~ /^\d+$/;
- }
-
- my $clause = {
- Key => $keyword,
- Op => $op,
- Value => $value
- };
-
- push @new_values, RT::Interface::Web::QueryBuilder::Tree->new($clause);
- }
-}
-
-# }}}
-
-push @actions, $m->comp('Elements/EditQuery:Process',
- %ARGS,
- Tree => $tree,
- Selected => \@current_values,
- New => \@new_values,
-);
-
-# {{{ Rebuild $Query based on the additions / movements
-
-my $optionlist_arrayref;
-($query{'Query'}, $optionlist_arrayref) = $tree->GetQueryAndOptionList(\@current_values);
-
-my $optionlist = join "\n", map { qq(<option value="$_->{INDEX}" $_->{SELECTED}>)
- . ("&nbsp;" x (5 * $_->{DEPTH}))
- . $m->interp->apply_escapes($_->{TEXT}, 'h') . qq(</option>) } @$optionlist_arrayref;
-
-# }}}
-
-my $queues = $tree->GetReferencedQueues;
-
-# {{{ Deal with format changes
-my ( $AvailableColumns, $CurrentFormat );
-( $query{'Format'}, $AvailableColumns, $CurrentFormat ) = $m->comp(
- 'Elements/BuildFormatString',
- %ARGS,
- cfqueues => $queues,
- Format => $query{'Format'},
-);
-
-# }}}
-
-# if we're asked to save the current search, save it
-push @actions, $m->comp( 'Elements/EditSearches:Save', %ARGS, Query => \%query, SavedSearch => \%saved_search);
-
-# {{{ Push the updates into the session so we don't loose 'em
-
-$session{'CurrentSearchHash'} = {
- %query,
- SearchId => $saved_search{'Id'},
- Object => $saved_search{'Object'},
- Description => $saved_search{'Description'},
-};
-
-# }}}
-
-# {{{ Show the results, if we were asked.
-
-if ( $ARGS{'DoSearch'} ) {
- $m->comp( 'Results.html', %query, SavedChartSearchId => $ARGS{'SavedChartSearchId'}, );
- $m->comp( '/Elements/Footer' );
- $m->abort;
-}
-
-# }}}
-
-# {{{ Build a querystring for the tabs
-
-my $QueryString = '';
-if ($NewQuery) {
- $QueryString = 'NewQuery=1';
-}
-elsif ( $query{'Query'} ) {
- $QueryString = $m->comp('/Elements/QueryString', %query );
-}
-
-# }}}
-
-</%INIT>
-
-<%ARGS>
-$NewQuery => 0
-@clauses => ()
-</%ARGS>
diff --git a/rt/share/html/Search/Bulk.html b/rt/share/html/Search/Bulk.html
deleted file mode 100755
index f2ca45c..0000000
--- a/rt/share/html/Search/Bulk.html
+++ /dev/null
@@ -1,448 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 => $title &>
-<& /Ticket/Elements/Tabs,
- current_tab => "Search/Bulk.html",
- Title => $title,
- Format => $ARGS{'Format'}, # we don't want the locally modified one
- Query => $Query,
- Rows => $Rows,
- OrderBy => $OrderBy,
- Order => $Order,
- SavedSearchId => $SavedSearchId,
- SavedChartSearchId => $SavedChartSearchId,
- &>
-
-<& /Elements/ListActions, actions => \@results &>
-<form method="post" action="<% RT->Config->Get('WebPath') %>/Search/Bulk.html" enctype="multipart/form-data">
-% foreach my $var qw(Query Format OrderBy Order Rows Page SavedChartSearchId) {
-<input type="hidden" class="hidden" name="<%$var%>" value="<%$ARGS{$var} || ''%>" />
-%}
-<& /Elements/CollectionList,
- Query => $Query,
- DisplayFormat => $Format,
- Format => $ARGS{'Format'},
- Verbatim => 1,
- AllowSorting => 1,
- OrderBy => $OrderBy,
- Order => $Order,
- Rows => $Rows,
- Page => $Page,
- BaseURL => RT->Config->Get('WebPath')."/Search/Bulk.html?",
- Class => 'RT::Tickets'
- &>
-
-% $m->callback(CallbackName => 'AfterTicketList', ARGSRef => \%ARGS);
-
-<hr />
-
-<& /Elements/Submit, Label => loc('Update'), CheckAll => 1, ClearAll => 1 &>
-<br />
-<&|/Widgets/TitleBox, title => $title &>
-<table>
-<tr>
-<td valign="top">
-<table>
-<tr><td class="label"> <&|/l&>Make Owner</&>: </td>
-<td class="value"> <& /Elements/SelectOwner, Name => "Owner" &> (<input type="checkbox" class="checkbox" name="ForceOwnerChange" /> <&|/l&>Force change</&>) </td></tr>
-<tr><td class="label"> <&|/l&>Add Requestor</&>: </td>
-<td class="value"> <input name="AddRequestor" size="20" /> </td></tr>
-<tr><td class="label"> <&|/l&>Remove Requestor</&>: </td>
-<td class="value"> <input name="DeleteRequestor" size="20" /> </td></tr>
-<tr><td class="label"> <&|/l&>Add Cc</&>: </td>
-<td class="value"> <input name="AddCc" size="20" /> </td></tr>
-<tr><td class="label"> <&|/l&>Remove Cc</&>: </td>
-<td class="value"> <input name="DeleteCc" size="20" /> </td></tr>
-<tr><td class="label"> <&|/l&>Add AdminCc</&>: </td>
-<td class="value"> <input name="AddAdminCc" size="20" /> </td></tr>
-<tr><td class="label"> <&|/l&>Remove AdminCc</&>: </td>
-<td class="value"> <input name="DeleteAdminCc" size="20" /> </td></tr>
-</table>
-</td>
-<td valign="top">
-<table>
-<tr><td class="label"> <&|/l&>Make subject</&>: </td>
-<td class="value"> <input name="Subject" size="20" /> </td></tr>
-<tr><td class="label"> <&|/l&>Make priority</&>: </td>
-<td class="value"> <& /Elements/SelectPriority, Name => "Priority" &> </td></tr>
-<tr><td class="label"> <&|/l&>Make queue</&>: </td>
-<td class="value"> <& /Elements/SelectQueue, Name => "Queue" &> </td></tr>
-<tr><td class="label"> <&|/l&>Make Status</&>: </td>
-<td class="value"> <& /Elements/SelectStatus, Name => "Status" &> </td></tr>
-<tr><td class="label"> <&|/l&>Make date Starts</&>: </td>
-<td class="value"> <& /Elements/SelectDate, Name => "Starts_Date", ShowTime => 0, Default => '' &> </td></tr>
-<tr><td class="label"> <&|/l&>Make date Started</&>: </td>
-<td class="value"> <& /Elements/SelectDate, Name => "Started_Date", ShowTime => 0, Default => '' &> </td></tr>
-<tr><td class="label"> <&|/l&>Make date Told</&>: </td>
-<td class="value"> <& /Elements/SelectDate, Name => "Told_Date", ShowTime => 0, Default => '' &> </td></tr>
-<tr><td class="label"> <&|/l&>Make date Due</&>: </td>
-<td class="value"> <& /Elements/SelectDate, Name => "Due_Date", ShowTime => 0, Default => '' &> </td></tr>
-<tr><td class="label"> <&|/l&>Make date Resolved</&>: </td>
-<td class="value"> <& /Elements/SelectDate, Name => "Resolved_Date", ShowTime => 0, Default => '' &> </td></tr>
-</table>
-
-</td>
-</tr>
-</table>
-</&>
-<&| /Widgets/TitleBox, title => loc('Add comments or replies to selected tickets') &>
-<table>
-<tr><td align="right"><&|/l&>Update Type</&>:</td>
-<td><select name="UpdateType">
- <option value="private" ><&|/l&>Comments (not sent to requestors)</&></option>
-<option value="response" ><&|/l&>Reply to requestors</&></option>
-</select>
-</td></tr>
-<tr><td align="right"><&|/l&>Subject</&>:</td><td> <input name="UpdateSubject" size="60" value="" /></td></tr>
-% while (my $CF = $TxnCFs->Next()) {
-<tr>
-<td align="right"><% $CF->Name %>:</td>
-<td><& /Elements/EditCustomField,
- CustomField => $CF,
- NamePrefix => "Object-RT::Transaction--CustomField-"
- &><em><% $CF->FriendlyType %></em></td>
-</td></tr>
-% } # end if while
-% if (exists $session{'Attachments'}) {
-<tr><td><&|/l&>Attached file</&>:</td>
-<td>
-<&|/l&>Check box to delete</&><br />
-% foreach my $attach_name (keys %{$session{'Attachments'}}) {
-<input type="checkbox" class="checkbox" name="DeleteAttach-<%$attach_name%>" value="1" /><%$attach_name%><br />
-% } # end of foreach
-</td>
-</tr>
-% } # end of if
-
- <tr><td align="right"><&|/l&>Attach</&>:</td><td><input name="Attach" type="file" />
- <input type="submit" class="button" name="AddMoreAttach" value="<&|/l&>Add More Files</&>" />
- <input type="hidden" class="hidden" name="UpdateAttach" value="1" /></td></tr>
- <tr><td class="labeltop"><&|/l&>Message</&>:</td><td>
-%# Currently, bulk update always starts with Comment not Reply selected, so we check this unconditionally
-% my $IncludeSignature = RT->Config->Get('MessageBoxIncludeSignatureOnComment');
-<& /Elements/MessageBox, Name => "UpdateContent", IncludeSignature => $IncludeSignature &>
- </td></tr>
- </table>
-
-</&>
-
-<%perl>
-my $cfs = RT::CustomFields->new($session{'CurrentUser'});
-$cfs->LimitToGlobal();
-$cfs->LimitToQueue($_) for keys %$seen_queues;
-</%perl>
-
-% if ($cfs->Count) {
-<&|/Widgets/TitleBox, title => loc('Edit Custom Fields'), color => "#336633"&>
-<table>
-<tr>
-<th><&|/l&>Name</&></th>
-<th><&|/l&>Add values</&></th>
-<th><&|/l&>Delete values</&></th>
-</tr>
-% while (my $cf = $cfs->Next()) {
-<tr>
-<td class="label"><% loc($cf->Name) %><br />
-<em>(<%$cf->FriendlyType%>)</em></td>
-% my $rows = 5;
-% my @add = (NamePrefix => 'Bulk-Add-CustomField-', CustomField => $cf, Rows => $rows, Multiple => ($cf->MaxValues ==1 ? 0 : 1) , Cols => 25);
-% my @del = (NamePrefix => 'Bulk-Delete-CustomField-', CustomField => $cf, Rows => $rows, Multiple => 1, Cols => 25);
-% if ($cf->Type eq 'Select') {
-<td><& /Elements/EditCustomFieldSelect, @add &></td>
-<td><& /Elements/EditCustomFieldSelect, @del &></td>
-% } elsif ($cf->Type eq 'Combobox') {
-<td><& /Elements/EditCustomFieldCombobox, @add &></td>
-<td><& /Elements/EditCustomFieldCombobox, @del &></td>
-% } elsif ($cf->Type eq 'Freeform') {
-<td><& /Elements/EditCustomFieldFreeform, @add &></td>
-<td><& /Elements/EditCustomFieldFreeform, @del &></td>
-% } elsif ($cf->Type eq 'Text') {
-<td><& /Elements/EditCustomFieldText, @add &></td>
-<td>&nbsp;</td>
-% } else {
-% $RT::Logger->crit("Unknown CustomField type: " . $cf->Type);
-% }
-</tr>
-% }
-</table>
-</&>
-% }
-
-<&|/Widgets/TitleBox, title => loc('Edit Links'), color => "#336633"&>
-<em><&|/l&>Enter tickets or URIs to link tickets to. Separate multiple entries with spaces.</&></em><br />
-<& /Ticket/Elements/BulkLinks, Tickets => $Tickets &>
-</&>
-
-<& /Elements/Submit, Label => loc('Update') &>
-
-
-</form>
-
-
-<%INIT>
-unless ( defined $Rows ) {
- $Rows = $RowsPerPage;
- $ARGS{Rows} = $RowsPerPage;
-}
-my $title = loc("Update multiple tickets");
-
-# Iterate through the ARGS hash and remove anything with a null value.
-map ( $ARGS{$_} =~ /^$/ && ( delete $ARGS{$_} ), keys %ARGS );
-
-my (@results);
-
-# {{{ deal with deleting uploaded attachments
-foreach my $key (keys %ARGS) {
- if ($key =~ m/^DeleteAttach-(.+)$/) {
- delete $session{'Attachments'}{$1};
- }
- $session{'Attachments'} = { %{$session{'Attachments'} || {}} };
-}
-# }}}
-
-# {{{ store the uploaded attachment in session
-if ($ARGS{'Attach'}) { # attachment?
- my $attachment = MakeMIMEEntity(
- AttachmentFieldName => 'Attach'
- );
-
- my $file_path = Encode::decode_utf8("$ARGS{'Attach'}");
- $session{'Attachments'} = {
- %{$session{'Attachments'} || {}},
- $file_path => $attachment,
- };
-}
-# }}}
-
-# delete temporary storage entry to make WebUI clean
-unless (keys %{$session{'Attachments'}} and $ARGS{'UpdateAttach'}) {
- delete $session{'Attachments'};
-}
-# }}}
-
-$Page ||= 1;
-
-$Format ||= RT->Config->Get('DefaultSearchResultFormat');
-
-# inject _CHECKBOX to the first field.
-$Format =~ s/'?([^']+)'?,/'___CHECKBOX__$1',/;
-
-my $Tickets = RT::Tickets->new( $session{'CurrentUser'} );
-$Tickets->FromSQL($Query);
-if ( $OrderBy =~ /\|/ ) {
-
- # Multiple Sorts
- my @OrderBy = split /\|/, $OrderBy;
- my @Order = split /\|/, $Order;
- $Tickets->OrderByCols(
- map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } }
- ( 0 .. $#OrderBy ) );
-}
-else {
- $Tickets->OrderBy( FIELD => $OrderBy, ORDER => $Order );
-}
-
-$Tickets->RowsPerPage($Rows) if ($Rows);
-$Tickets->GotoPage( $Page - 1 ); # SB uses page 0 as the first page
-
-Abort( loc("No search to operate on.") ) unless ($Tickets);
-
-# build up a list of all custom fields for tickets that we're displaying, so
-# we can display sane edit widgets.
-
-my $fields = {};
-my $seen_queues = {};
-while ( my $ticket = $Tickets->Next ) {
- next if $seen_queues->{ $ticket->Queue }++;
-
- my $custom_fields = $ticket->CustomFields;
- while ( my $field = $custom_fields->Next ) {
- $fields->{ $field->id } = $field;
- }
-}
-
-#Iterate through each ticket we've been handed
-my @linkresults;
-my %queues;
-
-$Tickets->RedoSearch();
-
-# pull out the labels for any custom fields we want to update
-
-my $cf_del_keys;
-@$cf_del_keys = grep { /^Bulk-Delete-CustomField/ } keys %ARGS;
-my $cf_add_keys;
-@$cf_add_keys = grep { /^Bulk-Add-CustomField/ } keys %ARGS;
-
-unless ( $ARGS{'AddMoreAttach'} ) {
- # Add session attachments if any to be processed by ProcessUpdateMessage
- $ARGS{'UpdateAttachments'} = $session{'Attachments'} if ( $session{'Attachments'} );
-
- while ( my $Ticket = $Tickets->Next ) {
- next unless ( $ARGS{ "UpdateTicket" . $Ticket->Id } );
-
- #Update the links
- $ARGS{'id'} = $Ticket->id;
- $queues{ $Ticket->QueueObj->Id }++;
-
- my @updateresults = ProcessUpdateMessage(
- TicketObj => $Ticket,
- ARGSRef => \%ARGS,
- );
-
- #Update the basics.
- my @basicresults =
- ProcessTicketBasics( TicketObj => $Ticket, ARGSRef => \%ARGS );
- my @dateresults =
- ProcessTicketDates( TicketObj => $Ticket, ARGSRef => \%ARGS );
-
- #Update the watchers
- my @watchresults =
- ProcessTicketWatchers( TicketObj => $Ticket, ARGSRef => \%ARGS );
-
- foreach my $type qw(MergeInto DependsOn MemberOf RefersTo) {
- $ARGS{ $Ticket->id . "-" . $type } = $ARGS{"Ticket-$type"};
- $ARGS{ $type . "-" . $Ticket->id } = $ARGS{"$type-Ticket"};
- }
- @linkresults =
- ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS );
- foreach my $type qw(MergeInto DependsOn MemberOf RefersTo) {
- delete $ARGS{ $type . "-" . $Ticket->id };
- delete $ARGS{ $Ticket->id . "-" . $type };
- }
-
- my @cfresults;
-
- foreach my $list ( $cf_add_keys, $cf_del_keys ) {
- next unless $list->[0];
-
-
- my $op;
- if ( $list->[0] =~ /Add/ ) {
- $op = 'add';
-
- }
- elsif ( $list->[0] =~ /Del/ ) {
- $op = 'del';
- }
- else {
- $RT::Logger->crit(
- "Got an op that was neither add nor delete. can never happen"
- . $list->[0] );
- last;
- }
-
- foreach my $key (@$list) {
- my ( $cfid, $cf );
- next if $key =~ /CustomField-(\d+)-Category$/;
- if ( $key =~ /CustomField-(\d+)-/ ) {
- $cfid = $1;
- $cf = RT::CustomField->new( $session{'CurrentUser'} );
- $cf->Load($cfid);
- }
- else {next}
- my @values =
- ref( $ARGS{$key} ) eq 'ARRAY'
- ? @{ $ARGS{$key} }
- : ( $ARGS{$key} );
- map { s/(\r\n|\r)/\n/g; } @values; # fix the newlines
- # now break the multiline values into multivalues
- @values = map { split( /\n/, $_ ) } @values
- unless ( $cf->SingleValue );
-
- my $current_values = $Ticket->CustomFieldValues($cfid);
- foreach my $value (@values) {
- if ( $op eq 'del' && $current_values->HasEntry($value) ) {
- my ( $id, $msg ) = $Ticket->DeleteCustomFieldValue(
- Field => $cfid,
- Value => $value
- );
- push @cfresults, $msg;
- }
-
- elsif ( $op eq 'add' && !$current_values->HasEntry($value) ) {
- my ( $id, $msg ) = $Ticket->AddCustomFieldValue(
- Field => $cfid,
- Value => $value
- );
- push @cfresults, $msg;
- }
- }
- }
- }
- my @tempresults = (
- @watchresults, @basicresults, @dateresults,
- @updateresults, @linkresults, @cfresults
- );
-
- @tempresults =
- map { loc( "Ticket [_1]: [_2]", $Ticket->Id, $_ ) } @tempresults;
-
- @results = ( @results, @tempresults );
- }
-
- # Cleanup WebUI
- delete $session{'Attachments'};
-}
-
-my $TxnCFs = RT::CustomFields->new( $session{CurrentUser} );
-$TxnCFs->LimitToLookupType( RT::Transaction->CustomFieldLookupType );
-$TxnCFs->LimitToGlobalOrObjectId( sort keys %queues );
-
-</%INIT>
-<%args>
-$Format => undef
-$Page => 1
-$Rows => undef
-$RowsPerPage => undef
-$Order => 'ASC'
-$OrderBy => 'id'
-$Query => undef
-$SavedSearchId => undef
-$SavedChartSearchId => undef
-</%args>
diff --git a/rt/share/html/Search/Calendar.html b/rt/share/html/Search/Calendar.html
deleted file mode 100644
index 9d2b6f5..0000000
--- a/rt/share/html/Search/Calendar.html
+++ /dev/null
@@ -1,238 +0,0 @@
-<%args>
-$Month => (localtime)[4]
-$Year => (localtime)[5] + 1900
-$Query => undef
-$Format => undef
-$Order => undef
-$OrderBy => undef
-$RowsPerPage => undef
-$NewQuery => 0
-</%args>
-
-<& /Elements/Header, Title => $title &>
-<& /Ticket/Elements/Tabs,
- current_tab => "Search/Calendar.html?$QueryString",
- Title => $title &>
-<&| /Widgets/TitleBox,
- title => loc('Calendar for ') . $rtdate->GetMonth($Month) . " $Year" ,
- title_class=> 'inverse',
- color => "#993333" &>
-
-<table width="100%">
-<tr>
-<td align="left">
-% my ($PMonth, $PYear) = ($Month - 1, $Year);
-% if ($PMonth < 0) {
-% $PYear--;
-% $PMonth = 11;
-% }
-<a href="<%$RT::WebPath%>/Search/Calendar.html?Month=<%$PMonth%>&Year=<%$PYear%>&<%$QueryString%>">«<%$rtdate->GetMonth($PMonth)%></a>
-</td>
-<th align="center">
- <font size="+1"><% $rtdate->GetMonth($Month). " $Year" %></font>
-</th>
-<td align="right">
-% my ($NMonth, $NYear) = ($Month + 1, $Year);
-% if ($NMonth > 11) {
-% $NYear++;
-% $NMonth = 0;
-% }
-<a href="<%$RT::WebPath%>/Search/Calendar.html?Month=<%$NMonth%>&Year=<%$NYear%>&<%$QueryString%>"><%$rtdate->GetMonth($NMonth)%>»</a>
-</td>
-</tr>
-</table>
-
-<table class="rtxcalendar">
-
-<thead>
-<tr>
-% for ( @{$week{$weekstart}} ) {
-<th width="14%"><%$rtdate->GetWeekday($_)%></th>
-% }
-</tr>
-</thead>
-
-<tbody>
-<tr>
-% while ($date <= $end) {
-%
-% my $offmonth = $date->month != ($Month + 1);
-% my $is_today = (DateTime->compare($today, $date) == 0);
-% my $is_yesterday = (DateTime->compare($yesterday, $date) == 0);
-% my $is_aweekago = (DateTime->compare($aweekago, $date) == 0);
-
- <td class="<% $offmonth ? 'offmonth'
- : $is_today ? 'today'
- : $is_yesterday ? 'yesterday'
- : $is_aweekago ? 'aweekago'
- : ''
- %>"
- >
- <div class="<% $is_today ? 'todays'
- : $offmonth ? 'offmonth'
- :'' %>calendardate"
- ><%$date->day%></div>
-
-% my $sp = 3;
-% for my $t ( @{ $Tickets{$date->strftime("%F")} } ) {
-% $sp--;
- <& /Elements/CalendarEvent, Object => $t, Date => $date, DateTypes => \%DateTypes &>
-% }
- <% ($sp>0) ? '<BR>'x$sp : '' |n %>
-
- </td>
-
-% $date = $set->next($date);
-% if ( $date->day_of_week == $startday_of_week ) {
- </tr><tr>
-% }
-
-% }
-</tr>
-</tbody>
-</table>
-
-<table width="100%">
-<tr>
-<td align="left">
-<a href="<%$RT::WebPath%>/Search/Calendar.html?Month=<%$PMonth%>&Year=<%$PYear%>&<%$QueryString%>">«<%$rtdate->GetMonth($PMonth)%></a>
-</td>
-
-<td valign="top" align="center">
-<form action="<%$RT::WebPath%>/Search/Calendar.html?<%$QueryString%>" method="post">
-
-<select name="Month">
-% for (0..11) {
-<option value="<%$_%>" <% $_ == $Month ? 'selected' : ''%> ><%$rtdate->GetMonth($_)%></option>
-% }
-</select>
-% my $year = (localtime)[5] + 1900;
-<select name="Year">
-% for ( ($year-5) .. ($year+5)) {
-<option value="<%$_%>" <% $_ == $Year ? 'selected' : ''%>><%$_%></option>
-% }
-</select>
-
-%# <& /Elements/Submit&>
-<input type="submit" value="<% loc('Submit') %>" class="button" />
-
-</form>
-</td>
-
-<td align="right">
-<a href="<%$RT::WebPath%>/Search/Calendar.html?Month=<%$NMonth%>&Year=<%$NYear%>&<%$QueryString%>"><%$rtdate->GetMonth($NMonth)%>»</a>
-</td>
-</tr>
-</table>
-
-<table width="100%">
-<tr>
-
-<td valign="top" rowspan=9>
- <BR>
- <a href="<%$RT::WebPath%>/Prefs/Calendar.html">Calendar Preferences and Help</a>
-</td>
-
-% foreach my $legend (keys %legend) {
- <tr>
- <td align="right">
- <img src="<%$RT::WebImagesURL%>/<%$legend%>.png" />
- </td>
- <td align="left">
-% my $more = 0;
-% foreach ( @{$legend{$legend}} ) {
- <% $more++ ? ', ' : '' %>
- <&|/l&><% $_ %></&>
-% }
- </td>
- </tr>
-% }
-
-</table>
-
-</&>
-
-<%ONCE>
-
-my %legend = (
- 'created' => ['Created'],
- 'due' => ['Due'],
- 'resolved' => ['Resolved'],
- 'updated' => ['Last Updated'],
- 'created_due' => ['Created','Due'],
- 'reminder' => ['Reminders'],
- 'started' => ['Started'],
- 'starts_due' => ['Starts','Due'],
-);
-
-</%ONCE>
-<%INIT>
-use RTx::Calendar qw(FirstDay LastDay);
-
-my $title = loc("Calendar");
-
-my @DateTypes = qw/Created Starts Started Due LastUpdated Resolved/;
-
-my $rtdate = RT::Date->new($session{'CurrentUser'});
-
-my $weekstart = 'Sunday'; #RT::SiteConfig? user pref?
-my %week = (
- 'Saturday' => [6,0..5],
- 'Sunday' => [0..6],
- 'Monday' => [1..6,0],
-);
-my $startday_of_week = ${$week{$weekstart}}[0] || 7;
-my $endday_of_week = ${$week{$weekstart}}[-1] || 7;
-
-my $today = DateTime->today;
-my $yesterday = $today->clone->subtract( days=>1 );
-my $aweekago = $today->clone->subtract( days=>7 );
-my $date = FirstDay($Year, $Month + 1, $startday_of_week );
-my $end = LastDay ($Year, $Month + 1, $endday_of_week );
-
-# use this to loop over days until $end
-my $set = DateTime::Set->from_recurrence(
- next => sub { $_[0]->truncate( to => 'day' )->add( days => 1 ) }
-);
-
-my $QueryString =
- $m->comp(
- '/Elements/QueryString',
- Query => $Query,
- Format => $Format,
- Order => $Order,
- OrderBy => $OrderBy,
- Rows => $RowsPerPage
- )
- if ($Query);
-
-$QueryString ||= 'NewQuery=1';
-
-# Default Query and Format
-my $TempFormat = "__Starts__ __Due__";
-my $TempQuery = "( Status = 'new' OR Status = 'open' OR Status = 'stalled')
- AND ( Owner = '" . $session{CurrentUser}->Id ."' OR Owner = 'Nobody' )
- AND ( Type = 'reminder' OR 'Type' = 'ticket' )";
-
-if ( my $Search = RTx::Calendar::SearchDefaultCalendar($session{CurrentUser}) ) {
- $TempFormat = $Search->SubValue('Format');
- $TempQuery = $Search->SubValue('Query');
-}
-
-# we overide them if needed
-$TempQuery = $Query if $Query;
-$TempFormat = $Format if $Format;
-
-# we search all date types in Format string
-my @Dates = grep { $TempFormat =~ m/__${_}(Relative)?__/ } @DateTypes;
-
-# used to display or not a date in Element/CalendarEvent
-my %DateTypes = map { $_ => 1 } @Dates;
-
-$TempQuery .= RTx::Calendar::DatesClauses(\@Dates, $date->strftime("%F"), $end->strftime("%F"));
-
-# print STDERR ("-" x 30), "\n", $TempQuery, "\n";
-
-my %Tickets = RTx::Calendar::FindTickets($session{'CurrentUser'}, $TempQuery, \@Dates, $date->strftime("%F"), $end->strftime("%F"));
-
-</%INIT>
diff --git a/rt/share/html/Search/Chart b/rt/share/html/Search/Chart
deleted file mode 100644
index abee3e5..0000000
--- a/rt/share/html/Search/Chart
+++ /dev/null
@@ -1,204 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$Query => "id > 0"
-$PrimaryGroupBy => 'Queue'
-$SecondaryGroupBy => undef
-$ChartStyle => 'bars'
-</%args>
-<%init>
-my $chart_class;
-use GD;
-use GD::Text;
-
-if ($ChartStyle eq 'pie') {
- require GD::Graph::pie;
- $chart_class = "GD::Graph::pie";
-} else {
- require GD::Graph::bars;
- $chart_class = "GD::Graph::bars";
-}
-
-use RT::Report::Tickets;
-my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} );
-
-my ($count_name, $value_name) = $tix->SetupGroupings(
- Query => $Query, GroupBy => $PrimaryGroupBy,
-);
-
-my %class = (
- Queue => 'RT::Queue',
- Owner => 'RT::User',
- Creator => 'RT::User',
- LastUpdatedBy => 'RT::User',
-);
-my $class = $class{ $PrimaryGroupBy };
-
-my %data;
-my $max_value = 0;
-my $max_key_length = 0;
-while ( my $entry = $tix->Next ) {
- my $key;
- if ( $class ) {
- my $q = $class->new( $session{'CurrentUser'} );
- $q->Load( $entry->LabelValue( $value_name ) );
- $key = $q->Name;
- }
- else {
- $key = $entry->LabelValue($value_name);
- }
- $key ||= '(no value)';
-
- my $value = $entry->__Value( $count_name );
- if ($chart_class eq 'GD::Graph::pie') {
- $key = loc($key) ." - ". $value;
- } else {
- $key = loc($key);
- }
- $data{ $key } = $value;
- $max_value = $value if $max_value < $value;
- $max_key_length = length $key if $max_key_length < length $key;
-}
-
-unless (keys %data) {
- $data{''} = 0;
-}
-
-
-my $chart = $chart_class->new( 600 => 400 );
-$chart->set( pie_height => 60 ) if $chart_class eq 'GD::Graph::pie';
-my %font_config = RT->Config->Get('ChartFont');
-my $font = $font_config{ $session{CurrentUser}->UserObj->Lang || '' }
- || $font_config{'others'};
-$chart->set_title_font( $font, 16 ) if $chart->can('set_title_font');
-$chart->set_legend_font( $font, 16 ) if $chart->can('set_legend_font');
-$chart->set_x_label_font( $font, 14 ) if $chart->can('set_x_label_font');
-$chart->set_y_label_font( $font, 14 ) if $chart->can('set_y_label_font');
-$chart->set_label_font( $font, 14 ) if $chart->can('set_label_font');
-$chart->set_x_axis_font( $font, 12 ) if $chart->can('set_x_axis_font');
-$chart->set_y_axis_font( $font, 12 ) if $chart->can('set_y_axis_font');
-$chart->set_values_font( $font, 12 ) if $chart->can('set_values_font');
-$chart->set_value_font( $font, 12 ) if $chart->can('set_value_font');
-
-# Pie charts don't like having no input, so we show a special image
-# that indicates an error message. Because this is used in an <img>
-# context, it can't be a simple error message. Without this check,
-# the chart will just be a non-loading image.
-if ($tix->Count == 0) {
- my $plot = GD::Image->new(600 => 400);
- $plot->colorAllocate(255, 255, 255); # background
- my $black = $plot->colorAllocate(0, 0, 0);
-
- require GD::Text::Wrap;
- my $error = GD::Text::Wrap->new($plot,
- color => $black,
- text => loc("No tickets found."),
- );
- $error->set_font( $font, 16 );
- $error->draw(0, 0);
-
- $m->comp( 'SELF:Plot', plot => $plot, %ARGS );
-}
-
-if ($chart_class eq "GD::Graph::bars") {
- $chart->set(
- x_label => $tix->Label( $PrimaryGroupBy ),
- y_label => loc('Tickets'),
- show_values => 1,
- bar_spacing => 5,
- bargroup_spacing => 10,
- x_label_position => 0.6,
- y_label_position => 0.6,
- values_space => -1,
-# the following line to make sure there's enough space for values to show
- y_max_value => 5*(int($max_value/5) + 2),
-# if there're too many bars or at least one key is too long, use vertical
- x_labels_vertical => ( keys(%data) * $max_key_length > 60 ) ? 1 : 0,
- );
-}
-
-# refine values' colors, with both Color::Scheme's help and my own tweak
-$chart->{dclrs} = [
- '66cc66', 'ff6666', 'ffcc66', '663399',
- '3333cc',
- '339933', '993333', '996633', '663399',
- '33cc33', 'cc3333', 'cc9933', '6633cc'
-];
-
-{
- no warnings 'redefine';
- *GD::Graph::pick_data_clr = sub {
- my $self = shift;
- my $color_hex = $self->{dclrs}[ $_[0] % @{ $self->{dclrs} } - 1 ];
- return map { hex } ( $color_hex =~ /(..)(..)(..)/ );
- };
-}
-
-my $plot = $chart->plot( [ [sort keys %data], [map $data{$_}, sort keys %data] ] ) or die $chart->error;
-$m->comp( 'SELF:Plot', plot => $plot, %ARGS );
-</%init>
-
-<%METHOD Plot>
-<%ARGS>
-$plot => undef
-</%ARGS>
-<%INIT>
-my @types = ('png', 'gif');
-for my $type (@types) {
- $plot->can($type)
- or next;
-
- $r->content_type("image/$type");
- $m->out( $plot->$type );
- $m->abort();
-}
-
-die "Your GD library appears to support none of the following image types: " . join(', ', @types);
-</%INIT>
-
-</%METHOD>
diff --git a/rt/share/html/Search/Chart.html b/rt/share/html/Search/Chart.html
deleted file mode 100644
index fb9f45c..0000000
--- a/rt/share/html/Search/Chart.html
+++ /dev/null
@@ -1,98 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$PrimaryGroupBy => 'Queue'
-$SecondaryGroupBy => ''
-$ChartStyle => 'bars'
-$Description => undef
-</%args>
-<%init>
-$ARGS{SecondaryGroupBy} ||= '';
-$ARGS{Query} ||= 'id > 0';
-
-# FIXME: should be factored with RT::Report::Tickets::Label :(
-my $PrimaryGroupByLabel;
-if ( $PrimaryGroupBy =~ /^(?:CF|CustomField)\.{(.*)}$/ ) {
- my $cf = $1;
- if ( $cf =~ /\D/ ) {
- $PrimaryGroupByLabel = loc( "custom field '[_1]'", $cf );
- } else {
- my $obj = RT::CustomField->new( $session{'CurrentUser'} );
- $obj->Load( $cf );
- $PrimaryGroupByLabel = loc( "custom field '[_1]'", $obj->Name );
- }
-} else {
- $PrimaryGroupByLabel = loc( $PrimaryGroupBy );
-}
-
-my $title = loc( "Search results grouped by [_1]", $PrimaryGroupByLabel );
-
-my $saved_search = $m->comp( '/Widgets/SavedSearch:new',
- SearchType => 'Chart',
- SearchFields => [qw(Query PrimaryGroupBy SecondaryGroupBy ChartStyle)] );
-
-my @actions = $m->comp( '/Widgets/SavedSearch:process', args => \%ARGS, self => $saved_search );
-
-</%init>
-<& /Elements/Header, Title => $title &>
-<& /Ticket/Elements/Tabs, Title => $title, Query => $ARGS{Query},
- SavedChartSearchId => $saved_search->{SearchId} &>
-<& /Elements/ListActions, actions => \@actions &>
-<& /Search/Elements/Chart, %ARGS &>
-
-<br />
-<&| /Widgets/TitleBox, title => loc('Graph Properties')&>
-<form method="get" action="<%RT->Config->Get('WebPath')%>/Search/Chart.html">
-<input type="hidden" class="hidden" name="Query" value="<% $ARGS{Query} %>" />
-<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $saved_search->{SearchId} || 'new' %>" />
-<&|/l, $m->scomp('Elements/SelectChartType', Name => 'ChartStyle', Default => $ChartStyle), $m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $ARGS{Query}, Default => $PrimaryGroupBy)
-&>[_1] chart by [_2]</&><input type="submit" class="button" value="<%loc('Update Graph')%>" />
-</form>
-</&>
-
-<& /Widgets/SavedSearch:show, %ARGS, Action => 'Chart.html', self => $saved_search, Title => loc('Saved charts') &>
diff --git a/rt/share/html/Search/Edit.html b/rt/share/html/Search/Edit.html
deleted file mode 100755
index e3e2da2..0000000
--- a/rt/share/html/Search/Edit.html
+++ /dev/null
@@ -1,99 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 => $title&>
-<& /Ticket/Elements/Tabs,
- current_tab => "Search/Edit.html?".$QueryString,
- Title => $title,
- Format => $Format,
- Query => $Query,
- Rows => $Rows,
- OrderBy => $OrderBy,
- Order => $Order,
- SavedSearchId => $SavedSearchId,
- SavedChartSearchId => $SavedChartSearchId,
-&>
-
-<& Elements/NewListActions, actions => \@actions &>
-
-<form method="post" action="Build.html">
-<input type="hidden" class="hidden" name="SavedSearchId" value="<% $SavedSearchId %>" />
-<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $SavedChartSearchId %>" />
-<&|/Widgets/TitleBox, title => loc('Query'), &>
-<textarea name="Query" rows="8" cols="72"><% $Query %></textarea>
-</&>
-<&|/Widgets/TitleBox, title => loc('Format'), &>
-<textarea name="Format" rows="8" cols="72"><% $Format %></textarea>
-</&>
-<& /Elements/Submit, Label => loc("Apply"), Reset => 1, Caption => loc("Apply your changes")&>
-</form>
-
-<%INIT>
-my $title = loc("Edit Query");
-$Format = $m->comp('/Elements/ScrubHTML', Content => $Format);
-my $QueryString = $m->comp('/Elements/QueryString',
- Query => $Query,
- Format => $Format,
- RowsPerPage => $Rows,
- OrderBy => $OrderBy,
- Order => $Order,
- );
-
-</%INIT>
-
-
-<%ARGS>
-$SavedSearchId => 'new'
-$SavedChartSearchId => 'new'
-$Query => ''
-$Format => ''
-$Rows => '50'
-$OrderBy => 'id'
-$Order => 'ASC'
-
-@actions => ()
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/BuildFormatString b/rt/share/html/Search/Elements/BuildFormatString
deleted file mode 100644
index 9935fdf..0000000
--- a/rt/share/html/Search/Elements/BuildFormatString
+++ /dev/null
@@ -1,254 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%ARGS>
-$Format => RT->Config->Get('DefaultSearchResultFormat')
-
-%cfqueues => ()
-
-$Face => undef
-$Size => undef
-$Link => undef
-$Title => undef
-
-$AddCol => undef
-$RemoveCol => undef
-$ColUp => undef
-$ColDown => undef
-
-$SelectDisplayColumns => undef
-$CurrentDisplayColumns => undef
-</%ARGS>
-<%init>
-# This can't be in a <once> block, because otherwise we return the
-# same \@fields every request, and keep tacking more CustomFields onto
-# it -- and it grows per request.
-
-# All the things we can display in the format string by default
-my @fields = qw(
- id QueueName Subject
-
- Customer
-
- Status ExtendedStatus UpdateStatus
- Type
-
- OwnerName Requestors Cc AdminCc CreatedBy LastUpdatedBy
-
- Priority InitialPriority FinalPriority
-
- TimeWorked TimeLeft TimeEstimated
-
- Starts StartsRelative
- Started StartedRelative
- Created CreatedRelative
- LastUpdated LastUpdatedRelative
- Told ToldRelative
- Due DueRelative
- Resolved ResolvedRelative
-
- RefersTo ReferredToBy
- DependsOn DependedOnBy
- MemberOf Members
- Parents Children
-
- Bookmark
-
- NEWLINE
-
-); # loc_qw
-
-$m->callback( CallbackOnce => 1, CallbackName => 'SetFieldsOnce', Fields => \@fields );
-
-my $CustomFields = RT::CustomFields->new( $session{'CurrentUser'});
-foreach my $id (keys %cfqueues) {
- # Gotta load up the $queue object, since queues get stored by name now. my $id
- my $queue = RT::Queue->new($session{'CurrentUser'});
- $queue->Load($id);
- unless ($queue->id) {
- # XXX TODO: This ancient code dates from a former developer
- # we have no idea what it means or why cfqueues are so encoded.
- $id =~ s/^.'*(.*).'*$/$1/;
- $queue->Load($id);
- }
- $CustomFields->LimitToQueue($queue->Id);
-}
-$CustomFields->LimitToGlobal;
-
-while ( my $CustomField = $CustomFields->Next ) {
- push @fields, "CustomField.{" . $CustomField->Name . "}";
-}
-
-$m->callback( Fields => \@fields, ARGSRef => \%ARGS );
-
-my ( @seen);
-
-$Format ||= RT->Config->Get('DefaultSearchResultFormat');
-my @format = split( /,\s*/, $Format );
-foreach my $field (@format) {
- my %column = ();
- $field =~ s/'(.*)'/$1/;
- my ( $prefix, $suffix );
- if ( $field =~ m/(.*)__(.*)__(.*)/ ) {
- $prefix = $1;
- $suffix = $3;
- $field = $2;
- }
- $field = "<blank>" if !$field;
- $column{Prefix} = $prefix;
- $column{Suffix} = $suffix;
- $field =~ s/\s*(.*)\s*/$1/;
- $column{Column} = $field;
- push @seen, \%column;
-}
-
-if ( $RemoveCol ) {
- # we do this regex match to avoid a non-numeric warning
- my ($index) = $CurrentDisplayColumns =~ /^(\d+)/;
- my $column = $seen[$index];
- if ($index) {
- delete $seen[$index];
- my @temp = @seen;
- @seen = ();
- foreach my $element (@temp) {
- next unless $element;
- push @seen, $element;
- }
- }
-}
-elsif ( $AddCol ) {
- if ( defined $SelectDisplayColumns ) {
- my $selected = $SelectDisplayColumns;
- my @columns;
- if (ref($selected) eq 'ARRAY') {
- @columns = @$selected;
- } else {
- push @columns, $selected;
- }
- foreach my $col (@columns) {
- my %column = ();
- $column{Column} = $col;
-
- if ( $Face eq "Bold" ) {
- $column{Prefix} .= "<b>";
- $column{Suffix} .= "</b>";
- }
- if ( $Face eq "Italic" ) {
- $column{Prefix} .= "<i>";
- $column{Suffix} .= "</i>";
- }
- if ($Size) {
- $column{Prefix} .= "<" . $m->interp->apply_escapes( $Size, 'h' ) . ">";
- $column{Suffix} .= "</" . $m->interp->apply_escapes( $Size, 'h' ) . ">";
- }
- if ( $Link eq "Display" ) {
- $column{Prefix} .= q{<a HREF="__WebPath__/Ticket/Display.html?id=__id__">};
- $column{Suffix} .= "</a>";
- }
- elsif ( $Link eq "Take" ) {
- $column{Prefix} .= q{<a HREF="__WebPath__/Ticket/Display.html?Action=Take&id=__id__">};
- $column{Suffix} .= "</a>";
- }
- elsif ( $Link eq "Respond" ) {
- $column{Prefix} .= q{<a HREF="__WebPath__/Ticket/Update.html?Action=Respond&id=__id__">};
- $column{Suffix} .= "</a>";
- }
- elsif ( $Link eq "Comment" ) {
- $column{Prefix} .= q{<a HREF="__WebPath__/Ticket/Update.html?Action=Comment&id=__id__">};
- $column{Suffix} .= "</a>";
- }
- elsif ( $Link eq "Resolve" ) {
- $column{Prefix} .= q{<a HREF="__WebPath__/Ticket/Update.html?Action=Comment&DefaultStatus=resolved&id=__id__">};
- $column{Suffix} .= "</a>";
- }
-
- if ($Title) {
- $column{Suffix} .= "/TITLE:" . $m->interp->apply_escapes( $Title, 'h' );
- }
- push @seen, \%column;
- }
- }
-}
-elsif ( $ColUp ) {
- my $index = $CurrentDisplayColumns;
- if ( defined $index && ( $index - 1 ) >= 0 ) {
- my $column = $seen[$index];
- $seen[$index] = $seen[ $index - 1 ];
- $seen[ $index - 1 ] = $column;
- $CurrentDisplayColumns = $index - 1;
- }
-}
-elsif ( $ColDown ) {
- my $index = $CurrentDisplayColumns;
- if ( defined $index && ( $index + 1 ) < scalar @seen ) {
- my $column = $seen[$index];
- $seen[$index] = $seen[ $index + 1 ];
- $seen[ $index + 1 ] = $column;
- $CurrentDisplayColumns = $index + 1;
- }
-}
-
-
-my @format_string;
-foreach my $field (@seen) {
- next unless $field;
- my $row = "'";
- $row .= $field->{'Prefix'} if defined $field->{'Prefix'};
- $row .= "__" . ($field->{'Column'} =~ m/\(/ ? $field->{'Column'} # func, don't escape
- : $m->interp->apply_escapes( $field->{'Column'}, 'h' )) . "__"
- unless ( $field->{'Column'} eq "<blank>" );
- $row .= $field->{'Suffix'} if defined $field->{'Suffix'};
- $row .= "'";
- push( @format_string, $row );
-}
-
-$Format = join(",\n", @format_string);
-
-
-return($Format, \@fields, \@seen);
-
-</%init>
diff --git a/rt/share/html/Search/Elements/Chart b/rt/share/html/Search/Elements/Chart
deleted file mode 100644
index bf4cd0c..0000000
--- a/rt/share/html/Search/Elements/Chart
+++ /dev/null
@@ -1,151 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$Query => "id > 0"
-$PrimaryGroupBy => 'Queue'
-$SecondaryGroupBy => undef
-$ChartStyle => 'bars'
-</%args>
-<%init>
-use RT::Report::Tickets;
-$PrimaryGroupBy ||= 'Queue'; # make sure PrimaryGroupBy is not undef
-
-my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} );
-my ($count_name, $value_name) = $tix->SetupGroupings(
- Query => $Query, GroupBy => $PrimaryGroupBy,
-);
-
-my %class = (
- Queue => 'RT::Queue',
- Owner => 'RT::User',
- Creator => 'RT::User',
- LastUpdatedBy => 'RT::User',
-);
-my $class = $class{ $PrimaryGroupBy };
-
-my (@keys, @values);
-while ( my $entry = $tix->Next ) {
- if ($class) {
- my $q = $class->new( $session{'CurrentUser'} );
- $q->Load( $entry->LabelValue( $value_name ) );
- push @keys, $q->Name;
- }
- else {
- push @keys, $entry->LabelValue( $value_name );
- }
- $keys[-1] ||= loc('(no value)');
- push @values, $entry->__Value( $count_name );
-}
-
-my %data;
-my %loc_keys;
-foreach my $key (@keys) { $data{$key} = shift @values; $loc_keys{$key} = loc($key); }
-my @sorted_keys = map { $loc_keys{$_}} sort { $loc_keys{$a} cmp $loc_keys{$b} } keys %loc_keys;
-my @sorted_values = map { $data{$_}} sort { $loc_keys{$a} cmp $loc_keys{$b} } keys %loc_keys;
-
-
-my $query_string = $m->comp('/Elements/QueryString', %ARGS);
-</%init>
-
-<% loc('Query:') %>&nbsp;<% $Query %><br />
-
-% if (RT->Config->Get('DisableGD')) {
-<% loc('Graphical charts are not available.') %><br />
-% } else {
-<img src="<%RT->Config->Get('WebPath')%>/Search/Chart?<%$query_string|n%>" /><br />
-% }
-
-<table class="collection-as-table">
-<tr>
-<th class="collection-as-table"><% loc($tix->Label($PrimaryGroupBy)) %>
-</th>
-<th class="collection-as-table"><&|/l&>Tickets</&>
-</th>
-</tr>
-% my ($i,$total);
-% while (my $key = shift @sorted_keys) {
-% $i++;
-% my $value = shift @sorted_values;
-% $total += $value;
-<tr class="<%$i%2 ? 'evenline' : 'oddline' %>">
-<td class="label collection-as-table">
-%# TODO sadly we don't have "creator.city is null" or alike support yet
-%# so no link if the key is undef for now
-% if ( $PrimaryGroupBy !~ /(Hourly|Daily|Monthly|Annually)$/
-% && $key ne loc('(no value)') ) {
-% my $group = $PrimaryGroupBy; $group =~ s! !.!;
-% my %orig_keys = reverse %loc_keys;
-% my $QueryString = $m->comp('/Elements/QueryString',
-% Query => "$Query and $group = '$orig_keys{$key}'",
-% Format => $ARGS{Format},
-% Rows => $ARGS{Rows},
-% OrderBy => $ARGS{OrderBy},
-% Order => $ARGS{Order},
-% );
-<a href=<% RT->Config->Get('WebURL') %>Search/Results.html?<%$QueryString%>><%$key%></a>
-% } else {
-<% $key %>
-% }
-</td>
-<td class="value collection-as-table">
-<%$value%>
-</td>
-</tr>
-% }
-
-%$i++;
-<tr class="<%$i%2 ? 'evenline' : 'oddline' %>">
-<td class="label collection-as-table">
-<%loc('Total')%>
-</td>
-<td class="value collection-as-table">
-<%$total||''%>
-</td>
-</tr>
-
-</table>
diff --git a/rt/share/html/Search/Elements/ConditionRow b/rt/share/html/Search/Elements/ConditionRow
deleted file mode 100644
index d45c662..0000000
--- a/rt/share/html/Search/Elements/ConditionRow
+++ /dev/null
@@ -1,97 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<tr>
-<td class="label"><% $handle_block->( $Condition->{'Field'}, $Condition->{'Name'} .'Field' ) |n %></td>
-<td class="operator"><% $handle_block->( $Condition->{'Op'}, $Condition->{'Name'} .'Op') |n %></td>
-<td class="value"><% $handle_block->( $Condition->{'Value'}, 'ValueOf'. $Condition->{'Name'} ) |n %></td>
-</tr>
-<%INIT>
-return unless $Condition && $Condition->{'Name'};
-
-$m->callback( Condition => \$Condition );
-return unless $Condition;
-
-my $handle_block;
-$handle_block = sub {
- my $box = shift;
- return $box unless ref $box;
-
- my $name = shift;
- if ( UNIVERSAL::isa($box, 'ARRAY') ) {
- my $res = '';
- $res .= $handle_block->( $_, $name ) foreach @$box;
- return $res;
- }
-
- return undef unless UNIVERSAL::isa($box, 'HASH');
- if ( $box->{'Type'} eq 'component' ) {
- $box->{'Arguments'} ||= {},
- return $m->scomp( $box->{'Path'}, %{ $box->{'Arguments'} }, Name => $name );
- }
- if ( $box->{'Type'} eq 'text' ) {
- my $default = $box->{'Default'} || '';
- my $size = $box->{'Size'}? qq{size="$box->{'Size'}"} : '';
- return qq{<input id="$name" name="$name" value="$default" $size />};
- }
- if ( $box->{'Type'} eq 'select' ) {
- my $res = '';
- $res .= qq{<select id="$name" name="$name">};
- my @options = @{ $box->{'Options'} };
- while( my $k = shift @options ) {
- my $v = shift @options;
- $res .= qq{<option value="$k">$v</option>};
- }
- $res .= qq{</select>};
- return $res;
- }
-};
-
-</%INIT>
-<%ARGS>
-$Condition => {}
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/DisplayOptions b/rt/share/html/Search/Elements/DisplayOptions
deleted file mode 100644
index 7464ae9..0000000
--- a/rt/share/html/Search/Elements/DisplayOptions
+++ /dev/null
@@ -1,136 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<&| /Widgets/TitleBox, title => loc("Sorting"), id => 'sorting' &>
-<table valign="top">
-
-% for my $o (0..3) {
-% $Order[$o] ||= ''; $OrderBy[$o] ||= '';
-<tr>
-<td class="label">
-% if ($o == 0) {
-<&|/l&>Order by</&>:
-% }
-</td>
-<td class="value">
-<select name="OrderBy">
-% if ($o > 0) {
-<option value=""><&|/l&>~[none~]</&></option>
-% }
-% foreach my $field (sort keys %fields) {
-% next unless $field;
-<option value="<%$field%>"
-% if (defined $OrderBy[$o] and $field eq $OrderBy[$o]) {
-selected="selected"
-% }
-><% loc($field) %></option>
-% }
-</select>
-<select name="Order">
-<option value="ASC"
-% unless ( ($Order[$o]||'') eq "DESC" ) {
-selected="selected"
-% }
-><&|/l&>Asc</&></option>
-<option value="DESC"
-% if ( ($Order[$o]||'') eq "DESC" ) {
-selected="selected"
-% }
-><&|/l&>Desc</&></option>
-</select>
-</td>
-</tr>
-% }
-<tr>
-<td class="label">
-<&|/l&>Rows per page</&>:
-</td><td class="value">
-<& /Elements/SelectResultsPerPage,
- Name => "RowsPerPage",
- Default => $RowsPerPage &>
-</td>
-</tr>
-</table>
-</&>
-<&| /Widgets/TitleBox, title => loc("Display Columns"), id => 'columns' &>
-<& EditFormat, %ARGS &>
-</&>
-
-<%INIT>
-my $tickets = new RT::Tickets($session{'CurrentUser'});
-my %fields = %{$tickets->FIELDS};
-map { $fields{$_}->[0] =~ /^(?:ENUM|INT|DATE|STRING|ID)$/ || delete $fields{$_} } keys %fields;
-delete $fields{'EffectiveId'};
-$fields{'Owner'} = 1;
-$fields{ $_ . '.EmailAddress' } = 1 foreach( qw(Requestor Cc AdminCc) );
-
-# Add all available CustomFields to the list of sortable columns.
-my @cfs = grep /^CustomField/, @{$ARGS{AvailableColumns}};
-$fields{$_}=1 for @cfs;
-
-# Add PAW sort
-$fields{'Custom.Ownership'} = 1;
-
-$fields{"Customer.$_"} = 1 foreach qw( Number Name ); #Freeside
-
-my @Order = split /\|/, $Order;
-my @OrderBy = split /\|/, $OrderBy;
-if ($Order =~ /\|/) {
- @Order = split /\|/, $Order;
-} else {
- @Order = ( $Order );
-}
-
-</%INIT>
-
-<%ARGS>
-$Order => undef
-$OrderBy => undef
-$RowsPerPage => undef
-$Format => undef
-$GroupBy => 'id'
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/EditFormat b/rt/share/html/Search/Elements/EditFormat
deleted file mode 100644
index 9dd6160..0000000
--- a/rt/share/html/Search/Elements/EditFormat
+++ /dev/null
@@ -1,113 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<table>
-
-<tr>
-<th><&|/l&>Add Columns</&>:</th>
-<th><&|/l&>Format</&>:</th>
-<th></th>
-<th><&|/l&>Show Columns</&>:</th>
-</tr>
-
-<tr>
-
-<td valign="top"><select size="6" name="SelectDisplayColumns" multiple="multiple">
-% my %seen;
-% foreach my $field ( grep !$seen{lc $_}++, @$AvailableColumns) {
-<option value="<% $field %>"><% loc($field) %></option>
-% }
-</select></td>
-
-<td><&|/l&>Link</&>:
-<select name="Link">
-<option value="None">-</option>
-<option value="Display"><&|/l&>Display</&></option>
-<option value="Take"><&|/l&>Take</&></option>
-<option value="Respond"><&|/l&>Respond</&></option>
-<option value="Comment"><&|/l&>Comment</&></option>
-<option value="Resolve"><&|/l&>Resolve</&></option>
-</select>
-<br /><&|/l&>Title</&>: <input name="Title" size="10" />
-<br /><&|/l&>Size</&>:
-<select name="Size">
-<option value="">-</option>
-<option value="Small"><&|/l&>Small</&></option>
-<option value="Large"><&|/l&>Large</&></option>
-</select>
-<br /><&|/l&>Style</&>:
-<select name="Face">
-<option value="">-</option>
-<option value="Bold"><&|/l&>Bold</&></option>
-<option value="Italic"><&|/l&>Italic</&></option>
-</select>
-</td>
-
-<td><input type="submit" class="button" name="AddCol" value=" &rarr; " /></td>
-
-<td valign="top">
-<select size="4" name="CurrentDisplayColumns">
-% my $i=0;
-% foreach my $field ( @$CurrentFormat ) {
-<option value="<% $i++ %>><% $field->{Column} %>"><% loc( $field->{Column} ) %></option>
-% }
-</select>
-<br />
-<center>
-<input type="submit" class="button" name="ColUp" value=" &uarr; " />
-<input type="submit" class="button" name="ColDown" value=" &darr; " />
-<input type="submit" class="button" name="RemoveCol" value="<%loc('Delete')%>" />
-</center>
-</td>
-
-</tr>
-</table>
-
-<%ARGS>
-$CurrentFormat => undef
-$AvailableColumns => undef
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/EditQuery b/rt/share/html/Search/Elements/EditQuery
deleted file mode 100644
index 9a10ddf..0000000
--- a/rt/share/html/Search/Elements/EditQuery
+++ /dev/null
@@ -1,243 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<& NewListActions, actions => $actions &>
-<&|/Widgets/TitleBox, title => join(': ', grep defined, loc("Current search"), $Description) &>
-
-<select size="10" name="clauses" style="width: 100%" multiple="multiple">
-% $m->out($optionlist);
-</select>
-
-<p align="center">
-<input type="submit" class="button" name="Up" value=" &uarr; " />
-<input type="submit" class="button" name="Down" value=" &darr; " />
-<input type="submit" class="button" name="Left" value=" &larr; " />
-<input type="submit" class="button" name="Right" value=" &rarr; " />
-<input type="submit" class="button" name="Toggle" value="<&|/l&>And/Or</&>" />
-<input type="submit" class="button" name="DeleteClause" value="<&|/l&>Delete</&>" />
-%#<input type="submit" class="button" name="EditQuery" value="Advanced" />
-</p>
-
-</&>
-<%ARGS>
-$Description => undef
-$optionlist => ''
-$actions => []
-</%ARGS>
-
-<%METHOD Process>
-<%ARGS>
-$Tree
-$Selected
-@New => ()
-</%ARGS>
-<%INIT>
-
-my @NewSelection = ();
-
-my @results;
-if ( $ARGS{'Up'} || $ARGS{'Down'} ) {
- if (@$Selected) {
- foreach my $value (@$Selected) {
- my $parent = $value->getParent;
- my $index = $value->getIndex;
- my $newindex = $index;
- $newindex++ if $ARGS{'Down'};
- $newindex-- if $ARGS{'Up'};
- if ( $newindex < 0 || $newindex >= $parent->getChildCount ) {
- push( @results, [ loc("error: can't move up"), -1 ] ) if $ARGS{'Up'};
- push( @results, [ loc("error: can't move down"), -1 ] ) if $ARGS{'Down'};
- next;
- }
-
- $parent->removeChild( $index );
- $parent->insertChild( $newindex, $value );
- }
- }
- else {
- push( @results, [ loc("error: nothing to move"), -1 ] );
- }
-}
-elsif ( $ARGS{"Left"} ) {
- if (@$Selected) {
- foreach my $value (@$Selected) {
- my $parent = $value->getParent;
- if( $value->isRoot || $parent->isRoot ) {
- push( @results, [ loc("error: can't move left"), -1 ] );
- next;
- }
-
- my $grandparent = $parent->getParent;
- if( $grandparent->isRoot ) {
- push( @results, [ loc("error: can't move left"), -1 ] );
- next;
- }
-
- my $index = $parent->getIndex;
- $parent->removeChild($value);
- $grandparent->insertChild( $index, $value );
- if ( $parent->isLeaf ) {
- $grandparent->removeChild($parent);
- }
- }
- }
- else {
- push( @results, [ loc("error: nothing to move"), -1 ] );
- }
-}
-elsif ( $ARGS{"Right"} ) {
- if (@$Selected) {
- foreach my $value (@$Selected) {
- my $parent = $value->getParent;
- my $index = $value->getIndex;
-
- my $newparent;
- if ( $index > 0 ) {
- my $sibling = $parent->getChild( $index - 1 );
- $newparent = $sibling unless $sibling->isLeaf;
- }
- $newparent ||= RT::Interface::Web::QueryBuilder::Tree->new( $ARGS{'AndOr'} || 'AND', $parent );
-
- $parent->removeChild($value);
- $newparent->addChild($value);
- }
- }
- else {
- push( @results, [ loc("error: nothing to move"), -1 ] );
- }
-}
-elsif ( $ARGS{"DeleteClause"} ) {
- if (@$Selected) {
- my (@top);
- my %Selected = map { $_ => 1 } @$Selected;
- foreach my $node ( @$Selected ) {
- my $tmp = $node->getParent;
- while ( !$Selected{ $tmp } && !$tmp->isRoot ) {
- $tmp = $tmp->getParent;
- }
- next if $Selected{ $tmp };
- push @top, $node;
- }
-
- my %seen;
- my @non_siblings_top = grep !$seen{ $_->getParent }++, @top;
-
- foreach ( @New ) {
- my $add = $_->clone;
- foreach my $selected( @non_siblings_top ) {
- my $newindex = $selected->getIndex + 1;
- $selected->insertSibling( $newindex, $add );
- }
- $add->getParent->setNodeValue( $ARGS{'AndOr'} );
- push @NewSelection, $add;
- }
- @New = ();
-
- while( my $node = shift @top ) {
- my $parent = $node->getParent;
- $parent->removeChild($node);
- $node->DESTROY;
- }
- @$Selected = ();
- }
- else {
- push( @results, [ loc("error: nothing to delete"), -1 ] );
- }
-}
-elsif ( $ARGS{"Toggle"} ) {
- if (@$Selected) {
- my %seen;
- my @unique_nodes = grep !$seen{ $_ + 0 }++,
- map ref $_->getNodeValue? $_->getParent: $_,
- @$Selected;
-
- foreach my $node ( @unique_nodes ) {
- if ( $node->getNodeValue eq 'AND' ) {
- $node->setNodeValue('OR');
- }
- else {
- $node->setNodeValue('AND');
- }
- }
- }
- else {
- push( @results, [ loc("error: nothing to toggle"), -1 ] );
- }
-}
-
-if ( @New && @$Selected ) {
- my %seen;
- my @non_siblings_selected = grep !$seen{ $_->getParent }++, @$Selected;
-
- foreach ( @New ) {
- my $add = $_->clone;
- foreach my $selected( @non_siblings_selected ) {
- my $newindex = $selected->getIndex + 1;
- $selected->insertSibling( $newindex, $add );
- }
- $add->getParent->setNodeValue( $ARGS{'AndOr'} );
- push @NewSelection, $add;
- }
- @$Selected = ();
-}
-elsif ( @New ) {
- foreach ( @New ) {
- my $add = $_->clone;
- $Tree->addChild( $add );
- push @NewSelection, $add;
- }
- $Tree->setNodeValue( $ARGS{'AndOr'} );
-}
-$_->DESTROY foreach @New;
-
-push @$Selected, @NewSelection;
-
-$Tree->PruneChildlessAggregators;
-
-return @results;
-</%INIT>
-</%METHOD>
diff --git a/rt/share/html/Search/Elements/EditSearches b/rt/share/html/Search/Elements/EditSearches
deleted file mode 100644
index 62871fd..0000000
--- a/rt/share/html/Search/Elements/EditSearches
+++ /dev/null
@@ -1,296 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<&| /Widgets/TitleBox, title => loc($Title)&>
-
-%# Hide all the save functionality if the user shouldn't see it.
-% if ( $can_modify ) {
-<&|/l&>Privacy:</&>
-<& SelectSearchObject, Name => 'SavedSearchOwner', Objects => \@Objects, Object => ( $Object && $Object->id ) ? $Object->Object : '' &>
-<br />
-<&|/l&>Description</&>:
-<input size="25" name="SavedSearchDescription" value="<% $Description || '' %>" />
-
-% if ($Id ne 'new') {
-<nobr>
-% if ( $Dirty ) {
-<input type="submit" class="button" name="SavedSearchRevert" value="<%loc('Revert')%>" />
-% }
-<input type="submit" class="button" name="SavedSearchDelete" value="<%loc('Delete')%>" />
-% if ( $AllowCopy ) {
-<input type="submit" class="button" name="SavedSearchCopy" value="<%loc('Save as New')%>" />
-% }
-</nobr>
-% }
-% if ( $Object && $Object->Id ) {
-<input type="submit" class="button" name="SavedSearchSave" value="<%loc('Update')%>" />
-% } else {
-<input type="submit" class="button" name="SavedSearchSave" value="<%loc('Save')%>" />
-%}
-% }
-<br />
-<hr />
-<&|/l&>Load saved search:</&>
-<& SelectSearchesForObjects, Name => 'SavedSearchLoad', Objects => \@Objects, SearchType => $Type &>
-<input type="submit" value="<% loc('Load') %>" class="button" />
-
-</&>
-
-<%INIT>
-return unless $session{'CurrentUser'}->HasRight(
- Right => 'LoadSavedSearch',
- Object => $RT::System,
-);
-
-my $can_modify = $session{'CurrentUser'}->HasRight(
- Right => 'CreateSavedSearch',
- Object => $RT::System,
-);
-
-use RT::SavedSearches;
-my @Objects = RT::SavedSearches->new($session{CurrentUser})->_PrivacyObjects;
-push @Objects, RT::System->new( $session{'CurrentUser'} )
- if $session{'CurrentUser'}->HasRight( Object=> $RT::System,
- Right => 'SuperUser' );
-
-my $is_dirty = sub {
- my %arg = (
- Query => {},
- SavedSearch => {},
- SearchFields => [qw(Query Format OrderBy Order RowsPerPage)],
- @_
- );
-
- my $obj = $arg{'SavedSearch'}->{'Object'};
- return 0 unless $obj && $obj->id;
-
- foreach( @{ $arg{'SearchFields'} } ) {
- return 1 if $obj->SubValue( $_ ) ne $arg{'Query'}->{$_};
- }
-
- return 0;
-};
-
-# If we're modifying an old query, check if it's been changed
-my $Dirty = $is_dirty->(
- Query => $CurrentSearch,
- SavedSearch => { Id => $Id, Object => $Object, Description => $Description },
- SearchFields => \@SearchFields,
-);
-
-</%INIT>
-
-<%ARGS>
-$Id => 'new'
-$Object => undef
-$Type => 'Ticket'
-$Description => ''
-$CurrentSearch => {}
-@SearchFields => ()
-$AllowCopy => 1
-$Title => loc('Saved searches')
-</%ARGS>
-
-<%METHOD Init>
-<%ARGS>
-$Query => {}
-$SavedSearch => {}
-@SearchFields => qw(Query Format OrderBy Order RowsPerPage)
-</%ARGS>
-<%INIT>
-
-$SavedSearch->{'Id'} = ( $ARGS{Type} && $ARGS{Type} eq 'Chart' ?
-$ARGS{'SavedChartSearchId'} : $ARGS{'SavedSearchId'} ) || 'new';
-$SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'} || undef;
-$SavedSearch->{'Privacy'} = $ARGS{'SavedSearchOwner'} || undef;
-
-my @results;
-
-if ( $ARGS{'SavedSearchRevert'} ) {
- $ARGS{'SavedSearchLoad'} = $SavedSearch->{'Id'};
-}
-
-if ( $ARGS{'SavedSearchLoad'} ) {
- my ($container, $id ) = _parse_saved_search ($ARGS{'SavedSearchLoad'});
- if ( $container ) {
- my $search = $container->Attributes->WithId( $id );
- $SavedSearch->{'Id'} = $ARGS{'SavedSearchLoad'};
- $SavedSearch->{'Object'} = $search;
- $SavedSearch->{'Description'} = $search->Description;
- $Query->{$_} = $search->SubValue($_) foreach @SearchFields;
-
- if ( $ARGS{'SavedSearchRevert'} ) {
- push @results, loc('Loaded original "[_1]" saved search', $SavedSearch->{'Description'} );
- } else {
- push @results, loc('Loaded saved search "[_1]"', $SavedSearch->{'Description'} );
- }
- }
- else {
- push @results, loc( 'Can not load saved search "[_1]"',
- $ARGS{'SavedSearchLoad'} );
- return @results;
- }
-}
-elsif ( $ARGS{'SavedSearchDelete'} ) {
- # We set $SearchId to 'new' above already, so peek into the %ARGS
- my ($container, $id) = _parse_saved_search( $SavedSearch->{'Id'} );
- if ( $container && $container->id ) {
- # We have the object the entry is an attribute on; delete the entry...
- $container->Attributes->DeleteEntry( Name => 'SavedSearch', id => $id );
- }
- $SavedSearch->{'Id'} = 'new';
- $SavedSearch->{'Object'} = undef;
- $SavedSearch->{'Description'} = undef;
- push @results, loc("Deleted saved search");
-}
-elsif ( $ARGS{'SavedSearchCopy'} ) {
- my ($container, $id ) = _parse_saved_search( $ARGS{'SavedSearchId'} );
- $SavedSearch->{'Object'} = $container->Attributes->WithId( $id );
- if ( $ARGS{'SavedSearchDescription'} && $ARGS{'SavedSearchDescription'} ne $SavedSearch->{'Object'}->Description ) {
- $SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'};
- } else {
- $SavedSearch->{'Description'} = loc( "[_1] copy", $SavedSearch->{'Object'}->Description );
- }
- $SavedSearch->{'Id'} = 'new';
- $SavedSearch->{'Object'} = undef;
-}
-
-if ( $SavedSearch->{'Id'} && $SavedSearch->{'Id'} ne 'new'
- && !$SavedSearch->{'Object'} )
-{
- my ($container, $id ) = _parse_saved_search( $ARGS{'SavedSearchId'} );
- $SavedSearch->{'Object'} = $container->Attributes->WithId( $id );
- $SavedSearch->{'Description'} ||= $SavedSearch->{'Object'}->Description;
-}
-
-return @results;
-
-</%INIT>
-</%METHOD>
-
-<%METHOD Save>
-<%ARGS>
-$Query => {}
-$SavedSearch => {}
-@SearchFields => qw(Query Format OrderBy Order RowsPerPage)
-</%ARGS>
-<%INIT>
-
-return unless $ARGS{'SavedSearchSave'} || $ARGS{'SavedSearchCopy'};
-
-my @results;
-my $obj = $SavedSearch->{'Object'};
-my $id = $SavedSearch->{'Id'};
-my $desc = $SavedSearch->{'Description'};
-my $privacy = $SavedSearch->{'Privacy'};
-
-my %params = map { $_ => $Query->{$_} } @SearchFields;
-my ($new_obj_type, $new_obj_id) = split(/\-/, ($privacy || ''));
-
-if ( $obj && $obj->id ) {
- # permission check
- if ($obj->Object->isa('RT::System')) {
- unless ($session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser')) {
- push @results, loc("No permission to save system-wide searches");
- return @results;
- }
- }
-
- $obj->SetSubValues( %params );
- $obj->SetDescription( $desc );
-
- my $obj_type = ref($obj->Object);
- # We need to get current obj_id now, because when we change obj_type to
- # RT::System, $obj->Object->Id returns 1, not the old one :(
- my $obj_id = $obj->Object->Id;
-
- if ( $new_obj_type && $new_obj_id ) {
- my ($val, $msg);
- if ( $new_obj_type ne $obj_type ) {
- ($val, $msg ) = $obj->SetObjectType($new_obj_type);
- push @results, loc ('Unable to set privacy object: [_1]', $msg) unless ( $val );
- }
- if ( $new_obj_id != $obj_id ) {
- ($val, $msg) = $obj->SetObjectId($new_obj_id);
- push @results, loc ('Unable to set privacy id: [_1]', $msg) unless ( $val );
- }
- } else {
- push @results, loc('Unable to determine object type or id');
- }
- push @results, loc('Updated saved search "[_1]"', $desc);
-}
-elsif ( $id eq 'new' ) {
- my $saved_search = RT::SavedSearch->new( $session{'CurrentUser'} );
- my ($status, $msg) = $saved_search->Save(
- Privacy => $privacy,
- Name => $desc,
- Type => $SavedSearch->{'Type'},
- SearchParams => \%params,
- );
-
- if ( $status ) {
- $SavedSearch->{'Object'} =
- $session{'CurrentUser'}->UserObj->Attributes->WithId( $saved_search->Id );
- # Build new SearchId
- $SavedSearch->{'Id'} =
- ref( $session{'CurrentUser'}->UserObj ) . '-'
- . $session{'CurrentUser'}->UserObj->Id
- . '-SavedSearch-'
- . $SavedSearch->{'Object'}->Id;
- }
- else {
- push @results, loc("Can't find a saved search to work with").': '.loc($msg);
- }
-}
-else {
- push @results, loc("Can't save this search");
-}
-
-return @results;
-
-</%INIT>
-</%METHOD>
diff --git a/rt/share/html/Search/Elements/Graph b/rt/share/html/Search/Elements/Graph
deleted file mode 100644
index 620cbc5..0000000
--- a/rt/share/html/Search/Elements/Graph
+++ /dev/null
@@ -1,50 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%INIT>
-return $m->comp('/Ticket/Graphs/Elements/ShowGraph', %ARGS);
-</%INIT>
diff --git a/rt/share/html/Search/Elements/NewListActions b/rt/share/html/Search/Elements/NewListActions
deleted file mode 100644
index 8e2cbab..0000000
--- a/rt/share/html/Search/Elements/NewListActions
+++ /dev/null
@@ -1,66 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<b><%loc('Results')%></b><br />
-% foreach my $action (@actions) {
-% my @item = @$action;
-% if ($item[1] < 0) {
-<font color="red">
-% }
-&nbsp;<%$item[0]%><br />
-% if ($item[1] < 0) {
-</font>
-% }
-% }
-<br />
-<%init>
-@actions = map ref $_? $_: [$_, 0], grep defined && length, @actions;
-return unless @actions;
-</%init>
-<%ARGS>
-@actions => undef
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/PickBasics b/rt/share/html/Search/Elements/PickBasics
deleted file mode 100644
index 7e4bc73..0000000
--- a/rt/share/html/Search/Elements/PickBasics
+++ /dev/null
@@ -1,214 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-% foreach( @lines ) {
-<& ConditionRow, Condition => $_ &>
-% }
-<%INIT>
-
-my @lines = (
- {
- Name => 'id',
- Field => loc('id'),
- Op => {
- Type => 'component',
- Path => '/Elements/SelectEqualityOperator',
- },
- Value => { Type => 'text', Size => 5 }
- },
- {
- Name => 'Attachment',
- Field => {
- Type => 'component',
- Path => '/Elements/SelectAttachmentField',
- },
- Op => {
- Type => 'component',
- Path => '/Elements/SelectBoolean',
- Arguments => {
- True => loc("matches"),
- False => loc("doesn't match"),
- TrueVal => 'LIKE',
- FalseVal => 'NOT LIKE',
- },
- },
- Value => { Type => 'text', Size => 20 },
- },
- {
- Name => 'Queue',
- Field => loc('Queue'),
- Op => {
- Type => 'component',
- Path => '/Elements/SelectBoolean',
- Arguments => { TrueVal=> '=', FalseVal => '!=' },
- },
- Value => {
- Type => 'component',
- Path => '/Elements/SelectQueue',
- Arguments => { NamedValues => 1, CheckQueueRight => 'ShowTicket' },
- },
- },
- {
- Name => 'Status',
- Field => loc('Status'),
- Op => {
- Type => 'component',
- Path => '/Elements/SelectBoolean',
- Arguments => { TrueVal=> '=', FalseVal => '!=' },
- },
- Value => {
- Type => 'component',
- Path => '/Elements/SelectStatus',
- Arguments => { SkipDeleted => 1 },
- },
- },
- {
- Name => 'Actor',
- Field => {
- Type => 'select',
- Options => [
- Owner => loc('Owner'),
- Creator => loc('Creator'),
- LastUpdatedBy => loc('Last updated by'),
- ],
- },
- Op => {
- Type => 'component',
- Path => '/Elements/SelectBoolean',
- Arguments => { TrueVal=> '=', FalseVal => '!=' },
- },
- Value => {
- Type => 'component',
- Path => '/Elements/SelectOwner',
- Arguments => { ValueAttribute => 'Name' },
- },
- },
- {
- Name => 'Watcher',
- Field => {
- Type => 'component',
- Path => 'SelectPersonType',
- Arguments => { Default => 'Requestor' },
- },
- Op => {
- Type => 'component',
- Path => '/Elements/SelectMatch',
- },
- Value => { Type => 'text', Size => 20 }
- },
- {
- Name => 'Date',
- Field => {
- Type => 'component',
- Path => '/Elements/SelectDateType',
- },
- Op => {
- Type => 'component',
- Path => '/Elements/SelectDateRelation',
- },
- Value => {
- Type => 'component',
- Path => '/Elements/SelectDate',
- Arguments => { ShowTime => 0, Default => '' },
- },
- },
- {
- Name => 'Time',
- Field => {
- Type => 'select',
- Options => [
- TimeWorked => loc('Time Worked'),
- TimeEstimated => loc('Time Estimated'),
- TimeLeft => loc('Time Left'),
- ],
- },
- Op => {
- Type => 'component',
- Path => '/Elements/SelectEqualityOperator',
- },
- Value => [
- { Type => 'text', Size => 5 },
- {
- Type => 'component',
- Path => '/Elements/SelectTimeUnits',
- },
- ],
- },
- {
- Name => 'Priority',
- Field => {
- Type => 'select',
- Options => [
- Priority => loc('Priority'),
- InitialPriority => loc('Initial Priority'),
- FinalPriority => loc('Final Priority'),
- ],
- },
- Op => {
- Type => 'component',
- Path => '/Elements/SelectEqualityOperator',
- },
- Value => {
- Type => 'component',
- Path => '/Elements/SelectPriority',
- },
- },
- {
- Name => 'Links',
- Field => { Type => 'component', Path => 'SelectLinks' },
- Op => {
- Type => 'component',
- Path => '/Elements/SelectBoolean',
- Arguments => { TrueVal=> '=', FalseVal => '!=' },
- },
- Value => { Type => 'text', Size => 5 }
- },
-);
-
-$m->callback( Conditions => \@lines );
-
-</%INIT>
diff --git a/rt/share/html/Search/Elements/PickCFs b/rt/share/html/Search/Elements/PickCFs
deleted file mode 100644
index beda9f7..0000000
--- a/rt/share/html/Search/Elements/PickCFs
+++ /dev/null
@@ -1,125 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-% foreach( @lines ) {
-<& ConditionRow, Condition => $_ &>
-% }
-<%INIT>
-my $CustomFields = RT::CustomFields->new( $session{'CurrentUser'});
-foreach my $id (keys %cfqueues) {
- # Gotta load up the $queue object, since queues get stored by name now. my $id
- my $queue = RT::Queue->new($session{'CurrentUser'});
- $queue->Load($id);
- unless ($queue->id) {
- # XXX TODO: This ancient code dates from a former developer
- # we have no idea what it means or why cfqueues are so encoded.
- $id =~ s/^.'*(.*).'*$/$1/;
-
- # unescape internal quotes
- $id =~ s/(\\(.))/$2 eq "'" ? "'" : $1/eg;
-
- $queue->Load($id);
- }
- $CustomFields->LimitToQueue($queue->Id);
-}
-$CustomFields->LimitToGlobal;
-$m->callback(
- CallbackName => 'MassageCustomFields',
- CustomFields => $CustomFields,
-);
-
-
-my @lines;
-while ( my $CustomField = $CustomFields->Next ) {
- my %line;
- $line{'Name'} = "'CF.{" . $CustomField->Name . "}'";
- $line{'Field'} = $CustomField->Name;
-
- # Op
- if ($CustomField->Type eq 'Date') {
- $line{'Op'} = {
- Type => 'component',
- Path => '/Elements/SelectDateRelation',
- Arguments => {},
- };
- } else {
- $line{'Op'} = {
- Type => 'component',
- Path => '/Elements/SelectCustomFieldOperator',
- Arguments => { True => loc("is"),
- False => loc("isn't"),
- TrueVal=> '=',
- FalseVal => '!=',
- },
- };
- }
-
- # Value
- if ($CustomField->Type eq 'Date') {
- $line{'Value'} = {
- Type => 'component',
- Path => '/Elements/SelectDate',
- Arguments => {},
- };
- } else {
- $line{'Value'} = {
- Type => 'component',
- Path => '/Elements/SelectCustomFieldValue',
- Arguments => { CustomField => $CustomField },
- };
- }
-
- push @lines, \%line;
-}
-
-$m->callback( Conditions => \@lines, Queues => \%cfqueues );
-
-</%INIT>
-
-<%ARGS>
-%cfqueues => undef
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/PickCriteria b/rt/share/html/Search/Elements/PickCriteria
deleted file mode 100644
index b024775..0000000
--- a/rt/share/html/Search/Elements/PickCriteria
+++ /dev/null
@@ -1,72 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<&| /Widgets/TitleBox, title => loc('Add Criteria')&>
-
-<table width="100%" cellspacing="0" cellpadding="0" border="0">
-
-
-
-<& PickBasics &>
-<& PickCFs, cfqueues => \%cfqueues &>
-
-<tr class="separator"><td colspan="3"><hr /></td></tr>
-<tr>
-<td class="label"><&|/l&>Aggregator</&></td>
-<td class="operator" colspan="2"><& SelectAndOr, Name => "AndOr" &></td>
-
-</tr>
-
-</table>
-
-</&>
-
-<%ARGS>
-$addquery => 0
-$query => undef
-%cfqueues => undef
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/ResultViews b/rt/share/html/Search/Elements/ResultViews
deleted file mode 100644
index b438b56..0000000
--- a/rt/share/html/Search/Elements/ResultViews
+++ /dev/null
@@ -1,80 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$QueryString => undef
-$Query => undef
-$Format => undef
-$Rows => undef
-$OrderBy => undef
-$Order => undef
-$RSSFeedURL => undef
-$ShortQueryString => undef
-
-</%args>
-<ul class="search-result-views">
-<li><a href="<%RT->Config->Get('WebPath')%>/Search/Results.tsv<%$QueryString%>"><&|/l&>Spreadsheet</&></a></li>
-<li><a href="<%$RSSFeedURL%>"><&|/l&>RSS</&></a></li>
-<li><a href="<%RT->Config->Get('WebURL')%>/NoAuth/iCal/<% $ical_path %>"><% loc('iCal') %></a></li>
-<li><a href="<%RT->Config->Get('WebPath')%>/Tools/Offline.html<%$ShortQueryString%>"><&|/l&>Editable text</&></a></li>
-% # Now let callbacks add their extra tools
-% $m->callback( %ARGS, CallbackName => 'AfterTools' );
-</ul>
-<form method="get" action="<%RT->Config->Get('WebPath')%>/Search/Chart.html">
-% my %hiddens = (Query => $Query, Format => $Format, Rows => $Rows, OrderBy => $OrderBy, Order => $Order);
-% foreach my $key (keys(%hiddens)) {
-<input type="hidden" class="hidden" name="<%$key%>" value="<%defined($hiddens{$key})?$hiddens{$key}:''%>" />
-% }
-<&|/l, $m->scomp('SelectChartType', Name => 'ChartStyle'), $m->scomp('SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)
-&>[_1] chart by [_2]</&><input type="submit" class="button" value="<%loc('Go')%>" />
-</form>
-<%init>
-my $ical_path = join '/', map $m->interp->apply_escapes($_, 'u'),
- $session{'CurrentUser'}->UserObj->Name,
- $session{'CurrentUser'}->UserObj->GenerateAuthString( $Query ),
- $Query;
-</%init>
diff --git a/rt/share/html/Search/Elements/ResultsRSSView b/rt/share/html/Search/Elements/ResultsRSSView
deleted file mode 100644
index f335411..0000000
--- a/rt/share/html/Search/Elements/ResultsRSSView
+++ /dev/null
@@ -1,143 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%INIT>
-use Encode ();
-
-my $old_current_user;
-
-if ( $m->request_comp->path =~ RT->Config->Get('WebNoAuthRegex') ) {
- my $path = $m->dhandler_arg;
-
- my $notfound = sub {
- my $mesg = shift;
- $r->headers_out->{'Status'} = '404 Not Found';
- $RT::Logger->info("Error encountered in rss generation: $mesg");
- $m->clear_and_abort;
- };
-
- $notfound->("Invalid path: $path") unless $path =~ m!^([^/]+)/([^/]+)/?!;
-
- my ( $name, $auth ) = ( $1, $2 );
-
- # Unescape parts
- $name =~ s/\%([0-9a-z]{2})/chr(hex($1))/gei;
-
- # convert to perl strings
- $name = Encode::decode_utf8($name);
-
- my $user = RT::User->new($RT::SystemUser);
- $user->Load($name);
- $notfound->("Invalid user: $user") unless $user->id;
-
- $notfound->("Invalid authstring")
- unless $user->ValidateAuthString( $auth,
- $ARGS{Query} . $ARGS{Order} . $ARGS{OrderBy} );
-
- $old_current_user = $session{'CurrentUser'};
- my $cu = RT::CurrentUser->new;
- $cu->Load($user);
- $session{'CurrentUser'} = $cu;
-}
-
-my $Tickets = RT::Tickets->new($session{'CurrentUser'});
-$Tickets->FromSQL($ARGS{'Query'});
-if ($OrderBy =~ /\|/) {
- # Multiple Sorts
- my @OrderBy = split /\|/,$OrderBy;
- my @Order = split /\|/,$Order;
- $Tickets->OrderByCols(
- map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0
- .. $#OrderBy ) );;
-} else {
- $Tickets->OrderBy(FIELD => $OrderBy, ORDER => $Order);
-}
-$r->content_type('application/rss+xml');
-
-
-
- # create an RSS 1.0 file (http://purl.org/rss/1.0/)
- use XML::RSS;
- my $rss = new XML::RSS (version => '1.0');
- $rss->channel(
- title => RT->Config->Get('rtname').": Search " . $ARGS{'Query'},
- link => RT->Config->Get('WebURL'),
- description => "",
- dc => {
- },
- generator => "RT v" . $RT::VERSION,
- syn => {
- updatePeriod => "hourly",
- updateFrequency => "1",
- updateBase => "1901-01-01T00:00+00:00",
- },
- );
-
-
- while ( my $Ticket = $Tickets->Next()) {
- my $creator_str = $m->scomp('/Elements/ShowUser', User => $Ticket->CreatorObj);
- $creator_str =~ s/[\r\n]//g;
- $rss->add_item(
- title => $Ticket->Subject || loc('No Subject'),
- link => RT->Config->Get('WebURL')."Ticket/Display.html?id=".$Ticket->id,
- description => $Ticket->Transactions->First->Content,
- dc => { creator => $creator_str,
- date => $Ticket->CreatedObj->RFC2822,
- },
- guid => $Ticket->Queue . '_' . $Ticket->id,
- );
- }
-
-$m->out($rss->as_string);
-$session{'CurrentUser'} = $old_current_user if $old_current_user;
-$m->abort();
-</%INIT>
-<%ARGS>
-$OrderBy => 'Created'
-$Order => 'ASC'
-</%ARGS>
-
diff --git a/rt/share/html/Search/Elements/SearchPrivacy b/rt/share/html/Search/Elements/SearchPrivacy
deleted file mode 100644
index a3640fb..0000000
--- a/rt/share/html/Search/Elements/SearchPrivacy
+++ /dev/null
@@ -1,55 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$Object => undef
-</%args>
-% if (ref($Object) eq 'RT::User' && $Object->id == $session{'CurrentUser'}->Id) {
-<&|/l&>My saved searches</&>
-% } else {
-<&|/l, $Object->Name&>[_1]'s saved searches</&>
-% }
diff --git a/rt/share/html/Search/Elements/SearchesForObject b/rt/share/html/Search/Elements/SearchesForObject
deleted file mode 100644
index 8534f8d..0000000
--- a/rt/share/html/Search/Elements/SearchesForObject
+++ /dev/null
@@ -1,65 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$Object => undef
-</%args>
-<%init>
-# Returns an array of search objects associated on $Object,
-# in the form of [Description, searchObj]
-my @result;
-while (my $search = $Object->Attributes->Next) {
- my $desc;
- if ($search->Name eq 'SavedSearch') {
- push @result, [$search->Description, $search];
- }
- elsif ($search->Name =~ m/^Search - (.*)/) {
- push @result, [$1, $search];
- }
-}
-return @result;
-</%init>
diff --git a/rt/share/html/Search/Elements/SelectAndOr b/rt/share/html/Search/Elements/SelectAndOr
deleted file mode 100644
index 52685ba..0000000
--- a/rt/share/html/Search/Elements/SelectAndOr
+++ /dev/null
@@ -1,53 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<input type="radio" class="radio" name="<%$Name%>" checked="checked" value="AND" /><&|/l&>AND</&>
-<input type="radio" class="radio" name="<%$Name%>" value="OR" /><&|/l&>OR</&>
-
-<%ARGS>
-$Name => "Operator"
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/SelectChartType b/rt/share/html/Search/Elements/SelectChartType
deleted file mode 100644
index fcb7234..0000000
--- a/rt/share/html/Search/Elements/SelectChartType
+++ /dev/null
@@ -1,58 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$Name => 'ChartType'
-$Default => 'bar'
-</%args>
-<select id="<%$Name%>" name="<%$Name%>">
-% foreach my $option qw(bar pie) {
-% # 'bar' # loc
-% # 'pie' # loc
-<option value="<%$option%>"<% $option eq $Default ? qq[ selected="selected"] : '' |n %>><%loc($option)%></option>
-% }
-</select>
diff --git a/rt/share/html/Search/Elements/SelectGroup b/rt/share/html/Search/Elements/SelectGroup
deleted file mode 100644
index f6583b1..0000000
--- a/rt/share/html/Search/Elements/SelectGroup
+++ /dev/null
@@ -1,67 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<select id="<%$Name%>" name="<%$Name%>">
-% if ($AllowNull) {
-<option value="">-</option>
-% }
-%while (my $group = $groups->Next) {
-<option value="<%$group->id%>"<%$group->id eq $Default && qq[ selected="selected"] |n %>><%$group->Name%></option>
-%}
-</select>
-
-<%INIT>
-my $groups = new RT::Groups($session{'CurrentUser'});
-$groups->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => $Domain);
-
-</%INIT>
-<%ARGS>
-$AllowNull => 1
-$Default=> ''
-$Name => 'Group'
-$Domain => 'UserDefined';
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/SelectGroupBy b/rt/share/html/Search/Elements/SelectGroupBy
deleted file mode 100644
index 2a1b387..0000000
--- a/rt/share/html/Search/Elements/SelectGroupBy
+++ /dev/null
@@ -1,63 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-$Name => 'GroupBy'
-$Default => 'Status'
-$Query => ''
-</%args>
-<select id="<% $Name %>" name="<% $Name %>">
-% while (@options) {
-% my ($text, $value) = (shift @options, shift @options);
-<option value="<% $value %>" <% $value eq $Default ? 'selected="selected"' : '' |n%>><% loc($text) %></option>
-% }
-</select>
-<%init>
-use RT::Report::Tickets;
-my $report = RT::Report::Tickets->new( $session{'CurrentUser'} );
-my @options = $report->Groupings( Query => $Query );
-</%init>
diff --git a/rt/share/html/Search/Elements/SelectLinks b/rt/share/html/Search/Elements/SelectLinks
deleted file mode 100644
index 219a192..0000000
--- a/rt/share/html/Search/Elements/SelectLinks
+++ /dev/null
@@ -1,66 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<select name="<%$Name%>">
-% foreach (@fields) {
-<option value="<%$_%>"><% loc($_) %></option>
-% }
-</select>
-<%ARGS>
-$Name => 'LinksField'
-</%ARGS>
-
-<%INIT>
-my @fields = ('HasMember',
- 'MemberOf',
- 'DependsOn',
- 'DependedOnBy',
- 'RefersTo',
- 'ReferredToBy',
- 'LinkedTo',
- );
-</%INIT>
diff --git a/rt/share/html/Search/Elements/SelectPersonType b/rt/share/html/Search/Elements/SelectPersonType
deleted file mode 100644
index 5f6ac73..0000000
--- a/rt/share/html/Search/Elements/SelectPersonType
+++ /dev/null
@@ -1,84 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<select id="<%$Name%>" name="<%$Name%>">
-% if ($AllowNull) {
-<option value="">-</option>
-% }
-% for my $option (@types) {
-% if ($Suffix) {
-<option value="<% $option %><% $Suffix %>"<%$option eq $Default && qq[ selected="selected"] |n %> ><%loc($option)%></option>
-% next;
-% }
-% foreach my $subtype (@subtypes) {
-<option value="<%"$option.$subtype"%>"<%$option eq $Default && $subtype eq 'EmailAddress' && qq[ selected="selected"] |n %> ><% loc($option) %> <% loc($subtype) %></option>
-% }
-% }
-</select>
-
-<%INIT>
-my @types;
-if ($Scope =~ 'queue') {
- @types = qw(Cc AdminCc);
-}
-elsif ($Suffix eq 'Group') {
- @types = qw(Requestor Cc AdminCc Watcher);
-}
-else {
- @types = qw(Requestor Cc AdminCc Watcher Owner QueueCc QueueAdminCc QueueWatcher);
-}
-
-my @subtypes = qw(EmailAddress Name RealName Nickname Organization Address1 Address2 WorkPhone HomePhone MobilePhone PagerPhone id);
-
-</%INIT>
-<%ARGS>
-$AllowNull => 1
-$Suffix => ''
-$Default=>undef
-$Scope => 'ticket'
-$Name => 'WatcherType'
-</%ARGS>
diff --git a/rt/share/html/Search/Elements/SelectSearchObject b/rt/share/html/Search/Elements/SelectSearchObject
deleted file mode 100644
index c38f5c3..0000000
--- a/rt/share/html/Search/Elements/SelectSearchObject
+++ /dev/null
@@ -1,68 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-@Objects => undef
-$Name => undef
-$Object => undef
-</%args>
-<%init>
-my $default_privacy = '';
-if ( $Object && $Object->Id ) {
- $default_privacy = ref($Object).'-'.$Object->Id;
-}
-</%init>
-<select id="<%$Name%>" name="<%$Name%>">
-% foreach my $object (@Objects) {
-% my $privacy = ref($object).'-'.$object->id;
-% if (ref($object) eq 'RT::User' && $object->id == $session{'CurrentUser'}->Id) {
-<option value="<%$privacy%>" <% ( $privacy eq $default_privacy ) ? "selected='selected'" : '' |n %> ><&|/l&>My saved searches</&></option>
-% } else {
-<option value="<%$privacy%>" <% ( $privacy eq $default_privacy ) ? "selected='selected'" : '' |n %> ><&|/l, $object->Name&>[_1]'s saved searches</&></option>
-% }
-% }
-</select>
diff --git a/rt/share/html/Search/Elements/SelectSearchesForObjects b/rt/share/html/Search/Elements/SelectSearchesForObjects
deleted file mode 100644
index 1a53ad9..0000000
--- a/rt/share/html/Search/Elements/SelectSearchesForObjects
+++ /dev/null
@@ -1,69 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%args>
-@Objects => undef
-$Name => undef
-$SearchType => 'Ticket',
-</%args>
-<select id="<%$Name%>" name="<%$Name%>">
-% foreach my $object (@Objects) {
-% if (ref($object) eq 'RT::User' && $object->id == $session{'CurrentUser'}->Id) {
-<option value=""><&|/l&>My saved searches</&></option>
-% } else {
-<option value=""></option>
-<option value=""><&|/l, $object->Name&>[_1]'s saved searches</&></option>
-% }
-% my @searches = $object->Attributes->Named('SavedSearch');
-% foreach my $search (@searches) {
-% # Skip it if it is not of search type we want.
-% next if ($search->SubValue('SearchType')
-% && $search->SubValue('SearchType') ne $SearchType);
-<option value="<%ref($object)%>-<%$object->id%>-SavedSearch-<%$search->Id%>"> -<%$search->Description||loc('Unnamed search')%></option>
-% }
-% }
-</select>
diff --git a/rt/share/html/Search/Graph.html b/rt/share/html/Search/Graph.html
deleted file mode 100644
index 4ceb544..0000000
--- a/rt/share/html/Search/Graph.html
+++ /dev/null
@@ -1,50 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%INIT>
-return $m->comp('/Ticket/Graphs/index.html', %ARGS );
-</%INIT>
diff --git a/rt/share/html/Search/Results.html b/rt/share/html/Search/Results.html
deleted file mode 100755
index 22858f1..0000000
--- a/rt/share/html/Search/Results.html
+++ /dev/null
@@ -1,208 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 => $title,
- Refresh => $session{'tickets_refresh_interval'} || RT->Config->Get('SearchResultsRefreshInterval', $session{'CurrentUser'} ),
- RSSAutoDiscovery => $RSSFeedURL,
- LinkRel => \%link_rel &>
-<& /Ticket/Elements/Tabs,
- current_tab => "Search/Results.html".$QueryString,
- Title => $title,
- Format => $Format,
- Query => $Query,
- Rows => $Rows,
- OrderBy => $OrderBy,
- Order => $Order,
- SavedSearchId => $SavedSearchId,
- SavedChartSearchId => $SavedChartSearchId,
- &>
-<& /Elements/CollectionList,
- Query => $Query,
- AllowSorting => 1,
- OrderBy => $OrderBy,
- Order => $Order,
- Rows => $Rows,
- Page => $Page,
- Format => $Format,
- Class => 'RT::Tickets',
- BaseURL => $BaseURL
-
- &>
-% my %hiddens = (Query => $Query, Format => $Format, Rows => $Rows, OrderBy => $OrderBy, Order => $Order, HideResults => $HideResults, Page => $Page, SavedChartSearchId => $SavedChartSearchId );
-<div align="right" class="refresh">
-<form method="get" action="<%RT->Config->Get('WebPath')%>/Search/Results.html">
-% foreach my $key (keys(%hiddens)) {
-<input type="hidden" class="hidden" name="<%$key%>" value="<% defined($hiddens{$key})?$hiddens{$key}:'' %>" />
-% }
-<& /Elements/Refresh, Name => 'TicketsRefreshInterval', Default => $session{'tickets_refresh_interval'}||RT->Config->Get('SearchResultsRefreshInterval', $session{'CurrentUser'}) &>
-<input type="submit" class="button" value="<&|/l&>Change</&>" />
-</form>
-</div>
-<div align="right" class="search-result-actions">
-<& Elements/ResultViews,
- Collection => $session{'tickets'},
- QueryString => $QueryString,
- Query => $Query,
- Format => $Format,
- Rows => $Rows,
- OrderBy => $OrderBy,
- Order => $Order,
- RSSFeedURL => $RSSFeedURL,
- ShortQueryString => $ShortQueryString,
-&>
-
-% $m->callback( QueryString => $QueryString, CallbackName => 'SearchActions' );
-</div>
-<%INIT>
-# Read from user preferences
-my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {};
-
-# These variables are what define a search_hash; this is also
-# where we give sane defaults.
-$Format ||= $prefs->{'Format'} || RT->Config->Get('DefaultSearchResultFormat');
-$Order ||= $prefs->{'Order'} || 'ASC';
-$OrderBy ||= $prefs->{'OrderBy'} || 'id';
-
-# Some forms pass in "RowsPerPage" rather than "Rows"
-# We call it RowsPerPage everywhere else.
-
-if ( !defined($Rows) ) {
- if (defined $ARGS{'RowsPerPage'} ) {
- $Rows = $ARGS{'RowsPerPage'};
- } elsif ( defined $prefs->{'RowsPerPage'} ) {
- $Rows = $prefs->{'RowsPerPage'};
- } else {
- $Rows = 50;
- }
-}
-$Page = 1 unless $Page && $Page > 0;
-
-my ($title, $ticketcount);
-$session{'i'}++;
-$session{'tickets'} = RT::Tickets->new($session{'CurrentUser'}) ;
-$session{'tickets'}->FromSQL($Query) if ($Query);
-
-if ($OrderBy =~ /\|/) {
- # Multiple Sorts
- my @OrderBy = split /\|/,$OrderBy;
- my @Order = split /\|/,$Order;
- $session{'tickets'}->OrderByCols(
- map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0
- .. $#OrderBy ) );;
-} else {
- $session{'tickets'}->OrderBy(FIELD => $OrderBy, ORDER => $Order);
-}
-$session{'tickets'}->RowsPerPage( $Rows ) if $Rows;
-$session{'tickets'}->GotoPage( $Page - 1 );
-
-$session{'CurrentSearchHash'} = {
- Format => $Format,
- Query => $Query,
- Page => $Page,
- Order => $Order,
- OrderBy => $OrderBy,
- RowsPerPage => $Rows
-};
-
-
-if ( $session{'tickets'}->Query()) {
- $ticketcount = $session{tickets}->CountAll();
- $title = loc('Found [quant,_1,ticket]', $ticketcount);
-} else {
- $title = loc("Find tickets");
-}
-
-my $QueryString = "?".$m->comp('/Elements/QueryString',
- Query => $Query,
- Format => $Format,
- Rows => $Rows,
- OrderBy => $OrderBy,
- Order => $Order,
- Page => $Page);
-my $ShortQueryString = "?".$m->comp('/Elements/QueryString', Query => $Query);
-my $RSSQueryString = "?".$m->comp('/Elements/QueryString', Query => $Query, Order => $Order, OrderBy => $OrderBy);
-my $RSSPath = join '/', map $m->interp->apply_escapes($_, 'u'),
- $session{'CurrentUser'}->UserObj->Name,
- $session{'CurrentUser'}->UserObj->GenerateAuthString( $Query.$Order.$OrderBy );
-my $RSSFeedURL = RT->Config->Get('WebPath')."/NoAuth/rss/$RSSPath/$RSSQueryString";
-
-if ($ARGS{'TicketsRefreshInterval'}) {
- $session{'tickets_refresh_interval'} = $ARGS{'TicketsRefreshInterval'};
-}
-
-my %link_rel;
-my $genpage = sub {
- return $m->comp(
- '/Elements/QueryString',
- Query => $Query,
- Format => $Format,
- Rows => $Rows,
- OrderBy => $OrderBy,
- Order => $Order,
- Page => shift(@_),
- );
-};
-my $BaseURL = RT->Config->Get('WebPath')."/Search/Results.html?";
-$link_rel{first} = $BaseURL . $genpage->(1) if $Page > 1;
-$link_rel{prev} = $BaseURL . $genpage->($Page - 1) if $Page > 1;
-$link_rel{next} = $BaseURL . $genpage->($Page + 1) if ($Page * $Rows) < $ticketcount;
-$link_rel{last} = $BaseURL . $genpage->(POSIX::ceil($ticketcount/$Rows)) if $Rows and ($Page * $Rows) < $ticketcount;
-</%INIT>
-<%CLEANUP>
-$session{'tickets'}->PrepForSerialization();
-</%CLEANUP>
-<%ARGS>
-$Query => undef
-$Format => undef
-$HideResults => 0
-$Rows => undef
-$Page => 1
-$OrderBy => undef
-$Order => undef
-$SavedSearchId => undef
-$SavedChartSearchId => undef
-</%ARGS>
diff --git a/rt/share/html/Search/Results.rdf b/rt/share/html/Search/Results.rdf
deleted file mode 100644
index c402b6f..0000000
--- a/rt/share/html/Search/Results.rdf
+++ /dev/null
@@ -1,48 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<& /Search/Elements/ResultsRSSView, %ARGS &>
diff --git a/rt/share/html/Search/Results.tsv b/rt/share/html/Search/Results.tsv
deleted file mode 100644
index 946a35d..0000000
--- a/rt/share/html/Search/Results.tsv
+++ /dev/null
@@ -1,162 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 }}}
-<%ARGS>
-$Query => ''
-$OrderBy => 'id'
-$Order => 'ASC'
-</%ARGS>
-<%INIT>
-
-my $Tickets = RT::Tickets->new( $session{'CurrentUser'} );
-$Tickets->FromSQL( $Query );
-if ( $OrderBy =~ /\|/ ) {
- # Multiple Sorts
- my @OrderBy = split /\|/, $OrderBy;
- my @Order = split /\|/, $Order;
- $Tickets->OrderByCols(
- map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } }
- ( 0 .. $#OrderBy )
- );
-}
-else {
- $Tickets->OrderBy( FIELD => $OrderBy, ORDER => $Order );
-}
-
-my %cf_id_to_name;
-my %cf_name_to_pos;
-{
- my $cfs = RT::SQL::PossibleCustomFields(
- Query => $Query, CurrentUser => $session{'CurrentUser'},
- );
- while ( my $cf = $cfs->Next ) {
- my $name = $cf->Name;
- $cf_id_to_name{ $cf->id } = $name;
- next if $cf_name_to_pos{ $name };
-
- $cf_name_to_pos{ $name } =
- (sort { $b <=> $a } values %cf_name_to_pos)[0] + 1;
- }
-}
-
-my @attrs = qw(
- id QueueObj->Name Subject Status
- TimeEstimated TimeWorked TimeLeft
- Priority FinalPriority
- OwnerObj->Name
- Requestors->MemberEmailAddressesAsString
- Cc->MemberEmailAddressesAsString
- AdminCc->MemberEmailAddressesAsString
- DueObj->ISO ToldObj->ISO CreatedObj->ISO
- ResolvedObj->ISO LastUpdatedObj->ISO
-);
-
-$r->content_type('application/vnd.ms-excel');
-{
- my @header;
- foreach my $attr (@attrs) {
- my $label = $attr;
- $label =~ s'Obj-.(?:AsString|Name|ISO)''g;
- $label =~ s'-\>MemberEmailAddressesAsString''g;
- push @header, $label;
- }
-
- $_ += @header - 1 foreach values %cf_name_to_pos;
-
- foreach my $name ( sort { $cf_name_to_pos{$a} <=> $cf_name_to_pos{$b} } keys %cf_name_to_pos ) {
- push @header, "CF-". $name;
- }
- $m->out(join("\t", @header));
- $m->out("\n");
- $m->flush_buffer;
-}
-
-my $i = 0;
-while ( my $Ticket = $Tickets->Next()) {
- my @row;
- foreach my $attr (@attrs) {
- my $value;
- if ($attr =~ /(.*)->ISO$/ and $Ticket->$1->Unix <= 0) {
- $value = '';
- } else {
- my $method = '$Ticket->'.$attr.'()';
- $method =~ s/->ISO\(\)$/->ISO( Timezone => 'user' )/;
- $value = eval $method;
- if ($@) {die "Failed to find $attr - ". $@};
- }
- push @row, $value;
- }
-
- my $values = $Ticket->CustomFieldValues;
- $values->OrderByCols; # don't sort them
- while (my $value = $values->Next) {
- my $pos = $cf_name_to_pos{ $cf_id_to_name{ $value->CustomField } };
- next unless $pos;
-
- $row[$pos] = '' unless defined $row[$pos];
- $row[$pos] .= ', ' if $row[$pos];
- $row[$pos] .= $value->Content;
- }
-
- # remove tabs from all field values, they screw up the tsv
- for (@row) {
- $_ = '' unless defined;
- $_ =~ s/(?:\n|\r)//g;
- $_ =~ s{\t}{ }g;
- }
-
- $m->out(join("\t",@row));
- $m->out("\n");
-
- unless (++$i%10) {
- $i = 0;
- $m->flush_buffer;
- }
-}
-
-$m->abort();
-</%INIT>
diff --git a/rt/share/html/Search/Simple.html b/rt/share/html/Search/Simple.html
deleted file mode 100644
index 2f7996b..0000000
--- a/rt/share/html/Search/Simple.html
+++ /dev/null
@@ -1,106 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@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 => $title &>
-<& /Elements/Tabs,
- current_toptab => "Search/Simple.html",
- Title => $title
-&>
-
-% $m->callback( %ARGS, CallbackName => 'PreForm' );
-
-<div id="SimpleSearchForm">
-<form action="Simple.html" method="get">
-
-<p><&|/l&>Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>.</&></p>
-
-<p><&|/l&>Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>.</&></p>
-<p><&|/l&>RT will look for anything else you enter in ticket subjects.</&></p>
-
-<br />
-<br />
-<div align="center">
-<input name="q" size="60" /><input type="submit" class="button" value="<&|/l&>Search</&>" />
-</div>
-
-</form>
-
-% $m->callback( %ARGS, CallbackName => 'PostForm' );
-
-</div>
-
-<%INIT>
-my $title = loc("Search for tickets");
-use RT::Search::Googleish;
-
-if ($q) {
- my $tickets = new RT::Tickets( $session{'CurrentUser'} );
- $m->callback( %ARGS, query => \$q, CallbackName => 'ModifyQuery' );
-
- if ($q =~ /^#?(\d+)$/) {
- RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Ticket/Display.html?id=".$1);
- }
-
- my %args = (
- Argument => $q,
- TicketsObj => $tickets,
- );
-
- $m->callback( %ARGS, CallbackName => 'SearchArgs', args => \%args);
-
- my $search = RT::Search::Googleish->new(%args);
-
- $m->comp( "Results.html", Query => $search->QueryToSQL() );
- $m->comp( "/Elements/Footer" );
- $m->abort();
-}
-</%INIT>
-
-<%ARGS>
-$q => undef
-</%ARGS>
-