X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FHelper%2FCustomVariables.pm;h=a6ab5ae18859f8bf7e8035069c42ea8c38a06c3e;hb=e47fdf34451bb7c091b29144e041532c4960718a;hp=bf0616c04ccf605dc011387c6d8f71fad92342c8;hpb=cadaf4399df866e8dd9772c6b747126208d55aa8;p=kivitendo-erp.git diff --git a/SL/DB/Helper/CustomVariables.pm b/SL/DB/Helper/CustomVariables.pm index bf0616c04..a6ab5ae18 100644 --- a/SL/DB/Helper/CustomVariables.pm +++ b/SL/DB/Helper/CustomVariables.pm @@ -4,7 +4,7 @@ use strict; use Carp; use Data::Dumper; use List::Util qw(first); -use List::UtilsBy qw(sort_by partition_by); +use List::UtilsBy qw(partition_by); use constant META_CVARS => 'cvars_config'; @@ -92,21 +92,18 @@ sub make_cvar_by_configs { my $cvar; if ( $cvars_by_config{$_->id} ) { $cvar = $cvars_by_config{$_->id}; - $cvar->{is_valid} = !$invalids_by_config{$_->id}; } else { $cvar = _new_cvar($self, %params, config => $_); $self->add_custom_variables($cvar); - $cvar->{is_valid} = 1; } + $cvar->{is_valid} = !$invalids_by_config{$_->id}; $cvar->{config} = $_; $cvar; } @$configs ); - @return = sort_by { $_->config->sortkey } @return; - return \@return; } } @@ -183,7 +180,7 @@ sub _all_configs { } return $params{module} && !ref $params{module} ? $cache->{module}{$params{module}} - : $params{module} && ref $params{module} ? [ map { @{ $cache->{module}{$_} } } @{ $params{module} } ] + : $params{module} && ref $params{module} ? [ map { @{ $cache->{module}{$_} // [] } } @{ $params{module} } ] : $cache->{all}; } @@ -381,7 +378,8 @@ sub _all_invalids { # easy 2: no module in params? no validity return [] unless $params{module}; - my @module_configs = grep { $_->module eq $params{module} } @$configs; + my %wanted_modules = ref $params{module} ? map { $_ => 1 } @{ $params{module} } : ($params{module} => 1); + my @module_configs = grep { $wanted_modules{$_->module} } @$configs; return [] unless @module_configs;