Code

Fixed remove.tpl
[gosa.git] / plugins / admin / fai / class_faiPackageEntry.inc
index 2693af1a7f74a09a62e626d2c793a6dbe799bb4f..710fcfddfc7acd63b0999d6f9c61167f726004b1 100644 (file)
@@ -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 = "<table><tr><input type='hidden' value='chkchange' name='chkchange'>";
     $i = 0; 
     foreach($this->categories as $cat => $selected){
@@ -77,19 +87,14 @@ class faiPackageEntry extends plugin
         $CHKS .="<td><input type='checkbox' value='1' name='CAT".$cat."' onclick='document.mainform.submit()'>&nbsp;".$cat."&nbsp;</td>";
       }
     }
-    $CHKS .= "<br><input type='submit' name='refresh0' value='"._("refresh")."'> </td></tr></table>";
+    $CHKS .= "</td></tr></table>";
 
-    $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 = "<input type='checkbox' value='1' name='use_".base64_encode($pkg[0])."' ".$check." onclick='document.mainform.submit()'>
-                 <input type='hidden' value='1' name='wasonpage_".base64_encode($pkg[0])."'>";
-      $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 = "<input type='checkbox' value='1' name='use_".base64_encode($pkg[0])."' ".$check." onclick='document.mainform.submit()'>
+                   <input type='hidden' value='1' name='wasonpage_".base64_encode($pkg[0])."'>";
+          $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:
 ?>