diff options
author | Yorhel <git@yorhel.nl> | 2015-10-03 11:53:21 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2015-10-03 11:53:21 +0200 |
commit | 728c41ccab0463bbc70817d3baa8575d4006db70 (patch) | |
tree | 295df5376ebd8e655e913d49796365e85765d44f /lib/VNDB/Handler/Staff.pm | |
parent | f81d7164cffa5067b25b941f1ab6498a8eb5bfb0 (diff) |
formValidate: Add json_(maxitems|unique|sort) options to json template
Adds slightly more strict validation and simplifies further processing.
Diffstat (limited to 'lib/VNDB/Handler/Staff.pm')
-rw-r--r-- | lib/VNDB/Handler/Staff.pm | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/VNDB/Handler/Staff.pm b/lib/VNDB/Handler/Staff.pm index 58cd6299..88e6d7c8 100644 --- a/lib/VNDB/Handler/Staff.pm +++ b/lib/VNDB/Handler/Staff.pm @@ -191,7 +191,7 @@ sub edit { primary => $s->{aid}, aliases => [ map +{ aid => $_->{id}, name => $_->{name}, orig => $_->{original} }, - sort { $a->{name} cmp $b->{name} } @{$s->{aliases}} + sort { $a->{name} cmp $b->{name} || $a->{original} cmp $b->{original} } @{$s->{aliases}} ], ); my $frm; @@ -209,7 +209,7 @@ sub edit { { post => 'l_site', required => 0, template => 'weburl', maxlength => 250, default => '' }, { post => 'l_twitter', required => 0, maxlength => 16, default => '', regex => [ qr/^\S+$/, mt('_staffe_form_tw_err') ] }, { post => 'l_anidb', required => 0, template => 'id', default => undef }, - { post => 'aliases', template => 'json', json_fields => [ + { post => 'aliases', template => 'json', json_sort => ['name','orig'], json_fields => [ { field => 'name', required => 1, maxlength => 200 }, { field => 'orig', required => 0, maxlength => 200, default => '' }, { field => 'aid', required => 0, template => 'id', default => 0 }, @@ -220,14 +220,12 @@ sub edit { ); if(!$frm->{_err}) { - my $aliases = [ sort { $a->{name} cmp $b->{name} } @{$frm->{aliases}} ]; my %old_aliases = $sid ? ( map +($_->{id} => 1), @{$self->dbStaffAliasIds($sid)} ) : (); $frm->{primary} = 0 unless exists $old_aliases{$frm->{primary}}; # reset aid to zero for newly added aliases. - $_->{aid} *= $old_aliases{$_->{aid}} ? 1 : 0 for (sort { $a->{name} cmp $b->{name} } @$aliases); + $_->{aid} *= $old_aliases{$_->{aid}} ? 1 : 0 for(@{$frm->{aliases}}); - $frm->{aliases} = $aliases; $frm->{ihid} = $frm->{ihid} ?1:0; $frm->{ilock} = $frm->{ilock}?1:0; $frm->{aid} = $frm->{primary} if $sid; |