diff --git a/gosa-plugins/fai/admin/fai/class_faiManagement.inc b/gosa-plugins/fai/admin/fai/class_faiManagement.inc
index 95a66d38b9bfe7bccf0ecc1861ef70d850129b79..0099a68637175dc13b4b3d10156e08a9d27fd054 100644 (file)
$display = "";
$s_action = "";
+ $i_entryID ="";
+ $s_entryType= "";
$s_entry = "";
$no_save = FALSE; // hide Apply / Save buttons
foreach(array("opsi_netboot","opsi_local") as $type){
if(isset($group[$type])) unset($group[$type]);
}
- if(count($group)){
+ if(count($group) == 1){
+ $s_action = "remove";
+ $i_entryID = $s_entry;
+ $s_entryType = key($group);
+ }elseif(count($group)){
$this->dialog = new faiGroupHandle($group,"remove");
}
}
}elseif($s_action == "group_edit"){
if(isset($this->objects[$s_entry])){
$group = $this->objects[$s_entry];
- $this->dialog = new faiGroupHandle($group,"edit");
+ if(count($group) == 1){
+ $s_action = "edit";
+ $i_entryID = $s_entry;
+ $s_entryType = key($group);
+ }else{
+ $this->dialog = new faiGroupHandle($group,"edit");
+ }
}
}elseif($s_action == "group_cut"){
if(isset($this->objects[$s_entry])){
$group = $this->objects[$s_entry];
- $this->dialog = new faiGroupHandle($group,"cut");
+ if(count($group) == 1){
+ $s_action = "cut";
+ $i_entryID = $s_entry;
+ $s_entryType = key($group);
+ }else{
+ $this->dialog = new faiGroupHandle($group,"cut");
+ }
}
}elseif($s_action == "group_copy"){
if(isset($this->objects[$s_entry])){
$group = $this->objects[$s_entry];
- $this->dialog = new faiGroupHandle($group,"copy");
+ if(count($group) == 1){
+ $s_action = "copy";
+ $i_entryID = $s_entry;
+ $s_entryType = key($group);
+ }else{
+ $this->dialog = new faiGroupHandle($group,"copy");
+ }
}
}
if($this->dialog instanceOf faiGroupHandle){
********************/
/* Display the copy & paste dialog, if it is currently open */
- $ret = $this->copyPasteHandling_from_queue($s_action,$s_entry);
+ $ret = $this->copyPasteHandling_from_queue($s_action,$i_entryID,$s_entryType);
if($ret){
return($ret);
}
$this->dialog->set_acl_base($dn);
$this->dialog->by_object[$type[1]]->remove_from_parent ();
$this->dialog= FALSE;
- $to_del = FAI::clean_up_releases($dn);
FAI::save_release_changes_now();
+ $to_del = FAI::clean_up_releases($dn);
foreach($to_del as $dn){
$ldap->rmdir_recursive($dn);
}
Delete confirme dialog
****************/
- if ($s_action=="del_multiple" ||
+ if ($s_action=="del_multiple" || $s_action == "remove" ||
$this->dialog instanceOf faiGroupHandle && $this->dialog->get_mode() == "remove"){
/* Collect objects to delete and check if objects are freezed
$dns = array();
$errors = "";
$this->dns = array();
- if($this->dialog instanceOf faiGroupHandle){
+
+ if($s_action == "remove"){
+ $to_delete =array($entry = $this->objects[$i_entryID][$s_entryType]);
+ }elseif($this->dialog instanceOf faiGroupHandle){
$to_delete = $this->dialog->get_selected();
}else{
$ids = $this->list_get_selected_items();
$to_delete = array();
foreach($ids as $id){
- $to_delete = array_merge($to_delete,$this->objects[$id]);
+ foreach($this->objects[$id] as $obj) {
+ array_push($to_delete, $obj);
+ }
}
}
$this->dialog->by_object[$a_setup[1]]->FAIstate = $entry['FAIstate'];
$this->dialog->set_acl_base($this->dn);
$this->is_dialog = true;
- session::set('objectinfo',$this->dn);
+ set_object_info($this->dn);
}
}
}
if(isset($_POST['edit_cancel'])){
$this->dialog=FALSE;
$this->is_dialog = false;
- session::un_set('objectinfo');
+ set_object_info();
$this->remove_lock();
}
$this->remove_lock();
$this->dialog=FALSE;
$this->is_dialog=false;
- session::un_set('objectinfo');
+ set_object_info();
}else{
/* Reinitialize tab */
function remove_lock()
{
- if (isset($this->dn)){
+ if (isset($this->dn) && !empty($this->dn)){
del_lock ($this->dn);
}
if(isset($this->dns) && is_array($this->dns) && count($this->dns)){
}
- function copyPasteHandling_from_queue($s_action,$s_entry)
+ function copyPasteHandling_from_queue($s_action,$i_entryID,$s_entryType)
{
/* Check if Copy & Paste is disabled */
if(!is_object($this->CopyPasteHandler)){
$ui = get_userinfo();
- /* Add a single entry to queue */
+ // Copy a single entry
+ if($s_action == "copy"){
+ $entry = $this->objects[$i_entryID][$s_entryType];
+ $this->CopyPasteHandler->cleanup_queue();
+ $a_setup = $this->get_type($entry);
+ $dn = $entry['dn'];
+ if($ui->is_copyable($dn,"fai",$a_setup[1])){
+ $this->CopyPasteHandler->add_to_queue($dn,"copy",$a_setup[0],$a_setup[2],"fai");
+ }
+ }
+
+ // cut a single entry
+ if($s_action == "cut"){
+ $entry = $this->objects[$i_entryID][$s_entryType];
+ $this->CopyPasteHandler->cleanup_queue();
+ $a_setup = $this->get_type($entry);
+ $dn = $entry['dn'];
+ if($ui->is_copyable($dn,"fai",$a_setup[1])){
+ $this->CopyPasteHandler->add_to_queue($dn,"cut",$a_setup[0],$a_setup[2],"fai");
+ }
+ }
+
+ /* Add a entries from the group selection to queue */
if($this->dialog instanceOf faiGroupHandle && !$this->dialog->is_open()){
if(in_array($this->dialog->get_mode(),array("copy"))){