[Rt-commit] r4840 - in rtir/branches/1.9-EXPERIMENTAL: html/RTIR
html/RTIR/Elements html/RTIR/Incident html/RTIR/Tools
ruz at bestpractical.com
ruz at bestpractical.com
Fri Mar 24 22:01:50 EST 2006
Author: ruz
Date: Fri Mar 24 22:01:48 2006
New Revision: 4840
Modified:
rtir/branches/1.9-EXPERIMENTAL/ (props changed)
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Create.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Display.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Edit.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Elements/UpdateData
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/BulkAbandon.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Create.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Edit.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Reply.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Split.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Tools/ScriptedAction.html
rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Update.html
Log:
r1035 at cubic-pc: cubic | 2006-03-25 06:08:46 +0300
* fixes for attachments processing
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Create.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Create.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Create.html Fri Mar 24 22:01:48 2006
@@ -54,11 +54,18 @@
% $m->abort();
% }
+% unless ( $Split ) {
<form action="<% RT->Config->Get('WebPath') %>/RTIR/Create.html" method="post" enctype="multipart/form-data">
+% } else {
+<form action="<% RT->Config->Get('WebPath') %>/RTIR/Split.html" method="post" enctype="multipart/form-data">
+% }
<input type="hidden" name="id" value="new" />
<input type="hidden" name="Queue" value="<% $QueueObj->Name %>" />
<input type="hidden" name="Status" value="<% $Status || 'open' %>" />
<input type="hidden" name="Incident" value="<% $ARGS{Incident} %>" />
+% if ( $Split ) {
+<input type="hidden" name="Ticket" value="<% $ARGS{'TicketObj'}->Id %>" />
+% }
% my $parentvalue;
% if ($IncidentObj) {
% $parentvalue = $IncidentObj->Id;
@@ -333,12 +340,12 @@
$QueueObj->Load( $Queue ) || Abort( loc("Queue could not be loaded.") );
my ($Type) = $m->comp('/RTIR/Elements/Type', Queue => $Queue );
-if ($Type eq 'Incident') {
- return $m->comp("/RTIR/Incident/Create.html", %ARGS);
-}
if ($Type eq 'Block' && RT->Config->Get('RTIR_DisableBlocksQueue') ) {
Abort(loc("Blocks queue is disabled via config file"));
}
+if ( $m->comp_exists("/RTIR/$Type/Create.html") ) {
+ return $m->comp( "/RTIR/$Type/Create.html", %ARGS );
+}
my $Status;
if ($Queue eq "Incident Reports") {
@@ -375,17 +382,12 @@
}
}
-# delete temporary storage entry to make WebUI clean
-unless (keys %{$session{'Attachments'}} and $ARGS{'id'} eq 'new') {
- delete $session{'Attachments'};
-}
-
+$m->comp( 'SELF:ProcessAttachments', %ARGS );
my @results;
-if ( !$ARGS{'AddMoreAttach'} && $ARGS{'id'} eq 'new' ) {
+if ( !$ARGS{'AddAttachment'} && $ARGS{'id'} eq 'new' ) {
if ( $Type ne 'Investigation' || $ARGS{'Requestors'} ) {
- $m->comp( 'Display.html', %ARGS );
- $m->abort;
+ return $m->comp( 'Display.html', %ARGS );
} else {
push @results, loc( "Investigation launch failed: You must enter a correspondent.");
}
@@ -412,6 +414,7 @@
$Attachment => '';
</%ARGS>
<%INIT>
+use Data::Dumper; $RT::Logger->crit( Dumper( \%ARGS ) );
$session{'Attachments'} ||= {};
@@ -424,15 +427,15 @@
# store the uploaded attachment in session
if ( $Attachment ) {
- # strip leading directories
- $Attachment =~ s{^.*[\\/]}{};
+ my $filename = "$Attachment";
+ $filename =~ s{^.*[\\/]}{};
my $entity = MakeMIMEEntity(
- Subject => $Attachment,
+ Subject => $filename,
Body => '',
AttachmentFieldName => 'Attachment'
);
- $session{'Attachments'}{ $Attachment } = $entity;
+ $session{'Attachments'}{ $filename } = $entity;
$session{'i'}++;
}
</%INIT>
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Display.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Display.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Display.html Fri Mar 24 22:01:48 2006
@@ -224,11 +224,9 @@
my ($Type) = $m->comp('Elements/Type', Queue => $QueueObj->Name);
return $m->comp( '/Ticket/Display.html', %ARGS ) unless $Type;
-
if ($Type eq 'Block' && RT->Config->Get('RTIR_DisableBlocksQueue') ) {
Abort(loc("Blocks queue is disabled via config file"));
}
-
if ( $m->comp_exists("/RTIR/$Type/Display.html") ) {
return $m->comp("/RTIR/$Type/Display.html", %ARGS);
}
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Edit.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Edit.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Edit.html Fri Mar 24 22:01:48 2006
@@ -238,6 +238,9 @@
push @results, ProcessTicketCustomFieldUpdates( ARGSRef => \%ARGS );
push @results, ProcessTicketDates( TicketObj => $Ticket, ARGSRef => \%ARGS );
push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS );
+
+ # XXX: edit page has no message box or attachments form
+ $ARGS{UpdateAttachments} = delete $session{'Attachments'};
push @results, ProcessUpdateMessage( TicketObj => $Ticket, ARGSRef=>\%ARGS );
}
my $newstate = RT::IR::Ticket::FirstCustomFieldValue( $Ticket, '_RTIR_State' );
@@ -246,8 +249,7 @@
}
if( $ARGS{'SaveChanges'} && RT->Config->Get('DisplayAfterEdit', $session{'CurrentUser'}) ) {
- $m->comp("/RTIR/Display.html", results => [@results], %ARGS);
- $m->abort;
+ return $m->comp("/RTIR/Display.html", results => [@results], %ARGS);
}
# If they've gone and moved the ticket to somewhere they can't see, etc...
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Elements/UpdateData
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Elements/UpdateData (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Elements/UpdateData Fri Mar 24 22:01:48 2006
@@ -22,40 +22,30 @@
%#
%#
%# END LICENSE BLOCK
-<tr><td align="right"><&|/l&>Cc</&>:</td><td> <input name="UpdateCc" size="60"
-value="<% $ARGS{UpdateCc} %>" /><br />
+<tr><td align="right"><&|/l&>Cc</&>:</td><td><input name="UpdateCc" size="60" value="<% $UpdateCc %>" /><br />
<i><font size="-2">
<&|/l&>(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)</&></font></i>
</td></tr>
-<tr><td align="right"><&|/l&>Bcc</&>:</td><td> <input name="UpdateBcc" size="60" value="<%$ARGS{UpdateBcc}%>" /><br />
+
+<tr><td align="right"><&|/l&>Bcc</&>:</td><td><input name="UpdateBcc" size="60" value="<% $UpdateBcc %>" /><br />
<i><font size="-2">
<&|/l&>(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)</&></font></i>
</td></tr>
-% if (exists $session{'Attachments'}) {
-<td>
-<&|/l&>Attached file</&>:
-</td>
-<td colspan="5">
-<&|/l&>Check box to delete</&><br />
-% foreach my $attach_name (keys %{$session{'Attachments'}}) {
-<input type="checkbox" name="DeleteAttach-<%$attach_name%>" /><%$attach_name%><br />
-% } # end of foreach
-</td>
-</tr>
-<tr>
-% } # end of if
-<tr><td align="right"><&|/l&>Attach</&>:</td><td><input name="Attach" type="file" /><input type="submit" name="AddMoreAttach" value="<&|/l&>Add More Files</&>" /><input type="hidden" name="UpdateAttach" value="1" />
-</td></tr>
+
+<tr><td colspan="2"><& /RTIR/Create.html:AttachmentsForm &></td></tr>
+
<tr><td align="right" valign="top"><&|/l&>Message</&>:</td><td>
<& /Elements/Callback, Page => '/Ticket/Update.html',_CallbackName => 'BeforeMessageBox', %ARGS &>
-% if (exists $ARGS{UpdateContent}) {
+% if ( exists $ARGS{'UpdateContent'} ) {
% delete $ARGS{'QuoteTransaction'};
-<& /Elements/MessageBox, Name=>"UpdateContent", Default=>$ARGS{UpdateContent}, %ARGS&>
+<& /Elements/MessageBox, Name => "UpdateContent", Default => $ARGS{'UpdateContent'}, %ARGS &>
% } else {
-<& /Elements/MessageBox, Name=>"UpdateContent", %ARGS &>
+<& /Elements/MessageBox, Name => "UpdateContent", %ARGS &>
% }
</td></tr>
<%ARGS>
$Ticket => undef
+$UpdateCc => ''
+$UpdateBcc => ''
</%ARGS>
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/BulkAbandon.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/BulkAbandon.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/BulkAbandon.html Fri Mar 24 22:01:48 2006
@@ -87,9 +87,10 @@
my ( @results );
+$m->comp( '/RTIR/Create.html:ProcessAttachments', %ARGS );
+
if ( $ARGS{'BulkAbandon'} ) {
my @tempresults;
-
foreach my $id ( @SelectedTickets ) {
$m->out('<!-- Processing <% $t->id %> -->'); $m->flush_buffer;
@@ -114,6 +115,7 @@
my $members = new RT::Tickets( $t->CurrentUser );
$members->FromSQL( $query );
while( my $member = $members->Next ) {
+ $ARGS{'UpdateAttachments'} = delete $session{'Attachments'} if $session{'Attachments'};
push @tempresults, ProcessUpdateMessage(TicketObj => $member, ARGSRef => \%ARGS );
}
}
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Create.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Create.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Create.html Fri Mar 24 22:01:48 2006
@@ -192,15 +192,10 @@
my $QueueObj = new RT::Queue( $session{'CurrentUser'} );
$QueueObj->Load( 'Incidents' ) || Abort( loc("Queue could not be loaded.") );
-my $TicketObj = $ARGS{TicketObj};
+my $TicketObj = $ARGS{TicketObj}; #XXX: .html(public) pages shouldn't take objects as argument
$m->comp( '/RTIR/Create.html:ProcessAttachments', %ARGS );
-# delete temporary storage entry to make WebUI clean
-unless ( keys %{ $session{'Attachments'} } && $ARGS{'id'} eq 'new' ) {
- delete $session{'Attachments'};
-}
-
if ( $CreateIncident ) {
my ($inc_obj, @tmp);
($inc_obj, @tmp) = $m->comp(
@@ -231,8 +226,7 @@
}
}
if( $inc_obj ) {
- $m->comp('Display.html', id => $inc_obj->id, results => \@results );
- return;
+ return $m->comp('Display.html', id => $inc_obj->id, results => \@results );
}
}
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Edit.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Edit.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Edit.html Fri Mar 24 22:01:48 2006
@@ -155,6 +155,7 @@
push @results, ProcessTicketCustomFieldUpdates(ARGSRef => \%ARGS);
push @results, ProcessTicketDates( TicketObj => $Ticket, ARGSRef => \%ARGS);
push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS);
+ $ARGS{UpdateAttachments} = $session{'Attachments'};
push @results, ProcessUpdateMessage( TicketObj => $Ticket, ARGSRef=>\%ARGS );
}
my $newstate = RT::IR::Ticket::FirstCustomFieldValue( $Ticket, '_RTIR_State' );
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Reply.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Reply.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Incident/Reply.html Fri Mar 24 22:01:48 2006
@@ -112,6 +112,8 @@
}
}
+$m->comp( '/RTIR/Create.html:ProcessAttachments', %ARGS );
+
if ( $SubmitTicket ) {
foreach my $id( @SelectedTickets ) {
my $Ticket = RT::Ticket->new( $session{'CurrentUser'} );
@@ -124,6 +126,7 @@
my $oldstate = RT::IR::Ticket::FirstCustomFieldValue( $Ticket, '_RTIR_State' );
my @tempresults;
+ $ARGS{'UpdateAttachments'} = delete $session{'Attachments'} if $session{'Attachments'};
push @tempresults, ProcessUpdateMessage( TicketObj => $Ticket, ARGSRef => \%ARGS );
unless ( RT::IR::Ticket::IsLinkedToActiveIncidents( $Ticket, $IncidentObj ) ) {
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Split.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Split.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Split.html Fri Mar 24 22:01:48 2006
@@ -22,42 +22,44 @@
%#
%#
%# END LICENSE BLOCK
+
<& /RTIR/Create.html,
- Split => 1,
- Incident => $Incident,
- QuoteTransaction => $QuoteTransaction,
Queue => $TicketObj->QueueObj->Name,
Subject => $TicketObj->Subject,
Requestors => $TicketObj->RequestorAddresses,
Cc => $TicketObj->CcAddresses,
AdminCc => $TicketObj->AdminCcAddresses,
- TicketObj => $TicketObj,
Status => $TicketObj->Status,
Owner => $TicketObj->Owner,
InitialPriority => $TicketObj->InitialPriority,
FinalPriority => $TicketObj->FinalPriority,
+
+ %ARGS,
+
+ Split => 1,
+ TicketObj => $TicketObj,
+ Incident => $Incident,
&>
<%INIT>
-my $TicketObj = LoadTicket($Ticket);
+my $TicketObj = LoadTicket( $Ticket );
-my ($Type) = $m->comp('Elements/Type', Ticket => $TicketObj->Id);
-if ($Type eq 'Incident') {
- $m->comp("/RTIR/Incident/Split.html", %ARGS);
- $m->abort;
+my ($Type) = $m->comp('Elements/Type', TicketObj => $TicketObj );
+if ( $m->comp_exists("/RTIR/$Type/Split.html") ) {
+ return $m->comp( "/RTIR/$Type/Split.html", %ARGS );
}
my $query = "Queue = 'Incidents' AND HasMember = " . $TicketObj->Id;
-my $incidents = new RT::Tickets($session{'CurrentUser'});
+my $incidents = new RT::Tickets( $session{'CurrentUser'} );
$incidents->FromSQL( $query );
-my $obj = $incidents->First;
-my $Incident;
-$Incident = $obj->Id if $obj && $obj->Id;
+my $Incident;
+if ( my $obj = $incidents->First ) {
+ $Incident = $obj->Id;
+}
</%INIT>
<%ARGS>
-$MemberOf => undef
$QuoteTransaction => undef
$Ticket => undef
</%ARGS>
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Tools/ScriptedAction.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Tools/ScriptedAction.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Tools/ScriptedAction.html Fri Mar 24 22:01:48 2006
@@ -423,7 +423,7 @@
# the content will be part of the template, if desired
$ARGS{'UpdateContent'} = " ";
- $ARGS{UpdateAttachments} = $session{'Attachments'};
+ $ARGS{UpdateAttachments} = delete $session{'Attachments'};
push @updateresults, ProcessUpdateMessage( ARGSRef => \%ARGS,
TicketObj=>$Ticket );
Modified: rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Update.html
==============================================================================
--- rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Update.html (original)
+++ rtir/branches/1.9-EXPERIMENTAL/html/RTIR/Update.html Fri Mar 24 22:01:48 2006
@@ -114,7 +114,6 @@
$name = $Type;
}
-
$DefaultStatus ||= $ARGS{'Status'} || $Ticket->Status;
$DefaultStatus = 'open' if $DefaultStatus eq 'new';
@@ -165,38 +164,7 @@
$Ticket->CurrentUserHasRight('ModifyTicket') );
-# {{{ 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?
- $session{'Attachments'} = {} unless defined $session{'Attachments'};
-
- # strip leading directories
- $ARGS{'Attach'} =~ s#^.*[\\/]##;
-
- my $attachment = MakeMIMEEntity(
- Subject => "$ARGS{'Attach'}",
- Body => "",
- AttachmentFieldName => 'Attach'
- );
- $session{'Attachments'} = {
- %{$session{'Attachments'} || {}},
- $ARGS{'Attach'} => $attachment,
- };
-}
-# }}}
-
-# delete temporary storage entry to make WebUI clean
-unless (keys %{$session{'Attachments'}} and $ARGS{'UpdateAttach'}) {
- delete $session{'Attachments'};
-}
-# }}}
+$m->comp( '/RTIR/Create.html:ProcessAttachments', %ARGS );
if ( exists $ARGS{SubmitTicket} ) {
$m->comp('/RTIR/Display.html', %ARGS);
More information about the Rt-commit
mailing list