[yast-commit] r49548 - in /trunk/ldap-server/src: LdapServer.pm dialogs.ycp tree_structure.ycp widgets.ycp

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... ============================================================================== --- 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=4... ============================================================================== --- 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<string, any> 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.yc... ============================================================================== --- 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=4... ============================================================================== --- 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<string, any> 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
participants (1)
-
rhafer@svn.opensuse.org