Restore addAttachments and restoreAttachments to the 7.x series. In 8.x, the object property will act like an arrayref, so they won't be necessary. Fixes bug #11861.

This commit is contained in:
Colin Kuskie 2010-09-14 10:42:59 -07:00
parent 0d2c4d6ba8
commit 45e8cdc233
3 changed files with 84 additions and 0 deletions

View file

@ -139,6 +139,34 @@ These methods are available from this class:
#-------------------------------------------------------------------
=head2 addAttachments ( new_attachments )
Adds attachments to this template. New attachments are added to the end of the current set of
attachments.
=head3 new_attachments
An arrayref of hashrefs, where each hashref should have at least url and type. All
other keys will be ignored.
=cut
sub addAttachments {
my ($self, $new_attachments) = @_;
my $attachments = $self->getAttachments();
foreach my $a (@{ $new_attachments }) {
push @{ $attachments }, {
url => $a->{url},
type => $a->{type},
};
}
my $json = JSON->new->encode( $attachments );
$self->update({ attachmentsJson => $json, });
}
#-------------------------------------------------------------------
=head2 cut ( )
Extend the base method to handle cutting the User Function Style template and destroying your site.
@ -661,6 +689,33 @@ around purge => sub {
return $returnValue;
};
#-------------------------------------------------------------------
=head2 removeAttachments ( urls )
Removes attachments.
=head3 urls
C<urls> is an arrayref of URLs to remove. If C<urls>
is not defined, will remove all attachments for this revision.
=cut
sub removeAttachments {
my ($self, $urls) = @_;
my @attachments = ();
if ($urls) {
@attachments = grep { ! ($_->{url} ~~ $urls) } @{ $self->getAttachments() };
}
my $json = JSON->new->encode( \@attachments );
$self->update({ attachmentsJson => $json, });
}
#-------------------------------------------------------------------
=head2 www_edit