UX: add status to package actions, redirect back to package tab
authorIvan Kohler <ivan@freeside.biz>
Fri, 11 Nov 2016 19:42:45 +0000 (11:42 -0800)
committerIvan Kohler <ivan@freeside.biz>
Fri, 11 Nov 2016 19:42:45 +0000 (11:42 -0800)
FS/FS/Mason.pm
httemplate/elements/header-cust_main.html
httemplate/elements/header-full.html
httemplate/misc/process/cancel_pkg.html
httemplate/misc/unsusp_pkg.cgi

index cb195a0..89140ca 100644 (file)
@@ -471,15 +471,19 @@ if ( -e $addl_handler_use_file ) {
   no warnings 'redefine';
   *CGI::redirect = sub {
     my $self = shift;
-    my $cookie = '';
-    if ( $_[0] eq '-cookie' ) { #this isn't actually used at the moment
-      (my $x, $cookie) = (shift, shift);
-      $HTML::Mason::r->err_headers_out->add( 'Set-cookie' => $cookie );
-    }
-    my $location = shift;
 
     use vars qw($m);
 
+    my $location = '';
+    if ( $_[0] =~ /^-/ ) {
+      my %opt = @_;
+      $location = $opt{'-uri'};
+      my $cookie = $opt{'-cookie'};
+      $m->apache_req->err_headers_out->{'Set-cookie'} = $cookie if $cookie;
+    } else {
+      $location = shift;
+    }
+
     # false laziness w/below
     if ( @DBIx::Profile::ISA ) {
 
index c1123c3..c094f95 100644 (file)
@@ -12,7 +12,7 @@ Examples:
 <& /elements/header.html, {
              'title'          => $title,
              'title_noescape' => $title_noescape,
-             'nobr'           => 1,
+             #'nobr'           => 1,
              'etc'            => $opt{'etc'},
           }
 &>
index fe02650..59e2785 100644 (file)
@@ -193,6 +193,20 @@ Example:
             <% $title_noescape || encode_entities($title) %>
           </H1>
 
+% my %cookies = CGI::Cookie->fetch($r);
+% if ( $cookies{freeside_status} ) {
+    <BR>
+%   foreach my $status_msg ( $cookies{freeside_status}->value ) {
+      <TABLE CLASS="fsinnerbox" STYLE="background-color:#eeffee"><TR>
+        <TD><IMG SRC="<% $fsurl %>images/tick.png"> <% $status_msg |h %></TD>
+      </TR></TABLE>
+%   }
+    <script src="<% $fsurl %>elements/js.cookie.js"></script>
+    <SCRIPT TYPE="text/javascript">
+      Cookies.remove('freeside_status', { path: '/' });
+    </SCRIPT>
+% }
+
 % unless ( $nobr ) {
           <BR>
 % }
index b8be271..0649261 100755 (executable)
@@ -1,5 +1,9 @@
 <& /elements/header-popup.html, emt("Package $past_method") &>
+  <script src="<% $fsurl %>elements/js.cookie.js"></script>
   <SCRIPT TYPE="text/javascript">
+    Cookies.set('freeside_status', <% mt("Package $past_method") |js_string %>,{
+                  expires: 0.0035
+    });
     topreload();
   </SCRIPT>
   </BODY>
index b350693..ad7effc 100755 (executable)
@@ -1,7 +1,16 @@
 %if ( $error ) {
 %  errorpage($error);
 %} else {
-<% $cgi->redirect(popurl(2). "view/cust_main.cgi?".$cust_pkg->getfield('custnum')) %>
+%  my $cookie = CGI::Cookie->new( -name    => 'freeside_status',
+%                                 -value   => mt('Package unsuspended'),
+%                                 -expires => '+5m',
+%                               );
+% #$r->headers_out->add( 'Set-Cookie' => $cookie->as_string );
+<% $cgi->redirect(
+     -uri => popurl(2). "view/cust_main.cgi?show=packages;custnum=".$cust_pkg->getfield('custnum'),
+     -cookie => $cookie
+  )
+%>
 %}
 <%init>