}}
else {
$row->{prio} //= 1;
+ $row->{lang} //= $user->{editlang}->[0];
$row->{$_} = $get{$_} for keys %get;
}
say '</p></li>';
}
-if ($row->{id} and not $row->{ref}) {
+if (not $row->{ref}) {
printf '<li><label for="%s">%s</label><div><ul class="inline" id="%1$s">',
'trans', 'Translations';
- my @children = $db->select(word => '*', {ref => $row->{id}}, 'lang, id')->hashes;
+ my @children = !$row->{id} ? () :
+ $db->select(word => '*', {ref => $row->{id}}, 'lang, id')->hashes;
while (my ($lang, $val) = each %fields) {
$lang =~ s/^trans-// or next;
push @children, { lang => $lang, form => $val };
}
+ my %existing = map { $_->{lang} => 1 } $row, @children;
+ $existing{$_} or push @children, { lang => $_ } for @{$user->{editlang}};
+
for my $ref (@children) {
printf(
'<li><label for="%s" title="%3$s">%s </label>',
printf(
$ref->{id} ? '<a id="%s" href="%s">%s</a></li>' :
'<input id="%s" name="%1$s" value="%3$s" />',
- "trans-$ref->{lang}", "/writer/$ref->{id}", Entity($ref->{form}),
+ "trans-$ref->{lang}", "/writer/$ref->{id}", Entity($ref->{form} // ''),
);
}
say '</ul></div></li>';