Code

Fixed some errors
[gosa.git] / plugins / admin / systems / class_glpiDeviceManagement.inc
index f235666999e74839ff1b429fcc41e496f19e6031..dc54bdb6d19db6ff2002009841ecde6ceda90f0d 100644 (file)
@@ -24,7 +24,7 @@ class glpiDeviceManagement extends plugin
 
   var $Selected = array();
 
-  function glpiDeviceManagement ($config, $dn= NULL)
+  function glpiDeviceManagement ($config, $dn= NULL,$used=NULL)
   {
     plugin::plugin ($config, $dn);
 
@@ -33,6 +33,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 +51,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()
@@ -152,14 +159,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'])) {
+        $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));
@@ -167,6 +185,8 @@ class glpiDeviceManagement extends plugin
     }
     
   $listhead = "<div style='background:#F0F0F9;padding:5px;'>".
+      " <input class='center' type='image' align='middle' 
+      src='images/monitor.png'  title='"._("New monitor")."' alt='"._("M")."' name='new_monitor'>&nbsp;".
       " <input class='center' type='image' align='middle' 
       src='images/keyboard.png' title='"._("New mainbord")."' alt='"._("MB")."' name='new_moboard'>&nbsp;".
       " <input class='center' type='image' align='middle' 
@@ -178,11 +198,11 @@ class glpiDeviceManagement extends plugin
       " <input class='center' type='image' align='middle' 
       src='mages/list_back.png' title='"._("New ram")."' alt='"._("R")."' name='new_ram'>&nbsp;".
       " <input class='center' type='image' align='middle' 
-      src='mages/list_back.png' title='"._("New hard disk drive")."' alt='"._("HDD")."' name='new_hdd'>&nbsp;".
+      src='mages/list_back.png' title='"._("New hard disk")."' alt='"._("HDD")."' name='new_hdd'>&nbsp;".
       " <input class='center' type='image' align='middle' 
-      src='mages/list_back.png' title='"._("New drives")."' alt='"._("D")."' name='new_drive'>&nbsp;".
+      src='mages/list_back.png' title='"._("New drive")."' alt='"._("D")."' name='new_drive'>&nbsp;".
       " <input class='center' type='image' align='middle' 
-      src='mages/list_back.png' title='"._("New controllers")."' alt='"._("CS")."' name='new_control'>&nbsp;".
+      src='mages/list_back.png' title='"._("New controller")."' alt='"._("CS")."' name='new_control'>&nbsp;".
       " <input class='center' type='image' align='middle' 
       src='mages/list_back.png' title='"._("New graphics card")."' alt='"._("GC")."' name='new_gfxcard'>&nbsp;".
       " <input class='center' type='image' align='middle' 
@@ -190,8 +210,9 @@ class glpiDeviceManagement extends plugin
       " <input class='center' type='image' align='middle' 
       src='mages/list_back.png' title='"._("New power supply")."' alt='"._("PS")."' name='new_power'>&nbsp;".
       " <input class='center' type='image' align='middle' 
-      src='mages/list_back.png' title='"._("New other peripherals")."' alt='"._("OC")."' name='new_pci'>&nbsp;".
+      src='mages/list_back.png' title='"._("New misc device")."' alt='"._("OC")."' name='new_pci'>&nbsp;".
       "</div>";
+    
     $filter= $_SESSION['glpiDeviceRegex'];
     $smarty->assign("devicehead", $listhead);
     $smarty->assign("devices", $divlist->DrawList());
@@ -204,7 +225,6 @@ class glpiDeviceManagement extends plugin
     $smarty->assign("alphabet", generate_alphabet());
     $smarty->assign("device_regex", $filter['device_regex']);
 
-
     $display.= $smarty->fetch(get_template_path('glpiDeviceManagement.tpl', TRUE));
     return($display);
   }
@@ -235,18 +255,24 @@ class glpiDeviceManagement extends plugin
   function save_object()
   {
     foreach($_POST as $name => $value){
+
       if(preg_match("/wasOnPage_/",$name)){
         $dN = base64_decode($value);
 
         $device = $this->devices[$dN];
         $type   = $device['device_type'];  
             
+        if(isset($device['designation'])){
+          $str = "designation";
+        }else{
+          $str = "name";
+        }
 
         if(isset($_POST['useDevice_'.$value])){
-          $this->Selected[$type][$device['designation']] = $device;
+          $this->Selected[$type][$device[$str]] = $device;
         }else{
-          if(isset($this->Selected[$type][$device['designation']])){
-            unset($this->Selected[$type][$device['designation']]);
+          if(isset($this->Selected[$type][$device[$str]])){
+            unset($this->Selected[$type][$device[$str]]);
           }
         }
       }
@@ -274,14 +300,26 @@ class glpiDeviceManagement extends plugin
   function check($attr)
   {
     $message = array();
-    if(empty($attr['designation'])){
+    
+    if(isset($attr['designation'])){
+      $str2 = "designation";
+    }else{
+      $str2 = "name";
+    }
+    if(empty($attr[$str2])){
       $message[]=(_("You have to specify a valid name for this device."));
     }
 
     /* Avoid same name twice */
     $devices = ($this->parent->handle->getDevices());
     foreach($devices as $dev){
-      if($dev['designation']==$attr['designation']){
+      if(isset($dev['designation'])){
+        $str = "designation";
+      }else{
+        $str = "name";
+      }
+
+      if($dev[$str]==$attr[$str2]){
 
         /* Entries with ['ID'] already exists, and are only edited, if ID is missing we are currently creating a new entry */
         if(isset($attr['ID'])){
@@ -297,8 +335,8 @@ class glpiDeviceManagement extends plugin
     return($message);
   }
 
-  /* This funtions displays the tempalte for all available devices 
-   * This funtion is also used if we create a new device
+  /* This functions displays the template for all available devices 
+   * This function is also used if we create a new device
    */
   function editDevice($entry)
   {
@@ -313,7 +351,7 @@ class glpiDeviceManagement extends plugin
     $smarty->assign("device_type",$entry['device_type']);
 
     $none = array(0 => _("none"));
-    $manufacturer = array_merge($none,$this->parent->handle->getEnterprisesTypes());
+    $manufacturer = array_merge($none,$this->parent->handle->getEnterprises());
 
     $ramtypes = $this->parent->handle->getRAMTypes();
 
@@ -333,6 +371,9 @@ class glpiDeviceManagement extends plugin
     $smarty->assign("FK_glpi_enterpriseKeys",array_flip($manufacturer));
     $smarty->assign("FK_glpi_enterprises", $manufacturer);
 
+    $smarty->assign("formats",array("Large","Medium","Micro"));
+    $smarty->assign("formats",array("Large","Medium","Micro"));
+
     $smarty->assign("formats",array("Large","Medium","Micro"));
     $smarty->assign("formatKeys",array('Grand','Moyen','Micro'));
     return($smarty->fetch(get_template_path('glpi_devices.tpl', TRUE)));