Code

Fixed typo
[gosa.git] / plugins / admin / systems / class_servDNSeditZoneEntries.inc
index fa41684f87f1d392356002951ae6b45224c7cbc5..3a13bde7dbfac17fc1f0b18238cb336979970ad1 100644 (file)
@@ -46,8 +46,11 @@ class servDNSeditZoneEntries extends plugin
       $this->Devices[$attrs['relativeDomainName'][0]]['OrigCn'] = $attrs['relativeDomainName'][0];
     }
 
-    if(!count($this->Devices)){
-      $this->disableDialog = true;
+    $ldap->cat($this->dn,array("objectClass"));
+
+    $this->disableDialog = true;
+    if(count($this->Devices)|| $ldap->count()){
+      $this->disableDialog = false;
     }
   }
 
@@ -69,13 +72,13 @@ class servDNSeditZoneEntries extends plugin
 
       /* Add new host entry
        */
-      if((preg_match("/^UserRecord_/",$name)) && ($once)){
+      if((preg_match("/^UserRecord_?/",$name)) && ($once)){
         $once = false;
         $entry = getDNSHostEntries($this->config,"",true);     
         $entry['exists']    = true;
         $entry['zoneName']  = $this->zoneName; 
         $entry['RECORDS'][] = array("type" => "aRecord" , "value"=>"");
-        $this->Devices['New Entry'] = $entry;
+        $this->Devices[_("New entry")] = $entry;
       }
 
       if(count($tmp2) != 2) continue;
@@ -168,8 +171,13 @@ class servDNSeditZoneEntries extends plugin
        */
       if(preg_match("/RenameHost_/",$name)){
         if((isset($this->Devices[$Name])) && ($Name != $value)){
-          $this->Devices[$value] = $this->Devices[$Name];
-          unset($this->Devices[$Name]);
+    
+          if(isset($this->Devices[$value])){
+            print_red(sprintf(_("Can't rename '%s' to '%s' there is already an entry with the same name in our zone editing dialog."),$Name,$value));
+          }else{
+            $this->Devices[$value] = $this->Devices[$Name];
+            unset($this->Devices[$Name]);
+          }
         }
       }
     }
@@ -180,7 +188,8 @@ class servDNSeditZoneEntries extends plugin
    */
   function check()
   {
-    $message= array();
+    /* Call common method to give check the hook */
+    $message= plugin::check();
     
     $ldap = $this->config->get_ldap_link();
     $ldap->cd($this->config->current['BASE']);
@@ -197,9 +206,16 @@ class servDNSeditZoneEntries extends plugin
       /* Renaming check for existing devices 
        */
       if(isset($device['OrigCn'])  && ($DevName != $device['OrigCn'] )){
-        $ldap->search("(cn=".$DevName.")",array("cn"));
+        $ldap->cd($this->config->current['BASE']);
+        $ldap->search("(relativeDomainName=".$DevName.")",array("relativeDomainName"));
         if($ldap->count()){
-          $message[] = sprintf(_("Can't rename '%s' to '%s',the destination name already exists."),$device['OrigCn'],$DevName);
+          $message[] = sprintf(_("Can not rename '%s' to '%s',the destination name already exists."),$device['OrigCn'],$DevName);
+        }
+      }elseif(!isset($device['OrigCn'])){
+        $ldap->cd($this->config->current['BASE']);
+        $ldap->search("(relativeDomainName=".$DevName.")",array("relativeDomainName"));
+        if($ldap->count()){
+          $message[] = sprintf(_("Can not create '%s',the destination name already exists."),$DevName);
         }
       }
 
@@ -310,7 +326,7 @@ class servDNSeditZoneEntries extends plugin
      */
     foreach($tmp['add'] as $dn => $attrs){
       $ldap->cd($dn);
-      $ldap->cat($dn);
+      $ldap->cat($dn, array('dn'));
       if(count($ldap->fetch())){
         $ldap->cd($dn);
         $ldap->modify ($attrs);
@@ -337,7 +353,7 @@ class servDNSeditZoneEntries extends plugin
 
     /* Set title 
      */
-    $str = "<h3>".sprintf(_("Settings for '%s'"),$objKey)." : </h3>";
+    $str= "<br>";
 
     $hostNameOnce = true;
 
@@ -350,29 +366,27 @@ class servDNSeditZoneEntries extends plugin
        */
       $name = base64_encode($objKey)."|".$id;
 
-      $str .= "<tr><td style='width:80px;'>\n";
+      $str .= "<tr><td style='width:170px;'>\n";
 
       /* Only first host entry name should be editable
        */
       if($hostNameOnce){
         $hostNameOnce = false;  
         $str .="<input type='text' name='RenameHost_".$name."' value='".$objectName."'>\n";
-      }else{
-        $str .=$objectName;
-      }  
+      }
 
       /* Create rest. Selectbox, icons ...
        */
       $str .="
         </td>
-        <td style='width:80px;'>
+        <td style='width:90px;'>
           ".$this->createRecordTypeSelection($record['type'],$name)."
         </td>
         <td>
           <input type='text'  value='".$record['value']."' name='ValueSelection_".$name."' style='width:250px;'>
         </td>
         <td style='width:50px;text-align:right;'>
-          <input type='image' name='AddRecord_".$name."'   src='images/crossref.png' alt='"._("Add")."' title='"._("Add")."'>
+          <input type='image' name='AddRecord_".$name."'   src='images/list_new.png' alt='"._("Add")."' title='"._("Add")."'>
           <input type='image' name='RemoveRecord_".$name."' src='images/edittrash.png'      alt='"._("Remove")."' title='"._("Remove")."'>
         </td>
       </tr>";