Presenter: Neue Struktur im Layout umgesetzt
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Dec 2017 14:27:35 +0000 (15:27 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Dec 2017 14:37:19 +0000 (15:37 +0100)
SL/Layout/ActionBar.pm
SL/Layout/ActionBar/Action.pm
SL/Layout/ActionBar/ComboBox.pm
SL/Layout/ActionBar/Link.pm
SL/Layout/ActionBar/Separator.pm
SL/Layout/ActionBar/Submit.pm
SL/Layout/Content.pm
SL/Layout/Split.pm

index 32c2f7d..cdd845b 100644 (file)
@@ -10,6 +10,8 @@ use SL::Layout::ActionBar::ComboBox;
 use SL::Layout::ActionBar::Link;
 use SL::Layout::ActionBar::Separator;
 
+use SL::Presenter::Tag qw(html_tag);
+
 use constant HTML_CLASS => 'layout-actionbar';
 
 use Rose::Object::MakeMethods::Generic (
@@ -30,7 +32,7 @@ sub pre_content {
 
   my $content = join '', map { $_->render } @{ $self->actions };
   return if !$content;
-  $::request->presenter->html_tag('div', $content, class => HTML_CLASS);
+  html_tag('div', $content, class => HTML_CLASS);
 }
 
 sub javascripts_inline {
index 90eb849..aea2e2c 100644 (file)
@@ -3,7 +3,7 @@ package SL::Layout::ActionBar::Action;
 use strict;
 use parent qw(Rose::Object);
 
-use SL::Presenter;
+use SL::Presenter::Tag qw(name_to_id);
 
 use Rose::Object::MakeMethods::Generic (
   'scalar --get_set_init' => [ qw(id params text) ],
@@ -35,18 +35,13 @@ sub callable { 0 }
 
 # shortcut for presenter
 
-sub p {
-  SL::Presenter->get
-}
-
 sub init_params {
   +{}
 }
 
 # unique id to tie div and javascript together
 sub init_id {
-  $_[0]->params->{id} //
-  $_[0]->p->name_to_id('action[]')
+  $_[0]->params->{id} // name_to_id('action[]')
 }
 
 1;
index 0ff0bc1..477151d 100644 (file)
@@ -5,6 +5,7 @@ use parent qw(SL::Layout::ActionBar::Action);
 
 use JSON;
 use List::MoreUtils qw(none);
+use SL::Presenter::Tag qw(html_tag);
 
 use Rose::Object::MakeMethods::Generic (
   'scalar --get_set_init' => [ qw(actions) ],
@@ -25,9 +26,9 @@ sub render {
   return                if none { $_->callable } @{ $_[0]->actions };
   return $first->render if !@rest;
 
-  $_[0]->p->html_tag('div',
-    $_[0]->p->html_tag('div', $first->render . $_[0]->p->html_tag('span'), class => 'layout-actionbar-combobox-head') .
-    $_[0]->p->html_tag('div', join('', map { $_->render } @rest), class => 'layout-actionbar-combobox-list'),
+  html_tag('div',
+    html_tag('div', $first->render . html_tag('span'), class => 'layout-actionbar-combobox-head') .
+    html_tag('div', join('', map { $_->render } @rest), class => 'layout-actionbar-combobox-list'),
     id    => $_[0]->id,
     class => 'layout-actionbar-combobox',
   );
index e6df8b2..5e47663 100644 (file)
@@ -3,6 +3,8 @@ package SL::Layout::ActionBar::Link;
 use strict;
 use parent qw(SL::Layout::ActionBar::Action);
 
+use SL::Presenter::Tag qw(html_tag);
+
 sub from_params {
   my ($class, $data) = @_;
 
@@ -16,7 +18,7 @@ sub from_params {
 sub render {
   my ($self) = @_;
 
-  return $self->p->html_tag(
+  html_tag(
     'div', $self->text,
     id    => $self->id,
     class => 'layout-actionbar-action layout-actionbar-link',
index cbcdf51..afa202e 100644 (file)
@@ -3,10 +3,12 @@ package SL::Layout::ActionBar::Separator;
 use strict;
 use parent qw(SL::Layout::ActionBar::Action);
 
+use SL::Presenter::Tag qw(html_tag);
+
 sub from_params { $_[0]->new }
 
 sub render {
-  $_[0]->p->html_tag('div', '', class => 'layout-actionbar-separator');
+  html_tag('div', '', class => 'layout-actionbar-separator');
 }
 
 sub script {
index a130209..f3288c7 100644 (file)
@@ -3,8 +3,10 @@ package SL::Layout::ActionBar::Submit;
 use strict;
 use parent qw(SL::Layout::ActionBar::Action);
 
+use SL::Presenter::Tag qw(html_tag);
+
 sub render {
-  $_[0]->p->html_tag('div', $_[0]->text,
+  html_tag('div', $_[0]->text,
     id    => $_[0]->id,
     class => 'layout-actionbar-action layout-actionbar-submit',
   );
index 6bf7267..8e0549b 100644 (file)
@@ -3,8 +3,6 @@ package SL::Layout::Content;
 use strict;
 use parent qw(SL::Layout::Base);
 
-use SL::Presenter;
-
 sub start_content {
   "<div id='content'>";
 }
index 5b54840..dec8bfd 100644 (file)
@@ -3,7 +3,7 @@ package SL::Layout::Split;
 use strict;
 use parent qw(SL::Layout::Base);
 
-use SL::Presenter;
+use SL::Presenter::Tag qw(html_tag);
 
 use Rose::Object::MakeMethods::Generic (
   'scalar'                => [ qw(left right) ],
@@ -18,7 +18,7 @@ sub pre_content {
   my $left  = join '', map { $_->pre_content } @{ $_[0]->left  || [] };
   my $right = join '', map { $_->pre_content } @{ $_[0]->right || [] };
 
-  SL::Presenter->get->html_tag('div', $left, class => 'layout-split-left')
+  html_tag('div', $left, class => 'layout-split-left')
   .'<div class="layout-split-right">' . $right;
 }
 
@@ -27,7 +27,7 @@ sub post_content {
   my $right = join '', map { $_->post_content } @{ $_[0]->right || [] };
 
   $right . '</div>'
-  . SL::Presenter->get->html_tag('div', $left, class => 't-layout-left');
+  . html_tag('div', $left, class => 't-layout-left');
 }
 
 1;