testing ability to pull topics onto the canvas

This commit is contained in:
Connor Turland 2012-12-23 01:12:56 -05:00
parent 79f931bede
commit 783894461e
111 changed files with 395 additions and 140 deletions

View file

@ -194,7 +194,7 @@ $(document).ready(function() {
$('.sideOption').animate({ $('.sideOption').animate({
width: '305px', width: '305px',
height: '76px' height: '76px'
}, 700, function() { }, 300, function() {
$('#topic_by_name_input').focus(); $('#topic_by_name_input').focus();
}); });
$('#closeFind, #findWhere').css('display','block'); $('#closeFind, #findWhere').css('display','block');
@ -204,12 +204,16 @@ $(document).ready(function() {
// this sets up the closing of the find box, and the toggling between open and closed. // this sets up the closing of the find box, and the toggling between open and closed.
$('#closeFind').click(function(){ $('#closeFind').click(function(){
Mconsole.graph.eachNode( function (n) {
n.setData('isNew', false);
});
Mconsole.plot();
$('#closeFind, #findWhere').css('display','none'); $('#closeFind, #findWhere').css('display','none');
$('.sideOption').css('cursor','pointer'); $('.sideOption').css('cursor','pointer');
$('.sideOption').animate({ $('.sideOption').animate({
width: '45px', width: '45px',
height: '32px' height: '32px'
}, 700, function() { }, 300, function() {
$('.sideOption').bind('click',function(){ $('.sideOption').bind('click',function(){
firstVal = $('.sideOption option[value="name"]').attr('selected'); firstVal = $('.sideOption option[value="name"]').attr('selected');
secondVal = $('.sideOption option[value="metacode"]').attr('selected'); secondVal = $('.sideOption option[value="metacode"]').attr('selected');
@ -393,7 +397,30 @@ $(document).ready(function() {
secondVal = $('.sideOption .select_content').children("option[value='maps']").attr('selected'); secondVal = $('.sideOption .select_content').children("option[value='maps']").attr('selected');
thirdVal = $('.sideOption .select_content').children("option[value='mappers']").attr('selected'); thirdVal = $('.sideOption .select_content').children("option[value='mappers']").attr('selected');
if ( firstVal == 'selected') { if ( firstVal == 'selected') {
onCanvasSearch(null,data.item.id,null); // grab the checkboxes to see if the search is on the canvas, in the commons, or both
firstNewVal = $("#onCanvas").attr('checked');
secondNewVal = $("#inCommons").attr('checked');
// only have the autocomplete enabled if they are searching in the commons
if (firstNewVal == "checked" && secondNewVal == "checked"){
onCanvasSearch(null,data.item.id,null);
$('#topicsByMap').val(data.item.id);
$('#topicsByUser').val("");
$('#get_topics_form').submit();
}
else if (firstNewVal == "checked"){
onCanvasSearch(null,data.item.id,null);
}
else if (secondNewVal == "checked"){
//hideAll();
$('#topicsByMap').val(data.item.id);
$('#topicsByUser').val("");
$('#get_topics_form').submit();
}
else {
alert('You either need to have searching On Your Canvas or In the Commons enabled');
}
} }
else if ( secondVal == 'selected' ) { else if ( secondVal == 'selected' ) {
if (data.item.id != undefined) { if (data.item.id != undefined) {
@ -415,7 +442,30 @@ $(document).ready(function() {
secondVal = $('.sideOption .select_content').children("option[value='maps']").attr('selected'); secondVal = $('.sideOption .select_content').children("option[value='maps']").attr('selected');
thirdVal = $('.sideOption .select_content').children("option[value='mappers']").attr('selected'); thirdVal = $('.sideOption .select_content').children("option[value='mappers']").attr('selected');
if ( firstVal == 'selected') { if ( firstVal == 'selected') {
onCanvasSearch(null,null,data.item.id.toString()); // grab the checkboxes to see if the search is on the canvas, in the commons, or both
firstNewVal = $("#onCanvas").attr('checked');
secondNewVal = $("#inCommons").attr('checked');
// only have the autocomplete enabled if they are searching in the commons
if (firstNewVal == "checked" && secondNewVal == "checked"){
onCanvasSearch(null,null,data.item.id.toString());
$('#topicsByUser').val(data.item.id);
$('#topicsByMap').val("");
$('#get_topics_form').submit();
}
else if (firstNewVal == "checked"){
onCanvasSearch(null,null,data.item.id.toString());
}
else if (secondNewVal == "checked"){
//hideAll();
$('#topicsByUser').val(data.item.id);
$('#topicsByMap').val("");
$('#get_topics_form').submit();
}
else {
alert('You either need to have searching On Your Canvas or In the Commons enabled');
}
} }
else if ( secondVal == 'selected' ) { else if ( secondVal == 'selected' ) {

View file

@ -364,6 +364,42 @@ function graphSettings(type) {
return t; return t;
} }
// defining code to draw edges with arrows pointing in the middle of them
var renderMidArrow = function(from, to, dim, swap, canvas){
var ctx = canvas.getCtx();
// invert edge direction
if (swap) {
var tmp = from;
from = to;
to = tmp;
}
// vect represents a line from tip to tail of the arrow
var vect = new $jit.Complex(to.x - from.x, to.y - from.y);
// scale it
vect.$scale(dim / vect.norm());
// compute the midpoint of the edge line
var midPoint = new $jit.Complex((to.x + from.x) / 2, (to.y + from.y) / 2);
// move midpoint by half the "length" of the arrow so the arrow is centered on the midpoint
midPoint.x += (vect.x / 0.7);
midPoint.y += (vect.y / 0.7);
// compute the tail intersection point with the edge line
var intermediatePoint = new $jit.Complex(midPoint.x - vect.x,
midPoint.y - vect.y);
// vector perpendicular to vect
var normal = new $jit.Complex(-vect.y / 2, vect.x / 2);
var v1 = intermediatePoint.add(normal);
var v2 = intermediatePoint.$add(normal.$scale(-1));
ctx.beginPath();
ctx.moveTo(from.x, from.y);
ctx.lineTo(to.x, to.y);
ctx.stroke();
ctx.beginPath();
ctx.moveTo(v1.x, v1.y);
ctx.lineTo(midPoint.x, midPoint.y);
ctx.lineTo(v2.x, v2.y);
ctx.stroke();
};
// defining custom node type // defining custom node type
var nodeSettings = { var nodeSettings = {
@ -379,8 +415,9 @@ var nodeSettings = {
if (isNew) { if (isNew) {
ctx.beginPath(); ctx.beginPath();
ctx.arc(pos.x, pos.y, dim+3, 0, 2 * Math.PI, false); ctx.arc(pos.x, pos.y, dim+3, 0, 2 * Math.PI, false);
ctx.fillStyle = 'green'; ctx.strokeStyle = 'white';
ctx.fill(); ctx.lineWidth = 2;
ctx.stroke();
} }
ctx.drawImage(imgArray[cat], pos.x - dim, pos.y - dim, dim*2, dim*2); ctx.drawImage(imgArray[cat], pos.x - dim, pos.y - dim, dim*2, dim*2);
@ -555,6 +592,7 @@ function clickDragOnTopicForceDirected(node, eventInfo, e) {
Mconsole.fx.plotNode(tempNode, Mconsole.canvas); Mconsole.fx.plotNode(tempNode, Mconsole.canvas);
Mconsole.fx.plotNode(temp, Mconsole.canvas); Mconsole.fx.plotNode(temp, Mconsole.canvas);
} else if (!temp) { } else if (!temp) {
tempNode2 = null;
Mconsole.graph.eachNode(function (n) { Mconsole.graph.eachNode(function (n) {
n.setData('dim', 25, 'current'); n.setData('dim', 25, 'current');
}); });

View file

@ -45,60 +45,27 @@ imgArray['Action'] = new Image(); imgArray['Action'].src = '/assets/action.png';
imgArray['Activity'] = new Image(); imgArray['Activity'].src = '/assets/activity.png'; imgArray['Activity'] = new Image(); imgArray['Activity'].src = '/assets/activity.png';
// defining code to draw edges with arrows pointing in the middle of them // init custom node type
var renderMidArrow = function(from, to, dim, swap, canvas){ $jit.ForceDirected.Plot.NodeTypes.implement(nodeSettings);
var ctx = canvas.getCtx(); //implement an edge type
// invert edge direction $jit.ForceDirected.Plot.EdgeTypes.implement(edgeSettings);
if (swap) { // end
var tmp = from;
from = to;
to = tmp;
}
// vect represents a line from tip to tail of the arrow
var vect = new $jit.Complex(to.x - from.x, to.y - from.y);
// scale it
vect.$scale(dim / vect.norm());
// compute the midpoint of the edge line
var midPoint = new $jit.Complex((to.x + from.x) / 2, (to.y + from.y) / 2);
// move midpoint by half the "length" of the arrow so the arrow is centered on the midpoint
midPoint.x += (vect.x / 0.7);
midPoint.y += (vect.y / 0.7);
// compute the tail intersection point with the edge line
var intermediatePoint = new $jit.Complex(midPoint.x - vect.x,
midPoint.y - vect.y);
// vector perpendicular to vect
var normal = new $jit.Complex(-vect.y / 2, vect.x / 2);
var v1 = intermediatePoint.add(normal);
var v2 = intermediatePoint.$add(normal.$scale(-1));
ctx.beginPath(); // init custom node type
ctx.moveTo(from.x, from.y); $jit.RGraph.Plot.NodeTypes.implement(nodeSettings);
ctx.lineTo(to.x, to.y); //implement an edge type
ctx.stroke(); $jit.RGraph.Plot.EdgeTypes.implement(edgeSettings);
ctx.beginPath(); // end
ctx.moveTo(v1.x, v1.y);
ctx.lineTo(midPoint.x, midPoint.y); function initialize(type, loadLater){
ctx.lineTo(v2.x, v2.y);
ctx.stroke(); if (loadLater == null) {
}; loadlater = false;
}
function initialize(type){
viewMode = "graph"; viewMode = "graph";
gType = type; gType = type;
// init custom node type
$jit.ForceDirected.Plot.NodeTypes.implement(nodeSettings);
//implement an edge type
$jit.ForceDirected.Plot.EdgeTypes.implement(edgeSettings);
// end
// init custom node type
$jit.RGraph.Plot.NodeTypes.implement(nodeSettings);
//implement an edge type
$jit.RGraph.Plot.EdgeTypes.implement(edgeSettings);
// end
if ( type == "centered") { if ( type == "centered") {
// init Rgraph // init Rgraph
Mconsole = new $jit.RGraph(graphSettings(type)); Mconsole = new $jit.RGraph(graphSettings(type));
@ -113,61 +80,63 @@ function initialize(type){
} }
// load JSON data. // load JSON data.
Mconsole.loadJSON(json); if (!loadLater) {
Mconsole.loadJSON(json);
// choose how to plot and animate the data onto the screen
var chooseAnimate;
if ( type == "centered") {
// compute positions incrementally and animate.
//trigger small animation
Mconsole.graph.eachNode(function(n) {
var pos = n.getPos();
pos.setc(-200, -200);
});
Mconsole.compute('end');
chooseAnimate = { // choose how to plot and animate the data onto the screen
modes:['polar'], var chooseAnimate;
duration: 2000
}; if ( type == "centered") {
} // compute positions incrementally and animate.
else if ( type == "arranged" ) { //trigger small animation
// compute positions incrementally and animate. Mconsole.graph.eachNode(function(n) {
Mconsole.graph.eachNode(function(n) { var pos = n.getPos();
var pos = n.getPos(); pos.setc(-200, -200);
pos.setc(0, 0); });
var newPos = new $jit.Complex(); Mconsole.compute('end');
newPos.x = n.data.$xloc;
newPos.y = n.data.$yloc; chooseAnimate = {
n.setPos(newPos, 'end'); modes:['polar'],
duration: 2000
};
}
else if ( type == "arranged" ) {
// compute positions incrementally and animate.
Mconsole.graph.eachNode(function(n) {
var pos = n.getPos();
pos.setc(0, 0);
var newPos = new $jit.Complex();
newPos.x = n.data.$xloc;
newPos.y = n.data.$yloc;
n.setPos(newPos, 'end');
});
chooseAnimate = {
modes: ['linear'],
transition: $jit.Trans.Quad.easeInOut,
duration: 2500
};
}
else if ( type == "chaotic" ) {
// compute positions incrementally and animate.
Mconsole.compute();
chooseAnimate = {
modes: ['linear'],
transition: $jit.Trans.Elastic.easeOut,
duration: 2500
};
}
$(document).ready(function() {
if ( type == "centered") {
Mconsole.fx.animate(chooseAnimate);
}
else if ( type == "arranged" || type == "chaotic") {
Mconsole.animate(chooseAnimate);
}
}); });
// end
chooseAnimate = { }// if not loadLater
modes: ['linear'],
transition: $jit.Trans.Quad.easeInOut,
duration: 2500
};
}
else if ( type == "chaotic" ) {
// compute positions incrementally and animate.
Mconsole.compute()
chooseAnimate = {
modes: ['linear'],
transition: $jit.Trans.Elastic.easeOut,
duration: 2500
};
}
$(document).ready(function() {
if ( type == "centered") {
Mconsole.fx.animate(chooseAnimate);
}
else if ( type == "arranged" || type == "chaotic") {
Mconsole.animate(chooseAnimate);
}
});
// end
} }

View file

@ -19,7 +19,7 @@
// other options are 'graph' // other options are 'graph'
var viewMode = "list"; var viewMode = "list";
var labelType, useGradients, nativeTextSupport, animate, json, Mconsole, gType, tempNode = null, tempInit = false, tempNode2 = null; var labelType, useGradients, nativeTextSupport, animate, json, Mconsole = null, gType, tempNode = null, tempInit = false, tempNode2 = null;
$(document).ready(function() { $(document).ready(function() {

View file

@ -397,7 +397,7 @@ input[type="submit"] {
#findWhere { #findWhere {
position:fixed; position:fixed;
top:25%; top:25%;
left:40px; left:90px;
display:none; display:none;
margin-top:-20px; margin-top:-20px;
} }
@ -486,6 +486,10 @@ input[type="submit"] {
opacity: 0.4; opacity: 0.4;
} }
#get_topics_form {
display:none;
}
/* --- styling the logo button ---*/ /* --- styling the logo button ---*/
.logo { .logo {
position:fixed; position:fixed;

View file

@ -11,14 +11,7 @@ class MainController < ApplicationController
@current = current_user @current = current_user
if authenticated? if authenticated?
@synapses = Synapse.visibleToUser(@current, nil)
@synapses = @synapses.slice(0, 50)
@items = synapses_as_json(@current, @synapses).html_safe
respond_to do |format|
format.html { respond_with(@current) }
format.json { respond_with(@items) }
end
else else
@maps = Map.visibleToUser(@current, nil) @maps = Map.visibleToUser(@current, nil)
@map = @maps.sample @map = @maps.sample
@ -32,6 +25,21 @@ class MainController < ApplicationController
end end
end end
def search
@current = current_user
@items = Array.new()
if params[:topics_by_user_id] != ""
@user = User.find(params[:topics_by_user_id])
@items = Item.visibleToUser(@current, @user)
elsif params[:topics_by_map_id] != ""
@map = Map.find(params[:topics_by_map_id])
@items = @map.items.delete_if{|item| not item.authorize_to_view(@current)}
end
respond_to do |format|
format.js { respond_with(@items) }
end
end
def metamap def metamap
@current = current_user @current = current_user

View file

@ -13,7 +13,7 @@ var x = <%= @position['x'] %>;
var y = <%= @position['y'] %>; var y = <%= @position['y'] %>;
if (Mconsole != null) { if (!$.isEmptyObject(Mconsole.graph.nodes)) {
Mconsole.graph.addNode(newnode); Mconsole.graph.addNode(newnode);
// set the animation for everything back to normal // set the animation for everything back to normal
@ -66,5 +66,16 @@ if (Mconsole != null) {
} else { } else {
json = newnode; json = newnode;
initialize("chaotic"); Mconsole.loadJSON(json);
var temp = Mconsole.graph.getNode('<%= @item.id %>');
temp.setData('dim', 1, 'start');
temp.setData('dim', 25, 'end');
temp.setPos(new $jit.Complex(x, y), 'current');
temp.setPos(new $jit.Complex(x, y), 'start');
temp.setPos(new $jit.Complex(x, y), 'end');
Mconsole.fx.plotNode(temp, Mconsole.canvas);
Mconsole.fx.animate({
modes: ['node-property:dim'],
duration: 500
});
} }

View file

@ -37,35 +37,33 @@
} }
</script> </script>
<% elsif @items %> <% elsif authenticated? %>
<div class="maps" id="container"> <div class="maps" id="container">
<div id="center-container"> <div id="center-container">
<div id="infovis"></div> <div id="infovis"></div>
</div>
</div> </div>
</div> <div class="clearfloat"></div>
<div class="clearfloat"></div> <% if authenticated? %>
<% if authenticated? %> <%= render :partial => 'items/new' %>
<%= render :partial => 'items/new' %> <%= render :partial => 'synapses/new' %>
<%= render :partial => 'synapses/new' %> <% end %>
<% end %> <script>
<script>
json = <%= @items %>;
//if (json.length > 0) { //if (json.length > 0) {
$(document).ready(function() { $(document).ready(function() {
initialize("chaotic"); initialize("chaotic", true);
}); });
//} //}
</script> </script>
<% else %> <% else %>
<h1><br>Shucks, there are no maps.<h1> <h1><br>Shucks, there are no maps.<h1>
<% end %> <% end %>
<span id="closeFind">close</span> <span id="closeFind">close</span>
<form id="findWhere"> <form id="findWhere">
<span class="findWhereField"><input type="checkbox" id="onCanvas" checked="checked"><p>On my Canvas</p></span> <span class="findWhereField"><input type="checkbox" id="onCanvas"><p>On my Canvas</p></span>
<span class="findWhereField"><input type="checkbox" id="inCommons"><p>In the Commons</p></span> <span class="findWhereField"><input type="checkbox" id="inCommons" checked="checked"><p>In the Commons</p></span>
</form> </form>
<div class="sideOption" id="sideOptionFind"> <div class="sideOption" id="sideOptionFind">
<span class="find_key">Find...</span> <span class="find_key">Find...</span>
@ -130,4 +128,8 @@
<li><img src="/assets/trajectory.png" alt="Trajectory" /><p>trajectory</p></li> <li><img src="/assets/trajectory.png" alt="Trajectory" /><p>trajectory</p></li>
</ul> </ul>
</div> </div>
<%= form_tag("/search", :method => "get", :id => 'get_topics_form', :class => 'get_topics_form', :remote => true) do %>
<%= text_field_tag(:topics_by_user_id, "", :id => "topicsByUser", :class => "getTopicsInput") %>
<%= text_field_tag(:topics_by_map_id, "", :id => "topicsByMap", :class => "getTopicsInput") %>
<% end %>
</div> </div>

View file

@ -0,0 +1,48 @@
$('.getTopicsInput').attr('value','');
var h = Mconsole.canvas.element.clientHeight / 2;
var w = Mconsole.canvas.element.clientWidth / 2;
var myX = -w + 100;
var myY = -h + 100;
<% @items.each do |item| %>
if ($.isEmptyObject(Mconsole.graph.nodes)) {
json = <%= item.self_as_json.html_safe %>;
Mconsole.loadJSON(json);
var temp = Mconsole.graph.getNode('<%= item.id %>');
temp.setData('dim', 1, 'start');
temp.setData('dim', 25, 'end');
temp.setData('isNew',true);
temp.setPos(new $jit.Complex(myX, myY), 'current');
temp.setPos(new $jit.Complex(myX, myY), 'start');
temp.setPos(new $jit.Complex(myX, myY), 'end');
Mconsole.fx.plotNode(temp, Mconsole.canvas);
myX += 100;
}
else {
var temp = Mconsole.graph.getNode('<%= item.id %>');
if (temp == null) {
var newnode = <%= item.self_as_json.html_safe %>;
Mconsole.graph.addNode(newnode);
var temp = Mconsole.graph.getNode('<%= item.id %>');
temp.setData('dim', 1, 'start');
temp.setData('dim', 25, 'end');
temp.setData('isNew',true);
if (myX > (w-100)) {
myX = -w + 100;
myY += 100
}
temp.setPos(new $jit.Complex(myX, myY), 'current');
temp.setPos(new $jit.Complex(myX, myY), 'start');
temp.setPos(new $jit.Complex(myX, myY), 'end');
Mconsole.fx.plotNode(temp, Mconsole.canvas);
myX += 100;
}
}
<% end %>
Mconsole.fx.animate({
modes: ['node-property:dim'],
duration: 500
});

View file

@ -6,6 +6,8 @@ ISSAD::Application.routes.draw do
match 'invite', to: 'main#invite', via: :get, as: :invite match 'invite', to: 'main#invite', via: :get, as: :invite
match 'search', to: 'main#search', via: :get, as: :search
match 'maps/:id/savelayout', to: 'maps#savelayout', via: :put, as: :savelayout match 'maps/:id/savelayout', to: 'maps#savelayout', via: :put, as: :savelayout
resource :session resource :session

BIN
public/assets/48px-all.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
public/assets/action.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/activity.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
public/assets/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/bizarre.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
public/assets/catalyst.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
public/assets/col2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/futuredev.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/assets/gradient.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/group.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
public/assets/idea.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
public/assets/insight.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/intention.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/assets/junto.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
public/assets/knowledge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
public/assets/location.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View file

@ -0,0 +1,49 @@
---
48px-all.zip: 48px-all-2dd6aaa6c99e01af92fd7aa61fbf642a.zip
96px-gen001.zip: 96px-gen001-a2e2d959694d5f3c98e717eb4f82d5dd.zip
action.png: action-02bd981b8466a7b2cb167afffc284703.png
activity.png: activity-27aedb9b5baea69ea88f1f2b5303862c.png
background.jpg: background-2fcc9f96ace4764a02278ada04bc0d9d.jpg
background2-for-repeating.jpg: background2-for-repeating-8d022369a362b364c9395039167f1ffd.jpg
background2.jpg: background2-c2b46d9ebc7d31aea8135e3c505aa1e9.jpg
bg.png: bg-eea3f1ec61623cbc3833f8fcbf114bf8.png
bizarre.png: bizarre-4154e4b7b2e0169cfc4af24c32119305.png
catalyst.png: catalyst-21e04cdb0f34140b3e00d0b98aca240c.png
closed.png: closed-11f6970ed42d52bc9352fa8860ab7479.png
col2.png: col2-4f58f5695026bcc1789ef2a87be40897.png
experience.png: experience-8068d2c812493d1852ee7e3c992365ce.png
futuredev.png: futuredev-e3c62458cfd457b0501dddc6d9b2d8d4.png
gradient.png: gradient-6c6f5be85356b9e5ff76658e56ccc0f9.png
group.png: group-70155e13e72ec389d64a4f80a8d62d24.png
idea.png: idea-283b58d94b9166856f2734e3c5426ca4.png
implication.png: implication-652ece8bc0b1060dd5ca0756393cf21e.png
insight.png: insight-858ccca7357b37837a257e0202319b27.png
intention.png: intention-a487d116bfcf64c7ac559ef89ed61544.png
junto.png: junto-3bca283ec5fe80ef34d6a888b7c676b4.png
knowledge.png: knowledge-eb4b1dc4412b210c286b934737b04f80.png
location.png: location-e1642892214a5cb4b2891f3837f437de.png
old icons/action.png: old icons/action-d55838ce24528a56dd241c285ef2349a.png
old icons/group.png: old icons/group-bd3f38a2d40c7aef4123fd61caa833c7.png
old icons/intention.png: old icons/intention-6fc1087e39981084643eb9d713f82d90.png
old icons/location.png: old icons/location-4f88b890ffc41fea38627f59f2c19a3e.png
old icons/person.png: old icons/person-be021351add736f73b07acc5880ecbf4.png
old icons/resource.png: old icons/resource-9e40d89dbf5a02859533b6c02eabe2d8.png
openissue.png: openissue-d9c50446b2dbd0587942ae298bda2a75.png
opinion.png: opinion-c65d63ce63d9c1dc01f60b2f9a4fecfe.png
opportunity.png: opportunity-4fe7c2f4f5cbe678058c76924ec43a7f.png
person.png: person-2cb4eace780426c21c109ca6475431ce.png
platform.png: platform-29f4dc32fb5f2a9f369b92d2f51ba005.png
problem.png: problem-d660aa3522f737dfd25487937bed6db1.png
question.png: question-bc1ccabf1e7cb8b4b6d6744fe096760c.png
reference.png: reference-c840b77477e0dc3fd431236766793a5f.png
requirement.png: requirement-d200e129a41fff36f64111f554abea72.png
resource.png: resource-4017b1e9535d80d205ceff916930cf5d.png
role.png: role-c474b1fcb4b4f836e7ca0db67e744dc3.png
task.png: task-0ac599d122a709a5e73990f1745019e0.png
tool.png: tool-45532482693a381d4da31c103392ee5b.png
topbg.png: topbg-eb18f5cf8dcfaf7dfd7e47f503956a5d.png
topbg2.png: topbg2-f9640f6cb183bb610d0954c7759ecc23.png
trajectory.png: trajectory-a7c520e746d4c1ffe401805b3d0cb6cd.png
application.js: application-6b4d80ff670302ae50174a88153db2fc.js
scroll/mCSB_buttons.png: scroll/mCSB_buttons-6eb1e766df3b6b28f5cb2a218697658f.png
application.css: application-b45ff6856d37792e0f8481681c27b764.css

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/openissue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
public/assets/opinion.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
public/assets/person.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
public/assets/platform.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
public/assets/problem.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
public/assets/question.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
public/assets/reference.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
public/assets/resource.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
public/assets/role.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Some files were not shown because too many files have changed in this diff Show more