3 %# <% include("/elements/header.html","View $svcdomain") %>
4 <% include("/elements/header.html","View domain") %>
5 <% include( '/elements/small_custview.html', $custnum, '', 1,
6 "${p}view/cust_main.cgi") %>
11 <% include("/elements/header.html",'View domain', menubar(
12 "Cancel this (unaudited) domain" =>
13 "javascript:areyousure('${p}misc/cancel-unaudited.cgi?$svcnum', 'Delete $domain and all records?')",
19 <% include('/elements/error.html') %>
21 Service #<B><% $svcnum %></B>
22 % #if ( $conf->exists('svc_domain-edit_domain') ) {
23 | <A HREF="<%$p%>edit/svc_domain.cgi?<%$svcnum%>">Edit this domain</A>
26 <% &ntable("#cccccc") %><TR><TD><% &ntable("#cccccc",2) %>
29 <TD ALIGN="right">Service</TD>
30 <TD BGCOLOR="#ffffff"><% $part_svc->svc %></TD>
34 <TD ALIGN="right">Domain</TD>
35 <TD BGCOLOR="#ffffff">
37 <A HREF="<% ${p} %>misc/whois.cgi?custnum=<%$custnum%>;svcnum=<%$svcnum%>;domain=<%$domain%>">(view whois information)</A>
43 <TD ALIGN="right">Registration status</TD>
44 <TD BGCOLOR="#ffffff"><B><% $status %></B>
46 % if ( $FS::CurrentUser::CurrentUser->access_right('Manage domain registration') ) {
47 % if ( defined($ops{'register'}) ) {
48 <A HREF="<% ${p} %>edit/process/domreg.cgi?op=register&svcnum=<% $svcnum %>">Register at <% $registrar->{'name'} %></A>
50 % if ( defined($ops{'transfer'}) ) {
51 <A HREF="<% ${p} %>edit/process/domreg.cgi?op=transfer&svcnum=<% $svcnum %>">Transfer to <% $registrar->{'name'} %></A>
53 % if ( defined($ops{'renew'}) ) {
54 <A HREF="<% ${p} %>edit/process/domreg.cgi?op=renew&svcnum=<% $svcnum %>&period=1">Renew at <% $registrar->{'name'} %></A>
56 % if ( defined($ops{'revoke'}) ) {
57 <A HREF="<% ${p} %>edit/process/domreg.cgi?op=revoke&svcnum=<% $svcnum %>">Revoke</A>
65 % if ( $communigate ) {
68 <TD ALIGN="right">Administrator domain</TD>
69 <TD BGCOLOR="#ffffff">
70 % if ( $svc_domain->parent_svcnum ) {
71 % #XXX agent-virt aware the link
72 <A HREF="svc_domain.cgi?<% $svc_domain->parent_svcnum %>"><% $svc_domain->parent_svc_x->domain %></A>
80 <TD ALIGN="right">Aliases</TD>
81 <TD BGCOLOR="#ffffff"><% $svc_domain->cgp_aliases %></TD>
86 % if ( $communigate && $svc_domain->max_accounts ) {
88 <TD ALIGN="right">Maximum number of Accounts</TD>
89 <TD BGCOLOR="#ffffff"><% $svc_domain->max_accounts %></TD>
94 <TD ALIGN="right">Catch all email</TD>
95 <TD BGCOLOR="#ffffff"><% $email ? "<B>$email</B>" : '<I>(none)</I>' %>
96 % if ( $FS::CurrentUser::CurrentUser->access_right('Edit domain catchall') ) {
97 <A HREF="<% ${p} %>misc/catchall.cgi?<% $svcnum %>">(change)</A>
103 <TD ALIGN="right">Enabled services</TD>
104 <TD BGCOLOR="#ffffff"><% $svc_domain->cgp_accessmodes %></TD>
107 </TABLE></TD></TR></TABLE>
111 function areyousure(href, message) {
112 if ( confirm(message) == true )
113 window.location.href = href;
115 function slave_areyousure() {
116 return confirm("Remove all records and slave from " + document.SlaveForm.recdata.value + "?");
121 % my @records; if ( @records = $svc_domain->domain_record ) {
123 <% include('/elements/table-grid.html') %>
125 % my $bgcolor1 = '#eeeeee';
126 % my $bgcolor2 = '#ffffff';
127 % my $bgcolor = $bgcolor2;
130 <th CLASS="grid" BGCOLOR="#cccccc">Zone</th>
131 <th CLASS="grid" BGCOLOR="#cccccc">Type</th>
132 <th CLASS="grid" BGCOLOR="#cccccc">Data</th>
135 % foreach my $domain_record ( @records ) {
136 % my $type = $domain_record->rectype eq '_mstr'
138 % : $domain_record->recaf. ' '. $domain_record->rectype;
142 <td CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $domain_record->reczone %></td>
143 <td CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $type %></td>
144 <td CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $domain_record->recdata %>
146 % unless ( $domain_record->rectype eq 'SOA'
147 % || ! $FS::CurrentUser::CurrentUser->access_right('Edit domain nameservice')
149 % ( my $recdata = $domain_record->recdata ) =~ s/"/\\'\\'/g;
150 (<A HREF="javascript:areyousure('<%$p%>misc/delete-domain_record.cgi?<%$domain_record->recnum%>', 'Delete \'<% $domain_record->reczone %> <% $type %> <% $recdata %>\' ?' )">delete</A>)
156 % if ( $bgcolor eq $bgcolor1 ) {
157 % $bgcolor = $bgcolor2;
159 % $bgcolor = $bgcolor1;
167 % if ( $FS::CurrentUser::CurrentUser->access_right('Edit domain nameservice') ) {
168 <FORM METHOD="POST" ACTION="<%$p%>edit/process/domain_record.cgi">
169 <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%$svcnum%>">
170 <INPUT TYPE="text" NAME="reczone">
171 <INPUT TYPE="hidden" NAME="recaf" VALUE="IN"> IN
172 <SELECT NAME="rectype">
173 % foreach (qw( A NS CNAME MX PTR TXT) ) {
174 <OPTION VALUE="<%$_%>"><%$_%></OPTION>
177 <INPUT TYPE="text" NAME="recdata">
178 <INPUT TYPE="submit" VALUE="Add record">
181 <FORM NAME="SlaveForm" METHOD="POST" ACTION="<%$p%>edit/process/domain_record.cgi">
182 <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%$svcnum%>">
184 Delete all records and
186 Or slave from nameserver IP
187 <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%$svcnum%>">
188 <INPUT TYPE="hidden" NAME="reczone" VALUE="@">
189 <INPUT TYPE="hidden" NAME="recaf" VALUE="IN">
190 <INPUT TYPE="hidden" NAME="rectype" VALUE="_mstr">
191 <INPUT TYPE="text" NAME="recdata">
192 <INPUT TYPE="submit" VALUE="Slave domain" onClick="return slave_areyousure()">
198 <% include('elements/svc_export_settings.html', $svc_domain) %>
200 <% joblisting({'svcnum'=>$svcnum}, 1) %>
202 <% include('/elements/footer.html') %>
206 unless $FS::CurrentUser::CurrentUser->access_right('View customer services');
208 my $conf = new FS::Conf;
210 my($query) = $cgi->keywords;
213 my $svc_domain = qsearchs({
214 'select' => 'svc_domain.*',
215 'table' => 'svc_domain',
216 'addl_from' => ' LEFT JOIN cust_svc USING ( svcnum ) '.
217 ' LEFT JOIN cust_pkg USING ( pkgnum ) '.
218 ' LEFT JOIN cust_main USING ( custnum ) ',
219 'hashref' => {'svcnum'=>$svcnum},
220 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql(
221 'null_right' => 'View/link unlinked services'
224 die "Unknown svcnum" unless $svc_domain;
226 my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum});
227 my $pkgnum = $cust_svc->getfield('pkgnum');
228 my($cust_pkg, $custnum, $display_custnum);
230 $cust_pkg = qsearchs('cust_pkg', {'pkgnum'=>$pkgnum} );
231 $custnum = $cust_pkg->custnum;
232 $display_custnum = $cust_pkg->cust_main->display_custnum;
238 my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
239 die "Unknown svcpart" unless $part_svc;
242 if ($svc_domain->catchall) {
243 my $svc_acct = qsearchs('svc_acct',{'svcnum'=> $svc_domain->catchall } );
244 die "Unknown svcpart" unless $svc_acct;
245 $email = $svc_acct->email;
248 my $domain = $svc_domain->domain;
250 my $communigate = scalar($part_svc->part_export('communigate_pro'));
251 # || scalar($part_svc->part_export('communigate_pro_singledomain'));
253 # Find the first export that does domain registration
254 my @exports = grep $_->can('registrar'), $part_svc->part_export;
255 my $export = $exports[0];
256 # If we have a domain registration export, get the registrar object
258 my $status = 'Unknown';
261 $registrar = $export->registrar;
262 my $domstat = $export->get_status( $svc_domain );
263 if (defined($domstat->{'message'})) {
264 $status = $domstat->{'message'};
265 } elsif (defined($domstat->{'unregistered'})) {
266 $status = 'Not registered';
267 $ops{'register'} = "Register";
268 } elsif (defined($domstat->{'status'})) {
269 $status = $domstat->{'status'} . ' ' . $domstat->{'contact_email'} . ' ' . $domstat->{'last_update_time'};
270 } elsif (defined($domstat->{'expdate'})) {
271 $status = "Expires " . $domstat->{'expdate'};
272 $ops{'renew'} = "Renew";
273 $ops{'revoke'} = "Revoke";
275 $status = $domstat->{'reason'};
276 $ops{'transfer'} = "Transfer";