Mercurial > kallithea
changeset 99:5b57295601b6
Updated basic files browser with, pygments
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 25 Apr 2010 01:19:21 +0200 |
parents | 01d0f363f36d |
children | d8fc93ae1866 |
files | pylons_app/config/routing.py pylons_app/controllers/files.py pylons_app/templates/files.html |
diffstat | 3 files changed, 114 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/pylons_app/config/routing.py Sun Apr 25 01:18:38 2010 +0200 +++ b/pylons_app/config/routing.py Sun Apr 25 01:19:21 2010 +0200 @@ -37,7 +37,7 @@ map.connect('branches_home', '/{repo_name}/branches', controller='branches') map.connect('tags_home', '/{repo_name}/tags', controller='tags') map.connect('graph_home', '/{repo_name}/graph/{revision}', controller='graph', revision='tip') - map.connect('files_home', '/{repo_name}/files/{revision}/{path_info:.*}', controller='files', revision='tip', path_info='') + map.connect('files_home', '/{repo_name}/files/{revision}/{f_path:.*}', controller='files', revision='tip', f_path='') return map
--- a/pylons_app/controllers/files.py Sun Apr 25 01:18:38 2010 +0200 +++ b/pylons_app/controllers/files.py Sun Apr 25 01:19:21 2010 +0200 @@ -1,16 +1,27 @@ import logging -from pylons import request, response, session, tmpl_context as c, url +from pylons import request, response, session, tmpl_context as c, url, config, app_globals as g from pylons.controllers.util import abort, redirect from pylons_app.lib.base import BaseController, render - +from pylons_app.lib.utils import get_repo_slug +from pylons_app.model.hg_model import HgModel log = logging.getLogger(__name__) class FilesController(BaseController): + def __before__(self): + c.repos_prefix = config['repos_name'] + c.staticurl = g.statics + c.repo_name = get_repo_slug(request) - def index(self): - # Return a rendered template - #return render('/files.mako') - # or, return a string - return 'Hello World' + def index(self, repo_name, revision, f_path): + hg_model = HgModel() + c.repo = repo = hg_model.get_repo(c.repo_name) + c.cur_rev = revision + c.f_path = f_path + c.changeset = repo.get_changeset(repo._get_revision('tip')) + + + c.files_list = c.changeset.get_node(f_path) + + return render('/files.html')
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pylons_app/templates/files.html Sun Apr 25 01:19:21 2010 +0200 @@ -0,0 +1,95 @@ +<%inherit file="base/base.html"/> + +<%def name="title()"> + ${_('Repository managment')} +</%def> +<%def name="breadcrumbs()"> + ${h.link_to(u'Home',h.url('/'))} + / + ${h.link_to(c.repo_name,h.url('files_home',repo_name=c.repo_name))} + / + ${_('files')} +</%def> +<%def name="page_nav()"> + <form action="log"> + <dl class="search"> + <dt><label>Search: </label></dt> + <dd><input type="text" name="rev" /></dd> + </dl> + </form> + + ${self.menu('files')} +</%def> +<%def name="css()"> +<link rel="stylesheet" href="/css/style-monoblue_custom.css" type="text/css" /> +<link rel="stylesheet" href="/css/pygments.css" type="text/css" /> +</%def> +<%def name="main()"> + + <h2 class="no-link no-border">${_('Files')}</h2> + <div id="files_data"> + <h2>${_('File')}: ${c.repo_name}/${c.f_path}</h2> + %if c.files_list.is_dir(): + <table class="code-browser"> + <thead> + <tr> + <th class="width-50 lefted">${_('Name')}</th> + <th class="width-10 righted">${_('Size')}</th> + <th class="width-10 righted">${_('Revision')}</th> + <th class="width-15 righted">${_('Last modified')}</th> + <th class="width-15 righted">${_('Last commiter')}</th> + </tr> + </thead> + <tr> + % if c.files_list.parent: + <td colspan="5" class="browser-dir"> + ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.files_list.parent))} + </td> + %endif + </tr> + <%def name="file_class(node)"> + %if node.is_file(): + browser-file + %else: + browser-dir + %endif + </%def> + + + %for cnt,node in enumerate(c.files_list): + <tr class="parity${cnt%2}"> + + <td class="${file_class(node)}"> + ${h.link_to(node.name,h.url('files_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=node.path),class_='file or dir')} + </td> + <td> + %if node.is_file(): + ${h.filesizeformat(node.size)} + %endif + </td> + <td> + %if node.is_file(): + ${node.last_changeset.revision} + %endif + </td> + <td> + %if node.is_file(): + ${node.last_changeset.date} + %endif + </td> + <td> + %if node.is_file(): + ${node.last_changeset.author} + %endif + + </td> + </tr> + %endfor + </table> + %else: + <div id="body" class="codeblock"> + ${h.pygmentize(c.files_list.content,linenos=True,anchorlinenos=True,cssclass="code-highlight")} + </div> + %endif + </div> +</%def> \ No newline at end of file