Upgrade to 4.0.10.
[usit-rt.git] / share / html / Tools / Offline.html
CommitLineData
84fb5b46
MKG
1%# BEGIN BPS TAGGED BLOCK {{{
2%#
3%# COPYRIGHT:
4%#
403d7b0b 5%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
84fb5b46
MKG
6%# <sales@bestpractical.com>
7%#
8%# (Except where explicitly superseded by other copyright notices)
9%#
10%#
11%# LICENSE:
12%#
13%# This work is made available to you under the terms of Version 2 of
14%# the GNU General Public License. A copy of that license should have
15%# been provided with this software, but in any event can be snarfed
16%# from www.gnu.org.
17%#
18%# This work is distributed in the hope that it will be useful, but
19%# WITHOUT ANY WARRANTY; without even the implied warranty of
20%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21%# General Public License for more details.
22%#
23%# You should have received a copy of the GNU General Public License
24%# along with this program; if not, write to the Free Software
25%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26%# 02110-1301 or visit their web page on the internet at
27%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28%#
29%#
30%# CONTRIBUTION SUBMISSION POLICY:
31%#
32%# (The following paragraph is not intended to limit the rights granted
33%# to you to modify and distribute this software under the terms of
34%# the GNU General Public License and is only of importance to you if
35%# you choose to contribute your changes and enhancements to the
36%# community by submitting them to Best Practical Solutions, LLC.)
37%#
38%# By intentionally submitting any modifications, corrections or
39%# derivatives to this work, or any other work intended for use with
40%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41%# you are the copyright holder for those contributions and you grant
42%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43%# royalty-free, perpetual, license to use, copy, create derivative
44%# works based on those contributions, and sublicense and distribute
45%# those contributions and any derivatives thereof.
46%#
47%# END BPS TAGGED BLOCK }}}
48<& /Elements/Header, Title => loc("Offline upload") &>
49<& /Elements/Tabs &>
50
51<& /Elements/ListActions, actions => \@results &>
52
53% $m->callback( Requestor => \$requestoraddress, Queue => \$qname, %ARGS );
54
55<form action="Offline.html" name="TicketUpdate"
56 method="post" enctype="multipart/form-data">
57<table>
58<tr>
59<td class="label">
60<&|/l&>Default Queue</&>:
61</td>
62<td>
63<& /Elements/SelectQueue, Name => "qname", NamedValues => 1 &>
64<em><&|/l&>If no queue is specified, create tickets in this queue.</&></em>
65</td>
66</tr>
67<tr>
68<td class="label">
69<&|/l&>Default Requestor</&>:
70</td>
71<td>
72<input name="requestoraddress" value="<%$requestoraddress%>" />
73<em><&|/l&>If no Requestor is specified, create tickets with this requestor.</&></em>
74</td>
75</tr>
76<tr><td class="labeltop">
77<&|/l&>Template</&>:
78</td>
79<td colspan="2">
80<textarea name="string" cols="80" rows="30"><% $string %></textarea>
81</td>
82</tr>
83<tr><td class="label">
84<&|/l&>Get template from file</&>:
85</td>
86<td>
87<input name="Template" type="file" />
88<input type="submit" class="button" name="Parse" value="<&|/l&>Go!</&>" />
89</td>
90</tr>
91</table>
92<& /Elements/Submit, Name => 'UpdateTickets', Label => loc('Upload'), Caption => loc("Upload your changes"), color => "#993333" &>
93
94</form>
95<%args>
96$requestoraddress => ''
97$qname => undef
98$string => undef
99</%args>
100<%INIT>
101
102my @results;
103use RT::Action::CreateTickets;
104my $action = RT::Action::CreateTickets->new(CurrentUser => $session{'CurrentUser'});
105;
106if ($ARGS{'Parse'} && $ARGS{'Template'}) {
107 $string = "";
108 my $cgi_object = $m->cgi_object;
109 my $fh = $cgi_object->upload('Template');
110 my $filename = "$fh";
111
112 my ($buffer, $template);
113 while ( my $bytesread = read( $fh, $buffer, 4096 ) ) {
114 $template .= $buffer;
115 }
116 my $encode = RT::I18N::_GuessCharset( $template );
117 require Encode;
118 $template = Encode::decode( $encode, $template );
119 $template =~ s/\r\n/\n/gs;
120 $action->Parse(Content => $template, Queue => $qname, Requestor => $requestoraddress);
121 foreach ( @{ $action->{'create_tickets'} } ) {
122 my $id = $_;
123 $id =~ s/^create\-//;
124 $string .= "===Create-Ticket: $id\n";
125 $string .= $action->{'templates'}->{$_} . "\n";
126 }
127 foreach ( @{ $action->{'update_tickets'} } ) {
128 my $id = $_;
129 $id =~ s/^update\-//;
130 $string .= "===Update-Ticket: $id\n";
131 $string .= $action->{'templates'}->{$_} . "\n";
132 }
133
134
135} elsif ($ARGS{'UpdateTickets'}) {
136 $action->Parse(Content => $ARGS{string}, Queue => $qname, Requestor=> $requestoraddress);
137 push @results, $action->CreateByTemplate();
138 push @results, $action->UpdateByTemplate();
139} else {
140 if ($ARGS{'Query'}) {
141 my $Tickets = RT::Tickets->new($session{'CurrentUser'});
142 $Tickets->FromSQL($ARGS{'Query'});
143
144 while (my $t = $Tickets->Next) {
145 $string .= "===Update-Ticket: " . $t->Id . "\n";
146 $string .= $action->GetUpdateTemplate($t);
147 $string .= "" . "\n";
148 }
149
150 $string .= "" . "\n";
151 $string .= "===# DO NOT EDIT BELOW THIS LINE#===\n";
152 $string .= "" . "\n";
153
154 while (my $t = $Tickets->Next) {
155 $string .= "===# DO NOT EDIT #===\n";
156 $string .= "===Base-Ticket: " . $t->Id . "\n";
157 $string .= $action->GetBaseTemplate($t);
158 $string .= "===# DO NOT EDIT #===\n";
159 $string .= "" . "\n";
160 }
161 } else {
162 $string .= "===Create-Ticket: ticket1\n";
163 $string .= $action->GetCreateTemplate();
164 }
165}
166</%INIT>