From 9ddb202ea02bc482600c1dc5d1edf2c509e4d44b Mon Sep 17 00:00:00 2001 From: hickert Date: Wed, 15 Mar 2006 09:42:37 +0000 Subject: [PATCH] Added patch from : Jan-Marek Glogowski "GOsa FAI install methods" git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@2845 594d385d-05f5-0310-b6e9-bd551577e9d8 --- include/class_debconfTemplate.inc | 37 +++++++++---------- plugins/admin/fai/class_faiPackage.inc | 17 ++++++++- .../fai/class_faiPackageConfiguration.inc | 9 +++-- plugins/admin/fai/faiPackage.tpl | 10 +++++ 4 files changed, 50 insertions(+), 23 deletions(-) diff --git a/include/class_debconfTemplate.inc b/include/class_debconfTemplate.inc index d044c46f7..4d94d0e94 100644 --- a/include/class_debconfTemplate.inc +++ b/include/class_debconfTemplate.inc @@ -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= ""; foreach ($this->template as $post_name => $entry){ diff --git a/plugins/admin/fai/class_faiPackage.inc b/plugins/admin/fai/class_faiPackage.inc index bf9b32ba9..04f0a2b8a 100644 --- a/plugins/admin/fai/class_faiPackage.inc +++ b/plugins/admin/fai/class_faiPackage.inc @@ -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){ diff --git a/plugins/admin/fai/class_faiPackageConfiguration.inc b/plugins/admin/fai/class_faiPackageConfiguration.inc index 55077c67b..1717887d7 100644 --- a/plugins/admin/fai/class_faiPackageConfiguration.inc +++ b/plugins/admin/fai/class_faiPackageConfiguration.inc @@ -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']); + } } } diff --git a/plugins/admin/fai/faiPackage.tpl b/plugins/admin/fai/faiPackage.tpl index a4d4371bd..d88ff6443 100644 --- a/plugins/admin/fai/faiPackage.tpl +++ b/plugins/admin/fai/faiPackage.tpl @@ -44,6 +44,16 @@ {$section} + + + +
+ {t}Install method{/t} : + + +
-- 2.30.2