X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Ftr-input-date-field.html;h=f2a570b997b44a1725a1bd18f6a5a527ff7cbf09;hb=ee6aef9f16f3c9b766ff41e5dc780d034858bb29;hp=428221a5c717457cba83b5108b4827e3c6290ff3;hpb=958afb8d05de67e12df258b57bedcf85028b6253;p=freeside.git
diff --git a/httemplate/elements/tr-input-date-field.html b/httemplate/elements/tr-input-date-field.html
index 428221a5c..f2a570b99 100644
--- a/httemplate/elements/tr-input-date-field.html
+++ b/httemplate/elements/tr-input-date-field.html
@@ -1,14 +1,36 @@
+<%doc>
+Example:
+
+ <& /elements/tr-input_date-field,
+ {
+ 'name' => 'field_name',
+ 'value' => $current_value,
+ 'label' => 'Label',
+
+ #optional
+ 'format' => '%m/%d/%Y', #overrides date_format config
+ 'usedatetime' => 1, #use DateTime->strftime to format the date
+ # instead of Date::Format->time2str
+ 'noinit' => 1, #first one on the page is enough
+ 'required' => 1,
+ },
+ &>
+
+%doc>
+% unless ( $noinit ) {
+% }
-
- <% $label %> |
-
+<% include('/elements/tr-td-label.html',
+ 'label' => $label,
+ 'required' => $required ) %>
+ | >
-
+
|
@@ -18,21 +40,43 @@
ifFormat: "<% $format %>",
button: "<% $name %>_button",
align: "BR"
+% if ( $format =~ /\%r/ ) {
+ ,
+ showsTime: true,
+ timeFormat: 12
+% }
});
-
<%init>
-my($name, $value, $label, $format, $usedatetime) = @_;
-$format = "%m/%d/%Y" unless $format;
+my($name, $value, $label, $format, $usedatetime, $noinit, $colspan, $required);
+if ( ref($_[0]) ) {
+ my $opt = shift;
+ $name = $opt->{'name'};
+ $value = $opt->{'value'};
+ $label = $opt->{'label'};
+ $format = $opt->{'format'};
+ $usedatetime = $opt->{'usedatetime'};
+ $noinit = $opt->{'noinit'};
+ $colspan = $opt->{'colspan'} || 1;
+ $required = $opt->{'required'};
+} else {
+ ($name, $value, $label, $format, $usedatetime) = @_;
+ $colspan = 1;
+}
+
+my $conf = new FS::Conf;
+
+$format ||= $conf->config('date_format') || '%m/%d/%Y';
+
$label = $name unless $label;
if ( $value =~ /\S/ ) {
if ( $usedatetime ) {
my $dt = DateTime->from_epoch(epoch => $value, time_zone => 'floating');
$value = $dt->strftime($format);
- } else {
+ } elsif ( $value =~ /^\d+$/ ) {
$value = time2str($format, $value);
}
} else {