示例#1
0
 def get_submit_row(self, hidden_fields=None):
     or_plus_button = input(
         attr(type="button",
              value="OR+",
              onclick="addOrForm(this)",
              style="float: left;"))
     save_input = input(
         attr(id='save_input',
              type="text",
              name="save_input",
              value=_('name'),
              disabled='disabled',
              style="float: left; margin-left: 0.4em; display:none;"))
     save_button = input(
         attr(type="button",
              value="Save",
              onclick="saveUnionForm(this)",
              style="float: left; margin-left: 0.4em"))
     submit_button = input(
         attr(type=u'button',
              value=u'OK',
              onclick='sendUnionForm(this)',
              style="float: right;"))
     return tr(
         attr(cssc='submit_row'),
         td(or_plus_button, save_input, save_button, hidden_fields,
            submit_button),
     )
示例#2
0
 def _get_blocking_form(self, blocking_action):
     from fred_webadmin.controller.adif import Domain
     return form(
         attr(method='post',
              action='%s/filter/blocking_start/' % f_urls['domain']),
         input(type='hidden', name='pre_blocking_form', value='1'),
         input(type='hidden', name='blocking_action',
               value=blocking_action),
         input(type='hidden',
               name='object_selection',
               value=self.data.get('id')),
         input(type='submit',
               value=Domain.blocking_views[blocking_action].action_name),
     )
示例#3
0
    def make_content(self):
        nperm = None
        if self.owner_form:
            nperms = [
                nperms for nperms in self.owner_form.get_nperms()
                if nperms.split('.')[-1] == self.get_nperm()
            ]
            nperm = nperms[0] if nperms else None
        self.content = []
        # add/remove empty choice according
        if self.required and self.choices and self.choices[
                0] == self.empty_choice:  # remove empty choice:
            self.choices.pop(0)
        elif not self.required and (not self.choices or
                                    (self.choices and self.choices[0] !=
                                     self.empty_choice)):  # add empty choice:
            self.choices.insert(0, self.empty_choice)

        if self.choices:
            user = cherrypy.session.get('user')
            for value, caption in list(self.choices):
                if user and nperm and user.has_nperm(nperm, value):
                    continue
                if self.as_radio_buttons:
                    item = label(
                        input(attr(type='radio', name=self.name, value=value),
                              tagid('radio_input')), caption)
                else:
                    item = option(attr(value=value), caption)
                if unicode(value) == unicode(self.value):
                    if self.as_radio_buttons:
                        item.radio_input.checked = 'checked'
                    else:
                        item.selected = 'selected'
                self.add(item)
示例#4
0
 def build_or_row(self):
     return td(
         attr(cssc='or_cell', colspan=self.columns_count), 
         input(attr(
             type="button", value="OR-", onclick="removeOr(this)", 
             style="float: left;")), 
         div(attr(style="padding-top: 0.3em"), 'OR'))
示例#5
0
 def get_submit_row(self, hidden_fields=None):
     or_plus_button = input(attr(
         type="button", value="OR+", onclick="addOrForm(this)", 
         style="float: left;"))
     save_input = input(attr(
         id='save_input', type="text", name="save_input", 
         value=_('name'), disabled='disabled', 
         style="float: left; margin-left: 0.4em; display:none;"))
     save_button = input(attr(
         type="button", value="Save", onclick="saveUnionForm(this)", 
         style="float: left; margin-left: 0.4em"))
     submit_button = input(attr(
         type=u'button', value=u'OK', onclick='sendUnionForm(this)', 
         style="float: right;"))
     return tr(attr(cssc='submit_row'), td(
         or_plus_button, save_input, save_button, hidden_fields, 
         submit_button),)
示例#6
0
 def build_or_row(self):
     return td(
         attr(cssc='or_cell', colspan=self.columns_count),
         input(
             attr(type="button",
                  value="OR-",
                  onclick="removeOr(this)",
                  style="float: left;")),
         div(attr(style="padding-top: 0.3em"), 'OR'))
示例#7
0
 def make_content(self):
     self.content = []
     for value, caption in self.choices:
         if unicode(value) in self.value:
             checked = 'checked'
         else:
             checked = None
         self.add(
             span(
                 input(
                     attr(type='checkbox',
                          checked=checked,
                          name=self.name,
                          value=value)), caption, br()))
示例#8
0
 def __init__(self, context = None):
     super(BaseSiteMenu, self).__init__(context)
     c = self.context
     if c.has_key('menu'):
         self.menu_container.add(div(attr(id='main-menu'), c.menu))
     if c.get('body_id'):
         self.body.add(attr(id=c.body_id))
     if c.get('headline'):
         self.main.add(h1(c.headline))
     self.right_menu_container.add(
         input(save(self, 'history_checkbox'),
               attr(media_files=['/js/history_button.js', '/js/ext/ext-base.js', '/js/ext/ext-all.js'],
                    id='history_checkbox', 
                    type='checkbox', onchange='setHistory(this)')), 
               label(attr(for_id='history_checkbox'), _('history'))
     )
     if c.history:
         self.history_checkbox.checked = ['', 'checked'][c.history]
示例#9
0
    def _render_col(self, col_num, col):
        if col.get('icon'):
            val = img(attr(src=col['icon']))
        else:
            val = col['value']

        if col.get('url'):
            val = a(attr(href=col['url']), val)

        if col_num == 0:
            val = span(
                input(
                    attr(
                        type='checkbox',
                        name='object_selection',
                        value=col.get('value'),
                        cssc='object_selection',
                    ), val))

        return td(attr(cssc=col.get('cssc')), val)
示例#10
0
 def get_submit_row(self, hidden_fields=None):
     return tr(
         td(attr(colspan=self.columns_count, cssc='center'), hidden_fields,
            input(attr(type=u'submit', value=_(u'Save'), name=u'submit'))))
示例#11
0
 def get_submit_row(self, hidden_fields=None):
     return tr(td(attr(colspan=self.columns_count, cssc='center'), 
                  hidden_fields, 
                  input(attr(type=u'submit', value=_(u'Save'), name=u'submit'))
                 ))
示例#12
0
 def get_submit_row(self):
     return tr(td(attr(colspan=self.columns_count, cssc='center'), input(attr(type=u'submit', value=self.form.submit_button_text, name=u'submit'))))
示例#13
0
 def get_submit_row(self):
     return div(input(attr(type=u'submit', value=u'Save set', name=u'submit')))
示例#14
0
 def get_submit_row(self):
     return tr(td(
         attr(colspan=self.columns_count, cssc='center'), 
         input(attr(type=u'submit', value=u'Save set', name=u'submit'))))
示例#15
0
 def get_submit_row(self):
     return div(attr(cssc='center'), 
         input(attr(type=u'submit', value=u'Save', name=u'submit')))
示例#16
0
 def get_submit_row(self):
     return div(attr(cssc='center'),
                input(attr(type=u'submit', value=u'Save', name=u'submit')))
示例#17
0
 def get_submit_row(self):
     return div(input(attr(type=u'submit', value=u'Save set', name=u'submit')))
示例#18
0
 def get_submit_row(self):
     return tr(td(
         attr(colspan=self.columns_count, cssc='center'),
         input(attr(type=u'submit', value=u'Save set', name=u'submit'))))
示例#19
0
    def __init__(self, itertable, *content, **kwd):
        super(WIterTable, self).__init__(*content, **kwd)
        self.media_files = [
            '/js/logging.js',
            '/js/itertable.js',
            '/css/itertable.css',
        ]

        self.tag = 'table'
        self.cssc = 'itertable'
        self.column_count = len(itertable.header)

        sort_col_num, sort_direction = itertable.get_sort()

        header = tr(attr(cssc="wi_header"))

        for i, htext in enumerate(itertable.header):
            col_num = i - 1
            if col_num == -1:  # first column is ID
                header.add(th(attr(id='id_column_header_cell'), htext))
            else:
                sort_dir = 1
                if col_num == sort_col_num and sort_direction:  # rendering column, according which is table sorted, so reverse direction for next click on this column
                    sort_dir = 0
                th_cell = th(
                    a(
                        attr(href=append_getpar_to_url(
                            add_par_dict={
                                'sort_col': col_num,
                                'sort_dir': sort_dir
                            },
                            del_par_list=['load', 'show_form'])), htext))
                if col_num == sort_col_num:
                    th_cell.cssc = 'sorted ' + ['descending', 'ascending'
                                                ][sort_direction]
                header.add(th_cell)
        self.add(thead(header))

        rows = []
        for row_num, irow in enumerate(itertable):
            row = tr(attr(cssc='row%s' % ((row_num % 2) + 1)))
            for col_num, col in enumerate(irow):
                row.add(self._render_col(col_num, col))
            rows.append(row)
        self.add(tbody(rows))

        # Pager
        pager = span()

        # Numbers of entries
        if itertable.num_rows_over_limit:
            num_rows = span(attr(cssc='warning'), itertable.num_rows)
        else:
            num_rows = itertable.num_rows

        if itertable.pagination:
            result_text = 'Displaying results %s - %s of %s' % (
                itertable.page_start,
                itertable.page_start + itertable.page_rows, num_rows)
        else:
            result_text = 'Displaying %s results' % (num_rows)
        pager.add(span(attr(cssc='pager_text'), noesc(result_text)))

        if itertable.pagination:
            if itertable.num_pages > 1:
                if itertable.current_page == 1:
                    first_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-first-disabled.gif'
                            )))
                    prev_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-prev-disabled.gif'
                            ))),
                else:
                    first_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.first_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-first.gif'
                            ))),
                    prev_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.prev_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-prev.gif'
                            ))),
                if itertable.current_page == itertable.last_page:
                    next_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-next-disabled.gif'
                            ))),
                    last_button = span(
                        attr(cssc='pager-button'),
                        img(
                            attr(
                                src=
                                '/css/ext/images/default/grid/page-last-disabled.gif'
                            )))
                else:
                    next_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.next_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-next.gif'
                            ))),
                    last_button = a(
                        attr(cssc='pager-button',
                             href='?page=%s' % itertable.last_page),
                        img(
                            attr(
                                src='/css/ext/images/default/grid/page-last.gif'
                            )))

                pager.add(
                    first_button, prev_button,
                    form(
                        attr(style='display: inline;', method='GET'),
                        input(
                            attr(type='text',
                                 size='2',
                                 name='page',
                                 value=itertable.current_page)),
                        ' of %d ' % itertable.last_page), next_button,
                    last_button)
        self.add(tfoot(tr(td(attr(colspan=self.column_count), pager))))
示例#20
0
文件: table.py 项目: LANJr4D/FRED
    def __init__(self, itertable, *content, **kwd):
        super(WIterTable, self).__init__(*content, **kwd)
        self.media_files = ['/js/logging.js', 
                            '/css/itertable.css',
                           ]
        
        self.tag = 'table'
        self.cssc = 'itertable'
        self.column_count = len(itertable.header)
        
        sort_col_num, sort_direction = itertable.get_sort()
        
        header = tr(attr(cssc="wi_header"))

        for i, htext in enumerate(itertable.header):
            col_num = i - 1
            if col_num == -1: # first column is ID
                header.add(th(htext))
            else:
                sort_dir = 1
                if col_num == sort_col_num and sort_direction: # rendering column, according which is table sorted, so reverse direction for next click on this column 
                    sort_dir = 0
                th_cell = th(a(attr(href=append_getpar_to_url(add_par_dict={'sort_col': col_num, 'sort_dir': sort_dir}, del_par_list=['load', 'show_form'])), htext))
                if col_num == sort_col_num:
                    th_cell.cssc = 'sorted ' + ['ascending', 'descending'][sort_direction]
                header.add(th_cell)
        self.add(thead(header))
        
        rows = []
        for row_num, irow in enumerate(itertable):
            row = tr(attr(cssc='row%s' % ((row_num % 2) + 1)))
            for col in irow:
                if col.get('icon'):
                    val = img(attr(src=col['icon']))
                else:
                    val = col['value']
                
                if col.get('url'):
                    val = a(attr(href=col['url']), val)
                
                row.add(td(attr(cssc=col.get('cssc')), val))
            rows.append(row)
        self.add(tbody(rows))
        
        
        # Pager
        pager = span()

        # Numbers of entries 
        #if itertable.total_rows > itertable.num_rows:
        if itertable.num_rows_over_limit:
            num_rows = span(attr(cssc='warning'), itertable.num_rows)
        else:
            num_rows = itertable.num_rows
        
        pager.add(span(attr(cssc='pager_text'),
            noesc('Displaying results %s - %s of %s' % (itertable.page_start, itertable.page_start + itertable.page_rows, num_rows))
#            '%s: %s,' % (_('Number_of_pages'), itertable.last_page),
#            '%s: ' % _('entries'), num_rows, ',', 
#            '%s: %s' % (_('total'), itertable.total_rows),
#            #br()
        ))
        
        if itertable.num_pages > 1:
#            pager.add(
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.first_page), noesc('«')),
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.prev_page), noesc('‹')),
##                    a(attr(cssc='pager-button', href='?page=%s' % itertable._number), itertable._number),
#                form(attr(style='display: inline;', method='GET'), input(attr(type='text', size='2', name='page', value=itertable.current_page))),
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.next_page), noesc('›')),
#                a(attr(cssc='pager-button', href='?page=%s' % itertable.last_page), noesc('»'))
#            )
            if itertable.current_page == 1:
                first_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-first-disabled.gif')))
                prev_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-prev-disabled.gif'))), 
            else:
                first_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.first_page), img(attr(src='/css/ext/images/default/grid/page-first.gif'))),
                prev_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.prev_page), img(attr(src='/css/ext/images/default/grid/page-prev.gif'))),
            if itertable.current_page == itertable.last_page:
                next_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-next-disabled.gif'))),
                last_button = span(attr(cssc='pager-button'), img(attr(src='/css/ext/images/default/grid/page-last-disabled.gif'))) 
            else:
                next_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.next_page), img(attr(src='/css/ext/images/default/grid/page-next.gif'))),
                last_button = a(attr(cssc='pager-button', href='?page=%s' % itertable.last_page), img(attr(src='/css/ext/images/default/grid/page-last.gif'))) 
                
            pager.add(
                first_button,
                prev_button,
#                    a(attr(cssc='pager-button', href='?page=%s' % itertable._number), itertable._number),
                form(attr(style='display: inline;', method='GET'), input(attr(type='text', size='2', name='page', value=itertable.current_page)), ' of %d ' % itertable.last_page),
                next_button,
                last_button
            )
        self.add(tfoot(tr(td(attr(colspan=self.column_count), pager))))
        
示例#21
0
    def __init__(self, context = None):
        super(FilterPage, self).__init__(context)
        c = self.context
        
        lang_code = config.lang[0:2]
        if lang_code == 'cs': # conversion between cs and cz identifier of lagnguage
            lang_code = 'cz'
        self.head.add(script(attr(type='text/javascript'), 
                             'scwLanguage = "%s"; //sets language of js_calendar' % lang_code,
                             'scwDateOutputFormat = "%s"; // set output format for js_calendar' % config.js_calendar_date_format))
                     
        if context.get('form') and (config.debug or not c.get('itertable') or c.get('show_form')):
            self.main.add(c.form)
            self.main.add(script(attr(type='text/javascript'), 'Ext.onReady(function () {addFieldsButtons()})'))
        else:
            self.main.add(a(attr(href=append_getpar_to_url(add_par_dict={'load': 1, 'show_form': 1})), _('Modify filter'))) 
        
        if c.get('result'):
            self.main.add(p(c['result']))
        
        if c.get('itertable'):
            itertable = c.itertable
            self.main.add(WIterTable(itertable))
            self.main.add(p(_('Table_as'), a(attr(href='?txt=1'), 'TXT'), ',', a(attr(href='?csv=1'), 'CSV')))
            
            if config.debug:
                self.main.add(br(), br())
                header = tr(attr(cssc="header"))
                for htext in itertable.header:
                    header.add(td(htext))
                
                rows = [header]
                for irow in itertable:
                    row = tr()
                    for col in irow:
                        if col.get('icon'):
                            val = img(attr(src=col['icon']))
                        else:
                            val = col['value']
                        
                        if col.get('url'):
                            val = a(attr(href=col['url']), val)
                        
                        row.add(td(attr(cssc=col.get('cssc')), val))
                    rows.append(row)


                self.main.add(table(attr(id='objectlist', media_files='/css/objectlist.css'), rows))
                
                # Numbers of entries 
                if itertable.num_rows_over_limit:
                    num_rows = span(attr(cssc='warning'), itertable.num_rows)
                else:
                    num_rows = itertable.num_rows
                pageflip = span(
                    '%s: %s,' % (_('Number_of_pages'), itertable.last_page),
                    '%s: ' % _('entries'), num_rows, ',', 
                    br())
                
                # Pager
                if itertable.num_pages > 1:
                    pageflip.add(div(
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.first_page), noesc('«')),
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.prev_page), noesc('‹')),
                        form(attr(style='display: inline;', method='GET'), input(attr(type='text', size='2', name='page', value=itertable.current_page))),
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.next_page), noesc('›')),
                        a(attr(cssc='pager-button', href='?page=%s' % itertable.last_page), noesc('»'))
                    ))
                self.main.add(pageflip)
        if c.get("display_jump_links"):
            # Display the 'previous' and 'next' links (they auto-submit 
            # the form to display results for the prev./next time interval).
            jump_links_info = c.get("display_jump_links")
            self.main.add(div(a(
                attr(
                    title="Jumps to the previous time period.",
                    href=(jump_links_info['url'] + 
                        'filter/?jump_prev=1&field_name=%s' %
                        jump_links_info['field_name'])),
                "prev"), 
                a(attr(
                    title="Jumps to the next time period.",
                    href=(jump_links_info['url'] + 
                        'filter/?jump_next=1&field_name=%s' %
                        jump_links_info['field_name'])),
                    "next")))