diff options
Diffstat (limited to 'rt/html/Tools/Offline.html')
-rw-r--r-- | rt/html/Tools/Offline.html | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/rt/html/Tools/Offline.html b/rt/html/Tools/Offline.html new file mode 100644 index 000000000..0879c94fc --- /dev/null +++ b/rt/html/Tools/Offline.html @@ -0,0 +1,166 @@ +%# {{{ BEGIN BPS TAGGED BLOCK +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2004 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., 675 Mass Ave, Cambridge, MA 02139, USA. +%# +%# +%# CONTRIBUTION SUBMISSION POLICY: +%# +%# (The following paragraph is not intended to limit the rights granted +%# to you to modify and distribute this software under the terms of +%# the GNU General Public License and is only of importance to you if +%# you choose to contribute your changes and enhancements to the +%# community by submitting them to Best Practical Solutions, LLC.) +%# +%# By intentionally submitting any modifications, corrections or +%# derivatives to this work, or any other work intended for use with +%# Request Tracker, to Best Practical Solutions, LLC, you confirm that +%# you are the copyright holder for those contributions and you grant +%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, +%# royalty-free, perpetual, license to use, copy, create derivative +%# works based on those contributions, and sublicense and distribute +%# those contributions and any derivatives thereof. +%# +%# }}} END BPS TAGGED BLOCK +<& /Elements/Header, Title => loc("Offline upload") &> +<& Elements/Tabs, + current_tab => "Tools/Offline.html", + Title => loc("Offline edits") &> + +<& /Elements/ListActions, actions => \@results &> + +<& /Elements/Callback, Requestor => \$requestoraddress, + Queue => \$qname, %ARGS &> + +<FORM ACTION="Offline.html" NAME="TicketUpdate" + METHOD=POST enctype="multipart/form-data"> +<table> +<tr> +<td class=label> +<&|/l&>Default Queue</&>: +</td> +<td> +<& /Elements/SelectQueue, Name => "qname", NamedValues => 1 &> +<i><&|/l&>If no queue is specified, create tickets in this queue.</&></i> +</td> +</tr> +<tr> +<td class=label> +<&|/l&>Default Requestor</&>: +</td> +<td> +<input name=requestoraddress value=<%$requestoraddress%>> +<i><&|/l&>If no Requestor is specified, create tickets with this requestor.</&></i> +</td> +</tr> +<tr><td class=labeltop> +<&|/l&>Template</&>: +</td> +<td colspan=2> +<textarea name=string cols=80 rows=30> +<%$string%> +</textarea> +</td> +</tr> +<tr><td class=label> +<&|/l&>Get template from file</&>: +</td> +<td> +<input name="Template" type="file" value="foo"> +<INPUT TYPE=SUBMIT NAME="Parse" VALUE="<&|/l&>Go</&>"> +</td> +</tr> +</table> +<& /Elements/Submit, Name => 'UpdateTickets', Label => loc('Upload'), Caption => loc("Upload your changes"), color => "#993333" &> + +</FORM> +<%args> +$requestoraddress => undef +$qname => undef +$string => undef +</%args> +<%INIT> + +my @results; +use RT::Action::CreateTickets; +my $action = RT::Action::CreateTickets->new(CurrentUser => $session{'CurrentUser'}); +; +if ($ARGS{'Parse'} && $ARGS{'Template'}) { + $string = ""; + my $cgi_object = $m->cgi_object; + my $fh = $cgi_object->upload('Template'); + my $filename = "$fh"; + + my ($buffer, $template); + while ( my $bytesread = read( $fh, $buffer, 4096 ) ) { + $template .= $buffer; + } + $template =~ s/\r\n/\n/gs; + $action->Parse(Content => $template, Queue => $qname, Requestor => $requestoraddress); + foreach ( @{ $action->{'create_tickets'} } ) { + my $id = $_; + $id =~ s/^create\-//; + $string .= "===Create-Ticket: $id\n"; + $string .= $action->{'templates'}->{$_} . "\n"; + } + foreach ( @{ $action->{'update_tickets'} } ) { + my $id = $_; + $id =~ s/^update\-//; + $string .= "===Update-Ticket: $id\n"; + $string .= $action->{'templates'}->{$_} . "\n"; + } + + +} elsif ($ARGS{'UpdateTickets'}) { + $action->Parse(Content => $ARGS{string}, Queue => $qname, Requestor=> $requestoraddress); + push @results, $action->CreateByTemplate(); + push @results, $action->UpdateByTemplate(); +} else { + if ($ARGS{'Query'}) { + my $Tickets = RT::Tickets->new($session{'CurrentUser'}); + $Tickets->FromSQL($ARGS{'Query'}); + + while (my $t = $Tickets->Next) { + $string .= "===Update-Ticket: " . $t->Id . "\n"; + $string .= $action->GetUpdateTemplate($t); + $string .= "" . "\n"; + } + + $string .= "" . "\n"; + $string .= "===# DO NOT EDIT BELOW THIS LINE#===\n"; + $string .= "" . "\n"; + + while (my $t = $Tickets->Next) { + $string .= "===# DO NOT EDIT #===\n"; + $string .= "===Base-Ticket: " . $t->Id . "\n"; + $string .= $action->GetBaseTemplate($t); + $string .= "===# DO NOT EDIT #===\n"; + $string .= "" . "\n"; + } + } else { + $string .= "===Create-Ticket: ticket1\n"; + $string .= $action->GetCreateTemplate(); + } +} +</%INIT> |