spacing
styling avatars
This commit is contained in:
parent
0ab9f790fe
commit
9e1a68aac5
3 changed files with 20 additions and 27 deletions
|
@ -1,8 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpResponse
|
||||
from django.http import HttpResponse, HttpResponseBadRequest
|
||||
from django.shortcuts import render_to_response
|
||||
from django.template.context import RequestContext
|
||||
from django.utils import simplejson
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views.generic.detail import DetailView
|
||||
from ghapi import api
|
||||
|
@ -85,8 +86,8 @@ class NetworkView(DetailView):
|
|||
def me(request):
|
||||
context = RequestContext(request)
|
||||
context['followers'] = simplejson.dumps(
|
||||
[{'name': unicode(follower), 'group': 2} for follower in request.gh_user.following.all()])
|
||||
return render_to_response('graph.html', context)
|
||||
[{'name': unicode(follower), 'avatar': follower.avatar_url} for follower in request.gh_user.following.all()])
|
||||
return render_to_response('me.html', context)
|
||||
|
||||
|
||||
@login_required
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{% extends "base.html" %}
|
||||
{% extends "graph_base.html" %}
|
||||
|
||||
{% block body %}
|
||||
{% block graph %}
|
||||
<div id='chart'> </div>
|
||||
<style>
|
||||
circle.node {
|
||||
|
@ -12,11 +12,6 @@
|
|||
stroke: #999;
|
||||
stroke-opacity: .6;
|
||||
}
|
||||
.nodetext {
|
||||
pointer-events: none;
|
||||
font: 10px sans-serif;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script src="{{ STATIC_URL }}d3/d3.v2.js"></script>
|
||||
<script src="{{ STATIC_URL }}/js/jquery.js"></script>
|
||||
|
@ -27,13 +22,13 @@
|
|||
var map = {};
|
||||
|
||||
var w = 960,
|
||||
h = 500;
|
||||
h = 800;
|
||||
var color = d3.scale.category20();
|
||||
|
||||
var force = d3.layout.force()
|
||||
.gravity(.05)
|
||||
.distance(100)
|
||||
.charge(-100)
|
||||
.distance(250)
|
||||
.charge(-200)
|
||||
.size([w, h]);
|
||||
|
||||
var nodes = force.nodes(),
|
||||
|
@ -67,18 +62,15 @@
|
|||
.data(nodes, function(d) { return d.id;});
|
||||
|
||||
var nodeEnter = node.enter().append("svg:g").attr('class', 'node').call(force.drag);
|
||||
nodeEnter.append("circle")
|
||||
.attr("class", "node")
|
||||
.attr("r", 5)
|
||||
.style("fill", function(d) { return color(d.group); })
|
||||
.attr("x", "-8px")
|
||||
.attr("y", "-8px")
|
||||
.attr("width", "16px")
|
||||
.attr("height", "16px");
|
||||
nodeEnter.append("svg:text")
|
||||
.attr("class", "nodetext")
|
||||
.attr("dx", 12)
|
||||
.attr("dy", ".35em")
|
||||
nodeEnter.append("svg:image")
|
||||
.attr("class", "circle")
|
||||
.attr("xlink:href", function(d){return d.avatar;})
|
||||
.attr("x", "-16px")
|
||||
.attr("y", "-16px")
|
||||
.style("border-radius", "16px;")
|
||||
.attr("width", "32px")
|
||||
.attr("height", "32px");
|
||||
nodeEnter.append("title")
|
||||
.text(function(d) { return d.name });
|
||||
|
||||
node.exit().remove();
|
||||
|
@ -88,7 +80,7 @@
|
|||
|
||||
// Add three nodes and three links.
|
||||
function init() {
|
||||
var center = {"name": "{{ request.gh_user.gh_login }}", "group": 1};
|
||||
var center = {"name": "{{ request.gh_user.gh_login }}", "avatar": "{{ request.gh_user.avatar_url }}"};
|
||||
nodes.push(center);
|
||||
for (var i = 0; i<followers.length;i++){
|
||||
nodes.push(followers[i]);
|
2
urls.py
2
urls.py
|
@ -15,7 +15,7 @@ urlpatterns = patterns('',
|
|||
name='graph_followers'),
|
||||
url(r'^login/$', views.login, name='login'),
|
||||
url(r'^me/$', 'githubnetwork.views.me', name='me'),
|
||||
url(r'^ajax/$', 'githubnetwork.views.get_user_followers', name='get_user_followers'),
|
||||
url(r'^~followers/$', 'githubnetwork.views.get_user_followers', name='get_user_followers'),
|
||||
url(r'^repo/(?P<user>\w+)/(?P<repo>\w+)/', views.graph_repo,
|
||||
name='graph_repo'),
|
||||
url(r'^$', views.index, name='index'),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue