summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2010-11-27 14:45:25 +0100
committerYorhel <git@yorhel.nl>2010-11-27 14:45:25 +0100
commitc31bc7978b302c898e9c9b34abc14fd3249beaa7 (patch)
tree00f297653c259da5d8914f33af1f03ec25864757
parent107414db80313f551e55a185c06d16331164b21b (diff)
VN Filter Selector: Added length field filter
Has been requested quite often, now finally implemented.
-rw-r--r--data/lang.txt14
-rw-r--r--data/script.js6
-rw-r--r--lib/VNDB/DB/VN.pm4
-rw-r--r--lib/VNDB/Handler/VNBrowse.pm2
-rwxr-xr-xutil/jsgen.pl2
5 files changed, 26 insertions, 2 deletions
diff --git a/data/lang.txt b/data/lang.txt
index f5fec672..5e6af4b5 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -5663,6 +5663,20 @@ cs*:
hu*:
nl :
+:_vnbrowse_general
+en : General
+ru*:
+cs*:
+hu*:
+nl :
+
+:_vnbrowse_length
+en : Length
+ru*:
+cs*:
+hu*:
+nl :
+
:_vnbrowse_tags
en : Tags
ru*:
diff --git a/data/script.js b/data/script.js
index 1fbcab75..d6a22a1d 100644
--- a/data/script.js
+++ b/data/script.js
@@ -2023,6 +2023,9 @@ function filVN() {
var plat = platforms;
for(var i=0; i<plat.length; i++) // l10n /_plat_.+/
plat[i] = [ plat[i], mt('_plat_'+plat[i]) ];
+ var len = vn_lengths;
+ for(var i=0; i<len.length; i++) // l10n /_vnlength_.+/
+ len[i] = [ len[i], mt('_vnlength_'+len[i]) ];
// tag include/exclude dropdown search
var taginc = tag('input', {type:'text', 'class':'text', style:'width:350px', onfocus:filSelectField});
@@ -2048,6 +2051,9 @@ function filVN() {
return [
mt('_vnbrowse_fil_title'),
+ [ mt('_vnbrowse_general'),
+ filFSelect('length', mt('_vnbrowse_length'), 6, len)
+ ],
[ mt('_vnbrowse_tags'),
[ '', ' ', tag('('+mt('_vnbrowse_booland')+')') ],
[ 'taginc', mt('_vnbrowse_taginc'), taginc, readfunc, writefunc ],
diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm
index 11b7c29a..ff16a02f 100644
--- a/lib/VNDB/DB/VN.pm
+++ b/lib/VNDB/DB/VN.pm
@@ -10,7 +10,7 @@ use Encode 'decode_utf8';
our @EXPORT = qw|dbVNGet dbVNRevisionInsert dbVNImageId dbScreenshotAdd dbScreenshotGet dbScreenshotRandom|;
-# Options: id, rev, char, search, lang, plat, tags_include, tags_exclude, results, page, what, sort, reverse
+# Options: id, rev, char, search, length, lang, plat, tags_include, tags_exclude, results, page, what, sort, reverse
# What: extended anime relations screenshots relgraph rating ranking changes
# Sort: id rel pop rating title tagscore rand
sub dbVNGet {
@@ -29,6 +29,8 @@ sub dbVNGet {
'LOWER(SUBSTR(vr.title, 1, 1)) = ?' => $o{char} ) : (),
defined $o{char} && !$o{char} ? (
'(ASCII(vr.title) < 97 OR ASCII(vr.title) > 122) AND (ASCII(vr.title) < 65 OR ASCII(vr.title) > 90)' => 1 ) : (),
+ defined $o{length} ? (
+ 'vr.length IN(!l)' => [ ref $o{length} ? $o{length} : [$o{length}] ]) : (),
$o{lang} ? (
'v.c_languages && ARRAY[!l]::language[]' => [ ref $o{lang} ? $o{lang} : [$o{lang}] ]) : (),
$o{plat} ? (
diff --git a/lib/VNDB/Handler/VNBrowse.pm b/lib/VNDB/Handler/VNBrowse.pm
index 3a8ae7d5..db3fa58c 100644
--- a/lib/VNDB/Handler/VNBrowse.pm
+++ b/lib/VNDB/Handler/VNBrowse.pm
@@ -25,7 +25,7 @@ sub list {
);
return 404 if $f->{_err};
$f->{q} ||= $f->{sq};
- my $fil = fil_parse $f->{fil}, qw|taginc tagexc tagspoil lang plat|;
+ my $fil = fil_parse $f->{fil}, qw|length taginc tagexc tagspoil lang plat|;
_fil_compat($self, $fil);
if($f->{q}) {
diff --git a/util/jsgen.pl b/util/jsgen.pl
index 4b24cd86..03b79ab5 100755
--- a/util/jsgen.pl
+++ b/util/jsgen.pl
@@ -69,6 +69,7 @@ sub l10n {
my $val = $lang{$lang}{$key} || $lang{'en'}{$key};
$val =~ s/"/\\"/g;
$val =~ s/\n/\\n/g;
+ $val =~ s/\[index,.+$// if $key =~ /^_vnlength_/; # special casing the VN lengths, since the JS mt() doesn't handle [index]
$r .= sprintf qq| %s: "%s"|, $key !~ /^[a-z0-9_]+$/ ? "'$key'" : $key, $val;
}
$r .= "\n};";
@@ -111,6 +112,7 @@ sub jsgen {
$common .= sprintf "release_types = [ %s ];\n", join ', ', map qq{"$_"}, @{$S{release_types}};
$common .= sprintf "animated = [ %s ];\n", join ', ', @{$S{animated}};
$common .= sprintf "voiced = [ %s ];\n", join ', ', @{$S{voiced}};
+ $common .= sprintf "vn_lengths = [ %s ];\n", join ', ', @{$S{vn_lengths}};
$common .= sprintf "L10N_LANG = [ %s ];\n", join(', ', map qq{"$_"}, VNDB::L10N::languages());
open my $JS, '<:utf8', "$ROOT/data/script.js" or die $!;