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_ask_online_update.ycp < prev    next >
Text File  |  2006-11-29  |  3KB  |  113 lines

  1. /**
  2.  * File:        installation/general/inst_ask_online_update.ycp
  3.  * Module:      Installation
  4.  * Summary:     Ask if the user wants to run an online update during installation
  5.  * Authors:     J. Daniel Schmidt <jdsn@suse.de>
  6.  *
  7.  * Ask if the user wants to run an online update during installation
  8.  *
  9.  * $Id: inst_ask_online_update.ycp 1 2006-02-17 13:20:02Z jdsn $
  10.  */
  11.  
  12. {
  13.     textdomain "installation";
  14.  
  15.     import "Wizard";
  16.     import "Popup";
  17.     import "GetInstArgs";
  18.     import "CustomDialogs";
  19.     import "Directory";
  20.     import "Language";
  21.     import "Mode";
  22.     import "String";
  23.     import "Label";
  24.     import "Internet";
  25.  
  26.     if (!Internet::do_you) return `auto;
  27.  
  28.     map ui = UI::GetDisplayInfo();
  29.  
  30.     map argmap = GetInstArgs::argmap();
  31.  
  32.  
  33.     /*  strings for "ask for online update"-popup   */
  34.     string ask_update_run_btn  = _("Run Update");
  35.     string ask_update_skip_btn = _("Skip Update");
  36.  
  37.     string online_update = _("Online Update");
  38.     string ask_update_main = _("Run Online Update now?");
  39.  
  40.     string help = _("Select whether to run an online update now.
  41. You may skip this step and run an online update later.
  42. ");
  43.  
  44.     /* vv   MAIN (WIZARD) LAYOUT  vv  */
  45.     term sr_layout=nil;
  46.     sr_layout=`HVCenter(
  47.     `VBox(
  48.            `Left( `Label( ask_update_main  ) ),
  49.            `Left( `RadioButtonGroup(`id(`run_update) ,
  50.                   `HBox( `HSpacing(1),
  51.                      `VBox(
  52.                          `Left( `RadioButton(`id(`update), ask_update_run_btn, true )),
  53.                          `Left( `RadioButton(`id(`noupdate), ask_update_skip_btn))),
  54.                      `HSpacing(1)
  55.             ) ) )
  56.     ));
  57.  
  58.     term contents = `VBox ( `VSpacing (0.5), sr_layout, `VSpacing (0.5));
  59.     /* ^^       END MAIN LAYOUT     ^^  */
  60.  
  61.     // check if there are some patches available
  62.  
  63.     Pkg::PkgEstablish ();
  64.     integer selected = Pkg::ResolvableCountPatches (`affects_pkg_manager);
  65.     y2milestone ("Available patches for pkg management: %1", selected);
  66.     if (selected < 1)
  67.     {
  68.     selected = Pkg::ResolvableCountPatches (`all);
  69.     y2milestone ("All available patches: %1", selected);
  70.     if (selected < 1)
  71.     {
  72.         y2milestone ("No patch available, skiping offer to run YOU");
  73.         Internet::do_you = false;
  74.         return `next;
  75.     }
  76.     }
  77.  
  78.     // check if we are in installation workflow or running independently (for development)
  79.     if (Mode::normal()) Wizard::CreateDialog();
  80.  
  81.     Wizard::SetContents (online_update, contents, help, GetInstArgs::enable_back(), GetInstArgs::enable_next());
  82.  
  83.     any ret=nil;
  84.  
  85.     repeat {
  86.         ret = Wizard::UserInput();
  87.  
  88.         if (ret == `abort)
  89.         {
  90.             if (Mode::normal()) break;
  91.             if (Popup::ConfirmAbort (`incomplete))  break;
  92.         }
  93.         else if (ret == `help)
  94.         {
  95.             Wizard::ShowHelp (help);
  96.         }
  97.         else if ( ret == `next )
  98.         {
  99.             if ( (boolean) UI::QueryWidget(`id(`noupdate), `Value) )
  100.                 ret = `skip;
  101.         }
  102.  
  103.     } until ( ret == `next || ret == `back || ret == `skip);
  104.  
  105.     if ( ret == `skip )
  106.     {
  107.         Internet::do_you = false;
  108.         ret = `next;
  109.     }
  110.  
  111.     return (symbol)ret;
  112. }
  113.