X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_glpiDeviceManagement.inc;h=6573cb9a690dbace39bdfa0d2635c451ecad8e99;hb=7a6a428eb1c6534e448094d51bc6a542fe832bb9;hp=f235666999e74839ff1b429fcc41e496f19e6031;hpb=c00c5a7e816808583bb16c9f223dd54bc2178eeb;p=gosa.git diff --git a/plugins/admin/systems/class_glpiDeviceManagement.inc b/plugins/admin/systems/class_glpiDeviceManagement.inc index f23566699..6573cb9a6 100644 --- a/plugins/admin/systems/class_glpiDeviceManagement.inc +++ b/plugins/admin/systems/class_glpiDeviceManagement.inc @@ -24,7 +24,9 @@ class glpiDeviceManagement extends plugin var $Selected = array(); - function glpiDeviceManagement ($config, $dn= NULL) + var $delete = array(); + + function glpiDeviceManagement ($config, $dn= NULL,$used=NULL) { plugin::plugin ($config, $dn); @@ -33,6 +35,10 @@ class glpiDeviceManagement extends plugin $_SESSION['glpiDeviceRegex'] = $tmp; } $this->ui = get_userinfo(); + + if(isset($used)){ + $this->Selected = $used; + } /* Specify which vars are allowed for a sepcific type of device */ $this->DeviceAttrs['case'] = array("designation","format","comment","FK_glpi_enterprise"); @@ -47,8 +53,11 @@ class glpiDeviceManagement extends plugin $this->DeviceAttrs['sndcard'] = array("designation","type","comment","FK_glpi_enterprise","specif_default"); $this->DeviceAttrs['power'] = array("designation","power","comment","FK_glpi_enterprise","atx"); $this->DeviceAttrs['pci'] = array("designation","comment","FK_glpi_enterprise","specif_default"); + $this->DeviceAttrs['monitor'] = array("name","comments","serial","otherserial","size", + "flags_micro","flags_speaker","flags_subd","flags_bnc", + "location","type","FK_glpi_enterprise","is_global","deleted","is_template","tplname"); - $this->AllowedDevices=array("case","moboard","sndcard","processor","iface","ram","hdd","drive","control","gfxcard","power","pci"); + $this->AllowedDevices=array("case","moboard","sndcard","processor","iface","ram","hdd","drive","control","gfxcard","power","pci","monitor"); } function execute() @@ -63,14 +72,16 @@ class glpiDeviceManagement extends plugin $smarty= get_smarty(); $display= ""; - /* Check if we should create a new entry .... */ + /* this var is used to ensure that every post is only performed once */ $only_once = true; + + /* Check Post for some actions */ foreach($_POST as $name => $value){ - /* All Post vars starts with new */ + /* If new_ then we should create an new device */ if((preg_match("/^new_/",$name))&&($only_once)){ - /* do this twice */ + /* don't do this twice */ $only_once = false; /*extract device device_type */ @@ -91,12 +102,44 @@ class glpiDeviceManagement extends plugin } } - /* Open entry for editing if requested */ + /* delete was requested ... show dialog */ if((isset($_GET['act']))&&($_GET['act']=="del_device")){ $id = base64_decode($_GET['id']); $tmp = $this->devices[$id]; - $this->parent->handle->deleteDevice($tmp); - $this->reload(); + + $this->delete = $tmp; + + if(isset($tmp['name'])){ + $smarty->assign("warning", sprintf(_("You're about to delete the glpi device '%s'."), $tmp['name'])); + }elseif(isset($tmp['designation'])){ + $smarty->assign("warning", sprintf(_("You're about to delete the glpi device '%s'."), $tmp['designation'])); + }else{ + print_red(_("Can't detect object name.")); + } + + return($smarty->fetch(get_template_path('remove_glpi.tpl', TRUE))); + } + + /* Delete entry, but check if this device is in currently in use */ + if(isset($_POST['delete_glpi_confirm'])){ + if(count($this->parent->handle->is_deviceUsed($this->delete))){ + + $tmp = $this->parent->handle->is_deviceUsed($this->delete); + + $names = ""; + foreach($tmp as $name){ + $names .= ", ".$name; + } + $names = preg_replace("/^, /","",$names); + $names = trim($names); + if(count($tmp) == 3){ + $names .= " ..."; + } + print_red(sprintf(_("You can't delete this device, it is still in use by these system(s) '%s'"),$names)); + }else{ + $this->parent->handle->deleteDevice($this->delete); + $this->reload(); + } } /* Open entry for editing if requested */ @@ -141,8 +184,8 @@ class glpiDeviceManagement extends plugin $divlist->SetEntriesPerPage(0); $divlist->SetHeader(array( array("string" => " ", "attach" => "style='text-align:center;width:20px;'"), - array("string" => _("devices")." / "._("Departments"), "attach" => "style=''"), - array("string" => _("Use"), "attach" => "style='width:60px;border-right:0px;text-align:right;'" ))); + array("string" => _("devices"), "attach" => "style=''"), + array("string" => _("Actions"), "attach" => "style='width:60px;border-right:0px;text-align:right;'" ))); $edit = "%s"; $editdel = ""; @@ -152,14 +195,25 @@ class glpiDeviceManagement extends plugin foreach($this->devices as $key=>$user){ - if(isset($this->Selected[$user['device_type']][$user['designation']])){ + if(isset($user['designation'])){ + $str = "designation"; + }else{ + $str = "name"; + } + + if(isset($this->Selected[$user['device_type']][$user[$str]])){ $use = " checked "; }else{ $use =""; } + /* Dawn databse struckture ....*/ + if(empty($user['comment']) && isset($user['comments'])) { + $user['comment'] = $user['comments']; + } + $field1 = array("string" => preg_replace("/%s/",base64_encode($key),preg_replace("/%USE%/",$use,$useDevice)), "attach" => "style='text-align:center;width:20px;'"); - $field2 = array("string" => sprintf($edit,base64_encode($key),$user['designation']." [".$user['comment']."]"), "attach" => "style=''"); + $field2 = array("string" => sprintf($edit,base64_encode($key),$user[$str]." [".$user['comment']."]"), "attach" => "style=''"); $field3 = array("string" => sprintf($editdel,base64_encode($key),base64_encode($key)), "attach" => "style='width:60px;border-right:0px;text-align:right;'"); $divlist->AddEntry(array($field1,$field2,$field3)); @@ -168,43 +222,45 @@ class glpiDeviceManagement extends plugin $listhead = "