12
12
# You should have received a copy of the GNU General Public License
13
13
# along with this program; if not, write to the Free Software
14
# Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
20
import pkg_resources
25
25
from loggerhead.zptsupport import zpt
26
from loggerhead.util import html_format
29
28
templatefunctions = {}
50
49
if style == 'fragment':
51
50
def file_link(filename):
52
51
if currently_showing and filename == currently_showing:
54
'<b><a href="#%s">%s</a></b>',
55
urllib.quote(filename.encode('utf-8')), filename)
52
return '<b><a href="#%s">%s</a></b>' % (
53
cgi.escape(filename), cgi.escape(filename))
57
55
return revision_link(
58
url, entry.revno, filename,
59
'#' + urllib.quote(filename.encode('utf-8')))
56
url, entry.revno, filename, '#' + filename)
61
58
def file_link(filename):
63
'<a href="%s%s" title="View changes to %s in revision %s">'
65
url(['/revision', entry.revno]),
66
'#' + urllib.quote(filename.encode('utf-8')),
67
filename, entry.revno, filename)
59
return '<a href="%s%s" title="View changes to %s in revision %s">%s</a>' % (
60
url(['/revision', entry.revno]), '#' + filename, cgi.escape(filename),
61
cgi.escape(entry.revno), cgi.escape(filename))
68
62
return _pt('revisionfilechanges').expand(
69
63
entry=entry, file_changes=file_changes, file_link=file_link, **templatefunctions)
130
124
def view_link(url, revno, path):
132
'<a href="%s" title="Annotate %s">%s</a>',
133
url(['/view', revno, path]), path, path)
125
return '<a href="%s" title="Annotate %s">%s</a>' % (
126
url(['/view', revno, path]), cgi.escape(path), cgi.escape(path))
137
129
def revision_link(url, revno, path, frag=''):
139
'<a href="%s%s" title="View changes to %s in revision %s">%s</a>',
140
url(['/revision', revno, path]), frag, path, revno, path)
130
return '<a href="%s%s" title="View changes to %s in revision %s">%s</a>' % (
131
url(['/revision', revno, path]), frag, cgi.escape(path),
132
cgi.escape(revno), cgi.escape(path))
144
136
def loggerhead_version():
145
137
return loggerhead.__version__
148
def loggerhead_revision():
149
return loggerhead.__revision__
151
139
_cached_generator_string = None
162
150
versions.append(('Loggerhead', loggerhead.__version__))
165
python_version = breezy._format_version_tuple(sys.version_info)
153
python_version = bzrlib._format_version_tuple(sys.version_info)
166
154
versions.append(('Python', python_version))
168
versions.append(('Bazaar', breezy.__version__))
156
versions.append(('Bazaar', bzrlib.__version__))
170
158
Paste = pkg_resources.get_distribution('Paste')
171
159
versions.append(('Paste', Paste.version))
188
176
versions.append(('Pygments', pygments.__version__))
191
from breezy.plugins import search
179
from bzrlib.plugins import search
192
180
except ImportError:
195
bzr_search_version = breezy._format_version_tuple(
183
bzr_search_version = bzrlib._format_version_tuple(
196
184
search.version_info)
197
185
versions.append(('bzr-search', bzr_search_version))
199
187
# TODO: On old Python versions, elementtree may be used.
202
versions.append(('simplejson', simplejson.__version__))
194
versions.append(('simplejson', simplejson.__version__))
205
197
Dozer = pkg_resources.get_distribution('Dozer')