Changeset - 1dbe02063123
[Not reviewed]
default
0 3 0
Marcin Kuzminski - 15 years ago 2010-06-23 00:31:00
marcin@python-works.com
graph fixes.
3 files changed with 11 insertions and 6 deletions:
0 comments (0 inline, 0 general)
pylons_app/public/js/graph.js
Show inline comments
 
@@ -60,72 +60,73 @@ function BranchRenderer() {
 
		var idx = 1;
 
		var rela = document.getElementById('graph');
 
		var pad = 160;
 
		var scale = 20;
 
		
 
		for (var i in data) {
 
			this.scale(scale);
 
			var row = document.getElementById("chg_"+idx);
 
			var	next = document.getElementById("chg_"+idx+1);
 
			var extra = 0;
 
			
 
			//skip this since i don't have DATE in my app
 
			//if (next.is('.changesets-date')) {
 
			//	extra = next.outerHeight();
 
			//}
 
						
 
			
 
			this.cell[1] += row.clientWidth;
 
			this.bg[1] += this.bg_height;
 
			
 
			cur = data[i];
 
			nodeid = cur[0];
 
			node = cur[1];
 
			in_l = cur[2];
 
			
 
			for (var j in in_l) {
 
				
 
				line = in_l[j];
 
				start = line[0];
 
				end = line[1];
 
				color = line[2];
 

	
 
				if (start > this.max_column) {
 
					this.max_column = start;
 
				}
 
				
 
				if (end > this.max_column) {
 
					this.max_column = end;
 
				}
 
				
 
				this.setColor(color, 0.0, 0.65);
 
				
 
				
 
				y = row.offsetTop-rela.offsetTop+4;
 
				x = pad-((this.cell[0] + this.box_size * start - 1) + this.bg_height-2);
 
				this.ctx.beginPath();
 
				this.ctx.moveTo(x, y);
 
				
 
				y += row.clientHeight;
 
				//i don't know why it's +1 just fixes some drawing graph.
 
				y += row.clientHeight+1;
 
				x = pad-((1 + this.box_size * end) + this.bg_height-2);
 
				this.ctx.lineTo(x,y+extra);
 
				this.ctx.stroke();
 
			}
 
			
 
			column = node[0]
 
			color = node[1]
 
			
 
			radius = 4;
 
			y = row.offsetTop-rela.offsetTop+4;
 
			x = pad-(Math.round(this.cell[0] * scale/2 * column + radius) + 15 - (column*4));
 
		
 
			this.ctx.beginPath();
 
			this.setColor(color, 0.25, 0.75);
 
			this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
 
			this.ctx.fill();
 
			
 
			idx++;
 
		}
 
				
 
	}
 

	
 
}
pylons_app/templates/base/base.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
 
<head>
 
    <link rel="icon" href="/images/hgicon.png" type="image/png" />
 
    <meta name="robots" content="index, nofollow"/>
 
    <title>${next.title()}</title>
 
    ##For future use yui reset for cross browser compatability.
 
    ##<link rel="stylesheet" href="/js/yui/reset-fonts-grids/reset-fonts-grids.css" type="text/css" />
 
    ${self.css()}
 
    ${self.js()}
 
</head>
 

	
 
<body class="mainbody">
 
<div id="container">
 
    <div class="page-header">
 
        <h1>${next.breadcrumbs()}</h1>
 
        ${self.page_nav()}
 
    <div class="flash_msg">
 
    <% messages = h.flash.pop_messages() %>
 
		% if messages:
 
		<ul id="flash-messages">
 
		    % for message in messages:
 
		    <li class="${message.category}_msg">${message}</li>
 
		    % endfor
 
		</ul>
 
		% endif
 
    </div>        
 
    <div id="main"> 
 
    	${next.main()}
 
    	<script>${h.tooltip.activate()}</script>    	
 
    	<script type="text/javascript">${h.tooltip.activate()}</script>    	
 
    </div>
 
    <div class="page-footer">
 
        Hg App ${c.hg_app_version} &copy; 2010 by Marcin Kuzminski
 
    </div>   
 

	
 
    <div id="powered-by">
 
        <p>
 
        <a href="http://mercurial.selenic.com/" title="Mercurial">
 
            <img src="/images/hglogo.png" width="75" height="90" alt="mercurial"/></a>
 
        </p>
 
    </div>
 

	
 
    <div id="corner-top-left"></div>
 
    <div id="corner-top-right"></div>
 
    <div id="corner-bottom-left"></div>
 
    <div id="corner-bottom-right"></div>
 

	
 
</div>
 
</body>
 
</html>
 

	
 
### MAKO DEFS ### 
 

	
 
<%def name="page_nav()">
 
	${self.menu()}
 
	${self.submenu()}
 
</%def>
 

	
 
<%def name="menu(current)">
 
<% 
 
def is_current(selected):
 
	if selected == current:
 
		return "class='current'"
 
%>
 
		%if current not in ['home','admin']:
 
		##regular menu
 
	       <script type="text/javascript">
 
	       	YAHOO.util.Event.onDOMReady(function(){
 
				YAHOO.util.Event.addListener('repo_switcher','click',function(){
 
					if(YAHOO.util.Dom.hasClass('repo_switcher','selected')){
 
						YAHOO.util.Dom.setStyle('switch_repos','display','none');
 
						YAHOO.util.Dom.setStyle('repo_switcher','background','');
 
						YAHOO.util.Dom.removeClass('repo_switcher','selected');
 
						YAHOO.util.Dom.get('repo_switcher').removeAttribute('style');
 
					}
 
					else{
 
						YAHOO.util.Dom.setStyle('switch_repos','display','');
 
						YAHOO.util.Dom.setStyle('repo_switcher','background','#FFFFFF');
pylons_app/templates/changelog/changelog.html
Show inline comments
 
<%inherit file="/base/base.html"/>
 

	
 
<%def name="title()">
 
    ${_('Changelog - %s') % c.repo_name}
 
</%def>
 
<%def name="breadcrumbs()">
 
    ${h.link_to(u'Home',h.url('/'))}
 
    / 
 
    ${h.link_to(c.repo_name,h.url('changelog_home',repo_name=c.repo_name))}
 
    /
 
    ${_('changelog')}
 
</%def>
 
<%def name="page_nav()">
 
	${self.menu('changelog')}     
 
</%def>
 

	
 
<%def name="main()">
 

	
 
    <h2 class="no-link no-border">${_('Changelog')} - ${_('showing ')} 
 
    	${c.size if c.size <= c.total_cs else c.total_cs}
 
    	${_('out of')} ${c.total_cs} ${_('revisions')}
 
    </h2>
 
	<noscript>${_('The revision graph only works with JavaScript-enabled browsers.')}</noscript>
 
% if c.pagination:
 

	
 
<div id="graph">
 
	<div id="graph_nodes">
 
		<canvas id="graph_canvas"></canvas>
 
	</div>
 
	<div id="graph_content">
 
		<div class="container_header">
 
			${h.form(h.url.current(),method='get')}
 
				${_('Show')}: ${h.text('size',size=2,value=c.size)} ${_('revisions')}
 
				${h.submit('','set')}
 
			<div>
 
				<span>${_('Show')}: </span>
 
				<span>${h.text('size',size=2,value=c.size)}</span>
 
				<span>${_('revisions')}</span>
 
				${h.submit('set',_('set'))}
 
			</div>
 
			${h.end_form()}
 
		</div>
 
	%for cnt,cs in enumerate(c.pagination):
 
		<div id="chg_${cnt+1}" class="container">
 
			<div class="left">
 
				<div class="date">${_('commit')} ${cs.revision}: ${cs.raw_id}@${cs.date}</div>
 
				<div class="author">${cs.author}</div>
 
				<div id="chg_${cnt}" class="message">
 
				<div class="message">
 
					${h.link_to(h.wrap_paragraphs(cs.message),
 
					h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}
 
				</div>
 
					<span class="logtags">
 
						<span class="branchtag">${cs.branch}</span>
 
						%for tag in cs.tags:
 
							<span class="tagtag">${tag}</span>
 
						%endfor
 
					</span>
 
			</div>	
 
			<div class="right">
 
						<div class="changes">
 
							<span class="removed" title="${_('removed')}">${len(cs.removed)}</span>
 
							<span class="changed" title="${_('changed')}">${len(cs.changed)}</span>
 
							<span class="added" title="${_('added')}">${len(cs.added)}</span>
 
						</div>					
 
							%if len(cs.parents)>1:
 
							<div class="merge">
 
								${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png">
 
								${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png"/>
 
							</div>
 
							%endif						
 
						%for p_cs in reversed(cs.parents):
 
							<div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(p_cs.raw_id,
 
								h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
 
							</div>
 
						%endfor								
 
			</div>				
 
		</div>
 
		
 
	%endfor
 
	</div>
 
</div>
 
<script type="text/javascript" src="/js/graph.js"></script>
 

	
 
<script type="text/javascript">
 
YAHOO.util.Event.onDOMReady(function(){
 
	function set_canvas() {
 
		var c = document.getElementById('graph_nodes');
 
		var t = document.getElementById('graph_content');
 
		canvas = document.getElementById('graph_canvas');
 
		var div_h = t.clientHeight;
 
		c.style.height=div_h+'px';
 
		canvas.setAttribute('height',div_h);
 
		canvas.setAttribute('width',160);
 
	};
 

	
 
	set_canvas();
 
	
 
	var jsdata = ${c.jsdata|n};
 
	var r = new BranchRenderer();
 
	r.render(jsdata); 
 

	
 
});
 
</script>
 

	
 
<div>
 
	<h2>${c.pagination.pager('$link_previous ~2~ $link_next')}</h2>
 
</div>	
 
%else:
 
	${_('There are no changes yet')}
 
%endif
 
</%def>    
 
\ No newline at end of file
0 comments (0 inline, 0 general)