communigate: domain aliases, enabled services & administrator domain, RT#7083
[freeside.git] / httemplate / edit / svc_domain.cgi
index 10079ce..a3589c4 100755 (executable)
@@ -8,10 +8,18 @@
 <INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $svcpart %>">
 
 <% ntable("#cccccc",2) %>
+
 <TR>
-<P>Domain <INPUT TYPE="text" NAME="domain" VALUE="<% $domain %>" SIZE=28 MAXLENGTH=63>
-<BR>
+  <TD ALIGN="right">Domain</TD>
+  <TD>
+%   if ( !$svcnum || $conf->exists('svc_domain-edit_domain') ) {
+      <INPUT TYPE="text" NAME="domain" VALUE="<% $domain %>" SIZE=28 MAXLENGTH=63>
+%   } else {
+      <B><% $domain %></B>
+%   }
+
 % if ($export) {
+<BR>
 Available top-level domains: <% $export->option('tlds') %>
 </TR>
 
@@ -27,11 +35,71 @@ Available top-level domains: <% $export->option('tlds') %>
 </TR>
 
 % }
-
-<TR>
-<P><INPUT TYPE="submit" VALUE="Submit">
+  </TD>
 </TR>
+
+% if ( $communigate ) {
+  <TR>
+    <TD ALIGN="right">Administrator domain</TD>
+    <TD>
+      <% include('/elements/select-domain.html',
+                   'element_name' => 'parent_svcnum',
+                   'curr_value'   => $svc_domain->parent_svcnum,
+                   'empty_label'  => '(none)',
+                )
+      %>
+    </TD>
+  </TR>
+% } else {
+  <INPUT TYPE="hidden" NAME="parent_svcnum" VALUE="<% $svc_domain->parent_svcnum %>">
+% }
+
+% if ( $communigate
+%      && $part_svc->part_svc_column('max_accounts')->columnflag !~ /^[FA]$/ ) {
+
+    <TR>
+      <TD ALIGN="right">Aliases</TD>
+      <TD><INPUT TYPE="text" NAME="cgp_aliases" VALUE="<% $svc_domain->cgp_aliases %>"></TD>
+    </TR>
+
+% } else {
+    <INPUT TYPE="text" NAME="cgp_aliases" VALUE="<% $svc_domain->cgp_aliases %>">
+% }
+
+% if ( $part_svc->part_svc_column('max_accounts')->columnflag =~ /^[FA]$/ ) {
+    <INPUT TYPE="hidden" NAME="max_accounts" VALUE="<% $svc_domain->max_accounts %>">
+% } else {
+    <TR>
+      <TD ALIGN="right">Maximum number of accounts</TD>
+      <TD>
+        <INPUT TYPE="text" NAME="max_accounts" SIZE=5 MAXLENGTH=6 VALUE="<% $svc_domain->max_accounts %>">
+      </TD>
+    </TR>
+% }
+
+% if ( $communigate
+%      && $part_svc->part_svc_column('cgp_accessmodes')->columnflag ne 'F' )
+% {
+
+  <TR>
+    <TD ALIGN="right">Enabled services</TD>
+    <TD>
+      <% include( '/elements/communigate_pro-accessmodes.html',
+                    'curr_value' => $svc_domain->cgp_accessmodes,
+                )
+      %>
+    </TD>
+  </TR>
+
+% } else {
+    <INPUT TYPE="hidden" NAME="cgp_accessmodes" VALUE="<% $svc_domain->cgp_accessmodes() |h %>">
+% }
+
 </TABLE>
+
+<BR>
+<INPUT TYPE="submit" VALUE="Submit">
+
 </FORM>
 
 <% include('/elements/footer.html') %>
@@ -41,6 +109,8 @@ Available top-level domains: <% $export->option('tlds') %>
 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') ) {
@@ -94,19 +164,14 @@ my $action = $svcnum ? 'Edit' : 'Add';
 
 my $svc = $part_svc->getfield('svc');
 
-my @exports = $part_svc->part_export();
-
-my $registrar;
-my $export;
+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
-foreach (@exports) {
-       $export = $_ if $_->can('registrar');
-}
+my @exports = grep $_->can('registrar'), $part_svc->part_export;
+my $export = $exports[0];
 # If we have a domain registration export, get the registrar object
-if ($export) {
-       $registrar = $export->registrar;
-}
+my $registrar = $export ? $export->registrar : '';
 
 my $otaker = getotaker;