summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 4ff0d6f)
raw | patch | inline | side by side (parent: 4ff0d6f)
author | psc <psc@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 16 Mar 2010 10:28:57 +0000 (10:28 +0000) | ||
committer | psc <psc@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 16 Mar 2010 10:28:57 +0000 (10:28 +0000) |
- 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
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
diff --git a/trunk/gosa-plugins/fai/admin/fai/NewDebconfConfiguration.tpl b/trunk/gosa-plugins/fai/admin/fai/NewDebconfConfiguration.tpl
--- /dev/null
@@ -0,0 +1,63 @@
+<div style="font-size: 18px;">
+{t}New debconf configuration{/t}
+</div>
+<br>
+<p class="seperator">
+{t}In this dialog you can add a new debconf configuration.{/t}
+<br>
+<br>
+<br>
+<table summary="" style='width:100%'>
+ <tr>
+ <td style='width:49%'>
+ <table summary="">
+ <tr>
+ <td>
+ <b>{t}Package{/t}</b>
+ </td>
+ <td>
+ <b>{t}Variable{/t}</b>
+ </td>
+ <td>
+ <b>{t}Type{/t}</b>
+ </td>
+ <td>
+ <b>{t}Value{/t}</b>
+ </td>
+ </tr>
+ <tr>
+ <td style="width:180px";>
+ <select name="Package" title="{t}Select package{/t}" style="width:150px;">
+ {html_options options=$packages selected=$package}
+ </select>
+ </td>
+ <td style="width: 300px;">
+ <input type="text" style="width:280px" name="FAIvariable" value="{$variable}">
+ </td>
+ <td style="width: 120px;">
+ <select name="FAIvariableType" title="{t}Select type{/t}" style="width: 100px;">
+ {html_options options=$variable_types selected=$variable_type}
+ </select>
+ </td>
+ <td style="width:300px;">
+ <input type="text" name="FAIvariableContent" title="{t}Value{/t}" value="{$content}" style="width:280px;">
+ </td>
+ </tr>
+ </table>
+ <br>
+ <br>
+ </td>
+ </tr>
+</table>
+</table>
+<br>
+<div align="right">
+ <input type="submit" name="save_AddDebconf" value="{msgPool type=applyButton}">
+ <input type="submit" name="cancel_AddDeconf" value="{msgPool type=cancelButton}">
+</div>
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+ <!--
+ focus_field('SelectedPackage');
+ -->
+</script>
diff --git a/trunk/gosa-plugins/fai/admin/fai/class_NewDebconfConfiguration.inc b/trunk/gosa-plugins/fai/admin/fai/class_NewDebconfConfiguration.inc
--- /dev/null
@@ -0,0 +1,149 @@
+<?php
+
+class NewDebconfConfiguration extends plugin
+{
+ /* attribute list for save action */
+ var $ignore_account = TRUE;
+ var $attributes = array();
+ var $objectclasses = array("whatever");
+
+ var $objectClass = false;
+ var $DebconfConfiguration = array();
+ var $packages = array();
+ var $variable_types = array(
+ "boolean" => "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.<br><i>Allowed values: true, false, 1, 0.</i>"), $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 2e9fca6b30ed59dea9958207e5274ef074f77d56..56dadcb21f6d77c96aeba49c5c61ea7e08a8032d 100644 (file)
/* 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']);
}
}
}
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.", ";
}
foreach(array("true","false") as $value){
if($data['Default'] == $value){
- $result.="<input type='radio' name='".$data['post_name']."' value='".$value."' checked>"._($value);
+ $result.="<input type='radio' name='".$data['post_name']."' value=\"".$value."\" checked>"._($value);
}else{
- $result.="<input type='radio' name='".$data['post_name']."' value='".$value."' >"._($value);
+ $result.="<input type='radio' name='".$data['post_name']."' value=\"".$value."\" >"._($value);
}
$result.="<br>";
}
$defs = split(", ",$data['Default']);
foreach($choices as $value){
if(in_array($value,$defs)){
- $result.="\n<input name='".$post_name."-multi-".$value."' type='checkbox' value='".htmlentities($value)."' checked>".$value."<br>";
+ $result.="\n<input name='".$post_name."-multi-".$value."' type='checkbox' value=\"".htmlentities($value)."\" checked>".$value."<br>";
}else{
- $result.="\n<input name='".$post_name."-multi-".$value."' type='checkbox' value='".htmlentities($value)."'>".$value."<br>";
+ $result.="\n<input name='".$post_name."-multi-".$value."' type='checkbox' value=\"".htmlentities($value)."\">".$value."<br>";
}
}
{
$result= "";
$result.= "<tr><td valign='top'>";
- $result.= "<h2>".$data['Topic']."</h2>".$data['Description']."</td><td style=\"white-space:nowrap; border-left: 1px solid rgb(160, 160, 160);\"> <input type='text' name='".$data['post_name']."' value='".$data['Default']."'></b><br><br>";
+ $result.= "<h2>".$data['Topic']."</h2>".$data['Description']."</td><td style=\"white-space:nowrap; border-left: 1px solid rgb(160, 160, 160);\"> <input type='text' name='".$data['post_name']."' value=\"".$data['Default']."\"></b><br><br>";
$result.= $data['Description'];
$result.= "</td>";
foreach($choices as $value){
if($data['Default'] == $value){
- $result.="\n<input type='radio' name='".$post_name."' value='".htmlentities($value)."' checked >".htmlentities($value)."<br>";
+ $result.="\n<input type='radio' name='".$post_name."' value=\"".htmlentities($value)."\" checked >".htmlentities($value)."<br>";
}else{
- $result.="\n<input type='radio' name='".$post_name."' value='".htmlentities($value)."'>".htmlentities($value)."<br>";
+ $result.="\n<input type='radio' name='".$post_name."' value=\"".htmlentities($value)."\">".htmlentities($value)."<br>";
}
}
<h2>".$data['Topic']."</h2>".$data['Description']."
</td>
<td style=\"white-space:nowrap; border-left: 1px solid rgb(160, 160, 160);\" valign='top'>
- <input type='text' name='".$data['post_name']."' value='".$data['Default']."' style='width:300px;'>
+ <input type='text' name='".$data['post_name']."' value=\"".$data['Default']."\" style='width:300px;'>
</td>
</tr>
";
diff --git a/trunk/gosa-plugins/fai/admin/fai/class_faiDebconfConfigurations.inc b/trunk/gosa-plugins/fai/admin/fai/class_faiDebconfConfigurations.inc
--- /dev/null
@@ -0,0 +1,456 @@
+<?php
+
+class faiDebconfConfigurations extends plugin
+{
+ /* attribute list for save action */
+ var $ignore_account = TRUE;
+ var $attributes = array();
+ var $objectclasses = array();
+ var $FAIstate = "";
+ var $DebconfConfigurations = array();
+ var $DebconfDefaults = array();
+ var $DebconfAll = array();
+ var $to_remove = array();
+ var $removed = array();
+ var $package_list = FALSE;
+ var $parent = FALSE;
+ var $packages = array();
+
+ /* Some settings */
+ var $query_gosa_si = TRUE;
+ var $merge_defaults_into_view = TRUE;
+ var $bool_mapping = array(
+ "0" => '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" => "<b>" . _("Package") . "</b>");
+ $field2 = array ("string" => "<b>" . _("Variable") . "</b>");
+ $field3 = array ("string" => "<b>" . _("Type"). "</b>");
+ $field4 = array ("string" => "<b>" . _("Value") . "</b>");
+ $field5 = array ("string" => "");
+ $divlist->AddEntry(array($field1,$field2,$field3,$field4,$field5));
+
+ /* Define some vars we will need in the following loop */
+ $str_reset = "<input type='image' title='"._("Reset")."'
+ src='images/lists/reload.png' name='reset_%s'> ";
+ $str_delete = "<input type='image' title='"._("Delete")."'
+ src='images/lists/trash.png' name='reset_%s'> ";
+ $str_edit = "<input type='image' title='"._("Edit")."'
+ src='images/lists/edit.png' name='edit_%s'> ";
+ $str_input = "<input type=text length=100 value=\"%s\" name='val_%s' %s>";
+
+ /* 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 .= "<img src='images/empty.png' width=18>";
+ } 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.<br><i>Allowed values: true, false, 1, 0.</i>"), $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 e877dfd1515aa858d6ff25f08f8b8245762da3ec..f801ece82281382189d3ebc78f5e0efd5ef0ce86 100644 (file)
var $sub64coded = array();
var $ConfiguredPackages = array();
+ var $ConfigurationsToRemove = array();
/* Specific attributes */
var $cn = ""; // The class name for this object
"pending", "dpkgc" );
var $direct_packages_add = FALSE;
-
+ var $configure_dialog_shown = FALSE;
function faiPackage (&$config, $dn= NULL)
{
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 */
}
$this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp;
}
+ else {
+ $tmp['Value'] = "";
+ $this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp;
+ }
}
$this->FAIdebianSection = array();
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()){
}
}
+ 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") &&
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;
}
}
/* 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 */
/* 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)){
/* Save Package configurations */
foreach($this->ConfiguredPackages as $pkgname => $attrs){
foreach($attrs as $name => $attr){
-
$pkgattrs = array();
foreach($attr as $n=>$v){
$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);
}
}
}
+
+ /* 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);
+ }
+ }
}
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 ab437c3bc3254caff06dc610194527eb1a9f1a74..d0e0df3c5784811acb347ea53e0e17e16f8db68e 100644 (file)
$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
--- /dev/null
@@ -0,0 +1,13 @@
+<h1><img class="center" alt="" src="images/forward.png" align="middle" title="{t}Package{/t}"> {$headline}</h1>
+{$divlist}
+<div align="left" valign="bottom" style="align:left;">
+ <input name="NewDebconfEntry" value="{t}Add{/t}" type="submit">
+</div>
+</table>
+<br>
+<input type="hidden" name="update_values" value="1">
+<div align="right" valign="bottom" style="align:right;">
+ <input name="SaveDebconfConfig" value="{msgPool type=applyButton}" type="submit">
+ <input name="CancelSubObject" value="{msgPool type=cancelButton}" type="submit">
+</div>
+<table style="visibility: hidden;">
diff --git a/trunk/gosa-plugins/fai/admin/fai/faiPackage.tpl b/trunk/gosa-plugins/fai/admin/fai/faiPackage.tpl
index 3afc580c78468877fde48400e051bb3236e4cff6..870ae6ea999e2e753ce128320b341fe322abddaf 100644 (file)
<p class="seperator"> </p>
<table width="99%" summary="">
<tr>
- <td>
+ <td colspan="2">
<h2><img class="center" alt="" src="plugins/fai/images/fai_packages.png" align="middle" title="{t}Used packages{/t}"> {t}Used packages{/t}</h2>
{$divlist}
</td>
</tr>
+</table>
+<table width="99%" summary="">
{render acl=$FAIpackageACL}
<tr>
- <td>
+ <td style="width:600px;">
{if $direct_packages_add}
<input type="text" size="25" name="addPpkgsText" value="" />
<input type="submit" name="AddManualpkg" value="{msgPool type=addButton}" />
<input type="submit" name="Addpkg" value="{msgPool type=addButton}">
{/if}
</td>
+ <td style="text-align: right;">
+ <!-- ToDo: ACL? --!>
+ <input type="submit" name="EditConfigurations" value="{t}Edit package configurations{/t}">
+ </td>
</tr>
{/render}
</table>
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 3ebe8cdf826ea0258e11e03dc2169e7627c63369..aa070ab393e829c55f6938d7e771742c37ccc7ea 100644 (file)
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 <pollmeier@gonicus.de>\n"
"Language-Team: deutsch <de@li.org>\n"
#: 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"
#: 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
#: 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"
#: 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"
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"
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"
#: 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"
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"
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"
"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"
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.<br><i>Allowed values: true, false, 1, 0.</i>"
+msgstr "Der angegebene Wert '%s' in der Variable '%s' ist mit dem angegebenen "
+"Variablen-Typ boolean nicht zulässig.<br><i>Erlaubte Werte: true, false, 1, 0.</i>"
+
#: 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
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"
"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"
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"
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"
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"
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 "
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"
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."
+"<br><i>Allowed values: true, false, 1, 0.</i>"
+msgstr "Der angegebene Wert '%s' für den Variablen-Typ Boolean ist unzulässig."
+"<br><i>Erlaubte Werte: true, false, 1, 0.</i>"
+
#: admin/fai/faiHookEntry.tpl:33 admin/fai/faiHookEntry.tpl:54
msgid "Hook attributes"
msgstr "Hook-Attribute"
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"
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"
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"
index b158485e678be4872a30a6f471e37b9708c870b7..009b5154efd8287c44d327557d141bef36c4114d 100644 (file)
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: 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 ""
#: 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
#: 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"
#: 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 ""
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 ""
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 ""
#: 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"
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 ""
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 ""
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 ""
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.<br><i>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
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 ""
"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 ""
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 ""
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 ""
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 ""
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 "
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 ""
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."
+"<br><i>Allowed values: true, false, 1, 0."
+msgstr ""
+
#: admin/fai/faiHookEntry.tpl:33 admin/fai/faiHookEntry.tpl:54
msgid "Hook attributes"
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 ""
msgid "FAI hook entry"
msgstr ""
-#: admin/fai/class_faiVariable.inc:391
+#: admin/fai/class_faiVariable.inc:390
msgid "FAI variable"
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 ""