aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/UI
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reaction/UI')
-rw-r--r--lib/Reaction/UI/Controller.pm3
-rw-r--r--lib/Reaction/UI/Skin.pm3
-rw-r--r--lib/Reaction/UI/ViewPort/ListViewWithSearch.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/Role/Actions.pm2
-rw-r--r--lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm2
5 files changed, 7 insertions, 5 deletions
diff --git a/lib/Reaction/UI/Controller.pm b/lib/Reaction/UI/Controller.pm
index 8ed781f..2d1b843 100644
--- a/lib/Reaction/UI/Controller.pm
+++ b/lib/Reaction/UI/Controller.pm
@@ -11,7 +11,8 @@ with 'Catalyst::Component::InstancePerContext';
sub build_per_context_instance {
my ($self, $c, @args) = @_;
- my $newself = $self->new($self->_application, {%$self, context => $c, @args});
+ my $class = ref($self) || $self;
+ my $newself = $class->new($self->_application, {%$self, context => $c, @args});
return $newself;
}
diff --git a/lib/Reaction/UI/Skin.pm b/lib/Reaction/UI/Skin.pm
index 237279d..0683258 100644
--- a/lib/Reaction/UI/Skin.pm
+++ b/lib/Reaction/UI/Skin.pm
@@ -71,6 +71,7 @@ sub _find_skin_dir {
};
sub _load_skin_config {
my ($self, $args) = @_;
+ my $class = ref($self) || $self;
my $base = $self->skin_dir;
my $lst = sub { (ref $_[0] eq 'ARRAY') ? $_[0] : [$_[0]] };
my @files = (
@@ -84,7 +85,7 @@ sub _load_skin_config {
})}
);
if (my $super_name = $cfg{extends}) {
- my $super = $self->new(
+ my $super = $class->new(
name => $super_name,
view => $self->view,
skin_base_dir => $args->{skin_base_dir},
diff --git a/lib/Reaction/UI/ViewPort/ListViewWithSearch.pm b/lib/Reaction/UI/ViewPort/ListViewWithSearch.pm
index ee5f738..c199f7d 100644
--- a/lib/Reaction/UI/ViewPort/ListViewWithSearch.pm
+++ b/lib/Reaction/UI/ViewPort/ListViewWithSearch.pm
@@ -6,8 +6,6 @@ extends 'Reaction::UI::ViewPort::Collection::Grid';
with 'Reaction::UI::ViewPort::Collection::Role::UseSearchSpec';
with 'Reaction::UI::ViewPort::Collection::Role::Order';
-with 'Reaction::UI::ViewPort::Collection::Role::Pager';
-with 'Reaction::UI::ViewPort::Role::Actions';
__PACKAGE__->meta->make_immutable;
diff --git a/lib/Reaction/UI/ViewPort/Role/Actions.pm b/lib/Reaction/UI/ViewPort/Role/Actions.pm
index 32c7bbb..89b5ae3 100644
--- a/lib/Reaction/UI/ViewPort/Role/Actions.pm
+++ b/lib/Reaction/UI/ViewPort/Role/Actions.pm
@@ -62,12 +62,14 @@ sub _build_actions {
my $uri = $proto->{uri} or confess('uri is required in prototype action');
my $label = exists $proto->{label} ? $proto->{label} : $proto_name;
my $layout = exists $proto->{layout} ? $proto->{layout} : 'uri';
+ my $layout_args = exists $proto->{layout_args} ? $proto->{layout_args} : {};
my $action = Reaction::UI::ViewPort::URI->new(
location => join ('-', $loc, 'action', $i++),
uri => ( ref($uri) eq 'CODE' ? $uri->($target, $ctx) : $uri ),
display => ( ref($label) eq 'CODE' ? $label->($target, $ctx) : $label ),
layout => ( ref($layout) eq 'CODE' ? $layout->($target, $ctx) : $layout ),
+ layout_args => ( ref($layout_args) eq 'CODE' ? $layout_args->($target, $ctx) : $layout_args ),
);
push(@act, $action);
}
diff --git a/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm b/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm
index d83941b..4468275 100644
--- a/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm
+++ b/lib/Reaction/UI/ViewPort/SearchableListViewContainer.pm
@@ -74,7 +74,7 @@ override BUILDARGS => sub {
};
override child_event_sinks => method () {
- ((map $self->$_, 'listview', 'search_form'), super);
+ ((map $self->$_, 'search_form', 'listview'), super);
};
1;