Code

Added patch from : Jan-Marek Glogowski
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 15 Mar 2006 09:42:37 +0000 (09:42 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 15 Mar 2006 09:42:37 +0000 (09:42 +0000)
"GOsa FAI install methods"

git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@2845 594d385d-05f5-0310-b6e9-bd551577e9d8

include/class_debconfTemplate.inc
plugins/admin/fai/class_faiPackage.inc
plugins/admin/fai/class_faiPackageConfiguration.inc
plugins/admin/fai/faiPackage.tpl

index d044c46f79124065eac9e2dc6a7315feca4ddd79..4d94d0e9407f10777580dc05e738c1a325b620ba 100644 (file)
@@ -4,7 +4,7 @@ class debconf
 {
   var $package= "";
   var $language= "";
-  var $has_template= FALSE;
+  var $loaded_template= FALSE;
   var $template_directory= "";
   var $template= array();
 
@@ -19,7 +19,6 @@ class debconf
   function set_package($package)
   {
     $this->package= $package;
-    return ($this->load());
   }
 
 
@@ -43,21 +42,16 @@ class debconf
 
   function load()
   {
-    /* Reject requests, if parameters are not set */
-    if ($this->package == "" || $this->template_directory == ""){
-      return (FALSE);
-    }
-
-    /* Try to load package based template file */
-    $filename= preg_replace("/\/+/", "/", $this->template_directory."/".$this->package.".templates");
-    if (is_file($filename) && is_readable($filename)){
+    if( TRUE === $this->has_template() ) {
+    
+      /* Try to load package based template file */
       $this->template= array();
 
       /* Read template array */
-      $post_name              = 0;
-      $langcode             = $this->language.".UTF-8";
-      $in_description       = FALSE;
-      $got_local_description= FALSE;
+      $post_name             = 0;
+      $langcode              = $this->language.".UTF-8";
+      $in_description        = FALSE;
+      $got_local_description = FALSE;
 
       $fh= fopen($filename, 'r');
 
@@ -144,7 +138,7 @@ class debconf
       }
 
       fclose($fh);
-      $this->has_template= TRUE;
+      $this->loaded_template= TRUE;
       
       $tmp= array();
       foreach($this->template as $post_name => $template){
@@ -156,14 +150,19 @@ class debconf
       return (TRUE);
     }
 
-    $this->has_template= FALSE;
+    $this->loaded_template= FALSE;
     return (FALSE);
   }
 
 
   function has_template()
   {
-    return ($this->has_template);
+    /* Reject requests, if parameters are not set */
+    if ($this->package == "" || $this->template_directory == ""){
+      return (FALSE);
+    }
+    $filename= preg_replace("/\/+/", "/", $this->template_directory."/".$this->package.".templates");
+    return (is_file($filename) && is_readable($filename));
   }
 
 
@@ -209,7 +208,7 @@ class debconf
   /* This funtion sets the defualt value */
   function SetDefault($var,$val)
   {
-    if($this->has_template){
+    if ($this->loaded_template) {
       foreach($this->template as $key => $tmp){
         if($tmp['Name'] == $var ){
           $this->template[$key]['Default'] = $val;
@@ -222,7 +221,7 @@ class debconf
   /* Display all possible options in html*/
   function get_dialog()
   {
-    if ($this->has_template){
+    if ($this->loaded_template) {
       $result= "<table summary=''>";
 
       foreach ($this->template as $post_name => $entry){
index bf9b32ba937d86391dad6d4a85cf2122a821f7a0..04f0a2b8a26127f4aa885331ebf0263ef16c56ed 100644 (file)
@@ -56,6 +56,12 @@ class faiPackage extends plugin
 
   var $FAIstate         = "";
 
+  var $FAIinstallMethods  = array( "install", "ninstall", "remove", 
+                                   "dselect-upgrade", "taskinst", "taskrm",
+                                   "hold", "clean", "aptitude", "aptitude-r",
+                                   "pending", "dpkgc" );
+
   function faiPackage ($config, $dn= NULL)
   {
     /* Load Attributes */
@@ -133,6 +139,13 @@ class faiPackage extends plugin
     }
     $this->confDir = CONFIG_DIR."/fai/";
     $this->FAIpackage = array();
+
+
+    $methods = array();
+    foreach($this->FAIinstallMethods as $method){
+      $methods[$method] = $method;
+    }
+    $this->FAIinstallMethods = $methods;
   }
 
   function execute()
@@ -145,6 +158,8 @@ class faiPackage extends plugin
     $smarty= get_smarty();
     $display= "";
 
+    $smarty->assign( "FAIinstallMethods", $this->FAIinstallMethods );
+
     /* Check if we exist already - no need to ask for revisions, etc. then */
     if ($this->dn != "new"){
         $this->newDialogShown= true;
@@ -414,7 +429,7 @@ class faiPackage extends plugin
       $this->attrs['FAIdebianSection'][] = $sec;
     }
 
-    $this->attrs["FAIinstallMethod"]= "aptitude";
+//    $this->attrs["FAIinstallMethod"]= "aptitude";
 
     $ldap->cat($this->dn);
     if($ldap->count()!=0){
index 55077c67b7ad9e4497b8f9c9874028cd455a8dc7..1717887d7c84ffa1669b6fe83a31c0dabae2c6b6 100644 (file)
@@ -24,10 +24,13 @@ class faiPackageConfiguration extends plugin
     $this->Debconf_handle->set_template_directory($path);
     $this->Debconf_handle->set_package($this->obj);
     $this->Debconf_handle->set_language(preg_replace('/_.*$/', '', get_browser_language()));
-    $this->pkg_config = $pkg_config;
 
-    foreach($this->pkg_config as $var){
-      $this->Debconf_handle->SetDefault($var['Name'],$var['Value']);
+    if( $this->Debconf_handle->load() ) {
+      $this->pkg_config = $pkg_config;
+
+      foreach($this->pkg_config as $var){
+        $this->Debconf_handle->SetDefault($var['Name'],$var['Value']);
+      }
     }
   }
 
index a4d4371bdadaf9aef4ea1478e16bcfef9c85e91f..d88ff6443699bd7883b1db979d8ef7b89ac94eee 100644 (file)
                                                        {$section}
                                                </td>
                                        </tr>
+                                       <tr>
+                                           <td>
+                                                 {t}Install method{/t} :
+                                               </td>
+                                               <td>
+                                                       <select name="FAIinstallMethod" {$cnACL} >
+                                                         {html_options options=$FAIinstallMethods output=$FAIinstallMethod selected=$FAIinstallMethod}
+                                                       </select>
+                                               </td>
+                                       </tr>
                                </table>
                </td>
        </tr>