summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/VNEdit.pm
diff options
context:
space:
mode:
authormorkt <>2014-12-29 10:23:30 +0100
committerYorhel <git@yorhel.nl>2014-12-29 10:23:30 +0100
commitd41b850504476132a663e6f49f80c3ff35b81739 (patch)
treed56394fd9f127d8f4bf15f5290973ed435c48bdb /lib/VNDB/Handler/VNEdit.pm
parentced53e5d7ea385fe6c53ed75a20ec16b027e5c5d (diff)
staff: Don't use inline script to pass seiyuu import data
Same reasoning as 0d191b5cd8c79eef3cef63c40ded96506a40382a
Diffstat (limited to 'lib/VNDB/Handler/VNEdit.pm')
-rw-r--r--lib/VNDB/Handler/VNEdit.pm22
1 files changed, 8 insertions, 14 deletions
diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm
index 963e8ce2..caf7e8a3 100644
--- a/lib/VNDB/Handler/VNEdit.pm
+++ b/lib/VNDB/Handler/VNEdit.pm
@@ -88,8 +88,8 @@ sub edit {
my %b4 = !$vid ? () : (
(map { $_ => $v->{$_} } qw|title original desc alias length l_wp l_encubed l_renai image img_nsfw ihid ilock|),
- credits => join('|||', map sprintf('%d-%s-%s', $_->{aid}, $_->{role}, $_->{note}), @{$v->{credits}}),
- seiyuu => join('|||', map sprintf('%d-%d-%s', $_->{aid}, $_->{cid}, $_->{note}), @{$v->{seiyuu}}),
+ credits => join('|||', map join('-', $_->{aid}, $_->{role}, $_->{note}), @{$v->{credits}}),
+ seiyuu => join('|||', map join('-', $_->{aid}, $_->{cid}, $_->{note}), @{$v->{seiyuu}}),
anime => join(' ', sort { $a <=> $b } map $_->{id}, @{$v->{anime}}),
vnrelations => join('|||', map $_->{relation}.','.$_->{id}.','.($_->{official}?1:0).','.$_->{title}, sort { $a->{id} <=> $b->{id} } @{$v->{relations}}),
screenshots => join(' ', map sprintf('%d,%d,%d', $_->{id}, $_->{nsfw}?1:0, $_->{rid}), @{$v->{screenshots}}),
@@ -239,7 +239,8 @@ sub _uploadimage {
sub _form {
my($self, $v, $frm, $r) = @_;
- my $chars = $v && $self->dbCharGet(vid => $v->{id}, results => 50);
+ my $chars = $v ? $self->dbCharGet(vid => $v->{id}, results => 50) : [];
+ my $import = @$chars ? $self->dbVNImportSeiyuu($v->{id}, [ map $_->{id}, @$chars ]) : [];
$self->htmlForm({ frm => $frm, action => $v ? "/v$v->{id}/edit" : '/v/new', editsum => 1, upload => 1 },
vn_geninfo => [ mt('_vnedit_geninfo'),
[ input => short => 'title', name => mt '_vnedit_frm_title' ],
@@ -306,20 +307,13 @@ sub _form {
# Cast tab is only shown for VNs with some characters listed.
# There's no way to add voice actors in new VN edits since character list
# would be empty anyway.
- $chars && @{$chars} ? (vn_cast => [ mt('_vnedit_cast'),
+ @{$chars} ? (vn_cast => [ mt('_vnedit_cast'),
[ hidden => short => 'seiyuu' ],
+ [ hidden => short => 'castimpdata', value => do {
+ join '|||', map join('-', $_->{cid}, $_->{sid}, $_->{aid}, $_->{name}), @$import;
+ }],
[ static => nolabel => 1, content => sub {
- my $import = $self->dbVNImportSeiyuu($v->{id}, [ map $_->{id}, @$chars ]);
if (@$import) {
- script type => 'text/javascript';
- lit 'var vncImportData = [';
- lit join ',', map {
- my $name = $_->{name};
- $name =~ s/["\\]/\\$&/g; # escape quotes in names
- sprintf('{cid:%d,sid:%d,aid:%d,name:"%s"}', $_->{cid}, $_->{sid}, $_->{aid}, $name);
- } @$import;
- lit '];';
- end;
div id => 'cast_import';
a href => '#', title => mt('_vnedit_cast_import_title'), mt '_vnedit_cast_import';
end;