~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/templates/view.pt

  • Committer: Danilo Segan
  • Date: 2011-09-02 10:22:52 UTC
  • mfrom: (455.1.2 bug-839395)
  • Revision ID: danilo@canonical.com-20110902102252-phc11upmjw8tz1mg
[r=jam][bug=839395] Do not crash when someone asks to look at per-revision changes for a file when file is not changed in a certain revision.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
<html xmlns="http://www.w3.org/1999/xhtml" metal:use-macro="macros/main">
4
4
  <head>
5
5
    <title metal:fill-slot="title"
6
 
           tal:content="string:${branch/friendly_name} : contents of ${path}
 
6
           tal:content="string:${branch/friendly_name} : contents of ${file_path}
7
7
                        at revision ${change/revno}">
8
8
    </title>
9
9
    <metal:block fill-slot="header_extras">
10
10
        <link rel="stylesheet" type="text/css" media="all"
11
 
              tal:attributes="href python:branch.static_url('/static/css/annotate.css')"/>
 
11
              tal:attributes="href python:branch.static_url('/static/css/view.css')"/>
 
12
        <link rel="stylesheet" type="text/css" media="all"
 
13
              tal:attributes="href python:branch.static_url('/static/css/highlight.css')"/>
12
14
    </metal:block>
13
15
  </head>
14
16
 
15
17
  <body>
16
 
 
17
 
    <h1 metal:fill-slot="heading">
18
 
      <tal:has-link condition="branch/branch_link">
19
 
        <a tal:attributes="href branch/branch_link"
20
 
           tal:content="branch/friendly_name">
21
 
          nice/branch/name
22
 
        </a>
23
 
      </tal:has-link>
24
 
      <tal:no-link condition="not: branch/branch_link">
25
 
        <span metal:use-macro="breadcrumbs/directory"></span>
26
 
      </tal:no-link>
27
 
      <span>: <span metal:use-macro="breadcrumbs/branch" /> (revision <tal:revno content="change/revno"></tal:revno>)</span>
28
 
    </h1>
 
18
      <tal:block metal:fill-slot="backlink">
 
19
          <tal:has-link condition="branch/branch_link">
 
20
            <div class="black-link">
 
21
                <a tal:attributes="href branch/branch_link">
 
22
                  &#8592; Back to branch summary
 
23
                </a>
 
24
            </div>
 
25
          </tal:has-link>
 
26
      </tal:block>
 
27
      <tal:block metal:fill-slot="branchname" tal:content="string:${branch/friendly_name}" />
 
28
          <tal:block metal:fill-slot="heading">
 
29
          <div id="breadcrumbs">
 
30
          <tal:has-link condition="branch/branch_link">
 
31
            <a tal:attributes="href branch/branch_link"
 
32
               tal:content="branch/friendly_name">
 
33
              nice/branch/name
 
34
            </a>
 
35
          </tal:has-link>
 
36
          <tal:no-link condition="not: branch/branch_link">
 
37
            <span metal:use-macro="breadcrumbs/directory"></span>
 
38
          </tal:no-link>
 
39
          <span>: <span metal:use-macro="breadcrumbs/branch" /> (revision <tal:revno content="change/revno"></tal:revno>)</span>
 
40
        </div>
 
41
      </tal:block>
29
42
 
30
43
    <div metal:fill-slot="content">
 
44
      <tal:branch-info replace="structure python:branchinfo(branch)" />
 
45
 
31
46
        <ul id="submenuTabs">
32
47
            <li id="first">
33
48
                <a tal:attributes="href python:url(['/files', change.revno], clear=1)">browse files</a>
34
49
            </li>
35
 
            <li>
36
 
                <a tal:attributes="href python:url(['/revision'], clear=1, start_revid=change.revno)">view revision</a>
37
 
            </li>
38
 
            <li>
39
 
                <a tal:attributes="href python:url(['/changes'], clear=1, start_revid=change.revno, filter_file_id=file_id)">view changes to this file</a>
 
50
            <li tal:condition="not:annotated">
 
51
              <a tal:attributes="href python:url(['/annotate', revno_url, file_path], clear=1)"
 
52
              >view with revision information</a>
 
53
            </li>
 
54
            <li tal:condition="annotated">
 
55
              <a tal:attributes="href python:url(['/view', revno_url, file_path], clear=1)"
 
56
              >view without revision information</a>
 
57
            </li>
 
58
            <li>
 
59
                <a tal:attributes="href python:url(['/revision', change.revno], clear=1)">view revision</a>
 
60
            </li>
 
61
            <li>
 
62
                <a tal:attributes="href python:url(['/changes'], clear=1, filter_file_id=file_id)"
 
63
                >view changes to this file</a>
40
64
            </li>
41
65
            <li id="last">
42
 
                <a tal:attributes="href python:url(['/download', change.revno, file_id, filename])">download file</a>
 
66
                <a tal:attributes="href python:url(['/download',
 
67
                                    revno_url, file_id, filename])"
 
68
                >download file</a>
43
69
            </li>
44
70
        </ul>
45
71
 
46
 
      <div class="annotate">
 
72
      <div class="view">
47
73
        <table id="logentries">
48
 
          <tr class="logheader">
49
 
            <td class="annoLineTit">Line</td>
50
 
            <td class="annoRevTit">Revision</td>            
51
 
            <td class="annoContTit">Contents</td>                    
52
 
          </tr>
 
74
          <tal:rep tal:repeat="line contents">
 
75
            <tr>
 
76
              <td tal:condition="python:path('repeat/line/number') in annotated"
 
77
                  tal:define="anno python:annotated.get(path('repeat/line/number'), None)"
 
78
                  tal:attributes="rowspan python:anno.revspan"
 
79
                  class="viewRev">
 
80
                <a tal:content="python:'%s' % (anno.change.revno,)"
 
81
                   tal:attributes="href python:url(['/revision', anno.change.revno], clear=1);
 
82
                                   title python:'%s by %s, on %s (%s)' % (anno.change.revno, ', '.join(util.hide_emails(anno.change.authors)), anno.change.date.strftime('%d %b %Y %H:%M'), util.date_time(anno.change.date))"></a>
 
83
                <span class="viewAuthors" tal:content="python:'by ' + ', '.join(util.hide_emails(anno.change.authors))" />
 
84
                <br />
53
85
 
54
 
          <tr tal:repeat="line contents" 
55
 
              tal:attributes="class string:blueRow${line/parity}">
56
 
            <td class="annoLine" tal:content="line/lineno">1</td>
57
 
            <td class="annoRev">
58
 
              <a tal:condition="python:line.status=='changed'"
59
 
                 tal:content="python:util.trunc(line.change.revno)"
60
 
                 tal:attributes="href python:url(['/revision'], clear=1, start_revid=line.change.revno, filter_file_id=file_id);
61
 
                                 title python:'%s by %s, on %s (%s)'%(line.change.revno, util.hide_email(line.change.author), line.change.date.strftime('%d %b %Y %H:%M'), util.date_time(line.change.date))"></a>
62
 
            </td>
63
 
            <td class="annoCont" tal:content="line/text"></td>
64
 
          </tr>
 
86
                <span tal:content="python:anno.message"></span>
 
87
              </td>
 
88
              <td tal:attributes="class python:path('repeat/line/number') in annotated and 'viewLine first' or 'viewLine'">
 
89
                <a tal:attributes="id string:L${repeat/line/number}; href string:#L${repeat/line/number}"
 
90
                   tal:content="repeat/line/number">1</a>
 
91
              </td>
 
92
              <td class="viewCont"><pre tal:content="structure line"></pre></td>
 
93
            </tr>
 
94
          </tal:rep>
65
95
        </table>
66
96
      </div>
67
97