summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2011-01-01 15:05:34 +0100
committerYorhel <git@yorhel.nl>2011-01-01 15:08:16 +0100
commit5ac3d668fb56961aa43f824feb7dc3407b8eb33e (patch)
tree6732ce519be25bb5de67f39e300469a4777f1fa8 /lib/VNDB/Handler
parent7fd5b49039f5e9b3367a0a9025f695eeabbcd318 (diff)
More infrastructural changes to accomodate for the permanent filters
- Added a 'prefs' option to htmlFooter() to add preference data for use by Javascript. - Added an /xml/prefs.xml URL for setting preferences from JS. - Added 'filter_*' keys to the prefs_key ENUM - Load filters by default on VN and Release browser
Diffstat (limited to 'lib/VNDB/Handler')
-rw-r--r--lib/VNDB/Handler/Misc.pm19
-rw-r--r--lib/VNDB/Handler/Releases.pm4
-rw-r--r--lib/VNDB/Handler/VNBrowse.pm4
3 files changed, 23 insertions, 4 deletions
diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm
index 8b4b8900..2d9932b1 100644
--- a/lib/VNDB/Handler/Misc.pm
+++ b/lib/VNDB/Handler/Misc.pm
@@ -16,6 +16,7 @@ YAWF::register(
qr{setlang}, \&setlang,
qr{nospam}, \&nospam,
qr{we-dont-like-ie}, \&iemessage,
+ qr{xml/prefs\.xml}, \&prefs,
qr{opensearch\.xml}, \&opensearch,
# redirects for old URLs
@@ -412,6 +413,24 @@ sub iemessage {
}
+sub prefs {
+ my $self = shift;
+ return if !$self->authCheckCode;
+ return 404 if !$self->authInfo->{id};
+ my $f = $self->formValidate(
+ { name => 'key', enum => [qw|filter_vn filter_release|] },
+ { name => 'value', required => 0, maxlength => 2000 },
+ );
+ return 404 if $f->{_err};
+ $self->authPref($f->{key}, $f->{value});
+
+ # doesn't really matter what we return, as long as it's XML
+ $self->resHeader('Content-type' => 'text/xml');
+ xml;
+ tag 'done', '';
+}
+
+
sub opensearch {
my $self = shift;
$self->resHeader('Content-Type' => 'application/opensearchdescription+xml');
diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm
index 9422a836..511db5b6 100644
--- a/lib/VNDB/Handler/Releases.pm
+++ b/lib/VNDB/Handler/Releases.pm
@@ -484,7 +484,7 @@ sub browse {
{ name => 'o', required => 0, default => 'a', enum => ['a', 'd'] },
{ name => 'q', required => 0, default => '', maxlength => 500 },
{ name => 's', required => 0, default => 'title', enum => [qw|released minage title|] },
- { name => 'fil',required => 0, default => '' },
+ { name => 'fil',required => 0, default => $self->authPref('filter_release') },
);
return 404 if $f->{_err};
@@ -550,7 +550,7 @@ sub browse {
end;
end;
}
- $self->htmlFooter;
+ $self->htmlFooter(prefs => [qw|filter_release|]);
}
diff --git a/lib/VNDB/Handler/VNBrowse.pm b/lib/VNDB/Handler/VNBrowse.pm
index 15407076..1060a256 100644
--- a/lib/VNDB/Handler/VNBrowse.pm
+++ b/lib/VNDB/Handler/VNBrowse.pm
@@ -21,7 +21,7 @@ sub list {
{ name => 'p', required => 0, default => 1, template => 'int' },
{ name => 'q', required => 0, default => '' },
{ name => 'sq', required => 0, default => '' },
- { name => 'fil',required => 0, default => '' },
+ { name => 'fil',required => 0, default => $self->authPref('filter_vn') },
);
return 404 if $f->{_err};
$f->{q} ||= $f->{sq};
@@ -65,7 +65,7 @@ sub list {
end; # /form
$self->htmlBrowseVN($list, $f, $np, "/v/$char?q=$f->{q};fil=$f->{fil}", $f->{fil} =~ /tag_inc-/);
- $self->htmlFooter;
+ $self->htmlFooter(prefs => ['filter_vn']);
}