summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/Tags.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNDB/Handler/Tags.pm')
-rw-r--r--lib/VNDB/Handler/Tags.pm33
1 files changed, 32 insertions, 1 deletions
diff --git a/lib/VNDB/Handler/Tags.pm b/lib/VNDB/Handler/Tags.pm
index 521d4fc8..a8558575 100644
--- a/lib/VNDB/Handler/Tags.pm
+++ b/lib/VNDB/Handler/Tags.pm
@@ -17,6 +17,7 @@ YAWF::register(
qr{v([1-9]\d*)/tagmod}, \&vntagmod,
qr{u([1-9]\d*)/tags}, \&usertags,
qr{g}, \&tagindex,
+ qr{g/debug}, \&fulltree,
qr{xml/tags\.xml}, \&tagxml,
);
@@ -34,7 +35,7 @@ sub tagpage {
{ name => 'm', required => 0, default => -1, enum => [qw|0 1 2|] },
);
return 404 if $f->{_err};
- my $tagspoil = $self->reqCookie('tagspoil');
+ my $tagspoil = $self->reqCookie($self->{cookie_prefix}.'tagspoil');
$f->{m} = $tagspoil =~ /^[0-2]$/ ? $tagspoil : 0 if $f->{m} == -1;
my($list, $np) = $t->{meta} || $t->{state} != 2 ? ([],0) : $self->dbVNGet(
@@ -591,6 +592,36 @@ sub tagindex {
}
+# non-translatable debug page
+sub fulltree {
+ my $self = shift;
+ return $self->htmlDenied if !$self->authCan('tagmod');
+
+ my $e;
+ $e = sub {
+ my $lst = shift;
+ ul style => 'list-style-type: none; margin-left: 15px';
+ for (@$lst) {
+ li;
+ txt '> ';
+ a href => "/g$_->{id}", $_->{name};
+ b class => 'grayedout', " ($_->{c_vns})" if $_->{c_vns};
+ end;
+ $e->($_->{sub}) if $_->{sub};
+ }
+ end;
+ };
+
+ my $tags = $self->dbTagTree(0, 25);
+ $self->htmlHeader(title => '[DEBUG] Tag tree', noindex => 1);
+ div class => 'mainbox';
+ h1 '[DEBUG] Tag tree';
+ $e->($tags);
+ end;
+ $self->htmlFooter;
+}
+
+
sub tagxml {
my $self = shift;