ActionBar: neuer Typ für einfachen Link in Hauptzeile (nicht in Combo)
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 10 Nov 2016 12:19:31 +0000 (13:19 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 28 Feb 2017 09:04:33 +0000 (10:04 +0100)
SL/Layout/ActionBar.pm
SL/Layout/ActionBar/Link.pm [new file with mode: 0644]
css/common.css

index a28e1a9..b0835c3 100644 (file)
@@ -7,6 +7,7 @@ use Carp;
 use Scalar::Util qw(blessed);
 use SL::Layout::ActionBar::Action;
 use SL::Layout::ActionBar::ComboBox;
+use SL::Layout::ActionBar::Link;
 use SL::Layout::ActionBar::Separator;
 
 use constant HTML_CLASS => 'layout-actionbar';
@@ -18,6 +19,7 @@ use Rose::Object::MakeMethods::Generic (
 my %class_descriptors = (
   action    => { class => 'SL::Layout::ActionBar::Action',    num_params => 1, },
   combobox  => { class => 'SL::Layout::ActionBar::ComboBox',  num_params => 1, },
+  link      => { class => 'SL::Layout::ActionBar::Link',      num_params => 1, },
   separator => { class => 'SL::Layout::ActionBar::Separator', num_params => 0, },
 );
 
diff --git a/SL/Layout/ActionBar/Link.pm b/SL/Layout/ActionBar/Link.pm
new file mode 100644 (file)
index 0000000..49243de
--- /dev/null
@@ -0,0 +1,24 @@
+package SL::Layout::ActionBar::Link;
+
+use strict;
+use parent qw(SL::Layout::ActionBar::Action);
+
+sub from_params {
+  my ($class, $data) = @_;
+
+  my ($text, %params) = @$data;
+  return SL::Layout::ActionBar::Link->new(text => $text, params => \%params);
+}
+
+sub render {
+  my ($self) = @_;
+
+  return $self->p->html_tag(
+    'a', $self->text,
+    %{ $self->params // {} },
+    id    => $self->id,
+    class => 'layout-actionbar-link',
+  );
+}
+
+1;
index 29d7f6c..1f1dfcb 100644 (file)
@@ -129,6 +129,12 @@ div.layout-actionbar div.layout-actionbar-scriptbutton:hover {
   border-style: solid;
 }
 
+div.layout-actionbar .layout-actionbar-link {
+  margin-left: 6px;
+  margin-right: 6px;
+  cursor: default;
+}
+
 div.layout-actionbar-combobox {
   position: relative;
   display: inline-block;