X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fsvc_domain.cgi;h=9b54422d36aeb3521de62957462b39258628abef;hp=dd8ad8532147d17db245f9512b91bf1e7e4b54b0;hb=3f2a7b01b59902faed5767d81e2959e131bdbdfd;hpb=51984ac3d3da3006809c6866fdecd4ad83610731 diff --git a/httemplate/edit/svc_domain.cgi b/httemplate/edit/svc_domain.cgi index dd8ad8532..9b54422d3 100755 --- a/httemplate/edit/svc_domain.cgi +++ b/httemplate/edit/svc_domain.cgi @@ -1,69 +1,106 @@ -<% -# -# $Id: svc_domain.cgi,v 1.1 2001-07-30 07:36:04 ivan Exp $ -# -# Usage: svc_domain.cgi pkgnum{pkgnum}-svcpart{svcpart} -# http://server.name/path/svc_domain.cgi?pkgnum{pkgnum}-svcpart{svcpart} -# -# ivan@voicenet.com 97-jan-5 -> 97-jan-6 -# -# changes for domain template 3.5 -# ivan@voicenet.com 97-jul-24 -# -# rewrite ivan@sisd.com 98-mar-14 -# -# no GOV in instructions ivan@sisd.com 98-jul-17 -# -# $Log: svc_domain.cgi,v $ -# Revision 1.1 2001-07-30 07:36:04 ivan -# templates!!! -# -# Revision 1.10 2001/04/23 07:12:44 ivan -# better error message (if kludgy) for no referral -# remove outdated NSI foo from domain ordering. also, fuck NSI. -# -# Revision 1.9 1999/02/28 00:03:39 ivan -# removed misleading comments -# -# Revision 1.8 1999/02/07 09:59:25 ivan -# more mod_perl fixes, and bugfixes Peter Wemm sent via email -# -# Revision 1.7 1999/01/19 05:13:46 ivan -# for mod_perl: no more top-level my() variables; use vars instead -# also the last s/create/new/; -# -# Revision 1.6 1999/01/18 09:41:35 ivan -# all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl -# (good idea anyway) -# -# Revision 1.5 1998/12/30 23:03:25 ivan -# bugfixes; fields isn't exported by derived classes -# -# Revision 1.4 1998/12/23 03:00:16 ivan -# $cgi->keywords instead of $cgi->query_string -# -# Revision 1.3 1998/12/17 06:17:12 ivan -# fix double // in relative URLs, s/CGI::Base/CGI/; -# -# Revision 1.2 1998/11/13 09:56:48 ivan -# change configuration file layout to support multiple distinct databases (with -# own set of config files, export, etc.) -# - -use strict; -use vars qw( $cgi $action $svcnum $svc_domain $pkgnum $svcpart $part_svc - $svc $otaker $domain $p1 $kludge_action $purpose ); -use CGI; -use CGI::Carp qw(fatalsToBrowser); -use FS::UID qw(cgisuidsetup getotaker); -use FS::CGI qw(header popurl); -use FS::Record qw(qsearch qsearchs fields); -use FS::svc_domain; - -$cgi = new CGI; -&cgisuidsetup($cgi); +<% include('/elements/header.html', "$action $svc", '') %> + +<% include('/elements/error.html') %> + +
+ + + + +<% ntable("#cccccc",2) %> + + + Domain + +% if ( !$svcnum || $conf->exists('svc_domain-edit_domain') ) { + +% } else { + <% $domain %> + +% } + +% if ($export) { +
+Available top-level domains: <% $export->option('tlds') %> + + + +>Register at <% $registrar->{'name'} %> +
+ +>Transfer to <% $registrar->{'name'} %> +
+ +>Registered elsewhere + + + +% if($export->option('auoptions')) { +% # XXX: this whole thing should be done like svc_Common with label_fixup, etc. eventually + <% include('/elements/tr-select.html', + 'field' => 'au_eligibiilty_type', + 'label' => 'AU Eligibility Type', + 'value' => $svc_domain->au_eligibility_type, + 'options' => $svc_domain->au_eligibility_type_values, + ) + %> + <% include('/elements/tr-input-text.html', + 'field' => 'au_registrant_name', + 'label' => 'AU Registrant Name', + 'value' => $svc_domain->au_registrant_name, + ) + %> +% } + +% } + + + +% if ( $part_svc->part_svc_column('quota')->columnflag =~ /^[FA]$/ ) { + +% } else { + + Quota + + + + +% } + +<% include('svc_domain/communigate-basics.html', + 'svc_domain' => $svc_domain, + 'part_svc' => $part_svc, + 'communigate' => $communigate, + ) +%> + + +
+ +<% include('svc_domain/communigate-acct_defaults.html', + 'svc_domain' => $svc_domain, + 'part_svc' => $part_svc, + 'communigate' => $communigate, + ) +%> + + + +
+ +<% include('/elements/footer.html') %> + +<%init> +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific? + +my $conf = new FS::Conf; + +my($svcnum, $pkgnum, $svcpart, $kludge_action, $part_svc, + $svc_domain); if ( $cgi->param('error') ) { + $svc_domain = new FS::svc_domain ( { map { $_, scalar($cgi->param($_)) } fields('svc_domain') } ); @@ -71,98 +108,59 @@ if ( $cgi->param('error') ) { $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; -} else { + +} elsif ( $cgi->param('pkgnum') && $cgi->param('svcpart') ) { #adding + + $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum'; + $pkgnum = $1; + $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart'; + $svcpart = $1; + + $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart}); + die "No part_svc entry!" unless $part_svc; + + $svc_domain = new FS::svc_domain({}); + + $svcnum=''; + + $svc_domain->set_default_and_fixed; + +} else { #editing + $kludge_action = ''; - $purpose = ''; my($query) = $cgi->keywords; - if ( $query =~ /^(\d+)$/ ) { #editing - $svcnum=$1; - $svc_domain=qsearchs('svc_domain',{'svcnum'=>$svcnum}) - or die "Unknown (svc_domain) svcnum!"; - - my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum}) - or die "Unknown (cust_svc) svcnum!"; - - $pkgnum=$cust_svc->pkgnum; - $svcpart=$cust_svc->svcpart; - - $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart}); - die "No part_svc entry!" unless $part_svc; - - } else { #adding - - $svc_domain = new FS::svc_domain({}); - - foreach $_ (split(/-/,$query)) { - $pkgnum=$1 if /^pkgnum(\d+)$/; - $svcpart=$1 if /^svcpart(\d+)$/; - } - $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart}); - die "No part_svc entry!" unless $part_svc; - - $svcnum=''; - - #set fixed and default fields from part_svc - my($field); - foreach $field ( fields('svc_domain') ) { - if ( $part_svc->getfield('svc_domain__'. $field. '_flag') ne '' ) { - $svc_domain->setfield($field,$part_svc->getfield('svc_domain__'. $field) ); - } - } - - } + $query =~ /^(\d+)$/ or die "unparsable svcnum"; + $svcnum=$1; + $svc_domain=qsearchs('svc_domain',{'svcnum'=>$svcnum}) + or die "Unknown (svc_domain) svcnum!"; + + my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum}) + or die "Unknown (cust_svc) svcnum!"; + + $pkgnum=$cust_svc->pkgnum; + $svcpart=$cust_svc->svcpart; + + $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart}); + die "No part_svc entry!" unless $part_svc; + } -$action = $svcnum ? 'Edit' : 'Add'; - -$svc = $part_svc->getfield('svc'); - -$otaker = getotaker; - -$domain = $svc_domain->domain; - -$p1 = popurl(1); -print $cgi->header( '-expires' => 'now' ), header("$action $svc", ''); - -print qq!Error: !, $cgi->param('error'), - "" - if $cgi->param('error'); - -print < - - - -END - -print qq!New!; -print qq!
Transfer!; - -print <Domain -
Purpose/Description: -

- -US state and local government agencies, schools, libraries, museums, and individuals should register under the US domain. See RFC 1480 for a complete description of the US domain -and registration procedures. - - - - -END +my $action = $svcnum ? 'Edit' : 'Add'; -%> +my $svc = $part_svc->getfield('svc'); + +my $communigate = scalar($part_svc->part_export('communigate_pro')); + # || scalar($part_svc->part_export('communigate_pro_singledomain')); + +# Find the first export that does domain registration +my @exports = grep $_->can('registrar'), $part_svc->part_export; +my $export = $exports[0]; +# If we have a domain registration export, get the registrar object +my $registrar = $export ? $export->registrar : ''; + +my $domain = $svc_domain->domain; + +my $p1 = popurl(1); + +