home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
boot
/
i386
/
root
/
usr
/
share
/
YaST2
/
clients
/
timezone.ycp
< prev
next >
Wrap
Text File
|
2006-11-29
|
4KB
|
192 lines
/*
*
* Module: timezone.ycp
*
* Author: Klaus Kaempf (kkaempf@suse.de)
*
* Submodules:
*
*
* Purpose: configure timezone in running system
*
* Modify:
*
*
* $Id: timezone.ycp 25808 2005-10-05 15:13:41Z jsuchome $
*/
{
textdomain "country";
import "CommandLine";
import "Timezone";
import "Wizard";
include "timezone/dialogs.ycp";
/**
* read timezone settings (store initial values)
*/
define boolean TimezoneRead () {
Timezone::PushVal ();
return true;
}
/**
* write timezone settings
*/
define boolean TimezoneWrite () {
if (Timezone::Modified ())
{
y2milestone ("User selected new timezone/clock setting: <%1> <%2>",
Timezone::timezone, Timezone::hwclock);
Timezone::Save ();
WFM::CallFunction( "inst_suseconfig", [ false, false ] );
}
else
{
y2milestone( "Timezone not changed --> doing nothing" );
}
return true;
}
/**
* the timezone configuration sequence
*/
define any TimezoneSequence () {
// create the wizard dialog
Wizard::OpenAcceptDialog();
any result = TimezoneDialog ($[]);
if ( result == `next )
{
TimezoneWrite ();
}
else // `cancel or `back
{
y2milestone( "User cancelled --> no change" );
}
Wizard::CloseDialog ();
return result;
}
/**
* Handler for timezone summary
*/
define boolean TimezoneSummaryHandler (map options) {
// summary label
CommandLine::Print(sformat (_("Current Time Zone:\t%1"),Timezone::timezone));
if (!Timezone::utc_only())
{
// summary label
CommandLine::Print (sformat (_("Hardware Clock Set To:\t%1"),
// summary text (Clock setting)
Timezone::hwclock == "-u" ? _("UTC") :
// summary text (Clock setting)
_("Local time"))
);
}
// summary label
CommandLine::Print (sformat (_("Current Time and Date:\t%1"),
Timezone::GetDateTime(true, true)));
return false;
}
/**
* Handler for listing timezone layouts
*/
define boolean TimezoneListHandler (map options) {
foreach (map<string,any> zone, Timezone::get_zonemap (), {
CommandLine::Print ("");
// summary label
CommandLine::Print (sformat ("Region: %1", zone["name"]:""));
foreach (string code, string name, zone["entries"]:$[], {
CommandLine::Print (sformat ("%1 (%2)", code, name));
});
});
return false;
}
/**
* Handler for changing timezone settings
*/
define boolean TimezoneSetHandler (map options) {
string timezone = options["timezone"]:"";
string hwclock = options["hwclock"]:"";
if (timezone != "")
{
Timezone::Set (timezone, true);
}
if (hwclock != "" && !Timezone::utc_only ())
{
Timezone::hwclock = hwclock == "utc" ? "-u" : "--localtime";
}
return (Timezone::Modified ());
}
/* -- the command line description map -------------------------------------- */
map cmdline = $[
"id" : "timezone",
// translators: command line help text for timezone module
"help" : _("Time zone configuration"),
"guihandler" : TimezoneSequence,
"initialize" : TimezoneRead,
"finish" : TimezoneWrite,
"actions" : $[
"summary" :$[
"handler" : TimezoneSummaryHandler,
// command line help text for 'summary' action
"help" : _("Time zone configuration summary"),
],
"set" :$[
"handler" : TimezoneSetHandler,
// command line help text for 'set' action
"help" : _("Set new values for time zone configuration"),
],
"list": $[
"handler" : TimezoneListHandler,
// command line help text for 'list' action
"help" : _("List all available time zones")
],
],
"options" : $[
"timezone" : $[
// command line help text for 'set timezone' option
"help" : _("New time zone"),
"type" : "string"
],
"hwclock" : $[
// command line help text for 'set hwclock' option
"help" : _("New value for hardware clock"),
"type" : "enum",
"typespec" : [ "local", "utc" ],
],
],
"mappings" : $[
"summary" : [],
"set" : [ "timezone", "hwclock" ],
"list" : [],
]
];
CommandLine::Run (cmdline);
return true;
}