diff options
| author | mark <mark> | 2011-06-27 07:11:01 +0000 | 
|---|---|---|
| committer | mark <mark> | 2011-06-27 07:11:01 +0000 | 
| commit | 12f4cc4b100b849de3584d5d1a2376cebcd8729f (patch) | |
| tree | 9b6c5c8badd6114034e59bffe5277696f93de4b1 /fs_selfservice/FS-SelfService | |
| parent | c1e316ef66e35dadb888b4e59047ba51082f198a (diff) | |
self-service ticket priority and edit subject, #13199
Diffstat (limited to 'fs_selfservice/FS-SelfService')
| -rw-r--r-- | fs_selfservice/FS-SelfService/SelfService.pm | 1 | ||||
| -rw-r--r-- | fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 23 | ||||
| -rw-r--r-- | fs_selfservice/FS-SelfService/cgi/ticket_summary.html | 65 | ||||
| -rw-r--r-- | fs_selfservice/FS-SelfService/cgi/tktview.html | 9 | 
4 files changed, 95 insertions, 3 deletions
| diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index ec0329bd2..0a153be45 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -64,6 +64,7 @@ $socket .= '.'.$tag if defined $tag && length($tag);    'myaccount_passwd'          => 'MyAccount/myaccount_passwd',    'create_ticket'             => 'MyAccount/create_ticket',    'get_ticket'                => 'MyAccount/get_ticket', +  'adjust_ticket_priority'    => 'MyAccount/adjust_ticket_priority',    'did_report'                => 'MyAccount/did_report',    'signup_info'               => 'Signup/signup_info',    'skin_info'                 => 'MyAccount/skin_info', diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 0e8b990da..58f2d0f1b 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -18,6 +18,7 @@ use FS::SelfService qw(    unprovision_svc change_pkg suspend_pkg domainselector    list_svcs list_svc_usage list_cdr_usage list_support_usage    myaccount_passwd list_invoices create_ticket get_ticket did_report +  adjust_ticket_priority    mason_comp port_graph  ); @@ -77,6 +78,7 @@ my @actions = ( qw(    myaccount    tktcreate    tktview +  ticket_priority    didreport    invoices    view_invoice @@ -276,11 +278,28 @@ sub tktcreate {  sub tktview {   get_ticket(	'session_id' => $session_id, -		'ticket_id' => $cgi->param('ticket_id'), -		'reply' => $cgi->param('reply'), +		'ticket_id' => ($cgi->param('ticket_id') || ''), +                'subject'   => ($cgi->param('subject') || ''), +		'reply'     => ($cgi->param('reply') || ''),  	    );  } +sub ticket_priority { +  my %values; +  foreach ( $cgi->param ) { +    if ( /^ticket(\d+)$/ ) { +      # a 'ticket1001' param implies the existence of a 'priority1001' param +      # but if that's empty, we need to send it as empty rather than forget +      # it. +      $values{$1} = $cgi->param("priority$1") || ''; +    } +  } +  $action = 'myaccount'; +  # this returns an updated customer_info for myaccount +  adjust_ticket_priority( 'session_id' => $session_id, +                          'values'     => \%values ); +} +  sub customer_order_pkg {    my $init_data = signup_info( 'customer_session_id' => $session_id );    return $init_data if ( $init_data->{'error'} ); diff --git a/fs_selfservice/FS-SelfService/cgi/ticket_summary.html b/fs_selfservice/FS-SelfService/cgi/ticket_summary.html new file mode 100644 index 000000000..0d1c5e99a --- /dev/null +++ b/fs_selfservice/FS-SelfService/cgi/ticket_summary.html @@ -0,0 +1,65 @@ +<SCRIPT TYPE="text/javascript" SRC="overlibmws.js"></SCRIPT> +<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 BGCOLOR="#eeeeee"> +<TR><TH BGCOLOR="#ff6666" COLSPAN=8>Open Tickets</TH></TR> +<TR> +<%= +my $col1 = "ffffff"; +my $col2 = "dddddd"; +my $col = $col1; + +my $can_set_priority =  +  grep { exists($_->{'_selfservice_priority'}) } @tickets; +if ( $can_set_priority ) { +  $OUT .= qq!<FORM ACTION="$selfurl" METHOD="POST">! . +          qq!<INPUT TYPE="hidden" NAME="session" VALUE="$session_id">! . +          qq!<INPUT TYPE="hidden" NAME="action" VALUE="ticket_priority">!; +} +$date_format ||= '%Y-%m-%d'; +my $date_formatter = sub { +  my $time = Date::Parse::str2time($_[0], 'GMT'); # RT internal dates are GMT +  # exclude times within 24 hours of zero +  ($time > 86400) ? Date::Format::time2str($date_format, $time) : '' +}; + +my @titles = ('#', qw(Subject Queue Status Created Due)); +push @titles, 'Estimated<BR>Minutes'; +push @titles, 'Priority'; + +$OUT .= join("\n", map { "<TH VALIGN=\"top\">$_</TH>" } @titles) . '</TR>'; + +foreach my $ticket ( @tickets ) { +  my $id = $ticket->{'id'}; +  my $td = qq!<TD BGCOLOR="#$col">!; +  my $link = qq!<A HREF="${url}tktview;ticket_id=$id">!; +  $OUT .= '<TR>' . $td . $link . $id . '</A></TD>'. +$td. $link . $ticket->{'subject'} . '</A></TD>'. +$td. $ticket->{'queue'} . '</TD>'. +$td. $ticket->{'status'} . '</TD>'. +$td. $date_formatter->($ticket->{'created'}) . '</TD>'. +$td. $date_formatter->($ticket->{'due'}) . '</TD>'. +qq!<TD BGCOLOR="#$col" ALIGN="right">!. ($ticket->{'timeestimated'} || '')  +.  '</TD>'. +qq!<TD BGCOLOR="#$col" ALIGN="right">!; +  if ( $can_set_priority ) { +    $OUT .= '<INPUT TYPE="hidden" NAME="ticket'.$id.'" VALUE="1">' . +            '<INPUT TYPE="text" SIZE=4 NAME="priority'.$id.'"' . +            'VALUE="'.$ticket->{'_selfservice_priority'}.'"></TD>'; +    if ( exists($ticket_error{$id}) ) { +      # display error message compactly +      $OUT .= '<TD><FONT COLOR="#ff0000" onmouseover="'. +              "return overlib('".$ticket_error{$id}."', AUTOSTATUS, WRAP);" . +              '" onmouseout="nd();">*</FONT></TD>'; +    } +  } +  else { +    $OUT .= ($ticket->{'content'} || $ticket->{'priority'}) . '</TD>'; +  } +  $OUT .= '</TR>'; +  $col = $col eq $col1 ? $col2 : $col1; +} #foreach my $ticket +if ( $can_set_priority ) { +  $OUT .= '<TR><TD COLSPAN=8 ALIGN="right"> +<INPUT TYPE="submit" VALUE="Save changes"></TD></TR></FORM>'; +} +%> +</TABLE> diff --git a/fs_selfservice/FS-SelfService/cgi/tktview.html b/fs_selfservice/FS-SelfService/cgi/tktview.html index 6f540bcf4..72634fee2 100644 --- a/fs_selfservice/FS-SelfService/cgi/tktview.html +++ b/fs_selfservice/FS-SelfService/cgi/tktview.html @@ -22,9 +22,16 @@ else {  <FORM ACTION="<%=$selfurl%>" METHOD=POST>      <input type="hidden" name="session" value="<%=$session_id%>">      <input type="hidden" name="ticket_id" value="<%=$ticket_id%>"> +<%= if ( $edit_ticket_subject ) { $OUT .= ' +    Subject:<BR><input type="text" name="subject" value="' .  +    $ticket_fields{'subject'} . '" style="width:440px"> +    <BR><BR>'; +} +%>      <input type="hidden" name="action" value="tktview">      Add reply to ticket: -    <BR><textarea name="reply" cols="60" rows="10"></textarea> +    <BR> +    <textarea name="reply" cols="60" rows="10" style="width:440px"></textarea>      <BR><input type="submit" value="Reply">  </form>  | 
