From cb3fbb7302eeed4281f7b8e23a5fea418f4fab13 Mon Sep 17 00:00:00 2001 From: psc Date: Tue, 16 Mar 2010 10:28:57 +0000 Subject: [PATCH] Implement a debconf configuration overview (Trac #2025) - When editting a package list enable the user to click 'Edit configurations' and get an overview of and edit all debconf configurations in the given package list. - Add the possibility to add debconf settings for settings which are not known to gosa-si. - Add some safety measures to the debconfTemplate class to avoid breaking values because of quotes etc. git-svn-id: https://oss.gonicus.de/repositories/gosa/branches/2.6-lhm@16619 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../fai/admin/fai/NewDebconfConfiguration.tpl | 63 +++ .../fai/class_NewDebconfConfiguration.inc | 149 ++++++ .../fai/admin/fai/class_debconfTemplate.inc | 23 +- .../fai/class_faiDebconfConfigurations.inc | 456 ++++++++++++++++++ .../fai/admin/fai/class_faiPackage.inc | 65 ++- .../fai/class_faiPackageConfiguration.inc | 3 + .../admin/fai/faiDebconfConfigurations.tpl | 13 + .../gosa-plugins/fai/admin/fai/faiPackage.tpl | 10 +- .../fai/locale/de/LC_MESSAGES/messages.po | 264 ++++++---- trunk/gosa-plugins/fai/locale/messages.po | 262 ++++++---- 10 files changed, 1092 insertions(+), 216 deletions(-) create mode 100644 trunk/gosa-plugins/fai/admin/fai/NewDebconfConfiguration.tpl create mode 100644 trunk/gosa-plugins/fai/admin/fai/class_NewDebconfConfiguration.inc create mode 100644 trunk/gosa-plugins/fai/admin/fai/class_faiDebconfConfigurations.inc create mode 100644 trunk/gosa-plugins/fai/admin/fai/faiDebconfConfigurations.tpl diff --git a/trunk/gosa-plugins/fai/admin/fai/NewDebconfConfiguration.tpl b/trunk/gosa-plugins/fai/admin/fai/NewDebconfConfiguration.tpl new file mode 100644 index 000000000..ecf1ae9c7 --- /dev/null +++ b/trunk/gosa-plugins/fai/admin/fai/NewDebconfConfiguration.tpl @@ -0,0 +1,63 @@ +
+{t}New debconf configuration{/t} +
+
+

+{t}In this dialog you can add a new debconf configuration.{/t} +
+
+
+ + + + +
+ + + + + + + + + + + + + +
+ {t}Package{/t} + + {t}Variable{/t} + + {t}Type{/t} + + {t}Value{/t} +
+ + + + + + + +
+
+
+
+ +
+

+   + +
+ + diff --git a/trunk/gosa-plugins/fai/admin/fai/class_NewDebconfConfiguration.inc b/trunk/gosa-plugins/fai/admin/fai/class_NewDebconfConfiguration.inc new file mode 100644 index 000000000..57c20b8a2 --- /dev/null +++ b/trunk/gosa-plugins/fai/admin/fai/class_NewDebconfConfiguration.inc @@ -0,0 +1,149 @@ + "boolean", + "multiselect" => "multiselect", + "password" => "password", + "select" => "select", + "string" => "string", + ); + var $parent; + + function NewDebconfConfiguration (&$config, $dn, &$parent) + { + plugin::plugin ($config, $dn); + + /* Get list of packages */ + $this->packages = $parent->packages; + /* Add d-i as special exception */ + $this->packages['d-i'] = 'd-i'; + ksort($this->packages); + + $this->parent = $parent; + } + + function execute() + { + /* Call parent execute */ + plugin::execute(); + + /* Fill templating stuff */ + $smarty = get_smarty(); + $display= ""; + + $ldap = $this->config->get_ldap_link(); + /* Get package names */ + + /* Pre-Fill input fields (needed for save_object if input fields are missing) */ + $variable = ""; + $variable_type = ""; + $content = ""; + $package = ""; + if (isset($this->DebconfConfiguration['Package'])) { + $package = $this->DebconfConfiguration['Package']; + } + if (isset($this->DebconfConfiguration['FAIvariable'])) { + $variable = $this->DebconfConfiguration['FAIvariable']; + } + if (isset($this->DebconfConfiguration['FAIvariableType'])) { + $variable_type = $this->DebconfConfiguration['FAIvariableType']; + } + + if (isset($this->DebconfConfiguration['FAIvariableContent'])){ + $content = $this->DebconfConfiguration['FAIvariableContent']; + } + $smarty->assign("package", $package); + $smarty->assign("variable", $variable); + $smarty->assign("variable_type", $variable_type); + $smarty->assign("content", $content); + + + /* Assign packages and variable types */ + $smarty->assign("variable_types", $this->variable_types); + $smarty->assign("packages", $this->packages); + + /* Fetch template and display */ + $display.= $smarty->fetch(get_template_path('NewDebconfConfiguration.tpl', TRUE)); + return($display); + } + + /* Get posts and set class name + */ + function save_object() + { + if (isset($_POST['save_AddDebconf'])) { + foreach (array("FAIvariableType", "FAIvariableContent", "FAIvariable", "Package") as $attr) + { + if (isset($_POST[$attr])) { + $this->DebconfConfiguration[$attr] = get_post($attr); + } + } + + /* Normalize boolean values */ + if($this->DebconfConfiguration['FAIvariableType'] == 'boolean') { + $this->DebconfConfiguration['FAIvariableContent'] = $this->parent->normalize_bool($this->DebconfConfiguration['FAIvariableContent']); + } + } + } + + /* Check given class name + */ + function check() + { + /* Call common method to give check the hook */ + $message= plugin::check(); + + $package = $this->DebconfConfiguration['Package']; + if (!isset($this->DebconfConfiguration['FAIvariable']) || empty($this->DebconfConfiguration['FAIvariable'])) { + $message[] = msgPool::required("Variable"); + } + + if ($this->DebconfConfiguration['FAIvariableType'] == 'boolean') { + if (!empty($this->DebconfConfiguration['FAIvariableContent'])) { + $value = strtolower($this->DebconfConfiguration['FAIvariableContent']); + } + else { + $value = ""; + } + if (!$this->parent->normalize_bool($value, TRUE)) { + $message[] = sprintf(_("The specified value '%s' for the variable type boolean is invalid.
Allowed values: true, false, 1, 0."), $this->DebconfConfiguration['FAIvariableContent']); + } + + } + + if (isset($this->DebconfConfiguration['FAIvariable'])){ + $name = $this->DebconfConfiguration['FAIvariable']; + if (isset($this->parent->DebconfConfigurations[$package][$name])) { + $message[] = msgPool::duplicated('Variable'); + } + + if (isset($this->parent->DebconfDefaults[$package][$name])) { + $message[] = msgPool::duplicated('Variable'); + } + } + + + return ($message); + } + + + /* Return the class name */ + function save() + { + return($this->DebconfConfiguration); + } + +} + +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: +?> diff --git a/trunk/gosa-plugins/fai/admin/fai/class_debconfTemplate.inc b/trunk/gosa-plugins/fai/admin/fai/class_debconfTemplate.inc index 2e9fca6b3..56dadcb21 100644 --- a/trunk/gosa-plugins/fai/admin/fai/class_debconfTemplate.inc +++ b/trunk/gosa-plugins/fai/admin/fai/class_debconfTemplate.inc @@ -137,13 +137,13 @@ class debconf /* special handling for arrays */ if(is_array($_POST[$entry['post_name']])){ $str = ""; - foreach($_POST[$entry['post_name']] as $val){ + foreach(get_post($entry['post_name']) as $val){ $str.= $val.", "; } $str = preg_replace("/\,\ $/","",$str); $this->template[$post_name]['Default'] = $str; }else{ - $this->template[$post_name]['Default'] = $_POST[$entry['post_name']]; + $this->template[$post_name]['Default'] = get_post($entry['post_name']); } } } @@ -152,6 +152,9 @@ class debconf if(isset($_POST["multi-".$entry['post_name']])){ $this->template[$post_name]['Default']= ""; foreach($_POST as $name => $value){ + if (get_magic_quotes_gpc()) { + $value = stripcslashes($value); + } if(preg_match("/".$entry['post_name']."-multi-/",$name)){ $this->template[$post_name]['Default'] .= $value.", "; } @@ -224,9 +227,9 @@ class debconf foreach(array("true","false") as $value){ if($data['Default'] == $value){ - $result.=""._($value); + $result.=""._($value); }else{ - $result.=""._($value); + $result.=""._($value); } $result.="
"; } @@ -265,9 +268,9 @@ class debconf $defs = split(", ",$data['Default']); foreach($choices as $value){ if(in_array($value,$defs)){ - $result.="\n".$value."
"; + $result.="\n".$value."
"; }else{ - $result.="\n".$value."
"; + $result.="\n".$value."
"; } } @@ -292,7 +295,7 @@ class debconf { $result= ""; $result.= ""; - $result.= "

".$data['Topic']."

".$data['Description']." 

"; + $result.= "

".$data['Topic']."

".$data['Description']." 

"; $result.= $data['Description']; $result.= ""; @@ -324,9 +327,9 @@ class debconf foreach($choices as $value){ if($data['Default'] == $value){ - $result.="\n".htmlentities($value)."
"; + $result.="\n".htmlentities($value)."
"; }else{ - $result.="\n".htmlentities($value)."
"; + $result.="\n".htmlentities($value)."
"; } } @@ -349,7 +352,7 @@ class debconf

".$data['Topic']."

".$data['Description']." - + "; diff --git a/trunk/gosa-plugins/fai/admin/fai/class_faiDebconfConfigurations.inc b/trunk/gosa-plugins/fai/admin/fai/class_faiDebconfConfigurations.inc new file mode 100644 index 000000000..a6a7e8ac6 --- /dev/null +++ b/trunk/gosa-plugins/fai/admin/fai/class_faiDebconfConfigurations.inc @@ -0,0 +1,456 @@ + 'false', + "1" => 'true', + "true" => 'true', + "false" => 'false' + ); + + /*! \brief Configure all debconf configurations of a given package list + @param Object $config GOsa configuration object; + @param String The DN of the current package list. + */ + function faiDebconfConfigurations (&$config, $dn= NULL, &$parent) + { + plugin::plugin ($config, $dn); + + /* Store some information we need from the parent object */ + $this->FAIstate = $parent->FAIstate; + $this->package_list = $parent->cn; + $this->parent = $parent; + + /* Get the list of configurations from the parent object */ + $this->DebconfConfigurations = $this->parent->ConfiguredPackages; + + /* Load packages */ + foreach(array_keys($this->parent->usedPackages) as $package) { + $this->packages[$package] = $package; + } + ksort($this->packages); + + + /* Determine and assemble release name */ + $release = $this->parent->parent->parent->fai_release; + $tmp= preg_replace('/[,]*'.preg_quote(get_ou('faiBaseRDN'), '/').'.*$/', '', $release); + $tmp= preg_replace('/ou=/', '', $tmp); + $rev= array_reverse(split(',', $tmp)); + $this->release= "/"; + foreach ($rev as $part){ + $this->release.= "/$part"; + } + $this->release= preg_replace('#^[/]*#', '', $this->release); + + /* Get the list of debconf configuration for the given package list */ + $ldap = $config->get_ldap_link(); + + /* Get the defaults from gosa-si */ + if ($this->query_gosa_si == TRUE) { + $q = new gosaSupportDaemon(); + $ret = $q->FAI_get_packages($this->release,array("package","template"),$this->packages); + if($q->is_error()){ + msg_dialog::display(_("Service infrastructure"),msgPool::siError($q->get_error()),ERROR_DIALOG); + } + else { + foreach($ret as $res) { + $package = $res['PACKAGE']; + if (isset($res['TEMPLATE'])) { + $template = base64_decode($res['TEMPLATE']); + $debconf_handle = new debconf(preg_replace('/_.*$/', '', get_browser_language())); + $debconf_handle->load_from_string($template); + $templates = $debconf_handle->template; + unset($debconf_handle); + foreach($templates as $template) { + if (!isset($this->DebconfDefaults[$package][$template['Name']])) { + $this->DebconfDefaults[$package][$template['Name']] = $template; + } + } + } + } + } + } + } + + + /*! \brief Returns a html interface, that allow to modify + the package attributes. + @return String HTML content/ui for this plugin + */ + function execute() + { + /* Call parent execute */ + plugin::execute(); + + ksort($this->DebconfConfigurations); + + if(is_object($this->dialog)) { + $this->dialog->save_object(); + $display = $this->dialog->execute(); + return($display); + } + + $divlist = new divSelectBox("faiDebconfConfigurations"); + $divlist->setHeight(400); + + /* Define header */ + $field1 = array ("string" => "" . _("Package") . ""); + $field2 = array ("string" => "" . _("Variable") . ""); + $field3 = array ("string" => "" . _("Type"). ""); + $field4 = array ("string" => "" . _("Value") . ""); + $field5 = array ("string" => ""); + $divlist->AddEntry(array($field1,$field2,$field3,$field4,$field5)); + + /* Define some vars we will need in the following loop */ + $str_reset = " "; + $str_delete = " "; + $str_edit = " "; + $str_input = ""; + + /* Merge defaults into display */ + if ($this->merge_defaults_into_view) { + $defaults = array(); + foreach($this->DebconfDefaults as $package => $package_data){ + foreach($package_data as $debconf_info) { + $name = $debconf_info['Name']; + $value = $debconf_info['Default']; + $type = $debconf_info['Type']; + if(!in_array($type,array("boolean","multiselect","password","select","string","text"))){ + continue; + } + $defaults[$package][$name] = array( 'Name' => $name, 'Value' => $value, 'Type' => $type); + } + } + $this->DebconfAll = $this->DebconfConfigurations; + + foreach($this->packages as $package) { + if (isset($defaults[$package])) { + if (isset($this->DebconfConfigurations[$package])) { + $this->DebconfAll[$package] = array_merge($defaults[$package], $this->DebconfConfigurations[$package]); + }else { + $this->DebconfAll[$package] = $defaults[$package]; + } + + } + + } + } else { + $this->DebconfAll = $this->DebconfConfigurations; + } + ksort($this->DebconfAll); + + /* Build package list */ + $defaults_count = count($this->DebconfDefaults); + foreach($this->DebconfAll as $package => $package_data) { + foreach($package_data as $debconf_info) { + /* Do not show removed entries */ + if (isset($debconf_info['Status']) && $debconf_info['Status'] == 'removed') { + continue; + } + + /* Base64-encoded identifier for every package/debconf_data combination + * is in the form of packge/Name e.g. locales/locales/locales_to_generate */ + $identifier = base64_encode(sprintf("%s/%s",$package, $debconf_info['Name'])); + + /* Define actions for this entry */ + $actions = ""; + if(!preg_match('/^freeze/', $this->FAIstate) && + $this->acl_is_writeable("FAIdebconfInfo")) { + /* Don't enable actions if no gosa-si defaults available */ + $show_reset = FALSE; + $show_edit = FALSE; + $show_blank = FALSE; + if ($defaults_count != 0) { + $name = $debconf_info['Name']; + + if (isset($this->DebconfDefaults[$package][$name])) { + $show_edit = TRUE; + } + else { + $show_delete = TRUE; + } + + if (isset($this->DebconfConfigurations[$package][$name]) && isset($this->DebconfDefaults[$package][$name])) { + $val = $this->DebconfConfigurations[$package][$name]['Value']; + $default_val = $this->DebconfDefaults[$package][$name]['Default']; + /* Make values comparable */ + if (is_array($val)) { + $val = ""; + } + if ($val != $default_val) { + $show_reset = TRUE; + } + else { + $show_blank = TRUE; + } + }elseif (!isset($this->DebconfConfigurations[$package][$name]) && isset($this->DebconfDefaults[$package][$name])) { + $show_blank = TRUE; + } + } + + if ($show_reset) { + $actions .= sprintf("$str_reset", $identifier); + } elseif ($show_blank) { + $actions .= ""; + } else { + $actions .= sprintf("$str_delete", $identifier); + } + if ($show_edit) { + $actions .= sprintf("$str_edit", $identifier); + } + } + + /* Do not allow editing if FAIstate is freeze */ + $input_disabled = ""; + if (preg_match('/^freeze/', $this->FAIstate)) { + $input_disabled = "disabled"; + } + + /* Pre-Fill input field with the defined value */ + $input_value = ""; + if (!empty($debconf_info['Value'])) { + $input_value = htmlentities($debconf_info['Value']); + } + $input_field = sprintf("$str_input", $input_value, $identifier, $input_disabled); + + + $field1 = array( "string" => $package, "attach" => "style='width:120px;'" ); + $field2 = array( "string" => $debconf_info['Name']); + $field3 = array( "string" => $debconf_info['Type'],"attach" => "style='width:100px;'"); + $field4 = array( "string" => $input_field); + $field5 = array( "string" => $actions, "attach" => "style='width:50px; border-right:0px;'"); + $divlist->AddEntry(array($field1, $field2, $field3, $field4, $field5)); + } + } + /* Fill templating stuff */ + $smarty = get_smarty(); + $smarty->assign("divlist", $divlist->DrawList()); + $smarty->assign("headline", sprintf(_("Debconf information for package list '%s'"), $this->package_list)); + return($smarty->fetch(get_template_path('faiDebconfConfigurations.tpl', TRUE))); + } + + + function normalize_bool($bool_value, $check_mode=FALSE) { + $bool_value = strtolower($bool_value); + if(isset($this->bool_mapping[$bool_value])) { + return $this->bool_mapping[$bool_value]; + } else { + return ($check_mode) ? FALSE : $bool_value; + } + } + + /*! \brief Return the components of an identifier as an array of two elements */ + function getIdentifierComponents($identifier) { + $identifier_components = explode('/', $identifier); + $package = $identifier_components[0]; + $name = preg_replace("/^".$package."\//", "", $identifier, 1); + return(array($package, $name)); + } + + function DeleteEntry($identifier) { + list($package, $name) = $this->getIdentifierComponents($identifier); + if (isset($this->DebconfConfigurations[$package][$name])) { + $this->to_remove[$package][$name] = $this->DebconfConfigurations[$package][$name]; + unset($this->DebconfConfigurations[$package][$name]); + } + } + + function UpdateEntry($identifier, $newval="") { + list($package, $name) = $this->getIdentifierComponents($identifier); + if (!isset($this->DebconfConfigurations[$package][$name])) { + $this->DebconfConfigurations[$package][$name] = $this->DebconfDefaults[$package][$name]; + } + + /* Normalize boolean values */ + if ($this->DebconfConfigurations[$package][$name]['Type'] == 'boolean') { + $newval = $this->normalize_bool($newval); + } + + $this->DebconfConfigurations[$package][$name]['Value'] = $newval; + + if (isset($this->DebconfDefaults[$package][$name])) { + $default_value = $this->DebconfDefaults[$package][$name]['Default']; + + if ($default_value == $newval) { + $dn = "FAIvariable=".$name.",".$this->parent->dn; + $ldap = $this->config->get_ldap_link(); + $ldap->cat($dn); + if ($ldap->count()) { + $attrs = $ldap->fetch(); + if (isset($attrs['FAIvariableContent']) && $attrs['FAIvariableContent'][0] == $newval) { + /* Do not store default values unless its still a change compared to the LDAP */ + unset($this->DebconfConfigurations[$package][$name]); + } else { + /* Values different from the default reset removal status */ + unset($this->to_remove[$package][$name]); + } + } else { + unset($this->DebconfConfigurations[$package][$name]); + } + } + else { + /* Values different from the default reset removal status */ + unset($this->to_remove[$package][$name]); + } + } + else { + /* This is no entry with a default value setting, so a new value removes + * the removal status */ + if (isset($this->to_remove[$package][$name])) { + unset($this->to_remove[$package][$name]); + } + } + + if (isset($this->DebconfConfigurations[$package][$name]) && !$this->DebconfConfigurations[$package][$name]['Value']) { + $this->DebconfConfigurations[$package][$name]['Value'] = array(); + } + } + + /* Save data to object */ + function save_object() + { + /* Process values */ + if (isset($_POST['update_values'])) { + foreach($this->DebconfAll as $package => $package_data) { + foreach($package_data as $debconf_info) { + $identifier = sprintf("%s/%s",$package, $debconf_info['Name']); + $post_key = sprintf("val_%s", base64_encode($identifier)); + if (isset($_POST[$post_key])) { + $this->UpdateEntry($identifier, get_post($post_key)); + } + else { + $this->UpdateEntry($identifier); + } + } + } + } + + foreach($_POST as $key => $value) { + if (preg_match("/^reset_/", $key)) { + $identifier = base64_decode(str_replace("reset_", "", $key)); + $this->DeleteEntry($identifier); + break; + } + + if (preg_match("/^edit_/", $key)) { + $identifier = base64_decode(str_replace("edit_", "", $key)); + list($package, $name) = $this->getIdentifierComponents($identifier); + $this->dialog = new faiPackageConfiguration($this->config, $this->parent->dn, $package, $this->release, $this->DebconfConfigurations[$package]); + $this->dialog->used_by_faiDebconfConfigurations = TRUE; + break; + } + if (preg_match("/^NewDebconfEntry$/", $key)) { + $this->dialog = new NewDebconfConfiguration($this->config, $this->parent->dn, $this); + $this->is_dialog = TRUE; + break; + } + } + + /* Cancel add debconf dialog */ + if (isset($_POST['cancel_AddDeconf'])) { + $this->dialog = FALSE; + } + + /* Save add debconf dialog */ + if (isset($_POST['save_AddDebconf'])) { + $this->dialog->save_object(); + $msgs = $this->dialog->check(); + if (count($msgs)>0) { + foreach($msgs as $msg){ + msg_dialog::display(_("Error"), $msg, ERROR_DIALOG); + } + }else { + $new_config = $this->dialog->DebconfConfiguration; + $this->dialog = FALSE; + $package = $new_config['Package']; + $name = $new_config['FAIvariable']; + $data = array( + 'Name' => $name, + 'Value' => $new_config['FAIvariableContent'], + 'Type' => $new_config['FAIvariableType'], + 'Status' => 'manually_added', + ); + $this->DebconfConfigurations[$package][$name] = $data; + } + } + + /* Handle the classical debconf dialog */ + /* Cancel configuration */ + if(isset($_POST['CancelObjectConfig'])){ + $this->dialog = false; + $this->is_dialog=false; + } + + /* Save Configuration */ + if(isset($_POST['SaveObjectConfig'])){ + if(!preg_match("/^freeze/", $this->FAIstate)){ + $result = $this->dialog->save(); + foreach($this->packages as $package) { + if (isset($result[$package])) { + foreach($result[$package] as $attr => $data) { + $identifier = sprintf("%s/%s", $package, $attr); + $this->UpdateEntry($identifier, $data['Value']); + } + } + } + } + $this->dialog = false; + $this->is_dialog=false; + } + } + + /* Check supplied data */ + function check() + { + /* Call common method to give check the hook */ + $message= plugin::check(); + $message = array(); + + foreach($this->DebconfConfigurations as $package => $package_data) { + foreach($package_data as $debconf_info) { + if ($debconf_info['Type'] == 'boolean') { + if (!empty($debconf_info['Value'])) { + $value = strtolower($debconf_info['Value']); + } else { + $value = ""; + } + + if (!$this->normalize_bool($value, TRUE)) { + $message[] = sprintf(_("The specified value '%s' for variable '%s' is not valid with the specified boolean variable type.
Allowed values: true, false, 1, 0."), $debconf_info['Value'], $debconf_info['Name']); + } + } + } + } + + return ($message); + } + + function save() + { + $this->save_object(); + return($this->DebconfConfigurations); + } +} +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: +?> diff --git a/trunk/gosa-plugins/fai/admin/fai/class_faiPackage.inc b/trunk/gosa-plugins/fai/admin/fai/class_faiPackage.inc index e877dfd15..f801ece82 100644 --- a/trunk/gosa-plugins/fai/admin/fai/class_faiPackage.inc +++ b/trunk/gosa-plugins/fai/admin/fai/class_faiPackage.inc @@ -23,6 +23,7 @@ class faiPackage extends plugin var $sub64coded = array(); var $ConfiguredPackages = array(); + var $ConfigurationsToRemove = array(); /* Specific attributes */ var $cn = ""; // The class name for this object @@ -53,7 +54,7 @@ class faiPackage extends plugin "pending", "dpkgc" ); var $direct_packages_add = FALSE; - + var $configure_dialog_shown = FALSE; function faiPackage (&$config, $dn= NULL) { @@ -85,6 +86,9 @@ class faiPackage extends plugin foreach($this->usedPackages as $name => $value){ $PackageFilter .= "(FAIpackage=".$name.")"; } + /* Also fetch d-i */ + $PackageFilter .= "(FAIpackage=d-i)"; + $PackageFilter = "(&(objectClass=FAIdebconfInfo)(|".$PackageFilter."))"; /* Search for configuration objects */ @@ -120,6 +124,10 @@ class faiPackage extends plugin } $this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp; } + else { + $tmp['Value'] = ""; + $this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp; + } } $this->FAIdebianSection = array(); @@ -247,7 +255,6 @@ class faiPackage extends plugin foreach ($valid_packages as $value) { - if( $do_si_query == true ) { $res = $daemon->FAI_get_packages($this->FAIdebianRelease,$query_attrs,array($value),0,1); if( ! $daemon->is_error()){ @@ -279,6 +286,13 @@ class faiPackage extends plugin } } + if(isset($_POST['EditConfigurations']) && + $this->acl_is_writeable("FAIpackage")) { + $this->dialog = new faiDebconfConfigurations($this->config, $this->dn, $this); + $this->dialog->set_acl_base($this->acl_base); + $this->is_dialog = true; + } + /* + was pressed to open the package dialog */ if(isset($_POST['Addpkg']) && $this->acl_is_writeable("FAIpackage") && @@ -334,6 +348,7 @@ class faiPackage extends plugin if(isset($this->ConfiguredPackages[$pkg])){ $pkg_config = $this->ConfiguredPackages[$pkg]; } + $this->configure_dialog_shown = TRUE; $this->dialog = new faiPackageConfiguration($this->config, $this->dn,$pkg, $this->FAIdebianRelease , $pkg_config); $this->is_dialog =true; } @@ -372,18 +387,37 @@ class faiPackage extends plugin } /* Save Configuration */ - if(isset($_POST['SaveObjectConfig'])){ + if(isset($_POST['SaveObjectConfig']) && $this->configure_dialog_shown){ if(!preg_match("/^freeze/", $this->FAIstate)){ $this->ConfiguredPackages= array_merge($this->ConfiguredPackages,$this->dialog->save()); } $this->dialog = false; $this->is_dialog=false; + $this->configure_dialog_shown=false; + } + + if (isset($_POST['SaveDebconfConfig'])){ + $this->dialog->save_object(); + $msgs = $this->dialog->check(); + if(count($msgs)>0) { + foreach($msgs as $msg){ + msg_dialog::display(_("Error"), $msg, ERROR_DIALOG); + } + } else { + if(!preg_match("/^freeze/", $this->FAIstate)){ + $this->ConfiguredPackages= $this->dialog->save(); + $this->ConfigurationsToRemove = $this->dialog->to_remove; + } + $this->dialog = false; + $this->is_dialog = false; + } } /* cancel configuration */ - if(isset($_POST['CancelObjectConfig'])){ + if(isset($_POST['CancelObjectConfig']) && $this->configure_dialog_shown){ $this->dialog = false; $this->is_dialog=false; + $this->configure_dialog_shown=false; } /* Display dialog */ @@ -400,6 +434,7 @@ class faiPackage extends plugin /* Create divlist to display a list of all currently used packages */ $divlist = new divSelectBox("faiPackages"); + $divlist->setHeight(600); ksort($this->usedPackages); if(is_array($this->usedPackages)){ @@ -617,7 +652,6 @@ class faiPackage extends plugin /* Save Package configurations */ foreach($this->ConfiguredPackages as $pkgname => $attrs){ foreach($attrs as $name => $attr){ - $pkgattrs = array(); foreach($attr as $n=>$v){ @@ -633,6 +667,16 @@ class faiPackage extends plugin $pkgattrs['FAIvariableContent'] = $attr['Value']; $pkgdn = "FAIvariable=".$name.",".$this->dn; + if (is_array($pkgattrs['FAIvariableContent'])) { + $ldap = $this->config->get_ldap_link(); + $ldap->cat($pkgdn); + if (!$ldap->count()) { + /* Do not try to set FAIvariableContent to empty array if this + * debconfInfo object is new */ + unset($pkgattrs['FAIvariableContent']); + } + } + /* Tag object */ $ui= get_userinfo(); $this->tag_attrs($pkgattrs, $pkgdn, $ui->gosaUnitTag); @@ -647,6 +691,16 @@ class faiPackage extends plugin } } } + + /* Remove obsolete configurations */ + foreach($this->ConfigurationsToRemove as $package => $attr) { + foreach($attr as $name => $attr) { + $dn = "FAIvariable=".$name.",".$this->dn; + $ldap = $this->config->get_ldap_link(); + $ldap->cd($dn); + $ldap->rmdir($dn); + } + } } @@ -712,7 +766,6 @@ class faiPackage extends plugin foreach($this->usedPackages as $name){ $PackageFilter .= "(FAIpackage=".$name.")"; } - $PackageFilter = "(&(objectClass=FAIdebconfInfo)(|".$PackageFilter."))"; /* Search for configuration objects */ $ldap = $this->config->get_ldap_link(); diff --git a/trunk/gosa-plugins/fai/admin/fai/class_faiPackageConfiguration.inc b/trunk/gosa-plugins/fai/admin/fai/class_faiPackageConfiguration.inc index ab437c3bc..d0e0df3c5 100644 --- a/trunk/gosa-plugins/fai/admin/fai/class_faiPackageConfiguration.inc +++ b/trunk/gosa-plugins/fai/admin/fai/class_faiPackageConfiguration.inc @@ -48,6 +48,9 @@ class faiPackageConfiguration extends plugin $this->Debconf_handle->load_from_string($tpl); if($this->Debconf_handle->has_template()){ foreach($this->pkg_config as $var){ + if (is_array($var['Value'])) { + $var['Value'] = ""; + } $this->Debconf_handle->SetDefault($var['Name'],$var['Value']); } } diff --git a/trunk/gosa-plugins/fai/admin/fai/faiDebconfConfigurations.tpl b/trunk/gosa-plugins/fai/admin/fai/faiDebconfConfigurations.tpl new file mode 100644 index 000000000..5be3f7d9e --- /dev/null +++ b/trunk/gosa-plugins/fai/admin/fai/faiDebconfConfigurations.tpl @@ -0,0 +1,13 @@ +

 {$headline}

+{$divlist} +
+ +
+ +
+ +
+ + +
+ diff --git a/trunk/gosa-plugins/fai/admin/fai/faiPackage.tpl b/trunk/gosa-plugins/fai/admin/fai/faiPackage.tpl index 3afc580c7..870ae6ea9 100644 --- a/trunk/gosa-plugins/fai/admin/fai/faiPackage.tpl +++ b/trunk/gosa-plugins/fai/admin/fai/faiPackage.tpl @@ -67,14 +67,16 @@

 

- +
+

 {t}Used packages{/t}

{$divlist}
+ {render acl=$FAIpackageACL} - + {/render}
+ {if $direct_packages_add} @@ -84,6 +86,10 @@ {/if} + + +
diff --git a/trunk/gosa-plugins/fai/locale/de/LC_MESSAGES/messages.po b/trunk/gosa-plugins/fai/locale/de/LC_MESSAGES/messages.po index 3ebe8cdf8..aa070ab39 100644 --- a/trunk/gosa-plugins/fai/locale/de/LC_MESSAGES/messages.po +++ b/trunk/gosa-plugins/fai/locale/de/LC_MESSAGES/messages.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: messages\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-11 13:22+0100\n" +"POT-Creation-Date: 2010-03-15 11:14+0100\n" "PO-Revision-Date: 2008-12-04 11:27+0100\n" "Last-Translator: Cajus Pollmeier \n" "Language-Team: deutsch \n" @@ -40,20 +40,22 @@ msgstr "Sie können diese Erweiterung erst verwenden, wenn FAI aktiviert wurde." #: admin/systems/services/repository/class_servRepository.inc:182 #: admin/systems/services/repository/class_servRepositorySetup.inc:204 #: admin/fai/class_faiSummaryTab.inc:89 -#: admin/fai/class_faiPartitionTable.inc:180 admin/fai/tabsHook.inc:32 -#: admin/fai/class_faiTemplate.inc:212 admin/fai/tabsProfile.inc:33 -#: admin/fai/class_faiManagement.inc:238 admin/fai/class_faiManagement.inc:614 -#: admin/fai/class_faiManagement.inc:620 admin/fai/class_faiManagement.inc:906 -#: admin/fai/class_faiManagement.inc:950 admin/fai/class_faiManagement.inc:974 +#: admin/fai/class_faiPartitionTable.inc:173 admin/fai/tabsHook.inc:32 +#: admin/fai/class_faiTemplate.inc:208 +#: admin/fai/class_faiDebconfConfigurations.inc:341 +#: admin/fai/tabsProfile.inc:33 admin/fai/class_faiManagement.inc:238 +#: admin/fai/class_faiManagement.inc:614 admin/fai/class_faiManagement.inc:620 +#: admin/fai/class_faiManagement.inc:906 admin/fai/class_faiManagement.inc:950 +#: admin/fai/class_faiManagement.inc:974 #: admin/fai/class_faiManagement.inc:1238 #: admin/fai/class_faiScriptEntry.inc:59 admin/fai/class_faiScriptEntry.inc:62 #: admin/fai/tabsScript.inc:33 admin/fai/tabsPackage.inc:33 -#: admin/fai/tabsPartition.inc:34 admin/fai/class_faiScript.inc:229 +#: admin/fai/tabsPartition.inc:34 admin/fai/class_faiScript.inc:224 #: admin/fai/tabsTemplate.inc:33 admin/fai/class_FAI.inc:548 -#: admin/fai/class_faiHook.inc:239 admin/fai/class_faiProfile.inc:259 +#: admin/fai/class_faiHook.inc:233 admin/fai/class_faiProfile.inc:263 #: admin/fai/class_faiHookEntry.inc:62 admin/fai/class_faiHookEntry.inc:65 -#: admin/fai/class_faiVariable.inc:142 admin/fai/class_faiPackage.inc:356 -#: admin/fai/tabsVariable.inc:33 +#: admin/fai/class_faiVariable.inc:142 admin/fai/class_faiPackage.inc:367 +#: admin/fai/class_faiPackage.inc:400 admin/fai/tabsVariable.inc:33 msgid "Error" msgstr "Fehler" @@ -63,12 +65,12 @@ msgstr "FAI Release" #: admin/systems/services/repository/class_servRepository.inc:177 #: admin/fai/class_faiSummaryTab.inc:343 -#: admin/fai/class_faiPartitionTable.inc:371 -#: admin/fai/class_faiPartitionTable.inc:551 admin/fai/faiPackage.tpl:9 +#: admin/fai/class_faiPartitionTable.inc:364 +#: admin/fai/class_faiPartitionTable.inc:536 admin/fai/faiPackage.tpl:9 #: admin/fai/class_faiPartitionTableEntry.inc:375 #: admin/fai/class_faiPartitionTableEntry.inc:378 #: admin/fai/class_faiPartitionTableEntry.inc:474 -#: admin/fai/class_faiTemplate.inc:421 admin/fai/class_faiTemplate.inc:545 +#: admin/fai/class_faiTemplate.inc:417 admin/fai/class_faiTemplate.inc:537 #: admin/fai/faiVariable.tpl:9 admin/fai/class_askClassName.inc:142 #: admin/fai/class_askClassName.inc:151 admin/fai/class_askClassName.inc:155 #: admin/fai/class_faiManagement.inc:614 admin/fai/class_faiManagement.inc:620 @@ -76,29 +78,30 @@ msgstr "FAI Release" #: admin/fai/class_faiScriptEntry.inc:142 #: admin/fai/class_faiScriptEntry.inc:145 #: admin/fai/class_faiScriptEntry.inc:189 admin/fai/faiVariableEntry.tpl:9 -#: admin/fai/faiScript.tpl:9 admin/fai/class_faiScript.inc:327 -#: admin/fai/class_faiScript.inc:483 admin/fai/class_faiScript.inc:646 +#: admin/fai/faiScript.tpl:9 admin/fai/class_faiScript.inc:322 +#: admin/fai/class_faiScript.inc:478 admin/fai/class_faiScript.inc:637 #: admin/fai/faiScriptEntry.tpl:9 admin/fai/class_faiTemplateEntry.inc:207 #: admin/fai/class_faiTemplateEntry.inc:273 admin/fai/faiTemplate.tpl:9 #: admin/fai/faiHookEntry.tpl:9 admin/fai/faiHook.tpl:9 -#: admin/fai/class_faiHook.inc:440 admin/fai/class_faiHook.inc:562 -#: admin/fai/class_faiProfile.inc:407 admin/fai/class_faiProfile.inc:417 -#: admin/fai/class_faiProfile.inc:491 admin/fai/class_faiHookEntry.inc:145 +#: admin/fai/class_faiHook.inc:434 admin/fai/class_faiHook.inc:552 +#: admin/fai/class_faiProfile.inc:413 admin/fai/class_faiProfile.inc:423 +#: admin/fai/class_faiProfile.inc:497 admin/fai/class_faiHookEntry.inc:145 #: admin/fai/class_faiHookEntry.inc:150 admin/fai/class_faiHookEntry.inc:153 #: admin/fai/class_faiHookEntry.inc:196 admin/fai/class_faiVariable.inc:296 -#: admin/fai/class_faiVariable.inc:398 admin/fai/class_faiVariableEntry.inc:90 +#: admin/fai/class_faiVariable.inc:397 admin/fai/class_faiVariableEntry.inc:90 #: admin/fai/class_faiVariableEntry.inc:99 #: admin/fai/class_faiVariableEntry.inc:102 -#: admin/fai/class_faiVariableEntry.inc:137 admin/fai/class_faiPackage.inc:541 -#: admin/fai/class_faiPackage.inc:667 admin/fai/faiPartitionTable.tpl:9 +#: admin/fai/class_faiVariableEntry.inc:137 admin/fai/class_faiPackage.inc:572 +#: admin/fai/class_faiPackage.inc:707 admin/fai/faiPartitionTable.tpl:9 #: admin/fai/faiPartitionTableEntry.tpl:6 admin/fai/faiProfile.tpl:9 msgid "Name" msgstr "Name" #: admin/systems/services/repository/class_servRepository.inc:352 +#: admin/fai/class_faiDebconfConfigurations.inc:71 #: admin/fai/class_faiManagement.inc:788 #: admin/fai/class_faiPackageConfiguration.inc:35 admin/fai/class_FAI.inc:566 -#: admin/fai/class_faiPackage.inc:266 admin/fai/class_faiPackage.inc:563 +#: admin/fai/class_faiPackage.inc:269 admin/fai/class_faiPackage.inc:594 #: admin/fai/class_faiPackageEntry.inc:53 #: admin/fai/class_faiPackageEntry.inc:193 msgid "Service infrastructure" @@ -141,7 +144,7 @@ msgstr "Sektionen" #: admin/systems/services/repository/servRepositorySetup.tpl:19 #: admin/systems/services/repository/class_divListRepositories.inc:23 #: admin/fai/faiPackage.tpl:37 admin/fai/branch_selector.tpl:25 -#: admin/fai/class_faiPackage.inc:673 +#: admin/fai/class_faiPackage.inc:713 msgid "Release" msgstr "Release" @@ -168,8 +171,10 @@ msgstr "Regulärer Ausdruck zum Erkennen von Objekt-Namen" msgid "Add repository" msgstr "Repository hinzufügen" -#: admin/fai/faiPackageConfiguration.tpl:1 admin/fai/class_divListFai.inc:68 -#: admin/fai/class_faiPackage.inc:659 +#: admin/fai/faiPackageConfiguration.tpl:1 +#: admin/fai/class_faiDebconfConfigurations.inc:115 +#: admin/fai/NewDebconfConfiguration.tpl:16 admin/fai/class_divListFai.inc:68 +#: admin/fai/faiDebconfConfigurations.tpl:1 admin/fai/class_faiPackage.inc:699 msgid "Package" msgstr "Paket" @@ -194,10 +199,10 @@ msgid "Templates" msgstr "Vorlagen" #: admin/fai/class_faiSummaryTab.inc:48 -#: admin/fai/class_faiPartitionTable.inc:543 +#: admin/fai/class_faiPartitionTable.inc:528 #: admin/fai/class_askClassName.inc:79 admin/fai/class_divListFai.inc:154 #: admin/fai/class_divListFai.inc:208 admin/fai/class_faiGroupHandle.inc:100 -#: admin/fai/class_faiProfileEntry.inc:143 admin/fai/class_faiProfile.inc:294 +#: admin/fai/class_faiProfileEntry.inc:143 admin/fai/class_faiProfile.inc:298 msgid "Partition table" msgstr "Partitionstabelle" @@ -253,41 +258,43 @@ msgstr "Mount-Punkt" #: admin/fai/class_faiSummaryTab.inc:348 #: admin/fai/class_faiPartitionTableEntry.inc:183 +#: admin/fai/class_faiDebconfConfigurations.inc:117 +#: admin/fai/NewDebconfConfiguration.tpl:22 msgid "Type" msgstr "Typ" -#: admin/fai/class_faiPartitionTable.inc:301 -#: admin/fai/class_faiPartitionTable.inc:307 +#: admin/fai/class_faiPartitionTable.inc:294 +#: admin/fai/class_faiPartitionTable.inc:300 #, php-format msgid "%s partition" msgstr "%s Partition" -#: admin/fai/class_faiPartitionTable.inc:303 -#: admin/fai/class_faiPartitionTable.inc:309 +#: admin/fai/class_faiPartitionTable.inc:296 +#: admin/fai/class_faiPartitionTable.inc:302 #, php-format msgid "%s partition(s)" msgstr "%s Partition(en)" -#: admin/fai/class_faiPartitionTable.inc:544 +#: admin/fai/class_faiPartitionTable.inc:529 msgid "FAI partition table" msgstr "FAI-Partitionstabelle" -#: admin/fai/class_faiPartitionTable.inc:551 admin/fai/class_faiHook.inc:562 -#: admin/fai/class_faiVariable.inc:398 +#: admin/fai/class_faiPartitionTable.inc:536 admin/fai/class_faiHook.inc:552 +#: admin/fai/class_faiVariable.inc:397 msgid "Read only" msgstr "Nur Lesen" -#: admin/fai/class_faiPartitionTable.inc:552 admin/fai/faiPackage.tpl:21 +#: admin/fai/class_faiPartitionTable.inc:537 admin/fai/faiPackage.tpl:21 #: admin/fai/class_faiPartitionTableEntry.inc:475 -#: admin/fai/class_faiTemplate.inc:546 admin/fai/faiVariable.tpl:21 +#: admin/fai/class_faiTemplate.inc:538 admin/fai/faiVariable.tpl:21 #: admin/fai/class_faiScriptEntry.inc:190 admin/fai/faiVariableEntry.tpl:19 #: admin/fai/faiScript.tpl:21 admin/fai/faiTemplateEntry.tpl:33 -#: admin/fai/class_faiScript.inc:647 admin/fai/faiScriptEntry.tpl:19 +#: admin/fai/class_faiScript.inc:638 admin/fai/faiScriptEntry.tpl:19 #: admin/fai/class_faiTemplateEntry.inc:274 admin/fai/faiTemplate.tpl:21 #: admin/fai/faiHookEntry.tpl:19 admin/fai/faiHook.tpl:21 -#: admin/fai/class_faiHook.inc:563 admin/fai/class_faiProfile.inc:492 -#: admin/fai/class_faiHookEntry.inc:197 admin/fai/class_faiVariable.inc:399 -#: admin/fai/class_faiVariableEntry.inc:138 admin/fai/class_faiPackage.inc:668 +#: admin/fai/class_faiHook.inc:553 admin/fai/class_faiProfile.inc:498 +#: admin/fai/class_faiHookEntry.inc:197 admin/fai/class_faiVariable.inc:398 +#: admin/fai/class_faiVariableEntry.inc:138 admin/fai/class_faiPackage.inc:708 #: admin/fai/faiPartitionTable.tpl:21 admin/fai/faiPartitionTableEntry.tpl:13 #: admin/fai/faiProfile.tpl:21 msgid "Description" @@ -352,7 +359,7 @@ msgstr "Zeige die Objekte, auf die Folgendes passt" msgid "Generic" msgstr "Allgemein" -#: admin/fai/faiPackage.tpl:45 admin/fai/class_faiPackage.inc:670 +#: admin/fai/faiPackage.tpl:45 admin/fai/class_faiPackage.inc:710 msgid "Section" msgstr "Section" @@ -368,10 +375,14 @@ msgstr "Bitte wählen Sie die Installations-Methode" msgid "Used packages" msgstr "Verwendete Pakete" -#: admin/fai/faiPackage.tpl:82 +#: admin/fai/faiPackage.tpl:84 msgid "Add from list" msgstr "Aus Liste hinzufügen" +#: admin/fai/faiPackage.tpl:91 +msgid "Edit package configurations" +msgstr "Bearbeite Paket-Konfigurationen" + #: admin/fai/class_faiPartitionTableEntry.inc:176 msgid "primary" msgstr "primär" @@ -510,31 +521,31 @@ msgstr "" "Verschieben des Baums ist fehlgeschlagen: Der Zielbaum ist ein Teilbaum des " "Quellbaumes." -#: admin/fai/class_faiTemplate.inc:286 admin/fai/class_faiTemplate.inc:288 -#: admin/fai/class_faiScript.inc:344 admin/fai/class_faiScript.inc:346 +#: admin/fai/class_faiTemplate.inc:282 admin/fai/class_faiTemplate.inc:284 +#: admin/fai/class_faiScript.inc:339 admin/fai/class_faiScript.inc:341 msgid "edit" msgstr "Bearbeiten" -#: admin/fai/class_faiTemplate.inc:290 admin/fai/class_faiScript.inc:348 +#: admin/fai/class_faiTemplate.inc:286 admin/fai/class_faiScript.inc:343 msgid "delete" msgstr "Entfernen" -#: admin/fai/class_faiTemplate.inc:300 admin/fai/class_faiScriptEntry.inc:88 -#: admin/fai/class_faiScript.inc:330 admin/fai/class_faiScript.inc:358 -#: admin/fai/class_faiHook.inc:326 admin/fai/class_faiHookEntry.inc:80 +#: admin/fai/class_faiTemplate.inc:296 admin/fai/class_faiScriptEntry.inc:88 +#: admin/fai/class_faiScript.inc:325 admin/fai/class_faiScript.inc:353 +#: admin/fai/class_faiHook.inc:320 admin/fai/class_faiHookEntry.inc:80 msgid "Download" msgstr "Herunterladen" -#: admin/fai/class_faiTemplate.inc:537 +#: admin/fai/class_faiTemplate.inc:529 msgid "Template" msgstr "Vorlage" -#: admin/fai/class_faiTemplate.inc:538 +#: admin/fai/class_faiTemplate.inc:530 msgid "FAI template" msgstr "FAI-Vorlage" -#: admin/fai/class_faiTemplate.inc:545 admin/fai/class_faiScript.inc:646 -#: admin/fai/class_faiPackage.inc:670 admin/fai/class_faiPackage.inc:673 +#: admin/fai/class_faiTemplate.inc:537 admin/fai/class_faiScript.inc:637 +#: admin/fai/class_faiPackage.inc:710 admin/fai/class_faiPackage.inc:713 msgid "Readonly" msgstr "Nur Lesen" @@ -613,11 +624,47 @@ msgstr "Liste benutzter Variablen" msgid "Choose a variable to delete or edit" msgstr "Wählen Sie eine Variable zum Entfernen oder Bearbeiten" -#: admin/fai/faiVariable.tpl:53 admin/fai/class_faiHook.inc:312 -#: admin/fai/class_faiHook.inc:314 admin/fai/faiPartitionTable.tpl:54 +#: admin/fai/faiVariable.tpl:53 +#: admin/fai/class_faiDebconfConfigurations.inc:127 +#: admin/fai/class_faiHook.inc:306 admin/fai/class_faiHook.inc:308 +#: admin/fai/faiPartitionTable.tpl:54 msgid "Edit" msgstr "Bearbeiten" +#: admin/fai/class_faiDebconfConfigurations.inc:116 +#: admin/fai/NewDebconfConfiguration.tpl:19 admin/fai/class_divListFai.inc:60 +#: admin/fai/class_divListFai.inc:66 admin/fai/class_faiVariable.inc:389 +msgid "Variable" +msgstr "Variable" + +#: admin/fai/class_faiDebconfConfigurations.inc:118 +#: admin/fai/NewDebconfConfiguration.tpl:25 +#: admin/fai/NewDebconfConfiguration.tpl:43 +msgid "Value" +msgstr "Wert" + +#: admin/fai/class_faiDebconfConfigurations.inc:123 +msgid "Reset" +msgstr "Zurücksetzen" + +#: admin/fai/class_faiDebconfConfigurations.inc:125 +#: admin/fai/class_faiHook.inc:310 +msgid "Delete" +msgstr "Entfernen" + +#: admin/fai/class_faiDebconfConfigurations.inc:218 +#, php-format +msgid "Debconf information for package list '%s'" +msgstr "Debconf-Informationen für Paketliste '%s'" + +#: admin/fai/class_faiDebconfConfigurations.inc:400 +#, php-format +msgid "" +"The specified value '%s' for variable '%s' is not valid with the specified " +"boolean variable type.
Allowed values: true, false, 1, 0." +msgstr "Der angegebene Wert '%s' in der Variable '%s' ist mit dem angegebenen " +"Variablen-Typ boolean nicht zulässig.
Erlaubte Werte: true, false, 1, 0." + #: admin/fai/class_askClassName.inc:79 admin/fai/class_askClassName.inc:80 #: admin/fai/class_askClassName.inc:81 admin/fai/class_askClassName.inc:82 #: admin/fai/class_askClassName.inc:83 admin/fai/class_askClassName.inc:84 @@ -626,33 +673,33 @@ msgid "Create new FAI object" msgstr "Erstelle neues FAI-Objekt" #: admin/fai/class_askClassName.inc:80 admin/fai/class_faiProfileEntry.inc:142 -#: admin/fai/class_faiProfile.inc:293 +#: admin/fai/class_faiProfile.inc:297 msgid "Package bundle" msgstr "Paket-Gruppe" #: admin/fai/class_askClassName.inc:81 admin/fai/class_faiProfileEntry.inc:140 -#: admin/fai/class_faiProfile.inc:291 +#: admin/fai/class_faiProfile.inc:295 msgid "Script bundle" msgstr "Skript-Gruppe" #: admin/fai/class_askClassName.inc:82 admin/fai/class_faiProfileEntry.inc:141 -#: admin/fai/class_faiProfile.inc:292 +#: admin/fai/class_faiProfile.inc:296 msgid "Variable bundle" msgstr "Variablen-Gruppe" #: admin/fai/class_askClassName.inc:83 admin/fai/class_faiProfileEntry.inc:138 -#: admin/fai/class_faiProfile.inc:289 +#: admin/fai/class_faiProfile.inc:293 msgid "Hook bundle" msgstr "Hook-Gruppe" #: admin/fai/class_askClassName.inc:84 admin/fai/class_divListFai.inc:58 #: admin/fai/class_divListFai.inc:149 admin/fai/class_divListFai.inc:218 -#: admin/fai/class_faiGroupHandle.inc:110 admin/fai/class_faiProfile.inc:483 +#: admin/fai/class_faiGroupHandle.inc:110 admin/fai/class_faiProfile.inc:489 msgid "Profile" msgstr "Profil" #: admin/fai/class_askClassName.inc:85 admin/fai/class_faiProfileEntry.inc:139 -#: admin/fai/class_faiProfile.inc:290 +#: admin/fai/class_faiProfile.inc:294 msgid "Template bundle" msgstr "Vorlagen-Gruppe" @@ -703,6 +750,22 @@ msgstr "" "Dieses Menü erlaubt es Ihnen, Pakete auszuwählen und zur gegenwärtig " "bearbeiteten Paketliste hinzuzufügen." +#: admin/fai/NewDebconfConfiguration.tpl:2 +msgid "New debconf configuration" +msgstr "Neue Debconf-Konfiguration" + +#: admin/fai/NewDebconfConfiguration.tpl:6 +msgid "In this dialog you can add a new debconf configuration." +msgstr "In diesem Dialog können Sie eine neue Debconf-Konfiguration festlegen." + +#: admin/fai/NewDebconfConfiguration.tpl:30 +msgid "Select package" +msgstr "Wählen Sie ein Paket" + +#: admin/fai/NewDebconfConfiguration.tpl:38 +msgid "Select type" +msgstr "Wählen Sie einen Typ" + #: admin/fai/faiSummary.tpl:4 msgid "FAI object tree" msgstr "FAI-Objekthierarchie" @@ -834,7 +897,7 @@ msgid "file is empty" msgstr "Datei ist leer" #: admin/fai/class_faiScriptEntry.inc:150 admin/fai/class_divListFai.inc:62 -#: admin/fai/class_faiScript.inc:638 admin/fai/faiScriptEntry.tpl:56 +#: admin/fai/class_faiScript.inc:629 admin/fai/faiScriptEntry.tpl:56 #: admin/fai/faiHookEntry.tpl:56 admin/fai/class_faiHookEntry.inc:158 msgid "Script" msgstr "Skript" @@ -942,11 +1005,6 @@ msgstr "Zeige Objekte des Typs '%s'." msgid "Show profiles" msgstr "Zeige Profile" -#: admin/fai/class_divListFai.inc:60 admin/fai/class_divListFai.inc:66 -#: admin/fai/class_faiVariable.inc:390 -msgid "Variable" -msgstr "Variable" - #: admin/fai/class_divListFai.inc:60 msgid "Show templates" msgstr "Zeige Vorlagen" @@ -955,7 +1013,7 @@ msgstr "Zeige Vorlagen" msgid "Show scripts" msgstr "Zeige Skripte" -#: admin/fai/class_divListFai.inc:64 admin/fai/class_faiHook.inc:554 +#: admin/fai/class_divListFai.inc:64 admin/fai/class_faiHook.inc:544 msgid "Hook" msgstr "Hook" @@ -1089,11 +1147,11 @@ msgstr "Localboot-Produkte" msgid "List of scripts" msgstr "Liste der Skripte" -#: admin/fai/class_debconfTemplate.inc:210 +#: admin/fai/class_debconfTemplate.inc:213 msgid "This package has no debconf options." msgstr "Dieses Paket verfügt über keine debconf-Optionen." -#: admin/fai/class_debconfTemplate.inc:247 +#: admin/fai/class_debconfTemplate.inc:250 msgid "" "This debconf question is dynamically generated during package installation " "and requires choosing between specific options which cannot be presented " @@ -1189,19 +1247,19 @@ msgstr "Andere" msgid "sticky" msgstr "sticky" -#: admin/fai/class_faiScript.inc:314 admin/fai/class_faiScript.inc:316 +#: admin/fai/class_faiScript.inc:309 admin/fai/class_faiScript.inc:311 msgid "Sort direction" msgstr "Sortierrichtung" -#: admin/fai/class_faiScript.inc:328 admin/fai/faiScriptEntry.tpl:38 +#: admin/fai/class_faiScript.inc:323 admin/fai/faiScriptEntry.tpl:38 msgid "Priority" msgstr "Priorität" -#: admin/fai/class_faiScript.inc:332 +#: admin/fai/class_faiScript.inc:327 msgid "Action" msgstr "Aktion" -#: admin/fai/class_faiScript.inc:639 admin/fai/class_faiHookEntry.inc:199 +#: admin/fai/class_faiScript.inc:630 admin/fai/class_faiHookEntry.inc:199 msgid "FAI script" msgstr "FAI-Skript" @@ -1267,10 +1325,22 @@ msgstr "Liste der Vorlagen" msgid "Debconf information for package '%s'" msgstr "Debconf-Information für Paket '%s'" +#: admin/fai/faiDebconfConfigurations.tpl:4 +msgid "Add" +msgstr "Hinzufügen" + #: admin/fai/class_faiGroupHandle.inc:116 msgid "OPSI local product" msgstr "OPSI Local-Produkt" +#: admin/fai/class_NewDebconfConfiguration.inc:122 +#, php-format +msgid "" +"The specified value '%s' for the variable type boolean is invalid." +"
Allowed values: true, false, 1, 0." +msgstr "Der angegebene Wert '%s' für den Variablen-Typ Boolean ist unzulässig." +"
Erlaubte Werte: true, false, 1, 0." + #: admin/fai/faiHookEntry.tpl:33 admin/fai/faiHookEntry.tpl:54 msgid "Hook attributes" msgstr "Hook-Attribute" @@ -1355,39 +1425,35 @@ msgstr "Das Erstellen des Releases ist fehlgeschlagen: '%s'." msgid "FAI settings" msgstr "FAI-Einstellungen" -#: admin/fai/class_faiProfileEntry.inc:172 admin/fai/class_faiProfile.inc:286 +#: admin/fai/class_faiProfileEntry.inc:172 admin/fai/class_faiProfile.inc:290 msgid "This list displays all assigned class names for this profile." msgstr "Diese Liste zeigt alle diesem Profil zugeordneten Klassen-Namen." -#: admin/fai/class_faiHook.inc:316 -msgid "Delete" -msgstr "Entfernen" - -#: admin/fai/class_faiHook.inc:555 +#: admin/fai/class_faiHook.inc:545 msgid "FAI hook" msgstr "FAI-Hook" -#: admin/fai/class_faiProfile.inc:297 +#: admin/fai/class_faiProfile.inc:301 msgid "Remove class from profile" msgstr "Entferne Klasse von Profil" -#: admin/fai/class_faiProfile.inc:300 +#: admin/fai/class_faiProfile.inc:304 msgid "Up" msgstr "Auf" -#: admin/fai/class_faiProfile.inc:301 +#: admin/fai/class_faiProfile.inc:305 msgid "Down" msgstr "Ab" -#: admin/fai/class_faiProfile.inc:403 +#: admin/fai/class_faiProfile.inc:409 msgid "No class specified for this profile!" msgstr "Es wurde für dieses Profil keine Klasse definiert!" -#: admin/fai/class_faiProfile.inc:484 +#: admin/fai/class_faiProfile.inc:490 msgid "FAI profile" msgstr "FAI-Profil" -#: admin/fai/class_faiProfile.inc:493 admin/fai/faiProfile.tpl:36 +#: admin/fai/class_faiProfile.inc:499 admin/fai/faiProfile.tpl:36 msgid "FAI classes" msgstr "FAI-Klassen" @@ -1399,7 +1465,7 @@ msgstr "Hook-Eintrag" msgid "FAI hook entry" msgstr "FAI-Hook-Eintrag" -#: admin/fai/class_faiVariable.inc:391 +#: admin/fai/class_faiVariable.inc:390 msgid "FAI variable" msgstr "FAI-Variable" @@ -1415,59 +1481,59 @@ msgstr "Variablen-Eintrag" msgid "FAI variable entry " msgstr "FAI-Variablen-Eintrag" -#: admin/fai/class_faiPackage.inc:228 +#: admin/fai/class_faiPackage.inc:232 msgid "Invalid package names" msgstr "Ungültige Paketnamen" -#: admin/fai/class_faiPackage.inc:229 +#: admin/fai/class_faiPackage.inc:233 #, php-format msgid "The following package names don't match the Debian policy: %s" msgstr "Die folgenden Paketnamen entsprechen nicht der Debian policy: %s" -#: admin/fai/class_faiPackage.inc:413 admin/fai/class_faiPackage.inc:414 +#: admin/fai/class_faiPackage.inc:444 admin/fai/class_faiPackage.inc:445 msgid "Configured" msgstr "Konfiguriert" -#: admin/fai/class_faiPackage.inc:420 admin/fai/class_faiPackage.inc:421 +#: admin/fai/class_faiPackage.inc:451 admin/fai/class_faiPackage.inc:452 msgid "Package marked for removal" msgstr "Paket zum Entfernen vorgemerkt" -#: admin/fai/class_faiPackage.inc:437 +#: admin/fai/class_faiPackage.inc:468 msgid "Mark package for removal" msgstr "Paket zum Entfernen vormerken" -#: admin/fai/class_faiPackage.inc:443 +#: admin/fai/class_faiPackage.inc:474 msgid "Configure this package" msgstr "Dieses Paket konfigurieren" -#: admin/fai/class_faiPackage.inc:447 +#: admin/fai/class_faiPackage.inc:478 msgid "Remove this package" msgstr "Dieses Paket entfernen" -#: admin/fai/class_faiPackage.inc:527 +#: admin/fai/class_faiPackage.inc:558 msgid "Please select a least one package!" msgstr "Bitte wählen Sie mindestens ein Paket!" -#: admin/fai/class_faiPackage.inc:531 +#: admin/fai/class_faiPackage.inc:562 msgid "" "Please choose a valid release/section combination for your repository setup!" msgstr "" "Bitte wählen Sie eine gültige Kombination aus Release und Sektion für Ihr " "gewünschtes Repository!" -#: admin/fai/class_faiPackage.inc:660 +#: admin/fai/class_faiPackage.inc:700 msgid "FAI Package list" msgstr "FAI-Paketliste" -#: admin/fai/class_faiPackage.inc:669 +#: admin/fai/class_faiPackage.inc:709 msgid "Packages" msgstr "Pakete" -#: admin/fai/class_faiPackage.inc:671 +#: admin/fai/class_faiPackage.inc:711 msgid "Install Method" msgstr "Installations-Methode" -#: admin/fai/class_faiPackage.inc:672 +#: admin/fai/class_faiPackage.inc:712 msgid "Package configuration" msgstr "Paket-Konfiguration" diff --git a/trunk/gosa-plugins/fai/locale/messages.po b/trunk/gosa-plugins/fai/locale/messages.po index b158485e6..009b5154e 100644 --- a/trunk/gosa-plugins/fai/locale/messages.po +++ b/trunk/gosa-plugins/fai/locale/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-11 13:22+0100\n" +"POT-Creation-Date: 2010-03-15 11:14+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,20 +34,22 @@ msgstr "" #: admin/systems/services/repository/class_servRepository.inc:182 #: admin/systems/services/repository/class_servRepositorySetup.inc:204 #: admin/fai/class_faiSummaryTab.inc:89 -#: admin/fai/class_faiPartitionTable.inc:180 admin/fai/tabsHook.inc:32 -#: admin/fai/class_faiTemplate.inc:212 admin/fai/tabsProfile.inc:33 -#: admin/fai/class_faiManagement.inc:238 admin/fai/class_faiManagement.inc:614 -#: admin/fai/class_faiManagement.inc:620 admin/fai/class_faiManagement.inc:906 -#: admin/fai/class_faiManagement.inc:950 admin/fai/class_faiManagement.inc:974 +#: admin/fai/class_faiPartitionTable.inc:173 admin/fai/tabsHook.inc:32 +#: admin/fai/class_faiTemplate.inc:208 +#: admin/fai/class_faiDebconfConfigurations.inc:341 +#: admin/fai/tabsProfile.inc:33 admin/fai/class_faiManagement.inc:238 +#: admin/fai/class_faiManagement.inc:614 admin/fai/class_faiManagement.inc:620 +#: admin/fai/class_faiManagement.inc:906 admin/fai/class_faiManagement.inc:950 +#: admin/fai/class_faiManagement.inc:974 #: admin/fai/class_faiManagement.inc:1238 #: admin/fai/class_faiScriptEntry.inc:59 admin/fai/class_faiScriptEntry.inc:62 #: admin/fai/tabsScript.inc:33 admin/fai/tabsPackage.inc:33 -#: admin/fai/tabsPartition.inc:34 admin/fai/class_faiScript.inc:229 +#: admin/fai/tabsPartition.inc:34 admin/fai/class_faiScript.inc:224 #: admin/fai/tabsTemplate.inc:33 admin/fai/class_FAI.inc:548 -#: admin/fai/class_faiHook.inc:239 admin/fai/class_faiProfile.inc:259 +#: admin/fai/class_faiHook.inc:233 admin/fai/class_faiProfile.inc:263 #: admin/fai/class_faiHookEntry.inc:62 admin/fai/class_faiHookEntry.inc:65 -#: admin/fai/class_faiVariable.inc:142 admin/fai/class_faiPackage.inc:356 -#: admin/fai/tabsVariable.inc:33 +#: admin/fai/class_faiVariable.inc:142 admin/fai/class_faiPackage.inc:367 +#: admin/fai/class_faiPackage.inc:400 admin/fai/tabsVariable.inc:33 msgid "Error" msgstr "" @@ -57,12 +59,12 @@ msgstr "" #: admin/systems/services/repository/class_servRepository.inc:177 #: admin/fai/class_faiSummaryTab.inc:343 -#: admin/fai/class_faiPartitionTable.inc:371 -#: admin/fai/class_faiPartitionTable.inc:551 admin/fai/faiPackage.tpl:9 +#: admin/fai/class_faiPartitionTable.inc:364 +#: admin/fai/class_faiPartitionTable.inc:536 admin/fai/faiPackage.tpl:9 #: admin/fai/class_faiPartitionTableEntry.inc:375 #: admin/fai/class_faiPartitionTableEntry.inc:378 #: admin/fai/class_faiPartitionTableEntry.inc:474 -#: admin/fai/class_faiTemplate.inc:421 admin/fai/class_faiTemplate.inc:545 +#: admin/fai/class_faiTemplate.inc:417 admin/fai/class_faiTemplate.inc:537 #: admin/fai/faiVariable.tpl:9 admin/fai/class_askClassName.inc:142 #: admin/fai/class_askClassName.inc:151 admin/fai/class_askClassName.inc:155 #: admin/fai/class_faiManagement.inc:614 admin/fai/class_faiManagement.inc:620 @@ -70,29 +72,30 @@ msgstr "" #: admin/fai/class_faiScriptEntry.inc:142 #: admin/fai/class_faiScriptEntry.inc:145 #: admin/fai/class_faiScriptEntry.inc:189 admin/fai/faiVariableEntry.tpl:9 -#: admin/fai/faiScript.tpl:9 admin/fai/class_faiScript.inc:327 -#: admin/fai/class_faiScript.inc:483 admin/fai/class_faiScript.inc:646 +#: admin/fai/faiScript.tpl:9 admin/fai/class_faiScript.inc:322 +#: admin/fai/class_faiScript.inc:478 admin/fai/class_faiScript.inc:637 #: admin/fai/faiScriptEntry.tpl:9 admin/fai/class_faiTemplateEntry.inc:207 #: admin/fai/class_faiTemplateEntry.inc:273 admin/fai/faiTemplate.tpl:9 #: admin/fai/faiHookEntry.tpl:9 admin/fai/faiHook.tpl:9 -#: admin/fai/class_faiHook.inc:440 admin/fai/class_faiHook.inc:562 -#: admin/fai/class_faiProfile.inc:407 admin/fai/class_faiProfile.inc:417 -#: admin/fai/class_faiProfile.inc:491 admin/fai/class_faiHookEntry.inc:145 +#: admin/fai/class_faiHook.inc:434 admin/fai/class_faiHook.inc:552 +#: admin/fai/class_faiProfile.inc:413 admin/fai/class_faiProfile.inc:423 +#: admin/fai/class_faiProfile.inc:497 admin/fai/class_faiHookEntry.inc:145 #: admin/fai/class_faiHookEntry.inc:150 admin/fai/class_faiHookEntry.inc:153 #: admin/fai/class_faiHookEntry.inc:196 admin/fai/class_faiVariable.inc:296 -#: admin/fai/class_faiVariable.inc:398 admin/fai/class_faiVariableEntry.inc:90 +#: admin/fai/class_faiVariable.inc:397 admin/fai/class_faiVariableEntry.inc:90 #: admin/fai/class_faiVariableEntry.inc:99 #: admin/fai/class_faiVariableEntry.inc:102 -#: admin/fai/class_faiVariableEntry.inc:137 admin/fai/class_faiPackage.inc:541 -#: admin/fai/class_faiPackage.inc:667 admin/fai/faiPartitionTable.tpl:9 +#: admin/fai/class_faiVariableEntry.inc:137 admin/fai/class_faiPackage.inc:572 +#: admin/fai/class_faiPackage.inc:707 admin/fai/faiPartitionTable.tpl:9 #: admin/fai/faiPartitionTableEntry.tpl:6 admin/fai/faiProfile.tpl:9 msgid "Name" msgstr "" #: admin/systems/services/repository/class_servRepository.inc:352 +#: admin/fai/class_faiDebconfConfigurations.inc:71 #: admin/fai/class_faiManagement.inc:788 #: admin/fai/class_faiPackageConfiguration.inc:35 admin/fai/class_FAI.inc:566 -#: admin/fai/class_faiPackage.inc:266 admin/fai/class_faiPackage.inc:563 +#: admin/fai/class_faiPackage.inc:269 admin/fai/class_faiPackage.inc:594 #: admin/fai/class_faiPackageEntry.inc:53 #: admin/fai/class_faiPackageEntry.inc:193 msgid "Service infrastructure" @@ -135,7 +138,7 @@ msgstr "" #: admin/systems/services/repository/servRepositorySetup.tpl:19 #: admin/systems/services/repository/class_divListRepositories.inc:23 #: admin/fai/faiPackage.tpl:37 admin/fai/branch_selector.tpl:25 -#: admin/fai/class_faiPackage.inc:673 +#: admin/fai/class_faiPackage.inc:713 msgid "Release" msgstr "" @@ -160,8 +163,10 @@ msgstr "" msgid "Add repository" msgstr "" -#: admin/fai/faiPackageConfiguration.tpl:1 admin/fai/class_divListFai.inc:68 -#: admin/fai/class_faiPackage.inc:659 +#: admin/fai/faiPackageConfiguration.tpl:1 +#: admin/fai/class_faiDebconfConfigurations.inc:115 +#: admin/fai/NewDebconfConfiguration.tpl:16 admin/fai/class_divListFai.inc:68 +#: admin/fai/faiDebconfConfigurations.tpl:1 admin/fai/class_faiPackage.inc:699 msgid "Package" msgstr "" @@ -186,10 +191,10 @@ msgid "Templates" msgstr "" #: admin/fai/class_faiSummaryTab.inc:48 -#: admin/fai/class_faiPartitionTable.inc:543 +#: admin/fai/class_faiPartitionTable.inc:528 #: admin/fai/class_askClassName.inc:79 admin/fai/class_divListFai.inc:154 #: admin/fai/class_divListFai.inc:208 admin/fai/class_faiGroupHandle.inc:100 -#: admin/fai/class_faiProfileEntry.inc:143 admin/fai/class_faiProfile.inc:294 +#: admin/fai/class_faiProfileEntry.inc:143 admin/fai/class_faiProfile.inc:298 msgid "Partition table" msgstr "" @@ -245,41 +250,43 @@ msgstr "" #: admin/fai/class_faiSummaryTab.inc:348 #: admin/fai/class_faiPartitionTableEntry.inc:183 +#: admin/fai/class_faiDebconfConfigurations.inc:117 +#: admin/fai/NewDebconfConfiguration.tpl:22 msgid "Type" msgstr "" -#: admin/fai/class_faiPartitionTable.inc:301 -#: admin/fai/class_faiPartitionTable.inc:307 +#: admin/fai/class_faiPartitionTable.inc:294 +#: admin/fai/class_faiPartitionTable.inc:300 #, php-format msgid "%s partition" msgstr "" -#: admin/fai/class_faiPartitionTable.inc:303 -#: admin/fai/class_faiPartitionTable.inc:309 +#: admin/fai/class_faiPartitionTable.inc:296 +#: admin/fai/class_faiPartitionTable.inc:302 #, php-format msgid "%s partition(s)" msgstr "" -#: admin/fai/class_faiPartitionTable.inc:544 +#: admin/fai/class_faiPartitionTable.inc:529 msgid "FAI partition table" msgstr "" -#: admin/fai/class_faiPartitionTable.inc:551 admin/fai/class_faiHook.inc:562 -#: admin/fai/class_faiVariable.inc:398 +#: admin/fai/class_faiPartitionTable.inc:536 admin/fai/class_faiHook.inc:552 +#: admin/fai/class_faiVariable.inc:397 msgid "Read only" msgstr "" -#: admin/fai/class_faiPartitionTable.inc:552 admin/fai/faiPackage.tpl:21 +#: admin/fai/class_faiPartitionTable.inc:537 admin/fai/faiPackage.tpl:21 #: admin/fai/class_faiPartitionTableEntry.inc:475 -#: admin/fai/class_faiTemplate.inc:546 admin/fai/faiVariable.tpl:21 +#: admin/fai/class_faiTemplate.inc:538 admin/fai/faiVariable.tpl:21 #: admin/fai/class_faiScriptEntry.inc:190 admin/fai/faiVariableEntry.tpl:19 #: admin/fai/faiScript.tpl:21 admin/fai/faiTemplateEntry.tpl:33 -#: admin/fai/class_faiScript.inc:647 admin/fai/faiScriptEntry.tpl:19 +#: admin/fai/class_faiScript.inc:638 admin/fai/faiScriptEntry.tpl:19 #: admin/fai/class_faiTemplateEntry.inc:274 admin/fai/faiTemplate.tpl:21 #: admin/fai/faiHookEntry.tpl:19 admin/fai/faiHook.tpl:21 -#: admin/fai/class_faiHook.inc:563 admin/fai/class_faiProfile.inc:492 -#: admin/fai/class_faiHookEntry.inc:197 admin/fai/class_faiVariable.inc:399 -#: admin/fai/class_faiVariableEntry.inc:138 admin/fai/class_faiPackage.inc:668 +#: admin/fai/class_faiHook.inc:553 admin/fai/class_faiProfile.inc:498 +#: admin/fai/class_faiHookEntry.inc:197 admin/fai/class_faiVariable.inc:398 +#: admin/fai/class_faiVariableEntry.inc:138 admin/fai/class_faiPackage.inc:708 #: admin/fai/faiPartitionTable.tpl:21 admin/fai/faiPartitionTableEntry.tpl:13 #: admin/fai/faiProfile.tpl:21 msgid "Description" @@ -342,7 +349,7 @@ msgstr "" msgid "Generic" msgstr "" -#: admin/fai/faiPackage.tpl:45 admin/fai/class_faiPackage.inc:670 +#: admin/fai/faiPackage.tpl:45 admin/fai/class_faiPackage.inc:710 msgid "Section" msgstr "" @@ -358,10 +365,14 @@ msgstr "" msgid "Used packages" msgstr "" -#: admin/fai/faiPackage.tpl:82 +#: admin/fai/faiPackage.tpl:84 msgid "Add from list" msgstr "" +#: admin/fai/faiPackage.tpl:91 +msgid "Edit package configurations" +msgstr "" + #: admin/fai/class_faiPartitionTableEntry.inc:176 msgid "primary" msgstr "" @@ -487,31 +498,31 @@ msgstr "" msgid "Moving the tree failed. Destination tree is subtree of source tree." msgstr "" -#: admin/fai/class_faiTemplate.inc:286 admin/fai/class_faiTemplate.inc:288 -#: admin/fai/class_faiScript.inc:344 admin/fai/class_faiScript.inc:346 +#: admin/fai/class_faiTemplate.inc:282 admin/fai/class_faiTemplate.inc:284 +#: admin/fai/class_faiScript.inc:339 admin/fai/class_faiScript.inc:341 msgid "edit" msgstr "" -#: admin/fai/class_faiTemplate.inc:290 admin/fai/class_faiScript.inc:348 +#: admin/fai/class_faiTemplate.inc:286 admin/fai/class_faiScript.inc:343 msgid "delete" msgstr "" -#: admin/fai/class_faiTemplate.inc:300 admin/fai/class_faiScriptEntry.inc:88 -#: admin/fai/class_faiScript.inc:330 admin/fai/class_faiScript.inc:358 -#: admin/fai/class_faiHook.inc:326 admin/fai/class_faiHookEntry.inc:80 +#: admin/fai/class_faiTemplate.inc:296 admin/fai/class_faiScriptEntry.inc:88 +#: admin/fai/class_faiScript.inc:325 admin/fai/class_faiScript.inc:353 +#: admin/fai/class_faiHook.inc:320 admin/fai/class_faiHookEntry.inc:80 msgid "Download" msgstr "" -#: admin/fai/class_faiTemplate.inc:537 +#: admin/fai/class_faiTemplate.inc:529 msgid "Template" msgstr "" -#: admin/fai/class_faiTemplate.inc:538 +#: admin/fai/class_faiTemplate.inc:530 msgid "FAI template" msgstr "" -#: admin/fai/class_faiTemplate.inc:545 admin/fai/class_faiScript.inc:646 -#: admin/fai/class_faiPackage.inc:670 admin/fai/class_faiPackage.inc:673 +#: admin/fai/class_faiTemplate.inc:537 admin/fai/class_faiScript.inc:637 +#: admin/fai/class_faiPackage.inc:710 admin/fai/class_faiPackage.inc:713 msgid "Readonly" msgstr "" @@ -575,11 +586,46 @@ msgstr "" msgid "Choose a variable to delete or edit" msgstr "" -#: admin/fai/faiVariable.tpl:53 admin/fai/class_faiHook.inc:312 -#: admin/fai/class_faiHook.inc:314 admin/fai/faiPartitionTable.tpl:54 +#: admin/fai/faiVariable.tpl:53 +#: admin/fai/class_faiDebconfConfigurations.inc:127 +#: admin/fai/class_faiHook.inc:306 admin/fai/class_faiHook.inc:308 +#: admin/fai/faiPartitionTable.tpl:54 msgid "Edit" msgstr "" +#: admin/fai/class_faiDebconfConfigurations.inc:116 +#: admin/fai/NewDebconfConfiguration.tpl:19 admin/fai/class_divListFai.inc:60 +#: admin/fai/class_divListFai.inc:66 admin/fai/class_faiVariable.inc:389 +msgid "Variable" +msgstr "" + +#: admin/fai/class_faiDebconfConfigurations.inc:118 +#: admin/fai/NewDebconfConfiguration.tpl:25 +#: admin/fai/NewDebconfConfiguration.tpl:43 +msgid "Value" +msgstr "" + +#: admin/fai/class_faiDebconfConfigurations.inc:123 +msgid "Reset" +msgstr "" + +#: admin/fai/class_faiDebconfConfigurations.inc:125 +#: admin/fai/class_faiHook.inc:310 +msgid "Delete" +msgstr "" + +#: admin/fai/class_faiDebconfConfigurations.inc:218 +#, php-format +msgid "Debconf information for package list '%s'" +msgstr "" + +#: admin/fai/class_faiDebconfConfigurations.inc:400 +#, php-format +msgid "" +"The specified value '%s' for variable '%s' is not valid with the specified " +"boolean variable type.
Allowed values: true, false, 1, 0." +msgstr "" + #: admin/fai/class_askClassName.inc:79 admin/fai/class_askClassName.inc:80 #: admin/fai/class_askClassName.inc:81 admin/fai/class_askClassName.inc:82 #: admin/fai/class_askClassName.inc:83 admin/fai/class_askClassName.inc:84 @@ -588,33 +634,33 @@ msgid "Create new FAI object" msgstr "" #: admin/fai/class_askClassName.inc:80 admin/fai/class_faiProfileEntry.inc:142 -#: admin/fai/class_faiProfile.inc:293 +#: admin/fai/class_faiProfile.inc:297 msgid "Package bundle" msgstr "" #: admin/fai/class_askClassName.inc:81 admin/fai/class_faiProfileEntry.inc:140 -#: admin/fai/class_faiProfile.inc:291 +#: admin/fai/class_faiProfile.inc:295 msgid "Script bundle" msgstr "" #: admin/fai/class_askClassName.inc:82 admin/fai/class_faiProfileEntry.inc:141 -#: admin/fai/class_faiProfile.inc:292 +#: admin/fai/class_faiProfile.inc:296 msgid "Variable bundle" msgstr "" #: admin/fai/class_askClassName.inc:83 admin/fai/class_faiProfileEntry.inc:138 -#: admin/fai/class_faiProfile.inc:289 +#: admin/fai/class_faiProfile.inc:293 msgid "Hook bundle" msgstr "" #: admin/fai/class_askClassName.inc:84 admin/fai/class_divListFai.inc:58 #: admin/fai/class_divListFai.inc:149 admin/fai/class_divListFai.inc:218 -#: admin/fai/class_faiGroupHandle.inc:110 admin/fai/class_faiProfile.inc:483 +#: admin/fai/class_faiGroupHandle.inc:110 admin/fai/class_faiProfile.inc:489 msgid "Profile" msgstr "" #: admin/fai/class_askClassName.inc:85 admin/fai/class_faiProfileEntry.inc:139 -#: admin/fai/class_faiProfile.inc:290 +#: admin/fai/class_faiProfile.inc:294 msgid "Template bundle" msgstr "" @@ -659,6 +705,22 @@ msgid "" "currently edited package list." msgstr "" +#: admin/fai/NewDebconfConfiguration.tpl:2 +msgid "New debconf configuration" +msgstr "" + +#: admin/fai/NewDebconfConfiguration.tpl:6 +msgid "In this dialog you can add a new debconf configuration." +msgstr "" + +#: admin/fai/NewDebconfConfiguration.tpl:30 +msgid "Select package" +msgstr "" + +#: admin/fai/NewDebconfConfiguration.tpl:38 +msgid "Select type" +msgstr "" + #: admin/fai/faiSummary.tpl:4 msgid "FAI object tree" msgstr "" @@ -783,7 +845,7 @@ msgid "file is empty" msgstr "" #: admin/fai/class_faiScriptEntry.inc:150 admin/fai/class_divListFai.inc:62 -#: admin/fai/class_faiScript.inc:638 admin/fai/faiScriptEntry.tpl:56 +#: admin/fai/class_faiScript.inc:629 admin/fai/faiScriptEntry.tpl:56 #: admin/fai/faiHookEntry.tpl:56 admin/fai/class_faiHookEntry.inc:158 msgid "Script" msgstr "" @@ -883,11 +945,6 @@ msgstr "" msgid "Show profiles" msgstr "" -#: admin/fai/class_divListFai.inc:60 admin/fai/class_divListFai.inc:66 -#: admin/fai/class_faiVariable.inc:390 -msgid "Variable" -msgstr "" - #: admin/fai/class_divListFai.inc:60 msgid "Show templates" msgstr "" @@ -896,7 +953,7 @@ msgstr "" msgid "Show scripts" msgstr "" -#: admin/fai/class_divListFai.inc:64 admin/fai/class_faiHook.inc:554 +#: admin/fai/class_divListFai.inc:64 admin/fai/class_faiHook.inc:544 msgid "Hook" msgstr "" @@ -1030,11 +1087,11 @@ msgstr "" msgid "List of scripts" msgstr "" -#: admin/fai/class_debconfTemplate.inc:210 +#: admin/fai/class_debconfTemplate.inc:213 msgid "This package has no debconf options." msgstr "" -#: admin/fai/class_debconfTemplate.inc:247 +#: admin/fai/class_debconfTemplate.inc:250 msgid "" "This debconf question is dynamically generated during package installation " "and requires choosing between specific options which cannot be presented " @@ -1126,19 +1183,19 @@ msgstr "" msgid "sticky" msgstr "" -#: admin/fai/class_faiScript.inc:314 admin/fai/class_faiScript.inc:316 +#: admin/fai/class_faiScript.inc:309 admin/fai/class_faiScript.inc:311 msgid "Sort direction" msgstr "" -#: admin/fai/class_faiScript.inc:328 admin/fai/faiScriptEntry.tpl:38 +#: admin/fai/class_faiScript.inc:323 admin/fai/faiScriptEntry.tpl:38 msgid "Priority" msgstr "" -#: admin/fai/class_faiScript.inc:332 +#: admin/fai/class_faiScript.inc:327 msgid "Action" msgstr "" -#: admin/fai/class_faiScript.inc:639 admin/fai/class_faiHookEntry.inc:199 +#: admin/fai/class_faiScript.inc:630 admin/fai/class_faiHookEntry.inc:199 msgid "FAI script" msgstr "" @@ -1202,10 +1259,21 @@ msgstr "" msgid "Debconf information for package '%s'" msgstr "" +#: admin/fai/faiDebconfConfigurations.tpl:4 +msgid "Add" +msgstr "" + #: admin/fai/class_faiGroupHandle.inc:116 msgid "OPSI local product" msgstr "" +#: admin/fai/class_NewDebconfConfiguration.inc:122 +#, php-format +msgid "" +"The specified value '%s' for the variable type boolean is invalid." +"
Allowed values: true, false, 1, 0." +msgstr "" + #: admin/fai/faiHookEntry.tpl:33 admin/fai/faiHookEntry.tpl:54 msgid "Hook attributes" msgstr "" @@ -1289,39 +1357,35 @@ msgstr "" msgid "FAI settings" msgstr "" -#: admin/fai/class_faiProfileEntry.inc:172 admin/fai/class_faiProfile.inc:286 +#: admin/fai/class_faiProfileEntry.inc:172 admin/fai/class_faiProfile.inc:290 msgid "This list displays all assigned class names for this profile." msgstr "" -#: admin/fai/class_faiHook.inc:316 -msgid "Delete" -msgstr "" - -#: admin/fai/class_faiHook.inc:555 +#: admin/fai/class_faiHook.inc:545 msgid "FAI hook" msgstr "" -#: admin/fai/class_faiProfile.inc:297 +#: admin/fai/class_faiProfile.inc:301 msgid "Remove class from profile" msgstr "" -#: admin/fai/class_faiProfile.inc:300 +#: admin/fai/class_faiProfile.inc:304 msgid "Up" msgstr "" -#: admin/fai/class_faiProfile.inc:301 +#: admin/fai/class_faiProfile.inc:305 msgid "Down" msgstr "" -#: admin/fai/class_faiProfile.inc:403 +#: admin/fai/class_faiProfile.inc:409 msgid "No class specified for this profile!" msgstr "" -#: admin/fai/class_faiProfile.inc:484 +#: admin/fai/class_faiProfile.inc:490 msgid "FAI profile" msgstr "" -#: admin/fai/class_faiProfile.inc:493 admin/fai/faiProfile.tpl:36 +#: admin/fai/class_faiProfile.inc:499 admin/fai/faiProfile.tpl:36 msgid "FAI classes" msgstr "" @@ -1333,7 +1397,7 @@ msgstr "" msgid "FAI hook entry" msgstr "" -#: admin/fai/class_faiVariable.inc:391 +#: admin/fai/class_faiVariable.inc:390 msgid "FAI variable" msgstr "" @@ -1349,57 +1413,57 @@ msgstr "" msgid "FAI variable entry " msgstr "" -#: admin/fai/class_faiPackage.inc:228 +#: admin/fai/class_faiPackage.inc:232 msgid "Invalid package names" msgstr "" -#: admin/fai/class_faiPackage.inc:229 +#: admin/fai/class_faiPackage.inc:233 #, php-format msgid "The following package names don't match the Debian policy: %s" msgstr "" -#: admin/fai/class_faiPackage.inc:413 admin/fai/class_faiPackage.inc:414 +#: admin/fai/class_faiPackage.inc:444 admin/fai/class_faiPackage.inc:445 msgid "Configured" msgstr "" -#: admin/fai/class_faiPackage.inc:420 admin/fai/class_faiPackage.inc:421 +#: admin/fai/class_faiPackage.inc:451 admin/fai/class_faiPackage.inc:452 msgid "Package marked for removal" msgstr "" -#: admin/fai/class_faiPackage.inc:437 +#: admin/fai/class_faiPackage.inc:468 msgid "Mark package for removal" msgstr "" -#: admin/fai/class_faiPackage.inc:443 +#: admin/fai/class_faiPackage.inc:474 msgid "Configure this package" msgstr "" -#: admin/fai/class_faiPackage.inc:447 +#: admin/fai/class_faiPackage.inc:478 msgid "Remove this package" msgstr "" -#: admin/fai/class_faiPackage.inc:527 +#: admin/fai/class_faiPackage.inc:558 msgid "Please select a least one package!" msgstr "" -#: admin/fai/class_faiPackage.inc:531 +#: admin/fai/class_faiPackage.inc:562 msgid "" "Please choose a valid release/section combination for your repository setup!" msgstr "" -#: admin/fai/class_faiPackage.inc:660 +#: admin/fai/class_faiPackage.inc:700 msgid "FAI Package list" msgstr "" -#: admin/fai/class_faiPackage.inc:669 +#: admin/fai/class_faiPackage.inc:709 msgid "Packages" msgstr "" -#: admin/fai/class_faiPackage.inc:671 +#: admin/fai/class_faiPackage.inc:711 msgid "Install Method" msgstr "" -#: admin/fai/class_faiPackage.inc:672 +#: admin/fai/class_faiPackage.inc:712 msgid "Package configuration" msgstr "" -- 2.30.2