Commit 94690bd2 authored by Valery Sizov's avatar Valery Sizov

Graph: base implementation

parent 6b66a766
...@@ -468,4 +468,13 @@ body.project-page table .commit { ...@@ -468,4 +468,13 @@ body.project-page table .commit {
/** UI autocomplete **/ /** UI autocomplete **/
.ui-autocomplete { @include round-borders-all(5px); } .ui-autocomplete { @include round-borders-all(5px); }
.ui-menu-item { cursor: pointer } .ui-menu-item { cursor: pointer }
#holder {
border: solid 1px #999;
cursor: move;
height: 70%;
overflow: scroll;
position: absolute;
width: auto;
margin: 6ex 3ex 0ex 0ex;
}
...@@ -150,11 +150,9 @@ class ProjectsController < ApplicationController ...@@ -150,11 +150,9 @@ class ProjectsController < ApplicationController
h[:id] = c.sha h[:id] = c.sha
h[:date] = c.date h[:date] = c.date
h[:message] = c.message.force_encoding("UTF-8") h[:message] = c.message.force_encoding("UTF-8")
h[:email] = c.author.email h[:login] = c.author.email
h h
end.to_json end.to_json
render :text => @commits_json
end end
def blob def blob
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
= link_to "History", project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil = link_to "History", project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
= link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil = link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
= link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil = link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil
= link_to "Network graph", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :project_id => @project) ? "current" : nil = link_to "Network graph", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil
= link_to team_project_path(@project), :class => (current_page?(:controller => "projects", :action => "team", :id => @project) || controller.controller_name == "team_members") ? "current" : nil do = link_to team_project_path(@project), :class => (current_page?(:controller => "projects", :action => "team", :id => @project) || controller.controller_name == "team_members") ? "current" : nil do
Team Team
- if @project.users_projects.count > 0 - if @project.users_projects.count > 0
......
#holder.graph
:javascript
var chunk1={commits:#{@commits_json}};
var days=#{@days_json};
initGraph();
$(function(){
branchGraph($("#holder")[0]);
});
var commits = chunk1.commits, var commits = {},
comms = {}, comms = {},
pixelsX = [], pixelsX = [],
pixelsY = [], pixelsY = [],
mmax = Math.max, mmax = Math.max,
mtime = 0, mtime = 0,
mspace = 0, mspace = 0,
parents = {}; parents = {},
for (var i = 0, ii = commits.length; i < ii; i++) { ii = 0,
for (var j = 0, jj = commits[i].parents.length; j < jj; j++) { colors = ["#000"];
parents[commits[i].parents[j][0]] = true;
} function initGraph(){
mtime = Math.max(mtime, commits[i].time); commits = chunk1.commits;
mspace = Math.max(mspace, commits[i].space); ii = commits.length;
} for (var i = 0; i < ii; i++) {
mtime = mtime + 4; for (var j = 0, jj = commits[i].parents.length; j < jj; j++) {
mspace = mspace + 10; parents[commits[i].parents[j][0]] = true;
for (i = 0; i < ii; i++) { }
if (commits[i].id in parents) { mtime = Math.max(mtime, commits[i].time);
commits[i].isParent = true; mspace = Math.max(mspace, commits[i].space);
} }
comms[commits[i].id] = commits[i]; mtime = mtime + 4;
} mspace = mspace + 10;
var colors = ["#000"]; for (i = 0; i < ii; i++) {
for (var k = 0; k < mspace; k++) { if (commits[i].id in parents) {
colors.push(Raphael.getColor()); commits[i].isParent = true;
}
comms[commits[i].id] = commits[i];
}
for (var k = 0; k < mspace; k++) {
colors.push(Raphael.getColor());
}
} }
function branchGraph(holder) { function branchGraph(holder) {
var ch = mspace * 20 + 20, cw = mtime * 20 + 20, var ch = mspace * 20 + 20, cw = mtime * 20 + 20,
r = Raphael("holder", cw, ch), r = Raphael("holder", cw, ch),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment