fixes for site layout
[catagits/Reaction.git] / lib / Reaction / UI / Widget / SiteLayout.pm
1 package Reaction::UI::Widget::SiteLayout;
2
3 use Reaction::UI::WidgetClass;
4 use aliased 'Reaction::UI::Widget::Container';
5 use MooseX::Types::Moose 'HashRef';
6
7 class SiteLayout is Container, which {
8
9   has 'http_header' => (
10     isa => HashRef, is => 'rw',
11     default => sub { {} }
12   );
13
14   after fragment widget {
15     arg static_base => $_{viewport}->static_base_uri;
16     arg title => $_{viewport}->title;
17   };
18
19   implements fragment meta_info {
20     my $self = shift;
21     if ( $_{viewport}->meta_info->{'http_header'} ) {
22       $self->http_header( delete $_{viewport}->meta_info->{'http_header'} );
23       render 'meta_http_header' => over [keys %{$self->http_header}];
24     }
25     render 'meta_member' => over [keys %{$_{viewport}->meta_info}];
26   };
27
28   implements fragment meta_http_header {
29     arg 'meta_name' => $_;
30     arg 'meta_value' => shift->http_header->{$_};
31   };
32
33   implements fragment meta_member {
34     arg 'meta_name' => $_;
35     arg 'meta_value' => $_{viewport}->meta_info->{$_};
36   };
37
38 };
39
40 1;