1 -- $Id: StorageSystemUI.lua,v 1.6 2005/04/04 20:50:59 cpressey Exp $
11 -- Function to present a form to the user from which they
12 -- can select any disk present in the given StorageDescriptor.
14 StorageUI.select_disk = function(tab)
16 local disk_actions = {}
18 local sd = tab.sd or error("Need a storage descriptor")
20 local add_disk_action = function(tdd)
21 table.insert(disk_actions,
24 name = tdd:get_desc(),
32 for dd in sd:get_disks() do
36 table.insert(disk_actions,
39 name = tab.cancel_desc or _("Cancel"),
46 return App.ui:present({
47 id = tab.id or "select_disk",
48 name = tab.name or _("Select a Disk"),
49 short_desc = tab.short_desc or _("Select a disk."),
50 long_desc = tab.long_desc,
51 actions = disk_actions,
56 -- Function to present a form to the user from which they
57 -- can select any partition present in the given DiskDescriptor.
59 StorageUI.select_part = function(tab)
61 local part_actions = {}
63 local dd = tab.dd or error("Need a disk descriptor")
65 local add_part_action = function(tpd)
66 table.insert(part_actions,
68 id = tostring(tpd:get_number()),
69 name = tpd:get_desc(),
77 for pd in dd:get_parts() do
81 table.insert(part_actions,
84 name = tab.cancel_desc or _("Cancel"),
91 return App.ui:present({
92 id = tab.id or "select_part",
93 name = tab.name or _("Select a Partition"),
94 short_desc = tab.short_desc or _("Select a partition."),
95 long_desc = tab.long_desc,
96 actions = part_actions,
101 StorageUI.select_packages = function(tab)
102 local datasets_list = {}
103 local pkg, selected, i, dataset
105 if not tab.sel_pkgs then
108 for pkg, selected in tab.sel_pkgs do
109 table.insert(datasets_list, {
110 selected = (selected and "Y") or "N",
114 table.sort(datasets_list, function(a, b)
115 return a.package < b.package
118 local fields_list = {
121 name = tab.checkbox_name or _("Install?"),
126 name = _("Full Name of Package"),
131 local actions_list = {
134 name = tab.all_name or _("Select All")
138 name = tab.none_name or _("Select None")
142 name = tab.ok_name or _("Accept these Packages")
146 name = tab.cancel_name or _("Cancel")
151 local response = App.ui:present({
152 id = tab.id or "select_packages",
153 name = tab.name or _("Select Packages"),
154 short_desc = tab.short_desc or
155 _("Select the packages you wish to install."),
156 long_desc = tab.long_desc,
157 actions = actions_list,
158 fields = fields_list,
159 datasets = datasets_list,
164 datasets_list = response.datasets
166 if response.action_id == "all" then
167 for i, dataset in datasets_list do
168 dataset.selected = "Y"
170 elseif response.action_id == "none" then
171 for i, dataset in datasets_list do
172 dataset.selected = "N"
175 local pkg_selected = {}
176 for i, dataset in datasets_list do
177 pkg_selected[dataset.package] = (dataset.selected == "Y")
179 return response.action_id == "ok", pkg_selected