Source

trac-ticketlinks / trac / ticket / templates / report_view.html

cmlenz 9652c61 




jruigrok c8af570 
cmlenz 9652c61 



rblank 1dc4396 
rblank 21e2385 



cmlenz 9652c61 



cboos 9f83d8a 
rblank cc6c721 
cmlenz 9652c61 

rblank fcff50a 
rblank 5bdce3e 
rblank fcff50a 




cboos 10f3fa9 















rblank fcff50a 




rblank 086fec6 
cmlenz 9652c61 
rblank 086fec6 


rblank 21e2385 
rblank 5bdce3e 
cboos 38af4dc 
cmlenz 9652c61 

jruigrok 13a2850 
cmlenz 9652c61 

cboos 38af4dc 
cmlenz 9652c61 

jruigrok 13a2850 
cmlenz 9652c61 

cboos 38af4dc 
cmlenz 9652c61 

jruigrok 13a2850 
cmlenz 9652c61 


rblank 5bdce3e 



rblank 93465ea 












cboos 03b2cd3 
cboos 8893135 
rblank cc6c721 
cboos 8893135 

rblank 93465ea 










cmlenz 9652c61 

rblank 93465ea 

cmlenz 9652c61 





cmlenz 26600b4 
cboos cba845b 



cmlenz 9652c61 

cboos 305f87c 
cmlenz 9652c61 











cboos d758c82 
jomae 908bdb9 
cmlenz 9652c61 





cboos d758c82 

cmlenz 9652c61 





rblank c41794b 
cmlenz 9652c61 




rblank c41794b 
cmlenz 9652c61 




rblank c41794b 
cmlenz 9652c61 




cmlenz 9d746c7 
cboos 9f83d8a 
cmlenz 9652c61 



rblank 62efb7e 

rblank f6939ff 
rblank 62efb7e 



cmlenz 9652c61 












rblank 93465ea 

rblank 5bdce3e 
cmlenz 9652c61 
cboos 9f83d8a 
cmlenz 9652c61 

jruigrok c8af570 
cboos f859ac5 


cmlenz 9652c61 

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      xmlns:i18n="http://genshi.edgewall.org/i18n"
      xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="layout.html" />
  <head>
    <title>$title</title>
    <script type="text/javascript" py:if="show_args_form">
      jQuery(document).ready(function($) {
        $("fieldset legend").enableFolding(false);
      });
    </script>
  </head>

  <body>
    <div id="content" class="report">
      <h1>$title
        <span py:if="numrows" class="numrows">(${ngettext('%(num)s match', '%(num)s matches', numrows)})</span>
      </h1>

      <form method="get" action="">
        <div id="prefs">
          <div>
            <label>
              Max items per page
              <input type="text" name="max" size="10" value="${max}" />
            </label>
            <fieldset id="reportfilters" py:if="show_args_form">
              <legend class="foldable">Arguments</legend>
              <table summary="Report arguments">
                <tbody>
                  <tr style="height: 1px"><td colspan="2"></td></tr>
                </tbody>
                <tbody py:for="(name, value) in sorted(args.items())" py:if="name != 'USER'">
                  <tr>
                    <th scope="row"><label>${name}</label></th>
                    <td class="filter">
                      <input type="text" name="${name}" value="${value or None}" size="42" />
                    </td>
                  </tr>
                </tbody>
              </table>
            </fieldset>
          </div>
          <div class="buttons">
            <input type="submit" value="${_('Update')}" />
          </div>
        </div>
      </form>

      <div py:if="description" id="description" xml:space="preserve">
        ${wiki_to_html(context, description)}
      </div>

      <div class="buttons">
        <form py:if="'REPORT_MODIFY' in perm(report.resource)" action="" method="get">
          <div>
            <input type="hidden" name="action" value="edit" />
            <input type="submit" value="${_('Edit report')}" accesskey="e" />
          </div>
        </form>
        <form py:if="'REPORT_CREATE' in perm(report.resource)" action="" method="get">
          <div>
            <input type="hidden" name="action" value="copy" />
            <input type="submit" value="${_('Copy report')}" />
          </div>
        </form>
        <form py:if="'REPORT_DELETE' in perm(report.resource)" action="" method="get">
          <div>
            <input type="hidden" name="action" value="delete" />
            <input type="submit" value="${_('Delete report')}" />
          </div>
        </form>
      </div>
      <h2 class="report-result" py:if="paginator.has_more_pages">
        Results <span class="numresults">(${paginator.displayed_items()})</span>
      </h2>
      <xi:include href="page_index.html" />
      <py:def function="column_headers()">
        <tr py:for="header_group in header_groups" class="trac-columns">
          <th py:for="header in header_group" py:if="not header.hidden" py:with="fullrow = header is header_group[-1]"
              colspan="${fullrow and '100' or None}" class="${header.asc is not None and ('desc', 'asc')[header.asc] or None}">
            <a py:strip="not sorting_enabled"
              href="${report_href(sort=header.col, asc=not header.asc)}">
              $header.title
            </a>
          </th>
        </tr>
      </py:def>
      <py:def function="group_heading(value_for_group, row_group)">
        <h2 py:if="value_for_group" class="report-result">
          <a py:strip="not row_group or '__grouplink__' not in row_group[0]" href="${row_group[0]['__grouplink__']}">$value_for_group</a>
          <span class="numrows" py:with="cnt = len(row_group)">
            (${cnt and ngettext('%(num)s match', '%(num)s matches', cnt) or _('No matches found.')})
          </span>
        </h2>
      </py:def>
      ${row_groups and group_heading(*row_groups[0]) or None}
      <table py:if="row_groups" class="listing tickets">
        <py:for each="groupindex, (value_for_group, row_group) in enumerate(row_groups)">
          <thead py:if="not groupindex">
            ${column_headers()}
          </thead>
          <tbody py:if="groupindex">
            <tr class="trac-group">
              <th colspan="100">
                ${group_heading(value_for_group or _('(empty)'), row_group)}
              </th>
            </tr>
            ${column_headers()}
          </tbody>

          <tbody>
            <py:for each="row in row_group">
              <tr py:for="cell_group in row.cell_groups"
                py:with="fullrow = len(cell_group) == 1;
                         td_attrs = fullrow and {'class': 'fullrow', 'colspan': 100} or {}"
                class="${'__color__' in row and 'color'+row.__color__+'-' or ''}${row.__idx__ % 2 and 'odd' or 'even'}"
                style="${'__bgcolor__' in row and 'background: '+row.__bgcolor__+';' or None
                }${'__fgcolor__' in row and 'color: '+row.__fgcolor__+';' or None
                }${'__style__' in row and row.__style__+';' or None
                }${fullrow and 'border: none; padding: 0;' or None}">

                <py:for each="cell in cell_group">
                  <py:if test="not cell.header.hidden">
                    <py:with vars="col = cell.header.col.strip('_')">
                      <py:choose>

                        <py:when test="col == 'report'">
                          <td class="$col" py:attrs="td_attrs">
                            <a title="View report" href="${href.report(cell.value)}">{$cell.value}</a>
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <py:when test="col in ('ticket', 'id')">
                          <td class="ticket" py:attrs="td_attrs">
                            <a title="${_('View %(realm)s', realm=row.resource.realm)}"
                               href="${url_of(row.resource)}">${shortname_of(row.resource)}</a>
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <py:when test="col == 'summary' and row.id">
                          <td class="$col" py:attrs="td_attrs">
                            <a title="${_('View %(realm)s', realm=row.resource.realm)}"
                               href="${url_of(row.resource)}">$cell.value</a>
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <!--! generic fields -->
                        <py:when test="col == 'time'">
                          <td class="date" py:attrs="td_attrs">${cell.value != '' and format_time(from_utimestamp(long(cell.value))) or '--'}
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <py:when test="col in ('date', 'created', 'modified')">
                          <td class="date" py:attrs="td_attrs">${cell.value != '' and format_date(from_utimestamp(long(cell.value))) or '--'}
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <py:when test="col == 'datetime'">
                          <td class="date" py:attrs="td_attrs">${cell.value != '' and format_datetime(from_utimestamp(long(cell.value))) or '--'}
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <py:when test="col == 'description'">
                          <td class="$col" py:attrs="td_attrs" xml:space="preserve">
                            ${wiki_to_html(context(row.resource), cell.value)}
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <py:when test="col == 'milestone'">
                          <td class="$col" py:attrs="td_attrs">
                            <a py:if="cell.value" title="View milestone" href="${href.milestone(cell.value)}">$cell.value</a>
                            <hr py:if="fullrow"/>
                          </td>
                        </py:when>

                        <py:otherwise>
                          <td class="$col" py:attrs="td_attrs">$cell.value
                            <hr py:if="fullrow"/>
                          </td>
                        </py:otherwise>

                      </py:choose>
                    </py:with>
                  </py:if>
                </py:for>
              </tr>
            </py:for>
          </tbody>
        </py:for>
      </table>
      <xi:include href="page_index.html" />

      <div py:if="message" class="system-message">$message</div>
      <div py:if="numrows == 0" id="report-notfound">No matches found.</div>

      <div id="help" i18n:msg="">
        <strong>Note:</strong>
        See <a href="${href.wiki('TracReports')}">TracReports</a> for help on using and creating reports.
      </div>
    </div>
  </body>
</html>