X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/6c4b42c0b8b0d89930cdd8abe13805afc7fc403f..c4409bf66a835166b3a50c0de9c5bdedbb5b5c69:/SL/DB/Helper/CustomVariables.pm diff --git a/SL/DB/Helper/CustomVariables.pm b/SL/DB/Helper/CustomVariables.pm index 0b55e7ed4..a82397c5e 100644 --- a/SL/DB/Helper/CustomVariables.pm +++ b/SL/DB/Helper/CustomVariables.pm @@ -92,13 +92,12 @@ 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; } @@ -182,9 +181,9 @@ sub _all_configs { $cache->{module} = { partition_by { $_->module } @$configs }; } - $params{module} - ? $cache->{module}{$params{module}} - : $cache->{all}; + return $params{module} && !ref $params{module} ? $cache->{module}{$params{module}} + : $params{module} && ref $params{module} ? [ map { @{ $cache->{module}{$_} // [] } } @{ $params{module} } ] + : $cache->{all}; } sub _overload_by_module { @@ -381,7 +380,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;