Presenter::Tag::link - umbenannt in link_tag
[kivitendo-erp.git] / SL / Presenter / Tag.pm
index e5d8d27..80dca58 100644 (file)
@@ -4,12 +4,13 @@ use strict;
 
 use SL::HTML::Restrict;
 use SL::Presenter::EscapedText qw(escape);
+use Scalar::Util qw(blessed);
 
 use Exporter qw(import);
 our @EXPORT_OK = qw(
   html_tag input_tag hidden_tag javascript man_days_tag name_to_id select_tag
   checkbox_tag button_tag submit_tag ajax_submit_tag input_number_tag
-  stringify_attributes restricted_html textarea_tag link
+  stringify_attributes restricted_html textarea_tag link_tag date_tag
 );
 our %EXPORT_TAGS = (ALL => \@EXPORT_OK);
 
@@ -322,13 +323,36 @@ sub textarea_tag {
   html_tag('textarea', $content, %attributes, name => $name);
 }
 
-sub link {
+sub link_tag {
   my ($href, $content, %params) = @_;
 
   $href ||= '#';
 
   html_tag('a', $content, %params, href => $href);
 }
+# alias for compatibility
+sub link { goto &link_tag }
+
+sub date_tag {
+  my ($name, $value, %params) = @_;
+
+  _set_id_attribute(\%params, $name);
+  my @onchange = $params{onchange} ? (onChange => delete $params{onchange}) : ();
+  my @classes  = $params{no_cal} || $params{readonly} ? () : ('datepicker');
+  push @classes, delete($params{class}) if $params{class};
+  my %class    = @classes ? (class => join(' ', @classes)) : ();
+
+  $::request->layout->add_javascripts('kivi.Validator.js');
+  $::request->presenter->need_reinit_widgets($params{id});
+
+  input_tag(
+    $name, blessed($value) ? $value->to_lxoffice : $value,
+    size   => 11,
+    "data-validate" => "date",
+    %params,
+    %class, @onchange,
+  );
+}
 
 1;
 __END__