X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fsvc_domain.cgi;h=8b4f282a6b8eb3779611967540c01855ed2af0a7;hp=5ec074bda55033bf704c94eeb35a35cfd4881416;hb=ad7f49821d40ffd099a45acc32ba91e0e211aede;hpb=9509e5bfb7f9331303153cac24d7bfecbe2ea9f1 diff --git a/httemplate/edit/svc_domain.cgi b/httemplate/edit/svc_domain.cgi index 5ec074bda..8b4f282a6 100755 --- a/httemplate/edit/svc_domain.cgi +++ b/httemplate/edit/svc_domain.cgi @@ -1,90 +1,288 @@ -%my($svcnum, $pkgnum, $svcpart, $kludge_action, $purpose, $part_svc, -% $svc_domain); -%if ( $cgi->param('error') ) { -% -% $svc_domain = new FS::svc_domain ( { -% map { $_, scalar($cgi->param($_)) } fields('svc_domain') -% } ); -% $svcnum = $svc_domain->svcnum; -% $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; -% -%} 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; -% $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; -% -%} -%my $action = $svcnum ? 'Edit' : 'Add'; -% -%my $svc = $part_svc->getfield('svc'); -% -%my $otaker = getotaker; -% -%my $domain = $svc_domain->domain; -% -%my $p1 = popurl(1); -% -% - - <% include('/elements/header.html', "$action $svc", '') %> -% if ( $cgi->param('error') ) { - - Error: <% $cgi->param('error') %> -% } +<% include('/elements/error.html') %>
->New +<% 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 ( $communigate ) { + + Administrator domain + + <% include('/elements/select-domain.html', + 'element_name' => 'parent_svcnum', + 'curr_value' => $svc_domain->parent_svcnum, + 'empty_label' => '(none)', + ) + %> + + +% } else { + +% } + +% if ( $communigate +% && $part_svc->part_svc_column('cgp_aliases')->columnflag !~ /^[FA]$/ ) { + + + Aliases + + + +% } else { + +% } + +% if ( $part_svc->part_svc_column('max_accounts')->columnflag =~ /^[FA]$/ ) { + +% } else { + + Maximum number of accounts + + + + +% } + +% if ( $communigate +% && $part_svc->part_svc_column('cgp_accessmodes')->columnflag ne 'F' ) +% { + + + Enabled services + + <% include( '/elements/communigate_pro-accessmodes.html', + 'curr_value' => $svc_domain->cgp_accessmodes, + ) + %> + + + +% } else { + +% } + +% if ( $communigate +% && $part_svc->part_svc_column('trailer')->columnflag ne 'F' ) +% { + + + Mail trailer + + + + + +% } else { + +% } + + +
->Transfer +% if ( $communigate ) { + +Account defaults +<% ntable("#cccccc",2) %> -

Domain + <% include('/elements/tr-checkbox.html', + 'label' =>'Password modification', + 'field' => 'acct_def_password_selfchange', + 'curr_value' => $svc_domain->acct_def_password_selfchange, + 'value' => 'Y', + ) + %> + <% include('/elements/tr-checkbox.html', + 'label' =>'Password recovery', + 'field' => 'acct_def_password_recover', + 'curr_value' => $svc_domain->acct_def_password_recover, + 'value' => 'Y', + ) + %> -
Purpose/Description: + + Enabled services + + <% include('/elements/communigate_pro-accessmodes.html', + 'element_name_prefix' => 'acct_def_cgp_accessmodes_', + 'curr_value' => $svc_domain->acct_def_cgp_accessmodes, + ) + %> + + -

+ <% include('/elements/tr-input-text.html', + 'label' => 'Mail storage limit', + 'field' => 'acct_def_quota', + 'curr_value' => $svc_domain->acct_def_quota, + ) + %> + <% include('/elements/tr-input-text.html', + 'label' => 'File storage limit', + 'field' => 'acct_def_file_quota', + 'curr_value' => $svc_domain->acct_def_file_quota, + ) + %> + <% include('/elements/tr-input-text.html', + 'label' => 'Files limit', + 'field' => 'acct_def_file_maxnum', + 'curr_value' => $svc_domain->acct_def_file_maxnum, + ) + %> + <% include('/elements/tr-input-text.html', + 'label' => 'File size limit', + 'field' => 'acct_def_file_maxsize', + 'curr_value' => $svc_domain->acct_def_file_maxsize, + ) + %> + +%# false laziness w/svc_acct acct_def + + Message delete method + + + + + + <% include('/elements/tr-input-text.html', + 'label' => 'On logout remove trash', + 'curr_value' => $svc_domain->acct_def_cgp_emptytrash, + ) + %> + + +
+ +% } else { + +% foreach my $f (qw( password_selfchange password_recover cgp_accessmodes +% quota file_quota file_maxnum file_maxsize +% cgp_deletemode cgp_emptytrash +% )) { + "> +% } + +% } + +

<% 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') + } ); + $svcnum = $svc_domain->svcnum; + $pkgnum = $cgi->param('pkgnum'); + $svcpart = $cgi->param('svcpart'); + $kludge_action = $cgi->param('action'); + $part_svc = qsearchs('part_svc', { 'svcpart' => $svcpart } ); + die "No part_svc entry!" unless $part_svc; + +} 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 = ''; + my($query) = $cgi->keywords; + $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; + +} +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 $otaker = getotaker; + +my $domain = $svc_domain->domain; + +my $p1 = popurl(1); + +