diff --git a/plugins/gofon/phoneaccount/class_phoneAccount.inc b/plugins/gofon/phoneaccount/class_phoneAccount.inc
index d2016b629940a9a63ed670f9ae2f9f32f6f7141e..b38336fe90e1a65f25d0ed81968c0a774355b28e 100644 (file)
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");
$s_ip = NULL; // Contains ip for Sip entry
$s_host = NULL; // Contains host for Sip entry
- $s_qualify = NULL; // Qualify entry
+ $s_qualify = "yes"; // Qualify entry
$s_pin = NULL; // Entry for secret
$s_type = NULL; // Entry for phone type (friend , peer ..)
$b_first_deleted= false; // Only delete first entry,
$s_telenums = ""; // for each value variable
- $i_is_accounted =false; // Ensure that extension entry, for name to number is only once in table
+ $i_is_accounted = false; // Ensure that extension entry, for name to number is only once in table
// Connect to DB server
$SQL[] = "DELETE FROM ".$a_SETUP['VOICE_TABLE']." WHERE customer_id=".$newnums[$i_new_key].";";
// Delete old entries
$b_first_deleted =false;
- foreach($oldnums 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(isset($oldnums) && is_array($oldnums)){
+ foreach($oldnums 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) ;
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."));
$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 */
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'])) {
+ array_key_exists('FON', $_SESSION['config']->data['SERVERS']) &&
+ is_callable("mysql_pconnect")) {
// Get Configuration for Mysql database Server
$a_SETUP = $_SESSION['config']->data['SERVERS']['FON'];
$s_parameter ="";
// 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;
}
// 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;
}
return false;
}
}
+ }else{
+ print_red(_("Can't remove phone account, the mysql extension is not present in php configuration."));
+ return false;
}
/* unset macro attr, it will cause an error */
$this->attrs['telephoneNumber']= array();
}
+
$ldap= $this->config->get_ldap_link();
$ldap->cd($this->config->current['BASE']);
$ldap->search("(objectClass=goFonQueue)", array("member"));
}
$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);
}
}
}
+
+
+ /* 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(""));
+ } else {
+ $smarty->assign ("phoneNumbers", $this->phoneNumbers);
+ }
+
+ $smarty->assign("goFonVoicemailPIN",$this->goFonVoicemailPIN);
+ $smarty->assign("goFonPIN",$this->goFonPIN);
+
+ $display= $smarty->fetch(get_template_path('paste_generic.tpl', TRUE, dirname(__FILE__)));
+ $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'];
+ }
+ if(isset($_POST['goFonPIN'])){
+ $this->goFonPIN = $_POST['goFonPIN'];
+ }
+ }
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: