Beispiel #1
0
    def add_alert_for_domain_exception(self,
                                       exception,
                                       form=None,
                                       unique_name='',
                                       severity='danger'):
        """Adds a formatted error message to the Form.

           :param exception: The Exception that should be displayed.
           :keyword form: The Form to which this exception relates (default is this Layout's .widget).
           :keyword unique_name: If more than one alert is added to the same Form, unique_name distinguishes between them.
           :keyword severity: (See :class:`~reahl.web.bootstrap.ui.Alert`).

           .. versionadded:: 5.0
        """
        form = form or self.widget
        alert = self.widget.add_child(
            Alert(self.widget.view, exception.as_user_message(), severity))
        alert.add_child(Hr(self.widget.view))
        if exception.detail_messages:
            ul = alert.add_child(Ul(self.widget.view))
            for detail_message in exception.detail_messages:
                ul.add_child(Li(self.widget.view)).add_child(
                    TextNode(self.widget.view, detail_message))

        reset_form = alert.add_child(
            NestedForm(self.widget.view,
                       'reset_%s%s' % (form.channel_name, unique_name)))
        reset_form.form.define_event_handler(form.events.reset)
        reset_form.add_child(Button(reset_form.form,
                                    form.events.reset)).use_layout(
                                        ButtonLayout(style='primary'))
Beispiel #2
0
    def __init__(self, view, css_id, show_indicators=True, interval=5000, pause='hover', wrap=True, keyboard=True, min_height=None):
        super(Carousel, self).__init__(view)
        self.carousel_panel = self.add_child(Div(view, css_id=css_id))
        self.carousel_panel.append_class('carousel')
        self.carousel_panel.append_class('slide')
        self.carousel_panel.set_attribute('data-ride', 'carousel')

        self.carousel_panel.set_attribute('data-interval', six.text_type(interval))
        pause_option = HTMLAttributeValueOption(pause or 'false', True, constrain_value_to=['hover', 'false'])
        self.carousel_panel.set_attribute('data-pause', pause_option.as_html_snippet())
        self.carousel_panel.set_attribute('data-wrap', 'true' if wrap else 'false')
        self.carousel_panel.set_attribute('data-keyboard', 'true' if keyboard else 'false')
        if min_height:
            style = self.carousel_panel.add_child(HTMLElement(self.view, 'style', children_allowed=True))
            css_id = self.carousel_panel.css_id
            style.add_child(TextNode(self.view, '#%s .carousel-item { min-height: %sem; }' % (css_id, min_height)))

        self.show_indicators = show_indicators
        if self.show_indicators:
            self.indicator_list = self.carousel_panel.add_child(self.create_indicator_list())
        self.inner = self.carousel_panel.add_child(self.create_inner())
        self.slides = []

        self.add_control(previous=True)
        self.add_control()
Beispiel #3
0
    def __init__(self, view):
        super().__init__(view)
        self.body.use_layout(Container())

        layout = ResponsiveLayout('md', colour_theme='dark', bg_scheme='primary')
        navbar = Navbar(view, css_id='my_nav').use_layout(layout)
        navbar.layout.set_brand_text('Address book')
        navbar.layout.add(TextNode(view, 'All your addresses in one place'))

        self.body.add_child(navbar)
        self.body.add_child(AddressBookPanel(view))
    def __init__(self, view):
        super(__class__, self).__init__(view)

        self.body.use_layout(Container())

        layout = ResponsiveLayout('md', colour_theme='dark', bg_scheme='primary')
        navbar = Navbar(view, css_id='my_nav').use_layout(layout)
        navbar.layout.set_brand_text('Simple TR')
        navbar.layout.add(TextNode(view, 'Translate from this to that.'))

        self.body.add_child(navbar)
        self.body.add_child(MyPanel(view))
Beispiel #5
0
    def __init__(self, view, target_widget, text=None, hide_for_size=None):
        text = text or '☰'

        super(CollapseToggle, self).__init__(view,
                                             'button',
                                             children_allowed=True)
        self.set_attribute('type', 'button')

        self.target_widget = target_widget
        self.append_class('navbar-toggler')
        self.set_attribute('data-toggle', 'collapse')
        self.set_attribute('data-target', '#%s' % target_widget.css_id)
        if hide_for_size:
            self.append_class('hidden-%s-up' % hide_for_size.class_label)

        self.add_child(TextNode(view, text))
Beispiel #6
0
    def __init__(self, view, target_widget, text=None):
        super().__init__(view, 'button', children_allowed=True)
        self.set_attribute('type', 'button')

        self.target_widget = target_widget
        self.append_class('navbar-toggler')
        self.set_attribute('data-toggle', 'collapse')
        self.set_attribute('data-target', '#%s' % target_widget.css_id)
        self.set_attribute('aria-controls', '%s' % target_widget.css_id)
        self.set_attribute('aria-label', _('Toggle navigation'))

        if text is None:
            collapse_toggle_widget = Span(self.view)
            collapse_toggle_widget.append_class('navbar-toggler-icon')
        else:
            collapse_toggle_widget = TextNode(view, text)
        self.add_child(collapse_toggle_widget)
Beispiel #7
0
 def new_textnode(self):
     return TextNode(self.web_fixture.view, 'mytext')
Beispiel #8
0
 def make_total(view, item):
     return TextNode(view, str(item.total_rows))
Beispiel #9
0
 def make_column_value(funding_item, view, row):
     return TextNode(view, str(row.qualifies_for_amount(funding_item)))
Beispiel #10
0
 def make_score_column_value(criterion, view, row):
     return TextNode(view, str(row.value_for(criterion)))
Beispiel #11
0
 def make_column_value(criterion, view, row):
     return TextNode(
         view, ('yes' if row.does_criterion_apply(criterion) else 'no'))