From b4b0c7e72d7eaee2fbfc7022022c9698323203dd Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 31 Dec 2009 13:16:41 +0000 Subject: import rt 3.8.7 --- rt/share/html/Admin/Tools/Configuration.html | 170 +++++++++++++++++++ rt/share/html/Admin/Tools/Shredder/Dumps/dhandler | 68 ++++++++ .../Admin/Tools/Shredder/Elements/DumpFileLink | 61 +++++++ .../Admin/Tools/Shredder/Elements/Error/NoRights | 55 ++++++ .../Admin/Tools/Shredder/Elements/Error/NoStorage | 59 +++++++ .../Tools/Shredder/Elements/Object/RT--Attachment | 53 ++++++ .../Tools/Shredder/Elements/Object/RT--Ticket | 53 ++++++ .../Admin/Tools/Shredder/Elements/Object/RT--User | 53 ++++++ .../Admin/Tools/Shredder/Elements/ObjectCheckBox | 66 ++++++++ .../Admin/Tools/Shredder/Elements/PluginArguments | 62 +++++++ .../html/Admin/Tools/Shredder/Elements/PluginHelp | 75 +++++++++ .../Admin/Tools/Shredder/Elements/SelectObjects | 67 ++++++++ .../Admin/Tools/Shredder/Elements/SelectPlugin | 73 ++++++++ rt/share/html/Admin/Tools/Shredder/autohandler | 60 +++++++ rt/share/html/Admin/Tools/Shredder/index.html | 186 +++++++++++++++++++++ rt/share/html/Admin/Tools/index.html | 55 ++++++ 16 files changed, 1216 insertions(+) create mode 100644 rt/share/html/Admin/Tools/Configuration.html create mode 100644 rt/share/html/Admin/Tools/Shredder/Dumps/dhandler create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/DumpFileLink create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/Error/NoRights create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Attachment create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Ticket create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--User create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/ObjectCheckBox create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/PluginArguments create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/PluginHelp create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/SelectObjects create mode 100644 rt/share/html/Admin/Tools/Shredder/Elements/SelectPlugin create mode 100644 rt/share/html/Admin/Tools/Shredder/autohandler create mode 100644 rt/share/html/Admin/Tools/Shredder/index.html create mode 100644 rt/share/html/Admin/Tools/index.html (limited to 'rt/share/html/Admin/Tools') diff --git a/rt/share/html/Admin/Tools/Configuration.html b/rt/share/html/Admin/Tools/Configuration.html new file mode 100644 index 000000000..eb48af19c --- /dev/null +++ b/rt/share/html/Admin/Tools/Configuration.html @@ -0,0 +1,170 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +require Module::Versions::Report; +my $title = loc('System Configuration'); +unless ($session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser')) { + Abort(loc('This feature is only available to system administrators')); +} + + + +<& /Admin/Elements/Header, Title => $title &> +<& /Admin/Elements/ToolTabs, + current_tab => 'Admin/Tools/Configuration.html', + current_subtab => 'Admin/Tools/Configuration.html', + Title => $title &> + + + +

<&|/l&>Loaded perl modules

+% my $report = Module::Versions::Report::report(); +% my @report = grep /v\d/, split("\n",$report); +
+<% join('
', @report) |n %> +
+ +

<&|/l&>RT Config

+ +<%PERL> +foreach my $key ( RT->Config->Options( Overridable => undef, Sorted => 0 ) ) { + my $val = RT->Config->Get( $key ); + next unless defined $val; + + my $meta = RT->Config->Meta( $key ); + my $description = ''; + if ( $meta->{'Source'}{'Extension'} && $meta->{'Source'}{'SiteConfig'} ) { + $description = loc("[_1] site config", $meta->{'Source'}{'Extension'}); + } + elsif ( $meta->{'Source'}{'Extension'} ) { + $description = loc("[_1] core config", $meta->{'Source'}{'Extension'}); + } + elsif ( $meta->{'Source'}{'SiteConfig'} ) { + $description = loc("site config"); + } + else { + $description = loc("core config"); + } + + + + +% } +
<% $key %>\ +% if ( $key =~ /Password(?!Length)/i ) { +Password not printed\ +% } elsif ( !ref $val ) { +<% "$val" %>\ +% } elsif ( ref $val eq 'ARRAY' ) { +<% join ', ', @$val %>\ +% } elsif ( ref $val eq 'HASH' ) { +<% join ', ', %$val %>\ +% } else { +<% ref $val %>\ +% } +
<% $description %>
+ +

<&|/l&>RT Variables

+ +% { no strict qw/refs/; +% my %config_opt = map { $_ => 1 } RT->Config->Options( Overridable => undef ); +% foreach my $key ( sort keys %{*RT::} ) { +% next if !${'RT::'.$key} || ref ${'RT::'.$key} || $config_opt{ $key }; + + + +% } +% } +
RT::<% $key %> +% if ( $key =~ /Password(?!Length)/i ) { +Password not printed +% } else { +<% ${'RT::'.$key} %> +% } +
+ +

<&|/l&>RT Size

+ +<%PERL> +for my $type (qw/Ticket Queue Transaction Group/) { + my $class = 'RT::' . $type . 's'; + my $collection = $class->new($RT::SystemUser); + $collection->UnLimit; + my $count = $collection->CountAll; + + + +% } + +<%PERL> +my $users = RT::Users->new($RT::SystemUser); +$users->UnLimit; +my $user_count = $users->CountAll; + +$users->LimitToPrivileged; +my $privileged_count = $users->CountAll; +my $unprivileged_count = $user_count - $privileged_count; + + + + + +
<% $type %>s<% $count %>
Privileged Users<% $privileged_count %>
Unprivileged Users<% $unprivileged_count %>
+ +

<&|/l&>Perl configuration

+% require Config; +
+<% Config::myconfig() %>
+
+ +

<&|/l&>Perl Include Paths (@INC)

+
+% foreach my $inc (@INC) {
+<% $inc %>
+% }
+
diff --git a/rt/share/html/Admin/Tools/Shredder/Dumps/dhandler b/rt/share/html/Admin/Tools/Shredder/Dumps/dhandler new file mode 100644 index 000000000..f316f2218 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Dumps/dhandler @@ -0,0 +1,68 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 }}} +<%ATTR> +AutoFlush => 0 + +<%FLAGS> +inherit => undef + +<%INIT> +my $arg = $m->dhandler_arg; +$m->abort(404) if $arg =~ m{\.\.|/|\\}; + +use File::Spec (); +use RT::Shredder (); +my $File = File::Spec->catfile( RT::Shredder->StoragePath, $arg ); +$r->content_type('application/octets-stream'); +open my $fh, "<:raw", $File or $m->abort(404); +my $buf; +while( read $fh, $buf, 1024*1024 ) { + $m->out($buf); +} +return 0; + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/DumpFileLink b/rt/share/html/Admin/Tools/Shredder/Elements/DumpFileLink new file mode 100644 index 000000000..ba0aeb85f --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/DumpFileLink @@ -0,0 +1,61 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +$File => '' + +<%INIT> +return unless $File; +use File::Spec (); +use RT::Shredder (); + +$File = File::Spec->abs2rel( $File, RT::Shredder->StoragePath ) + if File::Spec->file_name_is_absolute($File); + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/Error/NoRights b/rt/share/html/Admin/Tools/Shredder/Elements/Error/NoRights new file mode 100644 index 000000000..0665c076b --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/Error/NoRights @@ -0,0 +1,55 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 }}} +<& /Admin/Elements/Header, Title => 'Error' &> +<& /Admin/Elements/ToolTabs, + current_tab => 'Admin/Tools/Shredder', + current_subtab => 'Admin/Tools/Shredder', + Title => 'Error', +&> +
<% loc("You don't have SuperUser right.") |n%>
+ diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage b/rt/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage new file mode 100644 index 000000000..5d857ca56 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage @@ -0,0 +1,59 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +$Path => '' + +<& /Admin/Elements/Header, Title => 'Error' &> +<& /Admin/Elements/ToolTabs, + current_tab => 'Admin/Tools/Shredder', + current_subtab => 'Admin/Tools/Shredder', + Title => 'Error', +&> +
+<% loc('Shredder needs a directory to write dumps to. Please check that you have [_1] and it is writable by your web server.', $m->interp->apply_escapes( $Path ) ) |n%> +
diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Attachment b/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Attachment new file mode 100644 index 000000000..b7067b703 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Attachment @@ -0,0 +1,53 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 + + +<% loc('Attachment') %>(<% loc('id') %>:<% $Object->id %>, <% loc('FileName') %>: <% $Object->Filename || loc('(no value)') %>) + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Ticket b/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Ticket new file mode 100644 index 000000000..43307873d --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Ticket @@ -0,0 +1,53 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 + + +<% loc('Ticket') %>(<% loc('id') %>:<% $Object->id %>, <% loc('Subject') %>: <% substr($Object->Subject, 0, 30) %>...) + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--User b/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--User new file mode 100644 index 000000000..d852f5a74 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--User @@ -0,0 +1,53 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 + + +<% loc('User') %>(<% loc('id') %>:<% $Object->id %>, <% loc('Name') %>: <% $Object->Name %>) + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/ObjectCheckBox b/rt/share/html/Admin/Tools/Shredder/Elements/ObjectCheckBox new file mode 100644 index 000000000..fa487f691 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/ObjectCheckBox @@ -0,0 +1,66 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 + + + +% if( $m->comp_exists( $path ) ) { +% $m->comp( $path, Object => $Object ); +% } else { +<% $Object->_AsString %> +% } +
+<%ONCE> +require File::Spec; + +<%INIT> +my $path = ref $Object; +$path =~ s/:/-/g; +$path = File::Spec->catfile( 'Object', $path ); + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/PluginArguments b/rt/share/html/Admin/Tools/Shredder/Elements/PluginArguments new file mode 100644 index 000000000..59c6df359 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/PluginArguments @@ -0,0 +1,62 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +$Plugin => '' + +
+<% loc('Fill arguments') %>:
+% foreach my $a( $plugin_obj->SupportArgs ) { +<% loc($a) %>:" value="<% $ARGS{ "$Plugin:$a" } || '' %>" />
+% } +
+<%INIT> +use RT::Shredder::Plugin; +my $plugin_obj = new RT::Shredder::Plugin; +my ($status, $msg) = $plugin_obj->LoadByName( $Plugin ); +die $msg unless $status; + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/PluginHelp b/rt/share/html/Admin/Tools/Shredder/Elements/PluginHelp new file mode 100644 index 000000000..70336bd4d --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/PluginHelp @@ -0,0 +1,75 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +$Plugin => '' + +
+<% $text |n%> +
+<%ONCE> +use RT::Shredder::Plugin; +my $plugin_obj = new RT::Shredder::Plugin; +my %plugins = $plugin_obj->List; + +<%INIT> +my $file = $plugins{ $Plugin }; +unless( $file ) { + $RT::Logger->error( "Couldn't find plugin '$Plugin'" ); + return; +} + +use RT::Shredder::POD qw(); +my $text = ''; +open my $io_handle, ">:scalar", \$text or die "Can't open scalar for write: $!"; +RT::Shredder::POD::plugin_html( $file, $io_handle ); +if ( $Plugin eq 'Base' ) { + $file =~ s/\.pm$/\/Search.pm/; + RT::Shredder::POD::plugin_html( $file, $io_handle ); +} +close $io_handle; + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/SelectObjects b/rt/share/html/Admin/Tools/Shredder/Elements/SelectObjects new file mode 100644 index 000000000..52743ff80 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/SelectObjects @@ -0,0 +1,67 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 => () + +
+% unless( @Objects ) { +<& /Elements/ListActions, actions => [loc("Objects list is empty")] &> +% } else { +
+ +<% loc("click to check/uncheck all objects at once") %> +
+% foreach my $o( @Objects ) { +<& ObjectCheckBox, Object => $o &> +% } +
+<& /Elements/Submit, Name => 'Wipeout', Label => loc('Wipeout') &> +% } +
+<%INIT> + diff --git a/rt/share/html/Admin/Tools/Shredder/Elements/SelectPlugin b/rt/share/html/Admin/Tools/Shredder/Elements/SelectPlugin new file mode 100644 index 000000000..f9ece67d2 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/Elements/SelectPlugin @@ -0,0 +1,73 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +$Plugin => '' + +<& PluginHelp, %ARGS, Plugin => 'Base' &> +
+Select plugin: + +
+
+% foreach my $p( keys %plugins ) { +
+<& PluginHelp, %ARGS, Plugin => $p &> +<& PluginArguments, %ARGS, Plugin => $p &> +
+% } +
+<%ONCE> +use RT::Shredder::Plugin; +my $plugin_obj = new RT::Shredder::Plugin; +my %plugins = $plugin_obj->List('Search'); + diff --git a/rt/share/html/Admin/Tools/Shredder/autohandler b/rt/share/html/Admin/Tools/Shredder/autohandler new file mode 100644 index 000000000..26094525a --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/autohandler @@ -0,0 +1,60 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +unless( $session{'CurrentUser'}->HasRight( Right => 'SuperUser', Object => $RT::System ) ) { + return $m->comp( 'Elements/Error/NoRights' ); +} + +use RT::Shredder (); +my $path = RT::Shredder->StoragePath; +unless( -d $path && -w _ ) { + return $m->comp( 'Elements/Error/NoStorage', Path => $path ); +} + +$m->call_next(%ARGS); + diff --git a/rt/share/html/Admin/Tools/Shredder/index.html b/rt/share/html/Admin/Tools/Shredder/index.html new file mode 100644 index 000000000..15c20dfd5 --- /dev/null +++ b/rt/share/html/Admin/Tools/Shredder/index.html @@ -0,0 +1,186 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +$Plugin => '' +$Search => '' +$Wipeout => '' +@WipeoutObject => () + +<& /Admin/Elements/Header, Title => $title &> +<& /Admin/Elements/ToolTabs, + current_tab => 'Admin/Tools/Shredder', + current_subtab => 'Admin/Tools/Shredder', + Title => $title, +&> +
+
+<& /Elements/ListActions, actions => $messages{'Errors'} &> +<& /Elements/ListActions, actions => $messages{'Success'} &> +<& Elements/DumpFileLink, File => $dump_file &> +<& Elements/SelectPlugin, Plugin => $Plugin, %ARGS &> +
+<& /Elements/Submit, Name => 'Search', Label => loc('Search') &> +
+
+
+% if( $Search || $Wipeout ) { +<& Elements/SelectObjects, Objects => \@objs &> +% } +
+<%INIT> + +require RT::Shredder; +my $title = loc('Shredder'); +my %messages = ( Errors => [], Success => [] ); +my ($plugin_obj, @objs); + +my $catch_non_fatals = sub { + require RT::Shredder::Exceptions; + if ( my $e = RT::Shredder::Exception::Info->caught ) { + push @{ $messages{Errors} }, "$e"; + $Search = ''; @objs = (); + return 1; + } + if ( UNIVERSAL::isa( $@, 'Class::Exception' ) ) { + $@->rethrow; + } else { + die $@; + } +}; + + +if( $Plugin ) { { # use additional block({}) to effectively exit block on errors + use RT::Shredder::Plugin; + $plugin_obj = new RT::Shredder::Plugin; + my( $status, $msg ) = $plugin_obj->LoadByName( $Plugin ); + unless( $status ) { + push @{ $messages{Errors} }, $msg; + $Search = ''; + last; + } + + my %args; + foreach my $k( keys %ARGS ) { + next unless $k =~ /^\Q$Plugin\E:(.*)$/; + $args{ $1 } = $ARGS{$k}; + } + ( $status, $msg ) = $plugin_obj->HasSupportForArgs( keys %args ); + unless( $status ) { + push @{ $messages{Errors} }, $msg; + $Search = ''; + last; + } + + ($status, $msg) = eval { $plugin_obj->TestArgs( %args ) }; + $catch_non_fatals->() && last if $@; + unless( $status ) { + push @{ $messages{Errors} }, $msg; + $Search = ''; + last; + } +} } + +my $dump_file = ''; + +if( $Plugin && $Wipeout ) { { # use additional block({}) to effectively exit block on errors + my $shredder = new RT::Shredder( force => 1 ); + my $backup_plugin = new RT::Shredder::Plugin; + my ($status, $msg) = $backup_plugin->LoadByName('SQLDump'); + unless( $status ) { + push @{ $messages{Errors} }, $msg; + $Search = ''; @objs = (); + last; + } + ($status, $msg) = $backup_plugin->TestArgs; + unless( $status ) { + push @{ $messages{Errors} }, $msg; + $Search = ''; @objs = (); + last; + } + + ($dump_file) = $backup_plugin->FileName; + push @{ $messages{'Success'} }, "SQL dump file is '$dump_file'"; + + $shredder->AddDumpPlugin( Object => $backup_plugin ); + + $shredder->PutObjects( Objects => \@WipeoutObject ); + ($status, $msg) = $plugin_obj->SetResolvers( Shredder => $shredder ); + unless( $status ) { + push @{ $messages{Errors} }, $msg; + $Search = ''; @objs = (); + last; + } + eval { $shredder->WipeoutAll }; + $catch_non_fatals->() && last if $@; + + push @{ $messages{Success} }, loc('objects were successfuly removed'); +} } + +if( $Plugin && ( $Search || $Wipeout ) ) { { # use additional block({}) to effectively exit block on errors + my $status; + ($status, @objs) = eval { $plugin_obj->Run }; + $catch_non_fatals->() && last if $@; + unless( $status ) { + push @{ $messages{Errors} }, $objs[0]; + $Search = ''; @objs = (); + last; + } + push @{ $messages{Success} }, loc('executed plugin successfuly'); + + my $shredder = new RT::Shredder; + foreach my $o( grep defined, splice @objs ) { + eval { push @objs, $shredder->CastObjectsToRecords( Objects => $o ) }; + $catch_non_fatals->() && last if $@; + } + unless( @objs ) { + push @{ $messages{Success} }, loc('plugin returned empty list'); + } else { + push @{ $messages{Success} }, loc('see object list below'); + } +} } + diff --git a/rt/share/html/Admin/Tools/index.html b/rt/share/html/Admin/Tools/index.html new file mode 100644 index 000000000..78b1ed853 --- /dev/null +++ b/rt/share/html/Admin/Tools/index.html @@ -0,0 +1,55 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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> +my $title = loc('System Tools'); + +<& /Admin/Elements/Header, Title => $title &> +<& /Admin/Elements/ToolTabs, + current_tab => 'Admin/Tools/index.html', + current_subtab => 'Admin/Tools/Configuration.html', + Title => $title &> -- cgit v1.2.1