#!/usr/bin/perl # index.cgi # Display scheduled downloads, plus a form for uploading a file require './updown-lib.pl'; &ui_print_header(undef, $text{'index_title'}, "", undef, 0, 1); &ReadParse(); # Start tabs for modes @tabs = ( ); if ($can_download) { push(@tabs, [ "download", $text{'index_tabdownload'}, "index.cgi?mode=download" ]); } if ($can_upload) { push(@tabs, [ "upload", $text{'index_tabupload'}, "index.cgi?mode=upload" ]); } if ($can_fetch) { push(@tabs, [ "fetch", $text{'index_tabfetch'}, "index.cgi?mode=fetch" ]); } print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || $tabs[0]->[0], 1); $form = 0; if ($can_download) { # Show form for downloading print &ui_tabs_start_tab("mode", "download"); print $text{'index_descdownload'},"<p>\n"; print &ui_form_start("download.cgi", "post"); print &ui_table_start($text{'index_header1'}, "width=100%", 4); # URLs to download print &ui_table_row($text{'index_urls'}, &ui_textarea("urls", undef, 4, 70), 3); # Destination directory print &ui_table_row($text{'index_ddir'}, &ui_textbox("dir", $download_dir, 60)." ". &file_chooser_button("dir", 1, $form)."<br>". &ui_checkbox("mkdir", 1, $text{'index_mkdir'}, 0), 3); if ($can_mode != 3) { # Ask for user and group to download as print &ui_table_row($text{'index_user'}, &ui_user_textbox("user", $download_user, $form)); print &ui_table_row($text{'index_group'}, &ui_opt_textbox("group", $download_group, 13, $text{'default'})." ". &group_chooser_button("group", 0, $form)); } if ($can_schedule) { # Download time can be selected, for scheduling with At @now = localtime(time()); print &ui_table_row($text{'index_bg'}, &ui_radio("bg", 0, [ [ 0, $text{'index_bg0'}."<br>" ], [ 1, $text{'index_bg1'} ] ])." ". &ui_textbox("day", $now[3], 2)."/". &ui_select("month", $now[4], [ map { [ $_, $text{"smonth_".($_+1)} ] } (0 .. 11) ])."/". &ui_textbox("year", $now[5]+1900, 4)." ". &date_chooser_button("day", "month", "year", $form)." ". $text{'index_time'}."\n". &ui_textbox("hour", sprintf("%2.2d", $now[2]), 2).":". &ui_textbox("min", sprintf("%2.2d", $now[1]), 2), 3); } elsif ($can_background) { # Download must be immediate, but can be backgrounded print &ui_table_row($text{'index_bg'}, &ui_radio("bg", 0, [ [ 0, $text{'index_bg0'} ], [ 1, $text{'index_bg1u'} ] ])); } else { # Download is always right now } # Email address to notify when done if ($can_schedule || $can_background) { print &ui_table_row($text{'index_email'}, &ui_opt_textbox("email", undef, 40, $text{'no'}, $text{'index_emailto'}), 3); } print &ui_table_end(); print &ui_form_end([ [ undef, $text{'index_down'} ] ]); $form++; # Show current list of scheduled or active downloads @downs = grep { &can_as_user($_->{'user'}) } &list_downloads(); if (@downs) { @tds = $notdone ? ( "width=5" ) : ( ); local ($notdone) = grep { !$_->{'complete'} } @downs; print &ui_form_start("cancel.cgi"); print &ui_columns_start([ $notdone ? ( "" ) : ( ), $text{'index_urls'}, $text{'index_dest'}, $text{'index_when'}, $text{'index_user'}, $text{'index_prog'} ], 100, 0, \@tds); foreach $d (@downs) { local @cols; local $count = 0; local @urls; while($url = $d->{"url_$count"}) { print "<br>\n" if ($count); if (length($url) > 70 && $url =~ /^([^:]+:\/\/[^\/]+\/)(.*)(\/[^\/]+)$/) { push(@urls, &html_escape("$1 .. $3")); } else { push(@urls, &html_escape($url)); } $count++; } push(@cols, join("<br>\n", @urls)); push(@cols, &html_escape($d->{'dir'})); push(@cols, $d->{'time'} ? &make_date($d->{'time'}) : $text{'index_imm'}); push(@cols, &html_escape($d->{'user'})); if ($d->{'error'}) { push(@cols, "<font color=#ff0000>". ($count > 1 ? &text('index_upto', $d->{'upto'}+1, $count)." " : ""). "$d->{'error'}</font>"); &delete_download($d); } elsif (!defined($d->{'upto'})) { push(@cols, $text{'index_noprog'}); } elsif ($d->{'complete'}) { push(@cols, "<font color=#00ff00>". "$text{'index_done'} (". &nice_size($d->{'total'}).")</font>"); &delete_download($d); } else { push(@cols, ($count > 1 ? &text('index_upto', $d->{'upto'}+1, $count)." " : ""). &nice_size($d->{'got'})." ". ($d->{'size'} ? "(".int($d->{'got'}*100/$d->{'size'}). "%)" : "")); } if (!$d->{'complete'}) { print &ui_checked_columns_row(\@cols, \@tds, "cancel", $d->{'id'}); } else { @cols = ( "", @cols ) if ($notdone); print &ui_columns_row(\@cols, \@tds); } } print &ui_columns_end(); print &ui_form_end($notdone ? [ [ undef, $text{'index_cancel'} ] ] : [ ]); $form++; } print &ui_tabs_end_tab(); } if ($can_upload) { # Show form for uploading print &ui_tabs_start_tab("mode", "upload"); print $text{'index_descupload'},"<p>\n"; local $upid = time().$$; print &ui_form_start("upload.cgi?id=$upid", "form-data", undef, &read_parse_mime_javascript($upid, [ "upload0", "upload1", "upload2", "upload3" ])); print &ui_table_start($text{'index_header2'}, "width=100%", 2); # Upload fields $utable = ""; for($i=0; $i<4; $i++) { $utable .= &ui_upload("upload$i", 40, 0, undef, 1)."\n"; $utable .= "<br>\n" if ($i%2 == 1); } print &ui_table_row($text{'index_upload'}, $utable); # Destination directory print &ui_table_row($text{'index_dir'}, &ui_textbox("dir", $upload_dir, 50)." ". &file_chooser_button("dir", 1, $form)." ". &ui_checkbox("mkdir", 1, $text{'index_mkdir'}, 0)); if ($can_mode != 3) { # Allow selection of user to save as print &ui_table_row($text{'index_user'}, &unix_user_input("user", $upload_user, $form)); print &ui_table_row($text{'index_group'}, &ui_radio("group_def", $upload_group ? 0 : 1, [ [ 1, $text{'default'} ], [ 0, &unix_group_input("group", $upload_group, $form) ] ])); } # Unzip files print &ui_table_row($text{'index_zip'}, &ui_radio("zip", 0, [ [ 2, $text{'index_zipyes'} ], [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ])); # Email notification print &ui_table_row($text{'index_email2'}, &ui_opt_textbox("email", undef, 40, $text{'no'}, $text{'index_emailto'}), 3); print &ui_table_end(); print &ui_form_end([ [ "ok", $text{'index_ok'} ] ]); $form++; print &ui_tabs_end_tab(); } if ($can_fetch) { # Show form to download fetch from server to PC print &ui_tabs_start_tab("mode", "fetch"); print $text{'index_descfetch'},"<p>\n"; print &ui_form_start("fetch.cgi"); print &ui_table_start($text{'index_header3'}, "width=100%", 4); # File to fetch print &ui_table_row($text{'index_fetch'}, &ui_textbox("fetch", $fetch_file, 50)." ". &file_chooser_button("fetch", 0, $form), 3); # Show in browser? print &ui_table_row($text{'index_show'}, &ui_yesno_radio("show", $fetch_show)); print &ui_table_end(); print &ui_form_end([ [ undef, $text{'index_ok2'} ] ]); $form++; print &ui_tabs_end_tab(); } print &ui_tabs_end(1); &ui_print_footer("/", $text{'index'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 876 B | 0644 |
|
acl_security.pl | File | 1.74 KB | 0755 |
|
cancel.cgi | File | 850 B | 0755 |
|
config | File | 34 B | 0644 |
|
config.info.ca | File | 376 B | 0644 |
|
config.info.cz | File | 0 B | 0644 |
|
defaultacl | File | 42 B | 0644 |
|
download.cgi | File | 4.58 KB | 0755 |
|
download.pl | File | 1.39 KB | 0755 |
|
fetch.cgi | File | 3.1 KB | 0755 |
|
index.cgi | File | 7.05 KB | 0755 |
|
log_parser.pl | File | 986 B | 0755 |
|
module.info | File | 210 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 179 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 250 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 289 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 293 B | 0644 |
|
module.info.ca | File | 168 B | 0644 |
|
module.info.ca.auto | File | 20 B | 0644 |
|
module.info.cs | File | 30 B | 0644 |
|
module.info.cs.auto | File | 144 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 183 B | 0644 |
|
module.info.de | File | 174 B | 0644 |
|
module.info.de.auto | File | 19 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 334 B | 0644 |
|
module.info.es | File | 27 B | 0644 |
|
module.info.es.auto | File | 152 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 180 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 267 B | 0644 |
|
module.info.fi | File | 27 B | 0644 |
|
module.info.fi.auto | File | 137 B | 0644 |
|
module.info.fr | File | 38 B | 0644 |
|
module.info.fr.auto | File | 166 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 207 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 165 B | 0644 |
|
module.info.hu | File | 32 B | 0644 |
|
module.info.hu.auto | File | 159 B | 0644 |
|
module.info.it | File | 26 B | 0644 |
|
module.info.it.auto | File | 130 B | 0644 |
|
module.info.ja | File | 48 B | 0644 |
|
module.info.ja.auto | File | 217 B | 0644 |
|
module.info.ko | File | 31 B | 0644 |
|
module.info.ko.auto | File | 170 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 167 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 214 B | 0644 |
|
module.info.ms | File | 191 B | 0644 |
|
module.info.ms.auto | File | 19 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 169 B | 0644 |
|
module.info.nl | File | 31 B | 0644 |
|
module.info.nl.auto | File | 155 B | 0644 |
|
module.info.no | File | 33 B | 0644 |
|
module.info.no.auto | File | 158 B | 0644 |
|
module.info.pl | File | 147 B | 0644 |
|
module.info.pl.auto | File | 20 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 176 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 185 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 191 B | 0644 |
|
module.info.ru | File | 49 B | 0644 |
|
module.info.ru.auto | File | 256 B | 0644 |
|
module.info.sk | File | 26 B | 0644 |
|
module.info.sk.auto | File | 145 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 | 190 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 372 B | 0644 |
|
module.info.tr | File | 29 B | 0644 |
|
module.info.tr.auto | File | 144 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 317 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 299 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 211 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 142 B | 0644 |
|
module.info.zh_TW | File | 27 B | 0644 |
|
module.info.zh_TW.auto | File | 127 B | 0644 |
|
safeacl | File | 28 B | 0644 |
|
uninstall.pl | File | 340 B | 0755 |
|
updown-lib.pl | File | 7.44 KB | 0755 |
|
upload.cgi | File | 6.42 KB | 0755 |
|