dns editing improvements: show an error from adding default records, redirect back...
[freeside.git] / httemplate / edit / process / domain_record.cgi
index b8c3f62..8369f71 100755 (executable)
@@ -1,8 +1,23 @@
-<%
+%if ( $error ) {
+%  errorpage($error);
+%} elsif ( $recnum ) { #editing
+<% header('Nameservice record changed') %>
+  <SCRIPT TYPE="text/javascript">
+    window.top.location.reload();
+  </SCRIPT>
+  </BODY></HTML>
+%} else { #adding
+%  my $svcnum = $new->svcnum;
+<% $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum#dns") %>
+%}
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Edit domain nameservice');
 
 my $recnum = $cgi->param('recnum');
 
-my $old = qsearchs('agent',{'recnum'=>$recnum}) if $recnum;
+my $old = qsearchs('domain_record',{'recnum'=>$recnum}) if $recnum;
 
 my $new = new FS::domain_record ( {
   map {
@@ -12,23 +27,11 @@ my $new = new FS::domain_record ( {
 
 my $error;
 if ( $recnum ) {
-  $error=$new->replace($old);
+  $new->svcnum( $old->svcnum );
+  $error = $new->replace($old);
 } else {
-  $error=$new->insert;
-  $recnum=$new->getfield('recnum');
-}
-
-if ( $error ) {
-#  $cgi->param('error', $error);
-#  print $cgi->redirect(popurl(2). "agent.cgi?". $cgi->query_string );
-  #no edit screen to send them back to
-%>
-<!-- mason kludge -->
-<%
-  eidiot($error);
-} else { 
-  my $svcnum = $new->svcnum;
-  print $cgi->redirect(popurl(3). "view/svc_domain.cgi?$svcnum");
+  $error = $new->insert;
+  #$recnum = $new->getfield('recnum');
 }
 
-%>
+</%init>