コード例 #1
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
    def resolve_value(self, value):
        """ Handles displayed value formatting.

            Args:
                value: List of ccReg.RequestProperty objects.
            Returns:
                WebWidget subclass representing the HTML content of the field.
        """
        if not value:
            return u''
        vals = self._process_negations(value)
        inprops, outprops = self._separate_properties(vals)
        def cmp_props(a, b):
            if a['name'] > b['name']:
                return 1
            elif a['name'] == b['name']:
                return 0
            else:
                return -1
        table_in = table([self._format_property(prop) for prop in inprops]) if \
            inprops else span()
        table_out = table([self._format_property(prop) for prop in outprops]) if \
            outprops else span()
        return div(h4("input", attr(style="margin: 1px 1px 1px 1px;")),
            table_in,
            hr(),
            h4("output", attr(style="margin: 1px 1px 1px 1px;")),
            table_out)
コード例 #2
0
ファイル: pages.py プロジェクト: LANJr4D/FRED
    def __init__(self, context = None):
        context = context or {}
        
        if not context.get('title'):
            context['title'] = 'Daphne'
            if context.get('user') and context.get('corba_server'):
                context['title'] += ' - %s' % context.get('corba_server')

        super(BaseSite, self).__init__(context)
        c = self.context

        self.add_media_files('/css/basesite.css')
        self.header.add(
            div(attr(id='branding'), save(self, 'branding'),
                div(attr(id='user_tools'), save(self, 'user_tools'))),
            div(
                div(attr(id='menu_container'), save(self, 'menu_container')),
                div(attr(id='right_menu_container'), save(self, 'right_menu_container'), 
                )
            )
        )
        self.branding.add(h1('Daphne'))
        
        if c.get('user') and c.get('corba_server'):
            self.user_tools.add(span('Server: %s' % c.corba_server),
                                '|',
                                span('User: %s(%s %s)' % (c.user.login, c.user.firstname, c.user.surname)), 
                                '|', 
                                a(attr(href="/logout"), 'Log out'))

        if c.get('main'):
            self.main.add(c.main)
コード例 #3
0
ファイル: filterformlayouts.py プロジェクト: LANJr4D/FRED
 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'))
コード例 #4
0
ファイル: formlayouts.py プロジェクト: LANJr4D/FRED
 def layout_fields(self): 
     section_name = self.section_spec[0]
     section_id = self.section_spec[1]
     link_id = "%s_display" % section_id
     self.add(div(
         attr(style="text-align: right; padding-right: 1em;"),
         a(
             "hide", 
             attr(href="JavaScript:void();"), 
             onclick="show_hide('%s', '%s');" % (section_id, link_id),
             id=link_id)))
     self.add(table(tagid("table"), id=section_id))
     self.add(legend(section_name))
     fields_in_section = self.get_fields()
     hidden_fields = []
     for field in fields_in_section:
         if field.is_hidden:
             hidden_fields.append(field)
             continue
         label_str = self.get_label_name(field)
         errors = self.form.errors.get(field.name_orig, None)
         self.table.add(tr(
             td(label_str),
             td(errors, field)))
     self.add(hidden_fields)
コード例 #5
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
 def make_content(self):
     self.content = []
     oid = self._value
     if oid is not None:
         self.add(a(attr(href=f_urls[f_enum_name[oid.type]] + u'detail/?id=' + unicode(oid.id)),
                    oid.handle))
     else:
         self.add(div(attr(cssc='field_empty')))
コード例 #6
0
ファイル: fields.py プロジェクト: LANJr4D/FRED
 def make_content(self):
     self.content = []
     if self.choices:
         for value, caption in self.choices:
             if unicode(value) in self.value:
                 self.add(option(attr(value=value, selected='selected'), caption))
             else:
                 self.add(option(attr(value=value), caption))
コード例 #7
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
    def make_content(self):
        self.content = []

        if self.object_type_name is None: # this cannot be in constructor, becouse self.owner_detail is not known at construction time
            self.object_type_name = self.owner_detail.get_object_name()

        if self.value[self.handle_name] == '':
            self.add(div(attr(cssc='field_empty')))
        self.add(a(attr(href=f_urls[self.object_type_name] + 'detail/?id=%s' % self.value[self.id_name]), self.value[self.handle_name]))
コード例 #8
0
ファイル: fields.py プロジェクト: saimir/FRED
 def make_content(self):
     self.content = []
     if self.choices:
         for value, caption in self.choices:
             if unicode(value) in self.value:
                 self.add(
                     option(attr(value=value, selected='selected'),
                            caption))
             else:
                 self.add(option(attr(value=value), caption))
コード例 #9
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
 def make_content(self):
     self.content = []
     if self.value:
         cssc = 'disclose' + unicode(bool(self.value[1])) # => 'discloseTrue' or 'discloseFalse'
         if self.value[0] == '':
             self.add(div(attr(cssc=cssc + ' field_empty')))
         else:
             self.add(span(attr(cssc=cssc), self.value[0]))
     else:
         self.add(div(attr(cssc='field_empty'))) # in case no access (from permissions)
コード例 #10
0
ファイル: filterformlayouts.py プロジェクト: LANJr4D/FRED
 def create_layout(self):
     self.add(tbody(tagid('tbody')))
     form_count = len(self.form.forms)
     for i, inner_form in enumerate(self.form.forms):
         if i > 0 and i < form_count:
             self.tbody.add(tr(attr(cssc='or_row'), self.build_or_row()))
         self.tbody.add(tr(td(inner_form)))
     self.tbody.add(self.get_submit_row())
     self.tbody.add(script(attr(type='text/javascript'), noesc(self.union_form_js())))
     debug('After create unionlayout')
コード例 #11
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
 def make_content(self):
     self.content = []
     if not self._value:
         self.add(div(attr(cssc='field_empty')))
     else:
         self.add(a(attr(
             href=(
                 f_urls[f_enum_name[ ccReg.FT_FILE]] + u'detail/?id=' +
                 unicode(self._value))),
             self.handle))
コード例 #12
0
 def make_content(self):
     self.content = []
     if not self._value:
         self.add(div(attr(cssc='field_empty')))
     else:
         self.add(
             a(
                 attr(href=(f_urls[f_enum_name[ccReg.FT_FILE]] +
                            u'detail/?id=' + unicode(self._value))),
                 self.handle))
コード例 #13
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)

        return td(attr(cssc=col.get('cssc')), val)
コード例 #14
0
 def make_content(self):
     self.content = []
     oid = self._value
     if oid is not None:
         self.add(
             a(
                 attr(href=f_urls[f_enum_name[oid.type]] + u'detail/?id=' +
                      unicode(oid.id)), oid.handle))
     else:
         self.add(div(attr(cssc='field_empty')))
コード例 #15
0
 def __init__(self, context = None):
     super(SetInZoneStatusPage, self).__init__(context)
     c = self.context
     self.main.add(h2(_('Set InZone Status')))
     if c.get('handle'):
         self.main.add(h3(_('Domain'), c.handle))
     if c.get('success') and c.success:
         self.main.add(pre(attr(style='color:green;'), 
                           _("Function returns True.")))
     if c.get('error'):
         self.main.add(pre(attr(style='color:red;'), c.error))
コード例 #16
0
ファイル: filterformlayouts.py プロジェクト: saimir/FRED
 def create_layout(self):
     self.add(tbody(tagid('tbody')))
     form_count = len(self.form.forms)
     for i, inner_form in enumerate(self.form.forms):
         if i > 0 and i < form_count:
             self.tbody.add(tr(attr(cssc='or_row'), self.build_or_row()))
         self.tbody.add(tr(td(inner_form)))
     self.tbody.add(self.get_submit_row())
     self.tbody.add(
         script(attr(type='text/javascript'), noesc(self.union_form_js())))
     debug('After create unionlayout')
コード例 #17
0
ファイル: fields.py プロジェクト: CZ-NIC/fred-webadmin
 def make_content(self):
     self.content = []
     if self.tag == u'select':
         self.add(attr(multiple=u"multiple"))
     if self.choices:
         for value, caption in self.choices:
             if unicode(value) in self.value:
                 self.add(
                     option(attr(value=value, selected='selected'),
                            caption))
             else:
                 self.add(option(attr(value=value), caption))
コード例 #18
0
 def make_content(self):
     self.content = []
     if self.value:
         cssc = 'disclose' + unicode(bool(
             self.value[1]))  # => 'discloseTrue' or 'discloseFalse'
         if self.value[0] == '':
             self.add(div(attr(cssc=cssc + ' field_empty')))
         else:
             self.add(span(attr(cssc=cssc), self.value[0]))
     else:
         self.add(div(attr(
             cssc='field_empty')))  # in case no access (from permissions)
コード例 #19
0
    def make_content(self):
        self.content = []

        if self.object_type_name is None:  # this cannot be in constructor, becouse self.owner_detail is not known at construction time
            self.object_type_name = self.owner_detail.get_object_name()

        if self.value[self.handle_name] == '':
            self.add(div(attr(cssc='field_empty')))
        self.add(
            a(
                attr(href=f_urls[self.object_type_name] +
                     'detail/?id=%s' % self.value[self.id_name]),
                self.value[self.handle_name]))
コード例 #20
0
ファイル: pages.py プロジェクト: CZ-NIC/fred-webadmin
 def __init__(self, context=None):
     super(DomainFilterPage, self).__init__(context)
     c = self.context
     if hasattr(self.main, 'exports'):
         self.main.exports.add(
             p(
                 _('Export for out-of-zone notification'),
                 a(
                     attr(href='?txt=1&%s' %
                          self.NOTIFICATION_EXPORT_COLUMNS_QUERY), 'TXT'),
                 ',',
                 a(
                     attr(href='?csv=1&%s' %
                          self.NOTIFICATION_EXPORT_COLUMNS_QUERY), 'CSV')))
コード例 #21
0
ファイル: adifdetaillayouts.py プロジェクト: LANJr4D/FRED
    def _render_keyset(self, keyset_detail):
        registrar_detail = keyset_detail.fields.get("registrar").current_field.inner_detail  # registrar of keyset

        handle_field = keyset_detail.fields["handle_url"]
        registrar_field = registrar_detail.fields["handle_url"]
        admins_field = keyset_detail.fields["admins"]
        dsrecords_field = keyset_detail.fields["dsrecords"]
        dnskeys_field = keyset_detail.fields["dnskeys"]

        handle_label = self.get_label_name(handle_field)
        registrar_label = self.get_label_name(_("Registrar"))
        admins_label = self.get_label_name(_("Tech. contacts"))
        dsrecords_label = self.get_label_name(_("DS records"))
        dnskeys_label = self.get_label_name(_("DNSKeys"))

        self.add(tr(td(attr(cssc="left_label"), handle_label), td(handle_field)))
        self.add(tr(td(attr(cssc="left_label"), registrar_label), td(registrar_field)))

        for i, admin_detail in enumerate(admins_field.current_field.inner_details):
            row = tr()
            if i == 0:
                row.add(
                    td(attr(cssc="left_label", rowspan=len(admins_field.current_field.inner_details)), admins_label)
                )
            email_part = ""
            if admin_detail.fields["email"].value:
                email_part = [", ", admin_detail.fields["email"]]
            row.add(td(attr(enclose_content=True), admin_detail.fields["handle_url"], email_part))
            self.add(row)

        for i, dsrecord_detail in enumerate(dsrecords_field.current_field.inner_details):
            row = tr()
            if i == 0:
                row.add(
                    td(
                        attr(cssc="left_label", rowspan=len(dsrecords_field.current_field.inner_details)),
                        dsrecords_label,
                    )
                )

            cell = td(attr(enclose_content=True))
            cell.add(dsrecord_detail.fields["keyTag"])

            cell.add(dsrecord_detail.fields["digest"], " (", dsrecord_detail.fields["digestType"], ")")

            row.add(cell)
            self.add(row)

        for i, dnskey_detail in enumerate(dnskeys_field.current_field.inner_details):
            row = tr()
            if i == 0:
                row.add(
                    td(attr(cssc="left_label", rowspan=len(dnskeys_field.current_field.inner_details)), dnskeys_label)
                )

            cell = td(attr(enclose_content=True))
            cell.add(dnskey_detail.fields["key"])

            row.add(cell)
            self.add(row)
コード例 #22
0
 def _render_check_status(self, tests_table, check_status,
                          is_current_status):
     col_tag = th if is_current_status else td
     tests_table.footer.add(tr(col_tag(attr(colspan=self.col_count - 3), 'Overall status:'),
                               col_tag(span(attr(title=enums.CHECK_STATUS_DESCS[check_status.status]),
                                            enums.CHECK_STATUS_NAMES[check_status.status])),
                               td(get_detail('logger', check_status.logd_request_id).user_name \
                                  if check_status.logd_request_id else _('automat')),
                               td(attr(cssc='no-wrap'), check_status.update)))
     if is_current_status:
         if check_status.status == 'ok':
             tests_table.footer.content[0].add_css_class('status_ok')
         elif check_status.status == 'fail':
             tests_table.footer.content[0].add_css_class('status_fail')
コード例 #23
0
    def layout_fields(self):
        #fields_in_section = self.get_fields()

        #        for field in fields_in_section:
        #            field.create_inner_detail() # creates field.inner_detail
        #            label_str = self.get_label_name(field)
        #            #import pdb; pdb.set_trace()
        #            self.tbody.add(tr(td(attr(cssc='left_label'), label_str),
        #                              td(field.inner_detail.fields['name']),
        #                              td(field.inner_detail.fields['email'])
        #                             ))

        date_and_registrar_fields_names = [
            ['createDate', 'createRegistrar'],
            ['updateDate', 'updateRegistrar'],
            ['transferDate', None],
            ['expirationDate', None],
            ['valExDate', None],
            ['outZoneDate', None],
            ['deleteDate', None],
        ]
        date_and_registrar_fields = [[
            self.detail.fields.get(date_field_name),
            self.detail.fields.get(registrar_field_name)
        ] for date_field_name, registrar_field_name in
                                     date_and_registrar_fields_names]

        for i, [date_field,
                registrar_field] in enumerate(date_and_registrar_fields):
            if not date_field:
                continue

            row = tr()

            if registrar_field:
                colspan_attr = attr()
                registrar_field.create_inner_detail(
                )  # creates field.inner_detail
            else:
                colspan_attr = attr(colspan=3)

            label_str = self.get_label_name(date_field)
            row.add(td(attr(cssc='left_label'), label_str),
                    td(colspan_attr, date_field))
            if registrar_field:
                row.add(th('by_registrar:'),
                        td(registrar_field.inner_detail.fields['handle_url']))
            self.tbody.add(row)
コード例 #24
0
    def close(self, **kwd):
        '''Close and invalidate'''
        log_req = self._create_log_req_for_object_view(
            'PublicRequestInvalidate', **kwd)
        try:
            cherrypy.session['Admin'].processPublicRequest(
                int(kwd['id']), True)
            log_req.result = 'Success'
        except ccReg.Admin.REQUEST_BLOCKED:
            log_req.result = 'Fail'
            raise CustomView(
                self._render(
                    'error', {
                        'message': [
                            _(u'Request cannot be accepted.'
                              u'You can return back to '),
                            a(
                                attr(href=f_urls[self.classname] +
                                     'detail/?id=%s' % kwd['id']),
                                _('public request.'))
                        ]
                    }))
        finally:
            log_req.close()

        raise cherrypy.HTTPRedirect(f_urls[self.classname] +
                                    'filter/?reload=1&load=1')
コード例 #25
0
 def _format_property(self, prop):
     val = prop["value"]
     neg = "(neg)" if prop["neg"] else ""
     indent_style = "padding-left: 2em;" if prop["child"] else ""
     res = tr(td("%s %s:" % (neg, prop["name"]), attr(style=indent_style)),
              td("%s" % val))
     return res
コード例 #26
0
ファイル: listtable.py プロジェクト: CZ-NIC/fred-webadmin
    def printout(self, handle, **kwd):
        lang_code = config.lang[:2]
        if lang_code == 'cs':  # conversion between cs and cz identifier of lagnguage
            lang_code = 'cz'
        context = {'main': div()}
        context['main'].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 cherrypy.request.method == 'POST':
            form = ObjectPrintoutForm(data=kwd)
            if form.is_valid():
                for_time = form.cleaned_data['for_time']
                props = [('handle', handle), ('for_time', for_time)]
                log_req = create_log_request('RecordStatement',
                                             properties=props)
                try:
                    return self._get_printout_pdf(handle, for_time)
                except Registry.RecordStatement.OBJECT_NOT_FOUND:
                    form.add_error(
                        'for_time',
                        _('Object "{}" was not found for the given date.'.
                          format(handle)))
                finally:
                    log_req.close()
        else:
            form = ObjectPrintoutForm()

        context['heading'] = _('Download printout')
        context['form'] = form
        return self._render('printout', context)
コード例 #27
0
    def layout_fields(self):
        fields_in_section = self.get_fields()

        for field in fields_in_section:
            label_str = self.get_label_name(field)
            self.tbody.add(
                tr(td(attr(cssc='left_label'), label_str), td(field)))
コード例 #28
0
    def unblock(self, id):
        context = DictLookup()
        try:
            reg_id = int(id)
        except (TypeError, ValueError):
            context.message = _("Required_integer_as_parameter")
            raise CustomView(self._render('error', ctx=context))

        return_message = [
            _(u'You can return back to '),
            a(attr(href=f_urls[self.classname] + 'detail/?id=%s' % reg_id),
              _('registrar.'))
        ]

        admin = cherrypy.session.get('Admin')
        if not admin.isRegistrarBlocked(reg_id):
            context.message = [_("This registrar is not blocked.")
                               ] + return_message
            return self._render('error', ctx=context)
        else:
            log_req = utils.create_log_request('RegistrarUpdate',
                                               [['blocked', 'False']],
                                               [[self.classname, reg_id]])
            try:
                admin.unblockRegistrar(reg_id, log_req.request_id)
                log_req.result = 'Success'
            finally:
                log_req.close()

            context.main = [_("Registrar successfully unblocked.")
                            ] + return_message
            return self._render('base', ctx=context)
コード例 #29
0
ファイル: adif.py プロジェクト: LANJr4D/FRED
    def unblock(self, id):
        context = DictLookup()
        try:
            reg_id = int(id)
        except (TypeError, ValueError):
            context.message = _("Required_integer_as_parameter")
            raise CustomView(self._render('error', ctx=context))

        return_message = [
            _(u'You can return back to '),
            a(attr(href=f_urls[self.classname] + 'detail/?id=%s' % reg_id),
              _('registrar.'))
        ]

        admin = cherrypy.session.get('Admin')
        if not admin.isRegistrarBlocked(reg_id):
            context.message = [_("This registrar is not blocked.")] + return_message
            return self._render('error', ctx=context)
        else:
            log_req = utils.create_log_request('RegistrarUpdate', [['blocked', 'False']], [[self.classname, reg_id]])
            try:
                admin.unblockRegistrar(reg_id, log_req.request_id)
                log_req.result = 'Success'
            finally:
                log_req.close()

            context.main = [_("Registrar successfully unblocked.")] + return_message
            return self._render('base', ctx=context)
コード例 #30
0
    def _get_check_messages_list(self, check):
        messages = c2u(
            cherrypy.session['Verification'].getContactCheckMessages(
                u2c(check.contact_id)))

        if len(messages):
            messages_table = SimpleTable(
                header=[
                    _('Id'),
                    _('Created'),
                    _('Channel'),
                    _('Type'),
                    _('Updated'),
                    _('Status')
                ],
                data=[(a(
                    attr(href=f_urls['mail' if msg.type_handle ==
                                     'email' else 'message'] +
                         'detail/?id=%s' % msg.id),
                    img(src='/img/icons/open.png')), msg.created,
                       msg.type_handle, msg.content_handle, msg.updated,
                       msg.status) for msg in messages],
                cssc='itertable')
            messages_table.media_files.append('/css/itertable.css')
            return messages_table
        else:
            return _('No messages have been sent.')
コード例 #31
0
ファイル: formlayouts.py プロジェクト: saimir/FRED
 def layout_start(self):
     section_name = self.section_spec[0]
     section_id = self.section_spec[1]
     link_id = "%s_display" % section_id
     if section_name:
         self.add(legend(section_name))
     self.add(div(
         attr(style="text-align: right; padding-right: 1em;"),
         a(
             "hide", 
             attr(href="JavaScript:void();"), 
             onclick="show_hide('%s', '%s');" % (section_id, link_id),
             id=link_id, 
             title="Click to show or hide the fieldset contents.")))
     self.add(table(
         tagid('table'), attr(cssc="form_table"), id=section_id))
コード例 #32
0
ファイル: formlayouts.py プロジェクト: saimir/FRED
    def create_layout(self):
        form = self.form
        self.add(tbody(tagid('tbody')))
        
        if form.non_field_errors():
            self.tbody.add(tr(td(attr(colspan=self.columns_count), _('Errors:'), form.non_field_errors())))
        hidden_fields = []
        for field in form.fields.values():
            if field.is_hidden:
                hidden_fields.append(field)
                continue
            
            label_str = self.get_label_name(field)
            
            if field.required:
                cell_tag = th
            else:
                cell_tag = td
            
            errors = form.errors.get(field.name_orig, None)
                
            self.tbody.add(tr(
                cell_tag(label(label_str)),
                td(errors, field)))
        self.add(hidden_fields)

        if not form.is_nested:
            self.tbody.add(self.get_submit_row())
コード例 #33
0
    def make_content(self):
        def _add_row(i, j, detail):
            history_tr = tr()
            history_tr.cssc = ''
            if i > 0:
                history_tr.cssc += ' history_row'
            if detail:
                history_tr.add(detail)
            else:
                history_tr.add(
                    td(attr(colspan=len(thead_row.content) - 3),
                       div(attr(cssc='field_empty'))))
            if j == 0:
                history_tr.cssc += ' history_division_row'
                rowspan_attr = attr(rowspan=len(self.inner_details[i]) or 1,
                                    cssc='history_dates_field')
                log_req_link = a(attr(
                    href=logger_url), img(src='/img/icons/open.png')
                                 ) if history_rec.requestId else ''
                history_tr.add(td(rowspan_attr, date_from),
                               td(rowspan_attr, date_to),
                               td(rowspan_attr, log_req_link))
            self.add(history_tr)

        self.content = []
        self.create_inner_details()

        if self.inner_details:
            # Header:
            thead_row = tr()
            #  Find one (any of them) innter detail for obtaining field labels (cannot take first one, becouse firt can be empty list):
            some_detail = None
            for details in self.inner_details:
                if details:
                    some_detail = details[0]
                    break

            for field in some_detail.fields.values():
                thead_row.add(th(field.label))
            thead_row.add(th(_('From')), th(_('To')), th(_('L.')))
            self.add(thead(thead_row))

            # rows (each row is made from one detail of object in object list
            self.add(tbody(tagid('tbody')))
            for i in range(len(self.inner_details)):
                history_rec = self.value[i]
                date_from = history_rec._from  #recoder.corba_to_datetime(history_rec._from)
                date_to = history_rec.to  #recoder.corba_to_datetime(history_rec.to)
                logger_url = f_urls[
                    'logger'] + 'detail/?id=%s' % history_rec.requestId

                if self.inner_details[i]:
                    for j, detail in enumerate(self.inner_details[i]):
                        _add_row(i, j, detail)
                else:
                    _add_row(i, 0, None)

        else:
            self.add(div(attr(cssc='field_empty')))
コード例 #34
0
ファイル: detaillayouts.py プロジェクト: CZ-NIC/fred-webadmin
    def create_layout(self):
        detail = self.detail
        self.add(tbody(tagid('tbody')))

        for field in detail.fields.values():
            label_str = self.get_label_name(field)
            self.tbody.add(
                tr(td(attr(cssc='left_label'), label(label_str)), td(field)))
コード例 #35
0
 def __init__(self, context = None):
     super(MailDetail, self).__init__(context)
     c = self.context
     if c.get('result'):
         self.main.add(h1(_('Detail_of_%s' % self.get_object_name())))
         self.main.add(adifdetails.MailDetail(c.result, c.history))
         if config.debug:
             self.main.add('MailDETAIL:', div(attr(style='width: 1024px; overflow: auto;'), pre(unicode(c.result).replace(u', ', u',\n'))))
コード例 #36
0
ファイル: adiffields.py プロジェクト: LANJr4D/FRED
 def make_content(self):
     self.add(self.fields[3],
              span(attr(cssc='date_interval'),
                   save(self, 'date_interval_span'),
                   _('from') + ':', self.fields[0],
                   _('to') + ':', self.fields[1],
              ),
              span(save(self, 'date_interval_offset_span'),
                   attr(cssc='date_interval_offset'), _('offset') + ':', self.fields[4]),
                  
              span(attr(cssc='date_day'),
                   save(self, 'date_day_span'),
                   _('day') + ':', self.fields[2]
                  ),
             )
     self.content_initialized = True
     self.set_iterval_date_display()
コード例 #37
0
ファイル: adifsections.py プロジェクト: LANJr4D/FRED
    def layout_fields(self):
        #fields_in_section = self.get_fields()
        
#        for field in fields_in_section:
#            field.create_inner_detail() # creates field.inner_detail
#            label_str = self.get_label_name(field)
#            #import pdb; pdb.set_trace()
#            self.tbody.add(tr(td(attr(cssc='left_label'), label_str),
#                              td(field.inner_detail.fields['name']),
#                              td(field.inner_detail.fields['email'])
#                             )) 
        
        date_and_registrar_fields_names = [
            ['createDate', 'createRegistrar'], 
            ['updateDate', 'updateRegistrar'],
            ['transferDate', None],
            ['expirationDate', None],
            ['valExDate', None],                                      
            ['outZoneDate', None],                                      
            ['deleteDate', None],                                      
        ]
        date_and_registrar_fields = [
            [self.detail.fields.get(date_field_name), self.detail.fields.get(registrar_field_name)] 
            for date_field_name, registrar_field_name in date_and_registrar_fields_names
        ]

        for i, [date_field, registrar_field] in enumerate(date_and_registrar_fields):
            if not date_field:
                continue
            
            row = tr()
            
            if registrar_field:
                colspan_attr = attr()
                registrar_field.create_inner_detail() # creates field.inner_detail
            else:
                colspan_attr = attr(colspan=3)
            
            label_str = self.get_label_name(date_field)
            row.add(td(attr(cssc='left_label'), label_str),
                    td(colspan_attr, date_field))
            if registrar_field:
                row.add(th('by_registrar:'),
                        td(registrar_field.inner_detail.fields['handle_url'])
                       )
            self.tbody.add(row)
コード例 #38
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
 def _format_property(self, prop):
     val = prop["value"]
     neg = "(neg)" if prop["neg"] else ""
     indent_style = "padding-left: 2em;" if prop["child"] else ""
     res = tr(td(
         "%s %s:" % (neg, prop["name"]), attr(style=indent_style)),
         td("%s" % val))
     return res
コード例 #39
0
ファイル: sectionlayouts.py プロジェクト: LANJr4D/FRED
 def layout_fields(self):        
     fields_in_section = self.get_fields()
     
     for field in fields_in_section:
         label_str = self.get_label_name(field)
         self.tbody.add(tr(td(attr(cssc='left_label'), label_str),
                              td(field)
                          ))
コード例 #40
0
ファイル: filterformlayouts.py プロジェクト: LANJr4D/FRED
 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),)
コード例 #41
0
 def add_to_bottom(self):
     ''' Usualy used for filterpanel and/or edit link. '''
     if self.editable:
         self.add(
             p(
                 a(
                     attr(href=u'../edit/?id=' +
                          unicode(self.data.get('id'))), _('Edit'))))
コード例 #42
0
ファイル: adifdetaillayouts.py プロジェクト: saimir/FRED
    def _render_keyset(self, keyset_detail):
        registrar_detail = keyset_detail.fields.get('registrar').current_field.inner_detail # registrar of keyset
        
        handle_field = keyset_detail.fields['handle_url']
        registrar_field = registrar_detail.fields['handle_url']
        admins_field = keyset_detail.fields['admins']
        dsrecords_field = keyset_detail.fields['dsrecords']
        dnskeys_field = keyset_detail.fields['dnskeys']
        
        handle_label = self.get_label_name(handle_field)
        registrar_label = self.get_label_name(_('Registrar'))
        admins_label = self.get_label_name(_('Tech. contacts'))
        dsrecords_label = self.get_label_name(_('DS records'))
        dnskeys_label = self.get_label_name(_('DNSKeys'))

        
        self.add(tr(td(attr(cssc='left_label'), handle_label), td(handle_field)))
        self.add(tr(td(attr(cssc='left_label'), registrar_label), td(registrar_field)))
        
        for i, admin_detail in enumerate(admins_field.current_field.inner_details):
            row = tr()
            if i == 0:
                row.add(td(attr(cssc='left_label', rowspan=len(admins_field.current_field.inner_details)), 
                                admins_label))
            email_part = ''
            if admin_detail.fields['email'].value:
                email_part = [', ' , admin_detail.fields['email']] 
            row.add(td(attr(enclose_content=True), admin_detail.fields['handle_url'], email_part))
            self.add(row)
        
        for i, dsrecord_detail in enumerate(dsrecords_field.current_field.inner_details):
            row = tr()
            if i == 0:
                row.add(td(attr(cssc='left_label', rowspan=len(dsrecords_field.current_field.inner_details)), 
                           dsrecords_label))
            
            cell = td(attr(enclose_content=True))
            cell.add(dsrecord_detail.fields['keyTag'])

            cell.add(dsrecord_detail.fields['digest'], ' (', dsrecord_detail.fields['digestType'],')')

            row.add(cell)
            self.add(row)

        for i, dnskey_detail in enumerate(dnskeys_field.current_field.inner_details):
            row = tr()
            if i == 0:
                row.add(td(attr(cssc='left_label', rowspan=len(dnskeys_field.current_field.inner_details)), 
                           dnskeys_label))
            
            cell = td(attr(enclose_content=True))
            cell.add(dnskey_detail.fields['key'])

            row.add(cell)
            self.add(row)
コード例 #43
0
ファイル: pages.py プロジェクト: CZ-NIC/fred-webadmin
    def __init__(self, context):
        super(ContactCheckDetail, self).__init__(context)
        c = self.context
        self.head.add(
            script(attr(type='text/javascript'),
                   'ajaxSourceURLOfChecks = "%s";' % c.ajax_json_filter_url,
                   'dontDisplayFilter = true;'))
        self.main.add(h1(_('Contact checks detail'), '-', c.test_suit_name))
        if c.contact_detail is None:
            self.main.add(h2(_('Contact was deleted')))
            verified_info = None
        else:
            if contact_has_state(c.contact_detail, 'validatedContact'):
                verified_info = _('Contact is validated')
            elif contact_has_state(c.contact_detail, 'identifiedContact'):
                verified_info = _('Contact is identified')
            else:
                verified_info = None

        self.main.add(
            table(
                attr(cssc='section_table'),
                tr(
                    td(attr(cssc='left_label'), _('Contact:'),
                       td(a(attr(href=c.contact_url),
                            c.check.contact_handle)))),
                tr(
                    td(attr(cssc='left_label'), _('Created: '),
                       td(c.check.created))),
                tr(
                    td(attr(cssc='left_label'), _('Verified status:'),
                       td(strong(attr(cssc='highlight_ok'), verified_info))))
                if verified_info else None))
        self.main.add(c.detail)
        if c.contact_detail:
            self.main.add(h2('Detail of contact:'))
            self.main.add(
                adifdetails.ContactDetail(c.contact_detail,
                                          c.history,
                                          is_nested=True))
        if cherrypy.session.get('history', False):
            self.main.add(h2(_('All checks of this contact:')))
            self.main.add(c.table_tag)

            self.main.add(h2(_('Contact checks messages:')))
            self.main.add(c.messages_list)

        lang_code = config.lang[:2]
        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))
コード例 #44
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]
コード例 #45
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
    def make_content(self):
        def _add_row(i, j, detail):
            history_tr = tr()
            history_tr.cssc = ''
            if i > 0:
                history_tr.cssc += ' history_row'
            if detail:
                history_tr.add(detail)
            else:
                history_tr.add(td(attr(colspan=len(thead_row.content) - 3), div(attr(cssc='field_empty'))))
            if j == 0:
                history_tr.cssc += ' history_division_row'
                rowspan_attr = attr(rowspan=len(self.inner_details[i]) or 1, cssc='history_dates_field')
                log_req_link = a(attr(href=logger_url), img(src='/img/icons/open.png')) if history_rec.requestId else ''
                history_tr.add(
                    td(rowspan_attr, date_from),
                    td(rowspan_attr, date_to),
                    td(rowspan_attr, log_req_link)
                )
            self.add(history_tr)


        self.content = []
        self.create_inner_details()

        if self.inner_details:
            # Header:
            thead_row = tr()
            #  Find one (any of them) innter detail for obtaining field labels (cannot take first one, becouse firt can be empty list):
            some_detail = None
            for details in self.inner_details:
                if details:
                    some_detail = details[0]
                    break

            for field in some_detail.fields.values():
                thead_row.add(th(field.label))
            thead_row.add(th(_('From')), th(_('To')), th(_('L.')))
            self.add(thead(thead_row))

            # rows (each row is made from one detail of object in object list
            self.add(tbody(tagid('tbody')))
            for i in range(len(self.inner_details)):
                history_rec = self.value[i]
                date_from = history_rec._from #recoder.corba_to_datetime(history_rec._from)
                date_to = history_rec.to #recoder.corba_to_datetime(history_rec.to)
                logger_url = f_urls['logger'] + 'detail/?id=%s' % history_rec.requestId

                if self.inner_details[i]:
                    for j, detail in enumerate(self.inner_details[i]):
                        _add_row(i, j, detail)
                else:
                    _add_row(i, 0, None)

        else:
            self.add(div(attr(cssc='field_empty')))
コード例 #46
0
    def layout_start(self):
        section_name = self.section_spec[0]

        css_class = 'section_table'
        #        if self.detail.is_nested:
        #            css_class = 'nested_' + css_class
        self.cssc = css_class
        if section_name:
            self.add(caption(attr(cssc='section_label'), section_name + ':'))
        self.add(tbody(tagid('tbody')))
コード例 #47
0
ファイル: sectionlayouts.py プロジェクト: LANJr4D/FRED
    def layout_start(self):
        section_name = self.section_spec[0]

        css_class = 'section_table'
#        if self.detail.is_nested:
#            css_class = 'nested_' + css_class
        self.cssc=css_class
        if section_name:
            self.add(caption(attr(cssc='section_label'), section_name + ':'))
        self.add(tbody(tagid('tbody')))
コード例 #48
0
 def index(self):
     context = DictLookup()
     context.main = ul(
         li(
             a(
                 attr(
                     href=
                     '''/file/filter/?json_data=[{%22presention|CreateTime%22:%22on%22,%22CreateTime/3%22:%2210%22,%22CreateTime/0/0%22:%22%22,%22CreateTime/0/1/0%22:%220%22,%22CreateTime/0/1/1%22:%220%22,%22CreateTime/1/0%22:%22%22,%22CreateTime/1/1/0%22:%220%22,%22CreateTime/1/1/1%22:%220%22,%22CreateTime/4%22:%22-2%22,%22CreateTime/2%22:%22%22,%22presention|Type%22:%22000%22,%22Type%22:%225%22}]'''
                 ), _('Domain expiration letters'))))
     return self._render('summary', ctx=context)
コード例 #49
0
ファイル: adiffields.py プロジェクト: saimir/FRED
 def make_content(self):
     self.add(
         self.fields[3],
         span(
             attr(cssc='date_interval'),
             save(self, 'date_interval_span'),
             _('from') + ':',
             self.fields[0],
             _('to') + ':',
             self.fields[1],
         ),
         span(save(self, 'date_interval_offset_span'),
              attr(cssc='date_interval_offset'),
              _('offset') + ':', self.fields[4]),
         span(attr(cssc='date_day'), save(self, 'date_day_span'),
              _('day') + ':', self.fields[2]),
     )
     self.content_initialized = True
     self.set_iterval_date_display()
コード例 #50
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
 def _add_row(i, j, detail):
     history_tr = tr()
     history_tr.cssc = ''
     if i > 0:
         history_tr.cssc += ' history_row'
     if detail:
         history_tr.add(detail)
     else:
         history_tr.add(td(attr(colspan=len(thead_row.content) - 3), div(attr(cssc='field_empty'))))
     if j == 0:
         history_tr.cssc += ' history_division_row'
         rowspan_attr = attr(rowspan=len(self.inner_details[i]) or 1, cssc='history_dates_field')
         log_req_link = a(attr(href=logger_url), img(src='/img/icons/open.png')) if history_rec.requestId else ''
         history_tr.add(
             td(rowspan_attr, date_from),
             td(rowspan_attr, date_to),
             td(rowspan_attr, log_req_link)
         )
     self.add(history_tr)
コード例 #51
0
ファイル: detaillayouts.py プロジェクト: LANJr4D/FRED
 def create_layout(self):
     detail = self.detail
     self.add(tbody(tagid('tbody')))
     
     for field in detail.fields.values():
         label_str = self.get_label_name(field)
         self.tbody.add(tr(td(attr(cssc='left_label'), label(label_str)),
                           td(field)
                          )
                       )
コード例 #52
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
 def make_content(self):
     self.content = []
     if self.value:
         for i, oid in enumerate(self.value):
             if oid and oid.id:
                 if i != 0:
                     self.add(', ')
                 self.add(a(attr(href=f_urls[f_enum_name[oid.type]] + u'detail/?id=' + unicode(oid.id)),
 #                           strong(oid.handle)))
                            oid.handle))
コード例 #53
0
ファイル: pages.py プロジェクト: LANJr4D/FRED
 def __init__(self, context = None):
     super(AllFiltersPage, self).__init__(context)
     c = self.context
     if c.has_key('filters_list'):
         self.main.add(c['filters_list'])
         lang_code = config.lang[: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))
コード例 #54
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
 def make_content(self):
     self.content = []
     if self.value:
         for i, ref in enumerate(self.value):
             if ref and ref.id:
                 if i != 0:
                     self.add(', ')
                 if f_req_object_type_name.get(ref.type): # only object displayable by daphne will be links, others plain text:
                     self.add(a(attr(href=f_urls[f_req_object_type_name[ref.type]] + u'detail/?id=' + unicode(ref.id)),
                                '%s:%s' % (ref.type, ref.id)))
                 else:
                     self.add('%s:%s' % (ref.type, ref.id))
コード例 #55
0
ファイル: dfields.py プロジェクト: LANJr4D/FRED
    def make_content(self):
        self.content = []
        self.create_inner_details()

        if self.inner_details:
            # Header:
            thead_row = tr()
            for field in self.inner_details[0].fields.values():
                thead_row.add(th(field.label))
            thead_row.add(th(_('From')), th(_('To')), th(_('L.')))
            self.add(thead(thead_row))

            # rows (each row is made from one detail of object in object list
            self.add(tbody(tagid('tbody')))
            for i, detail in enumerate(self.inner_details):
                history_rec = self.value[i]
                date_from = history_rec._from #recoder.corba_to_datetime(history_rec._from)
                date_to = history_rec.to #recoder.corba_to_datetime(history_rec.to)
                logger_url = f_urls['logger'] + 'detail/?id=%s' % history_rec.requestId

                history_tr = tr()
                if i > 0:
                    history_tr.cssc = 'history_row'
                log_req_link = a(attr(href=logger_url), img(attr(src='/img/icons/open.png'))) if history_rec.requestId else ''
                history_tr.add(
                    detail,
                    td(attr(cssc='history_dates_field'), date_from),
                    td(attr(cssc='history_dates_field'), date_to),
                    td(attr(cssc='history_dates_field'), log_req_link)
                )
                self.add(history_tr)
        else:
            self.add(div(attr(cssc='field_empty')))