X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/ff424b75f8f66c796eae294d0239f0440741e578..d32410ac096b:/SL/Layout/ActionBar/ComboBox.pm?ds=sidebyside diff --git a/SL/Layout/ActionBar/ComboBox.pm b/SL/Layout/ActionBar/ComboBox.pm index 9a545392f..477151dbc 100644 --- a/SL/Layout/ActionBar/ComboBox.pm +++ b/SL/Layout/ActionBar/ComboBox.pm @@ -4,6 +4,8 @@ use strict; 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) ], @@ -20,9 +22,13 @@ sub from_params { sub render { my ($first, @rest) = @{ $_[0]->actions }; - $_[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'), + + return if none { $_->callable } @{ $_[0]->actions }; + return $first->render if !@rest; + + 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', );