aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AdminPanel/Module
diff options
context:
space:
mode:
authorAngelo Naselli <anaselli@linux.it>2014-06-25 23:20:31 +0200
committerAngelo Naselli <anaselli@linux.it>2014-06-25 23:20:31 +0200
commita65a007c1ac2843fb06d1814b664fa73ed8ea464 (patch)
treea6a1f98333b24101362e48d16ab8ca0ca4599995 /lib/AdminPanel/Module
parent02631e35d61c543dcdfaa6c72f6572a18326ca9d (diff)
downloadmanatools-a65a007c1ac2843fb06d1814b664fa73ed8ea464.tar
manatools-a65a007c1ac2843fb06d1814b664fa73ed8ea464.tar.gz
manatools-a65a007c1ac2843fb06d1814b664fa73ed8ea464.tar.bz2
manatools-a65a007c1ac2843fb06d1814b664fa73ed8ea464.tar.xz
manatools-a65a007c1ac2843fb06d1814b664fa73ed8ea464.zip
Changed NTP server settings using a treeview
Diffstat (limited to 'lib/AdminPanel/Module')
-rw-r--r--lib/AdminPanel/Module/Clock.pm50
1 files changed, 34 insertions, 16 deletions
diff --git a/lib/AdminPanel/Module/Clock.pm b/lib/AdminPanel/Module/Clock.pm
index 673aacc7..734f6922 100644
--- a/lib/AdminPanel/Module/Clock.pm
+++ b/lib/AdminPanel/Module/Clock.pm
@@ -60,7 +60,6 @@ use AdminPanel::Shared::Locales;
use AdminPanel::Shared::TimeZone;
use AdminPanel::Shared::Services;# qw (services);
-
use Time::Piece;
use yui;
@@ -174,7 +173,7 @@ sub _get_NTPservers {
my $self = shift;
my $servs = $self->sh_tz->ntpServers();
- [ map { "$servs->{$_}: $_" } sort { $servs->{$a} cmp $servs->{$b} || $a cmp $b } keys %$servs ];
+ [ map { "$servs->{$_}|$_" } sort { $servs->{$a} cmp $servs->{$b} || $a cmp $b } keys %$servs ];
}
sub _adminClockPanel {
@@ -209,30 +208,34 @@ sub _adminClockPanel {
$dateField->setValue($day);
$timeField->setValue($time);
+ $hbox = $factory->createHBox($layout);
+ my $ntpFrame = $factory->createCheckBoxFrame($hbox, $self->loc->N("Enable Network Time Protocol"), 0);
+# $ntpFrame->setWeight($yui::YD_HORIZ, 1);
+
+ my $vbox = $factory->createVBox( $ntpFrame );
+ my $hbox1 = $factory->createHBox($factory->createLeft($vbox));
+ $factory->createLabel($hbox1,$self->loc->N("Server:"));
+ my $ntpLabel = $factory->createLabel($hbox1, $self->loc->N("not defined"));
+# $ntpLabel->setWeight($yui::YD_HORIZ, 1);
+ my $defServer = $self->sh_tz->ntpCurrentServer();
+ #- strip digits from \d+.foo.pool.ntp.org
+ $defServer =~ s/^\d+\.//;
+ $ntpLabel->setLabel($defServer);
+ $hbox1 = $factory->createLeft($vbox);
+ my $changeNTPButton = $factory->createPushButton($hbox1, $self->loc->N("Change NTP server"));
+
$factory->createHSpacing($hbox, 1.0);
my $frame = $factory->createFrame ($hbox, $self->loc->N("TimeZone"));
- my $vbox = $factory->createVBox( $frame );
+ $vbox = $factory->createVBox( $frame );
my $timezone = $self->sh_tz->readConfiguration();
my $timeZoneLbl = $factory->createLabel($vbox, $self->loc->N("not defined"));
+# $timeZoneLbl->setWeight($yui::YD_HORIZ, 1);
if (exists $timezone->{ZONE}) {
$timeZoneLbl->setValue($timezone->{ZONE});
}
my $changeTZButton = $factory->createPushButton($vbox, $self->loc->N("Change Time Zone"));
- $hbox = $factory->createHBox($layout);
- my $ntpFrame = $factory->createCheckBoxFrame($hbox, $self->loc->N("Enable Network Time Protocol"), 0);
-# $ntpFrame->setWeight($yui::YD_HORIZ, 1);
-
- $vbox = $factory->createVBox( $ntpFrame );
- $factory->createLabel($vbox, $self->loc->N("Your computer can synchronize its clock with a remote time server using NTP"));
- my $hbox1 = $factory->createHBox($vbox);
- $factory->createLabel($hbox1,$self->loc->N("Server:"));
- my $ntpServers = $factory->createComboBox( $hbox1, "" );
- my $servers = $self->_get_NTPservers();
- my $itemCollection = $self->sh_gui->arrayListToYItemCollection({item_list => $servers,});
- $ntpServers->addItems($itemCollection);
-
#######################
@@ -253,6 +256,9 @@ sub _adminClockPanel {
# End Dialof layout
+ # get only once
+ my $NTPservers = $self->_get_NTPservers();
+
while(1) {
my $event = $dialog->waitForEvent(1000);
my $eventType = $event->eventType();
@@ -276,6 +282,18 @@ sub _adminClockPanel {
### TODO manage OK pressed ###
last;
}
+ elsif ($widget == $changeNTPButton) {
+ my $item = $self->sh_gui->ask_fromTreeList({title => $self->loc->N("NTP server - DrakClock"),
+ header => $self->loc->N("Choose your NTP server"),
+ default_button => 1,
+ item_separator => '|',
+ default_item => $defServer,
+ skip_path => 1,
+ list => $NTPservers});
+ if ($item) {
+ $ntpLabel->setValue($item);
+ }
+ }
elsif ($widget == $changeTZButton) {
my $timezones = $self->sh_tz->getTimeZones();
if (!$timezones || scalar (@{$timezones}) == 0) {