ACC SHELL

Path : /usr/share/YaST2/clients/
File Upload :
Current File : //usr/share/YaST2/clients/add-on_proposal.ycp

/**
 * File:	add-on_proposal.ycp
 *
 * Authors:	Jiri Srain <jsrain@suse.cz>
 *
 * Purpose:	Proposal function dispatcher - add-no products
 *
 *		See also file proposal-API.txt for details.
 */
{
textdomain "add-on";

import "Label";
import "Wizard";
import "AddOnProduct";
import "WorkflowManager";

include "add-on/add-on-workflow.ycp";

string func  = (string) WFM::Args(0);
map    param = (map) WFM::Args(1);
map    ret   = $[];

if ( func == "MakeProposal" )
{
    boolean force_reset      = param["force_reset"     ]:false;
    boolean language_changed = param["language_changed"]:false;

    list<string> items = maplist (map<string,any> product, AddOnProduct::add_on_products, {
	map data = Pkg::SourceGeneralData (product["media"]:-1);
	// placeholder for unknown path
	string dir = data["product_dir"]:_("Unknown");
	if (dir == "")
	    dir = "/";
	// summary item, %1 is product name, %2 media URL, %3 directory on media
	return sformat ("%1 (Media %2, directory %3)", product["product"]:"", data["url"]:_("Unknown"), dir);
    });
    if (size (items) == 0)
    {
	// summary string
	items = [ _("No add-on product selected for installation") ];
    }

    WorkflowManager::RedrawWizardSteps();

    ret = $[
	"raw_proposal" : items,
    ];
}
else if ( func == "AskUser" )
{
    Wizard::CreateDialog();
    symbol result = RunAddOnMainDialog (
	false, true, true,
	Label::BackButton(), Label::OKButton(), Label::CancelButton(),
	false
    );
    UI::CloseDialog();

    // Fill return map

    ret = $[ "workflow_sequence" : result,
	     "mode_changed" : false];
}
else if ( func == "Description" )
{
    // Fill return map.
    //
    // Static values do just nicely here, no need to call a function.

    ret = $[
      // this is a heading
      "rich_text_title"	:	_( "Add-On Products"  ),
      // this is a menu entry
      "menu_title"	:	_( "Add-On &Products" ),
      "id"		:	"add_on"
    ];
}

return ret;


}

ACC SHELL 2018