changeset 149:b3c93efd1c97

Updated template for summary (archives links) added nex prev revision to file browser. updated logic in files to implement next and prev revison switch
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 12 May 2010 10:29:41 +0200
parents d928d5f0a251
children b15d4ac75004
files pylons_app/config/routing.py pylons_app/controllers/files.py pylons_app/templates/files/files_browser.html pylons_app/templates/summary.html
diffstat 4 files changed, 38 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/config/routing.py	Tue May 11 22:23:16 2010 +0200
+++ b/pylons_app/config/routing.py	Wed May 12 10:29:41 2010 +0200
@@ -29,7 +29,8 @@
     #ADMIN
     with map.submapper(path_prefix='/_admin', controller='admin') as m:
         m.connect('admin_home', '/', action='index')#main page
-        m.connect('admin_add_repo', '/add_repo/{new_repo:[a-z0-9\. _-]*}', action='add_repo')
+        m.connect('admin_add_repo', '/add_repo/{new_repo:[a-z0-9\. _-]*}',
+                  action='add_repo')
     
     
     map.connect('changeset_home', '/{repo_name}/changeset/{revision}',
@@ -50,4 +51,6 @@
                 controller='files', action='diff', revision='tip', f_path='')
     map.connect('files_raw_home', '/{repo_name}/rawfile/{revision}/{f_path:.*}',
                 controller='files', action='rawfile', revision='tip', f_path='')
+    map.connect('files_archive_home', '/{repo_name}/archive/{revision}/{fileformat}',
+                controller='files', action='archivefile', revision='tip')
     return map
--- a/pylons_app/controllers/files.py	Tue May 11 22:23:16 2010 +0200
+++ b/pylons_app/controllers/files.py	Wed May 12 10:29:41 2010 +0200
@@ -20,21 +20,33 @@
     def index(self, repo_name, revision, f_path):
         hg_model = HgModel()
         c.repo = repo = hg_model.get_repo(c.repo_name)
+        revision = request.POST.get('at_rev', None) or revision
         
-        revision = request.POST.get('at_rev', None) or revision
-        if request.POST.get('view_low'):
-            revision = int(revision) - 1
-        if request.POST.get('view_high'):
-            revision = int(revision) + 1
+        def get_next_rev(cur):
             max_rev = len(c.repo.revisions) - 1
-            if revision > max_rev:
-                revision = max_rev
-                
+            r = cur + 1
+            if r > max_rev:
+                r = max_rev
+            return r
+            
+        def get_prev_rev(cur):
+            r = cur - 1
+            return r
+
         c.f_path = f_path
-
+     
         
         try:
-            c.changeset = repo.get_changeset(repo._get_revision(revision))
+            cur_rev = repo.get_changeset(revision).revision
+            prev_rev = repo.get_changeset(get_prev_rev(cur_rev)).raw_id
+            next_rev = repo.get_changeset(get_next_rev(cur_rev)).raw_id
+                    
+            c.url_prev = url('files_home', repo_name=c.repo_name,
+                             revision=prev_rev, f_path=f_path) 
+            c.url_next = url('files_home', repo_name=c.repo_name,
+                             revision=next_rev, f_path=f_path)   
+                    
+            c.changeset = repo.get_changeset(revision)
             try:
                 c.file_msg = c.changeset.get_file_message(f_path)
             except:
@@ -59,6 +71,9 @@
                                                     % f_path.split('/')[-1] 
         return file_node.content
     
+    def archivefile(self, repo_name, revision, fileformat):
+        return '%s %s %s' % (repo_name, revision, fileformat)
+    
     def diff(self, repo_name, f_path):
         hg_model = HgModel()
         diff1 = request.GET.get('diff1')
--- a/pylons_app/templates/files/files_browser.html	Tue May 11 22:23:16 2010 +0200
+++ b/pylons_app/templates/files/files_browser.html	Wed May 12 10:29:41 2010 +0200
@@ -8,11 +8,11 @@
 <div id="body" class="browserblock">
 	<div class="browser-header">
 		${h.form(h.url.current())}
-		<span>${_('view')}@rev ${h.submit('view_low','-')}${h.text('at_rev',value=c.rev_nr,size='5')}${h.submit('view_high','+')}</span>
+		<span>${_('view')}@rev <a style="font-size: 1.3em"  href="${c.url_prev}">&laquo;</a>${h.text('at_rev',value=c.rev_nr,size='5')}<a style="font-size: 1.3em" href="${c.url_next}">&raquo;</a></span>
 		${h.submit('view','view')}
 		${h.end_form()}
 	</div>
-	<div class="browser-body">		
+	<div class="browser-body">
 		<table class="code-browser">
 		         <thead>
 		             <tr>
--- a/pylons_app/templates/summary.html	Tue May 11 22:23:16 2010 +0200
+++ b/pylons_app/templates/summary.html	Wed May 12 10:29:41 2010 +0200
@@ -38,12 +38,14 @@
         <dd><pre>hg clone <a href="${c.clone_repo_url}">${c.clone_repo_url}</a></pre></dd>
         <dt>${_('Download')}</dt>
         <dd>
-       	%for archive in c.repo_info._get_archives():
-				| <a href="/${c.repo_info.name}/archive/${archive['node']}${archive['extension']}">
-				${c.repo_info.name}.${archive['type']}
-				</a>
+       	%for cnt,archive in enumerate(c.repo_info._get_archives()):
+       		 %if cnt >=1:
+       		 |
+       		 %endif
+       		 ${h.link_to(c.repo_info.name+'.'+archive['type'],
+       			h.url('files_archive_home',repo_name=c.repo_info.name,
+       			revision='tip',fileformat=archive['extension']))}
 		%endfor
-		| 
         </dd>
     </dl>