fix rare FP rounding errors on void, RT#84904
[freeside.git] / httemplate / view / svc_domain / basics.html
1 Service #<B><% $svcnum %></B>
2 % #if ( $conf->exists('svc_domain-edit_domain') ) {
3   | <A HREF="<%$p%>edit/svc_domain.cgi?<%$svcnum%>">Edit this domain</A>
4 % #}
5
6 <% &ntable("#cccccc") %><TR><TD><% &ntable("#cccccc",2) %>
7
8 <TR>
9   <TD ALIGN="right">Service</TD>
10   <TD BGCOLOR="#ffffff"><% $part_svc->svc %></TD>
11 </TR>
12
13 <TR>
14   <TD ALIGN="right">Domain</TD>
15   <TD BGCOLOR="#ffffff">
16     <B><% $domain %></B>
17     <A HREF="<% ${p} %>misc/whois.cgi?custnum=<%$custnum%>;svcnum=<%$svcnum%>;domain=<%$domain%>">(view whois information)</A>
18   </TD>
19 </TR>
20
21 % if ($export) {
22   <TR>
23     <TD ALIGN="right">Registration status</TD>
24     <TD BGCOLOR="#ffffff"><B><% $status %></B>
25
26 %   if ( $FS::CurrentUser::CurrentUser->access_right('Manage domain registration') ) {
27 %     if ( defined($ops{'register'}) ) {
28     <A HREF="<% ${p} %>edit/process/domreg.cgi?op=register&svcnum=<% $svcnum %>">Register at <% $registrar->{'name'} %></A>&nbsp;
29 %     }
30 %     if ( defined($ops{'transfer'}) ) {
31     <A HREF="<% ${p} %>edit/process/domreg.cgi?op=transfer&svcnum=<% $svcnum %>">Transfer to <% $registrar->{'name'} %></A>&nbsp;
32 %     }
33 %     if ( defined($ops{'renew'}) ) {
34     <A HREF="<% ${p} %>edit/process/domreg.cgi?op=renew&svcnum=<% $svcnum %>&period=1">Renew at <% $registrar->{'name'} %></A>&nbsp;
35 %     }
36 %     if ( defined($ops{'revoke'}) ) {
37     <A HREF="<% ${p} %>edit/process/domreg.cgi?op=revoke&svcnum=<% $svcnum %>">Revoke</A>
38 %     }
39 %   }
40
41     </TD>
42   </TR>
43 % }
44
45 % if ( $communigate ) {
46
47   <TR>
48     <TD ALIGN="right">Administrator domain</TD>
49     <TD BGCOLOR="#ffffff">
50 %     if ( $svc_domain->parent_svcnum ) {
51 % #XXX agent-virt aware the link
52         <A HREF="svc_domain.cgi?<% $svc_domain->parent_svcnum %>"><% $svc_domain->parent_svc_x->domain %></A>
53 %     } else {
54         <I>(none)</I>
55 %     }
56     </TD>
57   </TR>
58
59   <TR>
60     <TD ALIGN="right">Aliases</TD>
61     <TD BGCOLOR="#ffffff"><% $svc_domain->cgp_aliases %></TD>
62   </TR>
63
64 % }
65
66 % if ( $svc_domain->quota ) {
67   <TR>
68     <TD ALIGN="right">Quota</TD>
69     <TD BGCOLOR="#ffffff"><% $svc_domain->quota %></TD>
70   </TR>
71 % }
72
73 % if ( $communigate && $svc_domain->max_accounts ) {
74   <TR>
75     <TD ALIGN="right">Maximum number of Accounts</TD>
76     <TD BGCOLOR="#ffffff"><% $svc_domain->max_accounts %></TD>
77   </TR>
78 % }
79
80 <TR>
81   <TD ALIGN="right">Catch all email</TD>
82   <TD BGCOLOR="#ffffff"><% $email ? "<B>$email</B>" : '<I>(none)</I>' %>
83 % if ( $FS::CurrentUser::CurrentUser->access_right('Edit domain catchall') ) {
84      <A HREF="<% ${p} %>misc/catchall.cgi?<% $svcnum %>">(change)</A>
85 % }
86   </TD>
87 </TR>
88
89 % if ( $svc_domain->cgp_accessmodes ) {
90   <TR>
91     <TD ALIGN="right">Enabled services</TD>
92     <TD BGCOLOR="#ffffff"><% $svc_domain->cgp_accessmodes %></TD>
93   </TR>
94 % }
95
96 % if ( $svc_domain->cgp_certificatetype ) {
97   <TR>
98     <TD ALIGN="right">PKI services</TD>
99     <TD BGCOLOR="#ffffff"><% $svc_domain->cgp_certificatetype %></TD>
100   </TR>
101 % }
102
103 % if ( $svc_domain->trailer ) {
104   <TR>
105     <TD ALIGN="right">Mail trailer</TD>
106     <TD BGCOLOR="#ffffff"><PRE><% $svc_domain->trailer |h %></PRE></TD>
107   </TR>
108 % }
109
110 % if ( $communigate ) {
111 %   my $rule_url = $p. 'browse/cgp_rule.html?svcnum='. $svc_domain->svcnum;
112     <TR>
113       <TD ALIGN="right">Doimain mail rules</TD>
114       <TD BGCOLOR="#ffffff"><A HREF="<% $rule_url %>">View/Edit domain mail rules</A></TD>
115     </TR>
116 % }
117
118 </TABLE></TD></TR></TABLE>
119
120 <%init>
121
122 my($svc_domain, %opt) = @_;
123 my $svcnum = $svc_domain->svcnum;
124 my $domain = $svc_domain->domain;
125 my $custnum = $opt{'custnum'};
126 my $part_svc = $opt{'part_svc'};
127
128 my $communigate = scalar($part_svc->part_export('communigate_pro'));
129                 # || scalar($part_svc->part_export('communigate_pro_singledomain'));
130
131 my $email = '';
132 if ($svc_domain->catchall) {
133   my $svc_acct = qsearchs('svc_acct',{'svcnum'=> $svc_domain->catchall } );
134   die "Unknown svcpart" unless $svc_acct;
135   $email = $svc_acct->email;
136 }
137
138 # Find the first export that does domain registration
139 my @exports = grep $_->can('registrar'), $part_svc->part_export;
140 my $export = $exports[0];
141 # If we have a domain registration export, get the registrar object
142 my $registrar;
143 my $status = 'Unknown';
144 my %ops = ();
145 if ($export) {
146         $registrar = $export->registrar;
147         my $domstat = $export->get_status( $svc_domain );
148         if (defined($domstat->{'message'})) {
149                 $status = $domstat->{'message'};
150         } elsif (defined($domstat->{'unregistered'})) {
151                 $status = 'Not registered';
152                 $ops{'register'} = "Register";
153         } elsif (defined($domstat->{'status'})) {
154                 $status = $domstat->{'status'} . ' ' . $domstat->{'contact_email'} . ' ' . $domstat->{'last_update_time'};
155         } elsif (defined($domstat->{'expdate'})) {
156                 $status = "Expires " . $domstat->{'expdate'};
157                 $ops{'renew'} = "Renew";
158                 $ops{'revoke'} = "Revoke";
159         } else {
160                 $status = $domstat->{'reason'};
161                 $ops{'transfer'} = "Transfer";
162         }
163 }
164
165 </%init>