[freeside-commits] freeside/httemplate/edit part_export.cgi, 1.27.2.2, 1.27.2.3 svc_domain.cgi, 1.14.2.2, 1.14.2.3

Richard Siddall rsiddall at wavetail.420.am
Fri May 15 12:43:08 PDT 2009


Update of /home/cvs/cvsroot/freeside/httemplate/edit
In directory wavetail.420.am:/tmp/cvs-serv23375/httemplate/edit

Modified Files:
      Tag: FREESIDE_1_7_BRANCH
	part_export.cgi svc_domain.cgi 
Log Message:
Simple domain registration at Tucows OpenSRS using an export based on
Net::OpenSRS.
When a domain is added and the export runs, it will register the domain or  
initiate a transfer.  You can also choose no action.
There's currently no provision for revoking domains or renewing
registrations.
Depending on the settings at OpenSRS, orders may look like they've succeeded 
in Freeside but actually be queued pending input by the reseller at OpenSRS.
The part_export CGIs were modified to allow a multi-valued select to be used 
to control which TLDs are enabled for registration.


Index: part_export.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/edit/part_export.cgi,v
retrieving revision 1.27.2.2
retrieving revision 1.27.2.3
diff -u -d -r1.27.2.2 -r1.27.2.3
--- part_export.cgi	13 Jan 2008 21:36:08 -0000	1.27.2.2
+++ part_export.cgi	15 May 2009 19:43:06 -0000	1.27.2.3
@@ -79,13 +79,28 @@
                     );
       $html .= qq!<TR><TD ALIGN="right">$label</TD><TD>!;
       if ( $type eq 'select' ) {
-        $html .= qq!<SELECT NAME="$option">!;
-        foreach my $select_option ( @{$optinfo->{options}} ) {
+        my $size = defined($optinfo->{size}) ? " SIZE=" . $optinfo->{size} : '';
+        my $multi = defined($optinfo->{multi}) ? ' MULTIPLE' : '';
+        $html .= qq!<SELECT NAME="$option"$multi$size>!;
+        my @values = split '\s+', $value if $multi;
+        my @options;
+        if (defined($optinfo->{option_values})) {
+          my $valsub = $optinfo->{option_values};
+          @options = &$valsub();
+        } elsif (defined($optinfo->{options})) {
+          @options = @{$optinfo->{options}};
+        }
+        foreach my $select_option ( @options ) {
           #if ( ref($select_option) ) {
           #} else {
-            my $selected = $select_option eq $value ? ' SELECTED' : '';
+            my $selected = ($multi ? grep {$_ eq $select_option} @values : $select_option eq $value ) ? ' SELECTED' : '';
+            my $label = $select_option;
+            if (defined($optinfo->{option_label})) {
+              my $labelsub = $optinfo->{option_label};
+              $label = &$labelsub($select_option);
+            }
             $html .= qq!<OPTION VALUE="$select_option"$selected>!.
-                     qq!$select_option</OPTION>!;
+                     qq!$label</OPTION>!;
           #}
         }
         $html .= '</SELECT>';

Index: svc_domain.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/edit/svc_domain.cgi,v
retrieving revision 1.14.2.2
retrieving revision 1.14.2.3
diff -u -d -r1.14.2.2 -r1.14.2.3
--- svc_domain.cgi	13 Jan 2008 21:36:08 -0000	1.14.2.2
+++ svc_domain.cgi	15 May 2009 19:43:06 -0000	1.14.2.3
@@ -7,17 +7,31 @@
 <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
 <INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $svcpart %>">
 
-<INPUT TYPE="radio" NAME="action" VALUE="N"<% $kludge_action eq 'N' ? ' CHECKED' : '' %>>New
+<% ntable("#cccccc",2) %>
+<TR>
+<P>Domain <INPUT TYPE="text" NAME="domain" VALUE="<% $domain %>" SIZE=28 MAXLENGTH=63>
 <BR>
+% if ($export) {
+Available top-level domains: <% $export->option('tlds') %>
+</TR>
 
-<INPUT TYPE="radio" NAME="action" VALUE="M"<% $kludge_action eq 'M' ? ' CHECKED' : '' %>>Transfer
+<TR>
+<INPUT TYPE="radio" NAME="action" VALUE="N"<% $kludge_action eq 'N' ? ' CHECKED' : '' %>>Register at <% $registrar->{'name'} %>
+<BR>
 
-<P>Domain <INPUT TYPE="text" NAME="domain" VALUE="<% $domain %>" SIZE=28 MAXLENGTH=63>
+<INPUT TYPE="radio" NAME="action" VALUE="M"<% $kludge_action eq 'M' ? ' CHECKED' : '' %>>Transfer to <% $registrar->{'name'} %>
+<BR>
 
-<BR>Purpose/Description: <INPUT TYPE="text" NAME="purpose" VALUE="<% $purpose %>" SIZE=64>
+<INPUT TYPE="radio" NAME="action" VALUE="I"<% $kludge_action eq 'I' ? ' CHECKED' : '' %>>Registered elsewhere
 
-<P><INPUT TYPE="submit" VALUE="Submit">
+</TR>
 
+% }
+
+<TR>
+<P><INPUT TYPE="submit" VALUE="Submit">
+</TR>
+</TABLE>
 </FORM>
 
 <% include('/elements/footer.html') %>
@@ -27,7 +41,7 @@
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
 
-my($svcnum, $pkgnum, $svcpart, $kludge_action, $purpose, $part_svc,
+my($svcnum, $pkgnum, $svcpart, $kludge_action, $part_svc,
    $svc_domain);
 if ( $cgi->param('error') ) {
 
@@ -38,7 +52,6 @@
   $pkgnum = $cgi->param('pkgnum');
   $svcpart = $cgi->param('svcpart');
   $kludge_action = $cgi->param('action');
-  $purpose = $cgi->param('purpose');
   $part_svc = qsearchs('part_svc', { 'svcpart' => $svcpart } );
   die "No part_svc entry!" unless $part_svc;
 
@@ -61,7 +74,6 @@
 } else { #editing
 
   $kludge_action = '';
-  $purpose = '';
   my($query) = $cgi->keywords;
   $query =~ /^(\d+)$/ or die "unparsable svcnum";
   $svcnum=$1;
@@ -82,6 +94,20 @@
 
 my $svc = $part_svc->getfield('svc');
 
+my @exports = $part_svc->part_export();
+
+my $registrar;
+my $export;
+
+# Find the first export that does domain registration
+foreach (@exports) {
+	$export = $_ if $_->can('registrar');
+}
+# If we have a domain registration export, get the registrar object
+if ($export) {
+	$registrar = $export->registrar;
+}
+
 my $otaker = getotaker;
 
 my $domain = $svc_domain->domain;



More information about the freeside-commits mailing list