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 / media_proposal.ycp < prev    next >
Text File  |  2006-11-29  |  2KB  |  95 lines

  1. /**
  2.  * Module:    media_proposal.ycp
  3.  *
  4.  * Author:    Arvin Schnell <arvin@suse.de>
  5.  *
  6.  * Purpose:    Initialize the installation media.
  7.  */
  8. {
  9.     textdomain "packager";
  10.  
  11.     import "HTML";
  12.     import "Update";
  13.     import "Mode";
  14.     import "Language";
  15.     import "Packages";
  16.     import "PackageCallbacks";
  17.  
  18.     import "Installation";
  19.  
  20.  
  21.     string func = (string) WFM::Args(0);
  22.     map param = (map) WFM::Args(1);
  23.     map <string, any> ret = $[];
  24.  
  25.  
  26.     if ( func == "MakeProposal" )
  27.     {
  28.     boolean force_reset      = param["force_reset"     ]:false;
  29.     boolean language_changed = param["language_changed"]:false;
  30.  
  31.     UI::OpenDialog (`opt(`decorated),
  32.             // intermediate popup while initializing internal packagemanagement
  33.             `Label(_("Reading package information. One moment please...")));
  34.  
  35.     Packages::Init (true);
  36.  
  37.     UI::CloseDialog();
  38.  
  39.     integer num = size (Packages::theSources);
  40.     if (num <= 0)
  41.     {
  42.         y2error ("Invalid source");
  43.         ret = $[ "warning" :
  44.                      // Proposal for system to update, part of the richtext
  45.                      _("No Valid Installation Media"),
  46.                      "warning_level" : `blocker
  47.             ];
  48.     }
  49.     else
  50.     {
  51.         list <string> tmp = [];
  52.  
  53.         foreach (integer i, Packages::theSources, {
  54.         map new_product = Pkg::SourceProductData (i);
  55.         tmp = add (tmp, new_product["productname"]:"?" + " " +
  56.                new_product["productversion"]:"?");
  57.         });
  58.  
  59.         ret = $[ "preformatted_proposal" : HTML::List (tmp) ];
  60.     }
  61.     }
  62.     else if ( func == "AskUser" )
  63.     {
  64.     boolean has_next = param["has_next"]:false;
  65.  
  66.     // call some function that displays a user dialog
  67.     // or a sequence of dialogs here:
  68.     //
  69.     // sequence = DummyMod::AskUser( has_next );
  70.  
  71.     symbol result = (symbol) WFM::CallFunction ("inst_media", [true, has_next]);
  72.  
  73.     // Fill return map
  74.  
  75.     ret = $[ "workflow_sequence" : result ];
  76.     }
  77.     else if ( func == "Description" )
  78.     {
  79.     // Fill return map.
  80.     //
  81.     // Static values do just nicely here, no need to call a function.
  82.  
  83.     ret =
  84.         $[
  85.           // this is a heading
  86.           "rich_text_title"    :    _("Installation Media"),
  87.           // this is a menu entry
  88.           "menu_title"    :    _("&Media"),
  89.           "id"        :    "media_stuff"
  90.         ];
  91.     }
  92.  
  93.     return ret;
  94. }
  95.