X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_systemManagement.inc;h=b19b57cb3dac446345303acab36a502602351dbe;hb=408dda1f13eaab930b68d47cca237d2c866d9aa1;hp=6b59c1d7afd8d434b2f896ea8e5257936ef9df83;hpb=1f56f14cf6e1b6cac9f04e167201814a4795bcb6;p=gosa.git
diff --git a/plugins/admin/systems/class_systemManagement.inc b/plugins/admin/systems/class_systemManagement.inc
index 6b59c1d7a..b19b57cb3 100644
--- a/plugins/admin/systems/class_systemManagement.inc
+++ b/plugins/admin/systems/class_systemManagement.inc
@@ -38,6 +38,8 @@ class systems extends plugin
var $terminals= array();
var $ui= NULL;
var $acl= "";
+ var $DivListSystem;
+ var $image_creation_log ="";
function systems ($config, $ui)
{
@@ -45,24 +47,8 @@ class systems extends plugin
$this->config= $config;
$this->ui= $ui;
- /* Get global filter config */
- if (!is_global("terminalfilter")){
- $base = get_base_from_people($ui->dn);
- $terminalfilter= array("workstations" => "checked",
- "thins" => "checked",
- "winstations" => "checked",
- "servers" => "checked",
- "printers" => "checked",
- "phones" => "checked",
- "netdev" => "checked",
- "user" => "*",
- "regex" => "*");
- register_global("terminalfilter", $terminalfilter);
- }
- if(!isset($_SESSION['CurrentMainBase'])){
- $ui = get_userinfo();
- $_SESSION['CurrentMainBase'] = get_base_from_people($ui->dn);
- }
+ /* Creat dialog object */
+ $this->DivListSystem = new divListSystem($this->config,$this);
}
function execute()
@@ -72,45 +58,6 @@ class systems extends plugin
$_SESSION['LOCK_VARS_TO_USE'] = array("/^user_edit_/i","/^user_del_/","/^act/","/^id/");
- /********************
- Filter handling, check posted filter options and store them in our Session obejct
- ********************/
-
- /* Save posted filter data */
- $terminalfilter= get_global("terminalfilter");
- if(isset($_POST['SystemHeadpagePosted'])){
- foreach( array("user", "regex") as $type){
- if (isset($_POST[$type])){
- $terminalfilter[$type]= $_POST[$type];
- }
- }
- }
-
- if(isset($_POST['CurrentMainBase'])){
- $_SESSION['CurrentMainBase'] = $_POST['CurrentMainBase'];
- }
-
- /* Check if filter checkboxes are selected */
- if (isset($_POST['SystemHeadpagePosted'])){
- foreach( array("workstations", "thins", "winstations", "printers", "phones", "servers", "netdev") as $type){
- if (isset($_POST[$type])) {
- $terminalfilter[$type]= "checked";
- } else {
- $terminalfilter[$type]= "";
- }
- }
- }
-
- /* Check for search post */
- if (isset($_GET['search'])){
- $s= mb_substr($_GET['search'], 0, 1, "UTF8")."*";
- if ($s == "**"){
- $s= "*";
- }
- $terminalfilter['regex']= $s;
- }
-
-
/********************
Check for functional posts, edit|delete|add|... system devices
********************/
@@ -119,14 +66,6 @@ class systems extends plugin
$base_back = ""; // The Link for Backbutton
$smarty = get_smarty();
- /* check if base was changed */
- if(isset($_GET['act'])&&($_GET['act']=="dep_open")){
- $s_action="open";
- $s_entry = base64_decode($_GET['dep_id']);
- $_SESSION['CurrentMainBase']= $this->config->departments[trim($s_entry)];
- $this->reload();
- }
-
/* Test Posts */
foreach($_POST as $key => $val){
// Post for delete
@@ -138,32 +77,30 @@ class systems extends plugin
$s_action="edit";
$s_entry = preg_replace("/user_".$s_action."_/i","",$key);
// Post for new
- }elseif(preg_match("/dep_back.*/i",$key)){
- $s_action="back";
}elseif(preg_match("/user_new.*/",$key)){
$s_action="new";
- }elseif(preg_match("/dep_home.*/i",$key)){
- $s_action="home";
}elseif(preg_match("/user_tplnew.*/i",$key)){
$s_action="new_tpl";
}elseif(preg_match("/user_setpwd_.*/i",$key)){
$s_action="change_pw";
$s_entry = preg_replace("/user_setpwd_/i","",$key);
- }elseif(preg_match("/dep_root.*/i",$key)){
- $s_action="root";
+ }elseif(preg_match("/gen_cd_.*/i",$key)){
+ $s_action="gen_cd";
+ $s_entry = preg_replace("/gen_cd_/i","",$key);
}elseif(preg_match("/newsystem_.*/i",$key)){
$s_action="newsystem";
$s_entry = preg_replace("/newsystem_/i","",$key);
}
}
- /* 09.02.2006 : New incoming handling ; hickert
+ /* Incoming handling
* If someone made a systemtype and ogroup selection
* Display the new requested entry type ... servtab in case of server and so on.
*/
if(isset($_POST['SystemTypeChoosen'])){
$s_action = "SelectedSystemType";
$s_entry = $_POST['SystemType'];
+ $_SESSION['SelectedSystemType']['ogroup'] = $_POST['ObjectGroup'];
$this->systab = NULL;
}
@@ -176,38 +113,6 @@ class systems extends plugin
$s_entry = $_GET['id'];
}
- /* Department changed? */
- if(isset($_POST['CurrentMainBase']) && $_POST['CurrentMainBase']){
- $_SESSION['CurrentMainBase']= $_POST['CurrentMainBase'];
- }
-
- /* Homebutton is posted */
- if($s_action=="home"){
- $_SESSION['CurrentMainBase']=(preg_replace("/^[^,]+,/","",$this->ui->dn));
- $_SESSION['CurrentMainBase']=(preg_replace("/^[^,]+,/","",$_SESSION['CurrentMainBase']));
- }
-
- /* back to the roots ^^ */
- if($s_action=="root"){
- $_SESSION['CurrentMainBase']=($this->config->current['BASE']);
- }
-
- /* If Backbutton is Posted */
- if($s_action=="back"){
- $base_back = preg_replace("/^[^,]+,/","", $_SESSION['CurrentMainBase']);
- $base_back = convert_department_dn($base_back);
-
- if(isset($this->config->departments[trim($base_back)])){
- $_SESSION['CurrentMainBase']= $this->config->departments[trim($base_back)];
- }else{
- $_SESSION['CurrentMainBase']= $this->config->departments["/"];
- }
- }
-
- /* Save Termfilter .... */
- register_global("terminalfilter", $terminalfilter);
- $this->reload();
-
/* Check for exeeded sizelimit */
if (($message= check_sizelimit()) != ""){
return($message);
@@ -219,13 +124,17 @@ class systems extends plugin
}
/********************
- Create new system ...
+ Create new system ...
********************/
/* Create new default terminal
- *
- * 09.02.2006 ; New incoming handling ; hickert
* Or create specified object of selected system type, from given incoming object
*/
+
+ $save_object_directly = false;
+ if(($s_action == "SelectedSystemType") && (isset($_POST['ObjectGroup']) && ($_POST['ObjectGroup'] != "none"))){
+ $save_object_directly = true;
+ }
+
if (isset($_POST['create_system'])||$s_action=="newsystem"||$s_action == "SelectedSystemType") {
/* If the current entry is an incoming object
@@ -233,114 +142,39 @@ class systems extends plugin
*/
if($s_action == "SelectedSystemType") {
$sw = $s_entry;
- $dn_backup = $this->dn;
}else{
if(isset($_POST['system'])){
$sw = $_POST['system'];
}else{
$sw = $s_entry;
}
+ $this->dn= "new";
}
-
- $this->dn= "new";
$this->acl= array(":all");
+ $tabs = array(
+ "terminal" => array("CLASS"=>"TERMTABS", "TABNAME"=>"termgeneric", "TABCLASS" =>"termtabs"),
+ "workstation" => array("CLASS"=>"WORKTABS", "TABNAME"=>"workgeneric", "TABCLASS" =>"worktabs"),
+ "server" => array("CLASS"=>"SERVTABS", "TABNAME"=>"servgeneric", "TABCLASS" =>"servtabs"),
+ "printer" => array("CLASS"=>"PRINTTABS", "TABNAME"=>"printgeneric", "TABCLASS" =>"printtabs"),
+ "phone" => array("CLASS"=>"PHONETABS", "TABNAME"=>"phonegeneric", "TABCLASS" =>"phonetabs"),
+ "component" => array("CLASS"=>"COMPONENTTABS","TABNAME"=>"componentgeneric","TABCLASS" =>"componenttabs"));
- switch ($sw){
- case 'terminal':
- $this->systab= new termtabs($this->config,
- $this->config->data['TABS']['TERMTABS'], $this->dn);
- $this->systab->set_acl ($this->acl);
- $this->systab->by_object['termgeneric']->cn= "default";
- $this->systab->by_object['termservice']->cn= "default";
- $this->systab->by_object['termgeneric']->base = $_SESSION['CurrentMainBase'];
- break;
-
- case 'workstation':
- $this->systab= new worktabs($this->config,
- $this->config->data['TABS']['WORKTABS'], $this->dn);
- $this->systab->set_acl ($this->acl);
- $this->systab->by_object['workgeneric']->cn= "wdefault";
- $this->systab->by_object['workservice']->cn= "default";
- $this->systab->by_object['workgeneric']->base = $_SESSION['CurrentMainBase'];
- break;
-
- case 'server':
- $this->systab= new servtabs($this->config,
- $this->config->data['TABS']['SERVTABS'], $this->dn);
- $this->systab->set_acl ($this->acl);
- $this->systab->by_object['servgeneric']->base = $_SESSION['CurrentMainBase'];
- break;
-
- case 'printer':
- $this->systab= new printtabs($this->config,
- $this->config->data['TABS']['PRINTTABS'], $this->dn);
- $this->systab->set_acl ($this->acl);
- $this->systab->by_object['printgeneric']->base = $_SESSION['CurrentMainBase'];
- break;
-
- case 'phone':
- $this->systab= new phonetabs($this->config,
- $this->config->data['TABS']['PHONETABS'], $this->dn);
- $this->systab->set_acl ($this->acl);
- $this->systab->by_object['phonegeneric']->base = $_SESSION['CurrentMainBase'];
- break;
-
- case 'component':
- $this->systab= new componenttabs($this->config,
- $this->config->data['TABS']['COMPONENTTABS'], $this->dn);
- $this->systab->set_acl ($this->acl);
- $this->systab->by_object['componentgeneric']->base = $_SESSION['CurrentMainBase'];
- break;
- }
-
- /* 09.02.2006 ; New incoming handling ; hickert.
- * We must create a NEW object of given system type (Posted from SelectDeviceType).
- * But we have to use the same attributes as used in incoming object, thats
- * what we do here.
- */
- if($s_action == "SelectedSystemType"){
-
- /* Store some informations, to be able to add this object to
- * To specified objectgroup and delete incoming object
- */
- $_SESSION['SelectedSystemType']['dn'] = $this->dn;
- $_SESSION['SelectedSystemType']['server'] = $s_entry;
- $_SESSION['SelectedSystemType']['ogroup'] = $_POST['ObjectGroup'];
-
- /* restore dn */
- $this->dn = $dn_backup;
-
- /* Get properties from incoming object */
- $ldap = $this->config->get_ldap_link();
- $ldap->cd($this->dn);
- $ldap->cat($this->dn);
- $res = $ldap->fetch();
-
- /* Unset not needed attributes */
- unset($res['dn']);
- unset($res['objectClass']);
-
- /* Walk through all tabs and set attributes if available */
- foreach($this->systab->by_object as $name => $value){
- foreach($this->systab->by_object[$name]->attributes as $atr){
- if((isset($value))&&(isset($res[$atr]))){
- $this->systab->by_object[$name]->$atr = $res[$atr][0];
- }
- }
- }
+ if(isset($tabs[$sw])){
+ $class = $tabs[$sw]["CLASS"];
+ $tabname = $tabs[$sw]["TABNAME"];
+ $tabclass = $tabs[$sw]["TABCLASS"];
+ $this->systab= new $tabclass($this->config, $this->config->data['TABS'][$class], $this->dn);
+ $this->systab->set_acl ($this->acl);
+ $this->systab->by_object[$tabname]->base = $this->DivListSystem->selectedBase;
+ $this->systab->base = $this->DivListSystem->selectedBase;
}
-
- /* set base ... of current divlist position */
- $this->systab->base = $_SESSION['CurrentMainBase'];
}
-
/********************
- Edit system ...
+ Edit system ...
********************/
/* User wants to edit data? */
-// if ($s_action == "edit"){
if (($s_action == "edit") && (!isset($this->systab->config))){
$this->dn= $this->terminals[$s_entry]['dn'];
@@ -356,91 +190,159 @@ class systems extends plugin
/* Find out more about the object type */
$ldap= $this->config->get_ldap_link();
- $ldap->cat($this->dn);
+ $ldap->cat($this->dn, array('objectClass'));
$attrs= $ldap->fetch();
$type= $this->get_system_type($attrs['objectClass']);
/* Lock the current entry, so everyone will get the
above dialog */
+ $tabs = array(
+ "terminal" => array("CLASS"=>"TERMTABS", "TABCLASS" =>"termtabs"),
+ "workstation" => array("CLASS"=>"WORKTABS", "TABCLASS" =>"worktabs"),
+ "server" => array("CLASS"=>"SERVTABS", "TABCLASS" =>"servtabs"),
+ "printer" => array("CLASS"=>"PRINTTABS", "TABCLASS" =>"printtabs"),
+ "phone" => array("CLASS"=>"PHONETABS", "TABCLASS" =>"phonetabs"),
+ "winstation" => array("CLASS"=>"WINTABS", "TABCLASS" =>"wintabs"),
+ "component" => array("CLASS"=>"COMPONENTTABS","TABCLASS" =>"componenttabs"));
- switch ($type){
- case "NewDevice" :
- $this->systab = new SelectDeviceType($this->config,$this->dn) ;
- break;
- case "terminal":
- /* Register systab to trigger edit dialog */
- $this->systab= new termtabs($this->config,
- $this->config->data['TABS']['TERMTABS'], $this->dn);
- $this->systab->set_acl($acl);
- $_SESSION['objectinfo']= $this->dn;
- add_lock ($this->dn, $this->ui->dn);
- break;
- case "server":
+ if($type == "NewDevice"){
+ $this->systab = new SelectDeviceType($this->config,$this->dn) ;
+ }elseif(isset($tabs[$type])){
- /* Register systab to trigger edit dialog */
- $this->systab= new servtabs($this->config,$this->config->data['TABS']['SERVTABS'], $this->dn);
- $this->systab->set_acl($acl);
- $_SESSION['objectinfo']= $this->dn;
- add_lock ($this->dn, $this->ui->dn);
- break;
+ $class = $tabs[$type]["CLASS"];
+ $tabclass = $tabs[$type]["TABCLASS"];
- case "workstation":
- /* Register systab to trigger edit dialog */
- $this->systab= new worktabs($this->config,
- $this->config->data['TABS']['WORKTABS'], $this->dn);
+ $this->systab= new $tabclass($this->config, $this->config->data['TABS'][$class], $this->dn);
$this->systab->set_acl($acl);
$_SESSION['objectinfo']= $this->dn;
add_lock ($this->dn, $this->ui->dn);
- break;
+ }else{
+ print_red (_("You can't edit this object type yet!"));
+ del_lock($this->dn);
+ }
+ }
- case "printer":
- /* Register systab to trigger edit dialog */
- $this->systab= new printtabs($this->config,
- $this->config->data['TABS']['PRINTTABS'], $this->dn);
- $this->systab->set_acl($acl);
- $_SESSION['objectinfo']= $this->dn;
- add_lock ($this->dn, $this->ui->dn);
- break;
+ /********************
+ Create FAI CD ...
+ ********************/
+ if ($s_action=="gen_cd"){
+ $this->dn= $this->terminals[$s_entry]['dn'];
+ $_SESSION['objectinfo']= $this->dn;
+ return ($smarty->fetch(get_template_path('gencd.tpl', TRUE)));
+ }
- case "phone":
- /* Register systab to trigger edit dialog */
- $this->systab= new phonetabs($this->config,
- $this->config->data['TABS']['PHONETABS'], $this->dn);
- $this->systab->set_acl($acl);
- $_SESSION['objectinfo']= $this->dn;
- add_lock ($this->dn, $this->ui->dn);
- break;
+ /* Start CD-Creation */
+ if (isset($_POST["cd_create"])){
+ $smarty->assign("src", "?plug=".$_GET['plug']."&PerformIsoCreation");
+ return ($smarty->fetch(get_template_path('gencd_frame.tpl', TRUE)));
+ }
+
+ if ($this->dn != "" && isset($_GET['PerformIsoCreation'])){
+
+ /* Initialize some attributes */
+ $this->image_creation_log = "";
+ $download_button = ""._("Download")."";
+ $return_button = ""._("Back to work")."";
+ $dsc = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
+
+ /* Get and check command */
+ $command= search_config($this->config->data['TABS'], "workgeneric", "ISOCMD");
+ $command = "/bin/sh /home/hickert/gen_stuff.sh";
+ if (check_command($command)){
+ @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute");
+
+ /* Print out html introduction */
+ echo "
";
+ echo "";
+ echo "";
+ echo "
+
+
";
+
+ /* Open process handle and check if it is a valid process */
+ $process= proc_open($command, $dsc, $pipes, '/tmp');
+ if (is_resource($process)) {
+ fclose($pipes[0]);
+
+ /* Print out returned lines && write JS to scroll down each line */
+ while (!feof($pipes[1])){
+ $cur_dat = fgets($pipes[1], 1024);
+ $this->image_creation_log .= $cur_dat;
+ echo $cur_dat;
+ echo "" ;
+ flush();
+ }
+ }
+
+ /* Get error string && close streams */
+ $buffer= stream_get_contents($pipes[2]);
+ fclose($pipes[1]);
+ fclose($pipes[2]);
+ echo "
".sprintf(_("Command '%s', specified for ISO creation doesn't seem to exist."), $command)."
";
+ echo $tmp;
+ }
- default:
- print_red (_("You can't edit this object type yet!"));
- del_lock($this->dn);
- break;
+ /* Scroll down completly */
+ echo "" ;
+ echo "";
+ flush();
+ exit;
+ }
+
+
+ /******************
+ FAI Image creation logfile requested
+ ******************/
+ if(isset($_GET['download_image_log'])){
+
+ /* force download dialog */
+ header("Content-type: application/tiff\n");
+ if (preg_match('/MSIE 5.5/', $HTTP_USER_AGENT) ||
+ preg_match('/MSIE 6.0/', $HTTP_USER_AGENT)) {
+ header('Content-Disposition: filename="image.log"');
+ } else {
+ header('Content-Disposition: attachment; filename="image.log"');
}
+ header("Content-transfer-encoding: binary\n");
+ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
+ header("Cache-Control: no-cache");
+ header("Pragma: no-cache");
+ header("Cache-Control: post-check=0, pre-check=0");
+
+ echo $this->image_creation_log;
+
+ exit();
}
+
/********************
- Change password ...
+ Change password ...
********************/
/* Set terminals root password */
@@ -529,7 +431,7 @@ class systems extends plugin
/* Lock the current entry, so nobody will edit it during deletion */
add_lock ($this->dn, $this->ui->dn);
- $smarty->assign("warning", sprintf(_("You're about to delete all information about the component at '%s'."), LDAP::fix($this->dn)));
+ $smarty->assign("warning", sprintf(_("You're about to delete all information about the component at '%s'."), @LDAP::fix($this->dn)));
return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
} else {
@@ -539,7 +441,7 @@ class systems extends plugin
}
}
-
+
/********************
Delete system, confirmed
********************/
@@ -552,56 +454,45 @@ class systems extends plugin
/* Find out more about the object type */
$ldap= $this->config->get_ldap_link();
- $ldap->cat($this->dn);
+ $ldap->cat($this->dn, array('objectClass'));
$attrs= $ldap->fetch();
$type= $this->get_system_type($attrs['objectClass']);
- switch ($type){
- case "terminal":
- $tabtype = "termtabs";
- $tabobj = "TERMTABS";
- break;
-
- case "workstation":
- $tabtype = "worktabs";
- $tabobj = "WORKTABS";
- break;
-
- case "phone":
- $tabtype = "phonetabs";
- $tabobj = "PHONETABS";
- break;
-
- case "server":
- $tabtype = "servtabs";
- $tabobj = "SERVTABS";
- break;
-
- default:
- $tabtype = "termtabs";
- $tabobj = "TERMTABS";
- break;
+ $tabs = array(
+ "terminal" => array("CLASS"=>"TERMTABS", "TABCLASS" =>"termtabs"),
+ "workstation" => array("CLASS"=>"WORKTABS", "TABCLASS" =>"worktabs"),
+ "server" => array("CLASS"=>"SERVTABS", "TABCLASS" =>"servtabs"),
+ "printer" => array("CLASS"=>"PRINTTABS", "TABCLASS" =>"printtabs"),
+ "phone" => array("CLASS"=>"PHONETABS", "TABCLASS" =>"phonetabs"),
+ "winstation" => array("CLASS"=>"WINTABS", "TABCLASS" =>"wintabs"),
+ "component" => array("CLASS"=>"COMPONENTTABS","TABCLASS" =>"componenttabs"));
+
+ /* get object type */
+ $tabtype = "termtabs";
+ $tabobj = "TERMTABS";
+ if(isset($tabs[$type])){
+ $tabtype = $tabs[$type]['TABCLASS'];
+ $tabobj = $tabs[$type]['CLASS'];
}
/* Delete request is permitted, perform LDAP action */
if($tabtype=="phonetabs"){
$this->systab= new $tabtype($this->config,
- $this->config->data['TABS'][$tabobj], $this->dn);
+ $this->config->data['TABS'][$tabobj], $this->dn);
$this->systab->set_acl(array($this->acl));
$this->systab->by_object['phonegeneric']->remove_from_parent ();
}else{
$this->systab= new $tabtype($this->config,
- $this->config->data['TABS'][$tabobj], $this->dn);
+ $this->config->data['TABS'][$tabobj], $this->dn);
$this->systab->set_acl(array($this->acl));
$this->systab->delete();
- #$this->systab->by_object['termgeneric']->remove_from_parent ();
+#$this->systab->by_object['termgeneric']->remove_from_parent ();
}
unset ($this->systab);
gosa_log ("System object'".$this->dn."' has been removed");
$this->systab= NULL;
/* Terminal list has changed, reload it. */
- $this->reload ();
} else {
/* Normally this shouldn't be reached, send some extra
@@ -622,31 +513,53 @@ class systems extends plugin
/* Finish user edit is triggered by the tabulator dialog, so
the user wants to save edited data. Check and save at this
point. */
- if ((isset($_POST['edit_finish'])) && (isset($this->systab->config))){
+ if ((isset($_POST['edit_finish'])) && (isset($this->systab->config)) || $save_object_directly){
/* Check tabs, will feed message array */
- $message= $this->systab->check();
+ $message = array();
+ if(!$save_object_directly){
+ $message = $this->systab->check();
+ }else{
+ $found = false;
+
+ /* Set gotoMode to active if we there was an ogroup selected . (save_object_directly) */
+ foreach(array("workgeneric"=>"active","servgeneric"=>"active","termgeneric"=>"graphic") as $tab => $value){
+ if(isset($this->systab->by_object[$tab]->gotoMode)) {
+ $found = true;
+ $this->systab->by_object[$tab]->gotoMode = $value;
+ }
+ }
+ if(!$found){
+ print_red(sprintf(_("Can't set gotoMode to status 'avtice', the current object couldn't be identified.")));
+ }
+ }
/* Save, or display error message? */
if (count($message) == 0){
/* Save terminal data to ldap */
- gosa_log ("System object'".$this->dn."' has been saved");
- $this->systab->save();
+ if(isset($_SESSION['SelectedSystemType']['ogroup']) && $_SESSION['SelectedSystemType']['ogroup'] != 'none'){
+ foreach (array("workservice", "termservice") as $cls){
+ if (isset($this->systab->by_object[$cls])){
+ $this->systab->by_object[$cls]->gotoXMouseport= "";
+ $this->systab->by_object[$cls]->gotoXMouseType= "";
+ $this->systab->by_object[$cls]->gotoXResolution= "";
+ $this->systab->by_object[$cls]->gotoXColordepth= "";
+ }
+ }
+ }
- /* Terminal has been saved successfully, remove lock from
- LDAP. */
+ $this->systab->save();
+ gosa_log ("System object'".$this->dn."' has been saved");
- /* 09.02.2006 Hickert
- * New System incoming behavior; you can select a system type and an ogroup membership.
+ /* Incoming behavior; you can select a system type and an ogroup membership.
* If this object is an Incoming object, $_SESSION['SelectedSystemType'] isset.
* Check if we must add the new object to an object group.
- * !! Don't forget to unset the $_SESSION['SelectedSystemType']... else all edited objects
- * !! will be added to the object group.
*
* If this is done, delete the old incoming entry... it is still there, because this is a new
- * entry and not an edited one.
+ * entry and not an edited one, so we will delete it.
*/
+
if(isset($_SESSION['SelectedSystemType'])){
$SelectedSystemType= $_SESSION['SelectedSystemType'];
unset($_SESSION['SelectedSystemType']);
@@ -654,14 +567,14 @@ class systems extends plugin
$og = new ogroup($this->config,$SelectedSystemType['ogroup']);
if($og){
$og->AddDelMembership($this->systab->dn);
+ $og->save();
}
- $og->save();
}
if(!isset($ldap)){
$ldap = $this->config->get_ldap_link();
}
$ldap->cd ($this->dn);
- $ldap->cat($this->dn);
+ $ldap->cat($this->dn, array('dn'));
if(count($ldap->fetch())){
$ldap->cd($this->dn);
$ldap->rmDir($this->dn);
@@ -669,26 +582,22 @@ class systems extends plugin
$ldap->cd($this->config->current['BASE']);
}
+ /* Terminal has been saved successfully, remove lock from
+ LDAP. */
if ($this->dn != "new"){
del_lock ($this->dn);
}
- /* There's no page reload so we have to read new terminals at
- this point. */
- $this->reload ();
unset ($this->systab);
$this->systab= NULL;
unset($_SESSION['objectinfo']);
-
} else {
/* Ok. There seem to be errors regarding to the tab data,
show message and continue as usual. */
show_errors($message);
}
-
}
-
/********************
Edit system was canceled
********************/
@@ -701,25 +610,20 @@ class systems extends plugin
$this->systab= NULL;
unset($_SESSION['objectinfo']);
- /* 09.02.2006 ; New incoming handling ; hickert
- * remove session object which stores our ogroup selection
- * for the new incoming handling
- */
+ /* Remove ogroup selection, which was set while editing a new incoming entry */
if(isset($_SESSION['SelectedSystemType'])){
unset($_SESSION['SelectedSystemType']);
}
}
-
/********************
- Display edit dialog, or some other
+ Display edit dialog, or some other
********************/
/* Show tab dialog if object is present */
if (isset($this->systab->config)){
$display= $this->systab->execute();
-
/* Don't show buttons if tab dialog requests this */
if ((isset($this->systab->by_object))&&(!$this->systab->by_object[$this->systab->current]->dialog)){
$display.= "
\n";
@@ -731,219 +635,20 @@ class systems extends plugin
return ($display);
}
+ /* Display dialog with system list */
+ $this->DivListSystem->parent = $this;
+ $this->DivListSystem->execute();
- /********************
- Entry handling finished (edit delete ... )
- Now the list generation is the next part of this script.
- ********************/
-
- /* Prepare departments,
- which are shown in the listbox on top of the listbox
- */
- $options= "";
- foreach ($this->config->idepartments as $key => $value){
- if ($_SESSION['CurrentMainBase'] == $key){
- $options.= "";
- } else {
- $options.= "";
- }
+ /* Add departments if subsearch is disabled */
+ if(!$this->DivListSystem->SubSearch){
+ $this->DivListSystem->AddDepartments($this->DivListSystem->selectedBase);
}
-
-
- /* NEW LIST MANAGMENT */
-
- /* Create list header
- */
- $listhead = "