diff options
author | Yorhel <git@yorhel.nl> | 2010-11-27 14:45:25 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2010-11-27 14:45:25 +0100 |
commit | c31bc7978b302c898e9c9b34abc14fd3249beaa7 (patch) | |
tree | 00f297653c259da5d8914f33af1f03ec25864757 | |
parent | 107414db80313f551e55a185c06d16331164b21b (diff) |
VN Filter Selector: Added length field filter
Has been requested quite often, now finally implemented.
-rw-r--r-- | data/lang.txt | 14 | ||||
-rw-r--r-- | data/script.js | 6 | ||||
-rw-r--r-- | lib/VNDB/DB/VN.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNBrowse.pm | 2 | ||||
-rwxr-xr-x | util/jsgen.pl | 2 |
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 $!; |