X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Ffai%2Fclass_faiPackageEntry.inc;h=710fcfddfc7acd63b0999d6f9c61167f726004b1;hb=d196eb25e6a71b8173e42c7d078e53b938b05778;hp=2693af1a7f74a09a62e626d2c793a6dbe799bb4f;hpb=86482a36b65cd3a753d50065864ae82fabe7589c;p=gosa.git diff --git a/plugins/admin/fai/class_faiPackageEntry.inc b/plugins/admin/fai/class_faiPackageEntry.inc index 2693af1a7..710fcfddf 100644 --- a/plugins/admin/fai/class_faiPackageEntry.inc +++ b/plugins/admin/fai/class_faiPackageEntry.inc @@ -11,21 +11,25 @@ class faiPackageEntry extends plugin var $ignore_account= TRUE; var $attributes = array(); var $objectclasses= array(); - var $strID = ""; + var $pkgs = array(); var $buffer = array(); var $categories = array(); - var $searchStr = "*"; + var $searchStrPKG = "Please enter your search string here"; var $selected = array(); /* Array with available class names */ var $FAIAllclasses = array(); - function faiPackageEntry ($config, $dn= NULL,$strID=false,$selected=array()) + function faiPackageEntry ($config, $dn= NULL,$pkgs,$selected=array()) { plugin::plugin ($config, $dn); - $this->strID = $strID; + + $this->pkgs=$pkgs; + if(isset($_SESSION['searchStrPKG'])){ + $this->searchStrPKG=$_SESSION['searchStrPKG']; + } $this->selected=$selected; } @@ -37,32 +41,38 @@ class faiPackageEntry extends plugin $divlist = new divlist("PackageEntry"); $divlist->SetSummary(_("This list displays all assigned package names for this repository settings.")); - $divlist->SetEntriesPerPage(20); + $divlist->SetEntriesPerPage(0); $divlist->SetHeader(array(array("string"=>" "), array("string"=>"Name"), array("string"=>"Version"), array("string"=>"Description","attach"=>"style='border-right:0px;'"))); if(isset($_GET['search'])){ - $this->searchStr= $_GET['search']."*"; + $this->searchStrPKG= $_GET['search']."*"; } - - $pkgs = $this->genPkgs(); - foreach($pkgs as $cat => $entries){ - if(!isset($this->categories[$cat])){ - $this->categories[$cat] = false; - } - if(isset($_POST['chkchange'])){ - $this->searchStr = $_POST['searchStr']; - if(isset($_POST['CAT'.$cat])){ - $this->categories[$cat]=true; - }else{ - $this->categories[$cat]=false; + + $pkgs= $this->pkgs; + + unset($this->categories); + foreach($pkgs as $name => $entry){ + $cat = $entry[2]; + if(!empty($cat)){ + if(!isset($this->categories[$cat])){ + $this->categories[$cat] = true; + } + if(isset($_POST['chkchange'])){ + $this->searchStrPKG = $_POST['searchStrPKG']; + if(isset($_POST['CAT'.$cat])){ + $this->categories[$cat]=true; + }else{ + $this->categories[$cat]=false; + } } } - } + ksort($this->categories); + $CHKS = ""; $i = 0; foreach($this->categories as $cat => $selected){ @@ -77,19 +87,14 @@ class faiPackageEntry extends plugin $CHKS .=""; } } - $CHKS .= "
 ".$cat." 
"; + $CHKS .= ""; - $packages = array(); - foreach($this->categories as $cat => $use){ - if($use){ - $packages = array_merge($packages,$pkgs[$cat]); - } - } foreach($_POST as $name => $value){ if(preg_match("/^wasonpage_/i",$name)){ $name = preg_replace("/^wasonpage_/","",$name); $n =base64_decode($name); + if(isset($_POST['use_'.$name])){ $this->selected[$n] = $n; }else{ @@ -101,24 +106,28 @@ class faiPackageEntry extends plugin } } - foreach($packages as $pkg){ - if(preg_match("/^".str_replace("*",".*",$this->searchStr)."/i",$pkg[0])){ - if(in_array($pkg[0],$this->selected)){ - $check = " checked "; - }else{ - $check = ""; - } - $chkbox = " - "; - $divlist->AddEntry(array(array("string"=>$chkbox), - array("string"=>$pkg[0]), + foreach($pkgs as $pkg){ + if((preg_match("/^".str_replace("*",".*",$this->searchStrPKG)."/i",$pkg[0]))|| + (preg_match("/^".str_replace("*",".*",$this->searchStrPKG)."/i",$pkg[3]))){ + if($this->categories[$pkg[2]]){ + if(in_array($pkg[0],$this->selected)){ + $check = " checked "; + }else{ + $check = ""; + } + $chkbox = " + "; + $divlist->AddEntry(array(array("string"=>$chkbox), + array("string"=>$pkg[0]), array("string"=>$pkg[1]), array("string"=>$pkg[3],"attach"=>"style='border-right:0px'"))); + } } } + $_SESSION['searchStrPKG'] = $this->searchStrPKG; $smarty->assign("CHKS" , $CHKS); - $smarty->assign("searchStr" , $this->searchStr); + $smarty->assign("searchStrPKG" , $this->searchStrPKG); $smarty->assign("faihead" , ""); $smarty->assign("failist" , $divlist->DrawList()); $smarty->assign("infoimage" , get_template_path('images/info.png')); @@ -160,55 +169,8 @@ class faiPackageEntry extends plugin function save() { -/* - $a_ret= array(); - $pkgs = $this->genPkgs(); - foreach($this->selected as $pkg){ - foreach($pkgs as $cat => $obj){ - foreach($obj as $package){ - if($package[0] == $pkg){ - $a_ret[$package[0]]=$package; - } - } - } - } - return($a_ret); -*/ - - return($this->selected); + return($this->selected); } - - /* Generate listbox friendly SubObject list - */ - function genPkgs(){ - /* Generate a list off available packages for this mirror, section and release - */ - $strID = $this->strID; // This var contains the path to the parsed package file - - /* Open the packelist */ - $fp = fopen($strID,"r"); - $a_ret = array(); - /* Only read this file if it wasn't read before */ - if(!isset($this->buffer[$strID])){ - $str = ""; - /* Parse every line and create an array */ - while(!feof($fp)){ - $str= fgets($fp,512); - $stra= split("\|",$str); - if(count($stra)==4){ - $a_ret[$stra[2]][] = $stra; - } - } - - /* Save our Data, to avoid reading it again */ - $this->buffer[$strID]=$a_ret; - return($a_ret); - }else{ - return $this->buffer[$strID]; - } - } - - } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>