projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of github.com:kivitendo/kivitendo-erp
[kivitendo-erp.git]
/
SL
/
Controller
/
Helper
/
GetModels.pm
diff --git
a/SL/Controller/Helper/GetModels.pm
b/SL/Controller/Helper/GetModels.pm
index
6b408b3
..
8e2ede1
100644
(file)
--- a/
SL/Controller/Helper/GetModels.pm
+++ b/
SL/Controller/Helper/GetModels.pm
@@
-7,7
+7,7
@@
our @EXPORT = qw(get_models_url_params get_callback get_models);
use constant PRIV => '__getmodelshelperpriv';
use constant PRIV => '__getmodelshelperpriv';
-my
%registered_handlers = ( callback => [], get_models => [] )
;
+my
$registered_handlers = {}
;
sub register_get_models_handlers {
my ($class, %additional_handlers) = @_;
sub register_get_models_handlers {
my ($class, %additional_handlers) = @_;
@@
-18,7
+18,8
@@
sub register_get_models_handlers {
$class->run_before(sub { $_[0]->{PRIV()} = { current_action => $_[1] }; }, %hook_params);
$class->run_before(sub { $_[0]->{PRIV()} = { current_action => $_[1] }; }, %hook_params);
- map { push @{ $registered_handlers{$_} }, $additional_handlers{$_} if $additional_handlers{$_} } keys %registered_handlers;
+ my $handlers = _registered_handlers($class);
+ map { push @{ $handlers->{$_} }, $additional_handlers{$_} if $additional_handlers{$_} } keys %$handlers;
}
sub get_models_url_params {
}
sub get_models_url_params {
@@
-34,7
+35,7
@@
sub get_models_url_params {
);
};
);
};
- push @{
$registered_handlers
{callback} }, $callback;
+ push @{
_registered_handlers($class)->
{callback} }, $callback;
}
sub get_callback {
}
sub get_callback {
@@
-62,7
+63,7
@@
sub get_models {
sub _run_handlers {
my ($self, $handler_type, %params) = @_;
sub _run_handlers {
my ($self, $handler_type, %params) = @_;
- foreach my $sub (@{
$registered_handlers
{$handler_type} }) {
+ foreach my $sub (@{
_registered_handlers(ref $self)->
{$handler_type} }) {
if (ref $sub eq 'CODE') {
%params = $sub->($self, %params);
} elsif ($self->can($sub)) {
if (ref $sub eq 'CODE') {
%params = $sub->($self, %params);
} elsif ($self->can($sub)) {
@@
-75,6
+76,10
@@
sub _run_handlers {
return %params;
}
return %params;
}
+sub _registered_handlers {
+ $registered_handlers->{$_[0]} //= { callback => [], get_models => [] }
+}
+
1;
__END__
1;
__END__