X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Ffai%2Fclass_faiPartitionTable.inc;h=fc35fd188204f1ff3cc2218af40e4c03074100bd;hb=38e36135b451936d249b671857b133a7d55b7360;hp=d5feaa4df0e61ba95efc425c845f416320d6a0c0;hpb=ff457979c436e8d83a557455a94f6a8b8bfd7e95;p=gosa.git diff --git a/plugins/admin/fai/class_faiPartitionTable.inc b/plugins/admin/fai/class_faiPartitionTable.inc index d5feaa4df..fc35fd188 100644 --- a/plugins/admin/fai/class_faiPartitionTable.inc +++ b/plugins/admin/fai/class_faiPartitionTable.inc @@ -72,10 +72,14 @@ class faiPartitionTable extends plugin } } } + ksort($this->disks); } function execute() { + /* Call parent execute */ + plugin::execute(); + /* Fill templating stuff */ $smarty= get_smarty(); $display= ""; @@ -96,6 +100,11 @@ class faiPartitionTable extends plugin /* Edit disk. * Open dialog which allows us to edit the selected entry */ + + if($this->dn != "new"){ + $_SESSION['objectinfo']= $this->dn; + } + if((isset($_POST['EditDisk']))&&(isset($_POST['disks']))){ $usedDiskNames =array(); foreach($this->disks as $key=>$disk){ @@ -104,6 +113,7 @@ class faiPartitionTable extends plugin } } $this->dialog = new faiPartitionTableEntry($this->config,$this->dn,$usedDiskNames,$this->disks[$_POST['disks']]); + $_SESSION['objectinfo'] = $this->disks[$_POST['disks']]['dn']; $this->is_dialog = true; } @@ -147,6 +157,7 @@ class faiPartitionTable extends plugin unset($this->dialog); $this->dialog = NULL; $this->is_dialog=false; + ksort($this->disks); } } @@ -211,9 +222,17 @@ class faiPartitionTable extends plugin } } if(!empty($disk['description'])){ - $a_return[$key]= $disk['cn']." [".$disk['description']."], ".sprintf(_("%s partition(s)"), $cnt); + if($cnt == 1){ + $a_return[$key]= $disk['cn']." [".$disk['description']."], ".sprintf(_("%s partition"), $cnt); + }else{ + $a_return[$key]= $disk['cn']." [".$disk['description']."], ".sprintf(_("%s partition(s)"), $cnt); + } }else{ - $a_return[$key]= $disk['cn'].", ".sprintf(_("%s partition(s)"), $cnt); + if($cnt == 1){ + $a_return[$key]= $disk['cn'].", ".sprintf(_("%s partition"), $cnt); + }else{ + $a_return[$key]= $disk['cn'].", ".sprintf(_("%s partition(s)"), $cnt); + } } } } @@ -252,16 +271,6 @@ class faiPartitionTable extends plugin { $message= array(); - - $str = utf8_encode("üöä"); - if((empty($this->description))||(preg_match("/[^a-z0-9".$str."\.,;:\-_\? ]/i",$this->description))){ - $message[]=_("Please enter a valid description."); - } - - if((empty($this->cn))||(preg_match("/[^a-z0-9]/i",$this->cn))){ - $message[]=_("Please enter a valid name."); - } - return ($message); } @@ -313,14 +322,27 @@ class faiPartitionTable extends plugin $disk_attrs['cn'] = $disk['cn']; $disk_attrs['description'] = $disk['description']; $disk_attrs['objectClass'] = array("top","FAIclass","FAIpartitionDisk"); - + + if($disk['status']=="new"){ + $ldap->cat($disk_dn); + if($ldap->count()){ + $disk['status']="edited"; + } + } + if($disk['status'] == "delete"){ $ldap->cd($disk_dn); $ldap->rmdir_recursive($disk_dn); }elseif($disk['status']== "edited"){ + if(empty($disk_attrs['description'])){ + $disk_attrs['description']=array(); + } $ldap->cd($disk_dn); $ldap->modify($disk_attrs); }elseif($disk['status']== "new"){ + if(empty($disk_attrs['description'])){ + unset($disk_attrs['description']); + } $ldap->cd($this->config->current['BASE']); $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $disk_dn)); $ldap->cd($disk_dn); @@ -349,16 +371,33 @@ class faiPartitionTable extends plugin unset($partition_attrs['status']); unset($partition_attrs['old_cn']); - + + if($partition['status']=="new"){ + $ldap->cat($partition_dn); + if($ldap->count()){ + $partition['status']="edited"; + } + } + + if((!isset($partition['FAImountPoint']))||(empty($partition['FAImountPoint']))){ + $partition_attrs['FAImountPoint']="swap"; + } + if(($partition['status'] == "delete")&&($disk['status']!="new")){ $ldap->cd($partition_dn); $ldap->rmdir_recursive($partition_dn); }elseif($partition['status'] == "new"){ + if(empty($partition_attrs['description'])){ + unset($partition_attrs['description']); + } $ldap->cd($this->config->current['BASE']); $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $partition_dn)); $ldap->cd($partition_dn); $ldap->add($partition_attrs); }elseif($partition['status'] == "edited"){ + if(empty($partition_attrs['description'])){ + $partition_attrs['description']=array(); + } $ldap->cd($partition_dn); $ldap->modify($partition_attrs); }