view/set svc_phone forwardst and email from self-service, RT13622
[freeside.git] / fs_selfservice / FS-SelfService / cgi / selfservice.cgi
index 0e8b990..8f1c4a5 100644 (file)
@@ -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'} );
@@ -703,7 +722,7 @@ sub provision_svc {
 
   my $result = part_svc_info(
     'session_id' => $session_id,
-    map { $_ => $cgi->param($_) } qw( pkgnum svcpart ),
+    map { $_ => $cgi->param($_) } qw( pkgnum svcpart svcnum ),
   );
   die $result->{'error'} if exists $result->{'error'} && $result->{'error'};
 
@@ -737,7 +756,7 @@ sub process_svc_phone {
            'session_id' => $session_id,
            'bulkdid' => [ @bulkdid ],
            'countrycode' => '1',
-            map { $_ => $cgi->param($_) } qw( pkgnum svcpart phonenum )
+            map { $_ => $cgi->param($_) } qw( pkgnum svcpart phonenum svcnum email forwarddst )
        );
     }
 
@@ -746,7 +765,7 @@ sub process_svc_phone {
        return {
          $cgi->Vars,
          %{ part_svc_info( 'session_id' => $session_id,
-                        map { $_ => $cgi->param($_) } qw( pkgnum svcpart )
+                        map { $_ => $cgi->param($_) } qw( pkgnum svcpart svcnum )
              )
          },
          'error' => $result->{'error'},