summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/Chars.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2020-02-28 10:13:27 +0100
committerYorhel <git@yorhel.nl>2020-02-28 10:13:30 +0100
commit486ce0910818ea4b8bc7ef42592915c775f1f45f (patch)
treeaa03d4197adb7c8502410f1b53bed275ece31870 /lib/VNDB/Handler/Chars.pm
parent5d56f2db22573fa91637c5c5f50f9184b40d8701 (diff)
Handler::Chars: don't automatically remove non-applicable traits when editing
Diffstat (limited to 'lib/VNDB/Handler/Chars.pm')
-rw-r--r--lib/VNDB/Handler/Chars.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm
index a7a8d801..54a3adf9 100644
--- a/lib/VNDB/Handler/Chars.pm
+++ b/lib/VNDB/Handler/Chars.pm
@@ -283,7 +283,9 @@ sub edit {
$frm->{main_spoil} = 0 if !$frm->{main};
@traits = sort { $a->[0] <=> $b->[0] } map /^(\d+)-(\d+)$/&&[$1,$2], split / /, $frm->{traits};
- my %traits = @traits ? map +($_->{id}, 1), @{$self->dbTraitGet(results => 500, state => 2, applicable => 1, id => [ map $_->[0], @traits ])} : ();
+ my %traits = !@traits ? () : map +($_, 1),
+ (map $_->{id}, @{$self->dbTraitGet(results => 500, state => 2, applicable => 1, id => [ map $_->[0], @traits ])}),
+ ($id ? map $_->{tid}, @{$r->{traits}} : ());
@traits = grep $traits{$_->[0]}, @traits;
$frm->{traits} = join(' ', map sprintf('%d-%d', @$_), @traits);