diff options
author | Yorhel <git@yorhel.nl> | 2008-11-22 16:09:08 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2008-11-22 16:09:08 +0100 |
commit | 0dd7477ce4334d04971e0fb1f29a34a1d097c7c9 (patch) | |
tree | 26344978fc0715ea6d33c122b8be35d239e8a14a /lib | |
parent | f4e77aa47e378dc26dc9c3b39ea9e39bb126b5f7 (diff) |
Made reverting to older VN revisions possible
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNDB/Handler/VNEdit.pm | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm index 7883a7d1..cc4f2107 100644 --- a/lib/VNDB/Handler/VNEdit.pm +++ b/lib/VNDB/Handler/VNEdit.pm @@ -7,15 +7,17 @@ use YAWF ':html'; YAWF::register( - qr{v(?:([1-9]\d*)/edit|/new)}, \&edit, + qr{v(?:([1-9]\d*)(?:\.([1-9]\d*))?/edit|/new)} + => \&edit, ); sub edit { - my($self, $vid) = @_; + my($self, $vid, $rev) = @_; - my $v = $vid && $self->dbVNGet(id => $vid, what => 'extended screenshots relations anime categories changes')->[0]; + my $v = $vid && $self->dbVNGet(id => $vid, what => 'extended screenshots relations anime categories changes', $rev ? (rev => $rev) : ())->[0]; return 404 if $vid && !$v->{id}; + $rev = undef if $v->{cid} == $v->{latest}; return $self->htmlDenied if !$self->authCan('edit') || $vid && ($v->{locked} && !$self->authCan('lock') || $v->{hidden} && !$self->authCan('del')); @@ -74,6 +76,7 @@ sub edit { } !exists $frm->{$_} && ($frm->{$_} = $b4{$_}) for (keys %b4); + $frm->{editsum} = sprintf 'Reverted to revision v%d.%d', $vid, $rev if $rev && !defined $frm->{editsum}; $self->htmlHeader(title => $vid ? "Edit $v->{title}" : 'Add a new visual novel'); $self->htmlMainTabs('v', $v, 'edit') if $vid; |