def build_widget(self): widget = MenuSelectButtonList() prev_cat = None for category, spell in self.spells: if category == "_unassigned_spells": category = "other" if category != prev_cat: if prev_cat: widget.append(Text("")) widget.append(Color.label(Text(category))) prev_cat = category widget.append_option(spell['name'], spell) widget.focus_position = 1 return widget
def build_widget(self): widget = MenuSelectButtonList() cloud_types_by_name = juju.get_cloud_types_by_name() if len(self.public_clouds) > 0: widget.append(Text("Public Clouds")) widget.append(HR()) for cloud_name in self.public_clouds: cloud_type = cloud_types_by_name[cloud_name] allowed = cloud_type in self.compatible_cloud_types widget.append_option(cloud_name, enabled=allowed) widget.append(Padding.line_break("")) if len(self.custom_clouds) > 0: widget.append(Text("Your Clouds")) widget.append(HR()) for cloud_name in self.custom_clouds: cloud_type = cloud_types_by_name[cloud_name] allowed = cloud_type in self.compatible_cloud_types widget.append_option(cloud_name, enabled=allowed) widget.append(Padding.line_break("")) lxd_allowed = cloud_types.LOCALHOST in self.compatible_cloud_types widget.append(Text("Configure a New Cloud")) widget.append(HR()) for cloud_type in sorted(CUSTOM_PROVIDERS): if cloud_type == cloud_types.LOCALHOST and lxd_allowed: self._items_localhost_idx = len(widget.contents) widget.append_option(cloud_type, enabled=events.LXDAvailable.is_set(), user_data={ 'disabled_msg': self.lxd_unavailable_msg, }) else: allowed = cloud_type in self.compatible_cloud_types widget.append_option(cloud_type, enabled=allowed) if app.provider and app.provider.cloud: widget.select_item_by_value(app.provider.cloud) elif app.metadata.cloud_whitelist: widget.select_first_of_values(app.metadata.cloud_whitelist) else: widget.select_first() return widget
def build_widget(self): widget = MenuSelectButtonList() if self.app.jaas_ok: widget.append_option('Juju-as-a-Service (JaaS) ' 'Free Controller', 'jaas') if len(self.controllers) > 0: if self.app.jaas_ok: widget.append(HR()) widget.append(Color.label( Text("Existing Self-Hosted Controllers"))) widget.append(Padding.line_break("")) cdict = defaultdict(lambda: defaultdict(list)) for cname, d in self.controllers.items(): cdict[d['cloud']][d.get('region', None)].append((cname, d)) for cloudname, cloud_d in sorted(cdict.items()): widget.append(Color.label(Text(" {}".format(cloudname)))) for regionname, controllers in cloud_d.items(): for controller_name, controller in sorted(controllers): label = " {}".format(controller_name) if regionname: label += " ({})".format(regionname) widget.append_option( label, controller_name, enabled=controller.get('api-endpoints')) widget.append(Padding.line_break("")) widget.append(Padding.line_break("")) widget.append(HR()) widget.append_option("Deploy New Self-Hosted Controller", None) widget.select_first() return widget
def build_widget(self): return MenuSelectButtonList(self.regions, self.default)
def build_widget(self): widget = MenuSelectButtonList(self.credentials, self.default) widget.append(Padding.line_break("")) widget.append(HR()) widget.append_option("Add a new credential", None) return widget