changeset 410:9a7ae16ff53e

fixes translations, style updates. Added some extra info to activity graph
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 18 Aug 2010 16:24:27 +0200
parents 9b6c1de4ce9e
children 9b67cebe6609
files pylons_app/controllers/search.py pylons_app/controllers/summary.py pylons_app/public/css/diff.css pylons_app/public/css/style.css pylons_app/public/css/style_full.css pylons_app/templates/files/files_annotate.html pylons_app/templates/files/files_source.html pylons_app/templates/summary/summary.html
diffstat 8 files changed, 78 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/controllers/search.py	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/controllers/search.py	Wed Aug 18 16:24:27 2010 +0200
@@ -26,10 +26,11 @@
 from pylons.controllers.util import abort, redirect
 from pylons_app.lib.auth import LoginRequired
 from pylons_app.lib.base import BaseController, render
-from pylons_app.lib.indexers import ANALYZER, IDX_LOCATION, SCHEMA
+from pylons_app.lib.indexers import ANALYZER, IDX_LOCATION, SCHEMA, IDX_NAME
 from webhelpers.html.builder import escape
 from whoosh.highlight import highlight, SimpleFragmenter, HtmlFormatter, \
     ContextFragmenter
+from pylons.i18n.translation import _
 from whoosh.index import open_dir, EmptyIndexError
 from whoosh.qparser import QueryParser, QueryParserError
 from whoosh.query import Phrase
@@ -56,7 +57,7 @@
         
         if c.cur_query:
             try:
-                idx = open_dir(IDX_LOCATION, indexname='HG_INDEX')
+                idx = open_dir(IDX_LOCATION, indexname=IDX_NAME)
                 searcher = idx.searcher()
             
                 qp = QueryParser("content", schema=SCHEMA)
@@ -99,12 +100,12 @@
                         c.formated_results.append(d)
                                                     
                 except QueryParserError:
-                    c.runtime = 'Invalid search query. Try quoting it.'
+                    c.runtime = _('Invalid search query. Try quoting it.')
 
             except (EmptyIndexError, IOError):
                 log.error(traceback.format_exc())
                 log.error('Empty Index data')
-                c.runtime = 'There is no index to search in. Please run whoosh indexer'
+                c.runtime = _('There is no index to search in. Please run whoosh indexer')
             
 
                 
--- a/pylons_app/controllers/summary.py	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/controllers/summary.py	Wed Aug 18 16:24:27 2010 +0200
@@ -77,7 +77,8 @@
         y = td.year
         m = td.month
         d = td.day
-        c.ts_min = mktime((y, (td - timedelta(days=calendar.mdays[m] - 1)).month, d, 0, 0, 0, 0, 0, 0,))
+        c.ts_min = mktime((y, (td - timedelta(days=calendar.mdays[m] - 1)).month,
+                            d, 0, 0, 0, 0, 0, 0,))
         c.ts_max = mktime((y, m, d, 0, 0, 0, 0, 0, 0,))
 
         
@@ -93,25 +94,44 @@
             k = mktime(timetupple)
             if aggregate.has_key(author_key_cleaner(cs.author)):
                 if aggregate[author_key_cleaner(cs.author)].has_key(k):
-                    aggregate[author_key_cleaner(cs.author)][k] += 1
+                    aggregate[author_key_cleaner(cs.author)][k]["commits"] += 1
+                    aggregate[author_key_cleaner(cs.author)][k]["added"] += len(cs.added)
+                    aggregate[author_key_cleaner(cs.author)][k]["changed"] += len(cs.changed)
+                    aggregate[author_key_cleaner(cs.author)][k]["removed"] += len(cs.removed)
+                    
                 else:
                     #aggregate[author_key_cleaner(cs.author)].update(dates_range)
                     if k >= c.ts_min and k <= c.ts_max:
-                        aggregate[author_key_cleaner(cs.author)][k] = 1
+                        aggregate[author_key_cleaner(cs.author)][k] = {}
+                        aggregate[author_key_cleaner(cs.author)][k]["commits"] = 1
+                        aggregate[author_key_cleaner(cs.author)][k]["added"] = len(cs.added)
+                        aggregate[author_key_cleaner(cs.author)][k]["changed"] = len(cs.changed)
+                        aggregate[author_key_cleaner(cs.author)][k]["removed"] = len(cs.removed) 
+                                            
             else:
                 if k >= c.ts_min and k <= c.ts_max:
                     aggregate[author_key_cleaner(cs.author)] = OrderedDict()
                     #aggregate[author_key_cleaner(cs.author)].update(dates_range)
-                    aggregate[author_key_cleaner(cs.author)][k] = 1
+                    aggregate[author_key_cleaner(cs.author)][k] = {}
+                    aggregate[author_key_cleaner(cs.author)][k]["commits"] = 1
+                    aggregate[author_key_cleaner(cs.author)][k]["added"] = len(cs.added)
+                    aggregate[author_key_cleaner(cs.author)][k]["changed"] = len(cs.changed)
+                    aggregate[author_key_cleaner(cs.author)][k]["removed"] = len(cs.removed)                 
         
         d = ''
         tmpl0 = u""""%s":%s"""
-        tmpl1 = u"""{label:"%s",data:%s},"""
+        tmpl1 = u"""{label:"%s",data:%s,schema:["commits"]},"""
         for author in aggregate:
+            
             d += tmpl0 % (author.decode('utf8'),
                           tmpl1 \
                           % (author.decode('utf8'),
-                        [[x, aggregate[author][x]] for x in aggregate[author]]))
+                        [{"time":x,
+                          "commits":aggregate[author][x]['commits'],
+                          "added":aggregate[author][x]['added'],
+                          "changed":aggregate[author][x]['changed'],
+                          "removed":aggregate[author][x]['removed'],
+                          } for x in aggregate[author]]))
         if d == '':
             d = '"%s":{label:"%s",data:[[0,1],]}' \
                 % (author_key_cleaner(repo.contact),
--- a/pylons_app/public/css/diff.css	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/public/css/diff.css	Wed Aug 18 16:24:27 2010 +0200
@@ -67,7 +67,7 @@
 	padding-left:2px;
 	padding-right:2px;
 	text-align:right;
-	width:20px;
+	width:30px;
 	-moz-user-select:none;
 	-webkit-user-select: none;
 }
--- a/pylons_app/public/css/style.css	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/public/css/style.css	Wed Aug 18 16:24:27 2010 +0200
@@ -185,7 +185,7 @@
 #header
 {
 	margin: 0;
-	padding: 0 60px 0 60px;
+	padding: 0 30px 0 30px;
 	background: #b0b0b0 url("../images/header_background.png") repeat;
 }
 
--- a/pylons_app/public/css/style_full.css	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/public/css/style_full.css	Wed Aug 18 16:24:27 2010 +0200
@@ -2,7 +2,7 @@
 	GLOBAL WIDTH
 ----------------------------------------------------------- */
 #header,#content,#footer{
-	min-width: 1024px;
+	min-width: 1224px;
 }
 
 /* -----------------------------------------------------------
@@ -11,7 +11,7 @@
 
 #content 
 {
-	margin: 10px 60px 0 60px;
+	margin: 10px 30px 0 30px;
 	padding: 0;
     min-height: 100%;
 	clear: both;
--- a/pylons_app/templates/files/files_annotate.html	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/templates/files/files_annotate.html	Wed Aug 18 16:24:27 2010 +0200
@@ -26,7 +26,8 @@
 			<h2>${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cur_rev,c.file.path)}</h2>
 			<dl class="overview">
 				<dt>${_('Last revision')}</dt>
-				<dd>r${c.file.last_changeset.revision}:${c.file.last_changeset._short}</dd>
+				<dd>${h.link_to("r%s:%s" % (c.file.last_changeset.revision,c.file.last_changeset._short),
+						h.url('files_annotate_home',repo_name=c.repo_name,revision=c.file.last_changeset._short,f_path=c.f_path))} </dd>
 				<dt>${_('Size')}</dt>
 				<dd>${h.format_byte_size(c.file.size,binary=True)}</dd>
 				<dt>${_('Options')}</dt>
--- a/pylons_app/templates/files/files_source.html	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/templates/files/files_source.html	Wed Aug 18 16:24:27 2010 +0200
@@ -1,6 +1,9 @@
 <dl>
 	<dt>${_('Last revision')}</dt>
-	<dd>r${c.files_list.last_changeset.revision}:${c.files_list.last_changeset._short}</dd>
+	<dd>
+		${h.link_to("r%s:%s" % (c.files_list.last_changeset.revision,c.files_list.last_changeset._short),
+						h.url('files_home',repo_name=c.repo_name,revision=c.files_list.last_changeset._short,f_path=c.f_path))} 
+	</dd>
 	<dt>${_('Size')}</dt>
 	<dd>${h.format_byte_size(c.files_list.size,binary=True)}</dd>
 	<dt>${_('Options')}</dt>
@@ -11,11 +14,13 @@
 	</dd>
 	<dt>${_('History')}</dt>
 	<dd>
-		${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='GET')}
+		<div>
+		${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='get')}
 		${h.hidden('diff2',c.files_list.last_changeset._short)}
 		${h.select('diff1','',c.file_history)}
 		${h.submit('diff','diff',class_="ui-button ui-widget ui-state-default ui-corner-all")}
 		${h.end_form()}
+		</div>
 	</dd>
 </dl>	
 
--- a/pylons_app/templates/summary/summary.html	Wed Aug 18 01:46:18 2010 +0200
+++ b/pylons_app/templates/summary/summary.html	Wed Aug 18 16:24:27 2010 +0200
@@ -118,14 +118,14 @@
 	</div>				
 </div>
         
-<div class="box box-right">
+<div class="box box-right"  style="min-height:455px">
     <!-- box / title -->
     <div class="title">
         <h5>${_('Last month commit activity')}</h5>
     </div>
     
     <div class="table">
-        <div id="commit_history" style="width:460px;height:370px;float:left"></div>
+        <div id="commit_history" style="width:560px;height:300px;float:left"></div>
     	<div id="legend_data">
 	    	<div id="legend_container"></div>
 	    	<div id="legend_choices">
@@ -142,11 +142,10 @@
 		    for(var key in datasets) {
 		        datasets[key].color = i;
 		        i++;
-		        choiceContainerTable.innerHTML += '<tr>'+
-		        									'<td>'+
-		        									'<input type="checkbox" name="' + key +'" checked="checked" />'+datasets[key].label+
-		        									'</td>'+
-		        								  '</tr>';
+		        choiceContainerTable.innerHTML += '<tr><td>'+
+		        '<input type="checkbox" name="' + key +'" checked="checked" />'
+		        +datasets[key].label+
+		        '</td></tr>';
 		    };
 		    
 
@@ -164,6 +163,7 @@
 		        };
 
 		        if (data.length > 0){
+
 				    var plot = YAHOO.widget.Flot("commit_history", data,
 					        { bars: { show: true, align:'center',lineWidth:4 },
 			    			  points: { show: true, radius:0,fill:true },
@@ -211,18 +211,36 @@
 		                        }
 		                        var x = item.datapoint.x.toFixed(2);
 		                        var y = item.datapoint.y.toFixed(2);
-
+								
 		                        if (!item.series.label){
 		                            item.series.label = 'commits';
 			                    }
 		                        var d = new Date(x*1000);
 		                        var fd = d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate();
 		                        var nr_commits = parseInt(y);
-		                        var suffix = '';
-		                        if(nr_commits > 1){
-									var suffix = 's';		
-				                }
-		                        showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd + ": " + nr_commits+" commit" + suffix);
+		                        
+		                        var cur_data = datasets[item.series.label].data[item.dataIndex];
+				                var added = cur_data.added;
+				                var changed = cur_data.changed;
+				                var removed = cur_data.removed;
+				                
+		                        var nr_commits_suffix = " ${_('commits')} ";
+		                        var added_suffix = " ${_('files added')} ";
+			                    var changed_suffix = " ${_('files changed')} ";
+				                var removed_suffix = " ${_('files removed')} ";
+
+				                
+		                        if(nr_commits == 1){nr_commits_suffix = " ${_('commit')} ";}
+								if(added==1){added_suffix=" ${_('file added')} ";}
+								if(changed==1){changed_suffix=" ${_('file changed')} ";}
+								if(removed==1){removed_suffix=" ${_('file removed')} ";}
+												                
+		                        showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd
+										 +'<br/>'+
+				                         nr_commits + nr_commits_suffix+'<br/>'+
+				                         added + added_suffix +'<br/>'+
+				                         changed + changed_suffix + '<br/>'+
+				                         removed + removed_suffix + '<br/>');
 		                    }
 		                }
 		                else {
@@ -253,6 +271,7 @@
     </div>    
     <div class="table">
         <%include file='../shortlog/shortlog_data.html'/>
+        ${h.link_to(_('show more'),h.url('changelog_home',repo_name=c.repo_name))}
     </div>
 </div>
 <div class="box">    
@@ -261,6 +280,7 @@
     </div>    
     <div class="table">
         <%include file='../tags/tags_data.html'/>
+        ${h.link_to(_('show more'),h.url('tags_home',repo_name=c.repo_name))}
     </div>
 </div>
 <div class="box">
@@ -269,6 +289,7 @@
     </div>    
     <div class="table">
         <%include file='../branches/branches_data.html'/>
+        ${h.link_to(_('show more'),h.url('branches_home',repo_name=c.repo_name))}
     </div>      
 </div>