diff options
-rw-r--r-- | data/lang.txt | 48 | ||||
-rw-r--r-- | data/style.css | 8 | ||||
-rw-r--r-- | lib/VNDB/DB/VN.pm | 10 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNPage.pm | 65 |
4 files changed, 30 insertions, 101 deletions
diff --git a/data/lang.txt b/data/lang.txt index 663b4ed4..2ce45fe5 100644 --- a/data/lang.txt +++ b/data/lang.txt @@ -6242,18 +6242,6 @@ tr*: uk*: it*: -:_staff_col_credit -en : Credit -ru*: -cs*: -hu*: -nl*: -de : -es*: -tr*: -uk*: -it*: - :_staff_col_note en : Note ru*: @@ -15586,18 +15574,6 @@ tr : karakterler uk : персонажі it : personaggi -:_vnpage_tab_staff -en : staff -ru*: -cs*: -hu*: -nl*: -de : Stab -es*: -tr*: -uk*: -it*: - :_vnpage_rel en : Releases ru : Выпуски @@ -15733,30 +15709,6 @@ tr*: uk*: it*: -:_vnpage_staff_add -en : add staff -ru*: -cs*: -hu*: -nl*: -de : Stab hinzufügen -es*: -tr*: -uk*: -it*: - -:_vnpage_staff_edit -en : edit staff -ru*: -cs*: -hu*: -nl*: -de : Stab bearbeiten -es*: -tr*: -uk*: -it*: - :_vnpage_rel_add en : add release ru : добавить выпуск diff --git a/data/style.css b/data/style.css index f42d2a3a..e3404883 100644 --- a/data/style.css +++ b/data/style.css @@ -604,9 +604,13 @@ table.aliases td { padding: 0 5px; } table.aliases td.key { padding: 0 5px 0 0; width: auto } -/***** Staff display *****/ +/***** Staff display on VN pages *****/ -div.staff td { white-space: nowrap; padding-left: 20px; padding-right: 20px; } +div.staff ul { list-style: none; margin: 5px 15px; float: left; min-width: 300px } +div.staff li b.grayedout { margin-left: 10px } + +div.staff td.tc1, +div.staff td.tc2 { white-space: nowrap; padding-left: 20px; padding-right: 20px; } /***** Staff edit *****/ diff --git a/lib/VNDB/DB/VN.pm b/lib/VNDB/DB/VN.pm index f7c2dc94..b7474570 100644 --- a/lib/VNDB/DB/VN.pm +++ b/lib/VNDB/DB/VN.pm @@ -7,7 +7,7 @@ use Exporter 'import'; use VNDB::Func 'gtintype', 'normalize_query'; use Encode 'decode_utf8'; -our @EXPORT = qw|dbVNGet dbVNGetRev dbVNRevisionInsert dbVNImageId dbScreenshotAdd dbScreenshotGet dbScreenshotRandom dbVNHasChar dbVNHasStaff dbVNImportSeiyuu|; +our @EXPORT = qw|dbVNGet dbVNGetRev dbVNRevisionInsert dbVNImageId dbScreenshotAdd dbScreenshotGet dbScreenshotRandom dbVNHasChar dbVNImportSeiyuu|; # Options: id, char, search, length, lang, olang, plat, tag_inc, tag_exc, tagspoil, @@ -344,14 +344,6 @@ sub dbVNHasChar { } -sub dbVNHasStaff { - my($self, $vid) = @_; - return $self->dbRow( - 'SELECT 1 AS exists FROM vn_staff WHERE id = ? UNION ALL SELECT 1 FROM vn_seiyuu WHERE id = ? LIMIT 1', $vid, $vid - )->{exists}; -} - - # returns seiyuus that voice characters referenced by $cids in VNs other than $vid sub dbVNImportSeiyuu { my($self, $vid, $cids) = @_; diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm index 02d14139..d5461c1c 100644 --- a/lib/VNDB/Handler/VNPage.pm +++ b/lib/VNDB/Handler/VNPage.pm @@ -11,7 +11,8 @@ TUWF::register( qr{v/rand} => \&rand, qr{v([1-9]\d*)/rg} => \&rg, qr{v([1-9]\d*)/releases} => \&releases, - qr{v([1-9]\d*)/(chars|staff)} => \&page, + qr{v([1-9]\d*)/chars} => \&page, + qr{v([1-9]\d*)/staff} => sub { $_[0]->resRedirect("/v$_[1]#staff") }, qr{v([1-9]\d*)(?:\.([1-9]\d*))?} => \&page, ); @@ -330,13 +331,12 @@ sub page { my($self, $vid, $rev) = @_; my $char = $rev && $rev eq 'chars'; - my $staff = $rev && $rev eq 'staff'; - $rev = undef if $char || $staff; + $rev = undef if $char; my $method = $rev ? 'dbVNGetRev' : 'dbVNGet'; my $v = $self->$method( id => $vid, - what => 'extended anime relations screenshots rating ranking'.($staff || $rev ? ' credits' : ''), + what => 'extended anime relations screenshots rating ranking credits', $rev ? (rev => $rev) : (), )->[0]; return $self->resNotFound if !$v->{id}; @@ -465,26 +465,15 @@ sub page { end 'div'; # /mainbox my $haschar = $self->dbVNHasChar($v->{id}); - my $hasstaff = $self->dbVNHasStaff($v->{id}); - if($haschar || $hasstaff || $self->authCan('edit')) { + if($haschar || $self->authCan('edit')) { clearfloat; # fix tabs placement when tags are hidden ul class => 'maintabs notfirst'; - if($haschar || $hasstaff) { - li class => 'left '.(!($char || $staff) && ' tabselected'); a href => "/v$v->{id}#main", name => 'main', mt '_vnpage_tab_main'; end; - if ($haschar) { - li class => 'left '.($char ? ' tabselected' : ''); a href => "/v$v->{id}/chars#chars", name => 'chars', mt '_vnpage_tab_chars'; end; - } - if ($hasstaff) { - li class => 'left '.($staff ? ' tabselected' : ''); a href => "/v$v->{id}/staff#staff", name => 'staff', mt '_vnpage_tab_staff'; end; - } + if($haschar) { + li class => 'left '.(!$char ? ' tabselected' : ''); a href => "/v$v->{id}#main", name => 'main', mt '_vnpage_tab_main'; end; + li class => 'left '.($char ? ' tabselected' : ''); a href => "/v$v->{id}/chars#chars", name => 'chars', mt '_vnpage_tab_chars'; end; } if($self->authCan('edit')) { li; a href => "/c/new?vid=$v->{id}", mt '_vnpage_char_add'; end; - if(!$v->{locked}) { - li; - a href => "/v$v->{id}/edit#vn_staff", mt $hasstaff ? '_vnpage_staff_edit' : '_vnpage_staff_add'; - end; - } li; a href => "/v$v->{id}/add", mt '_vnpage_rel_add'; end; } end; @@ -492,10 +481,9 @@ sub page { if($char) { _chars($self, $haschar, $v); - } elsif ($staff) { - _staff($self, $v) if $hasstaff; } else { _releases($self, $v, $r); + _staff($self, $v); _stats($self, $v); _screenshots($self, $v, $r) if @{$v->{screenshots}}; } @@ -914,29 +902,22 @@ sub _chars { sub _staff { my ($self, $v) = @_; if(@{$v->{credits}}) { - div class => 'mainbox staff'; + div class => 'mainbox staff', id => 'staff'; h1 mt '_vnpage_staff'; - my $has_notes = grep { $_->{note} } @{$v->{credits}}; - table class => 'stripe'; - thead; - Tr; - td class => 'tc1', mt '_staff_col_role'; - td class => 'tc2', mt '_staff_col_credit'; - td class => 'tc3', mt '_staff_col_note' if $has_notes; + for my $r (@{$self->{staff_roles}}) { + my @s = grep $_->{role} eq $r, @{$v->{credits}}; + next if !@s; + ul; + li; b mt '_credit_'.$r; end; + for(@s) { + li; + a href => "/s$_->{id}", title => $_->{original}||$_->{name}, $_->{name}; + b class => 'grayedout', $_->{note} if $_->{note}; + end; + } end; - end; - my $last_role = ''; - for my $s (@{$v->{credits}}) { - Tr; - td class => 'tc1', $s->{role} ne $last_role ? mt '_credit_'.$s->{role} : ''; - td class => 'tc2'; - a href => "/s$s->{id}", title => $s->{original}||$s->{name}, $s->{name}; - end; - td class => 'tc3', $s->{note} if $has_notes; - end; - $last_role = $s->{role}; - } - end 'table'; + } + clearfloat; end; } if(@{$v->{seiyuu}}) { |