From 4cd7a16bb62318837752001e0d9a38b38bef3926 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sat, 30 May 2020 22:30:57 +0200 Subject: [PATCH] word edit: flags in language selection --- writer.plp | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/writer.plp b/writer.plp index 0e10582..ef377a0 100644 --- a/writer.plp +++ b/writer.plp @@ -105,9 +105,16 @@ my $db = eval { }); } or Abort('Database error', 501, $@); +my %lang = ( + nld => ["\N{REGIONAL INDICATOR SYMBOL LETTER N}\N{REGIONAL INDICATOR SYMBOL LETTER L}", 'dutch'], + eng => ["\N{REGIONAL INDICATOR SYMBOL LETTER G}\N{REGIONAL INDICATOR SYMBOL LETTER B}", 'english'], + epo => ['★', 'esperanto'], +); my @wordcols = pairkeys my %wordcol = ( - lang => 'Language', + lang => {-label => 'Language', -select => { + map { $_ => "@{$lang{$_}}" } keys %lang + }}, cat => [{-label => 'Category'}, 'ref'], ref => {-label => 'Reference'}, prio => [ @@ -124,11 +131,6 @@ my %wordcol = ( source => 'Image', thumb => 'Convert options', ); -my %langflag = ( - nld => "\N{REGIONAL INDICATOR SYMBOL LETTER N}\N{REGIONAL INDICATOR SYMBOL LETTER L}", - eng => "\N{REGIONAL INDICATOR SYMBOL LETTER G}\N{REGIONAL INDICATOR SYMBOL LETTER B}", - epo => '★', -); my ($find) = map {{id => $_}} $fields{id} || $Request || (); my $row; @@ -220,11 +222,14 @@ package Shiar_Sheet::FormRow { $html .= qq( $_="$attr->{$_}") for sort grep {!/^-/} keys %{$attr // {}}; if (my $options = $attr->{-select}) { + $options = { map {$_ => $options->[$_]} 0 .. $#{$options} } + if ref $options eq 'ARRAY'; + $options->{$val} //= "unknown ($val)"; # preserve current return ( sprintf('', ); } @@ -288,9 +293,12 @@ if ($row->{id}) { my $children = $db->select(word => '*', {ref => $row->{id}}, 'lang, id'); printf '
    • ', 'Translations'; while (my $row = $children->hash) { - printf '
    • %s
    • ', - "trans-$row->{lang}", $langflag{$row->{lang}}, - "/writer/$row->{id}", Entity($row->{form}); + printf( + '
    • ' . + ' %s
    • ', + "trans-$row->{lang}", "/writer/$row->{id}", Entity($row->{form}), + @{$lang{ $row->{lang} }}, # flag, name + ); } say '
  • '; } -- 2.30.0