--- a/ForgeHg/forgehg/controllers.py
+++ b/ForgeHg/forgehg/controllers.py
@@ -1,4 +1,4 @@
-from tg import expose, url, override_template
+from tg import expose, url, override_template, redirect
from tg.decorators import with_trailing_slash, without_trailing_slash
from pylons import c
@@ -6,24 +6,33 @@
from allura.lib.security import require, has_artifact_access
from allura.lib import patience
-from .widgets import HgRevisionWidget
+from .widgets import HgRevisionWidget, HgLog
revision_widget = HgRevisionWidget()
+log_widget = HgLog()
def on_import():
BranchBrowser.CommitBrowserClass = CommitBrowser
+ CommitBrowser.TreeBrowserClass = TreeBrowser
class BranchBrowser(repository.BranchBrowser):
def _check_security(self):
require(has_artifact_access('read', c.app.repo))
- @expose('forgehg.templates.index')
+ @expose('jinja:hg_index.html')
@with_trailing_slash
- def index(self, offset=0, limit=10, **kw):
- c.revision_widget=revision_widget
- return dict(super(BranchBrowser, self).index(offset, limit),
- allow_fork=False)
+ def index(self, limit=None, page=0, count=0, **kw):
+ latest = c.app.repo.latest(branch=self._branch)
+ if not latest:
+ return dict(allow_fork=True, log=[])
+ redirect(latest.tree().url())
+
+ @expose('jinja:hg_log.html')
+ @with_trailing_slash
+ def log(self, limit=None, page=0, count=0, **kw):
+ c.log_widget=log_widget
+ return super(BranchBrowser, self).index(limit, page, count)
@expose()
def _lookup(self, rev, *remainder):
@@ -32,7 +41,7 @@
class CommitBrowser(repository.CommitBrowser):
revision_widget = HgRevisionWidget()
- @expose('forgehg.templates.commit')
+ @expose('jinja:hg_commit.html')
@with_trailing_slash
def index(self, **kw):
result = super(CommitBrowser, self).index()
@@ -40,4 +49,11 @@
result.update(self._commit.context())
return result
+class TreeBrowser(repository.TreeBrowser):
+
+ @expose('jinja:hg_tree.html')
+ @with_trailing_slash
+ def index(self, **kw):
+ return super(TreeBrowser, self).index()
+
on_import()