testing ability to pull topics onto the canvas
|
@ -194,7 +194,7 @@ $(document).ready(function() {
|
|||
$('.sideOption').animate({
|
||||
width: '305px',
|
||||
height: '76px'
|
||||
}, 700, function() {
|
||||
}, 300, function() {
|
||||
$('#topic_by_name_input').focus();
|
||||
});
|
||||
$('#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.
|
||||
$('#closeFind').click(function(){
|
||||
Mconsole.graph.eachNode( function (n) {
|
||||
n.setData('isNew', false);
|
||||
});
|
||||
Mconsole.plot();
|
||||
$('#closeFind, #findWhere').css('display','none');
|
||||
$('.sideOption').css('cursor','pointer');
|
||||
$('.sideOption').animate({
|
||||
width: '45px',
|
||||
height: '32px'
|
||||
}, 700, function() {
|
||||
}, 300, function() {
|
||||
$('.sideOption').bind('click',function(){
|
||||
firstVal = $('.sideOption option[value="name"]').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');
|
||||
thirdVal = $('.sideOption .select_content').children("option[value='mappers']").attr('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' ) {
|
||||
if (data.item.id != undefined) {
|
||||
|
@ -415,7 +442,30 @@ $(document).ready(function() {
|
|||
secondVal = $('.sideOption .select_content').children("option[value='maps']").attr('selected');
|
||||
thirdVal = $('.sideOption .select_content').children("option[value='mappers']").attr('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' ) {
|
||||
|
||||
|
|
|
@ -364,6 +364,42 @@ function graphSettings(type) {
|
|||
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
|
||||
var nodeSettings = {
|
||||
|
@ -379,8 +415,9 @@ var nodeSettings = {
|
|||
if (isNew) {
|
||||
ctx.beginPath();
|
||||
ctx.arc(pos.x, pos.y, dim+3, 0, 2 * Math.PI, false);
|
||||
ctx.fillStyle = 'green';
|
||||
ctx.fill();
|
||||
ctx.strokeStyle = 'white';
|
||||
ctx.lineWidth = 2;
|
||||
ctx.stroke();
|
||||
}
|
||||
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(temp, Mconsole.canvas);
|
||||
} else if (!temp) {
|
||||
tempNode2 = null;
|
||||
Mconsole.graph.eachNode(function (n) {
|
||||
n.setData('dim', 25, 'current');
|
||||
});
|
||||
|
|
|
@ -45,60 +45,27 @@ imgArray['Action'] = new Image(); imgArray['Action'].src = '/assets/action.png';
|
|||
imgArray['Activity'] = new Image(); imgArray['Activity'].src = '/assets/activity.png';
|
||||
|
||||
|
||||
// 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));
|
||||
// init custom node type
|
||||
$jit.ForceDirected.Plot.NodeTypes.implement(nodeSettings);
|
||||
//implement an edge type
|
||||
$jit.ForceDirected.Plot.EdgeTypes.implement(edgeSettings);
|
||||
// end
|
||||
|
||||
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();
|
||||
};
|
||||
// init custom node type
|
||||
$jit.RGraph.Plot.NodeTypes.implement(nodeSettings);
|
||||
//implement an edge type
|
||||
$jit.RGraph.Plot.EdgeTypes.implement(edgeSettings);
|
||||
// end
|
||||
|
||||
function initialize(type, loadLater){
|
||||
|
||||
if (loadLater == null) {
|
||||
loadlater = false;
|
||||
}
|
||||
|
||||
function initialize(type){
|
||||
viewMode = "graph";
|
||||
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") {
|
||||
// init Rgraph
|
||||
Mconsole = new $jit.RGraph(graphSettings(type));
|
||||
|
@ -113,61 +80,63 @@ function initialize(type){
|
|||
}
|
||||
|
||||
// load JSON data.
|
||||
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');
|
||||
if (!loadLater) {
|
||||
Mconsole.loadJSON(json);
|
||||
|
||||
chooseAnimate = {
|
||||
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');
|
||||
// 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 = {
|
||||
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);
|
||||
}
|
||||
});
|
||||
|
||||
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
|
||||
// end
|
||||
}// if not loadLater
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// other options are 'graph'
|
||||
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() {
|
||||
|
||||
|
|
|
@ -397,7 +397,7 @@ input[type="submit"] {
|
|||
#findWhere {
|
||||
position:fixed;
|
||||
top:25%;
|
||||
left:40px;
|
||||
left:90px;
|
||||
display:none;
|
||||
margin-top:-20px;
|
||||
}
|
||||
|
@ -486,6 +486,10 @@ input[type="submit"] {
|
|||
opacity: 0.4;
|
||||
}
|
||||
|
||||
#get_topics_form {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* --- styling the logo button ---*/
|
||||
.logo {
|
||||
position:fixed;
|
||||
|
|
|
@ -11,14 +11,7 @@ class MainController < ApplicationController
|
|||
@current = current_user
|
||||
|
||||
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
|
||||
@maps = Map.visibleToUser(@current, nil)
|
||||
@map = @maps.sample
|
||||
|
@ -32,6 +25,21 @@ class MainController < ApplicationController
|
|||
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
|
||||
@current = current_user
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ var x = <%= @position['x'] %>;
|
|||
var y = <%= @position['y'] %>;
|
||||
|
||||
|
||||
if (Mconsole != null) {
|
||||
if (!$.isEmptyObject(Mconsole.graph.nodes)) {
|
||||
Mconsole.graph.addNode(newnode);
|
||||
|
||||
// set the animation for everything back to normal
|
||||
|
@ -66,5 +66,16 @@ if (Mconsole != null) {
|
|||
|
||||
} else {
|
||||
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
|
||||
});
|
||||
}
|
||||
|
|
|
@ -37,35 +37,33 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<% elsif @items %>
|
||||
<div class="maps" id="container">
|
||||
<div id="center-container">
|
||||
<div id="infovis"></div>
|
||||
<% elsif authenticated? %>
|
||||
<div class="maps" id="container">
|
||||
<div id="center-container">
|
||||
<div id="infovis"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfloat"></div>
|
||||
<% if authenticated? %>
|
||||
<%= render :partial => 'items/new' %>
|
||||
<%= render :partial => 'synapses/new' %>
|
||||
<% end %>
|
||||
<script>
|
||||
json = <%= @items %>;
|
||||
<div class="clearfloat"></div>
|
||||
<% if authenticated? %>
|
||||
<%= render :partial => 'items/new' %>
|
||||
<%= render :partial => 'synapses/new' %>
|
||||
<% end %>
|
||||
<script>
|
||||
//if (json.length > 0) {
|
||||
$(document).ready(function() {
|
||||
initialize("chaotic");
|
||||
});
|
||||
initialize("chaotic", true);
|
||||
});
|
||||
//}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<% else %>
|
||||
<h1><br>Shucks, there are no maps.<h1>
|
||||
<% end %>
|
||||
|
||||
<span id="closeFind">close</span>
|
||||
<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="inCommons"><p>In the Commons</p></span>
|
||||
<span class="findWhereField"><input type="checkbox" id="onCanvas"><p>On my Canvas</p></span>
|
||||
<span class="findWhereField"><input type="checkbox" id="inCommons" checked="checked"><p>In the Commons</p></span>
|
||||
</form>
|
||||
<div class="sideOption" id="sideOptionFind">
|
||||
<span class="find_key">Find...</span>
|
||||
|
@ -130,4 +128,8 @@
|
|||
<li><img src="/assets/trajectory.png" alt="Trajectory" /><p>trajectory</p></li>
|
||||
</ul>
|
||||
</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>
|
||||
|
|
48
app/views/main/search.js.erb
Normal 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
|
||||
});
|
|
@ -6,6 +6,8 @@ ISSAD::Application.routes.draw do
|
|||
|
||||
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
|
||||
|
||||
resource :session
|
||||
|
|
BIN
public/assets/48px-all-2dd6aaa6c99e01af92fd7aa61fbf642a.zip
Normal file
BIN
public/assets/48px-all.zip
Normal file
BIN
public/assets/96px-gen001-a2e2d959694d5f3c98e717eb4f82d5dd.zip
Normal file
BIN
public/assets/96px-gen001.zip
Normal file
BIN
public/assets/action-02bd981b8466a7b2cb167afffc284703.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
public/assets/action.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
public/assets/activity-27aedb9b5baea69ea88f1f2b5303862c.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/activity.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/application-6b4d80ff670302ae50174a88153db2fc.js.gz
Normal file
4
public/assets/application.css
Normal file
BIN
public/assets/application.css.gz
Normal file
33
public/assets/application.js
Normal file
BIN
public/assets/application.js.gz
Normal file
BIN
public/assets/background-2fcc9f96ace4764a02278ada04bc0d9d.jpg
Normal file
After Width: | Height: | Size: 676 KiB |
BIN
public/assets/background.jpg
Normal file
After Width: | Height: | Size: 676 KiB |
BIN
public/assets/background2-c2b46d9ebc7d31aea8135e3c505aa1e9.jpg
Normal file
After Width: | Height: | Size: 370 KiB |
After Width: | Height: | Size: 46 KiB |
BIN
public/assets/background2-for-repeating.jpg
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
public/assets/background2.jpg
Normal file
After Width: | Height: | Size: 370 KiB |
BIN
public/assets/bg-eea3f1ec61623cbc3833f8fcbf114bf8.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
public/assets/bg.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
public/assets/bizarre-4154e4b7b2e0169cfc4af24c32119305.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/bizarre.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/catalyst-21e04cdb0f34140b3e00d0b98aca240c.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
public/assets/catalyst.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
public/assets/closed-11f6970ed42d52bc9352fa8860ab7479.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/closed.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/col2-4f58f5695026bcc1789ef2a87be40897.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
public/assets/col2.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
public/assets/experience-8068d2c812493d1852ee7e3c992365ce.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
public/assets/experience.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
public/assets/futuredev-e3c62458cfd457b0501dddc6d9b2d8d4.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/futuredev.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/gradient-6c6f5be85356b9e5ff76658e56ccc0f9.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
public/assets/gradient.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
public/assets/group-70155e13e72ec389d64a4f80a8d62d24.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/group.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/idea-283b58d94b9166856f2734e3c5426ca4.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
public/assets/idea.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
public/assets/implication-652ece8bc0b1060dd5ca0756393cf21e.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
public/assets/implication.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
public/assets/insight-858ccca7357b37837a257e0202319b27.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
public/assets/insight.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
public/assets/intention-a487d116bfcf64c7ac559ef89ed61544.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/intention.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/junto-3bca283ec5fe80ef34d6a888b7c676b4.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
public/assets/junto.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
public/assets/knowledge-eb4b1dc4412b210c286b934737b04f80.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
public/assets/knowledge.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
public/assets/location-e1642892214a5cb4b2891f3837f437de.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
public/assets/location.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
49
public/assets/manifest.yml
Normal 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
|
After Width: | Height: | Size: 8.4 KiB |
BIN
public/assets/old icons/action.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 8.6 KiB |
BIN
public/assets/old icons/group.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 8.9 KiB |
BIN
public/assets/old icons/intention.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 11 KiB |
BIN
public/assets/old icons/location.png
Normal file
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 8.3 KiB |
BIN
public/assets/old icons/person.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 8.5 KiB |
BIN
public/assets/old icons/resource.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
public/assets/openissue-d9c50446b2dbd0587942ae298bda2a75.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/openissue.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/opinion-c65d63ce63d9c1dc01f60b2f9a4fecfe.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
public/assets/opinion.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
public/assets/opportunity-4fe7c2f4f5cbe678058c76924ec43a7f.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/opportunity.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/person-2cb4eace780426c21c109ca6475431ce.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
public/assets/person.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
public/assets/platform-29f4dc32fb5f2a9f369b92d2f51ba005.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
public/assets/platform.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
public/assets/problem-d660aa3522f737dfd25487937bed6db1.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/problem.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/assets/question-bc1ccabf1e7cb8b4b6d6744fe096760c.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
public/assets/question.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
public/assets/reference-c840b77477e0dc3fd431236766793a5f.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
public/assets/reference.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
public/assets/requirement-d200e129a41fff36f64111f554abea72.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
public/assets/requirement.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
public/assets/resource-4017b1e9535d80d205ceff916930cf5d.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
public/assets/resource.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
public/assets/role-c474b1fcb4b4f836e7ca0db67e744dc3.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
public/assets/role.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 1.4 KiB |