diff options
author | Matthew Somerville <matthew@mysociety.org> | 2016-01-08 11:27:12 +0000 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2016-01-08 11:27:12 +0000 |
commit | 5c1f5df6e9942f307cade6215074c3d004da14c0 (patch) | |
tree | b9b32123e698c88a517cee0849272c7a02c24912 /perllib/FixMyStreet/App/Model/PhotoSet.pm | |
parent | 98c4305003a7fdd468822cd45a605dd935943f72 (diff) |
Handle multiple photo rotation/removal in admin.
Diffstat (limited to 'perllib/FixMyStreet/App/Model/PhotoSet.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Model/PhotoSet.pm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/App/Model/PhotoSet.pm b/perllib/FixMyStreet/App/Model/PhotoSet.pm index e8396b5aa..7b95e93d4 100644 --- a/perllib/FixMyStreet/App/Model/PhotoSet.pm +++ b/perllib/FixMyStreet/App/Model/PhotoSet.pm @@ -239,6 +239,28 @@ sub delete_cached { ); } +sub remove_images { + my ($self, $ids) = @_; + + my @images = $self->all_images; + my $dec = 0; + for (sort { $a <=> $b } @$ids) { + splice(@images, $_ + $dec, 1); + --$dec; + } + my @items = map $_->[0], @images; + + my $new_set = (ref $self)->new({ + data_items => \@items, + c => $self->c, + object => $self->object, + }); + + $self->delete_cached(); + + return $new_set->data; # e.g. new comma-separated fileid +} + sub rotate_image { my ($self, $index, $direction) = @_; |