{
local @hosts = &list_software_hosts();
local @servers = &list_servers();
-if ($_[0]) {
- print "<tr> <td><b>$_[0]</b></td>\n";
- print "<td>\n";
- }
-print "<select name=server>\n";
-print "<option value=-1>$text{'edit_all'}\n";
-print "<option value=-2>$text{'edit_donthave'}\n" if (!$_[1]);
-print "<option value=-3>$text{'edit_have'}\n" if (!$_[2]);
+local @opts;
+push(@opts, [ -1, $text{'edit_all'} ]);
+push(@opts, [ -2, $text{'edit_donthave'} ]) if (!$_[1]);
+push(@opts, [ -3, $text{'edit_have'} ]) if (!$_[2]);
local @groups = &servers::list_all_groups(\@servers);
local $h;
foreach $h (@hosts) {
local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers;
if ($s) {
- print "<option value='$s->{'id'}'>",
- $s->{'desc'} || $s->{'realhost'} || $s->{'host'},"\n";
+ push(@opts, [ $s->{'id'},
+ $s->{'desc'} || $s->{'realhost'} || $s->{'host'} ]);
$gothost{$s->{'host'}}++;
}
}
foreach $m (@{$g->{'members'}}) {
($found++, last) if ($gothost{$m});
}
- print "<option value='group_$g->{'name'}'>",
- &text('edit_group', $g->{'name'}),"\n" if ($found);
+ push(@opts, [ "group_$g->{'name'}",
+ &text('edit_group', $g->{'name'}) ]) if ($found);
}
-print "</select>\n";
+local $sel = &ui_select("server", undef, \@opts);
if ($_[0]) {
- print "</td> </tr>\n";
+ print &ui_table_row($_[0], $sel);
+ }
+else {
+ print $sel;
}
}
print "<td align=right><form action=refresh.cgi>\n";
print "<input type=submit value=\"$text{'index_refresh'}\">\n";
- print &create_on_input(undef, 1, 1);
+ &create_on_input(undef, 1, 1);
print "</form></td> </tr></table>\n";
# Display cross-cluster install form
print &ui_form_start("install_pack.cgi?id=$upid", "form-data", undef,
&read_parse_mime_javascript($upid, [ "upload" ])),"\n";
- print &ui_oneradio("source", 0, $text{'index_local'}, 1),"\n",
- &ui_textbox("local", undef, 50),"\n",
- &file_chooser_button("local", 0, 2),"<br>\n";
-
- print &ui_oneradio("source", 1, $text{'index_uploaded'}, 0),"\n",
- &ui_upload("upload", 20),"<br>\n";
-
- print &ui_oneradio("source", 2, $text{'index_ftp'}, 0),"\n",
- &ui_textbox("url", undef, 50),"<br>",
- " " x 5,&ui_checkbox("down", 1, $text{'index_down'}, 0),
- "<br>\n";
-
- # Show option for APT or YUM
+ @opts = ( );
+ push(@opts, [ 0, $text{'index_local'},
+ &ui_textbox("local", undef, 50)."\n".
+ &file_chooser_button("local", 0, 2) ]);
+ push(@opts, [ 1, $text{'index_uploaded'},
+ &ui_upload("upload", 50) ]);
+ push(@opts, [ 2, $text{'index_ftp'},
+ &ui_textbox("url", undef, 50)."<br>\n".
+ &ui_checkbox("down", 1, $text{'index_down'}, 0) ]);
if ($software::has_update_system) {
- print &ui_oneradio("source", 3,
- $software::text{$software::update_system.'_input'}, 0),
- "\n",&ui_textbox("update", undef, 30),"\n",
+ push(@opts, [ 3,
+ $software::text{$software::update_system.'_input'},
+ &ui_textbox("update", undef, 30)."\n".
&software::update_system_button("update",
- $software::text{$software::update_system.'_find'});
- print "<br>\n";
+ $software::text{$software::update_system.'_find'})
+ ]);
}
-
+ print &ui_radio_table("source", 0, \@opts);
print &ui_submit($text{'index_installok'}),"\n";
print &ui_form_end();
}
}
}
-print "<form action=do_install.cgi>\n";
-print "<input type=hidden name=file value=\"$pfile\">\n";
-print "<input type=hidden name=unknownfile value=\"$unknownfile\">\n";
-print "<input type=hidden name=need_unlink value=\"$need_unlink\">\n";
-print "<input type=hidden name=source value='$in{'source'}'>\n";
-print "<input type=hidden name=ssl value='$ssl'>\n";
-print "<input type=hidden name=host value='$host'>\n";
-print "<input type=hidden name=page value='$page'>\n";
-print "<input type=hidden name=port value='$port'>\n";
-print "<input type=hidden name=ftpfile value='$file'>\n";
-print "<input type=hidden name=down value='$in{'down'}'>\n";
-print "<table border>\n";
-print "<tr $tb> <td><b>$text{'install_header'}</b></td> </tr>\n";
-print "<tr $cb> <td><table>\n";
-print "<tr> <td valign=top><b>$text{'install_packs'}</b></td>\n";
-print $software::wide_install_options ? "<td colspan=3>\n" : "<td>\n";
+# Show install form
+print &ui_form_start("do_install.cgi");
+print &ui_hidden("file", $pfile);
+print &ui_hidden("unknownfile", $unknownfile);
+print &ui_hidden("need_unlink", $need_unlink);
+print &ui_hidden("source", $in{'source'});
+print &ui_hidden("ssl", $ssl);
+print &ui_hidden("host", $host);
+print &ui_hidden("page", $page);
+print &ui_hidden("port", $port);
+print &ui_hidden("ftpfile", $file);
+print &ui_hidden("down", $in{'down'});
+print &ui_table_start($text{'install_header'}, undef, 4);
+
+# Packages to install
+$plist = "";
foreach (@rv) {
($p, $d) = split(/\s+/, $_, 2);
if ($d) {
- print "$d ($p)<br>\n";
+ $plist .= &html_escape($d)," (",&html_escape($p),")<br>\n";
}
else {
- print "$p<br>\n";
+ $plist .= &html_escape($p),"<br>\n";
}
- push(@pn, $p);
}
-print "</td> </tr>\n";
+print &ui_table_row($text{'install_packs'}, $plist, 3);
+
+# Type-specific options
if ($in{'source'} != 3 && !@anydiff) {
- # Options are only shown when all systems use the same package type
- &foreign_call("software", "install_options", $pfile, $p);
+ &software::install_options($pfile, $p);
}
# Show input for hosts to install on
&create_on_input($text{'install_servers'},
$in{'source'} == 3, $in{'source'} == 3);
-print "</table></td></tr>\n";
-print "</table><input type=submit value=\"$text{'install_ok'}\"></form>\n";
+print &ui_table_end();
+print &ui_form_end([ [ undef, $text{'install_ok'} ] ]);
+
&ui_print_footer("", $text{'index_return'});