X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_glpiManufacturer.inc;h=9ae1ea8003b2c5214d303c747443f7c15d41a05b;hb=7f51b7c557fe5fb3c73b5bde15856fbfdb08efbb;hp=eaaaaa94185ce06c67a40fba3494b9e1783bdd3e;hpb=5017e1b9a31c5058c3967dfb351219e4afd5e1aa;p=gosa.git diff --git a/plugins/admin/systems/class_glpiManufacturer.inc b/plugins/admin/systems/class_glpiManufacturer.inc index eaaaaa941..9ae1ea800 100644 --- a/plugins/admin/systems/class_glpiManufacturer.inc +++ b/plugins/admin/systems/class_glpiManufacturer.inc @@ -28,9 +28,9 @@ class glpiManufacturer extends plugin var $email =""; var $ID =-1; - function glpiManufacturer($config, $dn= NULL) + function glpiManufacturer($config, $dn= NULL, $parent= NULL) { - plugin::plugin ($config, $dn); + plugin::plugin ($config, $dn, $parent); $this->ui = get_userinfo(); } @@ -40,10 +40,28 @@ class glpiManufacturer extends plugin $smarty = get_smarty(); $display = ""; + /* Remove enterprise from db */ if((isset($_POST['remove_manu']))&&(isset($_POST['manufacturer']))){ - $this->parent->handle->removeEnterprise($_POST['manufacturer']); + + $tmp = $this->parent->handle->is_manufacturerUsed($_POST['manufacturer']); + if(count($tmp)){ + + $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 manufacturer, it is still in use by these system(s) '%s'"),$names)); + }else{ + $this->parent->handle->removeEnterprise($_POST['manufacturer']); + } } + /* Add new Manufactuer : Open dialog with empty fields */ if(isset($_POST['add_manu'])){ $this->editMode = true; $this->Edit_Add = "add"; @@ -52,6 +70,7 @@ class glpiManufacturer extends plugin } } + /* Edit existing manuatctuerer data */ if((isset($_POST['edit_manu']))&&(isset($_POST['manufacturer']))){ $this->editMode = true; $this->Edit_Add = "edit"; @@ -68,12 +87,13 @@ class glpiManufacturer extends plugin $this->ID = $_POST['manufacturer']; } + /* close Dialog without saving */ if(isset($_POST['close_manufacturer'])){ $this->editMode=false; } + /* close dialog an save all changes / adds */ if(isset($_POST['save_manufacturer'])){ - $tmp = array(); foreach($this->attributes as $attrs){ $tmp[$attrs]=$this->$attrs; @@ -85,6 +105,22 @@ class glpiManufacturer extends plugin $allok = false; } + $attr = $this->parent->handle->getEnterprises(); + + if($this->ID == -1 ){ + if(in_array($tmp['name'],$attr)){ + $allok = false; + print_red(_("Specified name is already in use, please choose another one.")); + } + }else{ + unset($attr[$this->ID]); + if(in_array($tmp['name'],$attr)){ + $allok = false; + print_red(_("Specified name is already in use, please choose another one.")); + } + } + + /* all checks are ok , so save changes */ if($allok){ if($this->Edit_Add == "add"){ $this->parent->handle->addEnterprise($tmp); @@ -96,6 +132,7 @@ class glpiManufacturer extends plugin } } + /* As long as this war is true, we have to display the edit dialog */ if($this->editMode == true){ $this->save_object(); foreach($this->attributes as $attrs){ @@ -122,7 +159,7 @@ class glpiManufacturer extends plugin { foreach($this->attributes as $attr){ if(isset($_POST[$attr])){ - $this->$attr = $_POST[$attr]; + $this->$attr = stripslashes($_POST[$attr]); } } }