summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/Staff.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2015-10-03 11:53:21 +0200
committerYorhel <git@yorhel.nl>2015-10-03 11:53:21 +0200
commit728c41ccab0463bbc70817d3baa8575d4006db70 (patch)
tree295df5376ebd8e655e913d49796365e85765d44f /lib/VNDB/Handler/Staff.pm
parentf81d7164cffa5067b25b941f1ab6498a8eb5bfb0 (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.pm8
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;