proper use of date_format config for international date formats, RT#7009
[freeside.git] / httemplate / elements / tr-input-date-field.html
index 11581d5..ff4996f 100644 (file)
   });
 </SCRIPT>
 
-
 <%init>
-my($name, $value, $label, $format, $usedatetime) = @_;
 
-$format = "%m/%d/%Y" unless $format;
+my($name, $value, $label, $format, $usedatetime);
+if ( ref($_[0]) ) {
+  my $opt = shift;
+  $name        = $opt->{'name'};
+  $value       = $opt->{'value'};
+  $label       = $opt->{'label'};
+  $format      = $opt->{'format'};
+  $usedatetime = $opt->{'usedatetime'};
+} else {
+  ($name, $value, $label, $format, $usedatetime) = @_;
+}
+
+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 = '';
 }
 
 </%init>