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:
parent
0d2c4d6ba8
commit
45e8cdc233
3 changed files with 84 additions and 0 deletions
|
|
@ -6,6 +6,7 @@
|
||||||
- fixed #11788: Calendar - Can't enter Midnight - Broke page layout
|
- fixed #11788: Calendar - Can't enter Midnight - Broke page layout
|
||||||
- fixed #11855: Purging Shortcut from Trash causes loop
|
- fixed #11855: Purging Shortcut from Trash causes loop
|
||||||
- fixed #11865: URL with slash no longer works.
|
- fixed #11865: URL with slash no longer works.
|
||||||
|
- fixed #11861: addAttachment method removed from WebGUI 7 thus breaking the API
|
||||||
|
|
||||||
7.10.0
|
7.10.0
|
||||||
- fixed #11812: Checking www_ajaxSave's response in the cart js, urlencoding post parameters
|
- fixed #11812: Checking www_ajaxSave's response in the cart js, urlencoding post parameters
|
||||||
|
|
|
||||||
|
|
@ -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 ( )
|
=head2 cut ( )
|
||||||
|
|
||||||
Extend the base method to handle cutting the User Function Style template and destroying your site.
|
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;
|
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
|
=head2 www_edit
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,34 @@ is($att4->[1]->{url}, 'bar', 'rev still has bar');
|
||||||
is($att4->[2]->{url}, 'baz', 'rev does have new thing') or diag( $template3rev->get('attachmentsJson') );
|
is($att4->[2]->{url}, 'baz', 'rev does have new thing') or diag( $template3rev->get('attachmentsJson') );
|
||||||
is(@$att4, 3, 'rev is proper size');
|
is(@$att4, 3, 'rev is proper size');
|
||||||
|
|
||||||
|
$template3rev->addAttachments([{ url => 'box', type => 'headScript', }, { url => 'bux', type => 'headScript', }, ]);
|
||||||
|
cmp_deeply(
|
||||||
|
[ map { $_->{url} } @{ $template3rev->getAttachments('headScript') } ],
|
||||||
|
[qw/foo bar baz box bux/],
|
||||||
|
'addAttachments appends to the end'
|
||||||
|
) or diag $template3rev->get('attachmentsJson');
|
||||||
|
|
||||||
|
$template3rev->removeAttachments(['box']);
|
||||||
|
cmp_deeply(
|
||||||
|
[ map { $_->{url} } @{ $template3rev->getAttachments('headScript') } ],
|
||||||
|
[qw/foo bar baz bux/],
|
||||||
|
'removeAttachments will remove urls by exact URL match'
|
||||||
|
) or diag $template3rev->get('attachmentsJson');
|
||||||
|
|
||||||
|
$template3rev->removeAttachments(['bu']);
|
||||||
|
cmp_deeply(
|
||||||
|
[ map { $_->{url} } @{ $template3rev->getAttachments('headScript') } ],
|
||||||
|
[qw/foo bar baz bux/],
|
||||||
|
'... checking that it is not treated like a wildcard'
|
||||||
|
) or diag $template3rev->get('attachmentsJson');
|
||||||
|
|
||||||
|
$template3rev->removeAttachments();
|
||||||
|
cmp_deeply(
|
||||||
|
[ map { $_->{url} } @{ $template3rev->getAttachments('headScript') } ],
|
||||||
|
[ ],
|
||||||
|
'... checking that all attachments are removed'
|
||||||
|
) or diag $template3rev->get('attachmentsJson');
|
||||||
|
|
||||||
$template3rev->purgeRevision();
|
$template3rev->purgeRevision();
|
||||||
|
|
||||||
## Check how templates in the trash and clipboard are handled.
|
## Check how templates in the trash and clipboard are handled.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue