Code

Added snapshot to gofonmacros
[gosa.git] / plugins / gofon / phoneaccount / class_phoneAccount.inc
index c4bd41467a5e4b21954d0178bfd442f60736dbda..b38336fe90e1a65f25d0ed81968c0a774355b28e 100644 (file)
@@ -34,7 +34,8 @@ class phoneAccount extends plugin
   var $cli_parameters         = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
 
   /* attribute list for save action */
-  var $attributes             = array("goFonDeliveryMode", "goFonFormat","uid","cn","mail",
+  var $CopyPasteVars          = array("phoneNumbers");
+  var $attributes             = array("goFonDeliveryMode", "goFonFormat","uid","cn",
       "goFonHardware","goFonPIN","goFonVoicemailPIN","telephoneNumber", "goFonMacro","macro");
   var $objectclasses= array("goFonAccount");
 
@@ -880,8 +881,8 @@ class phoneAccount extends plugin
 
   function check()
   {
-    /* Reset message array */
-    $message= array();
+    /* Call common method to give check the hook */
+    $message= plugin::check();
 
     if((strlen($this->goFonVoicemailPIN)==0)||(strlen($this->goFonVoicemailPIN)>4)){
       $message[]=(_("Voicemail PIN must be between 1-4 characters."));
@@ -958,9 +959,9 @@ class phoneAccount extends plugin
     $ldap= $this->config->get_ldap_link();
     $ldap->cd($this->dn);
     $this->cleanup();
-$ldap->modify ($this->attrs); 
+    $ldap->modify ($this->attrs); 
 
-    show_ldap_error($ldap->get_error());
+    show_ldap_error($ldap->get_error(), _("Saving phone account failed"));
 
     /* Optionally execute a command after we're done */
 
@@ -1013,13 +1014,14 @@ $ldap->modify ($this->attrs);
 
   function remove_from_parent()
   {
+    if(!$this->initially_was_account) return;
+
     foreach($this->attributes as $key=>$val){
-      if(in_array($val,array("uid","cn","mail"))){
+      if(in_array($val,array("uid","cn"))){
         unset($this->attributes[$key]);
         unset($this->$val);
       }
     }
-
     if(array_key_exists('config', $_SESSION) &&
        array_key_exists('SERVERS', $_SESSION['config']->data) &&
        array_key_exists('FON', $_SESSION['config']->data['SERVERS']) &&
@@ -1033,8 +1035,8 @@ $ldap->modify ($this->attrs);
 
       // Check if we are  connected correctly
       if(!$r_con){
-        $this->generate_error = sprintf(_("The MySQL Server '%s' isn't reachable as user '%s', check GOsa log for mysql error."),
-            $a_SETUP['SERVER'],$a_SETUP['LOGIN']);
+        print_red(sprintf(_("The MySQL Server '%s' isn't reachable as user '%s', check GOsa log for mysql error."),
+                    $a_SETUP['SERVER'],$a_SETUP['LOGIN']));
         gosa_log(@mysql_error());
         return false;
       }
@@ -1044,7 +1046,7 @@ $ldap->modify ($this->attrs);
 
       // Test if we have the database selected correctly
       if(!$db){
-        $this->generate_error = sprintf(_("Can't select database %s on %s."),$a_SETUP['DB'],$a_SETUP['SERVER']);
+        print_red(sprintf(_("Can't select database %s on %s."),$a_SETUP['DB'],$a_SETUP['SERVER']));
         gosa_log(@mysql_error());
         return false;
       }
@@ -1118,9 +1120,9 @@ $ldap->modify ($this->attrs);
     }
     $ldap->cd($this->dn);
     $this->cleanup();
-$ldap->modify ($this->attrs); 
+    $ldap->modify ($this->attrs); 
 
-    show_ldap_error($ldap->get_error());
+    show_ldap_error($ldap->get_error(), _("Removing phone account failed"));
 
     /* Optionally execute a command after we're done */
     @mysql_close($r_con);
@@ -1157,8 +1159,11 @@ $ldap->modify ($this->attrs);
     }
   }
 
+
+  /* Create phoneAccount part of copy & paste dialog */
   function getCopyDialog()
-  {
+  { 
+    if(!$this->is_account) return("");
     $smarty = get_smarty();
     if (!count($this->phoneNumbers)){
       $smarty->assign ("phoneNumbers", array(""));
@@ -1170,11 +1175,16 @@ $ldap->modify ($this->attrs);
     $smarty->assign("goFonPIN",$this->goFonPIN);
 
     $display= $smarty->fetch(get_template_path('paste_generic.tpl', TRUE, dirname(__FILE__)));
-    return($display);
+    $ret =array();
+    $ret['string'] = $display;
+    $ret['status'] = "";
+    return($ret);
   }
 
+  /* Save posts from copy & paste dialog dialog  */
   function saveCopyDialog()
   {
+    if(!$this->is_account) return;
     $this->execute();
     if(isset($_POST['goFonVoicemailPIN'])) {
       $this->goFonVoicemailPIN = $_POST['goFonVoicemailPIN'];