Mercurial > kallithea
changeset 763:0dad296d2a57 beta
extended trending languages to more entries, implemented new faster and "fancy"
method of extensions recognition.
Fixed small bug in indexer when data dir was empty
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 26 Nov 2010 02:25:39 +0100 |
parents | 6e8322c438ca |
children | 5c87d5ad1b5e |
files | rhodecode/controllers/summary.py rhodecode/lib/indexers/daemon.py rhodecode/templates/base/base.html rhodecode/templates/summary/summary.html |
diffstat | 4 files changed, 74 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/summary.py Fri Nov 26 00:11:12 2010 +0100 +++ b/rhodecode/controllers/summary.py Fri Nov 26 02:25:39 2010 +0100 @@ -1,8 +1,14 @@ -#!/usr/bin/env python -# encoding: utf-8 -# summary controller for pylons -# Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com> -# +# -*- coding: utf-8 -*- +""" + package.rhodecode.controllers.summary + ~~~~~~~~~~~~~~ + + Summary controller for Rhodecode + :created_on: Apr 18, 2010 + :author: marcink + :copyright: (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com> + :license: GPLv3, see COPYING for more details. +""" # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 2 @@ -17,11 +23,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. -""" -Created on April 18, 2010 -summary controller for pylons -@author: marcink -""" + from pylons import tmpl_context as c, request, url from vcs.exceptions import ChangesetError from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator @@ -116,7 +118,7 @@ c.overview_data = stats.commit_activity_combined c.trending_languages = json.dumps(OrderedDict( sorted(lang_stats.items(), reverse=True, - key=lambda k: k[1])[:2] + key=lambda k: k[1])[:10] ) ) else:
--- a/rhodecode/lib/indexers/daemon.py Fri Nov 26 00:11:12 2010 +0100 +++ b/rhodecode/lib/indexers/daemon.py Fri Nov 26 02:25:39 2010 +0100 @@ -78,10 +78,10 @@ if not repo_location: raise Exception('You have to provide repositories location') - self.repo_paths = ScmModel().repo_scan(self.repo_location, None, True) + self.repo_paths = ScmModel().repo_scan(self.repo_location, None) self.initial = False if not os.path.isdir(self.index_location): - os.mkdir(self.index_location) + os.makedirs(self.index_location) log.info('Cannot run incremental index since it does not' ' yet exist running full build') self.initial = True
--- a/rhodecode/templates/base/base.html Fri Nov 26 00:11:12 2010 +0100 +++ b/rhodecode/templates/base/base.html Fri Nov 26 02:25:39 2010 +0100 @@ -311,7 +311,7 @@ var base_url ='/_admin/toggle_following'; var YUC = YAHOO.util.Connect; var YUD = YAHOO.util.Dom; - +var YUE = YAHOO.util.Event; function onSuccess(){ @@ -319,7 +319,6 @@ if(f.getAttribute('class')=='follow'){ f.setAttribute('class','following'); f.setAttribute('title',"${_('Stop following this repository')}"); - } else{ f.setAttribute('class','follow'); @@ -337,7 +336,6 @@ },args); return false; } - function toggleFollowingRepo(fallows_repo_id,token){ args = 'follows_repo_id='+fallows_repo_id; args+= '&auth_token='+token; @@ -349,7 +347,6 @@ } </script> - </%def> <%def name="breadcrumbs()">
--- a/rhodecode/templates/summary/summary.html Fri Nov 26 00:11:12 2010 +0100 +++ b/rhodecode/templates/summary/summary.html Fri Nov 26 02:25:39 2010 +0100 @@ -17,17 +17,6 @@ </%def> <%def name="main()"> -<script type="text/javascript"> -var E = YAHOO.util.Event; -var D = YAHOO.util.Dom; - -E.onDOMReady(function(e){ - id = 'clone_url'; - E.addListener(id,'click',function(e){ - D.get('clone_url').select(); - }) -}) -</script> <div class="box box-left"> <!-- box / title --> <div class="title"> @@ -126,13 +115,19 @@ <div class="field"> <div class="label"> - <label>${_('Trending languages')}:</label> + <label>${_('Trending source files')}:</label> </div> <div class="input-short"> <div id="lang_stats"> </div> <script type="text/javascript"> + YUE.onDOMReady(function(e){ + id = 'clone_url'; + YUE.on(id,'click',function(e){ + YUD.get('clone_url').select(); + }) + }) var data = ${c.trending_languages|n}; var total = 0; var no_data = true; @@ -142,8 +137,15 @@ } var tbl = document.createElement('table'); tbl.setAttribute('class','trending_language_tbl'); + var cnt =0; for (k in data){ + cnt+=1; + var hide = cnt>2; var tr = document.createElement('tr'); + if (hide){ + tr.setAttribute('style','display:none'); + tr.setAttribute('class','stats_hidden'); + } var percentage = Math.round((data[k]/total*100),2); var value = data[k]; var td1 = document.createElement('td'); @@ -155,8 +157,17 @@ var td2 = document.createElement('td'); td2.setAttribute('style','padding-right:14px !important'); var trending_language = document.createElement('div'); - trending_language.title = k; - trending_language.innerHTML = "<b>"+percentage+"% "+value+" ${_('files')}</b>"; + var nr_files = value+" ${_('files')}"; + + trending_language.title = k+" "+nr_files; + + if (percentage>20){ + trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"% "+nr_files+ "</b>"; + } + else{ + trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"%</b>"; + } + trending_language.setAttribute("class", 'trending_language top-right-rounded-corner bottom-right-rounded-corner'); trending_language.style.width=percentage+"%"; td2.appendChild(trending_language); @@ -164,6 +175,18 @@ tr.appendChild(td1); tr.appendChild(td2); tbl.appendChild(tr); + if(cnt == 2){ + var show_more = document.createElement('tr'); + var td=document.createElement('td'); + lnk = document.createElement('a'); + lnk.href='#'; + lnk.innerHTML = "${_("show more")}"; + lnk.id='code_stats_show_more'; + td.appendChild(lnk); + show_more.appendChild(td); + show_more.appendChild(document.createElement('td')); + tbl.appendChild(show_more); + } } if(no_data){ @@ -173,7 +196,16 @@ tr.appendChild(td1); tbl.appendChild(tr); } - YAHOO.util.Dom.get('lang_stats').appendChild(tbl); + YUD.get('lang_stats').appendChild(tbl); + YUE.on('code_stats_show_more','click',function(){ + l = YUD.getElementsByClassName('stats_hidden') + for (e in l){ + YUD.setStyle(l[e],'display',''); + }; + YUD.setStyle(YUD.get('code_stats_show_more'), + 'display','none'); + }) + </script> </div> @@ -244,10 +276,10 @@ }; var dataset = dataset; var overview_dataset = [overview_dataset]; - var choiceContainer = YAHOO.util.Dom.get("legend_choices"); - var choiceContainerTable = YAHOO.util.Dom.get("legend_choices_tables"); - var plotContainer = YAHOO.util.Dom.get('commit_history'); - var overviewContainer = YAHOO.util.Dom.get('overview'); + var choiceContainer = YUD.get("legend_choices"); + var choiceContainerTable = YUD.get("legend_choices_tables"); + var plotContainer = YUD.get('commit_history'); + var overviewContainer = YUD.get('overview'); var plot_options = { bars: {show:true,align:'center',lineWidth:4}, @@ -330,7 +362,7 @@ div.style.backgroundColor='#fee'; document.body.appendChild(div); } - YAHOO.util.Dom.setStyle(div, 'opacity', 0); + YUD.setStyle(div, 'opacity', 0); div.innerHTML = contents; div.style.top=(y + 5) + "px"; div.style.left=(x + 5) + "px"; @@ -472,7 +504,7 @@ overview.setSelection(ranges, true); //resubscribe choiced - YAHOO.util.Event.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]); + YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]); } var previousPoint = null; @@ -481,13 +513,13 @@ var pos = o.pos; var item = o.item; - //YAHOO.util.Dom.get("x").innerHTML = pos.x.toFixed(2); - //YAHOO.util.Dom.get("y").innerHTML = pos.y.toFixed(2); + //YUD.get("x").innerHTML = pos.x.toFixed(2); + //YUD.get("y").innerHTML = pos.y.toFixed(2); if (item) { if (previousPoint != item.datapoint) { previousPoint = item.datapoint; - var tooltip = YAHOO.util.Dom.get("tooltip"); + var tooltip = YUD.get("tooltip"); if(tooltip) { tooltip.parentNode.removeChild(tooltip); } @@ -526,7 +558,7 @@ } } else { - var tooltip = YAHOO.util.Dom.get("tooltip"); + var tooltip = YUD.get("tooltip"); if(tooltip) { tooltip.parentNode.removeChild(tooltip); @@ -559,7 +591,7 @@ plot.subscribe("plothover", plothover); - YAHOO.util.Event.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]); + YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]); } SummaryPlot(${c.ts_min},${c.ts_max},${c.commit_data|n},${c.overview_data|n}); </script>