1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
<%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 ) {
<LINK REL="stylesheet" TYPE="text/css" HREF="<%$fsurl%>elements/calendar-win2k-2.css" TITLE="win2k-2">
<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar_stripped.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-en.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-setup.js"></SCRIPT>
% }
<% include('/elements/tr-td-label.html',
'label' => $label,
'required' => $required ) %>
<TD COLSPAN=<% $colspan %>>
<INPUT TYPE="text" NAME="<% $name %>" ID="<% $name %>_text" VALUE="<% $value %>">
<IMG SRC="<%$fsurl%>images/calendar.png" ID="<% $name %>_button" STYLE="cursor: pointer" TITLE="<% mt('Select date') |h %>">
</TD>
</TR>
<SCRIPT TYPE="text/javascript">
Calendar.setup({
inputField: "<% $name %>_text",
ifFormat: "<% $format %>",
button: "<% $name %>_button",
align: "BR"
% if ( $format =~ /\%r/ ) {
,
showsTime: true,
timeFormat: 12
% }
});
</SCRIPT>
<%init>
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);
} elsif ( $value =~ /^\d+$/ ) {
$value = time2str($format, $value);
}
} else {
$value = '';
}
</%init>
|