diff --git a/trac/versioncontrol/api.py b/trac/versioncontrol/api.py
|
a
|
b
|
|
| 27 | 27 | from trac.config import ListOption, Option |
| 28 | 28 | from trac.core import * |
| 29 | 29 | from trac.perm import PermissionError |
| 30 | | from trac.resource import IResourceManager, ResourceSystem, ResourceNotFound |
| | 30 | from trac.resource import * |
| 31 | 31 | from trac.util.text import printout, to_unicode |
| 32 | 32 | from trac.util.translation import _ |
| 33 | 33 | from trac.web.api import IRequestFilter |
| … |
… |
|
| 682 | 682 | self.log = log |
| 683 | 683 | self.reponame = name # overriden by the reponame key used to create it |
| 684 | 684 | |
| | 685 | @property |
| | 686 | def resource(self): |
| | 687 | return Resource('repository', self.reponame) |
| | 688 | |
| 685 | 689 | def close(self): |
| 686 | 690 | """Close the connection to the repository.""" |
| 687 | 691 | raise NotImplementedError |
diff --git a/trac/versioncontrol/templates/repository_index.html b/trac/versioncontrol/templates/repository_index.html
|
a
|
b
|
|
| 5 | 5 | <table class="listing dirlist" id="${repoindex or None}"> |
| 6 | 6 | <xi:include href="dirlist_thead.html" /> |
| 7 | 7 | <tbody> |
| 8 | | <py:for each="idx, (reponame, repoinfo, change, err) in enumerate(repo.repositories)"> |
| | 8 | <py:for each="idx, (repos_resource, repoinfo, change, err) in enumerate(repo.repositories)"> |
| 9 | 9 | <tr class="${idx % 2 and 'even' or 'odd'}"> |
| 10 | 10 | <td class="name"> |
| 11 | 11 | <em py:strip="not err"> |
| 12 | 12 | <b py:strip="repoinfo.alias != ''"> |
| 13 | 13 | <a class="dir" title="View Root Directory" |
| 14 | | href="${href.browser(reponame, order=(order != 'name' and order or None), desc=desc)}">$reponame</a> |
| | 14 | href="${href.browser(repos_resource.id, order=(order != 'name' and order or None), desc=desc)}">${repos_resource.id}</a> |
| 15 | 15 | </b> |
| 16 | 16 | </em> |
| 17 | 17 | </td> |
| 18 | 18 | <td class="size" /> |
| 19 | 19 | <td class="rev"> |
| 20 | 20 | <py:if test="not err"> |
| 21 | | <a title="View Revision Log" href="${href.log(reponame)}">$change.rev</a> |
| 22 | | <a title="View Changeset" class="chgset" href="${href.changeset(change.rev, reponame)}"> </a> |
| | 21 | <a title="View Revision Log" href="${href.log(repos_resource.id)}">$change.rev</a> |
| | 22 | <a title="View Changeset" class="chgset" href="${href.changeset(change.rev, repos_resource.id)}"> </a> |
| 23 | 23 | </py:if> |
| 24 | 24 | </td> |
| 25 | 25 | <td class="age" style="${change and repo.timerange and 'border-color: rgb(%s,%s,%s)' % |
diff --git a/trac/versioncontrol/web_ui/browser.py b/trac/versioncontrol/web_ui/browser.py
|
a
|
b
|
|
| 469 | 469 | timerange = TimeRange(youngest.date) |
| 470 | 470 | else: |
| 471 | 471 | timerange.insert(youngest.date) |
| 472 | | entry = (reponame, repoinfo, youngest, None) |
| | 472 | entry = (repos.resource, repoinfo, youngest, None) |
| 473 | 473 | else: |
| 474 | | entry = (reponame, repoinfo, None, "XXX") |
| | 474 | entry = (repos.resource, repoinfo, None, "XXX") |
| 475 | 475 | except TracError, err: |
| 476 | | entry = (reponame, repoinfo, None, exception_to_unicode(err)) |
| | 476 | entry = (Resource('repository', reponame), repoinfo, |
| | 477 | None, exception_to_unicode(err)) |
| 477 | 478 | repositories.append(entry) |
| 478 | 479 | |
| 479 | 480 | # Ordering of repositories |
| 480 | 481 | if order == 'date': |
| 481 | | def repo_order((reponame, repoinfo, repos, youngest)): |
| | 482 | def repo_order((repos_resource, repoinfo, repos, youngest)): |
| 482 | 483 | return youngest and youngest.date |
| 483 | 484 | else: |
| 484 | | def repo_order((reponame, repoinfo, repos, youngest)): |
| 485 | | return embedded_numbers(reponame.lower()) |
| | 485 | def repo_order((repos_resource, repoinfo, repos, youngest)): |
| | 486 | return embedded_numbers(repos_resource.id.lower()) |
| 486 | 487 | |
| 487 | 488 | repositories = sorted(repositories, key=repo_order, reverse=desc) |
| 488 | 489 | |