#!/usr/bin/perl use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './time-lib.pl'; our (%in, %text, %config, %access, $base_remote_user, $get_hardware_time_error); my ($rawdate, $rawhwdate, %system_date, $rawtime, %hw_date, $txt); $txt = ""; &ReadParse(); &error($text{'acl_error'}) if ($access{'sysdate'} && $access{'hwdate'}); my $arr; if (!$access{'sysdate'} && !$access{'hwdate'} && &support_hwtime()) { $arr = "0,1"; } else { $arr = "0"; } &ui_print_header(undef, $text{ 'index_title' }, "", "index", 1, 1, undef, &help_search_link("date hwclock ntpdate", "man"), qq(<script src="time.js"></script>\n), qq(onLoad="F=[$arr];timeInit(F); setTimeout('timeUpdate(F)', 5000);")); if (!$access{'sysdate'} && !&has_command("date")) { print &text( 'error_cnf', "<tt>date</tt>"),"<p>\n"; &ui_print_footer("/", $text{'index'}); exit; } # Show tabs for times, timezones and syncing my @tabs = ( ); push(@tabs, [ "time", $text{'index_tabtime'}, "index.cgi?mode=time" ]); if ($access{'timezone'} && &has_timezone()) { push(@tabs, [ "zone", $text{'index_tabzone'}, "index.cgi?mode=zone" ]); } if ($access{'ntp'}) { push(@tabs, [ "sync", $text{'index_tabsync'}, "index.cgi?mode=sync" ]); } print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || $tabs[0]->[0], 1); # Get the system time my @tm = &get_system_time(); $system_date{ 'second' } = $tm[0]; $system_date{ 'minute' } = $tm[1]; $system_date{ 'hour' } = $tm[2]; $system_date{ 'date' } = $tm[3]; $system_date{ 'month' } = &number_to_month($tm[4]); $system_date{ 'year' } = $tm[5]+1900; $system_date{ 'day' } = &number_to_weekday($tm[6]); print &ui_tabs_start_tab("mode", "time"); print $text{'index_desctime'},"<p>\n"; if( !$access{'sysdate'} ) { # Show system time for editing print &ui_form_start("apply.cgi"); print &ui_hidden("mode", "sysdate"); print &tabletime(&hlink($text{'sys_title'}, "system_time"), 0, %system_date); print &ui_submit($text{'action_apply'}, "action"); if (&support_hwtime()) { print &ui_submit($text{'action_sync'}, "action"); } print &ui_form_end(); } else { # Just show current time print &tabletime( &hlink( $text{ 'sys_title' }, "system_time" ), 1, %system_date ),"<p>\n"; } # Get the hardware time if (&support_hwtime()) { my @tm = &get_hardware_time(); if (@tm) { $hw_date{'second'} = $tm[0]; $hw_date{'minute'} = $tm[1]; $hw_date{'hour'} = $tm[2]; $hw_date{'date'} = $tm[3]; $hw_date{'month'} = &number_to_month($tm[4]); $hw_date{'year'} = $tm[5]+1900; $hw_date{'day'} = &number_to_weekday($tm[6]); } if (!@tm) { # Didn't actually work! print $get_hardware_time_error || $text{'index_eformat'}; print "<p>\n"; } elsif (!$access{'hwdate'}) { # Allow editing of hardware time if( !$access{ 'sysdate' } ) { $hw_date{ 'second' } = $system_date{ 'second' } if( $hw_date{ 'second' } - $system_date{ 'second' } <= $config{ 'lease' } ); } print &ui_form_start("apply.cgi"); print &ui_hidden("mode", "hwdate"); print &tabletime(&hlink($text{'hw_title'}, "hardware_time"), 0, %hw_date); print &ui_submit($text{'action_save'}, "action"); if (support_hwtime()) { print &ui_submit($text{'action_sync_s'}, "action"); } print &ui_form_end(); } else { # Show show the hardware time print &tabletime(&hlink($text{'hw_title'}, "hardware_time"), 1, %hw_date ),"<p>\n"; } } print &ui_tabs_end_tab(); if ($access{'timezone'} && &has_timezone()) { print &ui_tabs_start_tab("mode", "zone"); print $text{'index_desczone'},"<p>\n"; print &ui_form_start("save_timezone.cgi"); print &ui_table_start($text{'index_tzheader'}, "width=100%", 2); my @zones = &list_timezones(); my $cz = &get_current_timezone(); my $found = 0; my @opts = ( ); my $lastpfx = ""; foreach my $z (@zones) { my $pfx; if ($z->[0] =~ /^(.*)\/(.*)$/) { $pfx = $1; } else { $pfx = ""; } if ($pfx ne $lastpfx && $z ne $zones[0]) { push(@opts, [ '', '----------' ]); } $lastpfx = $pfx; push(@opts, [ $z->[0], $z->[1] ? "$z->[0] ($z->[1])" : $z->[0] ]); } print "</select></td> </tr>\n"; print &ui_table_row($text{'index_tz'}, &ui_select("zone", $cz, \@opts, 1, 0, $cz ? 1 : 0)); print &ui_table_end(); print &ui_form_end([ [ undef, $text{'save'} ] ]); print &ui_tabs_end_tab(); } if ( ( !$access{ 'sysdate' } && &has_command( "date" ) || !$access{ 'hwdate' } && &has_command( "hwclock" ) ) && $access{'ntp'} ) { # Show time server input print &ui_tabs_start_tab("mode", "sync"); print $text{'index_descsync'},"<p>\n"; print &ui_form_start("apply.cgi"); print &ui_hidden("mode", "ntp"); print &ui_table_start(&hlink($text{'index_timeserver'}, "timeserver"), "width=100%", 2, [ "width=30%" ]); print &ui_table_row($text{'index_addresses'}, &ui_textbox("timeserver", $config{'timeserver'}, 60)); # Show hardware time checkbox if (&support_hwtime()) { print &ui_table_row(" ", &ui_checkbox("hardware", 1, $text{'index_hardware2'}, $config{'timeserver_hardware'})); } # Show boot-time checkbox my $job = &find_webmin_cron_job(); print &ui_table_row($text{'index_boot'}, &ui_yesno_radio("boot", $job && $job->{'boot'})); # Show schedule input print &ui_table_row($text{'index_sched'}, &ui_radio("sched", $job && !$job->{'disabled'} ? 1 : 0, [ [ 0, $text{'no'} ], [ 1, $text{'index_schedyes'} ] ])); &seed_random(); $job ||= { 'mins' => int(rand()*60), 'hours' => int(rand()*24), 'days' => '*', 'months' => '*', 'weekdays' => '*' }; print &ui_table_row(undef, &webmincron::show_times_input($job), 2); print &ui_table_end(); print &ui_form_end([ [ "action", $text{'index_sync'} ] ]); print &ui_tabs_end_tab(); } print &ui_tabs_end(1); &ui_print_footer( "/", $text{ 'index' } ); # tabletime(label, read-only, &time) # Output a table for setting the date and time sub tabletime { my ( $label, $ro, %src ) = @_, my %assoc_day = ( "Mon", $text{ 'day_1' }, "Tue", $text{ 'day_2' }, "Wed", $text{ 'day_3' }, "Thu", $text{ 'day_4' }, "Fri", $text{ 'day_5' }, "Sat", $text{ 'day_6' }, "Sun", $text{ 'day_0' } ), my %assoc_month = ( "Jan", $text{ 'month_1' }, "Feb", $text{ 'month_2' }, "Mar", $text{ 'month_3' }, "Apr", $text{ 'month_4' }, "May", $text{ 'month_5' }, "Jun", $text{ 'month_6' }, "Jul", $text{ 'month_7' }, "Aug", $text{ 'month_8' }, "Sep", $text{ 'month_9' }, "Oct", $text{ 'month_10' }, "Nov", $text{ 'month_11' }, "Dec", $text{ 'month_12' } ); my $rv = &ui_table_start($label, "width=100%", 6); if (!$ro) { $rv .= &ui_table_row($text{'date'}, &ui_select("date", int($src{'date'}), [ 1 .. 31 ])); $rv .= &ui_table_row($text{'month'}, &ui_select("month", &zeropad(&month_to_number($src{'month'})+1, 2), [ map { [ &zeropad($_, 2), $text{'month_'.$_} ] } ( 1 .. 12 ) ])); $rv .= &ui_table_row($text{'year'}, &ui_select("year", $src{'year'}, [ 1969 .. 2037 ])); $rv .= &ui_table_row($text{'hour'}, &ui_select("hour", &zeropad($src{'hour'}, 2), [ map { &zeropad($_, 2) } (00 .. 23) ])); $rv .= &ui_table_row($text{'minute'}, &ui_select("minute", &zeropad($src{'minute'}, 2), [ map { &zeropad($_, 2) } (00 .. 59) ])); $rv .= &ui_table_row($text{'second'}, &ui_select("second", &zeropad($src{'second'}, 2), [ map { &zeropad($_, 2) } (00 .. 59) ])); } else { $rv .= &ui_table_row($text{'date'}, $src{'date'}); $rv .= &ui_table_row($text{'month'}, $src{'month'}); $rv .= &ui_table_row($text{'year'}, $src{'year'}); $rv .= &ui_table_row($text{'hour'}, $src{'hour'}); $rv .= &ui_table_row($text{'minute'}, $src{'minute'}); $rv .= &ui_table_row($text{'second'}, $src{'second'}); } $rv .= &ui_table_end(); return $rv; }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 1.56 KB | 0644 |
|
acl_security.pl | File | 687 B | 0755 |
|
apply.cgi | File | 2.93 KB | 0755 |
|
backup_config.pl | File | 775 B | 0755 |
|
config-ALL-linux | File | 94 B | 0644 |
|
config-freebsd | File | 95 B | 0644 |
|
config-hpux | File | 76 B | 0644 |
|
config-irix | File | 76 B | 0644 |
|
config-macos | File | 76 B | 0644 |
|
config-netbsd | File | 76 B | 0644 |
|
config-openserver | File | 76 B | 0644 |
|
config-redhat-linux | File | 117 B | 0644 |
|
config-solaris | File | 95 B | 0644 |
|
config.info | File | 537 B | 0644 |
|
config.info.ca | File | 611 B | 0644 |
|
config.info.cs | File | 587 B | 0644 |
|
config.info.de | File | 566 B | 0644 |
|
config.info.es | File | 611 B | 0644 |
|
config.info.fa | File | 776 B | 0644 |
|
config.info.fr | File | 634 B | 0644 |
|
config.info.hr | File | 0 B | 0644 |
|
config.info.hu | File | 594 B | 0644 |
|
config.info.it | File | 615 B | 0644 |
|
config.info.ja | File | 278 B | 0644 |
|
config.info.ko | File | 577 B | 0644 |
|
config.info.ms | File | 572 B | 0644 |
|
config.info.nl | File | 549 B | 0644 |
|
config.info.no | File | 560 B | 0644 |
|
config.info.pl | File | 590 B | 0644 |
|
config.info.pt_BR | File | 647 B | 0644 |
|
config.info.ru | File | 923 B | 0644 |
|
config.info.sk | File | 583 B | 0644 |
|
config.info.sv | File | 179 B | 0644 |
|
config.info.tr | File | 428 B | 0644 |
|
config.info.uk | File | 473 B | 0644 |
|
config.info.zh | File | 96 B | 0644 |
|
config.info.zh_TW | File | 224 B | 0644 |
|
defaultacl | File | 47 B | 0644 |
|
freebsd-lib.pl | File | 1.29 KB | 0755 |
|
index.cgi | File | 7.62 KB | 0755 |
|
linux-lib.pl | File | 2.02 KB | 0755 |
|
log_parser.pl | File | 936 B | 0755 |
|
module.info | File | 228 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 117 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 152 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 188 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 185 B | 0644 |
|
module.info.ca | File | 133 B | 0644 |
|
module.info.ca.auto | File | 14 B | 0644 |
|
module.info.cs | File | 25 B | 0644 |
|
module.info.cs.auto | File | 100 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 112 B | 0644 |
|
module.info.de | File | 116 B | 0644 |
|
module.info.de.auto | File | 13 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 243 B | 0644 |
|
module.info.es | File | 25 B | 0644 |
|
module.info.es.auto | File | 115 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 125 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 177 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 135 B | 0644 |
|
module.info.fr | File | 23 B | 0644 |
|
module.info.fr.auto | File | 123 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 142 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 135 B | 0644 |
|
module.info.hu | File | 35 B | 0644 |
|
module.info.hu.auto | File | 122 B | 0644 |
|
module.info.it | File | 23 B | 0644 |
|
module.info.it.auto | File | 97 B | 0644 |
|
module.info.ja | File | 27 B | 0644 |
|
module.info.ja.auto | File | 145 B | 0644 |
|
module.info.ko | File | 25 B | 0644 |
|
module.info.ko.auto | File | 118 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 143 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 122 B | 0644 |
|
module.info.ms | File | 117 B | 0644 |
|
module.info.ms.auto | File | 13 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 134 B | 0644 |
|
module.info.nl | File | 21 B | 0644 |
|
module.info.nl.auto | File | 94 B | 0644 |
|
module.info.no | File | 19 B | 0644 |
|
module.info.no.auto | File | 93 B | 0644 |
|
module.info.pl | File | 100 B | 0644 |
|
module.info.pl.auto | File | 13 B | 0644 |
|
module.info.pt | File | 25 B | 0644 |
|
module.info.pt.auto | File | 105 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 138 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 130 B | 0644 |
|
module.info.ru | File | 38 B | 0644 |
|
module.info.ru.auto | File | 162 B | 0644 |
|
module.info.sk | File | 25 B | 0644 |
|
module.info.sk.auto | File | 104 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 125 B | 0644 |
|
module.info.sv | File | 18 B | 0644 |
|
module.info.sv.auto | File | 106 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 250 B | 0644 |
|
module.info.tr | File | 23 B | 0644 |
|
module.info.tr.auto | File | 107 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 180 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 180 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 168 B | 0644 |
|
module.info.zh | File | 91 B | 0644 |
|
module.info.zh_TW | File | 24 B | 0644 |
|
module.info.zh_TW.auto | File | 91 B | 0644 |
|
postinstall.pl | File | 674 B | 0755 |
|
rbac-mapping | File | 73 B | 0644 |
|
save_timezone.cgi | File | 359 B | 0755 |
|
solaris-lib.pl | File | 1.39 KB | 0755 |
|
time-lib.pl | File | 7.17 KB | 0755 |
|
time.js | File | 785 B | 0644 |
|
uninstall.pl | File | 330 B | 0755 |
|