#!/usr/bin/perl # index.cgi # Display hosts on which software packages are being managed, a form for # finding existing packages and a form for installing more require './cluster-software-lib.pl'; &ui_print_header(undef, $text{'index_title'}, "", "intro", 1, 1); # Display hosts on which software will be installed print &ui_subheading($text{'index_hosts'}); @servers = &list_servers(); @hosts = &list_software_hosts(); if ($config{'sort_mode'} == 1) { @hosts = sort { my ($as) = grep { $_->{'id'} == $a->{'id'} } @servers; my ($bs) = grep { $_->{'id'} == $b->{'id'} } @servers; lc($as->{'host'}) cmp lc($bs->{'host'}) } @hosts; } elsif ($config{'sort_mode'} == 2) { @hosts = sort { my ($as) = grep { $_->{'id'} == $a->{'id'} } @servers; my ($bs) = grep { $_->{'id'} == $b->{'id'} } @servers; lc(&server_name($as)) cmp lc(&server_name($bs)) }@hosts; } $formno = 0; foreach $h (@hosts) { local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers; next if (!$s); local $count = @{$h->{'packages'}}; push(@titles, ($s->{'desc'} ? $s->{'desc'} : $s->{'realhost'} ? "$s->{'realhost'}:$s->{'port'}" : "$s->{'host'}:$s->{'port'}")."<br>". &text('index_count', $count)); push(@links, "edit_host.cgi?id=$h->{'id'}"); push(@icons, "@{[&get_webprefix()]}/servers/images/$s->{'type'}.svg"); push(@installed, $count); $gothost{$h->{'id'}}++; } if (@links) { if ($config{'table_mode'}) { # Show as table print &ui_columns_start([ $text{'index_thost'}, $text{'index_tdesc'}, $text{'index_tcount'}, $text{'index_ttype'} ]); foreach $h (@hosts) { local ($s) = grep { $_->{'id'} == $h->{'id'} } @servers; next if (!$s); local ($type) = grep { $_->[0] eq $s->{'type'} } @servers::server_types; print &ui_columns_row([ &ui_link("edit_host.cgi?id=$h->{'id'}",($s->{'host'} || &get_system_hostname())), $s->{'desc'}, scalar(@{$h->{'packages'}}), $type->[1], ]); } print &ui_columns_end(); } else { # Show as icons &icons_table(\@links, \@titles, \@icons); } } else { print "<b>$text{'index_nohosts'}</b><p>\n"; } $formno++; # Show form for adding a server print "<table width=100%><tr>\n"; @addservers = grep { !$gothost{$_->{'id'}} } @servers; if (@addservers && $access{'add'}) { print "<td><form action=add.cgi>\n"; print "<input type=submit name=add value='$text{'index_add'}'>\n"; print "<select name=server>\n"; foreach $s (sort { $a->{'host'} cmp $b->{'host'} } @addservers) { print "<option value=$s->{'id'}>", $s->{'host'}.($s->{'desc'} ? " ($s->{'desc'})" : ""),"</option>\n"; } print "</select>\n"; print "</form></td>\n"; } # Show button for compare form if (@hosts) { print "<td align=right>\n"; print "<form action=compare_form.cgi>\n"; print "<input type=submit value='$text{'index_compare'}'>\n"; print "</form>\n"; print "</td>\n"; } # Show form for adding a group of servers @groups = &servers::list_all_groups(\@servers); if (@groups && $access{'add'}) { print "<td align=right width=33%><form action=add.cgi>\n"; print "<input type=submit name=gadd value='$text{'index_gadd'}'>\n"; print "<select name=group>\n"; foreach $g (@groups) { print "<option>$g->{'name'}</option>\n"; } print "</select>\n"; print "</form></td>\n"; } print "</tr></table>\n"; if (@hosts) { # Display search form print &ui_hr(); print &ui_subheading($text{'index_installed'}); print "<table cellpadding=0 cellspacing=0 width=100%><tr><td>\n"; $formno += 2; print "<form action=search.cgi>\n"; print "<input type=submit value=\"$text{'index_search'}\">\n"; print "<input name=search size=30>\n"; print "</form></td>\n"; print "<td align=right><form action=refresh.cgi>\n"; print "<input type=submit value=\"$text{'index_refresh'}\">\n"; &create_on_input(undef, 1, 1); print "</form></td> </tr></table>\n"; # Display cross-cluster install form print &ui_hr(); print &ui_subheading($text{'index_install'}); print "$text{'index_installmsg'}<p>\n"; $upid = time().$$; print &ui_form_start("install_pack.cgi?id=$upid", "form-data", undef, &read_parse_mime_javascript($upid, [ "upload" ])),"\n"; @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) { 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 &ui_radio_table("source", 0, \@opts); print &ui_submit($text{'index_installok'}),"\n"; print &ui_form_end(); } &ui_print_footer("/", $text{'index'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 1.01 KB | 0644 |
|
add.cgi | File | 904 B | 0755 |
|
close.cgi | File | 272 B | 0755 |
|
closeall.cgi | File | 179 B | 0755 |
|
cluster-software-lib.pl | File | 9.51 KB | 0755 |
|
compare.cgi | File | 1.81 KB | 0755 |
|
compare_form.cgi | File | 1.13 KB | 0755 |
|
config | File | 25 B | 0644 |
|
config.info | File | 108 B | 0644 |
|
config.info.ca | File | 133 B | 0644 |
|
config.info.cs | File | 82 B | 0644 |
|
config.info.de | File | 125 B | 0644 |
|
config.info.es | File | 90 B | 0644 |
|
config.info.fr | File | 134 B | 0644 |
|
config.info.hr | File | 0 B | 0644 |
|
config.info.ms | File | 131 B | 0644 |
|
config.info.nl | File | 130 B | 0644 |
|
config.info.no | File | 129 B | 0644 |
|
config.info.pl | File | 121 B | 0644 |
|
defaultacl | File | 6 B | 0644 |
|
delete_host.cgi | File | 254 B | 0755 |
|
delete_pack.cgi | File | 3.15 KB | 0755 |
|
delete_packs.cgi | File | 2.86 KB | 0755 |
|
do_install.cgi | File | 7.11 KB | 0755 |
|
do_install_serial.cgi | File | 3.55 KB | 0755 |
|
edit_host.cgi | File | 3.84 KB | 0755 |
|
edit_pack.cgi | File | 3.33 KB | 0755 |
|
index.cgi | File | 4.87 KB | 0755 |
|
install_pack.cgi | File | 4.82 KB | 0755 |
|
list_pack.cgi | File | 2.28 KB | 0755 |
|
module.info | File | 427 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 154 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 201 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 282 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 251 B | 0644 |
|
module.info.ca | File | 155 B | 0644 |
|
module.info.ca.auto | File | 31 B | 0644 |
|
module.info.cs | File | 40 B | 0644 |
|
module.info.cs.auto | File | 122 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 153 B | 0644 |
|
module.info.de | File | 133 B | 0644 |
|
module.info.de.auto | File | 25 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 263 B | 0644 |
|
module.info.es | File | 39 B | 0644 |
|
module.info.es.auto | File | 119 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 141 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 228 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 156 B | 0644 |
|
module.info.fr | File | 41 B | 0644 |
|
module.info.fr.auto | File | 139 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 186 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 155 B | 0644 |
|
module.info.hu | File | 33 B | 0644 |
|
module.info.hu.auto | File | 125 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 147 B | 0644 |
|
module.info.ja | File | 0 B | 0644 |
|
module.info.ja.auto | File | 228 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 193 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 181 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 165 B | 0644 |
|
module.info.ms | File | 119 B | 0644 |
|
module.info.ms.auto | File | 25 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 158 B | 0644 |
|
module.info.nl | File | 35 B | 0644 |
|
module.info.nl.auto | File | 122 B | 0644 |
|
module.info.no | File | 35 B | 0644 |
|
module.info.no.auto | File | 115 B | 0644 |
|
module.info.pl | File | 132 B | 0644 |
|
module.info.pl.auto | File | 33 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 154 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 163 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 152 B | 0644 |
|
module.info.ru | File | 0 B | 0644 |
|
module.info.ru.auto | File | 278 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 162 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 159 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 151 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 351 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 159 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 272 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 235 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 162 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 131 B | 0644 |
|
module.info.zh_TW | File | 0 B | 0644 |
|
module.info.zh_TW.auto | File | 140 B | 0644 |
|
open.cgi | File | 250 B | 0755 |
|
openall.cgi | File | 427 B | 0755 |
|
prefs.info | File | 28 B | 0644 |
|
refresh.cgi | File | 1.61 KB | 0755 |
|
search.cgi | File | 1.92 KB | 0755 |
|