X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Ftr-input-date-field.html;h=f2a570b997b44a1725a1bd18f6a5a527ff7cbf09;hb=560af69840e7e3fcebf65d5d56ca4efc0851efec;hp=11581d5bc08cab81b5626a695702fcb8ee61e955;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195;p=freeside.git diff --git a/httemplate/elements/tr-input-date-field.html b/httemplate/elements/tr-input-date-field.html index 11581d5bc..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, + }, + &> + + +% unless ( $noinit ) { +% } - - <% $label %> - +<% include('/elements/tr-td-label.html', + 'label' => $label, + 'required' => $required ) %> + > - + @@ -18,22 +40,47 @@ 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 ($usedatetime) { - my $dt = DateTime->from_epoch(epoch => $value, time_zone => 'floating'); - $value = $dt->strftime($format) - unless $value eq ''; -}else{ - $value = time2str($format, $value); +if ( $value =~ /\S/ ) { + if ( $usedatetime ) { + my $dt = DateTime->from_epoch(epoch => $value, time_zone => 'floating'); + $value = $dt->strftime($format); + } elsif ( $value =~ /^\d+$/ ) { + $value = time2str($format, $value); + } +} else { + $value = ''; }