Exemple #1
0
class RetiredFilterWdg(SwapDisplayWdg):
    ''' a button that triggers the display of retired items''' 
    def __init__(self, prefix='', refresh=True):
        name = 'show_retired'
        if prefix:
            name = '%s_show_retired' %prefix
        self.hidden = HiddenWdg(name,'')
        if refresh:
            self.hidden.set_persistence() 
        self.refresh = refresh
        super(RetiredFilterWdg, self).__init__()
       
    def _get_script(self, value):
        script = "var x=get_elements('%s'); x.set_value('%s')"\
                 %(self.hidden.get_name(), value) 
        if self.refresh:
            script = "%s;document.form.submit()" %script
        return script

    def get_display(self):
        
        on_icon = IconWdg('click to show retired', icon="/context/icons/common/hide_retire.png")
        off_icon = IconWdg('click to hide retired', icon=IconWdg.RETIRE)
        off_icon.add(self.hidden)
        
        on_script = self._get_script('true')
        off_script = self._get_script('false')
        
        # swap the icons if it is clicked on 
        if self.get_value()=='true':
            self.set_display_widgets(off_icon, on_icon)
            self.add_action_script(off_script, on_script)
        else:
            self.set_display_widgets(on_icon, off_icon)
            self.add_action_script(on_script, off_script)

        return super(RetiredFilterWdg, self).get_display()
    
    def get_value(self):
        return self.hidden.get_value()
    

    def alter_search(self, search):
        if self.get_value() == 'true':
            search.set_show_retired(True)
Exemple #2
0
class RetiredFilterWdg(SwapDisplayWdg):
    ''' a button that triggers the display of retired items'''
    def __init__(self, prefix='', refresh=True):
        name = 'show_retired'
        if prefix:
            name = '%s_show_retired' % prefix
        self.hidden = HiddenWdg(name, '')
        if refresh:
            self.hidden.set_persistence()
        self.refresh = refresh
        super(RetiredFilterWdg, self).__init__()

    def _get_script(self, value):
        script = "var x=get_elements('%s'); x.set_value('%s')"\
                 %(self.hidden.get_name(), value)
        if self.refresh:
            script = "%s;document.form.submit()" % script
        return script

    def get_display(self):

        on_icon = IconWdg('click to show retired',
                          icon="/context/icons/common/hide_retire.png")
        off_icon = IconWdg('click to hide retired', icon=IconWdg.RETIRE)
        off_icon.add(self.hidden)

        on_script = self._get_script('true')
        off_script = self._get_script('false')

        # swap the icons if it is clicked on
        if self.get_value() == 'true':
            self.set_display_widgets(off_icon, on_icon)
            self.add_action_script(off_script, on_script)
        else:
            self.set_display_widgets(on_icon, off_icon)
            self.add_action_script(on_script, off_script)

        return super(RetiredFilterWdg, self).get_display()

    def get_value(self):
        return self.hidden.get_value()

    def alter_search(self, search):
        if self.get_value() == 'true':
            search.set_show_retired(True)
Exemple #3
0
    def get_display(my):

        new_tab_names = my.tab_names
        
        app_css = app_style = None    
        if WebContainer.get_web().get_app_name_by_uri() != 'Browser':
            app_css = 'smaller'
            app_style = 'padding: 0px 2px 3px 2px' 
            
        div = my.div
        div.set_style("margin-top: 10px; margin-bottom: 20px")
        
        # add some spacing
        span = SpanWdg(css='tab_front')
        div.add(span)

        selected_widget = None

        # figure out which is the selected one
        selected_index = 0
        for i in range(0, len(new_tab_names)):
            tab_name = new_tab_names[i]
            if tab_name == my.tab_value:
                selected_index = i
                break

        for i in range(0, len(new_tab_names)):
            tab_name = new_tab_names[i]
            widget = my.get_widget(tab_name)

            tab = SpanWdg()
            if i == selected_index:
                # selected tab
                tab.set_class("%s_selected" %my.get_style_prefix())
                if app_style:
                    tab.add_style(app_style)
                selected_widget = widget
            else:
                # unselected tab
                tab.set_class("%s_unselected" %my.get_style_prefix())
                if app_style:
                    tab.add_style(app_style)
            tab.add( my.get_header(tab_name, selected_index, app_css))
            div.add(tab)

        # FIXME: hide this for now 
        #div.add( my.get_add_tab_wdg() )


        tab_hidden = HiddenWdg(my.tab_key)
        tab_hidden.set_persistence()
        # explicitly records this value for init-type submit
        tab_hidden._set_persistent_values([my.tab_value])

        # TODO: not sure if this is legal ... This is rather redundant,
        # but set_value is a pretty complex function.  In the end this
        # forces it to be set to a value even though widget settings is disabled
        value = tab_hidden.get_value()
        if value:
            tab_hidden.set_value(value)

        div.add(tab_hidden)
        
        
        
        # if an error occured, draw the error 
        if my.error_wdg:
            div.add(my.error_wdg)
        else:
            # display the content
            content_div = HtmlElement.div()
            if my.content_height:
                content_div.add_style("height: %spx" % my.content_height)
                content_div.add_style("padding: 10px 0 10px 0")
                content_div.add_style("overflow: auto")
                content_div.add_style("border-style: solid")
            
            content_div.set_class("%s_content" %my.get_style_prefix())
            content_div.add_style("display: block")

            try:
                content = my.get_content(selected_widget)
                if isinstance( content, Widget):
                    content = content.get_buffer_display()
            except Exception, e:
                my.handle_exception(e)

                # TODO: need some way to make this automatic in Widget.
                #if my.tab_path:
                #    last_buffer = len(my.tab_path)+1
                #    buffer = my.get_buffer_on_exception(last_buffer)
                #else:
                buffer = my.get_buffer_on_exception()

                div.add(buffer)


                content = my.error_wdg

            content_div.add( content )
            div.add(content_div)
Exemple #4
0
    def get_display(my):

        new_tab_names = my.tab_names

        app_css = app_style = None
        if WebContainer.get_web().get_app_name_by_uri() != 'Browser':
            app_css = 'smaller'
            app_style = 'padding: 0px 2px 3px 2px'

        div = my.div
        div.set_style("margin-top: 10px; margin-bottom: 20px")

        # add some spacing
        span = SpanWdg(css='tab_front')
        div.add(span)

        selected_widget = None

        # figure out which is the selected one
        selected_index = 0
        for i in range(0, len(new_tab_names)):
            tab_name = new_tab_names[i]
            if tab_name == my.tab_value:
                selected_index = i
                break

        for i in range(0, len(new_tab_names)):
            tab_name = new_tab_names[i]
            widget = my.get_widget(tab_name)

            tab = SpanWdg()
            if i == selected_index:
                # selected tab
                tab.set_class("%s_selected" % my.get_style_prefix())
                if app_style:
                    tab.add_style(app_style)
                selected_widget = widget
            else:
                # unselected tab
                tab.set_class("%s_unselected" % my.get_style_prefix())
                if app_style:
                    tab.add_style(app_style)
            tab.add(my.get_header(tab_name, selected_index, app_css))
            div.add(tab)

        # FIXME: hide this for now
        #div.add( my.get_add_tab_wdg() )

        tab_hidden = HiddenWdg(my.tab_key)
        tab_hidden.set_persistence()
        # explicitly records this value for init-type submit
        tab_hidden._set_persistent_values([my.tab_value])

        # TODO: not sure if this is legal ... This is rather redundant,
        # but set_value is a pretty complex function.  In the end this
        # forces it to be set to a value even though widget settings is disabled
        value = tab_hidden.get_value()
        if value:
            tab_hidden.set_value(value)

        div.add(tab_hidden)

        # if an error occured, draw the error
        if my.error_wdg:
            div.add(my.error_wdg)
        else:
            # display the content
            content_div = HtmlElement.div()
            if my.content_height:
                content_div.add_style("height: %spx" % my.content_height)
                content_div.add_style("padding: 10px 0 10px 0")
                content_div.add_style("overflow: auto")
                content_div.add_style("border-style: solid")

            content_div.set_class("%s_content" % my.get_style_prefix())
            content_div.add_style("display: block")

            try:
                content = my.get_content(selected_widget)
                if isinstance(content, Widget):
                    content = content.get_buffer_display()
            except Exception, e:
                my.handle_exception(e)

                # TODO: need some way to make this automatic in Widget.
                #if my.tab_path:
                #    last_buffer = len(my.tab_path)+1
                #    buffer = my.get_buffer_on_exception(last_buffer)
                #else:
                buffer = my.get_buffer_on_exception()

                div.add(buffer)

                content = my.error_wdg

            content_div.add(content)
            div.add(content_div)