Code

Modified Translation String.
[gosa.git] / plugins / gofon / phoneaccount / class_phoneAccount.inc
index 31e38b1393350f9b55a9fed54ba1c775f4c2103e..db58e20bcf781c744a770222ebd82714c645cdb2 100644 (file)
@@ -237,7 +237,7 @@ class phoneAccount extends plugin
   function generate_mysql_entension_entries($save = false){
 
     if(!isset($_SESSION['config']->data['SERVERS']['FON'])){
-      print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer). \n Your Settings can't be saved to asterisk Database. "));
+      print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer).\nYour Settings can't be saved to asterisk Database."));
       return(true);
     }
 
@@ -408,6 +408,23 @@ class phoneAccount extends plugin
       $SQL[] = "DELETE FROM ".$a_SETUP['EXT_TABLE']." WHERE exten='".$this->uid."';\n";
       $SQL[] = "DELETE FROM ".$a_SETUP['SIP_TABLE']." WHERE name='".$this->uid."';\n";
       $SQL[] = "DELETE FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$this->phoneNumbers[$i_new_key].";"; 
+      // Delete old entries
+      $b_first_deleted  =false;
+      foreach($this->a_old_telenums as $s_telenums){
+        $SQL[] = "DELETE FROM ".$a_SETUP['EXT_TABLE']." WHERE exten='".$s_telenums."';\n";
+        if(!$b_first_deleted){
+          $b_first_deleted=true;
+          $SQL[] = "DELETE FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$s_telenums.";";
+        }
+      }
+
+   
+      if($this->goFonHardware=="automatic"){
+        foreach($SQL as $query ){
+          mysql_query($query) ;
+        }
+        return;
+      }
 
       // Generate Strings with keys and values 
       foreach($sip_entry as $s_sip_key=>$s_sip_val){
@@ -422,16 +439,6 @@ class phoneAccount extends plugin
       // Append SIP Entry 
       $SQL[] ="INSERT INTO ".$a_SETUP['SIP_TABLE']." (".$s_sip_keys.") VALUES (".$s_sip_values.");";
 
-      // Delete old entries
-      $b_first_deleted  =false;
-      foreach($this->a_old_telenums as $s_telenums){
-        $SQL[] = "DELETE FROM ".$a_SETUP['EXT_TABLE']." WHERE exten='".$s_telenums."';\n";
-        if(!$b_first_deleted){
-          $b_first_deleted=true;
-          $SQL[] = "DELETE FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$s_telenums.";";
-        }
-      }
-
       /* If deletion starts from userslist, cn uid are not set */
       if((isset($this->parent->by_object['user']->uid))&&(!empty($this->parent->by_object['user']->uid))){
         $this->uid = $this->parent->by_object['user']->uid;
@@ -458,17 +465,21 @@ class phoneAccount extends plugin
       $i_is_accounted=false;
     
       $i = 0; 
-  
+      $is_inserted_once = false;
       // Entension entries  Hint / Dial / Goto
       foreach($this->phoneNumbers as $s_telenums){
 
-        /* Mapping : Name TO Number*/
-        $EXT[$i]['context'] = 'GOsa';
-        $EXT[$i]['exten']   = $this->uid;
-        $EXT[$i]['priority']= 1;
-        $EXT[$i]['app']     = "Goto";
-        $EXT[$i]['appdata'] = $s_telenums."|1";
-        $i ++;  
+        if(!$is_inserted_once){
+          $is_inserted_once = true;
+          $EXT[$i]['context'] = 'GOsa';
+          $EXT[$i]['exten']   = $this->uid;
+          $EXT[$i]['priority']= 1;
+          $EXT[$i]['app']     = "Goto";
+          $EXT[$i]['appdata'] = $s_telenums."|1";
+          $i ++;
+        }
         /* Hint Entry */
         $EXT[$i]['context'] = 'GOsa';
         $EXT[$i]['exten']   = $s_telenums;
@@ -491,7 +502,7 @@ class phoneAccount extends plugin
           $s_par = $macroname."|".$s_parameter; 
         }else{
           $s_app = "Dial";
-          $s_par = 'SIP/'.$this->uid;
+          $s_par = 'SIP/'.$this->uid."|20|r";
         }
 
         $EXT[$i]['context'] = 'GOsa';
@@ -536,6 +547,43 @@ class phoneAccount extends plugin
   function execute()
   {
     $display = "";
+
+    if(empty($this->macro)&&(!empty($this->goFonMacro))){
+
+      /* Go through already saved values, for a parameter */
+      $tmp = split("!",$this->goFonMacro);
+
+      /* it is possible that nothing has been saved yet */
+      if(is_array($tmp)){
+
+        /* First value is the macroname */
+        $this->macro = $tmp[0];
+
+        /* Macroname saved, delete that index */
+        unset($tmp[0]);
+
+        /* Check if makro has been removed */
+        if(!isset($this->macroarray[$this->macro])){
+          $this->macrostillavailable = false;
+        }else{
+          $this->macrostillavailable = true;
+        }
+
+        /* for each parametervalues ( parameterID#value like 25#twentyfive) */
+        foreach($tmp as $var){
+
+          /* Split this, so we have $varar[0] = parameterID $varar[1] = SelectedValue */
+          $varar = split("#",$var);
+
+          /* Only insert if the parameter still exists */
+          if(isset($this->macroarray[$this->macro][$varar[0]])){
+            /* Assign value */
+            $this->macroarray[$this->macro][$varar[0]]['choosen']=$varar[1];
+          }
+        }
+      }
+    }
+    
     /* Do we represent a valid account? */
     if (!$this->is_account && $this->parent == NULL){
       $display= "<img alt=\"\" src=\"images/stop.png\" align=\"middle\">&nbsp;<b>".
@@ -568,7 +616,7 @@ class phoneAccount extends plugin
 
     /* check if there is a FON server created */
     if(!isset($_SESSION['config']->data['SERVERS']['FON'])){
-      print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer). \n Your Settings can't be saved to asterisk Database. "));
+      print_red(_("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer).\nYour Settings can't be saved to asterisk Database."));
     }
 
     /* Create parameter table, skip if no parameters given */
@@ -812,7 +860,7 @@ class phoneAccount extends plugin
       $message[]=(_("Voicemail PIN must be between 1-4 characters."));
     }else{
       if(preg_match("/[^0-9]/",$this->goFonVoicemailPIN)){
-        $message[]=(_("The specified oicemail PIN contains invalid characters, only numeric values are allowed here."));
+        $message[]=(_("The specified Voicemail PIN contains invalid characters, only numeric values are allowed here."));
       }
     }