Author: rhafer
Date: Thu Jul 31 17:15:05 2008
New Revision: 49548
URL: http://svn.opensuse.org/viewcvs/yast?rev=49548&view=rev
Log:
- infrastructure for service settings
- enable/disable service is working again
- cleanup
Modified:
trunk/ldap-server/src/LdapServer.pm
trunk/ldap-server/src/dialogs.ycp
trunk/ldap-server/src/tree_structure.ycp
trunk/ldap-server/src/widgets.ycp
Modified: trunk/ldap-server/src/LdapServer.pm
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/LdapServer.pm?rev=49548&r1=49547&r2=49548&view=diff
==============================================================================
--- trunk/ldap-server/src/LdapServer.pm (original)
+++ trunk/ldap-server/src/LdapServer.pm Thu Jul 31 17:15:05 2008
@@ -140,6 +140,7 @@
my $serviceInfo = Service->FullInfo("ldap");
my $isRunning = ( defined $serviceInfo->{"started"}) && ($serviceInfo->{"started"} == 0); # 0 == "running"
my $isEnabled = $serviceInfo->{"start"} && $serviceInfo->{"start"} > 0;
+ $serviceEnabled = $isEnabled;
y2milestone("Serviceinfo: ". Data::Dumper->Dump([$serviceInfo]));
y2milestone("IsRunning: " . $isRunning . " IsEnabled " . $isEnabled);
@@ -393,6 +394,22 @@
}
Progress->Finish();
} else {
+ my $wasEnabled = Service->Enabled("ldap");
+ if ( $wasEnabled && !$serviceEnabled )
+ {
+ # service was disabled during this session, just disable the service
+ # in the system, stop it and ignore any configuration changes.
+ my $progressItems = [ _("Stopping LDAP Server"),
+ _("Disabling LDAP Server")
+ ];
+ Progress->New("De-activating OpenLDAP Server", "", 2, $progressItems, $progressItems, "");
+ Progress->NextStage();
+ Service->Disable("ldap");
+ Progress->NextStage();
+ Service->Stop("ldap");
+ Progress->Finish();
+ return 0;
+ }
if( ! SCR->Execute('.ldapserver.commitChanges' ) )
{
my $err = SCR->Error(".ldapserver");
Modified: trunk/ldap-server/src/dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/dialogs.ycp?rev=49548&r1=49547&r2=49548&view=diff
==============================================================================
--- trunk/ldap-server/src/dialogs.ycp (original)
+++ trunk/ldap-server/src/dialogs.ycp Thu Jul 31 17:15:05 2008
@@ -106,10 +106,18 @@
return true;
}
-void showTreeDialog( string name, boolean focus_tree )
+string showTreeDialog( string name, boolean focus_tree )
{
//create new item
- term widget = (term)widget_map[name,"widget"]:`Label( "Loading widget for item '"+name+"' failed." );
+ term widget = nil;
+ if (! LdapServer::ReadServiceEnabled() )
+ {
+ if ( name != "daemon" ) {
+ Popup::Error( _("The LDAP Server is disabled currently, no configuration changes possible.") );
+ name = "daemon";
+ }
+ }
+ widget = (term)widget_map[name,"widget"]:`Label( "Loading widget for item '"+name+"' failed." );
//get helps page
string help_page = (string)widget_map[name,"help_page"]:name;
@@ -121,6 +129,8 @@
Wizard::DisableBackButton();
if( focus_tree ) UI::SetFocus( `id( `wizardTree ) );
+
+ return name;
}
@@ -128,7 +138,7 @@
** dialog functions **
**********************/
-term dlg_service = `HSquash(
+term dlg_service_initial = `HSquash(
`VBox(
`Heading( _("General Settings") ),
`VBox(
@@ -172,7 +182,7 @@
map firewall_widget =
CWMFirewallInterfaces::CreateOpenFirewallWidget (firewall_settings);
- Wizard::SetContentsButtons( caption, dlg_service, HELPS["service_dialog"]:"help not found",
+ Wizard::SetContentsButtons( caption, dlg_service_initial, HELPS["service_dialog"]:"help not found",
Label::BackButton(), Label::NextButton() );
if( (boolean)defaults["serviceEnabled"]:true )
@@ -409,8 +419,8 @@
Wizard::CreateTree( widget_tree, _("Configuration:") );
//select&show current item
+ current_tree_item = showTreeDialog( current_tree_item, ( widget_tree == [] ) ? false : true );
Wizard::SelectTreeItem( current_tree_item );
- showTreeDialog( current_tree_item, ( widget_tree == [] ) ? false : true );
//initialize current dialog
callHandler( current_tree_item, "cb_read" );
rebuild_widget_tree = false;
@@ -436,10 +446,10 @@
continue;
}
- current_tree_item = new_item;
- showTreeDialog( new_item, (ret == `wizardTree) ? true : false );
+ current_tree_item = showTreeDialog( new_item, (ret == `wizardTree) ? true : false );
+ Wizard::SelectTreeItem( current_tree_item );
- callHandler( new_item, "cb_read" );
+ callHandler( current_tree_item, "cb_read" );
}
else if( is( ret, symbol ) )
Modified: trunk/ldap-server/src/tree_structure.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/tree_structure.ycp?rev=49548&r1=49547&r2=49548&view=diff
==============================================================================
--- trunk/ldap-server/src/tree_structure.ycp (original)
+++ trunk/ldap-server/src/tree_structure.ycp Thu Jul 31 17:15:05 2008
@@ -81,6 +81,58 @@
UI::ChangeWidget( `pb_delete, `Enabled, false );
}
+define boolean cb_read_daemon()
+``{
+ y2milestone("calling read handler for item \"daemon\"");
+ boolean enabled = LdapServer::ReadServiceEnabled();
+ if ( enabled )
+ {
+ UI::ChangeWidget( `rb_service_enable, `CurrentButton, `rb_yes );
+ }
+ else
+ {
+ UI::ChangeWidget( `rb_service_enable, `CurrentButton, `rb_no );
+ UI::ChangeWidget( `fr_listener, `Enabled, false );
+ UI::ChangeWidget( `fr_firewall, `Enabled, false );
+ }
+ return true;
+}
+
+define boolean cb_input_daemon()
+``{
+ y2milestone("calling input handler for item \"daemon\"");
+ y2milestone("Handlercmd = %1", handler_cmd);
+
+ if ( handler_cmd == `rb_no ) // service was just disabled
+ {
+ UI::ChangeWidget( `fr_listener, `Enabled, false );
+ UI::ChangeWidget( `fr_firewall, `Enabled, false );
+ }
+ else if ( handler_cmd == `rb_yes ) // service was just disabled
+ {
+ UI::ChangeWidget( `fr_listener, `Enabled, true );
+ UI::ChangeWidget( `fr_firewall, `Enabled, true );
+ }
+
+ return true;
+}
+
+define boolean cb_write_daemon()
+``{
+ y2milestone("calling write handler for item \"daemon\"");
+
+ symbol serviceEnabled = (symbol)UI::QueryWidget(`id(`rb_service_enable), `CurrentButton);
+ if ( serviceEnabled == `rb_yes )
+ {
+ LdapServer::SetServiceEnabled( true );
+ }
+ else
+ {
+ LdapServer::SetServiceEnabled( false );
+ }
+ return true;
+}
+
define boolean cb_read_schema()
``{
y2milestone( "calling schema read handler" );
@@ -89,24 +141,6 @@
return true;
}
-integer find_pos( list<string> l, string s )
-{
- y2debug( "-------------- starting find_pos ----------------" );
- y2debug( "searching in list '%1'", l );
- y2debug( "for string '%1'", s );
- y2debug( "size( l ) is '%1'", size( l ) );
- if( size( l ) == 0 ) return -1;
- integer i = 0;
- integer ret = -1;
- foreach( string str, l, {
- y2debug( "comparing str '%1' with s '%2'", str, s );
- y2debug( "current position is '%1'", i );
- if( str == s ) ret = i;
- i = i + 1;
- } );
- return ret;
-}
-
define boolean cb_input_schema()
``{
y2milestone( "calling schema input handler" );
@@ -1005,7 +1039,10 @@
],
"daemon" : $[
"name" : _("Startup Configuration"),
- "widget" : dlg_service_new
+ "widget" : dlg_service,
+ "cb_read" : ``( cb_read_daemon() ),
+ "cb_input" : ``( cb_input_daemon() ),
+ "cb_write" : ``( cb_write_daemon() )
],
"global" : $[
"children" : [ "g_loglevel", "g_allow", "g_tls" ],
Modified: trunk/ldap-server/src/widgets.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ldap-server/src/widgets.ycp?rev=49548&r1=49547&r2=49548&view=diff
==============================================================================
--- trunk/ldap-server/src/widgets.ycp (original)
+++ trunk/ldap-server/src/widgets.ycp Thu Jul 31 17:15:05 2008
@@ -19,15 +19,16 @@
];
map fw_widget = CWMFirewallInterfaces::CreateOpenFirewallWidget (firewall_settings);
- term dlg_service_new = `Top(
+ term dlg_service = `Top(
`VBox(
`VBox(
`Frame( _("&Start LDAP Server"),
`VBox(
`RadioButtonGroup(
+ `id( `rb_service_enable ),
`VBox(
- `Left( `RadioButton( `id( `rb_no ), `opt( `notify ), Label::NoButton(), !LdapServer::ReadServiceEnabled() ) ),
- `Left( `RadioButton( `id( `rb_yes ), `opt( `notify ), Label::YesButton(), LdapServer::ReadServiceEnabled() ) )
+ `Left( `RadioButton( `id( `rb_no ), `opt( `notify ), Label::NoButton() ) ),
+ `Left( `RadioButton( `id( `rb_yes ), `opt( `notify ), Label::YesButton(), true ) )
)
),
// `Left( `CheckBox( `id( `cb_register_slp ), _("Register at an &SLP Daemon"), LdapServer::ReadSLPEnabled() )),
@@ -37,7 +38,8 @@
),
`VSpacing(),
`VBox(
- `Frame( _("Protocol Listeners"),
+ `Frame(`id ( `fr_listener ),
+ _("Protocol Listeners"),
`VBox(
`Left(
`HBox(
@@ -65,7 +67,8 @@
),
`VSpacing(),
`VBox(
- `Frame( _("Firewall Settings"),
+ `Frame( `id( `fr_firewall ),
+ _("Firewall Settings"),
`VBox(
fw_widget["custom_widget"]:`Empty(),
`HStretch()
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org