1 <& /elements/form-create_ticket.html, object => $object &>
4 <A HREF="<% $open_link %>"><% mt($openlabel) |h %></A> |
5 <A HREF="<% $res_link %>"><% mt('resolved') |h %></A>
10 <& /elements/table-grid.html &>
11 % my $bgcolor1 = '#eeeeee';
12 % my $bgcolor2 = '#ffffff';
17 <TH CLASS="grid" BGCOLOR="#cccccc"></TH>
18 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('#') |h %></TH>
19 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Subject') |h %></TH>
20 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Status') |h %></TH>
21 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Queue') |h %></TH>
22 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Owner') |h %></TH>
23 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Due') |h %></TH>
24 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Estimated Time') |h %></TH>
25 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Priority') |h %></TH>
26 % if ( $ss_priority ) {
27 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Customer Priority') |h %></TH>
29 % if ( $object->isa('FS::cust_main') ) {
30 <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Service') |h %></TH>
35 % foreach my $ticket ( @tickets ) {
36 % my $href = FS::TicketSystem->href_ticket($ticket->{id});
37 % if ( $bgcolor eq $bgcolor1 ) {
38 % $bgcolor = $bgcolor2;
40 % $bgcolor = $bgcolor1;
45 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
46 % if ( $ticket->{is_unreplied} ) {
47 <A CLASS="dot" STYLE="background-color: green" HREF=<%$href%>>
50 <A CLASS="dot" STYLE="visibility: hidden" HREF=<%$href%>>
55 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
56 <A HREF=<%$href%>><% $ticket->{id} %></A>
59 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
60 <A HREF=<%$href%>><% $ticket->{subject} |h %></A>
63 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
64 <% $ticket->{status} %>
67 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
68 <% $ticket->{queue} %>
71 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
72 <% $ticket->{owner} |h %>
75 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
76 <% $date_formatter->($ticket->{due}) %>
79 <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
80 <% $ticket->{timeestimated} %>
83 <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
85 ? $ticket->{content}.' ('.$ticket->{priority}.')'
91 % if ( $ss_priority ) {
92 <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
93 <% $ticket->{"CF.{$ss_priority}"} |h %>
96 % if ( $object->isa('FS::cust_main') ) {
97 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><FONT SIZE=-1><B>
98 % foreach (@{ $ticket->{svcnums} }) {
99 % my $cust_svc = FS::cust_svc->by_key($_) or next;
100 <% FS::UI::Web::svc_label_link($m, $cust_svc->part_svc, $cust_svc) %>
117 my $conf = new FS::Conf;
119 return '' unless $conf->config('ticket_system');
121 my $object = $opt{'object'};
122 $object = $object->cust_svc if $object->isa('FS::svc_Common');
123 my( @tickets ) = $object->tickets;
125 my ($openlabel, $open_link, $res_link, $thing);
126 $openlabel = join('/', FS::TicketSystem->statuses );
128 # not the nicest way to do this--FS::has_tickets_Common?
129 if ( $object->isa('FS::cust_main') ) {
131 $open_link = FS::TicketSystem->href_customer_tickets($object->custnum);
133 $res_link = FS::TicketSystem->href_customer_tickets(
135 { 'statuses' => [ 'resolved' ] }
137 } elsif ( $object->isa('FS::cust_svc') ) {
139 return '' unless $object->pkgnum;
142 $open_link = FS::TicketSystem->href_service_tickets($object->svcnum);
144 $res_link = FS::TicketSystem->href_service_tickets(
146 { 'statuses' => [ 'resolved' ] }
150 my $ss_priority = FS::TicketSystem->selfservice_priority;
151 if ( $ss_priority ) {
152 my $dir = $conf->exists('ticket_system-priority_reverse') ? -1 : 1;
154 # sort in the following way:
156 # within a severity level...
157 ( $a->{'content'} eq $b->{'content'} ) ? (
158 # no-priority tickets sort last
160 ($a->{'_selfservice_priority'} eq '') <=>
161 ($b->{'_selfservice_priority'} eq '')
163 # otherwise obey ticket_system-priority_reverse
165 ($b->{'_selfservice_priority'} <=> $a->{'_selfservice_priority'})
167 ) : 0; # but don't rearrange between severity levels
171 my $format = $conf->config('date_format') || '%Y-%m-%d';
173 my $date_formatter = sub {
174 my $time = parse_datetime($_[0], 'GMT');
175 # exclude times within 24 hours of zero
176 ($time > 86400) ? time2str($format, $time) : '';