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 / inst_congratulate.ycp < prev    next >
Text File  |  2006-11-29  |  5KB  |  180 lines

  1. /**
  2.  * File:    installation/general/inst_congratulate.ycp
  3.  * Module:    Installation
  4.  * Summary:    Display congratulation
  5.  * Authors:    Arvin Schnell <arvin@suse.de>
  6.  *
  7.  * Display a congratulation message for the user.
  8.  *
  9.  * $Id: inst_congratulate.ycp 34401 2006-11-15 10:42:07Z locilka $
  10.  */
  11.  
  12. {
  13.     textdomain "installation";
  14.  
  15.     import "Mode";
  16.     import "Wizard";
  17.     import "Popup";
  18.     import "Label";
  19.     import "ProductFeatures";
  20.     import "GetInstArgs";
  21.     import "Call";
  22.     import "Package";
  23.     import "ProductControl";
  24.     import "Stage";
  25.  
  26.     /**
  27.      * Function returns true when the default windowmanager is KDE
  28.      * See bug 170880 for more information
  29.      *
  30.      * @return boolean wm is is_kde
  31.      */
  32.     boolean DisplayKDEHelp () {
  33.     string default_wm = (string) SCR::Read(.sysconfig.windowmanager."DEFAULT_WM");
  34.     y2debug("Default WM: %1", default_wm);
  35.     
  36.     if (default_wm != nil && tolower(default_wm) == "kde") {
  37.         return true;
  38.     }
  39.     return false;
  40.     }
  41.  
  42.     map argmap = GetInstArgs::argmap();
  43.  
  44.     // show button "clone system"?
  45.     boolean show_clone_checkbox = ! Stage::firstboot ();
  46.     boolean clone_checkbox_active = ProductFeatures::GetBooleanFeature("globals", "enable_clone");
  47.     boolean clone_enabled = false;
  48.     if( Package::AvailableAny(["autoyast2"]) &&
  49.         size(ProductControl::clone_modules) > 0 ) {
  50.         clone_enabled = true;
  51.     } else {
  52.         clone_checkbox_active = false;
  53.     }
  54.  
  55.     map display = UI::GetDisplayInfo();
  56.     integer space = display["TextMode"]:true ? 1 : 3;
  57.     string vendor_url_tmp = ProductFeatures::GetStringFeature("globals", "vendor_url");
  58.     
  59.     string vendor_url = "http://www.novell.com/linux/";
  60.  
  61.     if (vendor_url_tmp != nil && vendor_url_tmp != "")
  62.         vendor_url = vendor_url_tmp;
  63.  
  64.     term check_box_do_clone   = `Empty();
  65.  
  66.     if (show_clone_checkbox)
  67.     {
  68.         check_box_do_clone = `CheckBox (`id(`do_clone),
  69.         // Check box: start the clone process and store the autoyast
  70.         // profile in /root/autoinst.xml
  71.                                            _("&Clone This System for Autoyast"), clone_checkbox_active);
  72.     }
  73.  
  74.     // caption for dialog "Congratulation Dialog"
  75.     string caption = _("Installation Completed");
  76.  
  77.     string text = ProductControl::GetTranslatedText ("congratulate");
  78.  
  79.     if (text == "") {
  80.     // congratulation text 1/4
  81.     text = _("<p><b>Congratulations!</b></p>") +
  82.  
  83.     // congratulation text 2/4
  84.     _("<p>The installation of &product; on your machine is complete.
  85. After clicking <b>Finish</b>, you can log in to the system.</p>
  86. ") +
  87.  
  88.     // congratulation text 3/4
  89.         sformat(_("<p>Visit us at %1.</p>"), vendor_url ) +
  90.  
  91.     // congratulation text 4/4
  92.     _("<p>Have a lot of fun!<br>Your SUSE Development Team</p>");
  93.     }
  94.     else
  95.     {
  96.     text = sformat (text, vendor_url);
  97.     }
  98.  
  99.  
  100.     term contents = `VBox (
  101.                `VSpacing (space),
  102.                `HBox (
  103.                   `HSpacing (2*space),
  104.                                   `VBox(
  105.                            `RichText (`id (`text), text),
  106.                                           `VSpacing (space/2),
  107.                                           `Left(check_box_do_clone)
  108.                                           ),
  109.                   `HSpacing (2*space)
  110.                   ),
  111.                `VSpacing (space),
  112.                `VSpacing (2)
  113.                );
  114.  
  115.     string help_file = "";
  116.     // help 1/4 for dialog "Congratulation Dialog"
  117.     string help = _("<p>Your system is ready for use.</p>") +
  118.  
  119.     // help 2/4 for dialog "Congratulation Dialog"
  120.     _("<p><b>Finish</b> will close the YaST installation and continue
  121. to the login screen.</p>
  122. ") +
  123.  
  124.     // help 3/4 for dialog "Congratulation Dialog"
  125.     (DisplayKDEHelp() ? _("<p>If you choose the default graphical desktop KDE, you can
  126. adjust some KDE settings to your hardware. Also notice
  127. our SUSE Welcome Dialog.</p>
  128. ") : ""); // Show this help only in case of KDE as the default windowmanager
  129.  
  130.     if( show_clone_checkbox ) {
  131.         help = help + _("<p>Use <b>Clone</b> if you want to create an AutoYaST profile.
  132. AutoYaST is a way to do a complete SUSE Linux installation without user interaction. AutoYaST
  133. needs a profile to know what the installed system should look like. If this option is
  134. selected, a profile of the current system is stored in /root/autoyast.xml.</p>
  135. ");
  136.     }
  137.  
  138.     Wizard::SetContents (caption, contents, help, 
  139.             GetInstArgs::enable_back(), GetInstArgs::enable_next());
  140.     Wizard::SetTitleIcon ("SuSEmenu");
  141.  
  142.     Wizard::SetNextButton(`next, Label::FinishButton() );
  143.     Wizard::SetFocusToNextButton();
  144.     if( UI::WidgetExists(`id(`do_clone)) )
  145.         UI::ChangeWidget (`id(`do_clone), `Enabled, clone_enabled);
  146.  
  147.     any ret = nil;
  148.  
  149.     repeat {
  150.  
  151.     ret = Wizard::UserInput();
  152.  
  153.     if (ret == `abort)
  154.     {
  155.         if (Popup::ConfirmAbort (`incomplete))
  156.         break;
  157.     }
  158.     else if ( ret == `help )
  159.     {
  160.         Wizard::ShowHelp (help);
  161.     }
  162.  
  163.     } until ( ret == `next || ret == `back );
  164.  
  165.     if (UI::WidgetExists(`id(`do_clone)) && ret == `next && (boolean)UI::QueryWidget (`id(`do_clone), `Value)) {
  166.     // #165860
  167.     // Save sources now because cloning garbles the target
  168.     // Cloning reinitializes sources when it needs them
  169.     Pkg::SourceFinishAll ();
  170.  
  171.         Call::Function("clone_system" , ["doClone"]);
  172.     }
  173.     
  174.     // bugzilla #221190
  175.     if (ret == `back)
  176.     Wizard::RestoreNextButton ();
  177.  
  178.     return ret;
  179. }
  180.