30392, refactored manage devices link, added it to broadband service page
authorJonathan Prykop <jonathan@freeside.biz>
Thu, 22 Jan 2015 21:51:11 +0000 (15:51 -0600)
committerJonathan Prykop <jonathan@freeside.biz>
Thu, 22 Jan 2015 21:51:11 +0000 (15:51 -0600)
httemplate/elements/manage_device_link.html [new file with mode: 0644]
httemplate/elements/tr-cust_svc.html
httemplate/view/elements/svc_Common.html
httemplate/view/elements/svc_edit_link.html
httemplate/view/svc_broadband.cgi

diff --git a/httemplate/elements/manage_device_link.html b/httemplate/elements/manage_device_link.html
new file mode 100644 (file)
index 0000000..76a3cdf
--- /dev/null
@@ -0,0 +1,46 @@
+<%doc>
+
+#For including the "Manage Device" link for broadband svc
+#  Handles check if svcdb is svc_broadband, ip_addr/mac_addr substitution 
+#  and manage_link-new_window, but manage_link_loc and no_links must
+#  be checked as appropriate before including this
+
+#Example:
+
+  <& /elements/manage_device_link.html, 
+       'svc' => $svc_x,
+       'part_svc' => $part_svc,
+       'manage_link' => scalar($conf->config('svc_broadband-manage_link')),
+       'manage_link_text' => scalar($conf->config('svc_broadband-manage_link_text')),
+       'manage_link-new_window' => $conf->exists('svc_broadband-manage_link-new_window'),
+       'prepend' => ' ( ',
+       'append' => ' ) '
+  &>
+
+</%doc>
+% if ($manage_link) {
+<% $startdec %><A HREF="<% $manage_link %>"<% $manage_target %>><% $manage_link_text |h %></A><% $enddec %>
+% }
+<%init>
+
+my %opt = @_;
+my $manage_link = '';
+my $manage_link_text = '';
+my $manage_target = '';
+my $startdec = '';
+my $enddec = '';
+
+if ( $opt{'part_svc'} and $opt{'svc'} and $opt{'manage_link'} and $opt{'part_svc'}->svcdb eq 'svc_broadband' ) {
+       my $ip_addr  = $opt{'svc'}->ip_addr || '';  #substitution for $manage_link
+       my $mac_addr = $opt{'svc'}->mac_addr || ''; # ditto
+       $manage_link = $opt{'manage_link'};
+       $manage_link =~ s/\$ip_addr/$ip_addr/g;   #safer than using eval
+       $manage_link =~ s/\$mac_addr/$mac_addr/g; # ditto
+       $manage_link_text = $opt{'manage_link_text'} || mt('Manage Device');
+       $manage_target = ' target="_blank"' if $opt{'manage_link-new_window'};
+       $startdec = $opt{'prepend'};
+       $enddec = $opt{'append'};
+}
+
+</%init>
+
index cc5ec0f..03de3ba 100644 (file)
@@ -43,8 +43,14 @@ Usage:
 %   }
   </TD>
 <TD ALIGN="right"><% FS::UI::Web::svc_export_links($m, $part_svc, $cust_svc) %>
-%   if ( $manage_link and $opt{'manage_link_loc'} eq 'right' && ! $opt{no_links} ) {
-      <A HREF="<% $manage_link %>" <% $manage_target %>><% $opt{'manage_link_text'} |h %></A>
+%   if ( $opt{'manage_link_loc'} eq 'right' && ! $opt{no_links} ) {
+<& /elements/manage_device_link.html, 
+       'svc' => $svc_x,
+       'part_svc' => $opt{'part_svc'} || $cust_svc->part_svc,
+       'manage_link' => $opt{'manage_link'},
+       'manage_link_text' => $opt{'manage_link_text'},
+       'manage_link-new_window' => $opt{'manage_link-new_window'}
+&>
 % }
 </TD>
 </TR>
@@ -90,8 +96,16 @@ $cust_svc->overlimit )
       include('/elements/popup_link-ping.html',
               'ip' => $svc_x->ip_addr
       ) %>&nbsp;)</FONT>
-%   if ( $manage_link and $opt{'manage_link_loc'} eq 'bottom' && ! $opt{no_links} ) {
-      <FONT SIZE="-2">(&nbsp;<A HREF="<% $manage_link %>" <% $manage_target %>><% $opt{'manage_link_text'} |h %></A>&nbsp;)</FONT>
+%   if ( $opt{'manage_link_loc'} eq 'bottom' && ! $opt{no_links} ) {
+<& /elements/manage_device_link.html, 
+       'svc' => $svc_x,
+       'part_svc' => $opt{'part_svc'} || $cust_svc->part_svc,
+       'manage_link' => $opt{'manage_link'},
+       'manage_link_text' => $opt{'manage_link_text'},
+       'manage_link-new_window' => $opt{'manage_link-new_window'},
+       'prepend' => '<FONT SIZE="-2">(&nbsp;',
+       'append' => '&nbsp;)</FONT>'
+&>
 %   }
 % } #svc_broadband
 % if ( $curuser->access_right('Unprovision customer service') && ! $opt{no_links} ) {
@@ -114,18 +128,6 @@ my $svc_unprovision_link =
   $cust_svc->svcnum .
   qq!', '!.emt('Permanently unprovision and delete this service?').qq!')">!.emt('Unprovision').'</A>';
 
-my $manage_link = $opt{'manage_link'};
-my $manage_target = '';
-if ( $part_svc->svcdb eq 'svc_broadband' and $manage_link ) {
-  my $ip_addr  = $svc_x->ip_addr;  #substitution for $manage_link
-  my $mac_addr = $svc_x->mac_addr; # ditto
-  $manage_link = eval(qq("$manage_link"));
-  $opt{'manage_link_text'} ||= mt('Manage Device');
-  $opt{'manage_link_loc'}  ||= 'bottom';
-  $manage_target = ' target="_blank"' if $opt{'manage_link-new_window'};
-}
-else {
-  $manage_link = '';
-}
+$opt{'manage_link_loc'}  ||= 'bottom';
 
 </%init>
index b7f7a2c..d7a1dcf 100644 (file)
              #at the very bottom (well, as low as you can go from here)
              'html_foot'  => '',
 
+             #only needed for svc_broadband Manage Devices link
+             'manage_link' => scalar($conf->config('svc_broadband-manage_link')),
+             'manage_link_text' => scalar($conf->config('svc_broadband-manage_link_text')),
+             'manage_link-new_window' => $conf->exists('svc_broadband-manage_link-new_window')
+
          )
 
 </%doc>
@@ -70,7 +75,11 @@ function areyousure(href) {
 <% mt('Service #') |h %><B><% $svcnum %></B>
 % if ( $custnum ) {
 %   my $url = $opt{'edit_url'} || $p. 'edit/'. $opt{'table'}. '.cgi?';
-<& /view/elements/svc_edit_link.html, 'svc' => $svc_x, 'edit_url' => $url &>
+<& /view/elements/svc_edit_link.html, 'svc' => $svc_x, 'part_svc' => $part_svc, 'edit_url' => $url,
+  'manage_link'               => $opt{'manage_link'},
+  'manage_link_text'          => $opt{'manage_link_text'},
+  'manage_link-new_window'    => $opt{'manage_link-new_window'}
+&>
 % }
 <BR>
 
@@ -222,7 +231,6 @@ my $format_field = sub {
     $field = $f;
     $type = 'text';
   }
-  warn "$field\t$type\t$value\n";
 
   my $columndef = $part_svc->part_svc_column($field);
   # skip fields that are fixed and empty
index 5438ed2..3ff2f58 100644 (file)
@@ -14,6 +14,14 @@ function areyousure_delete() {
 | <A HREF="javascript:areyousure_delete()"><% mt('Unprovision this Service') |h %></A>
 %   }
 % }
+<& /elements/manage_device_link.html, 
+       'svc' => $svc_x,
+       'part_svc' => $opt{'part_svc'} || $cust_svc->part_svc,
+       'manage_link' => $opt{'manage_link'},
+       'manage_link_text' => $opt{'manage_link_text'},
+       'manage_link-new_window' => $opt{'manage_link-new_window'},
+       'prepend' => '| '
+&>
 <%init>
 my %opt = @_;
 my $svc_x = $opt{'svc'} or die "'svc' required";
index ec73c6d..70c0b53 100644 (file)
@@ -4,6 +4,9 @@
   fields       => \@fields,
   svc_callback => \&svc_callback,
   radius_usage => 1,
+  'manage_link'               => scalar($conf->config('svc_broadband-manage_link')),
+  'manage_link_text'          => scalar($conf->config('svc_broadband-manage_link_text')),
+  'manage_link-new_window'    => $conf->exists('svc_broadband-manage_link-new_window')
 &>
 <%init>