Graph: base implementation
This commit is contained in:
parent
6b66a766d1
commit
94690bd2c4
5 changed files with 48 additions and 25 deletions
|
@ -468,4 +468,13 @@ body.project-page table .commit {
|
|||
/** UI autocomplete **/
|
||||
.ui-autocomplete { @include round-borders-all(5px); }
|
||||
.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
|
|||
h[:id] = c.sha
|
||||
h[:date] = c.date
|
||||
h[:message] = c.message.force_encoding("UTF-8")
|
||||
h[:email] = c.author.email
|
||||
h[:login] = c.author.email
|
||||
h
|
||||
end.to_json
|
||||
|
||||
render :text => @commits_json
|
||||
end
|
||||
|
||||
def blob
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
= 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 "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
|
||||
Team
|
||||
- if @project.users_projects.count > 0
|
||||
|
|
9
app/views/projects/graph.html.haml
Normal file
9
app/views/projects/graph.html.haml
Normal file
|
@ -0,0 +1,9 @@
|
|||
#holder.graph
|
||||
|
||||
:javascript
|
||||
var chunk1={commits:#{@commits_json}};
|
||||
var days=#{@days_json};
|
||||
initGraph();
|
||||
$(function(){
|
||||
branchGraph($("#holder")[0]);
|
||||
});
|
|
@ -1,30 +1,37 @@
|
|||
var commits = chunk1.commits,
|
||||
var commits = {},
|
||||
comms = {},
|
||||
pixelsX = [],
|
||||
pixelsY = [],
|
||||
mmax = Math.max,
|
||||
mtime = 0,
|
||||
mspace = 0,
|
||||
parents = {};
|
||||
for (var i = 0, ii = commits.length; i < ii; i++) {
|
||||
for (var j = 0, jj = commits[i].parents.length; j < jj; j++) {
|
||||
parents[commits[i].parents[j][0]] = true;
|
||||
}
|
||||
mtime = Math.max(mtime, commits[i].time);
|
||||
mspace = Math.max(mspace, commits[i].space);
|
||||
}
|
||||
mtime = mtime + 4;
|
||||
mspace = mspace + 10;
|
||||
for (i = 0; i < ii; i++) {
|
||||
if (commits[i].id in parents) {
|
||||
commits[i].isParent = true;
|
||||
}
|
||||
comms[commits[i].id] = commits[i];
|
||||
}
|
||||
var colors = ["#000"];
|
||||
for (var k = 0; k < mspace; k++) {
|
||||
colors.push(Raphael.getColor());
|
||||
parents = {},
|
||||
ii = 0,
|
||||
colors = ["#000"];
|
||||
|
||||
function initGraph(){
|
||||
commits = chunk1.commits;
|
||||
ii = commits.length;
|
||||
for (var i = 0; i < ii; i++) {
|
||||
for (var j = 0, jj = commits[i].parents.length; j < jj; j++) {
|
||||
parents[commits[i].parents[j][0]] = true;
|
||||
}
|
||||
mtime = Math.max(mtime, commits[i].time);
|
||||
mspace = Math.max(mspace, commits[i].space);
|
||||
}
|
||||
mtime = mtime + 4;
|
||||
mspace = mspace + 10;
|
||||
for (i = 0; i < ii; i++) {
|
||||
if (commits[i].id in parents) {
|
||||
commits[i].isParent = true;
|
||||
}
|
||||
comms[commits[i].id] = commits[i];
|
||||
}
|
||||
for (var k = 0; k < mspace; k++) {
|
||||
colors.push(Raphael.getColor());
|
||||
}
|
||||
}
|
||||
|
||||
function branchGraph(holder) {
|
||||
var ch = mspace * 20 + 20, cw = mtime * 20 + 20,
|
||||
r = Raphael("holder", cw, ch),
|
||||
|
|
Loading…
Reference in a new issue