initial commit
This commit is contained in:
parent
c5d080b9a2
commit
775d97cdbb
27 changed files with 286 additions and 409 deletions
|
@ -10,6 +10,7 @@ var labelType, useGradients, nativeTextSupport, animate, json;
|
||||||
//I'm setting this based on the fact that ExCanvas provides text support for IE
|
//I'm setting this based on the fact that ExCanvas provides text support for IE
|
||||||
//and that as of today iPhone/iPad current text support is lame
|
//and that as of today iPhone/iPad current text support is lame
|
||||||
labelType = (!nativeCanvasSupport || (textSupport && !iStuff))? 'Native' : 'HTML';
|
labelType = (!nativeCanvasSupport || (textSupport && !iStuff))? 'Native' : 'HTML';
|
||||||
|
console.log(labelType);
|
||||||
nativeTextSupport = labelType == 'Native';
|
nativeTextSupport = labelType == 'Native';
|
||||||
useGradients = nativeCanvasSupport;
|
useGradients = nativeCanvasSupport;
|
||||||
animate = !(iStuff || !nativeCanvasSupport);
|
animate = !(iStuff || !nativeCanvasSupport);
|
||||||
|
@ -25,9 +26,56 @@ var Log = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var imgArray = new Object();
|
||||||
|
|
||||||
|
imgArray['Group'] = new Image(); imgArray['Group'].src = '/assets/group.png';
|
||||||
|
imgArray['Person'] = new Image(); imgArray['Person'].src = '/assets/person.png';
|
||||||
|
imgArray['Bizarre'] = new Image(); imgArray['Bizarre'].src = '/assets/bizarre.png';
|
||||||
|
imgArray['Catalyst'] = new Image(); imgArray['Catalyst'].src = '/assets/catalyst.png';
|
||||||
|
imgArray['Closed'] = new Image(); imgArray['Closed'].src = '/assets/closed.png';
|
||||||
|
imgArray['Experience'] = new Image(); imgArray['Experience'].src = '/assets/experience.png';
|
||||||
|
imgArray['Future Dev'] = new Image(); imgArray['Future Dev'].src = '/assets/futuredev.png';
|
||||||
|
imgArray['Idea'] = new Image(); imgArray['Idea'].src = '/assets/idea.png';
|
||||||
|
imgArray['Implication'] = new Image(); imgArray['Implication'].src = '/assets/implication.png';
|
||||||
|
imgArray['Insight'] = new Image(); imgArray['Insight'].src = '/assets/insight.png';
|
||||||
|
imgArray['Intention'] = new Image(); imgArray['Intention'].src = '/assets/intention.png';
|
||||||
|
imgArray['Knowledge'] = new Image(); imgArray['Knowledge'].src = '/assets/knowledge.png';
|
||||||
|
imgArray['Location'] = new Image(); imgArray['Location'].src = '/assets/location.png';
|
||||||
|
imgArray['Open Issue'] = new Image(); imgArray['Open Issue'].src = '/assets/openissue.png';
|
||||||
|
imgArray['Opinion'] = new Image(); imgArray['Opinion'].src = '/assets/opinion.png';
|
||||||
|
imgArray['Opportunity'] = new Image(); imgArray['Opportunity'].src = '/assets/opportunity.png';
|
||||||
|
imgArray['Platform'] = new Image(); imgArray['Platform'].src = '/assets/platform.png';
|
||||||
|
imgArray['Problem'] = new Image(); imgArray['Problem'].src = '/assets/problem.png';
|
||||||
|
imgArray['Question'] = new Image(); imgArray['Question'].src = '/assets/question.png';
|
||||||
|
imgArray['Reference'] = new Image(); imgArray['Reference'].src = '/assets/reference.png';
|
||||||
|
imgArray['Requirement'] = new Image(); imgArray['Requirement'].src = '/assets/requirement.png';
|
||||||
|
imgArray['Resource'] = new Image(); imgArray['Resource'].src = '/assets/resource.png';
|
||||||
|
imgArray['Role'] = new Image(); imgArray['Role'].src = '/assets/role.png';
|
||||||
|
imgArray['Task'] = new Image(); imgArray['Task'].src = '/assets/task.png';
|
||||||
|
imgArray['Tool'] = new Image(); imgArray['Tool'].src = '/assets/tool.png';
|
||||||
|
imgArray['Trajectory'] = new Image(); imgArray['Trajectory'].src = '/assets/trajectory.png';
|
||||||
|
imgArray['Action'] = new Image(); imgArray['Action'].src = '/assets/action.png';
|
||||||
|
imgArray['Activity'] = new Image(); imgArray['Activity'].src = '/assets/activity.png';
|
||||||
|
|
||||||
function init(){
|
function init(){
|
||||||
// init data
|
// init custom node type
|
||||||
|
$jit.ForceDirected.Plot.NodeTypes.implement({
|
||||||
|
'customNode': {
|
||||||
|
'render': function (node, canvas) {
|
||||||
|
var pos = node.pos.getc(true),
|
||||||
|
dim = node.getData('dim'),
|
||||||
|
cat = node.getData('itemcatname'),
|
||||||
|
ctx = canvas.getCtx();
|
||||||
|
ctx.drawImage(imgArray[cat], pos.x - dim, pos.y - dim, dim*2, dim*2);
|
||||||
|
|
||||||
|
},
|
||||||
|
'contains': function(node, pos) {
|
||||||
|
var npos = node.pos.getc(true),
|
||||||
|
dim = node.getData('dim');
|
||||||
|
return this.nodeHelper.circle.contains(npos, pos, dim);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
// end
|
// end
|
||||||
// init ForceDirected
|
// init ForceDirected
|
||||||
var fd = new $jit.ForceDirected({
|
var fd = new $jit.ForceDirected({
|
||||||
|
@ -37,6 +85,7 @@ function init(){
|
||||||
//by scrolling and DnD
|
//by scrolling and DnD
|
||||||
Navigation: {
|
Navigation: {
|
||||||
enable: true,
|
enable: true,
|
||||||
|
type: 'HTML',
|
||||||
//Enable panning events only if we're dragging the empty
|
//Enable panning events only if we're dragging the empty
|
||||||
//canvas (and not a node).
|
//canvas (and not a node).
|
||||||
panning: 'avoid nodes',
|
panning: 'avoid nodes',
|
||||||
|
@ -50,8 +99,8 @@ function init(){
|
||||||
Node: {
|
Node: {
|
||||||
overridable: true,
|
overridable: true,
|
||||||
color: '#2D6A5D',
|
color: '#2D6A5D',
|
||||||
type: 'circle',
|
type: 'customNode',
|
||||||
dim: 15
|
dim: 25
|
||||||
},
|
},
|
||||||
Edge: {
|
Edge: {
|
||||||
overridable: true,
|
overridable: true,
|
||||||
|
@ -60,8 +109,8 @@ function init(){
|
||||||
},
|
},
|
||||||
//Native canvas text styling
|
//Native canvas text styling
|
||||||
Label: {
|
Label: {
|
||||||
type: labelType, //Native or HTML
|
type: 'HTML', //Native or HTML
|
||||||
size: 17,
|
size: 20,
|
||||||
//style: 'bold'
|
//style: 'bold'
|
||||||
},
|
},
|
||||||
//Add Tips
|
//Add Tips
|
||||||
|
@ -79,12 +128,13 @@ function init(){
|
||||||
// Add node events
|
// Add node events
|
||||||
Events: {
|
Events: {
|
||||||
enable: true,
|
enable: true,
|
||||||
|
type: 'HTML',
|
||||||
//Change cursor style when hovering a node
|
//Change cursor style when hovering a node
|
||||||
onMouseEnter: function() {
|
onMouseEnter: function() {
|
||||||
fd.canvas.getElement().style.cursor = 'move';
|
//fd.canvas.getElement().style.cursor = 'move';
|
||||||
},
|
},
|
||||||
onMouseLeave: function() {
|
onMouseLeave: function() {
|
||||||
fd.canvas.getElement().style.cursor = '';
|
//fd.canvas.getElement().style.cursor = '';
|
||||||
},
|
},
|
||||||
//Update node positions when dragged
|
//Update node positions when dragged
|
||||||
onDragMove: function(node, eventInfo, e) {
|
onDragMove: function(node, eventInfo, e) {
|
||||||
|
@ -100,15 +150,40 @@ function init(){
|
||||||
//Add also a click handler to nodes
|
//Add also a click handler to nodes
|
||||||
onClick: function(node) {
|
onClick: function(node) {
|
||||||
if(!node) return;
|
if(!node) return;
|
||||||
|
//set final styles
|
||||||
|
fd.graph.eachNode(function(n) {
|
||||||
|
if(n.id != node.id) delete n.selected;
|
||||||
|
n.setData('dim', 25, 'end');
|
||||||
|
n.eachAdjacency(function(adj) {
|
||||||
|
adj.setDataset('end', {
|
||||||
|
lineWidth: 0.4,
|
||||||
|
color: '#d1d1d1'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if(!node.selected) {
|
||||||
|
node.selected = true;
|
||||||
|
node.setData('dim', 35, 'end');
|
||||||
|
node.eachAdjacency(function(adj) {
|
||||||
|
adj.setDataset('end', {
|
||||||
|
lineWidth: 3,
|
||||||
|
color: '#36acfb'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
delete node.selected;
|
||||||
|
}
|
||||||
|
//trigger animation to final styles
|
||||||
|
fd.fx.animate({
|
||||||
|
modes: ['node-property:dim',
|
||||||
|
'edge-property:lineWidth:color'],
|
||||||
|
duration: 500
|
||||||
|
});
|
||||||
// Build the right column relations list.
|
// Build the right column relations list.
|
||||||
// This is done by traversing the clicked node connections.
|
// This is done by traversing the clicked node connections.
|
||||||
var html = "<h4>" + node.name + "</h4><b>has connections to:</b><ul><li>",
|
var html = '<div class="item" id="item_' + node.id + '"><p class="type">' + node.getData("itemcatname") + '</p><img alt="' + node.getData("itemcatname") + '" class="icon" height="50" src="' + imgArray[node.getData("itemcatname")].src + '" width="50" /><a href="http://localhost:3000/items/' + node.id + '" class="title">' + node.name + '</a><div class="desc"><p>' + node.getData('desc') + '</p></div><a href="' + node.getData('link') + '" class="link" target="_blank">' + node.getData('link') + '</a></div>';
|
||||||
list = [];
|
|
||||||
node.eachAdjacency(function(adj){
|
|
||||||
list.push(adj.nodeTo.name);
|
|
||||||
});
|
|
||||||
//append connections information
|
//append connections information
|
||||||
$jit.id('inner-details').innerHTML = html + list.join("</li><li>") + "</li></ul>";
|
$jit.id('inner-details').innerHTML = html;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//Number of iterations for the FD algorithm
|
//Number of iterations for the FD algorithm
|
||||||
|
@ -117,12 +192,74 @@ function init(){
|
||||||
levelDistance: 130,
|
levelDistance: 130,
|
||||||
// Add text to the labels. This method is only triggered
|
// Add text to the labels. This method is only triggered
|
||||||
// on label creation and only for DOM labels (not native canvas ones).
|
// on label creation and only for DOM labels (not native canvas ones).
|
||||||
onCreateLabel: function(domElement, node){
|
onCreateLabel: function(domElement, node){
|
||||||
domElement.innerHTML = node.name;
|
// Create a 'name' and 'close' buttons and add them
|
||||||
var style = domElement.style;
|
// to the main node label
|
||||||
style.fontSize = "0.9em";
|
var nameContainer = document.createElement('span'),
|
||||||
style.color = "#fff";
|
closeButton = document.createElement('span'),
|
||||||
},
|
style = nameContainer.style;
|
||||||
|
nameContainer.className = 'name';
|
||||||
|
nameContainer.innerHTML = node.name;
|
||||||
|
closeButton.className = 'close';
|
||||||
|
closeButton.innerHTML = 'x';
|
||||||
|
domElement.appendChild(nameContainer);
|
||||||
|
domElement.appendChild(closeButton);
|
||||||
|
style.fontSize = "0.9em";
|
||||||
|
style.color = "#ddd";
|
||||||
|
//Fade the node and its connections when
|
||||||
|
//clicking the close button
|
||||||
|
closeButton.onclick = function() {
|
||||||
|
node.setData('alpha', 0, 'end');
|
||||||
|
node.eachAdjacency(function(adj) {
|
||||||
|
adj.setData('alpha', 0, 'end');
|
||||||
|
});
|
||||||
|
fd.fx.animate({
|
||||||
|
modes: ['node-property:alpha',
|
||||||
|
'edge-property:alpha'],
|
||||||
|
duration: 500
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//Toggle a node selection when clicking
|
||||||
|
//its name. This is done by animating some
|
||||||
|
//node styles like its dimension and the color
|
||||||
|
//and lineWidth of its adjacencies.
|
||||||
|
nameContainer.onclick = function() {
|
||||||
|
//set final styles
|
||||||
|
fd.graph.eachNode(function(n) {
|
||||||
|
if(n.id != node.id) delete n.selected;
|
||||||
|
n.setData('dim', 25, 'end');
|
||||||
|
n.eachAdjacency(function(adj) {
|
||||||
|
adj.setDataset('end', {
|
||||||
|
lineWidth: 0.4,
|
||||||
|
color: '#d1d1d1'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
if(!node.selected) {
|
||||||
|
node.selected = true;
|
||||||
|
node.setData('dim', 35, 'end');
|
||||||
|
node.eachAdjacency(function(adj) {
|
||||||
|
adj.setDataset('end', {
|
||||||
|
lineWidth: 3,
|
||||||
|
color: '#36acfb'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
delete node.selected;
|
||||||
|
}
|
||||||
|
//trigger animation to final styles
|
||||||
|
fd.fx.animate({
|
||||||
|
modes: ['node-property:dim',
|
||||||
|
'edge-property:lineWidth:color'],
|
||||||
|
duration: 500
|
||||||
|
});
|
||||||
|
// Build the right column relations list.
|
||||||
|
// This is done by traversing the clicked node connections.
|
||||||
|
var html = '<div class="item" id="item_' + node.id + '"><p class="type">' + node.getData("itemcatname") + '</p><img alt="' + node.getData("itemcatname") + '" class="icon" height="50" src="' + imgArray[node.getData("itemcatname")].src + '" width="50" /><a href="http://localhost:3000/items/' + node.id + '" class="title">' + node.name + '</a><div class="desc"><p>' + node.getData('desc') + '</p></div><a href="' + node.getData('link') + '" class="link" target="_blank">' + node.getData('link') + '</a></div>';
|
||||||
|
//append connections information
|
||||||
|
$jit.id('inner-details').innerHTML = html;
|
||||||
|
};
|
||||||
|
},
|
||||||
// Change node styles when DOM labels are placed
|
// Change node styles when DOM labels are placed
|
||||||
// or moved.
|
// or moved.
|
||||||
onPlaceLabel: function(domElement, node){
|
onPlaceLabel: function(domElement, node){
|
||||||
|
@ -130,8 +267,9 @@ function init(){
|
||||||
var left = parseInt(style.left);
|
var left = parseInt(style.left);
|
||||||
var top = parseInt(style.top);
|
var top = parseInt(style.top);
|
||||||
var w = domElement.offsetWidth;
|
var w = domElement.offsetWidth;
|
||||||
|
var dim = node.getData('dim');
|
||||||
style.left = (left - w / 2) + 'px';
|
style.left = (left - w / 2) + 'px';
|
||||||
style.top = (top + 10) + 'px';
|
style.top = (top + dim) + 'px';
|
||||||
style.display = '';
|
style.display = '';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -154,4 +292,8 @@ function init(){
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// end
|
// end
|
||||||
|
fd.graph.eachNode(function(n) {
|
||||||
|
var x = n.getData('itemcatname');
|
||||||
|
console.log(x);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,3 +20,5 @@
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('.nodemargin').css('padding-top',$('.focus').css('height'));
|
$('.nodemargin').css('padding-top',$('.focus').css('height'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
#inner-details {
|
#inner-details {
|
||||||
font-size:12px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
span.close {
|
span.close {
|
||||||
color:#FF5555;
|
color:#FF5555;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
margin-left:3px;
|
margin-left:3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
span.name {
|
span.name {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*TOOLTIPS*/
|
/*TOOLTIPS*/
|
||||||
.tip {
|
.tip {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
width:auto;
|
width:auto;
|
||||||
max-width:500px;
|
max-width:500px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tip-title {
|
.tip-title {
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
margin-bottom:2px;
|
margin-bottom:2px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,10 +68,4 @@ input[type="submit"] { margin-top:5px; }
|
||||||
.focus .link { padding:0 0 0 10px; display:block; width:90%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
.focus .link { padding:0 0 0 10px; display:block; width:90%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||||
|
|
||||||
.divider { margin: 20px 50px 20px 50px; border-bottom:2px solid #FFF; }
|
.divider { margin: 20px 50px 20px 50px; border-bottom:2px solid #FFF; }
|
||||||
.empty { margin-left:50px; }
|
.empty { margin-left:50px; }
|
||||||
|
|
||||||
.selecttype { display:block; margin:100px auto 0; width:500px; }
|
|
||||||
.selecttype button { display:inline-block; width:150px; height:50px; background: #2D6A5D; color: white; border-radius: 15px; cursor: pointer; }
|
|
||||||
.selecttype button:hover { border-width:4px; border-color:#CCC; }
|
|
||||||
.selecttype .middle { margin:0 20px; }
|
|
||||||
.newsynapses form {display:none; }
|
|
|
@ -1,15 +1,16 @@
|
||||||
#center-container {
|
#center-container {
|
||||||
position:relative;
|
position:relative;
|
||||||
height:500px;
|
height:500px;
|
||||||
width:80%;
|
width:70%;
|
||||||
float:left;
|
float:left;
|
||||||
/* background-color:#031924; */
|
/* background-color:#031924; */
|
||||||
color:#ccc;
|
color:#ccc;
|
||||||
|
max-width:900px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#right-container {
|
#right-container {
|
||||||
height:500px;
|
height:500px;
|
||||||
width:19%;
|
width:29%;
|
||||||
color:#FFF;
|
color:#FFF;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
@ -25,9 +26,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#inner-details {
|
#inner-details {
|
||||||
font-size:0.8em;
|
|
||||||
list-style:none;
|
|
||||||
margin:7px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#log {
|
#log {
|
||||||
|
|
|
@ -16,7 +16,7 @@ line-height: 24px;}
|
||||||
|
|
||||||
.item .title { font-size:22px; line-height:25px; display:block; border-bottom:2px solid #000; padding-bottom:5px; }
|
.item .title { font-size:22px; line-height:25px; display:block; border-bottom:2px solid #000; padding-bottom:5px; }
|
||||||
|
|
||||||
.item .desc { font-style:italic; }
|
.item .desc { font-style:italic; font-size:15px; }
|
||||||
.item .desc h3 { font-style:normal; margin-top:5px; }
|
.item .desc h3 { font-style:normal; margin-top:5px; }
|
||||||
|
|
||||||
.item .link { position:absolute; width:170px; top:295px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
.item .link { position:absolute; width:170px; top:295px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||||
|
|
|
@ -24,14 +24,10 @@ class ItemsController < ApplicationController
|
||||||
def show
|
def show
|
||||||
@item = Item.find(params[:id])
|
@item = Item.find(params[:id])
|
||||||
|
|
||||||
@gparents = @item.groups
|
|
||||||
@pparents = @item.people
|
|
||||||
@iparents = @item.parent_items
|
|
||||||
@relatives = @item.as_json.html_safe
|
@relatives = @item.as_json.html_safe
|
||||||
@ichildren = @item.child_items
|
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { respond_with(@item, @gparents, @pparents, @iparents, @ichildren) }
|
format.html { respond_with(@item) }
|
||||||
format.json { respond_with(@relatives) }
|
format.json { respond_with(@relatives) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ class MainController < ApplicationController
|
||||||
def home
|
def home
|
||||||
@current_user = current_user
|
@current_user = current_user
|
||||||
|
|
||||||
@all = Group.all + Person.all + Item.all
|
@all = Item.all
|
||||||
|
|
||||||
respond_with(@all)
|
respond_with(@all)
|
||||||
end
|
end
|
||||||
|
@ -14,7 +14,15 @@ class MainController < ApplicationController
|
||||||
def userobjects
|
def userobjects
|
||||||
@user = current_user
|
@user = current_user
|
||||||
|
|
||||||
@all = @user.groups + @user.people + @user.items
|
@all = @user.items
|
||||||
|
|
||||||
|
respond_with(@all)
|
||||||
|
end
|
||||||
|
|
||||||
|
def usersynapses
|
||||||
|
@user = current_user
|
||||||
|
|
||||||
|
@all = @user.synapses
|
||||||
|
|
||||||
respond_with(@all)
|
respond_with(@all)
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,18 +14,11 @@ class SynapsesController < ApplicationController
|
||||||
|
|
||||||
# Get /synapse/new
|
# Get /synapse/new
|
||||||
def new
|
def new
|
||||||
@synapse1 = Synapse.new
|
@synapse = Synapse.new
|
||||||
@synapse1.category = "Group"
|
|
||||||
@synapse2 = Synapse.new
|
|
||||||
@synapse2.category = "Person"
|
|
||||||
@synapse3 = Synapse.new
|
|
||||||
@synapse3.category = "Item"
|
|
||||||
@user = current_user
|
@user = current_user
|
||||||
@allgroups = Group.all
|
|
||||||
@allpeople = Person.all
|
|
||||||
@allitems = Item.all
|
@allitems = Item.all
|
||||||
|
|
||||||
respond_with(@synapse1, @synapse2, @synapse3, @allgroups, @allpeople, @allitems)
|
respond_with(@synapse, @allitems)
|
||||||
end
|
end
|
||||||
|
|
||||||
# GET /synapse/:id
|
# GET /synapse/:id
|
||||||
|
@ -36,18 +29,8 @@ class SynapsesController < ApplicationController
|
||||||
@node2 = nil
|
@node2 = nil
|
||||||
|
|
||||||
if @synapse
|
if @synapse
|
||||||
if (@synapse.category == "Group")
|
@node1 = @synapse.item1
|
||||||
@node1 = @synapse.group1
|
@node2 = @synapse.item2
|
||||||
@node2 = @synapse.group2
|
|
||||||
end
|
|
||||||
if (@synapse.category == "Person")
|
|
||||||
@node1 = @synapse.person1
|
|
||||||
@node2 = @synapse.person2
|
|
||||||
end
|
|
||||||
if (@synapse.category == "Item")
|
|
||||||
@node1 = @synapse.item1
|
|
||||||
@node2 = @synapse.item2
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
@ -63,20 +46,9 @@ class SynapsesController < ApplicationController
|
||||||
@synapse = Synapse.new()
|
@synapse = Synapse.new()
|
||||||
@synapse.desc = params[:synapse][:desc]
|
@synapse.desc = params[:synapse][:desc]
|
||||||
@synapse.category = params[:category]
|
@synapse.category = params[:category]
|
||||||
if ( @synapse.category == "Group" )
|
@synapse.item1 = Item.find(params[:node1_id])
|
||||||
@synapse.group1 = Group.find(params[:node1_id])
|
@synapse.item2 = Item.find(params[:node2_id])
|
||||||
@synapse.group2 = Group.find(params[:node2_id])
|
@synapse.user = @user
|
||||||
end
|
|
||||||
if ( @synapse.category == "Person" )
|
|
||||||
@synapse.person1 = Person.find(params[:node1_id])
|
|
||||||
@synapse.person2 = Person.find(params[:node2_id])
|
|
||||||
end
|
|
||||||
if ( @synapse.category == "Item" )
|
|
||||||
@synapse.item1 = Item.find(params[:node1_id])
|
|
||||||
@synapse.item2 = Item.find(params[:node2_id])
|
|
||||||
end
|
|
||||||
@synapse.user = @user
|
|
||||||
|
|
||||||
@synapse.save
|
@synapse.save
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
@ -90,22 +62,13 @@ class SynapsesController < ApplicationController
|
||||||
def edit
|
def edit
|
||||||
@synapse = Synapse.find_by_id(params[:id])
|
@synapse = Synapse.find_by_id(params[:id])
|
||||||
|
|
||||||
@collection1 = nil
|
@items = nil
|
||||||
@collection2 = nil
|
|
||||||
|
|
||||||
if @synapse
|
if @synapse
|
||||||
if (@synapse.category == "Group")
|
@items = Item.all
|
||||||
@collection = Group.all
|
|
||||||
end
|
|
||||||
if (@synapse.category == "Person")
|
|
||||||
@collection = Person.all
|
|
||||||
end
|
|
||||||
if (@synapse.category == "Item")
|
|
||||||
@collection = Item.all
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
respond_with(@synapse, @collection)
|
respond_with(@synapse, @items)
|
||||||
end
|
end
|
||||||
|
|
||||||
# PUT /actions/:id
|
# PUT /actions/:id
|
||||||
|
@ -114,18 +77,8 @@ class SynapsesController < ApplicationController
|
||||||
|
|
||||||
if @synapse
|
if @synapse
|
||||||
@synapse.desc = params[:synapse][:desc]
|
@synapse.desc = params[:synapse][:desc]
|
||||||
if ( @synapse.category == "Group" )
|
@synapse.item1 = Item.find(params[:node1_id][:node1])
|
||||||
@synapse.group1 = Group.find(params[:node1_id][:node1])
|
@synapse.item2 = Item.find(params[:node2_id][:node2])
|
||||||
@synapse.group2 = Group.find(params[:node2_id][:node2])
|
|
||||||
end
|
|
||||||
if ( @synapse.category == "Person" )
|
|
||||||
@synapse.person1 = Person.find(params[:node1_id][:node1])
|
|
||||||
@synapse.person2 = Person.find(params[:node2_id][:node2])
|
|
||||||
end
|
|
||||||
if ( @synapse.category == "Item" )
|
|
||||||
@synapse.item1 = Item.find(params[:node1_id][:node1])
|
|
||||||
@synapse.item2 = Item.find(params[:node2_id][:node2])
|
|
||||||
end
|
|
||||||
|
|
||||||
@synapse.save
|
@synapse.save
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,17 +2,8 @@ class Item < ActiveRecord::Base
|
||||||
|
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
|
|
||||||
has_many :itemitem_c, :foreign_key => 'parent_item_id', :class_name => 'Itemitem'
|
has_many :synapses1, :class_name => 'Synapse', :foreign_key => 'node1_id' #, :conditions => {:category => 'Item'}
|
||||||
has_many :itemitem_p, :foreign_key => 'item_id', :class_name => 'Itemitem'
|
has_many :synapses2, :class_name => 'Synapse', :foreign_key => 'node2_id' #, :conditions => {:category => 'Item'}
|
||||||
|
|
||||||
has_many :groupitems
|
|
||||||
has_many :personitems
|
|
||||||
|
|
||||||
has_many :groups, :through => :groupitems
|
|
||||||
has_many :people, :through => :personitems
|
|
||||||
|
|
||||||
has_many :synapses1, :class_name => 'Synapse', :foreign_key => 'node1_id', :conditions => {:category => 'Item'}
|
|
||||||
has_many :synapses2, :class_name => 'Synapse', :foreign_key => 'node2_id', :conditions => {:category => 'Item'}
|
|
||||||
has_many :items1, :through => :synapses2, :source => :item1
|
has_many :items1, :through => :synapses2, :source => :item1
|
||||||
has_many :items2, :through => :synapses1, :source => :item2
|
has_many :items2, :through => :synapses1, :source => :item2
|
||||||
|
|
||||||
|
@ -26,14 +17,12 @@ has_many :items2, :through => :synapses1, :source => :item2
|
||||||
|
|
||||||
belongs_to :item_category
|
belongs_to :item_category
|
||||||
|
|
||||||
has_many :child_items, :through => :itemitem_c, :source => :item
|
|
||||||
has_many :parent_items, :through => :itemitem_p, :source => :parent_item
|
|
||||||
|
|
||||||
def as_json
|
def as_json
|
||||||
Jbuilder.encode do |json|
|
Jbuilder.encode do |json|
|
||||||
@single = Array.new
|
@single = Array.new
|
||||||
@single.push(self)
|
@single.push(self)
|
||||||
@items = @single + self.relatives
|
#@items = @single + self.relatives
|
||||||
|
@items = Item.all
|
||||||
|
|
||||||
json.array!(@items) do |item|
|
json.array!(@items) do |item|
|
||||||
json.adjacencies item.synapses2.delete_if{|synapse| not @items.include?(Item.find_by_id(synapse.node1_id))} do |json, synapse|
|
json.adjacencies item.synapses2.delete_if{|synapse| not @items.include?(Item.find_by_id(synapse.node1_id))} do |json, synapse|
|
||||||
|
@ -41,13 +30,15 @@ has_many :parent_items, :through => :itemitem_p, :source => :parent_item
|
||||||
json.nodeFrom synapse.node2_id
|
json.nodeFrom synapse.node2_id
|
||||||
|
|
||||||
@synapsedata = Hash.new
|
@synapsedata = Hash.new
|
||||||
@synapsedata['desc'] = synapse.desc
|
@synapsedata['$desc'] = synapse.desc
|
||||||
|
@synapsedata['$category'] = synapse.category
|
||||||
json.data @synapsedata
|
json.data @synapsedata
|
||||||
end
|
end
|
||||||
|
|
||||||
@itemdata = Hash.new
|
@itemdata = Hash.new
|
||||||
@itemdata['desc'] = item.desc
|
@itemdata['$desc'] = item.desc
|
||||||
@itemdata['link'] = item.link
|
@itemdata['$link'] = item.link
|
||||||
|
@itemdata['$itemcatname'] = item.item_category.name
|
||||||
json.data @itemdata
|
json.data @itemdata
|
||||||
json.id item.id
|
json.id item.id
|
||||||
json.name item.name
|
json.name item.name
|
||||||
|
|
|
@ -5,10 +5,4 @@ belongs_to :user
|
||||||
belongs_to :item1, :class_name => "Item", :foreign_key => "node1_id"
|
belongs_to :item1, :class_name => "Item", :foreign_key => "node1_id"
|
||||||
belongs_to :item2, :class_name => "Item", :foreign_key => "node2_id"
|
belongs_to :item2, :class_name => "Item", :foreign_key => "node2_id"
|
||||||
|
|
||||||
belongs_to :person1, :class_name => "Person", :foreign_key => "node1_id"
|
|
||||||
belongs_to :person2, :class_name => "Person", :foreign_key => "node2_id"
|
|
||||||
|
|
||||||
belongs_to :group1, :class_name => "Group", :foreign_key => "node1_id"
|
|
||||||
belongs_to :group2, :class_name => "Group", :foreign_key => "node2_id"
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,9 +2,8 @@ require 'open-uri'
|
||||||
|
|
||||||
class User < ActiveRecord::Base
|
class User < ActiveRecord::Base
|
||||||
|
|
||||||
has_many :people
|
|
||||||
has_many :groups
|
|
||||||
has_many :items
|
has_many :items
|
||||||
|
has_many :synapses
|
||||||
|
|
||||||
acts_as_authentic do |configuration|
|
acts_as_authentic do |configuration|
|
||||||
configuration.session_class = Session
|
configuration.session_class = Session
|
||||||
|
|
|
@ -7,73 +7,6 @@
|
||||||
<label for="item_desc">Description</label>
|
<label for="item_desc">Description</label>
|
||||||
<%= form.text_area :desc, class: "description", :rows => 5 %>
|
<%= form.text_area :desc, class: "description", :rows => 5 %>
|
||||||
<label for="item_link">Link</label>
|
<label for="item_link">Link</label>
|
||||||
<%= form.text_field :link, class: "link" %>
|
<%= form.text_field :link, class: "link" %>
|
||||||
|
|
||||||
<% if @ingroups.count > 0 %>
|
|
||||||
<label for="ingroups">Remove Parent Groups</label>
|
|
||||||
<%= select_tag "ingroups", options_from_collection_for_select(@ingroups, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "ingroups", options_from_collection_for_select(@ingroups, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% if @outgroups.count > 0 %>
|
|
||||||
<label for="outgroups">Add Parent Groups</label>
|
|
||||||
<%= select_tag "outgroups", options_from_collection_for_select(@outgroups, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "outgroups", options_from_collection_for_select(@outgroups, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% if @inpeople.count > 0 %>
|
|
||||||
<label for="inpeople">Remove Parent People</label>
|
|
||||||
<%= select_tag "inpeople", options_from_collection_for_select(@inpeople, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "inpeople", options_from_collection_for_select(@inpeople, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% if @outpeople.count > 0 %>
|
|
||||||
<label for="outpeople">Add Parent People</label>
|
|
||||||
<%= select_tag "outpeople", options_from_collection_for_select(@outpeople, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "outpeople", options_from_collection_for_select(@outpeople, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if @initems1.count > 0 %>
|
|
||||||
<label for="initems1">Remove Parent Items</label>
|
|
||||||
<%= select_tag "initems1", options_from_collection_for_select(@initems1, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "initems1", options_from_collection_for_select(@initems1, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% if @outitems1.count > 0 %>
|
|
||||||
<label for="outitems1">Add Parent Items</label>
|
|
||||||
<%= select_tag "outitems1", options_from_collection_for_select(@outitems1, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "outitems1", options_from_collection_for_select(@outitems1, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% if @initems2.count > 0 %>
|
|
||||||
<label for="initems2">Remove Child Items</label>
|
|
||||||
<%= select_tag "initems2", options_from_collection_for_select(@initems2, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "initems2", options_from_collection_for_select(@initems2, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% if @outitems2.count > 0 %>
|
|
||||||
<label for="outitems2">Add Child Items</label>
|
|
||||||
<%= select_tag "outitems2", options_from_collection_for_select(@outitems2, "id", "name"), { :multiple => true } %>
|
|
||||||
<% else %>
|
|
||||||
<div style="display:none">
|
|
||||||
<%= select_tag "outitems2", options_from_collection_for_select(@outitems2, "id", "name"), { :multiple => true } %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<%= form.submit "Update", class: "update" %>
|
<%= form.submit "Update", class: "update" %>
|
||||||
<% end %>
|
<% end %>
|
|
@ -1,11 +1,11 @@
|
||||||
<h1>Items</h1>
|
<h1>All Topics</h1>
|
||||||
|
|
||||||
<div class="items" id="items">
|
<div class="items" id="items">
|
||||||
<% @items.each do |item| %>
|
<% @items.each do |item| %>
|
||||||
<%= render item %>
|
<%= render item %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if @items.empty? %>
|
<% if @items.empty? %>
|
||||||
<p><br>Shucks, there are no items.<p>
|
<p><br>Shucks, there are no topics.<p>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfloat"></div>
|
<div class="clearfloat"></div>
|
||||||
|
|
|
@ -17,39 +17,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfloat nodemargin"></div>
|
<div class="clearfloat nodemargin"></div>
|
||||||
|
|
||||||
<div class="groups">
|
|
||||||
<div class="divider"><%= @item.name %> is included in these groups</div>
|
|
||||||
<% @gparents.each do |group| %>
|
|
||||||
<%= render group %>
|
|
||||||
<% end %>
|
|
||||||
<% if @gparents.empty? %>
|
|
||||||
<p class="empty">Shucks, there are no groups.</p>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="clearfloat"></div>
|
|
||||||
|
|
||||||
<div class="parents">
|
|
||||||
<div class="divider"><%= @item.name %> is included by these people</div>
|
|
||||||
<% @pparents.each do |person| %>
|
|
||||||
<%= render person %>
|
|
||||||
<% end %>
|
|
||||||
<% if @pparents.empty? %>
|
|
||||||
<p class="empty">Shucks, there are no people.</p>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="clearfloat"></div>
|
|
||||||
|
|
||||||
<div class="items">
|
|
||||||
<div class="divider"><%= @item.name %> is included by these items</div>
|
|
||||||
<% @iparents.each do |item| %>
|
|
||||||
<%= render item %>
|
|
||||||
<% end %>
|
|
||||||
<% if @iparents.empty? %>
|
|
||||||
<p class="empty">Shucks, there are no items.</p>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="clearfloat"></div>
|
|
||||||
|
|
||||||
<div class="relatives" id="container">
|
<div class="relatives" id="container">
|
||||||
<div class="divider"><%= @item.name %> is connected to these items</div>
|
<div class="divider"><%= @item.name %> is connected to these items</div>
|
||||||
<div id="center-container">
|
<div id="center-container">
|
||||||
|
@ -68,15 +35,4 @@
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
init();
|
init();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="items">
|
|
||||||
<div class="divider"><%= @item.name %> includes these items</div>
|
|
||||||
<% @ichildren.each do |item| %>
|
|
||||||
<%= render item %>
|
|
||||||
<% end %>
|
|
||||||
<% if @ichildren.empty? %>
|
|
||||||
<p class="empty">Shucks, there are no items.</p>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="clearfloat"></div>
|
|
|
@ -15,25 +15,20 @@
|
||||||
<ul>
|
<ul>
|
||||||
<li><%= link_to "Login", new_session_path, id: "Login" %></li>
|
<li><%= link_to "Login", new_session_path, id: "Login" %></li>
|
||||||
<li>|</li>
|
<li>|</li>
|
||||||
<li><%= link_to "Items", items_path %></li>
|
<li><%= link_to "Topics", items_path %></li>
|
||||||
<li><%= link_to "People", people_path %></li>
|
|
||||||
<li><%= link_to "Groups", groups_path %></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if authenticated? %>
|
<% if authenticated? %>
|
||||||
<ul>
|
<ul>
|
||||||
<li><%= link_to "Logout", session_path, method: 'delete', id: "Login" %></li>
|
<li><%= link_to "Logout", session_path, method: 'delete', id: "Login" %></li>
|
||||||
<li><%= link_to "My Cards", userobjects_path %></li>
|
<li><%= link_to "My Synapses", usersynapses_path %></li>
|
||||||
|
<li><%= link_to "My Topics", userobjects_path %></li>
|
||||||
<li>|</li>
|
<li>|</li>
|
||||||
<li><%= link_to "Add Synapse", new_synapse_path %></li>
|
<li><%= link_to "Add Synapse", new_synapse_path %></li>
|
||||||
<li>|</li>
|
<li>|</li>
|
||||||
<li><%= link_to "Add Item", new_item_path %></li>
|
<li><%= link_to "Add Topic", new_item_path %></li>
|
||||||
<li><%= link_to "Add Person", new_person_path %></li>
|
|
||||||
<li><%= link_to "Add Group", new_group_path %></li>
|
|
||||||
<li>|</li>
|
<li>|</li>
|
||||||
<li><%= link_to "Items", items_path %></li>
|
<li><%= link_to "Topics", items_path %></li>
|
||||||
<li><%= link_to "People", people_path %></li>
|
|
||||||
<li><%= link_to "Groups", groups_path %></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<%= render object %>
|
<%= render object %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if @all.empty? %>
|
<% if @all.empty? %>
|
||||||
<p><br>Shucks, there is nothing in metamap.<p>
|
<p><br>Shucks, there is nothing in metamaps.<p>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfloat"></div>
|
<div class="clearfloat"></div>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<%= render object %>
|
<%= render object %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if @all.empty? %>
|
<% if @all.empty? %>
|
||||||
<p><br>You haven't added any objects yet.<p>
|
<p><br>You haven't added any topics yet.<p>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfloat"></div>
|
<div class="clearfloat"></div>
|
||||||
|
|
9
app/views/main/usersynapses.html.erb
Normal file
9
app/views/main/usersynapses.html.erb
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<div class="everything" id="everything">
|
||||||
|
<% @all.each do |object| %>
|
||||||
|
<%= render object %>
|
||||||
|
<% end %>
|
||||||
|
<% if @all.empty? %>
|
||||||
|
<p><br>You haven't added any synapses yet.<p>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="clearfloat"></div>
|
11
app/views/synapses/index.html.erb
Normal file
11
app/views/synapses/index.html.erb
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<h1>Synapses</h1>
|
||||||
|
|
||||||
|
<div class="synapses" id="synapses">
|
||||||
|
<% @synapses.each do |synapse| %>
|
||||||
|
<%= render synapse %>
|
||||||
|
<% end %>
|
||||||
|
<% if @synapses.empty? %>
|
||||||
|
<p><br>Shucks, there are no synapses.<p>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="clearfloat"></div>
|
|
@ -1,40 +1,5 @@
|
||||||
<div class="selecttype">
|
|
||||||
<button onclick="$('.selecttype').fadeOut('fast', function(){$('.newsynapses form:eq(0)').fadeIn('fast')});">Group to Group</button>
|
|
||||||
<button class="middle" onclick="$('.selecttype').fadeOut('fast', function(){$('.newsynapses form:eq(1)').fadeIn('fast')});">Person to Person</button>
|
|
||||||
<button onclick="$('.selecttype').fadeOut('fast', function(){$('.newsynapses form:eq(2)').fadeIn('fast')});">Item to Item</button>
|
|
||||||
</div>
|
|
||||||
<div class="newsynapses">
|
<div class="newsynapses">
|
||||||
<%= form_for @synapse1, url: synapses_url do |form| %>
|
<%= form_for @synapse, url: synapses_url do |form| %>
|
||||||
<h3>Add Synapse Between Groups</h3>
|
|
||||||
<%= hidden_field_tag(:category, "Group") %>
|
|
||||||
<% if @allgroups.count > 0 %>
|
|
||||||
<label for="node1_id">Choose First Group</label>
|
|
||||||
<%= select_tag :node1_id, options_from_collection_for_select(@allgroups, "id", "name") %>
|
|
||||||
<% end %>
|
|
||||||
<label for="item_desc">Describe The Connection</label>
|
|
||||||
<%= form.text_field :desc, class: "description" %>
|
|
||||||
<% if @allgroups.count > 0 %>
|
|
||||||
<label for="node2_id">Choose Second Group</label>
|
|
||||||
<%= select_tag :node2_id, options_from_collection_for_select(@allgroups, "id", "name") %>
|
|
||||||
<% end %>
|
|
||||||
<%= form.submit "Add Synapse", class: "add" %>
|
|
||||||
<% end %>
|
|
||||||
<%= form_for @synapse2, url: synapses_url do |form| %>
|
|
||||||
<h3>Add Synapse Between People</h3>
|
|
||||||
<%= hidden_field_tag(:category, "Person") %>
|
|
||||||
<% if @allpeople.count > 0 %>
|
|
||||||
<label for="node1_id">Choose First Person</label>
|
|
||||||
<%= select_tag :node1_id, options_from_collection_for_select(@allpeople, "id", "name") %>
|
|
||||||
<% end %>
|
|
||||||
<label for="item_desc">Describe The Connection</label>
|
|
||||||
<%= form.text_field :desc, class: "description" %>
|
|
||||||
<% if @allpeople.count > 0 %>
|
|
||||||
<label for="node2_id">Choose Second Person</label>
|
|
||||||
<%= select_tag :node2_id, options_from_collection_for_select(@allpeople, "id", "name") %>
|
|
||||||
<% end %>
|
|
||||||
<%= form.submit "Add Synapse", class: "add" %>
|
|
||||||
<% end %>
|
|
||||||
<%= form_for @synapse3, url: synapses_url do |form| %>
|
|
||||||
<h3>Add Synapse Between Items</h3>
|
<h3>Add Synapse Between Items</h3>
|
||||||
<%= hidden_field_tag(:category, "Item") %>
|
<%= hidden_field_tag(:category, "Item") %>
|
||||||
<% if @allitems.count > 0 %>
|
<% if @allitems.count > 0 %>
|
||||||
|
|
|
@ -1,13 +1,7 @@
|
||||||
<div class="focus">
|
<div class="focus">
|
||||||
<div class="focusleft">
|
<div class="focusleft">
|
||||||
<p><%= @node1.name %></p>
|
<p><%= @node1.name %></p>
|
||||||
<% if (@node1.class == Group) %>
|
<%= image_tag @node1.item_category.icon, :class => 'icon', :size => '50x50' %>
|
||||||
<%= image_tag "group.png", :class => 'icon', :size => '50x50' %>
|
|
||||||
<% elsif (@node1.class == Person) %>
|
|
||||||
<%= image_tag "person.png", :class => 'icon', :size => '50x50' %>
|
|
||||||
<% elsif (@node1.class == Item) %>
|
|
||||||
<%= image_tag @node1.item_category.icon, :class => 'icon', :size => '50x50' %>
|
|
||||||
<% end %>
|
|
||||||
<p><%= @node1.desc %></p>
|
<p><%= @node1.desc %></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="focusmiddle">
|
<div class="focusmiddle">
|
||||||
|
@ -18,13 +12,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="focusright">
|
<div class="focusright">
|
||||||
<p><%= @node2.name %></p>
|
<p><%= @node2.name %></p>
|
||||||
<% if (@node2.class == Group) %>
|
<%= image_tag @node2.item_category.icon, :class => 'icon', :size => '50x50' %>
|
||||||
<%= image_tag "group.png", :class => 'icon', :size => '50x50' %>
|
|
||||||
<% elsif (@node2.class == Person) %>
|
|
||||||
<%= image_tag "person.png", :class => 'icon', :size => '50x50' %>
|
|
||||||
<% elsif (@node2.class == Item) %>
|
|
||||||
<%= image_tag @node2.item_category.icon, :class => 'icon', :size => '50x50' %>
|
|
||||||
<% end %>
|
|
||||||
<p><%= @node2.desc %></p>
|
<p><%= @node2.desc %></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
development:
|
development:
|
||||||
min_messages: WARNING
|
min_messages: WARNING
|
||||||
adapter: postgresql
|
adapter: postgresql
|
||||||
host: ec2-54-243-217-241.compute-1.amazonaws.com
|
host: 127.0.0.1
|
||||||
port: 5432
|
port: 5432
|
||||||
encoding: unicode
|
encoding: unicode
|
||||||
database: dbct9hosrirq2h
|
database: metamap002_development
|
||||||
pool: 5
|
pool: 5
|
||||||
username: tkbwavghytilon
|
username: postgres
|
||||||
password: "To6z-64f1Lr3LqpWrcLBPG2Xdv"
|
password: "3112"
|
||||||
|
|
||||||
test:
|
test:
|
||||||
min_messages: WARNING
|
min_messages: WARNING
|
||||||
|
@ -15,7 +15,7 @@ test:
|
||||||
host: 127.0.0.1
|
host: 127.0.0.1
|
||||||
port: 5432
|
port: 5432
|
||||||
encoding: unicode
|
encoding: unicode
|
||||||
database: metamap_test
|
database: metamap002_test
|
||||||
pool: 5
|
pool: 5
|
||||||
username: postgres
|
username: postgres
|
||||||
password: "3112"
|
password: "3112"
|
||||||
|
@ -23,10 +23,10 @@ test:
|
||||||
production:
|
production:
|
||||||
min_messages: WARNING
|
min_messages: WARNING
|
||||||
adapter: postgresql
|
adapter: postgresql
|
||||||
host: ec2-54-243-217-241.compute-1.amazonaws.com
|
host: 127.0.0.1
|
||||||
port: 5432
|
port: 5432
|
||||||
encoding: unicode
|
encoding: unicode
|
||||||
database: dbct9hosrirq2h
|
database: metamap002_production
|
||||||
pool: 5
|
pool: 5
|
||||||
username: tkbwavghytilon
|
username: postgres
|
||||||
password: "To6z-64f1Lr3LqpWrcLBPG2Xdv"
|
password: "3112"
|
||||||
|
|
|
@ -2,7 +2,8 @@ ISSAD::Application.routes.draw do
|
||||||
|
|
||||||
root to: 'main#home', via: :get
|
root to: 'main#home', via: :get
|
||||||
|
|
||||||
match 'my-cards', to: 'main#userobjects', via: :get, as: :userobjects
|
match 'my-topics', to: 'main#userobjects', via: :get, as: :userobjects
|
||||||
|
match 'my-synapses', to: 'main#usersynapses', via: :get, as: :usersynapses
|
||||||
|
|
||||||
resource :user
|
resource :user
|
||||||
resource :session
|
resource :session
|
||||||
|
|
|
@ -5,8 +5,6 @@ class CreateItems < ActiveRecord::Migration
|
||||||
t.text :desc
|
t.text :desc
|
||||||
t.text :link
|
t.text :link
|
||||||
t.integer :user_id
|
t.integer :user_id
|
||||||
t.integer :person_id
|
|
||||||
t.integer :group_id
|
|
||||||
t.integer :item_category_id
|
t.integer :item_category_id
|
||||||
|
|
||||||
t.timestamps
|
t.timestamps
|
||||||
|
|
61
db/schema.rb
61
db/schema.rb
|
@ -13,39 +13,6 @@
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20121005160234) do
|
ActiveRecord::Schema.define(:version => 20121005160234) do
|
||||||
|
|
||||||
create_table "groupgroups", :force => true do |t|
|
|
||||||
t.integer "group_id"
|
|
||||||
t.integer "parent_group_id"
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "groupitems", :force => true do |t|
|
|
||||||
t.integer "group_id"
|
|
||||||
t.integer "item_id"
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "grouppeople", :force => true do |t|
|
|
||||||
t.integer "group_id"
|
|
||||||
t.integer "person_id"
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "groups", :force => true do |t|
|
|
||||||
t.text "name"
|
|
||||||
t.text "desc"
|
|
||||||
t.text "city"
|
|
||||||
t.text "province"
|
|
||||||
t.text "country"
|
|
||||||
t.text "link"
|
|
||||||
t.integer "user_id"
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "item_categories", :force => true do |t|
|
create_table "item_categories", :force => true do |t|
|
||||||
t.text "name"
|
t.text "name"
|
||||||
t.string "icon"
|
t.string "icon"
|
||||||
|
@ -53,44 +20,16 @@ ActiveRecord::Schema.define(:version => 20121005160234) do
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "itemitems", :force => true do |t|
|
|
||||||
t.integer "item_id"
|
|
||||||
t.integer "parent_item_id"
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "items", :force => true do |t|
|
create_table "items", :force => true do |t|
|
||||||
t.text "name"
|
t.text "name"
|
||||||
t.text "desc"
|
t.text "desc"
|
||||||
t.text "link"
|
t.text "link"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.integer "person_id"
|
|
||||||
t.integer "group_id"
|
|
||||||
t.integer "item_category_id"
|
t.integer "item_category_id"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at", :null => false
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "people", :force => true do |t|
|
|
||||||
t.text "name"
|
|
||||||
t.text "desc"
|
|
||||||
t.text "city"
|
|
||||||
t.text "province"
|
|
||||||
t.text "country"
|
|
||||||
t.text "link"
|
|
||||||
t.integer "user_id"
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "personitems", :force => true do |t|
|
|
||||||
t.integer "person_id"
|
|
||||||
t.integer "item_id"
|
|
||||||
t.datetime "created_at", :null => false
|
|
||||||
t.datetime "updated_at", :null => false
|
|
||||||
end
|
|
||||||
|
|
||||||
create_table "synapses", :force => true do |t|
|
create_table "synapses", :force => true do |t|
|
||||||
t.text "desc"
|
t.text "desc"
|
||||||
t.text "category"
|
t.text "category"
|
||||||
|
|
17
test/fixtures/item_categories.yml
vendored
17
test/fixtures/item_categories.yml
vendored
|
@ -1,12 +1,12 @@
|
||||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
||||||
|
|
||||||
one:
|
one:
|
||||||
name: Action
|
name: Person
|
||||||
icon: action.png
|
icon: person.png
|
||||||
|
|
||||||
two:
|
two:
|
||||||
name: Activity
|
name: Group
|
||||||
icon: activity.png
|
icon: group.png
|
||||||
|
|
||||||
three:
|
three:
|
||||||
name: Bizarre
|
name: Bizarre
|
||||||
|
@ -28,7 +28,6 @@ seven:
|
||||||
name: Future Dev
|
name: Future Dev
|
||||||
icon: futuredev.png
|
icon: futuredev.png
|
||||||
|
|
||||||
|
|
||||||
eight:
|
eight:
|
||||||
name: Idea
|
name: Idea
|
||||||
icon: idea.png
|
icon: idea.png
|
||||||
|
@ -105,7 +104,13 @@ twentysix:
|
||||||
name: Trajectory
|
name: Trajectory
|
||||||
icon: trajectory.png
|
icon: trajectory.png
|
||||||
|
|
||||||
|
twentyseven:
|
||||||
|
name: Action
|
||||||
|
icon: action.png
|
||||||
|
|
||||||
|
twentyeight:
|
||||||
|
name: Activity
|
||||||
|
icon: activity.png
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue