default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / fs_selfservice / FS-SelfService / cgi / myaccount_menu.html
index 4a31b12..1bc35e3 100644 (file)
@@ -1,4 +1,4 @@
-<%= $url = "$selfurl?session=$session_id;action="; ''; %>
+<%= $url = "$selfurl?action="; ''; %>
 <TABLE BORDER=0><TR>
 <TD VALIGN="top" BGCOLOR="<%= $menu_bgcolor || $box_bgcolor || '#c0c0c0' %>">
 
@@ -7,7 +7,7 @@
 <%= 
 
 if ( $menu_top_image ) {
-  $OUT .= '<TR><TD STYLE="padding:0px"><IMG SRC="image.cgi?menu_top_image"></TD></TR>';
+  $OUT .= '<TR><TD STYLE="padding:0px"><IMG SRC="image.cgi?name=menu_top_image;agentnum='. $agentnum. '"></TD></TR>';
 }
 
 my @menu = (
@@ -23,42 +23,59 @@ unless ( $access_pkgnum ) {
       url=>'customer_order_pkg', 'indent'=>2 };
 }
 
-if ( $balance > 0 ) { #XXXFIXME "enable selfservice prepay features" flag or something, eventually per-pkg or something really fancy
+my %payby_mode;
+@payby_mode{@cust_paybys} = @hide_payment_fields;
+# $payby_mode{FOO} is true if FOO is thirdparty, false if it's B::OP,
+# nonexistent if it's not supported
 
-  #XXXFIXME still a bit sloppy for multi-gateway of differing namespace
-  my $i = 0;
-  while($i < scalar(@cust_paybys)) { last if $cust_paybys[$i] =~ /^CARD/; $i++ }
-  if ( $cust_paybys[$i] && $cust_paybys[$i] =~ /^CARD/ ) {
+if ( $enable_payment_without_balance || (($balance || 0) > 0) ) { #eventually per-pkg or something really fancy
+
+  if ( exists( $payby_mode{CARD} ) ) {
     push @menu, { title  => 'Recharge my account with a credit card',
-                  url    => $hide_payment_fields[$i]
+                  url    => $payby_mode{CARD}
                               ? 'make_thirdparty_payment&payby_method=CC'
                               : 'make_payment',
                   indent => 2,
                  }
   }
 
-  $i = 0;
-  while($i < scalar(@cust_paybys)) { last if $cust_paybys[$i] =~ /^CHEK/; $i++ }
-  if ( $cust_paybys[$i] && $cust_paybys[$i] =~ /^CHEK/ ) {
+  if ( exists( $payby_mode{CHEK} ) ) {
     push @menu, { title  => 'Recharge my account with a check',
-                  url    => $hide_payment_fields[$i]
+                  url    => $payby_mode{CHEK}
                               ? 'make_thirdparty_payment&payby_method=ECHECK'
                               : 'make_ach_payment',
                   indent => 2,
                 }
   }
 
-  push @menu, { title  => 'Recharge my account with a prepaid card',
-                url    => 'recharge_prepay',
-                indent => 2,
-              }
-    if grep(/^PREP/, @cust_paybys);
+  if ( exists( $payby_mode{PREPAY} ) ) {
+    push @menu, { title  => 'Recharge my account with a prepaid card',
+                  url    => 'recharge_prepay',
+                  indent => 2,
+                }
+  }
 
+  if ( exists( $payby_mode{PPAL} ) ) {
+    push @menu, { title  => 'Recharge my account with PayPal',
+                  url    => 'make_thirdparty_payment&payby_method=PAYPAL',
+                  indent => 2,
+                }
+  }
+}
+
+push @menu,
+  { title=>' ' };
+
+push @menu,
+  { title=>'View payment history', url=>'history', size=>'+1' },
+;
+
+unless( $hide_usage ){
+  push @menu,
+    { title=>'View my usage', url=>'view_usage', size=>'+1', }
 }
 
 push @menu,
-  { title=>' ' },
-  { title=>'View my usage', url=>'view_usage', size=>'+1', },
   { title=>'Create a ticket', url=>'tktcreate', size=>'+1', },
 ;
 
@@ -76,9 +93,10 @@ push @menu,
 
 unless ( $access_pkgnum ) {
   push @menu,
-    { title=>'Change billing address',      url=>'change_bill',     indent=>2 },
-    { title=>'Change service address',      url=>'change_ship',     indent=>2 },
-    { title=>'Change payment information',  url=>'change_pay',      indent=>2 },
+    { title=>'Change billing address',          url=>'change_bill',           indent=>2 },
+    { title=>'Change service address',          url=>'change_ship',           indent=>2 },
+    { title=>'Change credit card information',  url=>'change_creditcard_pay', indent=>2 },
+    { title=>'Change check information',        url=>'change_check_pay',      indent=>2 },
   ;
 }
 
@@ -99,11 +117,11 @@ foreach my $item ( @menu ) {
   if ( $menu_body_image ) {
     if ( exists $item->{'url'} && $action eq $item->{'url'} ) {
       $OUT .= #' BGCOLOR="'. ( $body_bgcolor || '#eeeeee' ). '" '.
-              ' STYLE="background: url(image.cgi?menu_body_image) 0 bottom; '.
+              ' STYLE="background: url(image.cgi?name=menu_body_image;agentnum='. $agentnum. ') 0 bottom; '.
               '        color:#3366CC"; '. #XXX config
               ' " ';
     } else {
-      $OUT .= ' STYLE="background: url(image.cgi?menu_body_image) 0 bottom" ';
+      $OUT .= ' STYLE="background: url(image.cgi?name=menu_body_imagei;agentnum='. $agentnum. ') 0 bottom" ';
     }
   } else {
     if ( exists $item->{'url'} && $action eq $item->{'url'} ) {
@@ -144,7 +162,7 @@ foreach my $item ( @menu ) {
 }
 
 if ( $menu_bottom_image ) {
-  $OUT .= '<TR><TD STYLE="padding:0px"><IMG SRC="image.cgi?menu_bottom_image"></TD></TR>';
+  $OUT .= '<TR><TD STYLE="padding:0px"><IMG SRC="image.cgi?name=menu_bottom_image;agentnum='. $agentnum. '"></TD></TR>';
 } else {
   $OUT .= '<TR><TD STYLE="border-right: 1px solid black" HEIGHT="100%"><BR><BR><BR><BR></TD></TR>';
 }