diff options
Diffstat (limited to 'lib/VNDB/Handler/Releases.pm')
-rw-r--r-- | lib/VNDB/Handler/Releases.pm | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index 6850d20c..a5ac1054 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -47,7 +47,7 @@ sub page { [ original => 'Original title', diff => 1 ], [ gtin => 'JAN/UPC/EAN', serialize => sub { $_[0]||'[none]' } ], [ catalog => 'Catalog number', serialize => sub { $_[0]||'[none]' } ], - [ language => 'Language', serialize => sub { $self->{languages}{$_[0]} } ], + [ languages => 'Language', join => ', ', split => sub { map $self->{languages}{$_}, @{$_[0]} } ], [ website => 'Website', ], [ released => 'Release date', htmlize => sub { datestr $_[0] } ], [ minage => 'Age rating', serialize => sub { $self->{age_ratings}{$_[0]}[0] } ], @@ -127,8 +127,11 @@ sub _infotable { Tr ++$i % 2 ? (class => 'odd') : (); td 'Language'; td; - cssicon "lang $r->{language}", $self->{languages}{$r->{language}}; - txt ' '.$self->{languages}{$r->{language}}; + for (@{$r->{languages}}) { + cssicon "lang $_", $self->{languages}{$_}; + txt ' '.$self->{languages}{$_}; + br if $_ ne $r->{languages}[$#{$r->{languages}}]; + } end; end; @@ -281,7 +284,7 @@ sub edit { my $vn = $rid ? $r->{vn} : [{ vid => $vid, title => $v->{title} }]; my %b4 = !$rid ? () : ( - (map { $_ => $r->{$_} } qw|type title original gtin catalog language website released + (map { $_ => $r->{$_} } qw|type title original gtin catalog languages website released notes minage platforms patch resolution voiced freeware doujin ani_story ani_ero|), media => join(',', sort map "$_->{medium} $_->{qty}", @{$r->{media}}), producers => join('|||', map "$_->{id},$_->{name}", sort { $a->{id} <=> $b->{id} } @{$r->{producers}}), @@ -300,7 +303,7 @@ sub edit { { name => 'gtin', required => 0, default => '0', func => [ \>intype, 'Not a valid JAN/UPC/EAN code' ] }, { name => 'catalog', required => 0, default => '', maxlength => 50 }, - { name => 'language', enum => [ keys %{$self->{languages}} ] }, + { name => 'languages', multi => 1, enum => [ keys %{$self->{languages}} ] }, { name => 'website', required => 0, default => '', template => 'url' }, { name => 'released', required => 0, default => 0, template => 'int' }, { name => 'minage' , required => 0, default => -1, enum => [ keys %{$self->{age_ratings}} ] }, @@ -332,7 +335,7 @@ sub edit { !grep !/^(platforms|producers|vn)$/ && $frm->{$_} ne $b4{$_}, keys %b4; my %opts = ( - (map { $_ => $frm->{$_} } qw| type title original gtin catalog language website released + (map { $_ => $frm->{$_} } qw| type title original gtin catalog languages website released notes minage platforms resolution editsum patch voiced freeware doujin ani_story ani_ero|), vn => $new_vn, producers => $producers, @@ -351,7 +354,7 @@ sub edit { } !defined $frm->{$_} && ($frm->{$_} = $b4{$_}) for keys %b4; - $frm->{language} = 'ja' if !$rid && !defined $frm->{lang}; + $frm->{languages} = ['ja'] if !$rid && !defined $frm->{languages}; $frm->{editsum} = sprintf 'Reverted to revision r%d.%d', $rid, $rev if $rev && !defined $frm->{editsum}; $self->htmlHeader(js => 'forms', title => $rid ? 'Edit '.$r->{title} : 'Add release to '.$v->{title}, noindex => 1); @@ -376,7 +379,7 @@ sub _form { [ input => short => 'title', name => 'Title (romaji)', width => 300 ], [ input => short => 'original', name => 'Original title', width => 300 ], [ static => content => 'The original title of this release, leave blank if it already is in the Latin alphabet.' ], - [ select => short => 'language', name => 'Language', + [ select => short => 'languages', name => 'Language(s)', multi => 1, options => [ map [ $_, "$_ ($self->{languages}{$_})" ], sort keys %{$self->{languages}} ] ], [ input => short => 'gtin', name => 'JAN/UPC/EAN' ], [ input => short => 'catalog', name => 'Catalog number' ], @@ -532,7 +535,7 @@ sub browse { td class => 'tc2', $l->{minage} > -1 ? $self->{age_ratings}{$l->{minage}}[0] : ''; td class => 'tc3'; $_ ne 'oth' && cssicon $_, $self->{platforms}{$_} for (@{$l->{platforms}}); - cssicon "lang $l->{language}", $self->{languages}{$l->{language}}; + cssicon "lang $_", $self->{languages}{$_} for (@{$l->{languages}}); cssicon lc(substr($self->{release_types}[$l->{type}],0,3)), $self->{release_types}[$l->{type}]; end; td class => 'tc4'; |