summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2008-11-22 16:09:08 +0100
committerYorhel <git@yorhel.nl>2008-11-22 16:09:08 +0100
commit0dd7477ce4334d04971e0fb1f29a34a1d097c7c9 (patch)
tree26344978fc0715ea6d33c122b8be35d239e8a14a /lib
parentf4e77aa47e378dc26dc9c3b39ea9e39bb126b5f7 (diff)
Made reverting to older VN revisions possible
Diffstat (limited to 'lib')
-rw-r--r--lib/VNDB/Handler/VNEdit.pm9
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;