<%! import string def html_trim(text): return "".join([x.strip() for x in text.splitlines()]) %>\ <%page args="job, event, request, options" />\ <% xslt = '''\ t a ''' %>\ <%def name="event_layout(job, event, request, options, xslt)"> % if options.get('display_row_numbers', False): % endif % if options.get('enable_event_actions', False): % endif % if '_icon' in event: % endif
<%self:event_row_number job="${job}" event="${event}" request="${request}" options="${options}" /><%self:event_actions job="${job}" event="${event}" request="${request}" options="${options}" /> <%self:event_time job="${job}" event="${event}" request="${request}" options="${options}" /> <%self:event_icon job="${job}" event="${event}" request="${request}" options="${options}" />\ <%self:event_audit job="${job}" event="${event}" request="${request}" options="${options}" /> % if not event.raw: % else: <%self:event_raw job="${job}" event="${event}" request="${request}" options="${options}" xslt="${xslt}" />\ <%self:event_show_all job="${job}" event="${event}" request="${request}" options="${options}" />\ % endif <%self:event_fields job="${job}" event="${event}" request="${request}" options="${options}" />
\ <%def name="event_row_number(job, event, request, options)" filter="html_trim"> % if options['display_row_numbers']: ${event.offset+1} % endif \ \ <%def name="event_time(job, event, request, options)" filter="html_trim"> % if hasattr(event,'epoch'): % if event.time: % if i18n.current_lang_url_component()=="en-US": ${i18n.format_datetime_microseconds(event.get('_time', event.time)).replace(' ', '
', 1).replace(' ', ' ')} % else: ${i18n.format_datetime_microseconds(event.get('_time', event.time))} % endif % endif
% endif \ \ <%def name="event_icon(job, event, request, options)" filter="html_trim"> \ \ <%def name="event_audit(job, event, request, options)" filter="html_trim">\ <% decorations = {'decoration_audit_valid': _('Valid.'), 'decoration_audit_gap': _('Gap.'), 'decoration_audit_tampered': _('Tampered!'), 'decoration_audit_cantvalidate': _("Can't validate!")} %> % for decoration in event.fields.get('_decoration', []): % if decorations.has_key(str(decoration)):
${decorations[str(decoration)]|h}
% endif % endfor \ \ <%def name="event_raw(job, event, request, options, xslt)">\ % if event.pretty_printed:
${event.pretty_printed}
% elif event.raw.toXml() is None:
${event.raw | h}
% else: <% transform = event.raw.toXml(xslt) %>
${transform.replace('\n', '
') if options['replace_newlines'] else transform}
% endif % if event.json: <% lineCountIsInt = str(event.get('linecount','')).isdigit() qs = dict(count=1, field_list=",".join(request['field_list']), has_layout=0, offset=event.offset, sid=job.sid, segmentation=request['segmentation']) qs['replace_newlines'] = 1 if options['replace_newlines'] else 0 if request['earliest_time']: qs['earliest_time'] = request['earliest_time'] if request['latest_time']: qs['latest_time'] = request['latest_time'] qs['display_row_numbers'] = 1 if options['display_row_numbers'] else 0 qs['pretty_print'] = not options['pretty_print'] %> ${options['pretty_print'] and _("Show as raw text") or _("Show syntax highlighted")} % endif \ \ <%def name="event_show_all(job, event, request, options)" filter="html_trim"> <% lineCountIsInt = str(event.get('linecount','')).isdigit() qs = dict(count=1, field_list=",".join(request['field_list']), has_layout=0, offset=event.offset, sid=job.sid, segmentation=request['segmentation']) qs['replace_newlines'] = 1 if options['replace_newlines'] else 0 if request['earliest_time']: qs['earliest_time'] = request['earliest_time'] if request['latest_time']: qs['latest_time'] = request['latest_time'] if request['post_process']: qs['post_process'] = request['post_process'] qs['display_row_numbers'] = 1 if options['display_row_numbers'] else 0 %> % if event.raw.isTruncated is True and request['max_lines'] < max_lines_constraint: <% qs['max_lines'] = 0 qs['min_lines'] = request['min_lines'] qs['max_lines_constraint'] = request['max_lines_constraint'] qs['truncation_mode'] = 'truncate' %> % if lineCountIsInt: % if int(str(event.get('linecount', max_lines_constraint)))< (max_lines_constraint+1): ${_("Show all %s lines") % event.get('linecount', '')} % else: ${_("Show most relevant lines (Exceeds %s limit)") % max_lines_constraint} % endif: % else: Show All Lines % endif % elif lineCountIsInt and int(str(event.get('linecount', 0))) > request['min_lines']: <% qs['max_lines'] = request['min_lines'] qs['min_lines'] = request['min_lines'] qs['max_lines_constraint'] = request['max_lines_constraint'] %> ${_("Collapse back to %s lines") % request['min_lines']} % endif \ \ <%def name="event_actions(job, event, request, options)" filter="html_trim"> » \ \ <%def name="event_fields(job, event, request, options)" filter="html_trim"> \ \ <%def name="event_field_value_pair(field, name, value, is_highlighted, tags, enable_field_actions)" filter="html_trim"> ${name | h}=${value | h}  <%self:event_field_value_pair_tags tags="${tags}"/> \ % if enable_field_actions: <%self:event_field_value_pair_actions field="${field}"/>\ % endif \ \ <%def name="event_field_value_pair_tags(tags)" filter="html_trim"> % for tag in tags: ${tag | h}  % endfor \ \ <%def name="event_field_value_pair_actions(field)" filter="html_trim"> ${_("Options")} \ \ <%self:event_layout job="${job}" event="${event}" request="${request}" options="${options}" xslt="${xslt}"/>