AddAttachmentLinksToMail: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 3: | Line 3: | ||
<source lang="perl"><pre> | <source lang="perl"><pre> | ||
{ my $res; | { my $res; | ||
my $Attachments = $Transaction- | my $Attachments = $Transaction->Attachments; | ||
$Attachments- | $Attachments->Limit( FIELD => 'Filename', OPERATOR => '!=', VALUE => '' ); | ||
while (my $a = $Attachments- | while (my $a = $Attachments->Next) { | ||
$res .= "New attachments:\n" unless ($res); | $res .= "New attachments:\n" unless ($res); | ||
$res .= " ". $RT::WebURL ."/Ticket/Attachment/". $a- | $res .= " ". $RT::WebURL ."/Ticket/Attachment/". $a->TransactionId ."/". $a->id ."/". $a->Filename; | ||
} | } | ||
#Workaround to prevent possible commit death | #Workaround to prevent possible commit death | ||
delete($Transaction- | delete($Transaction->{attachments}); | ||
$res; | $res; | ||
} | } | ||
Line 20: | Line 20: | ||
<source lang="perl"><pre> | <source lang="perl"><pre> | ||
{ my $res; | { my $res; | ||
my $Attachments = $Transaction- | my $Attachments = $Transaction->Attachments; | ||
$Attachments- | $Attachments->Limit( FIELD => 'Filename', OPERATOR => '!=', VALUE => '' ); | ||
while (my $a = $Attachments- | while (my $a = $Attachments->Next) { | ||
$res .= $RT::WebURL ."/Ticket/Attachment/". $a- | $res .= $RT::WebURL ."/Ticket/Attachment/". $a->TransactionId ."/". $a->id ."/". $a->Filename; | ||
$res .= "\n "; | $res .= "\n "; | ||
} | } | ||
#Workaround to prevent possible commit death | #Workaround to prevent possible commit death | ||
delete($Transaction- | delete($Transaction->{attachments}); | ||
$res = length($res) ? ' Attachments: ' . $res : ''; | $res = length($res) ? ' Attachments: ' . $res : ''; | ||
} | } | ||
Line 37: | Line 37: | ||
<source lang="perl"><pre> | <source lang="perl"><pre> | ||
{ my $res; | { my $res; | ||
my $Attachments = RT::Attachments- | my $Attachments = RT::Attachments->new( $Transaction->CurrentUser ); | ||
$Attachments- | $Attachments->Columns( qw(id TransactionId Filename ContentType Created)); | ||
my $transactions = $Attachments- | my $transactions = $Attachments->NewAlias('Transactions'); | ||
$Attachments- | $Attachments->Join( | ||
ALIAS1 = | ALIAS1 => 'main', | ||
FIELD1 = | FIELD1 => 'TransactionId', | ||
ALIAS2 = | ALIAS2 => $transactions, | ||
FIELD2 = | FIELD2 => 'id' | ||
); | ); | ||
my $tickets = $Attachments- | my $tickets = $Attachments->NewAlias('Tickets'); | ||
$Attachments- | $Attachments->Join( | ||
ALIAS1 = | ALIAS1 => $transactions, | ||
FIELD1 = | FIELD1 => 'ObjectId', | ||
ALIAS2 = | ALIAS2 => $tickets, | ||
FIELD2 = | FIELD2 => 'id' | ||
); | ); | ||
$Attachments- | $Attachments->Limit( | ||
ALIAS = | ALIAS => $transactions, | ||
FIELD = | FIELD => 'ObjectType', | ||
VALUE = | VALUE => 'RT::Ticket' | ||
); | ); | ||
$Attachments- | $Attachments->Limit( | ||
ALIAS = | ALIAS => $tickets, | ||
FIELD = | FIELD => 'EffectiveId', | ||
VALUE = | VALUE => $Ticket->id | ||
); | ); | ||
$Attachments- | $Attachments->Limit( FIELD => 'Filename', OPERATOR => '!=', VALUE => '' ); | ||
while (my $a = $Attachments- | while (my $a = $Attachments->Next) { | ||
$res .= "Ticket's attachments:\n" unless ($res); | $res .= "Ticket's attachments:\n" unless ($res); | ||
$res .= " ". $RT::WebURL ."/Ticket/Attachment/". $a- | $res .= " ". $RT::WebURL ."/Ticket/Attachment/". $a->TransactionId ."/". $a->id ."/". $a->Filename; | ||
} | } | ||
$res; | $res; | ||
} | } | ||
</pre></source> | </pre></source> |
Latest revision as of 06:10, 4 March 2019
This code adds list of links to files which was attached to the transaction template runs on, this mean only attachments that was attached to the current transaction, Add code into Template.
<pre>
{ my $res;
my $Attachments = $Transaction->Attachments;
$Attachments->Limit( FIELD => 'Filename', OPERATOR => '!=', VALUE => '' );
while (my $a = $Attachments->Next) {
$res .= "New attachments:\n" unless ($res);
$res .= " ". $RT::WebURL ."/Ticket/Attachment/". $a->TransactionId ."/". $a->id ."/". $a->Filename;
}
#Workaround to prevent possible commit death
delete($Transaction->{attachments});
$res;
}
</pre>
Or for a more verbose version to match the other headers (Jerrad):
<pre>
{ my $res;
my $Attachments = $Transaction->Attachments;
$Attachments->Limit( FIELD => 'Filename', OPERATOR => '!=', VALUE => '' );
while (my $a = $Attachments->Next) {
$res .= $RT::WebURL ."/Ticket/Attachment/". $a->TransactionId ."/". $a->id ."/". $a->Filename;
$res .= "\n ";
}
#Workaround to prevent possible commit death
delete($Transaction->{attachments});
$res = length($res) ? ' Attachments: ' . $res : '';
}
</pre>
To add links to all ticket's attachments use next Template snippet (works only with RT-3.4 and greater):
<pre>
{ my $res;
my $Attachments = RT::Attachments->new( $Transaction->CurrentUser );
$Attachments->Columns( qw(id TransactionId Filename ContentType Created));
my $transactions = $Attachments->NewAlias('Transactions');
$Attachments->Join(
ALIAS1 => 'main',
FIELD1 => 'TransactionId',
ALIAS2 => $transactions,
FIELD2 => 'id'
);
my $tickets = $Attachments->NewAlias('Tickets');
$Attachments->Join(
ALIAS1 => $transactions,
FIELD1 => 'ObjectId',
ALIAS2 => $tickets,
FIELD2 => 'id'
);
$Attachments->Limit(
ALIAS => $transactions,
FIELD => 'ObjectType',
VALUE => 'RT::Ticket'
);
$Attachments->Limit(
ALIAS => $tickets,
FIELD => 'EffectiveId',
VALUE => $Ticket->id
);
$Attachments->Limit( FIELD => 'Filename', OPERATOR => '!=', VALUE => '' );
while (my $a = $Attachments->Next) {
$res .= "Ticket's attachments:\n" unless ($res);
$res .= " ". $RT::WebURL ."/Ticket/Attachment/". $a->TransactionId ."/". $a->id ."/". $a->Filename;
}
$res;
}
</pre>